From 795041a51427c715479d7d41d1d826be3266270f Mon Sep 17 00:00:00 2001 From: jamesagnew Date: Mon, 16 Feb 2015 11:33:46 -0500 Subject: [PATCH] More work on struct integration --- .../context/BaseRuntimeChildDefinition.java | 2 +- .../BaseRuntimeDeclaredChildDefinition.java | 22 +- .../context/BaseRuntimeElementDefinition.java | 1 - .../java/ca/uhn/fhir/context/FhirContext.java | 8 +- .../ca/uhn/fhir/context/FhirVersionEnum.java | 4 +- .../ca/uhn/fhir/context/ModelScanner.java | 74 +- .../ca/uhn/fhir/context/RuntimeChildAny.java | 3 +- .../context/RuntimeChildChoiceDefinition.java | 4 +- .../RuntimeChildContainedResources.java | 14 +- .../context/RuntimeChildDirectResource.java | 70 + .../RuntimeChildResourceDefinition.java | 5 +- ...imeChildUndeclaredExtensionDefinition.java | 7 +- .../context/RuntimeElementDirectResource.java | 16 + .../RuntimeResourceBlockDefinition.java | 6 +- .../context/RuntimeResourceDefinition.java | 17 +- .../RuntimeResourceReferenceDefinition.java | 4 +- .../ca/uhn/fhir/model/api/IFhirVersion.java | 9 +- .../uhn/fhir/model/primitive/BooleanDt.java | 4 +- .../uhn/fhir/model/primitive/DecimalDt.java | 4 +- .../ca/uhn/fhir/model/primitive/IdDt.java | 8 +- .../uhn/fhir/model/primitive/IntegerDt.java | 4 +- .../java/ca/uhn/fhir/parser/BaseParser.java | 22 +- .../java/ca/uhn/fhir/parser/JsonParser.java | 41 +- .../java/ca/uhn/fhir/parser/ParserState.java | 283 +- .../java/ca/uhn/fhir/parser/XmlParser.java | 14 +- .../BaseAddOrDeleteTagsMethodBinding.java | 10 +- .../fhir/rest/method/BaseMethodBinding.java | 4 +- ...turningMethodBindingWithResourceParam.java | 4 +- .../method/DynamicSearchMethodBinding.java | 5 +- .../rest/method/GetTagsMethodBinding.java | 7 +- .../rest/method/HistoryMethodBinding.java | 8 +- .../ca/uhn/fhir/rest/method/MethodUtil.java | 12 +- .../fhir/rest/method/ReadMethodBinding.java | 3 +- .../fhir/rest/method/SearchMethodBinding.java | 12 +- .../fhir/rest/server/IResourceProvider.java | 4 +- .../uhn/fhir/rest/server/RestfulServer.java | 3 +- .../java/ca/uhn/fhir/util/FhirTerser.java | 5 +- .../java/ca/uhn/fhir/util/IModelVisitor.java | 3 +- .../instance/formats/FormatUtilities.java | 109 - .../org/hl7/fhir/instance/model/Bundle.java | 1385 -- .../hl7/fhir/instance/model/CareActivity.java | 1343 -- .../hl7/fhir/instance/model/GoalRequest.java | 702 - .../fhir/instance/model/ICompositeType.java | 4 +- .../fhir/instance/model/IPrimitiveType.java | 4 +- .../org/hl7/fhir/instance/model/Resource.java | 594 - .../instance/model/annotations/Child.java | 93 - .../model/annotations/DatatypeDef.java | 49 - .../model/annotations/Description.java | 46 - .../annotations/SearchParamDefinition.java | 61 - .../fhir/instance/model/api/IAnyResource.java | 15 + .../instance/model/api/IBackboneElement.java | 5 + .../model/api/IBaseBooleanDatatype.java | 7 + .../instance/model/api/IBaseDatatype.java | 7 + .../model/api/IBaseDecimalDatatype.java | 9 + .../fhir/instance/model/api/IBaseElement.java | 7 + .../instance/model/api/IBaseExtension.java | 7 + .../model/api/IBaseIntegerDatatype.java | 7 + .../hl7/fhir/instance/model/api/ICoding.java | 11 + .../instance/model/api/IDatatypeElement.java | 7 + .../instance/model/api/IDomainResource.java | 11 + .../hl7/fhir/instance/model/api/IIdType.java | 8 + .../fhir/instance/model/api/IMetaType.java | 11 + .../fhir/instance/model/api/INarrative.java | 9 + .../fhir/instance/model/api/IReference.java | 16 + .../org.eclipse.core.resources.prefs | 2 - .../ca/uhn/fhir/rest/server/CreateTest.java | 2 +- hapi-fhir-structures-dstu2/.gitignore | 11 + hapi-fhir-structures-hl7org-dev/.gitignore | 1 - .../ca/uhn/fhir/parser/MyOrganization.java | 9 - .../.classpath | 2 + hapi-fhir-structures-hl7org-dstu2/.gitignore | 2 + .../.project | 0 .../bin/.project | 0 .../pom.xml | 14 +- .../hl7/fhir/instance/FhirDstu2Hl7Org.java | 106 + .../conf/ServerConformanceProvider.java | 369 + .../instance/conf/ServerProfileProvider.java | 90 + .../hl7/fhir/instance/model/Address$1.class | Bin 0 -> 862 bytes .../instance/model/Address$AddressUse.class | Bin 0 -> 2845 bytes .../model/Address$AddressUseEnumFactory.class | Bin 0 -> 1812 bytes .../org/hl7/fhir/instance/model/Address.class | Bin 0 -> 12091 bytes .../org/hl7/fhir/instance/model/Address.java | 1295 +- .../org/hl7/fhir/instance/model/Age.class | Bin 0 -> 2964 bytes .../java/org/hl7/fhir/instance/model/Age.java | 175 +- .../org/hl7/fhir/instance/model/Alert$1.class | Bin 0 -> 825 bytes .../instance/model/Alert$AlertStatus.class | Bin 0 -> 2705 bytes .../model/Alert$AlertStatusEnumFactory.class | Bin 0 -> 1773 bytes .../org/hl7/fhir/instance/model/Alert.class | Bin 0 -> 11068 bytes .../org/hl7/fhir/instance/model/Alert.java | 993 +- .../instance/model/AllergyIntolerance$1.class | Bin 0 -> 3681 bytes ...tolerance$AllergyIntoleranceCategory.class | Bin 0 -> 2939 bytes ...llergyIntoleranceCategoryEnumFactory.class | Bin 0 -> 2004 bytes ...erance$AllergyIntoleranceCriticality.class | Bin 0 -> 3374 bytes ...rgyIntoleranceCriticalityEnumFactory.class | Bin 0 -> 2019 bytes ...nce$AllergyIntoleranceEventComponent.class | Bin 0 -> 15419 bytes ...Intolerance$AllergyIntoleranceStatus.class | Bin 0 -> 3451 bytes ...$AllergyIntoleranceStatusEnumFactory.class | Bin 0 -> 2066 bytes ...gyIntolerance$AllergyIntoleranceType.class | Bin 0 -> 2894 bytes ...ce$AllergyIntoleranceTypeEnumFactory.class | Bin 0 -> 1889 bytes ...gyIntolerance$ReactionEventCertainty.class | Bin 0 -> 3088 bytes ...ce$ReactionEventCertaintyEnumFactory.class | Bin 0 -> 1964 bytes ...rgyIntolerance$ReactionEventSeverity.class | Bin 0 -> 2805 bytes ...nce$ReactionEventSeverityEnumFactory.class | Bin 0 -> 1945 bytes .../instance/model/AllergyIntolerance.class | Bin 0 -> 23493 bytes .../instance/model/AllergyIntolerance.java | 3562 ++--- .../fhir/instance/model/Appointment$1.class | Bin 0 -> 2182 bytes ...ment$AppointmentParticipantComponent.class | Bin 0 -> 9632 bytes .../model/Appointment$Appointmentstatus.class | Bin 0 -> 3526 bytes ...intment$AppointmentstatusEnumFactory.class | Bin 0 -> 2085 bytes .../Appointment$Participantrequired.class | Bin 0 -> 2808 bytes ...tment$ParticipantrequiredEnumFactory.class | Bin 0 -> 1898 bytes .../Appointment$Participationstatus.class | Bin 0 -> 3617 bytes ...tment$ParticipationstatusEnumFactory.class | Bin 0 -> 2125 bytes .../hl7/fhir/instance/model/Appointment.class | Bin 0 -> 24221 bytes .../hl7/fhir/instance/model/Appointment.java | 2876 ++-- .../model/AppointmentResponse$1.class | Bin 0 -> 1103 bytes ...ppointmentResponse$Participantstatus.class | Bin 0 -> 3595 bytes ...esponse$ParticipantstatusEnumFactory.class | Bin 0 -> 2171 bytes .../instance/model/AppointmentResponse.class | Bin 0 -> 17448 bytes .../instance/model/AppointmentResponse.java | 1577 +-- .../hl7/fhir/instance/model/Attachment.class | Bin 0 -> 10889 bytes .../hl7/fhir/instance/model/Attachment.java | 1001 +- .../fhir/instance/model/BackboneElement.class | Bin 0 -> 3493 bytes .../fhir/instance/model/BackboneElement.java | 258 +- .../org/hl7/fhir/instance/model/Base.class | Bin 0 -> 4299 bytes .../org/hl7/fhir/instance/model/Base.java | 258 +- .../instance/model/Base64BinaryType.class | Bin 0 -> 1454 bytes .../fhir/instance/model/Base64BinaryType.java | 168 +- .../instance/model/BaseDateTimeType$1.class | Bin 0 -> 977 bytes .../instance/model/BaseDateTimeType.class | Bin 0 -> 12785 bytes .../fhir/instance/model/BaseDateTimeType.java | 74 +- .../org/hl7/fhir/instance/model/Basic.class | Bin 0 -> 8744 bytes .../org/hl7/fhir/instance/model/Basic.java | 708 +- .../org/hl7/fhir/instance/model/Binary.class | Bin 0 -> 5437 bytes .../org/hl7/fhir/instance/model/Binary.java | 433 +- ...te$BodySiteRelativeLocationComponent.class | Bin 0 -> 4809 bytes ...te$BodySiteSpecificLocationComponent.class | Bin 0 -> 6119 bytes .../hl7/fhir/instance/model/BodySite.class | Bin 0 -> 8919 bytes .../org/hl7/fhir/instance/model/BodySite.java | 670 + .../hl7/fhir/instance/model/BooleanType.class | Bin 0 -> 2190 bytes .../hl7/fhir/instance/model/BooleanType.java | 198 +- .../hl7/fhir/instance/model/Bundle$1.class | Bin 0 -> 1885 bytes .../model/Bundle$BundleEntryComponent.class | Bin 0 -> 7739 bytes .../Bundle$BundleEntrySearchComponent.class | Bin 0 -> 5979 bytes ...ndle$BundleEntryTransactionComponent.class | Bin 0 -> 10858 bytes ...dleEntryTransactionResponseComponent.class | Bin 0 -> 6851 bytes .../model/Bundle$BundleLinkComponent.class | Bin 0 -> 5153 bytes .../instance/model/Bundle$BundleType.class | Bin 0 -> 3716 bytes .../model/Bundle$BundleTypeEnumFactory.class | Bin 0 -> 2097 bytes .../fhir/instance/model/Bundle$HttpVerb.class | Bin 0 -> 2549 bytes .../model/Bundle$HttpVerbEnumFactory.class | Bin 0 -> 1760 bytes .../model/Bundle$SearchEntryMode.class | Bin 0 -> 2501 bytes .../Bundle$SearchEntryModeEnumFactory.class | Bin 0 -> 1723 bytes .../org/hl7/fhir/instance/model/Bundle.class | Bin 0 -> 12714 bytes .../org/hl7/fhir/instance/model/Bundle.java | 1922 +++ .../hl7/fhir/instance/model/CarePlan$1.class | Bin 0 -> 2690 bytes .../CarePlan$CarePlanActivityCategory.class | Bin 0 -> 3669 bytes ...$CarePlanActivityCategoryEnumFactory.class | Bin 0 -> 2192 bytes .../CarePlan$CarePlanActivityComponent.class | Bin 0 -> 13301 bytes ...Plan$CarePlanActivitySimpleComponent.class | Bin 0 -> 15437 bytes .../CarePlan$CarePlanActivityStatus.class | Bin 0 -> 3460 bytes ...an$CarePlanActivityStatusEnumFactory.class | Bin 0 -> 2127 bytes .../CarePlan$CarePlanGoalComponent.class | Bin 0 -> 8998 bytes .../model/CarePlan$CarePlanGoalStatus.class | Bin 0 -> 3039 bytes ...rePlan$CarePlanGoalStatusEnumFactory.class | Bin 0 -> 1937 bytes ...arePlan$CarePlanParticipantComponent.class | Bin 0 -> 4812 bytes .../model/CarePlan$CarePlanStatus.class | Bin 0 -> 2747 bytes .../CarePlan$CarePlanStatusEnumFactory.class | Bin 0 -> 1810 bytes .../hl7/fhir/instance/model/CarePlan.class | Bin 0 -> 18065 bytes .../org/hl7/fhir/instance/model/CarePlan.java | 4795 +++---- .../hl7/fhir/instance/model/CarePlan2$1.class | Bin 0 -> 867 bytes ...ePlan2$CarePlan2ParticipantComponent.class | Bin 0 -> 4827 bytes .../model/CarePlan2$CarePlan2Status.class | Bin 0 -> 2766 bytes ...CarePlan2$CarePlan2StatusEnumFactory.class | Bin 0 -> 1827 bytes .../hl7/fhir/instance/model/CarePlan2.class | Bin 0 -> 17340 bytes .../hl7/fhir/instance/model/CarePlan2.java | 1761 +-- .../fhir/instance/model/ClaimResponse$1.class | Bin 0 -> 800 bytes ...ponse$AddedItemAdjudicationComponent.class | Bin 0 -> 5762 bytes .../ClaimResponse$AddedItemComponent.class | Bin 0 -> 9272 bytes ...AddedItemDetailAdjudicationComponent.class | Bin 0 -> 5822 bytes ...imResponse$AddedItemsDetailComponent.class | Bin 0 -> 5568 bytes ...Response$DetailAdjudicationComponent.class | Bin 0 -> 5732 bytes .../model/ClaimResponse$ErrorsComponent.class | Bin 0 -> 7056 bytes ...imResponse$ItemAdjudicationComponent.class | Bin 0 -> 5712 bytes .../ClaimResponse$ItemDetailComponent.class | Bin 0 -> 6425 bytes ...ClaimResponse$ItemSubdetailComponent.class | Bin 0 -> 5376 bytes .../model/ClaimResponse$ItemsComponent.class | Bin 0 -> 7577 bytes .../model/ClaimResponse$NotesComponent.class | Bin 0 -> 6015 bytes .../instance/model/ClaimResponse$RSLink.class | Bin 0 -> 2431 bytes .../ClaimResponse$RSLinkEnumFactory.class | Bin 0 -> 1700 bytes ...ponse$SubdetailAdjudicationComponent.class | Bin 0 -> 5762 bytes .../fhir/instance/model/ClaimResponse.class | Bin 0 -> 28439 bytes .../fhir/instance/model/ClaimResponse.java | 7120 +++++----- ...ClinicalAssessmentDiagnosisComponent.class | Bin 0 -> 5032 bytes ...calAssessmentInvestigationsComponent.class | Bin 0 -> 5366 bytes ...$ClinicalAssessmentRuledOutComponent.class | Bin 0 -> 5002 bytes .../instance/model/ClinicalAssessment.class | Bin 0 -> 25288 bytes .../instance/model/ClinicalAssessment.java | 2907 ++-- .../hl7/fhir/instance/model/CodeType.class | Bin 0 -> 1725 bytes .../org/hl7/fhir/instance/model/CodeType.java | 174 +- .../fhir/instance/model/CodeableConcept.class | Bin 0 -> 5200 bytes .../fhir/instance/model/CodeableConcept.java | 389 +- .../org/hl7/fhir/instance/model/Coding.class | Bin 0 -> 10278 bytes .../org/hl7/fhir/instance/model/Coding.java | 885 +- .../fhir/instance/model/Communication$1.class | Bin 0 -> 1017 bytes ...cation$CommunicationPayloadComponent.class | Bin 0 -> 4224 bytes .../Communication$CommunicationStatus.class | Bin 0 -> 3216 bytes ...ation$CommunicationStatusEnumFactory.class | Bin 0 -> 2056 bytes .../fhir/instance/model/Communication.class | Bin 0 -> 18127 bytes .../fhir/instance/model/Communication.java | 1891 +-- .../model/CommunicationRequest$1.class | Bin 0 -> 1351 bytes ...CommunicationRequestPayloadComponent.class | Bin 0 -> 4287 bytes ...onRequest$CommunicationRequestStatus.class | Bin 0 -> 4372 bytes ...ommunicationRequestStatusEnumFactory.class | Bin 0 -> 2555 bytes .../instance/model/CommunicationRequest.class | Bin 0 -> 20604 bytes .../instance/model/CommunicationRequest.java | 2349 ++-- .../model/Comparison$MatchProfile.class | Bin 0 -> 446 bytes .../hl7/fhir/instance/model/Comparison.class | Bin 0 -> 5235 bytes .../hl7/fhir/instance/model/Comparison.java | 237 +- .../fhir/instance/model/Composition$1.class | Bin 0 -> 1573 bytes ...mposition$CompositionAttestationMode.class | Bin 0 -> 3106 bytes ...ompositionAttestationModeEnumFactory.class | Bin 0 -> 2024 bytes ...osition$CompositionAttesterComponent.class | Bin 0 -> 7755 bytes ...omposition$CompositionEventComponent.class | Bin 0 -> 6102 bytes .../model/Composition$CompositionStatus.class | Bin 0 -> 3656 bytes ...osition$CompositionStatusEnumFactory.class | Bin 0 -> 2029 bytes .../model/Composition$SectionComponent.class | Bin 0 -> 7408 bytes .../hl7/fhir/instance/model/Composition.class | Bin 0 -> 22551 bytes .../hl7/fhir/instance/model/Composition.java | 3244 ++--- .../fhir/instance/model/ConceptMap$1.class | Bin 0 -> 1645 bytes .../model/ConceptMap$ConceptEquivalence.class | Bin 0 -> 4832 bytes ...eptMap$ConceptEquivalenceEnumFactory.class | Bin 0 -> 2320 bytes ...onceptMap$ConceptMapElementComponent.class | Bin 0 -> 7814 bytes ...eptMap$ConceptMapElementMapComponent.class | Bin 0 -> 10900 bytes .../ConceptMap$OtherElementComponent.class | Bin 0 -> 6452 bytes .../model/ConceptMap$ValuesetStatus.class | Bin 0 -> 2709 bytes ...ConceptMap$ValuesetStatusEnumFactory.class | Bin 0 -> 1818 bytes .../hl7/fhir/instance/model/ConceptMap.class | Bin 0 -> 21909 bytes .../hl7/fhir/instance/model/ConceptMap.java | 3697 +++--- .../hl7/fhir/instance/model/Condition$1.class | Bin 0 -> 920 bytes .../Condition$ConditionDueToComponent.class | Bin 0 -> 4772 bytes ...Condition$ConditionEvidenceComponent.class | Bin 0 -> 4707 bytes ...Condition$ConditionLocationComponent.class | Bin 0 -> 4785 bytes ...$ConditionOccurredFollowingComponent.class | Bin 0 -> 4868 bytes .../Condition$ConditionStageComponent.class | Bin 0 -> 4782 bytes .../model/Condition$ConditionStatus.class | Bin 0 -> 3021 bytes ...Condition$ConditionStatusEnumFactory.class | Bin 0 -> 1911 bytes .../hl7/fhir/instance/model/Condition.class | Bin 0 -> 26694 bytes .../hl7/fhir/instance/model/Condition.java | 3384 ++--- .../fhir/instance/model/Configuration.class | Bin 0 -> 493 bytes .../fhir/instance/model/Configuration.java | 233 +- .../fhir/instance/model/Conformance$1.class | Bin 0 -> 5294 bytes ...ormance$ConformanceDocumentComponent.class | Bin 0 -> 7927 bytes ...e$ConformanceImplementationComponent.class | Bin 0 -> 5406 bytes ...rmance$ConformanceMessagingComponent.class | Bin 0 -> 8442 bytes ...e$ConformanceMessagingEventComponent.class | Bin 0 -> 14352 bytes ...Conformance$ConformanceRestComponent.class | Bin 0 -> 12950 bytes ...ce$ConformanceRestOperationComponent.class | Bin 0 -> 5479 bytes ...nce$ConformanceRestResourceComponent.class | Bin 0 -> 17887 bytes ...anceRestResourceSearchParamComponent.class | Bin 0 -> 11675 bytes ...anceRestSecurityCertificateComponent.class | Bin 0 -> 5302 bytes ...nce$ConformanceRestSecurityComponent.class | Bin 0 -> 8050 bytes ...ormance$ConformanceSoftwareComponent.class | Bin 0 -> 6425 bytes ...nformance$ConformanceStatementStatus.class | Bin 0 -> 2845 bytes ...onformanceStatementStatusEnumFactory.class | Bin 0 -> 1934 bytes .../model/Conformance$DocumentMode.class | Bin 0 -> 2507 bytes .../Conformance$DocumentModeEnumFactory.class | Bin 0 -> 1744 bytes ...formance$MessageConformanceEventMode.class | Bin 0 -> 2632 bytes ...ssageConformanceEventModeEnumFactory.class | Bin 0 -> 1875 bytes ...formance$MessageSignificanceCategory.class | Bin 0 -> 3073 bytes ...ssageSignificanceCategoryEnumFactory.class | Bin 0 -> 1969 bytes ...ormance$ResourceInteractionComponent.class | Bin 0 -> 6625 bytes .../Conformance$RestfulConformanceMode.class | Bin 0 -> 2577 bytes ...ce$RestfulConformanceModeEnumFactory.class | Bin 0 -> 1826 bytes .../model/Conformance$SearchParamType.class | Bin 0 -> 3934 bytes ...nformance$SearchParamTypeEnumFactory.class | Bin 0 -> 2133 bytes ...nformance$SystemInteractionComponent.class | Bin 0 -> 6532 bytes ...Conformance$SystemRestfulInteraction.class | Bin 0 -> 2683 bytes ...$SystemRestfulInteractionEnumFactory.class | Bin 0 -> 1954 bytes .../Conformance$TypeRestfulInteraction.class | Bin 0 -> 3483 bytes ...ce$TypeRestfulInteractionEnumFactory.class | Bin 0 -> 2367 bytes .../model/Conformance$VersioningPolicy.class | Bin 0 -> 2890 bytes ...formance$VersioningPolicyEnumFactory.class | Bin 0 -> 1876 bytes .../hl7/fhir/instance/model/Conformance.class | Bin 0 -> 31157 bytes .../hl7/fhir/instance/model/Conformance.java | 10924 ++++++++-------- .../hl7/fhir/instance/model/Constants.class | Bin 0 -> 388 bytes .../hl7/fhir/instance/model/Constants.java | 101 +- .../fhir/instance/model/ContactPoint$1.class | Bin 0 -> 1493 bytes .../ContactPoint$ContactPointSystem.class | Bin 0 -> 3186 bytes ...tPoint$ContactPointSystemEnumFactory.class | Bin 0 -> 1926 bytes .../model/ContactPoint$ContactPointUse.class | Bin 0 -> 3535 bytes ...tactPoint$ContactPointUseEnumFactory.class | Bin 0 -> 1969 bytes .../fhir/instance/model/ContactPoint.class | Bin 0 -> 8653 bytes .../hl7/fhir/instance/model/ContactPoint.java | 1039 +- .../Contract$ContractSignerComponent.class | Bin 0 -> 5089 bytes .../Contract$ContractTermComponent.class | Bin 0 -> 14943 bytes .../hl7/fhir/instance/model/Contract.class | Bin 0 -> 31813 bytes .../org/hl7/fhir/instance/model/Contract.java | 4515 +++---- ...$ContraindicationMitigationComponent.class | Bin 0 -> 6512 bytes .../instance/model/Contraindication.class | Bin 0 -> 15633 bytes .../fhir/instance/model/Contraindication.java | 1628 +-- .../org/hl7/fhir/instance/model/Count.class | Bin 0 -> 2972 bytes .../org/hl7/fhir/instance/model/Count.java | 175 +- .../hl7/fhir/instance/model/Coverage.class | Bin 0 -> 17209 bytes .../org/hl7/fhir/instance/model/Coverage.java | 1470 ++- .../fhir/instance/model/DataElement$1.class | Bin 0 -> 2098 bytes .../DataElement$BindingConformance.class | Bin 0 -> 3163 bytes ...lement$BindingConformanceEnumFactory.class | Bin 0 -> 1874 bytes ...aElement$DataElementBindingComponent.class | Bin 0 -> 9385 bytes ...aElement$DataElementMappingComponent.class | Bin 0 -> 8704 bytes .../DataElement$DataelementGranularity.class | Bin 0 -> 4154 bytes ...nt$DataelementGranularityEnumFactory.class | Bin 0 -> 2167 bytes ...Element$ResourceObservationDefStatus.class | Bin 0 -> 2833 bytes ...ourceObservationDefStatusEnumFactory.class | Bin 0 -> 1952 bytes .../hl7/fhir/instance/model/DataElement.class | Bin 0 -> 31181 bytes .../hl7/fhir/instance/model/DataElement.java | 4068 +++--- .../hl7/fhir/instance/model/DateAndTime.java | 0 .../fhir/instance/model/DateTimeType$1.class | Bin 0 -> 917 bytes .../fhir/instance/model/DateTimeType.class | Bin 0 -> 3092 bytes .../hl7/fhir/instance/model/DateTimeType.java | 405 +- .../hl7/fhir/instance/model/DateType$1.class | Bin 0 -> 812 bytes .../hl7/fhir/instance/model/DateType.class | Bin 0 -> 2298 bytes .../org/hl7/fhir/instance/model/DateType.java | 282 +- .../hl7/fhir/instance/model/DecimalType.class | Bin 0 -> 2850 bytes .../hl7/fhir/instance/model/DecimalType.java | 336 +- .../org/hl7/fhir/instance/model/Device.class | Bin 0 -> 19326 bytes .../org/hl7/fhir/instance/model/Device.java | 1653 +-- .../instance/model/DeviceComponent$1.class | Bin 0 -> 1335 bytes ...nentProductionSpecificationComponent.class | Bin 0 -> 6332 bytes ...DeviceComponent$MeasurementPrinciple.class | Bin 0 -> 4410 bytes ...nent$MeasurementPrincipleEnumFactory.class | Bin 0 -> 2534 bytes .../fhir/instance/model/DeviceComponent.class | Bin 0 -> 15724 bytes .../fhir/instance/model/DeviceComponent.java | 1851 +-- .../fhir/instance/model/DeviceMetric$1.class | Bin 0 -> 2551 bytes ...DeviceMetricCalibrationInfoComponent.class | Bin 0 -> 8091 bytes .../DeviceMetric$MetricCalibrationState.class | Bin 0 -> 2966 bytes ...ic$MetricCalibrationStateEnumFactory.class | Bin 0 -> 2038 bytes .../DeviceMetric$MetricCalibrationType.class | Bin 0 -> 2740 bytes ...ric$MetricCalibrationTypeEnumFactory.class | Bin 0 -> 1980 bytes .../model/DeviceMetric$MetricCategory.class | Bin 0 -> 3001 bytes ...viceMetric$MetricCategoryEnumFactory.class | Bin 0 -> 1938 bytes ...DeviceMetric$MetricOperationalStatus.class | Bin 0 -> 2784 bytes ...c$MetricOperationalStatusEnumFactory.class | Bin 0 -> 1903 bytes .../fhir/instance/model/DeviceMetric.class | Bin 0 -> 17753 bytes .../hl7/fhir/instance/model/DeviceMetric.java | 2392 ++-- .../instance/model/DeviceUseRequest$1.class | Bin 0 -> 1879 bytes ...eUseRequest$DeviceUseRequestPriority.class | Bin 0 -> 2953 bytes ...$DeviceUseRequestPriorityEnumFactory.class | Bin 0 -> 2022 bytes ...iceUseRequest$DeviceUseRequestStatus.class | Bin 0 -> 4293 bytes ...st$DeviceUseRequestStatusEnumFactory.class | Bin 0 -> 2489 bytes .../instance/model/DeviceUseRequest.class | Bin 0 -> 20672 bytes .../fhir/instance/model/DeviceUseRequest.java | 2344 ++-- .../instance/model/DeviceUseStatement.class | Bin 0 -> 13971 bytes .../instance/model/DeviceUseStatement.java | 1144 +- .../instance/model/DiagnosticOrder$1.class | Bin 0 -> 1806 bytes ...cOrder$DiagnosticOrderEventComponent.class | Bin 0 -> 8934 bytes ...icOrder$DiagnosticOrderItemComponent.class | Bin 0 -> 10594 bytes ...gnosticOrder$DiagnosticOrderPriority.class | Bin 0 -> 2956 bytes ...r$DiagnosticOrderPriorityEnumFactory.class | Bin 0 -> 2005 bytes ...iagnosticOrder$DiagnosticOrderStatus.class | Bin 0 -> 4142 bytes ...der$DiagnosticOrderStatusEnumFactory.class | Bin 0 -> 2392 bytes .../fhir/instance/model/DiagnosticOrder.class | Bin 0 -> 20954 bytes .../fhir/instance/model/DiagnosticOrder.java | 3073 ++--- .../instance/model/DiagnosticReport$1.class | Bin 0 -> 1206 bytes ...eport$DiagnosticReportImageComponent.class | Bin 0 -> 5538 bytes ...gnosticReport$DiagnosticReportStatus.class | Bin 0 -> 4259 bytes ...rt$DiagnosticReportStatusEnumFactory.class | Bin 0 -> 2342 bytes .../instance/model/DiagnosticReport.class | Bin 0 -> 28010 bytes .../fhir/instance/model/DiagnosticReport.java | 2627 ++-- .../hl7/fhir/instance/model/Distance.class | Bin 0 -> 2984 bytes .../org/hl7/fhir/instance/model/Distance.java | 175 +- .../instance/model/DocumentManifest$1.class | Bin 0 -> 965 bytes ...mentManifest$DocumentReferenceStatus.class | Bin 0 -> 2827 bytes ...t$DocumentReferenceStatusEnumFactory.class | Bin 0 -> 1975 bytes .../instance/model/DocumentManifest.class | Bin 0 -> 20976 bytes .../fhir/instance/model/DocumentManifest.java | 1760 ++- .../instance/model/DocumentReference$1.class | Bin 0 -> 1560 bytes ...ce$DocumentReferenceContextComponent.class | Bin 0 -> 5595 bytes ...$DocumentReferenceRelatesToComponent.class | Bin 0 -> 6506 bytes ...entReference$DocumentReferenceStatus.class | Bin 0 -> 2837 bytes ...e$DocumentReferenceStatusEnumFactory.class | Bin 0 -> 1983 bytes ...ntReference$DocumentRelationshipType.class | Bin 0 -> 3116 bytes ...$DocumentRelationshipTypeEnumFactory.class | Bin 0 -> 2048 bytes .../instance/model/DocumentReference.class | Bin 0 -> 28820 bytes .../instance/model/DocumentReference.java | 3702 +++--- .../fhir/instance/model/DomainResource.class | Bin 0 -> 7167 bytes .../fhir/instance/model/DomainResource.java | 486 +- .../hl7/fhir/instance/model/Duration.class | Bin 0 -> 2984 bytes .../org/hl7/fhir/instance/model/Duration.java | 175 +- .../org/hl7/fhir/instance/model/Element.class | Bin 0 -> 4965 bytes .../org/hl7/fhir/instance/model/Element.java | 376 +- .../instance/model/ElementDefinition$1.class | Bin 0 -> 2884 bytes ...ElementDefinition$BindingConformance.class | Bin 0 -> 3223 bytes ...nition$BindingConformanceEnumFactory.class | Bin 0 -> 1922 bytes ...ElementDefinition$ConstraintSeverity.class | Bin 0 -> 2670 bytes ...nition$ConstraintSeverityEnumFactory.class | Bin 0 -> 1838 bytes ...on$ElementDefinitionBindingComponent.class | Bin 0 -> 10744 bytes ...ElementDefinitionConstraintComponent.class | Bin 0 -> 9912 bytes ...on$ElementDefinitionMappingComponent.class | Bin 0 -> 5084 bytes ...on$ElementDefinitionSlicingComponent.class | Bin 0 -> 9927 bytes ...entDefinition$PropertyRepresentation.class | Bin 0 -> 2448 bytes ...on$PropertyRepresentationEnumFactory.class | Bin 0 -> 1804 bytes ...ntDefinition$ResourceAggregationMode.class | Bin 0 -> 2965 bytes ...n$ResourceAggregationModeEnumFactory.class | Bin 0 -> 1971 bytes ...ementDefinition$ResourceSlicingRules.class | Bin 0 -> 2847 bytes ...tion$ResourceSlicingRulesEnumFactory.class | Bin 0 -> 1930 bytes .../ElementDefinition$TypeRefComponent.class | Bin 0 -> 7775 bytes .../instance/model/ElementDefinition.class | Bin 0 -> 33484 bytes .../instance/model/ElementDefinition.java | 6188 ++++----- .../instance/model/EligibilityRequest.class | Bin 0 -> 10531 bytes .../instance/model/EligibilityRequest.java | 891 +- .../model/EligibilityResponse$1.class | Bin 0 -> 842 bytes .../model/EligibilityResponse$RSLink.class | Bin 0 -> 2491 bytes ...ligibilityResponse$RSLinkEnumFactory.class | Bin 0 -> 1748 bytes .../instance/model/EligibilityResponse.class | Bin 0 -> 15550 bytes .../instance/model/EligibilityResponse.java | 1395 +- .../hl7/fhir/instance/model/Encounter$1.class | Bin 0 -> 2255 bytes .../model/Encounter$EncounterClass.class | Bin 0 -> 4293 bytes .../Encounter$EncounterClassEnumFactory.class | Bin 0 -> 2266 bytes ...er$EncounterHospitalizationComponent.class | Bin 0 -> 12756 bytes ...Encounter$EncounterLocationComponent.class | Bin 0 -> 7192 bytes .../Encounter$EncounterLocationStatus.class | Bin 0 -> 2841 bytes ...r$EncounterLocationStatusEnumFactory.class | Bin 0 -> 1899 bytes ...ounter$EncounterParticipantComponent.class | Bin 0 -> 6003 bytes .../model/Encounter$EncounterState.class | Bin 0 -> 3388 bytes .../Encounter$EncounterStateEnumFactory.class | Bin 0 -> 2051 bytes ...nter$EncounterStatusHistoryComponent.class | Bin 0 -> 5816 bytes .../hl7/fhir/instance/model/Encounter.class | Bin 0 -> 26050 bytes .../hl7/fhir/instance/model/Encounter.java | 4420 ++++--- .../instance/model/EnrollmentRequest.class | Bin 0 -> 13745 bytes .../instance/model/EnrollmentRequest.java | 1214 +- .../instance/model/EnrollmentResponse$1.class | Bin 0 -> 835 bytes .../model/EnrollmentResponse$RSLink.class | Bin 0 -> 2481 bytes ...EnrollmentResponse$RSLinkEnumFactory.class | Bin 0 -> 1740 bytes .../instance/model/EnrollmentResponse.class | Bin 0 -> 15510 bytes .../instance/model/EnrollmentResponse.java | 1395 +- .../hl7/fhir/instance/model/EnumFactory.class | Bin 0 -> 440 bytes .../hl7/fhir/instance/model/EnumFactory.java | 129 +- .../hl7/fhir/instance/model/Enumeration.class | Bin 0 -> 2464 bytes .../hl7/fhir/instance/model/Enumeration.java | 217 +- .../fhir/instance/model/EpisodeOfCare$1.class | Bin 0 -> 1058 bytes ...fCare$EpisodeOfCareCareTeamComponent.class | Bin 0 -> 6048 bytes .../EpisodeOfCare$EpisodeOfCareStatus.class | Bin 0 -> 3954 bytes ...fCare$EpisodeOfCareStatusEnumFactory.class | Bin 0 -> 2113 bytes ...$EpisodeOfCareStatusHistoryComponent.class | Bin 0 -> 5982 bytes .../fhir/instance/model/EpisodeOfCare.class | Bin 0 -> 18672 bytes .../fhir/instance/model/EpisodeOfCare.java | 1138 ++ .../model/ExplanationOfBenefit$1.class | Bin 0 -> 849 bytes .../model/ExplanationOfBenefit$RSLink.class | Bin 0 -> 2501 bytes ...planationOfBenefit$RSLinkEnumFactory.class | Bin 0 -> 1756 bytes .../instance/model/ExplanationOfBenefit.class | Bin 0 -> 15570 bytes .../instance/model/ExplanationOfBenefit.java | 1395 +- .../hl7/fhir/instance/model/Extension.class | Bin 0 -> 4362 bytes .../hl7/fhir/instance/model/Extension.java | 362 +- .../model/ExtensionDefinition$1.class | Bin 0 -> 1521 bytes ...ExtensionDefinition$ExtensionContext.class | Bin 0 -> 3444 bytes ...finition$ExtensionContextEnumFactory.class | Bin 0 -> 1996 bytes ...$ExtensionDefinitionMappingComponent.class | Bin 0 -> 7686 bytes ...sionDefinition$ResourceProfileStatus.class | Bin 0 -> 2835 bytes ...ion$ResourceProfileStatusEnumFactory.class | Bin 0 -> 1953 bytes .../instance/model/ExtensionDefinition.class | Bin 0 -> 25070 bytes .../instance/model/ExtensionDefinition.java | 2877 ++-- .../fhir/instance/model/ExtensionHelper.class | Bin 0 -> 3597 bytes .../fhir/instance/model/ExtensionHelper.java | 313 +- .../org/hl7/fhir/instance/model/Factory.class | Bin 0 -> 5594 bytes .../org/hl7/fhir/instance/model/Factory.java | 162 + ...story$FamilyHistoryRelationComponent.class | Bin 0 -> 12828 bytes ...ilyHistoryRelationConditionComponent.class | Bin 0 -> 7956 bytes .../fhir/instance/model/FamilyHistory.class | Bin 0 -> 10086 bytes .../fhir/instance/model/FamilyHistory.java | 2015 +-- .../org/hl7/fhir/instance/model/FhirEnum.java | 0 .../org/hl7/fhir/instance/model/Goal$1.class | Bin 0 -> 1061 bytes .../fhir/instance/model/Goal$GoalStatus.class | Bin 0 -> 3641 bytes .../model/Goal$GoalStatusEnumFactory.class | Bin 0 -> 2135 bytes .../org/hl7/fhir/instance/model/Goal.class | Bin 0 -> 11610 bytes .../org/hl7/fhir/instance/model/Goal.java | 1160 +- .../org/hl7/fhir/instance/model/Group$1.class | Bin 0 -> 960 bytes .../Group$GroupCharacteristicComponent.class | Bin 0 -> 7131 bytes .../fhir/instance/model/Group$GroupType.class | Bin 0 -> 3111 bytes .../model/Group$GroupTypeEnumFactory.class | Bin 0 -> 1975 bytes .../org/hl7/fhir/instance/model/Group.class | Bin 0 -> 14760 bytes .../org/hl7/fhir/instance/model/Group.java | 1679 +-- ...lthcareServiceAvailableTimeComponent.class | Bin 0 -> 8390 bytes ...careServiceNotAvailableTimeComponent.class | Bin 0 -> 6820 bytes ...althcareService$ServiceTypeComponent.class | Bin 0 -> 4540 bytes .../instance/model/HealthcareService.class | Bin 0 -> 30954 bytes .../instance/model/HealthcareService.java | 3779 +++--- .../hl7/fhir/instance/model/HumanName$1.class | Bin 0 -> 1014 bytes .../instance/model/HumanName$NameUse.class | Bin 0 -> 4058 bytes .../model/HumanName$NameUseEnumFactory.class | Bin 0 -> 2037 bytes .../hl7/fhir/instance/model/HumanName.class | Bin 0 -> 11365 bytes .../hl7/fhir/instance/model/HumanName.java | 1315 +- .../org/hl7/fhir/instance/model/IBase.java | 30 +- .../fhir/instance/model/IBaseResource.java | 31 +- .../fhir/instance/model/ICompositeType.java | 25 + .../fhir/instance/model/IPrimitiveType.java | 21 +- .../org/hl7/fhir/instance/model/IdType.class | Bin 0 -> 1284 bytes .../org/hl7/fhir/instance/model/IdType.java | 164 +- .../fhir/instance/model/Identifier$1.class | Bin 0 -> 909 bytes .../model/Identifier$IdentifierUse.class | Bin 0 -> 3023 bytes .../Identifier$IdentifierUseEnumFactory.class | Bin 0 -> 1885 bytes .../hl7/fhir/instance/model/Identifier.class | Bin 0 -> 10287 bytes .../hl7/fhir/instance/model/Identifier.java | 1042 +- ...agingObjectSelection$FramesComponent.class | Bin 0 -> 5642 bytes ...ingObjectSelection$InstanceComponent.class | Bin 0 -> 7439 bytes ...agingObjectSelection$SeriesComponent.class | Bin 0 -> 6557 bytes ...magingObjectSelection$StudyComponent.class | Bin 0 -> 6638 bytes .../model/ImagingObjectSelection.class | Bin 0 -> 13917 bytes .../model/ImagingObjectSelection.java | 2555 ++-- .../fhir/instance/model/ImagingStudy$1.class | Bin 0 -> 5365 bytes .../model/ImagingStudy$ImagingModality.class | Bin 0 -> 6530 bytes ...gingStudy$ImagingModalityEnumFactory.class | Bin 0 -> 3770 bytes ...ingStudy$ImagingStudySeriesComponent.class | Bin 0 -> 17037 bytes ...$ImagingStudySeriesInstanceComponent.class | Bin 0 -> 11168 bytes .../ImagingStudy$InstanceAvailability.class | Bin 0 -> 2904 bytes ...tudy$InstanceAvailabilityEnumFactory.class | Bin 0 -> 1932 bytes .../model/ImagingStudy$Modality.class | Bin 0 -> 8551 bytes .../ImagingStudy$ModalityEnumFactory.class | Bin 0 -> 4737 bytes .../fhir/instance/model/ImagingStudy.class | Bin 0 -> 26229 bytes .../hl7/fhir/instance/model/ImagingStudy.java | 7024 +++++----- ...ion$ImmunizationExplanationComponent.class | Bin 0 -> 3947 bytes ...zation$ImmunizationReactionComponent.class | Bin 0 -> 6670 bytes ...nizationVaccinationProtocolComponent.class | Bin 0 -> 11617 bytes .../fhir/instance/model/Immunization.class | Bin 0 -> 26065 bytes .../hl7/fhir/instance/model/Immunization.java | 3605 ++--- ...ecommendationRecommendationComponent.class | Bin 0 -> 13659 bytes ...RecommendationDateCriterionComponent.class | Bin 0 -> 5210 bytes ...ationRecommendationProtocolComponent.class | Bin 0 -> 8488 bytes .../model/ImmunizationRecommendation.class | Bin 0 -> 8599 bytes .../model/ImmunizationRecommendation.java | 2177 +-- .../fhir/instance/model/InstantType$1.class | Bin 0 -> 779 bytes .../hl7/fhir/instance/model/InstantType.class | Bin 0 -> 3060 bytes .../hl7/fhir/instance/model/InstantType.java | 458 +- .../instance/model/InstitutionalClaim$1.class | Bin 0 -> 941 bytes ...InstitutionalClaim$CoverageComponent.class | Bin 0 -> 12781 bytes .../InstitutionalClaim$DetailComponent.class | Bin 0 -> 12889 bytes ...nstitutionalClaim$DiagnosisComponent.class | Bin 0 -> 4795 bytes .../InstitutionalClaim$ItemsComponent.class | Bin 0 -> 19165 bytes .../InstitutionalClaim$PayeeComponent.class | Bin 0 -> 6873 bytes ...nstitutionalClaim$SubDetailComponent.class | Bin 0 -> 11326 bytes .../model/InstitutionalClaim$UseLink.class | Bin 0 -> 2976 bytes ...nstitutionalClaim$UseLinkEnumFactory.class | Bin 0 -> 1907 bytes .../instance/model/InstitutionalClaim.class | Bin 0 -> 29768 bytes .../instance/model/InstitutionalClaim.java | 7759 +++++------ .../hl7/fhir/instance/model/IntegerType.class | Bin 0 -> 2371 bytes .../hl7/fhir/instance/model/IntegerType.java | 232 +- .../org/hl7/fhir/instance/model/List_$1.class | Bin 0 -> 804 bytes .../model/List_$ListEntryComponent.class | Bin 0 -> 7893 bytes .../fhir/instance/model/List_$ListMode.class | Bin 0 -> 2711 bytes .../model/List_$ListModeEnumFactory.class | Bin 0 -> 1732 bytes .../org/hl7/fhir/instance/model/List_.class | Bin 0 -> 14434 bytes .../org/hl7/fhir/instance/model/List_.java | 1777 +-- .../hl7/fhir/instance/model/Location$1.class | Bin 0 -> 1248 bytes .../model/Location$LocationMode.class | Bin 0 -> 2467 bytes .../Location$LocationModeEnumFactory.class | Bin 0 -> 1712 bytes .../Location$LocationPositionComponent.class | Bin 0 -> 6111 bytes .../model/Location$LocationStatus.class | Bin 0 -> 2602 bytes .../Location$LocationStatusEnumFactory.class | Bin 0 -> 1812 bytes .../hl7/fhir/instance/model/Location.class | Bin 0 -> 18622 bytes .../org/hl7/fhir/instance/model/Location.java | 2124 +-- .../org/hl7/fhir/instance/model/Media$1.class | Bin 0 -> 802 bytes .../fhir/instance/model/Media$MediaType.class | Bin 0 -> 2660 bytes .../model/Media$MediaTypeEnumFactory.class | Bin 0 -> 1727 bytes .../org/hl7/fhir/instance/model/Media.class | Bin 0 -> 19431 bytes .../org/hl7/fhir/instance/model/Media.java | 1729 ++- .../fhir/instance/model/Medication$1.class | Bin 0 -> 820 bytes .../model/Medication$MedicationKind.class | Bin 0 -> 2497 bytes ...Medication$MedicationKindEnumFactory.class | Bin 0 -> 1750 bytes ...edication$MedicationPackageComponent.class | Bin 0 -> 4610 bytes ...on$MedicationPackageContentComponent.class | Bin 0 -> 4559 bytes ...tion$MedicationProductBatchComponent.class | Bin 0 -> 5435 bytes ...edication$MedicationProductComponent.class | Bin 0 -> 5732 bytes ...MedicationProductIngredientComponent.class | Bin 0 -> 4677 bytes .../hl7/fhir/instance/model/Medication.class | Bin 0 -> 13406 bytes .../hl7/fhir/instance/model/Medication.java | 2207 ++-- .../model/MedicationAdministration$1.class | Bin 0 -> 1108 bytes ...Administration$MedicationAdminStatus.class | Bin 0 -> 3457 bytes ...ion$MedicationAdminStatusEnumFactory.class | Bin 0 -> 2173 bytes ...icationAdministrationDosageComponent.class | Bin 0 -> 9032 bytes .../model/MedicationAdministration.class | Bin 0 -> 24547 bytes .../model/MedicationAdministration.java | 2476 ++-- .../instance/model/MedicationDispense$1.class | Bin 0 -> 1081 bytes ...onDispenseDosageInstructionComponent.class | Bin 0 -> 12227 bytes ...ionDispense$MedicationDispenseStatus.class | Bin 0 -> 3400 bytes ...$MedicationDispenseStatusEnumFactory.class | Bin 0 -> 2152 bytes ...icationDispenseSubstitutionComponent.class | Bin 0 -> 6183 bytes .../instance/model/MedicationDispense.class | Bin 0 -> 24994 bytes .../instance/model/MedicationDispense.java | 3291 +++-- .../model/MedicationPrescription$1.class | Bin 0 -> 1224 bytes ...icationPrescriptionDispenseComponent.class | Bin 0 -> 9920 bytes ...escriptionDosageInstructionComponent.class | Bin 0 -> 14287 bytes ...ription$MedicationPrescriptionStatus.class | Bin 0 -> 4188 bytes ...icationPrescriptionStatusEnumFactory.class | Bin 0 -> 2361 bytes ...ionPrescriptionSubstitutionComponent.class | Bin 0 -> 4074 bytes .../model/MedicationPrescription.class | Bin 0 -> 21350 bytes .../model/MedicationPrescription.java | 3265 ++--- .../model/MedicationStatement$1.class | Bin 0 -> 998 bytes ...t$MedicationStatementDosageComponent.class | Bin 0 -> 12449 bytes ...nStatement$MedicationStatementStatus.class | Bin 0 -> 2895 bytes ...MedicationStatementStatusEnumFactory.class | Bin 0 -> 2022 bytes .../instance/model/MedicationStatement.class | Bin 0 -> 21047 bytes .../instance/model/MedicationStatement.java | 2036 +-- .../fhir/instance/model/MessageHeader$1.class | Bin 0 -> 884 bytes ...geHeader$MessageDestinationComponent.class | Bin 0 -> 6674 bytes ...eader$MessageHeaderResponseComponent.class | Bin 0 -> 7798 bytes ...MessageHeader$MessageSourceComponent.class | Bin 0 -> 8131 bytes .../model/MessageHeader$ResponseCode.class | Bin 0 -> 2965 bytes ...essageHeader$ResponseCodeEnumFactory.class | Bin 0 -> 1842 bytes .../fhir/instance/model/MessageHeader.class | Bin 0 -> 18411 bytes .../fhir/instance/model/MessageHeader.java | 3014 ++--- .../org/hl7/fhir/instance/model/Meta.class | Bin 0 -> 10262 bytes .../org/hl7/fhir/instance/model/Meta.java | 421 + .../org/hl7/fhir/instance/model/Money.class | Bin 0 -> 2972 bytes .../org/hl7/fhir/instance/model/Money.java | 175 +- .../fhir/instance/model/NamingSystem$1.class | Bin 0 -> 1946 bytes ...gSystem$NamingSystemContactComponent.class | Bin 0 -> 4429 bytes ...System$NamingSystemUniqueIdComponent.class | Bin 0 -> 8888 bytes ...ingSystem$NamingsystemIdentifierType.class | Bin 0 -> 3091 bytes ...amingsystemIdentifierTypeEnumFactory.class | Bin 0 -> 1996 bytes .../NamingSystem$NamingsystemStatus.class | Bin 0 -> 2683 bytes ...System$NamingsystemStatusEnumFactory.class | Bin 0 -> 1876 bytes .../model/NamingSystem$NamingsystemType.class | Bin 0 -> 2871 bytes ...ngSystem$NamingsystemTypeEnumFactory.class | Bin 0 -> 1864 bytes .../fhir/instance/model/NamingSystem.class | Bin 0 -> 17738 bytes .../hl7/fhir/instance/model/NamingSystem.java | 2604 ++-- .../hl7/fhir/instance/model/Narrative$1.class | Bin 0 -> 920 bytes .../model/Narrative$NarrativeStatus.class | Bin 0 -> 3118 bytes ...Narrative$NarrativeStatusEnumFactory.class | Bin 0 -> 1911 bytes .../hl7/fhir/instance/model/Narrative.class | Bin 0 -> 5652 bytes .../hl7/fhir/instance/model/Narrative.java | 582 +- .../instance/model/NutritionOrder$1.class | Bin 0 -> 1023 bytes ...utritionOrderEnteralFormulaComponent.class | Bin 0 -> 14706 bytes ...rder$NutritionOrderOralDietComponent.class | Bin 0 -> 9742 bytes ...itionOrderOralDietNutrientsComponent.class | Bin 0 -> 4205 bytes ...tritionOrderOralDietTextureComponent.class | Bin 0 -> 4097 bytes .../NutritionOrder$NutritionOrderStatus.class | Bin 0 -> 2954 bytes ...rder$NutritionOrderStatusEnumFactory.class | Bin 0 -> 2060 bytes ...er$NutritionOrderSupplementComponent.class | Bin 0 -> 6967 bytes .../fhir/instance/model/NutritionOrder.class | Bin 0 -> 21171 bytes .../fhir/instance/model/NutritionOrder.java | 4180 +++--- .../fhir/instance/model/Observation$1.class | Bin 0 -> 3192 bytes .../model/Observation$DataAbsentReason.class | Bin 0 -> 3735 bytes ...ervation$DataAbsentReasonEnumFactory.class | Bin 0 -> 2212 bytes ...n$ObservationReferenceRangeComponent.class | Bin 0 -> 7739 bytes ...ervation$ObservationRelatedComponent.class | Bin 0 -> 6263 bytes ...rvation$ObservationRelationshiptypes.class | Bin 0 -> 4273 bytes ...ervationRelationshiptypesEnumFactory.class | Bin 0 -> 2304 bytes .../Observation$ObservationReliability.class | Bin 0 -> 3557 bytes ...on$ObservationReliabilityEnumFactory.class | Bin 0 -> 2200 bytes .../model/Observation$ObservationStatus.class | Bin 0 -> 3573 bytes ...rvation$ObservationStatusEnumFactory.class | Bin 0 -> 2111 bytes .../hl7/fhir/instance/model/Observation.class | Bin 0 -> 32947 bytes .../hl7/fhir/instance/model/Observation.java | 4137 +++--- .../org/hl7/fhir/instance/model/OidType.class | Bin 0 -> 898 bytes .../org/hl7/fhir/instance/model/OidType.java | 162 +- .../model/OperationDefinition$1.class | Bin 0 -> 1880 bytes ...perationDefinitionParameterComponent.class | Bin 0 -> 14224 bytes ...tionDefinitionParameterPartComponent.class | Bin 0 -> 10312 bytes .../OperationDefinition$OperationKind.class | Bin 0 -> 2588 bytes ...nDefinition$OperationKindEnumFactory.class | Bin 0 -> 1813 bytes ...tionDefinition$OperationParameterUse.class | Bin 0 -> 2587 bytes ...ion$OperationParameterUseEnumFactory.class | Bin 0 -> 1867 bytes ...tionDefinition$ResourceProfileStatus.class | Bin 0 -> 2835 bytes ...ion$ResourceProfileStatusEnumFactory.class | Bin 0 -> 1953 bytes .../instance/model/OperationDefinition.class | Bin 0 -> 28251 bytes .../instance/model/OperationDefinition.java | 4448 +++---- .../instance/model/OperationOutcome$1.class | Bin 0 -> 953 bytes .../OperationOutcome$IssueSeverity.class | Bin 0 -> 3071 bytes ...tionOutcome$IssueSeverityEnumFactory.class | Bin 0 -> 1937 bytes ...tcome$OperationOutcomeIssueComponent.class | Bin 0 -> 8937 bytes .../instance/model/OperationOutcome.class | Bin 0 -> 3818 bytes .../fhir/instance/model/OperationOutcome.java | 995 +- .../instance/model/OralHealthClaim$1.class | Bin 0 -> 920 bytes .../OralHealthClaim$CoverageComponent.class | Bin 0 -> 12739 bytes .../OralHealthClaim$DetailComponent.class | Bin 0 -> 12844 bytes .../OralHealthClaim$DiagnosisComponent.class | Bin 0 -> 4774 bytes .../OralHealthClaim$ItemsComponent.class | Bin 0 -> 20123 bytes ...ralHealthClaim$MissingTeethComponent.class | Bin 0 -> 5420 bytes ...HealthClaim$OrthodonticPlanComponent.class | Bin 0 -> 9000 bytes .../OralHealthClaim$PayeeComponent.class | Bin 0 -> 6846 bytes .../OralHealthClaim$ProsthesisComponent.class | Bin 0 -> 6172 bytes .../OralHealthClaim$SubDetailComponent.class | Bin 0 -> 11295 bytes .../model/OralHealthClaim$UseLink.class | Bin 0 -> 2946 bytes .../OralHealthClaim$UseLinkEnumFactory.class | Bin 0 -> 1883 bytes .../fhir/instance/model/OralHealthClaim.class | Bin 0 -> 31842 bytes .../fhir/instance/model/OralHealthClaim.java | 9359 ++++++------- .../model/Order$OrderWhenComponent.class | Bin 0 -> 3960 bytes .../org/hl7/fhir/instance/model/Order.class | Bin 0 -> 13722 bytes .../org/hl7/fhir/instance/model/Order.java | 1357 +- .../fhir/instance/model/OrderResponse$1.class | Bin 0 -> 1194 bytes .../OrderResponse$OrderOutcomeCode.class | Bin 0 -> 4060 bytes ...Response$OrderOutcomeCodeEnumFactory.class | Bin 0 -> 2316 bytes .../fhir/instance/model/OrderResponse.class | Bin 0 -> 15590 bytes .../fhir/instance/model/OrderResponse.java | 1443 +- .../fhir/instance/model/Organization$1.class | Bin 0 -> 954 bytes .../Organization$AdministrativeGender.class | Bin 0 -> 2751 bytes ...tion$AdministrativeGenderEnumFactory.class | Bin 0 -> 1956 bytes ...ization$OrganizationContactComponent.class | Bin 0 -> 8865 bytes .../fhir/instance/model/Organization.class | Bin 0 -> 14693 bytes .../hl7/fhir/instance/model/Organization.java | 1801 +-- .../org/hl7/fhir/instance/model/Other.class | Bin 0 -> 8744 bytes .../org/hl7/fhir/instance/model/Other.java | 708 +- ...ameters$ParametersParameterComponent.class | Bin 0 -> 6836 bytes ...ers$ParametersParameterPartComponent.class | Bin 0 -> 4631 bytes .../hl7/fhir/instance/model/Parameters.class | Bin 0 -> 3484 bytes .../hl7/fhir/instance/model/Parameters.java | 918 +- .../hl7/fhir/instance/model/Patient$1.class | Bin 0 -> 1335 bytes .../model/Patient$AdministrativeGender.class | Bin 0 -> 2701 bytes ...ient$AdministrativeGenderEnumFactory.class | Bin 0 -> 1916 bytes .../model/Patient$AnimalComponent.class | Bin 0 -> 4411 bytes .../model/Patient$ContactComponent.class | Bin 0 -> 11160 bytes .../instance/model/Patient$LinkType.class | Bin 0 -> 3269 bytes .../model/Patient$LinkTypeEnumFactory.class | Bin 0 -> 1742 bytes .../model/Patient$PatientLinkComponent.class | Bin 0 -> 6020 bytes .../org/hl7/fhir/instance/model/Patient.class | Bin 0 -> 25745 bytes .../org/hl7/fhir/instance/model/Patient.java | 3503 ++--- .../fhir/instance/model/PaymentNotice.class | Bin 0 -> 12880 bytes .../fhir/instance/model/PaymentNotice.java | 1182 +- .../model/PaymentReconciliation$1.class | Bin 0 -> 856 bytes ...ymentReconciliation$DetailsComponent.class | Bin 0 -> 9467 bytes ...PaymentReconciliation$NotesComponent.class | Bin 0 -> 4645 bytes .../model/PaymentReconciliation$RSLink.class | Bin 0 -> 2511 bytes ...mentReconciliation$RSLinkEnumFactory.class | Bin 0 -> 1764 bytes .../model/PaymentReconciliation.class | Bin 0 -> 20079 bytes .../instance/model/PaymentReconciliation.java | 2852 ++-- .../fhir/instance/model/PendedRequest.class | Bin 0 -> 14653 bytes .../fhir/instance/model/PendedRequest.java | 1337 +- .../org/hl7/fhir/instance/model/Period.class | Bin 0 -> 4639 bytes .../org/hl7/fhir/instance/model/Period.java | 417 +- .../hl7/fhir/instance/model/Person$1.class | Bin 0 -> 1440 bytes .../model/Person$AdministrativeGender.class | Bin 0 -> 2691 bytes ...rson$AdministrativeGenderEnumFactory.class | Bin 0 -> 1908 bytes .../model/Person$IdentityAssuranceLevel.class | Bin 0 -> 2964 bytes ...on$IdentityAssuranceLevelEnumFactory.class | Bin 0 -> 1930 bytes .../model/Person$PersonLinkComponent.class | Bin 0 -> 6152 bytes .../org/hl7/fhir/instance/model/Person.class | Bin 0 -> 16473 bytes .../org/hl7/fhir/instance/model/Person.java | 1907 +-- .../fhir/instance/model/PharmacyClaim$1.class | Bin 0 -> 906 bytes .../PharmacyClaim$CoverageComponent.class | Bin 0 -> 12714 bytes .../model/PharmacyClaim$DetailComponent.class | Bin 0 -> 12813 bytes .../PharmacyClaim$DiagnosisComponent.class | Bin 0 -> 4760 bytes .../model/PharmacyClaim$ItemsComponent.class | Bin 0 -> 19069 bytes .../model/PharmacyClaim$PayeeComponent.class | Bin 0 -> 6828 bytes .../PharmacyClaim$SubDetailComponent.class | Bin 0 -> 11271 bytes .../model/PharmacyClaim$UseLink.class | Bin 0 -> 2926 bytes .../PharmacyClaim$UseLinkEnumFactory.class | Bin 0 -> 1867 bytes .../fhir/instance/model/PharmacyClaim.class | Bin 0 -> 31642 bytes .../fhir/instance/model/PharmacyClaim.java | 7994 +++++------ .../fhir/instance/model/Practitioner$1.class | Bin 0 -> 954 bytes .../Practitioner$AdministrativeGender.class | Bin 0 -> 2751 bytes ...oner$AdministrativeGenderEnumFactory.class | Bin 0 -> 1956 bytes ...r$PractitionerQualificationComponent.class | Bin 0 -> 7054 bytes .../fhir/instance/model/Practitioner.class | Bin 0 -> 20645 bytes .../hl7/fhir/instance/model/Practitioner.java | 2181 +-- .../fhir/instance/model/PrimitiveType.class | Bin 0 -> 2980 bytes .../fhir/instance/model/PrimitiveType.java | 267 +- .../hl7/fhir/instance/model/Procedure$1.class | Bin 0 -> 871 bytes ...rocedure$ProcedurePerformerComponent.class | Bin 0 -> 4503 bytes ...cedure$ProcedureRelatedItemComponent.class | Bin 0 -> 6816 bytes .../Procedure$ProcedureRelationshipType.class | Bin 0 -> 2610 bytes ...ProcedureRelationshipTypeEnumFactory.class | Bin 0 -> 1849 bytes .../hl7/fhir/instance/model/Procedure.class | Bin 0 -> 19403 bytes .../hl7/fhir/instance/model/Procedure.java | 2296 ++-- .../instance/model/ProcedureRequest$1.class | Bin 0 -> 1879 bytes ...dureRequest$ProcedureRequestPriority.class | Bin 0 -> 2953 bytes ...$ProcedureRequestPriorityEnumFactory.class | Bin 0 -> 2022 bytes ...cedureRequest$ProcedureRequestStatus.class | Bin 0 -> 4296 bytes ...st$ProcedureRequestStatusEnumFactory.class | Bin 0 -> 2489 bytes .../instance/model/ProcedureRequest.class | Bin 0 -> 21590 bytes .../fhir/instance/model/ProcedureRequest.java | 2396 ++-- .../instance/model/ProfessionalClaim$1.class | Bin 0 -> 934 bytes .../ProfessionalClaim$CoverageComponent.class | Bin 0 -> 12767 bytes .../ProfessionalClaim$DetailComponent.class | Bin 0 -> 12873 bytes ...ProfessionalClaim$DiagnosisComponent.class | Bin 0 -> 4788 bytes .../ProfessionalClaim$ItemsComponent.class | Bin 0 -> 19145 bytes .../ProfessionalClaim$PayeeComponent.class | Bin 0 -> 6864 bytes ...ProfessionalClaim$SubDetailComponent.class | Bin 0 -> 11315 bytes .../model/ProfessionalClaim$UseLink.class | Bin 0 -> 2966 bytes ...ProfessionalClaim$UseLinkEnumFactory.class | Bin 0 -> 1899 bytes .../instance/model/ProfessionalClaim.class | Bin 0 -> 29700 bytes .../instance/model/ProfessionalClaim.java | 7759 +++++------ .../hl7/fhir/instance/model/Profile$1.class | Bin 0 -> 879 bytes .../model/Profile$ConstraintComponent.class | Bin 0 -> 3208 bytes .../Profile$ProfileMappingComponent.class | Bin 0 -> 7458 bytes .../model/Profile$ResourceProfileStatus.class | Bin 0 -> 2715 bytes ...ile$ResourceProfileStatusEnumFactory.class | Bin 0 -> 1857 bytes .../org/hl7/fhir/instance/model/Profile.class | Bin 0 -> 25962 bytes .../org/hl7/fhir/instance/model/Profile.java | 2983 ++--- .../hl7/fhir/instance/model/Property.class | Bin 0 -> 2021 bytes .../org/hl7/fhir/instance/model/Property.java | 275 +- .../fhir/instance/model/Provenance$1.class | Bin 0 -> 951 bytes .../Provenance$ProvenanceAgentComponent.class | Bin 0 -> 6847 bytes ...Provenance$ProvenanceEntityComponent.class | Bin 0 -> 9858 bytes .../Provenance$ProvenanceEntityRole.class | Bin 0 -> 3279 bytes ...ance$ProvenanceEntityRoleEnumFactory.class | Bin 0 -> 1962 bytes .../hl7/fhir/instance/model/Provenance.class | Bin 0 -> 15617 bytes .../hl7/fhir/instance/model/Provenance.java | 2336 ++-- .../hl7/fhir/instance/model/Quantity$1.class | Bin 0 -> 944 bytes .../model/Quantity$QuantityComparator.class | Bin 0 -> 2897 bytes ...antity$QuantityComparatorEnumFactory.class | Bin 0 -> 1918 bytes .../hl7/fhir/instance/model/Quantity.class | Bin 0 -> 9756 bytes .../org/hl7/fhir/instance/model/Quantity.java | 977 +- .../fhir/instance/model/Questionnaire$1.class | Bin 0 -> 1912 bytes .../model/Questionnaire$AnswerFormat.class | Bin 0 -> 4736 bytes ...uestionnaire$AnswerFormatEnumFactory.class | Bin 0 -> 2643 bytes .../model/Questionnaire$GroupComponent.class | Bin 0 -> 11743 bytes .../Questionnaire$QuestionComponent.class | Bin 0 -> 13499 bytes .../Questionnaire$QuestionnaireStatus.class | Bin 0 -> 2743 bytes ...naire$QuestionnaireStatusEnumFactory.class | Bin 0 -> 1893 bytes .../fhir/instance/model/Questionnaire.class | Bin 0 -> 12856 bytes .../fhir/instance/model/Questionnaire.java | 3358 ++--- .../model/QuestionnaireAnswers$1.class | Bin 0 -> 1003 bytes .../QuestionnaireAnswers$GroupComponent.class | Bin 0 -> 9602 bytes ...naireAnswers$QuestionAnswerComponent.class | Bin 0 -> 7228 bytes ...estionnaireAnswers$QuestionComponent.class | Bin 0 -> 7586 bytes ...reAnswers$QuestionnaireAnswersStatus.class | Bin 0 -> 3126 bytes ...uestionnaireAnswersStatusEnumFactory.class | Bin 0 -> 2023 bytes .../instance/model/QuestionnaireAnswers.class | Bin 0 -> 15803 bytes .../instance/model/QuestionnaireAnswers.java | 2838 ++-- .../org/hl7/fhir/instance/model/Range.class | Bin 0 -> 3475 bytes .../org/hl7/fhir/instance/model/Range.java | 317 +- .../org/hl7/fhir/instance/model/Ratio.class | Bin 0 -> 3526 bytes .../org/hl7/fhir/instance/model/Ratio.java | 318 +- .../model/Readjudicate$ItemsComponent.class | Bin 0 -> 3863 bytes .../fhir/instance/model/Readjudicate.class | Bin 0 -> 14688 bytes .../hl7/fhir/instance/model/Readjudicate.java | 1496 +-- .../hl7/fhir/instance/model/Reference.class | Bin 0 -> 5204 bytes .../hl7/fhir/instance/model/Reference.java | 451 +- .../instance/model/ReferralRequest$1.class | Bin 0 -> 1046 bytes .../ReferralRequest$Referralstatus.class | Bin 0 -> 3397 bytes ...ralRequest$ReferralstatusEnumFactory.class | Bin 0 -> 2082 bytes .../fhir/instance/model/ReferralRequest.class | Bin 0 -> 21124 bytes .../fhir/instance/model/ReferralRequest.java | 1919 +-- .../fhir/instance/model/RelatedPerson$1.class | Bin 0 -> 961 bytes .../RelatedPerson$AdministrativeGender.class | Bin 0 -> 2761 bytes ...rson$AdministrativeGenderEnumFactory.class | Bin 0 -> 1964 bytes .../fhir/instance/model/RelatedPerson.class | Bin 0 -> 14222 bytes .../fhir/instance/model/RelatedPerson.java | 1171 +- .../hl7/fhir/instance/model/Resource.class | Bin 0 -> 7035 bytes .../org/hl7/fhir/instance/model/Resource.java | 300 + .../instance/model/ResourceEnumerations.class | Bin 0 -> 1274 bytes .../instance/model/ResourceEnumerations.java | 16 + .../fhir/instance/model/ResourceFactory.class | Bin 0 -> 12854 bytes .../fhir/instance/model/ResourceFactory.java | 297 + .../fhir/instance/model/ResourceType$1.class | Bin 0 -> 6197 bytes .../fhir/instance/model/ResourceType.class | Bin 0 -> 10654 bytes .../hl7/fhir/instance/model/ResourceType.java | 655 +- .../model/Reversal$PayeeComponent.class | Bin 0 -> 6756 bytes .../Reversal$ReversalCoverageComponent.class | Bin 0 -> 9388 bytes .../hl7/fhir/instance/model/Reversal.class | Bin 0 -> 16017 bytes .../org/hl7/fhir/instance/model/Reversal.java | 2453 ++-- ...nt$RiskAssessmentPredictionComponent.class | Bin 0 -> 9626 bytes .../fhir/instance/model/RiskAssessment.class | Bin 0 -> 14006 bytes .../fhir/instance/model/RiskAssessment.java | 1716 +-- .../hl7/fhir/instance/model/SampledData.class | Bin 0 -> 10977 bytes .../hl7/fhir/instance/model/SampledData.java | 949 +- .../hl7/fhir/instance/model/Schedule.class | Bin 0 -> 11649 bytes .../org/hl7/fhir/instance/model/Schedule.java | 806 +- .../instance/model/SearchParameter$1.class | Bin 0 -> 1100 bytes .../SearchParameter$SearchParamType.class | Bin 0 -> 3974 bytes ...Parameter$SearchParamTypeEnumFactory.class | Bin 0 -> 2165 bytes .../fhir/instance/model/SearchParameter.class | Bin 0 -> 16292 bytes .../fhir/instance/model/SearchParameter.java | 1649 +-- .../fhir/instance/model/SecurityEvent$1.class | Bin 0 -> 4745 bytes .../model/SecurityEvent$NetworkType.class | Bin 0 -> 2876 bytes ...SecurityEvent$NetworkTypeEnumFactory.class | Bin 0 -> 1914 bytes .../model/SecurityEvent$ObjectLifecycle.class | Bin 0 -> 4443 bytes ...rityEvent$ObjectLifecycleEnumFactory.class | Bin 0 -> 2592 bytes .../model/SecurityEvent$ObjectRole.class | Bin 0 -> 8934 bytes .../SecurityEvent$ObjectRoleEnumFactory.class | Bin 0 -> 3132 bytes .../model/SecurityEvent$ObjectType.class | Bin 0 -> 2657 bytes .../SecurityEvent$ObjectTypeEnumFactory.class | Bin 0 -> 1842 bytes .../SecurityEvent$SecurityEventAction.class | Bin 0 -> 3202 bytes ...Event$SecurityEventActionEnumFactory.class | Bin 0 -> 1961 bytes ...ityEvent$SecurityEventEventComponent.class | Bin 0 -> 11741 bytes ...tyEvent$SecurityEventObjectComponent.class | Bin 0 -> 16758 bytes ...t$SecurityEventObjectDetailComponent.class | Bin 0 -> 5237 bytes .../SecurityEvent$SecurityEventOutcome.class | Bin 0 -> 3177 bytes ...vent$SecurityEventOutcomeEnumFactory.class | Bin 0 -> 1934 bytes ...nt$SecurityEventParticipantComponent.class | Bin 0 -> 12725 bytes ...rityEventParticipantNetworkComponent.class | Bin 0 -> 6300 bytes ...tyEvent$SecurityEventSourceComponent.class | Bin 0 -> 6328 bytes .../fhir/instance/model/SecurityEvent.class | Bin 0 -> 11204 bytes .../fhir/instance/model/SecurityEvent.java | 6382 ++++----- .../org/hl7/fhir/instance/model/SidType.class | Bin 0 -> 299 bytes .../org/hl7/fhir/instance/model/SidType.java | 122 +- .../org/hl7/fhir/instance/model/Slot$1.class | Bin 0 -> 862 bytes .../fhir/instance/model/Slot$Slotstatus.class | Bin 0 -> 2934 bytes .../model/Slot$SlotstatusEnumFactory.class | Bin 0 -> 1818 bytes .../org/hl7/fhir/instance/model/Slot.class | Bin 0 -> 16109 bytes .../org/hl7/fhir/instance/model/Slot.java | 1384 +- .../hl7/fhir/instance/model/Specimen$1.class | Bin 0 -> 873 bytes ...pecimen$HierarchicalRelationshipType.class | Bin 0 -> 2649 bytes ...rarchicalRelationshipTypeEnumFactory.class | Bin 0 -> 1854 bytes ...Specimen$SpecimenCollectionComponent.class | Bin 0 -> 10342 bytes .../Specimen$SpecimenContainerComponent.class | Bin 0 -> 9684 bytes .../Specimen$SpecimenSourceComponent.class | Bin 0 -> 6657 bytes .../Specimen$SpecimenTreatmentComponent.class | Bin 0 -> 6724 bytes .../hl7/fhir/instance/model/Specimen.class | Bin 0 -> 14815 bytes .../org/hl7/fhir/instance/model/Specimen.java | 3068 ++--- .../fhir/instance/model/StatusRequest.class | Bin 0 -> 12101 bytes .../fhir/instance/model/StatusRequest.java | 1104 +- ...esponse$StatusResponseNotesComponent.class | Bin 0 -> 4708 bytes .../fhir/instance/model/StatusResponse.class | Bin 0 -> 16192 bytes .../fhir/instance/model/StatusResponse.java | 1684 +-- .../hl7/fhir/instance/model/StringType.class | Bin 0 -> 1791 bytes .../hl7/fhir/instance/model/StringType.java | 219 +- .../model/StructureDefinition$1.class | Bin 0 -> 2159 bytes ...StructureDefinition$ExtensionContext.class | Bin 0 -> 3444 bytes ...finition$ExtensionContextEnumFactory.class | Bin 0 -> 1996 bytes ...ctureDefinitionDifferentialComponent.class | Bin 0 -> 3314 bytes ...$StructureDefinitionMappingComponent.class | Bin 0 -> 7686 bytes ...StructureDefinitionSnapshotComponent.class | Bin 0 -> 3302 bytes ...Definition$StructureDefinitionStatus.class | Bin 0 -> 2871 bytes ...StructureDefinitionStatusEnumFactory.class | Bin 0 -> 1989 bytes ...reDefinition$StructureDefinitionType.class | Bin 0 -> 3649 bytes ...n$StructureDefinitionTypeEnumFactory.class | Bin 0 -> 2133 bytes .../instance/model/StructureDefinition.class | Bin 0 -> 32379 bytes .../instance/model/StructureDefinition.java | 2001 +++ .../fhir/instance/model/Subscription$1.class | Bin 0 -> 1551 bytes ...ription$SubscriptionChannelComponent.class | Bin 0 -> 8449 bytes ...Subscription$SubscriptionChannelType.class | Bin 0 -> 3565 bytes ...n$SubscriptionChannelTypeEnumFactory.class | Bin 0 -> 2064 bytes .../Subscription$SubscriptionStatus.class | Bin 0 -> 2933 bytes ...iption$SubscriptionStatusEnumFactory.class | Bin 0 -> 1940 bytes ...ubscription$SubscriptionTagComponent.class | Bin 0 -> 6041 bytes .../fhir/instance/model/Subscription.class | Bin 0 -> 14103 bytes .../hl7/fhir/instance/model/Subscription.java | 2430 ++-- ...bstance$SubstanceIngredientComponent.class | Bin 0 -> 4584 bytes ...Substance$SubstanceInstanceComponent.class | Bin 0 -> 5709 bytes .../hl7/fhir/instance/model/Substance.class | Bin 0 -> 8424 bytes .../hl7/fhir/instance/model/Substance.java | 1149 +- .../hl7/fhir/instance/model/Supply$1.class | Bin 0 -> 1481 bytes .../Supply$SupplyDispenseComponent.class | Bin 0 -> 15382 bytes .../Supply$ValuesetSupplyDispenseStatus.class | Bin 0 -> 2804 bytes ...uesetSupplyDispenseStatusEnumFactory.class | Bin 0 -> 1933 bytes .../model/Supply$ValuesetSupplyStatus.class | Bin 0 -> 3198 bytes ...pply$ValuesetSupplyStatusEnumFactory.class | Bin 0 -> 2006 bytes .../org/hl7/fhir/instance/model/Supply.class | Bin 0 -> 11459 bytes .../org/hl7/fhir/instance/model/Supply.java | 2224 ++-- ...pportingDocumentationDetailComponent.class | Bin 0 -> 7310 bytes .../model/SupportingDocumentation.class | Bin 0 -> 15745 bytes .../model/SupportingDocumentation.java | 1826 +-- .../model/TemporalPrecisionEnum$1.class | Bin 0 -> 598 bytes .../model/TemporalPrecisionEnum$2.class | Bin 0 -> 664 bytes .../model/TemporalPrecisionEnum$3.class | Bin 0 -> 662 bytes .../model/TemporalPrecisionEnum$4.class | Bin 0 -> 665 bytes .../model/TemporalPrecisionEnum$5.class | Bin 0 -> 665 bytes .../model/TemporalPrecisionEnum$6.class | Bin 0 -> 670 bytes .../model/TemporalPrecisionEnum.class | Bin 0 -> 2037 bytes .../instance/model/TemporalPrecisionEnum.java | 20 - .../hl7/fhir/instance/model/TimeType.class | Bin 0 -> 1252 bytes .../org/hl7/fhir/instance/model/TimeType.java | 162 +- .../hl7/fhir/instance/model/Timing$1.class | Bin 0 -> 1709 bytes .../instance/model/Timing$EventTiming.class | Bin 0 -> 4034 bytes .../model/Timing$EventTimingEnumFactory.class | Bin 0 -> 2141 bytes .../model/Timing$TimingRepeatComponent.class | Bin 0 -> 11330 bytes .../instance/model/Timing$UnitsOfTime.class | Bin 0 -> 3028 bytes .../model/Timing$UnitsOfTimeEnumFactory.class | Bin 0 -> 1985 bytes .../org/hl7/fhir/instance/model/Timing.class | Bin 0 -> 4798 bytes .../org/hl7/fhir/instance/model/Timing.java | 1763 +-- .../org/hl7/fhir/instance/model/Type.class | Bin 0 -> 507 bytes .../org/hl7/fhir/instance/model/Type.java | 109 +- .../org/hl7/fhir/instance/model/UriType.class | Bin 0 -> 3047 bytes .../org/hl7/fhir/instance/model/UriType.java | 335 +- .../hl7/fhir/instance/model/UuidType.class | Bin 0 -> 901 bytes .../org/hl7/fhir/instance/model/UuidType.java | 153 +- .../hl7/fhir/instance/model/ValueSet$1.class | Bin 0 -> 1432 bytes .../ValueSet$ConceptDefinitionComponent.class | Bin 0 -> 10257 bytes ...onceptDefinitionDesignationComponent.class | Bin 0 -> 6164 bytes .../ValueSet$ConceptReferenceComponent.class | Bin 0 -> 7068 bytes .../model/ValueSet$ConceptSetComponent.class | Bin 0 -> 7816 bytes .../ValueSet$ConceptSetFilterComponent.class | Bin 0 -> 7215 bytes .../model/ValueSet$FilterOperator.class | Bin 0 -> 3483 bytes .../ValueSet$FilterOperatorEnumFactory.class | Bin 0 -> 1998 bytes .../ValueSet$ValueSetComposeComponent.class | Bin 0 -> 5576 bytes .../ValueSet$ValueSetDefineComponent.class | Bin 0 -> 8288 bytes .../ValueSet$ValueSetExpansionComponent.class | Bin 0 -> 6453 bytes ...t$ValueSetExpansionContainsComponent.class | Bin 0 -> 10360 bytes .../model/ValueSet$ValuesetStatus.class | Bin 0 -> 2689 bytes .../ValueSet$ValuesetStatusEnumFactory.class | Bin 0 -> 1802 bytes .../hl7/fhir/instance/model/ValueSet.class | Bin 0 -> 24976 bytes .../org/hl7/fhir/instance/model/ValueSet.java | 6741 +++++----- .../fhir/instance/model/VisionClaim$1.class | Bin 0 -> 892 bytes .../model/VisionClaim$CoverageComponent.class | Bin 0 -> 12683 bytes .../model/VisionClaim$DetailComponent.class | Bin 0 -> 12783 bytes .../VisionClaim$DiagnosisComponent.class | Bin 0 -> 4746 bytes .../model/VisionClaim$ItemsComponent.class | Bin 0 -> 19031 bytes .../model/VisionClaim$PayeeComponent.class | Bin 0 -> 6810 bytes .../VisionClaim$SubDetailComponent.class | Bin 0 -> 11249 bytes .../instance/model/VisionClaim$UseLink.class | Bin 0 -> 2906 bytes .../VisionClaim$UseLinkEnumFactory.class | Bin 0 -> 1851 bytes .../hl7/fhir/instance/model/VisionClaim.class | Bin 0 -> 30469 bytes .../hl7/fhir/instance/model/VisionClaim.java | 7817 +++++------ .../instance/model/VisionPrescription$1.class | Bin 0 -> 1339 bytes .../model/VisionPrescription$BaseCodes.class | Bin 0 -> 2701 bytes ...ionPrescription$BaseCodesEnumFactory.class | Bin 0 -> 1883 bytes .../model/VisionPrescription$EyeCodes.class | Bin 0 -> 2432 bytes ...sionPrescription$EyeCodesEnumFactory.class | Bin 0 -> 1750 bytes ...$VisionPrescriptionDispenseComponent.class | Bin 0 -> 20230 bytes .../instance/model/VisionPrescription.class | Bin 0 -> 13232 bytes .../instance/model/VisionPrescription.java | 1528 +++ .../instance/model/annotations/Block.class | Bin 0 -> 527 bytes .../instance/model/annotations/Block.java | 55 + .../instance/model/annotations/Child.class | Bin 0 -> 763 bytes .../instance/model/annotations/Child.java | 109 + .../model/annotations/DatatypeDef.class | Bin 0 -> 518 bytes .../model/annotations/DatatypeDef.java | 58 + .../model/annotations/Description.class | Bin 0 -> 574 bytes .../model/annotations/Description.java | 55 + .../model/annotations/Extension.class | Bin 0 -> 499 bytes .../instance/model/annotations/Extension.java | 45 +- .../model/annotations/ResourceDef.class | Bin 0 -> 523 bytes .../model/annotations/ResourceDef.java | 69 + .../annotations/SearchParamDefinition.class | Bin 0 -> 629 bytes .../annotations/SearchParamDefinition.java | 70 + .../java/org/hl7/fhir/utilities/CSFile.java | 0 .../org/hl7/fhir/utilities/FileNotifier.java | 0 .../org/hl7/fhir/utilities/Inflector.java | 0 .../org/hl7/fhir/utilities/MyURIResolver.java | 0 .../org/hl7/fhir/utilities/Utilities.java | 0 .../hl7/fhir/utilities/ZipURIResolver.java | 0 .../hl7/fhir/utilities/xhtml/NodeType.java | 0 .../fhir/utilities/xhtml/XhtmlComposer.java | 275 + .../fhir/utilities/xhtml/XhtmlDocument.java | 37 + .../hl7/fhir/utilities/xhtml/XhtmlNode.java | 553 +- .../hl7/fhir/utilities/xhtml/XhtmlParser.java | 933 ++ .../hl7/fhir/utilities/xml/IXMLWriter.java | 132 + .../instance/model/fhirversion.properties | 130 + .../parser/ContainedResourceEncodingTest.java | 114 +- .../ca/uhn/fhir/parser/JsonParserTest.java | 591 +- .../parser/MyObservationWithExtensions.java | 60 +- .../ca/uhn/fhir/parser/MyOrganization.java | 11 + .../java/ca/uhn/fhir/parser/MyPatient.java | 35 +- .../fhir/parser/ResourceWithExtensionsA.java | 207 + .../ca/uhn/fhir/parser/XmlParserTest.java | 700 +- 1036 files changed, 166560 insertions(+), 155443 deletions(-) create mode 100644 hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildDirectResource.java create mode 100644 hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeElementDirectResource.java delete mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/formats/FormatUtilities.java delete mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Bundle.java delete mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CareActivity.java delete mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/GoalRequest.java delete mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Resource.java delete mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/Child.java delete mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/DatatypeDef.java delete mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/Description.java delete mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/SearchParamDefinition.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IAnyResource.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBackboneElement.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseBooleanDatatype.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseDatatype.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseDecimalDatatype.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseElement.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseExtension.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseIntegerDatatype.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/ICoding.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IDatatypeElement.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IDomainResource.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IIdType.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IMetaType.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/INarrative.java create mode 100644 hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IReference.java create mode 100644 hapi-fhir-structures-dstu2/.gitignore delete mode 100644 hapi-fhir-structures-hl7org-dev/.gitignore delete mode 100644 hapi-fhir-structures-hl7org-dev/src/test/java/ca/uhn/fhir/parser/MyOrganization.java rename {hapi-fhir-structures-hl7org-dev => hapi-fhir-structures-hl7org-dstu2}/.classpath (88%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/.gitignore rename {hapi-fhir-structures-hl7org-dev => hapi-fhir-structures-hl7org-dstu2}/.project (100%) rename {hapi-fhir-structures-hl7org-dev => hapi-fhir-structures-hl7org-dstu2}/bin/.project (100%) rename {hapi-fhir-structures-hl7org-dev => hapi-fhir-structures-hl7org-dstu2}/pom.xml (94%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/FhirDstu2Hl7Org.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/conf/ServerConformanceProvider.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/conf/ServerProfileProvider.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Address$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Address$AddressUse.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Address$AddressUseEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Address.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Address.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Age.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Age.java (72%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Alert$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Alert$AlertStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Alert$AlertStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Alert.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Alert.java (88%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceCategory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceCategoryEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceCriticality.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceCriticalityEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceEventComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$ReactionEventCertainty.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$ReactionEventCertaintyEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$ReactionEventSeverity.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$ReactionEventSeverityEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance.java (91%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$AppointmentParticipantComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$Appointmentstatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$AppointmentstatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$Participantrequired.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$ParticipantrequiredEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$Participationstatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$ParticipationstatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Appointment.java (81%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AppointmentResponse$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AppointmentResponse$Participantstatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AppointmentResponse$ParticipantstatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AppointmentResponse.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/AppointmentResponse.java (91%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Attachment.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Attachment.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BackboneElement.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/BackboneElement.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Base.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Base.java (54%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Base64BinaryType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Base64BinaryType.java (73%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Basic.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Basic.java (91%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Binary.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Binary.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BodySite$BodySiteRelativeLocationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BodySite$BodySiteSpecificLocationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BodySite.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BodySite.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BooleanType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/BooleanType.java (72%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleEntryComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleEntrySearchComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleEntryTransactionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleEntryTransactionResponseComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleLinkComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$HttpVerb.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$HttpVerbEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$SearchEntryMode.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$SearchEntryModeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanActivityCategory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanActivityCategoryEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanActivityComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanActivitySimpleComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanActivityStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanActivityStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanGoalComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanGoalStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanGoalStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanParticipantComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/CarePlan.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2$CarePlan2ParticipantComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2$CarePlan2Status.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2$CarePlan2StatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/CarePlan2.java (86%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$AddedItemAdjudicationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$AddedItemComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$AddedItemDetailAdjudicationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$AddedItemsDetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$DetailAdjudicationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$ErrorsComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$ItemAdjudicationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$ItemDetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$ItemSubdetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$ItemsComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$NotesComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$RSLink.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$RSLinkEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$SubdetailAdjudicationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ClaimResponse.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment$ClinicalAssessmentDiagnosisComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment$ClinicalAssessmentInvestigationsComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment$ClinicalAssessmentRuledOutComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CodeType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/CodeType.java (72%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CodeableConcept.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/CodeableConcept.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Coding.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Coding.java (91%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Communication$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Communication$CommunicationPayloadComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Communication$CommunicationStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Communication$CommunicationStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Communication.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Communication.java (83%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest$CommunicationRequestPayloadComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest$CommunicationRequestStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest$CommunicationRequestStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest.java (78%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Comparison$MatchProfile.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Comparison.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Comparison.java (83%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$CompositionAttestationMode.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$CompositionAttestationModeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$CompositionAttesterComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$CompositionEventComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$CompositionStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$CompositionStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$SectionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Composition.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ConceptEquivalence.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ConceptEquivalenceEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ConceptMapElementComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ConceptMapElementMapComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$OtherElementComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ValuesetStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ValuesetStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ConceptMap.java (91%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionDueToComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionEvidenceComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionLocationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionOccurredFollowingComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionStageComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Condition.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Configuration.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Configuration.java (86%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceDocumentComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceImplementationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceMessagingComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceMessagingEventComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceRestComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceRestOperationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceRestResourceComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceRestResourceSearchParamComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceRestSecurityCertificateComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceRestSecurityComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceSoftwareComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceStatementStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceStatementStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$DocumentMode.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$DocumentModeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$MessageConformanceEventMode.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$MessageConformanceEventModeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$MessageSignificanceCategory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$MessageSignificanceCategoryEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ResourceInteractionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$RestfulConformanceMode.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$RestfulConformanceModeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$SearchParamType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$SearchParamTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$SystemInteractionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$SystemRestfulInteraction.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$SystemRestfulInteractionEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$TypeRestfulInteraction.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$TypeRestfulInteractionEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$VersioningPolicy.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$VersioningPolicyEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Conformance.java (86%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Constants.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Constants.java (64%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint$ContactPointSystem.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint$ContactPointSystemEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint$ContactPointUse.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint$ContactPointUseEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ContactPoint.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contract$ContractSignerComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contract$ContractTermComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contract.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Contract.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contraindication$ContraindicationMitigationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contraindication.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Contraindication.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Count.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Count.java (72%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Coverage.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Coverage.java (91%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$BindingConformance.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$BindingConformanceEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$DataElementBindingComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$DataElementMappingComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$DataelementGranularity.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$DataelementGranularityEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$ResourceObservationDefStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$ResourceObservationDefStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DataElement.java (74%) rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DateAndTime.java (100%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateTimeType$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateTimeType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DateTimeType.java (86%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateType$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DateType.java (83%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DecimalType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DecimalType.java (84%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Device.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Device.java (71%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent$DeviceComponentProductionSpecificationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent$MeasurementPrinciple.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent$MeasurementPrincipleEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DeviceComponent.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$DeviceMetricCalibrationInfoComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCalibrationState.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCalibrationStateEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCalibrationType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCalibrationTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCategory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCategoryEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricOperationalStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricOperationalStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DeviceMetric.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$DeviceUseRequestPriority.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$DeviceUseRequestPriorityEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$DeviceUseRequestStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$DeviceUseRequestStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest.java (81%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseStatement.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DeviceUseStatement.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$DiagnosticOrderEventComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$DiagnosticOrderItemComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$DiagnosticOrderPriority.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$DiagnosticOrderPriorityEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$DiagnosticOrderStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$DiagnosticOrderStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder.java (88%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport$DiagnosticReportImageComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport$DiagnosticReportStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport$DiagnosticReportStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport.java (86%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Distance.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Distance.java (72%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentManifest$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentManifest$DocumentReferenceStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentManifest$DocumentReferenceStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentManifest.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DocumentManifest.java (85%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentReferenceContextComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentReferenceRelatesToComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentReferenceStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentReferenceStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentRelationshipType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentRelationshipTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DocumentReference.java (64%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DomainResource.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/DomainResource.java (91%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Duration.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Duration.java (72%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Element.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Element.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$BindingConformance.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$BindingConformanceEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ConstraintSeverity.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ConstraintSeverityEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ElementDefinitionBindingComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ElementDefinitionConstraintComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ElementDefinitionMappingComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ElementDefinitionSlicingComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$PropertyRepresentation.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$PropertyRepresentationEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ResourceAggregationMode.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ResourceAggregationModeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ResourceSlicingRules.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ResourceSlicingRulesEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$TypeRefComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ElementDefinition.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityRequest.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/EligibilityRequest.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse$RSLink.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse$RSLinkEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterClass.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterClassEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterHospitalizationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterLocationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterLocationStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterLocationStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterParticipantComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterState.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterStateEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterStatusHistoryComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Encounter.java (66%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentRequest.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/EnrollmentRequest.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse$RSLink.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse$RSLinkEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnumFactory.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/EnumFactory.java (69%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Enumeration.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Enumeration.java (72%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$EpisodeOfCareCareTeamComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$EpisodeOfCareStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$EpisodeOfCareStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$EpisodeOfCareStatusHistoryComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit$RSLink.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit$RSLinkEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Extension.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Extension.java (85%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition$ExtensionContext.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition$ExtensionContextEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition$ExtensionDefinitionMappingComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition$ResourceProfileStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition$ResourceProfileStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition.java (91%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionHelper.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ExtensionHelper.java (88%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Factory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Factory.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/FamilyHistory$FamilyHistoryRelationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/FamilyHistory$FamilyHistoryRelationConditionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/FamilyHistory.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/FamilyHistory.java (91%) rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/FhirEnum.java (100%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Goal$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Goal$GoalStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Goal$GoalStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Goal.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Goal.java (80%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group$GroupCharacteristicComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group$GroupType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group$GroupTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Group.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService$HealthcareServiceAvailableTimeComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService$HealthcareServiceNotAvailableTimeComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService$ServiceTypeComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/HealthcareService.java (91%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HumanName$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HumanName$NameUse.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HumanName$NameUseEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HumanName.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/HumanName.java (91%) rename hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/ResourceDef.java => hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IBase.java (51%) rename hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/Block.java => hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IBaseResource.java (50%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ICompositeType.java rename hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ResourceEnumerations.java => hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IPrimitiveType.java (59%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IdType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/IdType.java (72%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier$IdentifierUse.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier$IdentifierUseEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Identifier.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingObjectSelection$FramesComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingObjectSelection$InstanceComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingObjectSelection$SeriesComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingObjectSelection$StudyComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingObjectSelection.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ImagingObjectSelection.java (70%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$ImagingModality.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$ImagingModalityEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$ImagingStudySeriesComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$ImagingStudySeriesInstanceComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$InstanceAvailability.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$InstanceAvailabilityEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$Modality.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$ModalityEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ImagingStudy.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization$ImmunizationExplanationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization$ImmunizationReactionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization$ImmunizationVaccinationProtocolComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Immunization.java (76%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation$ImmunizationRecommendationRecommendationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation$ImmunizationRecommendationRecommendationDateCriterionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation$ImmunizationRecommendationRecommendationProtocolComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation.java (85%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstantType$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstantType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/InstantType.java (88%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$CoverageComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$DetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$DiagnosisComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$ItemsComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$PayeeComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$SubDetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$UseLink.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$UseLinkEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IntegerType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/IntegerType.java (79%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_$ListEntryComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_$ListMode.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_$ListModeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/List_.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationMode.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationModeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationPositionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Location.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media$MediaType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media$MediaTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Media.java (91%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationKind.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationKindEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationPackageComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationPackageContentComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationProductBatchComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationProductComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationProductIngredientComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Medication.java (72%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration$MedicationAdminStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration$MedicationAdminStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration$MedicationAdministrationDosageComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration.java (74%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationDispense$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationDispense$MedicationDispenseDosageInstructionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationDispense$MedicationDispenseStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationDispense$MedicationDispenseStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationDispense$MedicationDispenseSubstitutionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationDispense.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/MedicationDispense.java (59%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$MedicationPrescriptionDispenseComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$MedicationPrescriptionDosageInstructionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$MedicationPrescriptionStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$MedicationPrescriptionStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$MedicationPrescriptionSubstitutionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription.java (74%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationStatement$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationStatement$MedicationStatementDosageComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationStatement$MedicationStatementStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationStatement$MedicationStatementStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationStatement.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/MedicationStatement.java (56%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MessageHeader$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MessageHeader$MessageDestinationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MessageHeader$MessageHeaderResponseComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MessageHeader$MessageSourceComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MessageHeader$ResponseCode.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MessageHeader$ResponseCodeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MessageHeader.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/MessageHeader.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Meta.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Meta.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Money.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Money.java (72%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NamingSystem$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NamingSystem$NamingSystemContactComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NamingSystem$NamingSystemUniqueIdComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NamingSystem$NamingsystemIdentifierType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NamingSystem$NamingsystemIdentifierTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NamingSystem$NamingsystemStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NamingSystem$NamingsystemStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NamingSystem$NamingsystemType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NamingSystem$NamingsystemTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NamingSystem.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/NamingSystem.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Narrative$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Narrative$NarrativeStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Narrative$NarrativeStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Narrative.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Narrative.java (85%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NutritionOrder$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NutritionOrder$NutritionOrderEnteralFormulaComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NutritionOrder$NutritionOrderOralDietComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NutritionOrder$NutritionOrderOralDietNutrientsComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NutritionOrder$NutritionOrderOralDietTextureComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NutritionOrder$NutritionOrderStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NutritionOrder$NutritionOrderStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NutritionOrder$NutritionOrderSupplementComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/NutritionOrder.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/NutritionOrder.java (66%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Observation$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Observation$DataAbsentReason.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Observation$DataAbsentReasonEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Observation$ObservationReferenceRangeComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Observation$ObservationRelatedComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Observation$ObservationRelationshiptypes.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Observation$ObservationRelationshiptypesEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Observation$ObservationReliability.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Observation$ObservationReliabilityEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Observation$ObservationStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Observation$ObservationStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Observation.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Observation.java (84%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OidType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/OidType.java (73%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationDefinition$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationDefinition$OperationDefinitionParameterComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationDefinition$OperationDefinitionParameterPartComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationDefinition$OperationKind.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationDefinition$OperationKindEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationDefinition$OperationParameterUse.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationDefinition$OperationParameterUseEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationDefinition$ResourceProfileStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationDefinition$ResourceProfileStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationDefinition.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/OperationDefinition.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationOutcome$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationOutcome$IssueSeverity.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationOutcome$IssueSeverityEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationOutcome$OperationOutcomeIssueComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OperationOutcome.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/OperationOutcome.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim$CoverageComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim$DetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim$DiagnosisComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim$ItemsComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim$MissingTeethComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim$OrthodonticPlanComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim$PayeeComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim$ProsthesisComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim$SubDetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim$UseLink.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim$UseLinkEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/OralHealthClaim.java (86%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Order$OrderWhenComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Order.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Order.java (88%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OrderResponse$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OrderResponse$OrderOutcomeCode.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OrderResponse$OrderOutcomeCodeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/OrderResponse.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/OrderResponse.java (92%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Organization$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Organization$AdministrativeGender.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Organization$AdministrativeGenderEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Organization$OrganizationContactComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Organization.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Organization.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Other.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Other.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Parameters$ParametersParameterComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Parameters$ParametersParameterPartComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Parameters.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Parameters.java (85%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Patient$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Patient$AdministrativeGender.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Patient$AdministrativeGenderEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Patient$AnimalComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Patient$ContactComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Patient$LinkType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Patient$LinkTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Patient$PatientLinkComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Patient.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Patient.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PaymentNotice.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/PaymentNotice.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PaymentReconciliation$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PaymentReconciliation$DetailsComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PaymentReconciliation$NotesComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PaymentReconciliation$RSLink.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PaymentReconciliation$RSLinkEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PaymentReconciliation.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/PaymentReconciliation.java (88%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PendedRequest.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/PendedRequest.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Period.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Period.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Person$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Person$AdministrativeGender.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Person$AdministrativeGenderEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Person$IdentityAssuranceLevel.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Person$IdentityAssuranceLevelEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Person$PersonLinkComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Person.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Person.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PharmacyClaim$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PharmacyClaim$CoverageComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PharmacyClaim$DetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PharmacyClaim$DiagnosisComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PharmacyClaim$ItemsComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PharmacyClaim$PayeeComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PharmacyClaim$SubDetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PharmacyClaim$UseLink.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PharmacyClaim$UseLinkEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PharmacyClaim.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/PharmacyClaim.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Practitioner$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Practitioner$AdministrativeGender.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Practitioner$AdministrativeGenderEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Practitioner$PractitionerQualificationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Practitioner.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Practitioner.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/PrimitiveType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/PrimitiveType.java (69%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Procedure$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Procedure$ProcedurePerformerComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Procedure$ProcedureRelatedItemComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Procedure$ProcedureRelationshipType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Procedure$ProcedureRelationshipTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Procedure.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Procedure.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProcedureRequest$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProcedureRequest$ProcedureRequestPriority.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProcedureRequest$ProcedureRequestPriorityEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProcedureRequest$ProcedureRequestStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProcedureRequest$ProcedureRequestStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProcedureRequest.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ProcedureRequest.java (82%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProfessionalClaim$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProfessionalClaim$CoverageComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProfessionalClaim$DetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProfessionalClaim$DiagnosisComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProfessionalClaim$ItemsComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProfessionalClaim$PayeeComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProfessionalClaim$SubDetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProfessionalClaim$UseLink.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProfessionalClaim$UseLinkEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ProfessionalClaim.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ProfessionalClaim.java (86%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Profile$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Profile$ConstraintComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Profile$ProfileMappingComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Profile$ResourceProfileStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Profile$ResourceProfileStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Profile.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Profile.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Property.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Property.java (81%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Provenance$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Provenance$ProvenanceAgentComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Provenance$ProvenanceEntityComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Provenance$ProvenanceEntityRole.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Provenance$ProvenanceEntityRoleEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Provenance.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Provenance.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Quantity$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Quantity$QuantityComparator.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Quantity$QuantityComparatorEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Quantity.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Quantity.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Questionnaire$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Questionnaire$AnswerFormat.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Questionnaire$AnswerFormatEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Questionnaire$GroupComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Questionnaire$QuestionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Questionnaire$QuestionnaireStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Questionnaire$QuestionnaireStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Questionnaire.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Questionnaire.java (89%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/QuestionnaireAnswers$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/QuestionnaireAnswers$GroupComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/QuestionnaireAnswers$QuestionAnswerComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/QuestionnaireAnswers$QuestionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/QuestionnaireAnswers$QuestionnaireAnswersStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/QuestionnaireAnswers$QuestionnaireAnswersStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/QuestionnaireAnswers.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/QuestionnaireAnswers.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Range.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Range.java (83%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Ratio.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Ratio.java (83%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Readjudicate$ItemsComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Readjudicate.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Readjudicate.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Reference.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Reference.java (58%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ReferralRequest$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ReferralRequest$Referralstatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ReferralRequest$ReferralstatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ReferralRequest.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ReferralRequest.java (92%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/RelatedPerson$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/RelatedPerson$AdministrativeGender.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/RelatedPerson$AdministrativeGenderEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/RelatedPerson.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/RelatedPerson.java (83%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Resource.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Resource.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ResourceEnumerations.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ResourceEnumerations.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ResourceFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ResourceFactory.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ResourceType$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ResourceType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ResourceType.java (88%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Reversal$PayeeComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Reversal$ReversalCoverageComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Reversal.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Reversal.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/RiskAssessment$RiskAssessmentPredictionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/RiskAssessment.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/RiskAssessment.java (91%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SampledData.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/SampledData.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Schedule.class rename hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Availability.java => hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Schedule.java (62%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SearchParameter$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SearchParameter$SearchParamType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SearchParameter$SearchParamTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SearchParameter.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/SearchParameter.java (91%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$NetworkType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$NetworkTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$ObjectLifecycle.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$ObjectLifecycleEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$ObjectRole.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$ObjectRoleEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$ObjectType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$ObjectTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$SecurityEventAction.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$SecurityEventActionEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$SecurityEventEventComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$SecurityEventObjectComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$SecurityEventObjectDetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$SecurityEventOutcome.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$SecurityEventOutcomeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$SecurityEventParticipantComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$SecurityEventParticipantNetworkComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent$SecurityEventSourceComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SecurityEvent.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/SecurityEvent.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SidType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/SidType.java (59%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Slot$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Slot$Slotstatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Slot$SlotstatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Slot.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Slot.java (81%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Specimen$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Specimen$HierarchicalRelationshipType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Specimen$HierarchicalRelationshipTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Specimen$SpecimenCollectionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Specimen$SpecimenContainerComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Specimen$SpecimenSourceComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Specimen$SpecimenTreatmentComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Specimen.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Specimen.java (82%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StatusRequest.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/StatusRequest.java (90%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StatusResponse$StatusResponseNotesComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StatusResponse.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/StatusResponse.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StringType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/StringType.java (80%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StructureDefinition$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StructureDefinition$ExtensionContext.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StructureDefinition$ExtensionContextEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StructureDefinition$StructureDefinitionDifferentialComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StructureDefinition$StructureDefinitionMappingComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StructureDefinition$StructureDefinitionSnapshotComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StructureDefinition$StructureDefinitionStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StructureDefinition$StructureDefinitionStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StructureDefinition$StructureDefinitionType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StructureDefinition$StructureDefinitionTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StructureDefinition.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/StructureDefinition.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Subscription$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Subscription$SubscriptionChannelComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Subscription$SubscriptionChannelType.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Subscription$SubscriptionChannelTypeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Subscription$SubscriptionStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Subscription$SubscriptionStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Subscription$SubscriptionTagComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Subscription.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Subscription.java (88%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Substance$SubstanceIngredientComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Substance$SubstanceInstanceComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Substance.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Substance.java (86%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Supply$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Supply$SupplyDispenseComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Supply$ValuesetSupplyDispenseStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Supply$ValuesetSupplyDispenseStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Supply$ValuesetSupplyStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Supply$ValuesetSupplyStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Supply.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Supply.java (86%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SupportingDocumentation$SupportingDocumentationDetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/SupportingDocumentation.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/SupportingDocumentation.java (88%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/TemporalPrecisionEnum$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/TemporalPrecisionEnum$2.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/TemporalPrecisionEnum$3.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/TemporalPrecisionEnum$4.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/TemporalPrecisionEnum$5.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/TemporalPrecisionEnum$6.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/TemporalPrecisionEnum.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/TemporalPrecisionEnum.java (66%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/TimeType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/TimeType.java (75%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Timing$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Timing$EventTiming.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Timing$EventTimingEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Timing$TimingRepeatComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Timing$UnitsOfTime.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Timing$UnitsOfTimeEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Timing.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Timing.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Type.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/Type.java (71%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/UriType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/UriType.java (85%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/UuidType.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/UuidType.java (72%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$ConceptDefinitionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$ConceptDefinitionDesignationComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$ConceptReferenceComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$ConceptSetComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$ConceptSetFilterComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$FilterOperator.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$FilterOperatorEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$ValueSetComposeComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$ValueSetDefineComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$ValueSetExpansionComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$ValueSetExpansionContainsComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$ValuesetStatus.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet$ValuesetStatusEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ValueSet.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/ValueSet.java (87%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionClaim$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionClaim$CoverageComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionClaim$DetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionClaim$DiagnosisComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionClaim$ItemsComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionClaim$PayeeComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionClaim$SubDetailComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionClaim$UseLink.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionClaim$UseLinkEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionClaim.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/VisionClaim.java (85%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionPrescription$1.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionPrescription$BaseCodes.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionPrescription$BaseCodesEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionPrescription$EyeCodes.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionPrescription$EyeCodesEnumFactory.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionPrescription$VisionPrescriptionDispenseComponent.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionPrescription.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/VisionPrescription.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/Block.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/Block.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/Child.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/Child.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/DatatypeDef.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/DatatypeDef.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/Description.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/Description.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/Extension.class rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/instance/model/annotations/Extension.java (50%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/ResourceDef.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/ResourceDef.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/SearchParamDefinition.class create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/annotations/SearchParamDefinition.java rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/utilities/CSFile.java (100%) rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/utilities/FileNotifier.java (100%) rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/utilities/Inflector.java (100%) rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/utilities/MyURIResolver.java (100%) rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/utilities/Utilities.java (100%) rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/utilities/ZipURIResolver.java (100%) rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/utilities/xhtml/NodeType.java (100%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/utilities/xhtml/XhtmlComposer.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/utilities/xhtml/XhtmlDocument.java rename {hapi-fhir-base => hapi-fhir-structures-hl7org-dstu2}/src/main/java/org/hl7/fhir/utilities/xhtml/XhtmlNode.java (82%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/utilities/xhtml/XhtmlParser.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/utilities/xml/IXMLWriter.java create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/main/resources/org/hl7/fhir/instance/model/fhirversion.properties rename {hapi-fhir-structures-hl7org-dev => hapi-fhir-structures-hl7org-dstu2}/src/test/java/ca/uhn/fhir/parser/ContainedResourceEncodingTest.java (57%) rename {hapi-fhir-structures-hl7org-dev => hapi-fhir-structures-hl7org-dstu2}/src/test/java/ca/uhn/fhir/parser/JsonParserTest.java (62%) rename {hapi-fhir-structures-hl7org-dev => hapi-fhir-structures-hl7org-dstu2}/src/test/java/ca/uhn/fhir/parser/MyObservationWithExtensions.java (57%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/test/java/ca/uhn/fhir/parser/MyOrganization.java rename {hapi-fhir-structures-hl7org-dev => hapi-fhir-structures-hl7org-dstu2}/src/test/java/ca/uhn/fhir/parser/MyPatient.java (56%) create mode 100644 hapi-fhir-structures-hl7org-dstu2/src/test/java/ca/uhn/fhir/parser/ResourceWithExtensionsA.java rename {hapi-fhir-structures-hl7org-dev => hapi-fhir-structures-hl7org-dstu2}/src/test/java/ca/uhn/fhir/parser/XmlParserTest.java (60%) diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/BaseRuntimeChildDefinition.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/BaseRuntimeChildDefinition.java index c228e23e100..ceba00c7d38 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/BaseRuntimeChildDefinition.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/BaseRuntimeChildDefinition.java @@ -48,7 +48,7 @@ public abstract class BaseRuntimeChildDefinition { abstract void sealAndInitialize(FhirContext theContext, Map, BaseRuntimeElementDefinition> theClassToElementDefinitions); public interface IAccessor { - List getValues(Object theTarget); + List getValues(Object theTarget); } public abstract String getElementName(); diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/BaseRuntimeDeclaredChildDefinition.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/BaseRuntimeDeclaredChildDefinition.java index 725ca64683b..a90cb086b7d 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/BaseRuntimeDeclaredChildDefinition.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/BaseRuntimeDeclaredChildDefinition.java @@ -32,7 +32,6 @@ import java.util.List; import org.apache.commons.lang3.text.WordUtils; import org.hl7.fhir.instance.model.IBase; -import ca.uhn.fhir.model.api.IElement; import ca.uhn.fhir.model.api.annotation.Child; import ca.uhn.fhir.model.api.annotation.Description; import ca.uhn.fhir.util.BeanUtils; @@ -199,13 +198,13 @@ public abstract class BaseRuntimeDeclaredChildDefinition extends BaseRuntimeChil private final class FieldPlainAccessor implements IAccessor { @Override - public List getValues(Object theTarget) { + public List getValues(Object theTarget) { try { Object values = myField.get(theTarget); if (values == null) { return Collections.emptyList(); } - List retVal = (List) Collections.singletonList((IElement)values); + List retVal = Collections.singletonList((IBase)values); return retVal; } catch (IllegalArgumentException e) { throw new ConfigurationException("Failed to get value", e); @@ -237,10 +236,10 @@ public abstract class BaseRuntimeDeclaredChildDefinition extends BaseRuntimeChil private final class FieldListAccessor implements IAccessor { @SuppressWarnings("unchecked") @Override - public List getValues(Object theTarget) { - List retVal; + public List getValues(Object theTarget) { + List retVal; try { - retVal = (List) myField.get(theTarget); + retVal = (List) myField.get(theTarget); } catch (IllegalArgumentException e) { throw new ConfigurationException("Failed to get value", e); } catch (IllegalAccessException e) { @@ -262,9 +261,9 @@ public abstract class BaseRuntimeDeclaredChildDefinition extends BaseRuntimeChil @SuppressWarnings("unchecked") @Override - public List getValues(Object theTarget) { + public List getValues(Object theTarget) { try { - return (List) myAccessorMethod.invoke(theTarget); + return (List) myAccessorMethod.invoke(theTarget); } catch (IllegalAccessException e) { throw new ConfigurationException("Failed to get value", e); } catch (IllegalArgumentException e) { @@ -284,8 +283,7 @@ public abstract class BaseRuntimeDeclaredChildDefinition extends BaseRuntimeChil @Override public void addValue(Object theTarget, IBase theValue) { - @SuppressWarnings("unchecked") - List existingList = (List) myAccessor.getValues(theTarget); + List existingList = myAccessor.getValues(theTarget); if (existingList == null) { existingList = new ArrayList(); try { @@ -310,9 +308,9 @@ public abstract class BaseRuntimeDeclaredChildDefinition extends BaseRuntimeChil } @Override - public List getValues(Object theTarget) { + public List getValues(Object theTarget) { try { - return Collections.singletonList((IElement) myAccessorMethod.invoke(theTarget)); + return Collections.singletonList((IBase)myAccessorMethod.invoke(theTarget)); } catch (IllegalAccessException e) { throw new ConfigurationException("Failed to get value", e); } catch (IllegalArgumentException e) { diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/BaseRuntimeElementDefinition.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/BaseRuntimeElementDefinition.java index 7d60fca0199..d1735113aea 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/BaseRuntimeElementDefinition.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/BaseRuntimeElementDefinition.java @@ -51,7 +51,6 @@ public abstract class BaseRuntimeElementDefinition { if (myName.endsWith("Dt")) { myName = myName.substring(0, myName.length() - 2); } - myImplementingClass = theImplementingClass; } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/FhirContext.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/FhirContext.java index b2979fb9d15..e7f909fdaaa 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/FhirContext.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/FhirContext.java @@ -116,6 +116,8 @@ public class FhirContext { myVersion = FhirVersionEnum.DSTU1.getVersionImplementation(); } else if (FhirVersionEnum.DSTU2.isPresentOnClasspath()) { myVersion = FhirVersionEnum.DSTU2.getVersionImplementation(); + } else if (FhirVersionEnum.DSTU2_HL7ORG.isPresentOnClasspath()) { + myVersion = FhirVersionEnum.DSTU2_HL7ORG.getVersionImplementation(); } else if (FhirVersionEnum.DEV.isPresentOnClasspath()) { myVersion = FhirVersionEnum.DEV.getVersionImplementation(); } else { @@ -241,7 +243,7 @@ public class FhirContext { if (clazz == null) { throw new DataFormatException(createUnknownResourceNameError(resourceName, myVersion.getVersion())); } - if (IResource.class.isAssignableFrom(clazz)) { + if (IBaseResource.class.isAssignableFrom(clazz)) { retVal = scanResourceType((Class) clazz); } } @@ -473,4 +475,8 @@ public class FhirContext { return retVal; } + public static FhirContext forDstu2Hl7Org() { + return new FhirContext(FhirVersionEnum.DSTU2_HL7ORG); + } + } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/FhirVersionEnum.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/FhirVersionEnum.java index 65562a68e6f..2036ef8a647 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/FhirVersionEnum.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/FhirVersionEnum.java @@ -38,7 +38,9 @@ public enum FhirVersionEnum { DSTU2("ca.uhn.fhir.model.dstu2.FhirDstu2", null), - DEV("ca.uhn.fhir.model.dev.FhirDev", null); + DEV("ca.uhn.fhir.model.dev.FhirDev", null), + + DSTU2_HL7ORG("org.hl7.fhir.instance.FhirDstu2Hl7Org", null); private final String myVersionClass; diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/ModelScanner.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/ModelScanner.java index ae4aa404b18..df5a3b85206 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/ModelScanner.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/ModelScanner.java @@ -20,7 +20,7 @@ package ca.uhn.fhir.context; * #L% */ -import static org.apache.commons.lang3.StringUtils.isBlank; +import static org.apache.commons.lang3.StringUtils.*; import java.io.IOException; import java.io.InputStream; @@ -48,14 +48,18 @@ import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; -import org.hl7.fhir.instance.model.BackboneElement; -import org.hl7.fhir.instance.model.DomainResource; import org.hl7.fhir.instance.model.IBase; import org.hl7.fhir.instance.model.IBaseResource; import org.hl7.fhir.instance.model.ICompositeType; import org.hl7.fhir.instance.model.IPrimitiveType; -import org.hl7.fhir.instance.model.Narrative; -import org.hl7.fhir.instance.model.Reference; +import org.hl7.fhir.instance.model.api.IAnyResource; +import org.hl7.fhir.instance.model.api.IBackboneElement; +import org.hl7.fhir.instance.model.api.IBaseDatatype; +import org.hl7.fhir.instance.model.api.IBaseExtension; +import org.hl7.fhir.instance.model.api.IDatatypeElement; +import org.hl7.fhir.instance.model.api.IDomainResource; +import org.hl7.fhir.instance.model.api.INarrative; +import org.hl7.fhir.instance.model.api.IReference; import ca.uhn.fhir.model.api.CodeableConceptElement; import ca.uhn.fhir.model.api.ExtensionDt; @@ -110,7 +114,7 @@ class ModelScanner { } private void addScanAlso(Class theType) { - if (theType.isInterface()) { + if (theType.isInterface() || Modifier.isAbstract(theType.getModifiers())) { return; } myScanAlso.add(theType); @@ -264,7 +268,7 @@ class ModelScanner { ResourceDef resourceDefinition = pullAnnotation(theClass, ResourceDef.class); if (resourceDefinition != null) { - if (!IResource.class.isAssignableFrom(theClass)) { + if (!IBaseResource.class.isAssignableFrom(theClass)) { throw new ConfigurationException("Resource type contains a @" + ResourceDef.class.getSimpleName() + " annotation but does not implement " + IResource.class.getCanonicalName() + ": " + theClass.getCanonicalName()); } @SuppressWarnings("unchecked") @@ -288,11 +292,10 @@ class ModelScanner { } Block blockDefinition = pullAnnotation(theClass, Block.class); + if (blockDefinition != null) { - if (IResourceBlock.class.isAssignableFrom(theClass)) { - @SuppressWarnings("unchecked") - Class blockClass = (Class) theClass; - scanBlock(blockClass); + if (IResourceBlock.class.isAssignableFrom(theClass) || IBackboneElement.class.isAssignableFrom(theClass) || IDatatypeElement.class.isAssignableFrom(theClass)) { + scanBlock(theClass); } else { throw new ConfigurationException("Type contains a @" + Block.class.getSimpleName() + " annotation but does not implement " + IResourceBlock.class.getCanonicalName() + ": " + theClass.getCanonicalName()); } @@ -303,7 +306,7 @@ class ModelScanner { } } - private void scanBlock(Class theClass) { + private void scanBlock(Class theClass) { ourLog.debug("Scanning resource block class: {}", theClass.getName()); String resourceName = theClass.getCanonicalName(); @@ -344,7 +347,7 @@ class ModelScanner { Class current = theClass; do { classes.push(current); - if (ICompositeElement.class.isAssignableFrom(current.getSuperclass())) { + if (IBase.class.isAssignableFrom(current.getSuperclass())) { current = (Class) current.getSuperclass(); } else { current = null; @@ -456,8 +459,8 @@ class ModelScanner { if (order != Child.ORDER_UNKNOWN) { order = order + baseElementOrder; } -// int min = childAnnotation.min(); -// int max = childAnnotation.max(); + // int min = childAnnotation.min(); + // int max = childAnnotation.max(); /* * Anything that's marked as unknown is given a new ID that is <0 so that it doesn't conflict with any given @@ -485,14 +488,21 @@ class ModelScanner { Class nextElementType = determineElementType(next); - if (BaseContainedDt.class.isAssignableFrom(nextElementType) || (childAnnotation.name().equals("contained") && DomainResource.class.isAssignableFrom(theClass))) { + if (IAnyResource.class.isAssignableFrom(nextElementType)) { + /* + * Child is a resource as a direct child, as in Bundle.entry.resource + */ + RuntimeChildDirectResource def = new RuntimeChildDirectResource(next, childAnnotation, descriptionAnnotation, elementName); + orderMap.put(order, def); + + } else if (BaseContainedDt.class.isAssignableFrom(nextElementType) || (childAnnotation.name().equals("contained") && IDomainResource.class.isAssignableFrom(theClass))) { /* * Child is contained resources */ RuntimeChildContainedResources def = new RuntimeChildContainedResources(next, childAnnotation, descriptionAnnotation, elementName); orderMap.put(order, def); - } else if (choiceTypes.size() > 1 && !BaseResourceReferenceDt.class.isAssignableFrom(nextElementType) && !Reference.class.isAssignableFrom(nextElementType)) { + } else if (choiceTypes.size() > 1 && !BaseResourceReferenceDt.class.isAssignableFrom(nextElementType) && !IReference.class.isAssignableFrom(nextElementType)) { /* * Child is a choice element */ @@ -520,7 +530,7 @@ class ModelScanner { if (IElement.class.isAssignableFrom(nextElementType)) { addScanAlso((Class) nextElementType); } - } else if (BaseResourceReferenceDt.class.isAssignableFrom(nextElementType) || Reference.class.isAssignableFrom(nextElementType)) { + } else if (BaseResourceReferenceDt.class.isAssignableFrom(nextElementType) || IReference.class.isAssignableFrom(nextElementType)) { /* * Child is a resource reference */ @@ -535,7 +545,7 @@ class ModelScanner { RuntimeChildResourceDefinition def = new RuntimeChildResourceDefinition(next, elementName, childAnnotation, descriptionAnnotation, refTypesList); orderMap.put(order, def); - } else if (IResourceBlock.class.isAssignableFrom(nextElementType) || BackboneElement.class.isAssignableFrom(nextElementType)) { + } else if (IResourceBlock.class.isAssignableFrom(nextElementType) || IBackboneElement.class.isAssignableFrom(nextElementType) || IDatatypeElement.class.isAssignableFrom(nextElementType)) { /* * Child is a resource block (i.e. a sub-tag within a resource) TODO: do these have a better name * according to HL7? @@ -546,12 +556,12 @@ class ModelScanner { RuntimeChildResourceBlockDefinition def = new RuntimeChildResourceBlockDefinition(next, childAnnotation, descriptionAnnotation, elementName, blockDef); orderMap.put(order, def); - } else if (IDatatype.class.equals(nextElementType) || IElement.class.equals(nextElementType)) { + } else if (IDatatype.class.equals(nextElementType) || IElement.class.equals(nextElementType) || "org.hl7.fhir.instance.model.Type".equals(nextElementType.getName())) { RuntimeChildAny def = new RuntimeChildAny(next, elementName, childAnnotation, descriptionAnnotation); orderMap.put(order, def); - } else if (IDatatype.class.isAssignableFrom(nextElementType) || IPrimitiveType.class.isAssignableFrom(nextElementType) || ICompositeType.class.isAssignableFrom(nextElementType)) { + } else if (IDatatype.class.isAssignableFrom(nextElementType) || IPrimitiveType.class.isAssignableFrom(nextElementType) || ICompositeType.class.isAssignableFrom(nextElementType) || IBaseDatatype.class.isAssignableFrom(nextElementType) || IBaseExtension.class.isAssignableFrom(nextElementType)) { Class nextDatatype = (Class) nextElementType; addScanAlso(nextDatatype); @@ -567,7 +577,7 @@ class ModelScanner { if (IBoundCodeableConcept.class.isAssignableFrom(nextElementType)) { IValueSetEnumBinder> binder = getBoundCodeBinder(next); def = new RuntimeChildCompositeBoundDatatypeDefinition(next, elementName, childAnnotation, descriptionAnnotation, nextDatatype, binder); - } else if (BaseNarrativeDt.class.isAssignableFrom(nextElementType) || Narrative.class.getName().equals(nextElementType.getClass().getName())) { + } else if (BaseNarrativeDt.class.isAssignableFrom(nextElementType) || INarrative.class.getName().equals(nextElementType.getClass().getName())) { def = new RuntimeChildNarrativeDefinition(next, elementName, childAnnotation, descriptionAnnotation, nextDatatype); } else { def = new RuntimeChildCompositeDatatypeDefinition(next, elementName, childAnnotation, descriptionAnnotation, nextDatatype); @@ -726,16 +736,22 @@ class ModelScanner { if (theDatatypes != null) { try { // Datatypes - @SuppressWarnings("unchecked") - Class nextClass = (Class) Class.forName(nextValue); - if (!IElement.class.isAssignableFrom(nextClass)) { - ourLog.warn("Class is not assignable from " + IElement.class.getSimpleName() + ": " + nextValue); + Class dtType = Class.forName(nextValue); + if (IElement.class.isAssignableFrom(dtType)) { + @SuppressWarnings("unchecked") + Class nextClass = (Class) dtType; + theDatatypes.add(nextClass); + } else if (IBaseDatatype.class.isAssignableFrom(dtType)) { + @SuppressWarnings("unchecked") + Class nextClass = (Class) dtType; + theDatatypes.add(nextClass); + } else { + ourLog.warn("Class is not assignable from " + IElement.class.getSimpleName() + " or " + IBaseDatatype.class.getSimpleName() + ": " + nextValue); continue; } - theDatatypes.add(nextClass); } catch (ClassNotFoundException e) { - ourLog.error("Unknown class[" + nextValue+ "] for data type definition: " + nextKey.substring("datatype.".length()), e); + ourLog.error("Unknown class[" + nextValue + "] for data type definition: " + nextKey.substring("datatype.".length()), e); } } } else if (nextKey.startsWith("resource.")) { @@ -751,7 +767,7 @@ class ModelScanner { theResourceTypes.put(resName, nextClass); } catch (ClassNotFoundException e) { - ourLog.error("Unknown class[" + nextValue+ "] for resource definition: " + nextKey.substring("resource.".length()), e); + ourLog.error("Unknown class[" + nextValue + "] for resource definition: " + nextKey.substring("resource.".length()), e); } } else { ourLog.warn("Unexpected property in version property file: {}={}", nextKey, nextValue); diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildAny.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildAny.java index 8985bf27f8e..a347b471b8a 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildAny.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildAny.java @@ -28,6 +28,7 @@ import java.util.List; import java.util.Map; import org.hl7.fhir.instance.model.IBase; +import org.hl7.fhir.instance.model.api.IBaseDatatype; import ca.uhn.fhir.model.api.IDatatype; import ca.uhn.fhir.model.api.IResource; @@ -61,7 +62,7 @@ public class RuntimeChildAny extends RuntimeChildChoiceDefinition { } } - if (IResource.class.isAssignableFrom(next) || IDatatype.class.isAssignableFrom(next)) { + if (IResource.class.isAssignableFrom(next) || IDatatype.class.isAssignableFrom(next) || IBaseDatatype.class.isAssignableFrom(next)) { choiceTypes.add(next); } } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildChoiceDefinition.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildChoiceDefinition.java index af5eb7d5b9d..95a8f7599da 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildChoiceDefinition.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildChoiceDefinition.java @@ -32,10 +32,8 @@ import org.apache.commons.lang3.StringUtils; import org.hl7.fhir.instance.model.IBase; import org.hl7.fhir.instance.model.IBaseResource; -import ca.uhn.fhir.model.api.IDatatype; import ca.uhn.fhir.model.api.annotation.Child; import ca.uhn.fhir.model.api.annotation.Description; -import ca.uhn.fhir.model.base.composite.BaseResourceReferenceDt; public class RuntimeChildChoiceDefinition extends BaseRuntimeDeclaredChildDefinition { @@ -107,7 +105,7 @@ public class RuntimeChildChoiceDefinition extends BaseRuntimeDeclaredChildDefini } if (IBaseResource.class.isAssignableFrom(next)) { - Class refType = theContext.getVersion().getResourceReferenceType(); + Class refType = theContext.getVersion().getResourceReferenceType(); myDatatypeToElementDefinition.put(refType, nextDef); alternateElementName = getElementName() + "Resource"; myDatatypeToElementName.put(refType, alternateElementName); diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildContainedResources.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildContainedResources.java index 2abaaa9919c..7cbab2e0d4a 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildContainedResources.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildContainedResources.java @@ -21,6 +21,7 @@ package ca.uhn.fhir.context; */ import java.lang.reflect.Field; +import java.util.ArrayList; import java.util.Collections; import java.util.Map; import java.util.Set; @@ -48,7 +49,7 @@ public class RuntimeChildContainedResources extends BaseRuntimeDeclaredChildDefi @Override public BaseRuntimeElementDefinition getChildElementDefinitionByDatatype(Class theType) { assert BaseContainedDt.class.isAssignableFrom(theType); - return myElem; + return myElem; } @Override @@ -64,7 +65,16 @@ public class RuntimeChildContainedResources extends BaseRuntimeDeclaredChildDefi @Override void sealAndInitialize(FhirContext theContext, Map, BaseRuntimeElementDefinition> theClassToElementDefinitions) { - myElem = new RuntimeElemContainedResources(theContext.getVersion().getContainedType()); + Class actualType = theContext.getVersion().getContainedType(); + if (BaseContainedDt.class.isAssignableFrom(actualType)) { + @SuppressWarnings("unchecked") + Class type = (Class) actualType; + myElem = new RuntimeElemContainedResources(type); + } else if (ArrayList.class.isAssignableFrom(actualType)) { + myElem = null; + } else { + throw new ConfigurationException("Fhir Version definition returned invalid contained type: " + actualType); + } } } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildDirectResource.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildDirectResource.java new file mode 100644 index 00000000000..85a3d9d88ed --- /dev/null +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildDirectResource.java @@ -0,0 +1,70 @@ +package ca.uhn.fhir.context; + +/* + * #%L + * HAPI FHIR - Core Library + * %% + * Copyright (C) 2014 - 2015 University Health Network + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import java.lang.reflect.Field; +import java.util.Collections; +import java.util.Map; +import java.util.Set; + +import org.hl7.fhir.instance.model.IBase; +import org.hl7.fhir.instance.model.IBaseResource; + +import ca.uhn.fhir.model.api.annotation.Child; +import ca.uhn.fhir.model.api.annotation.Description; +import ca.uhn.fhir.model.base.composite.BaseContainedDt; + +public class RuntimeChildDirectResource extends BaseRuntimeDeclaredChildDefinition { + + private RuntimeElemContainedResources myElem; + private FhirContext myContext; + + RuntimeChildDirectResource(Field theField, Child theChildAnnotation, Description theDescriptionAnnotation, String theElementName) throws ConfigurationException { + super(theField, theChildAnnotation, theDescriptionAnnotation, theElementName); + } + + @Override + public BaseRuntimeElementDefinition getChildByName(String theName) { + return new RuntimeElementDirectResource(); + } + + @SuppressWarnings("unchecked") + @Override + public BaseRuntimeElementDefinition getChildElementDefinitionByDatatype(Class theType) { + return myContext.getResourceDefinition((Class) theType); + } + + @Override + public String getChildNameByDatatype(Class theDatatype) { + return getElementName(); + } + + @Override + public Set getValidChildNames() { + return Collections.singleton(getElementName()); + } + + @Override + void sealAndInitialize(FhirContext theContext, Map, BaseRuntimeElementDefinition> theClassToElementDefinitions) { + myContext = theContext; + } + +} diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildResourceDefinition.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildResourceDefinition.java index 6bb3728c2ca..560f25732ae 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildResourceDefinition.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildResourceDefinition.java @@ -21,6 +21,7 @@ package ca.uhn.fhir.context; */ import java.lang.reflect.Field; +import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -47,7 +48,9 @@ public class RuntimeChildResourceDefinition extends BaseRuntimeDeclaredChildDefi myResourceTypes = theResourceTypes; if (theResourceTypes == null || theResourceTypes.isEmpty()) { - throw new ConfigurationException("Field '" + theField.getName() + "' on type '" + theField.getDeclaringClass().getCanonicalName() + "' has no resource types noted"); + myResourceTypes = new ArrayList>(); + myResourceTypes.add(IBaseResource.class); +// throw new ConfigurationException("Field '" + theField.getName() + "' on type '" + theField.getDeclaringClass().getCanonicalName() + "' has no resource types noted"); } } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildUndeclaredExtensionDefinition.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildUndeclaredExtensionDefinition.java index 8c009a0f6d5..887861adfb2 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildUndeclaredExtensionDefinition.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeChildUndeclaredExtensionDefinition.java @@ -50,12 +50,13 @@ public class RuntimeChildUndeclaredExtensionDefinition extends BaseRuntimeChildD public IAccessor getAccessor() { return new IAccessor() { @Override - public List getValues(Object theTarget) { + public List getValues(Object theTarget) { ExtensionDt target = (ExtensionDt) theTarget; if (target.getValue() != null) { - return Collections.singletonList(target.getValue()); + return Collections.singletonList((IBase)target.getValue()); } - return target.getUndeclaredExtensions(); + ArrayList retVal = new ArrayList(target.getUndeclaredExtensions()); + return retVal; } }; } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeElementDirectResource.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeElementDirectResource.java new file mode 100644 index 00000000000..19630fcdc6a --- /dev/null +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeElementDirectResource.java @@ -0,0 +1,16 @@ +package ca.uhn.fhir.context; + +import org.hl7.fhir.instance.model.IBaseResource; + +public class RuntimeElementDirectResource extends BaseRuntimeElementDefinition { + + public RuntimeElementDirectResource() { + super("DirectChildResource", IBaseResource.class); + } + + @Override + public ca.uhn.fhir.context.BaseRuntimeElementDefinition.ChildTypeEnum getChildType() { + return ChildTypeEnum.RESOURCE; + } + +} diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeResourceBlockDefinition.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeResourceBlockDefinition.java index ebddedf26f1..85fc60855cd 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeResourceBlockDefinition.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeResourceBlockDefinition.java @@ -20,11 +20,11 @@ package ca.uhn.fhir.context; * #L% */ -import ca.uhn.fhir.model.api.IResourceBlock; +import org.hl7.fhir.instance.model.IBase; -public class RuntimeResourceBlockDefinition extends BaseRuntimeElementCompositeDefinition { +public class RuntimeResourceBlockDefinition extends BaseRuntimeElementCompositeDefinition { - public RuntimeResourceBlockDefinition(String theName, Class theImplementingClass) { + public RuntimeResourceBlockDefinition(String theName, Class theImplementingClass) { super(theName, theImplementingClass); } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeResourceDefinition.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeResourceDefinition.java index ace36d4ddc4..c2751cf34de 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeResourceDefinition.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeResourceDefinition.java @@ -29,6 +29,7 @@ import java.util.Map; import org.hl7.fhir.instance.model.IBase; import org.hl7.fhir.instance.model.IBaseResource; +import org.hl7.fhir.instance.model.api.IAnyResource; import ca.uhn.fhir.model.api.IResource; import ca.uhn.fhir.model.api.annotation.ResourceDef; @@ -38,7 +39,7 @@ public class RuntimeResourceDefinition extends BaseRuntimeElementCompositeDefini private RuntimeResourceDefinition myBaseDefinition; private Map myNameToSearchParam = new LinkedHashMap(); - private IResource myProfileDef; + private IBaseResource myProfileDef; private String myResourceProfile; private List mySearchParams; private FhirContext myContext; @@ -57,7 +58,11 @@ public class RuntimeResourceDefinition extends BaseRuntimeElementCompositeDefini try { IBaseResource instance = theClass.newInstance(); - myStructureVersion = ((IResource)instance).getStructureFhirVersionEnum(); + if (instance instanceof IAnyResource) { + myStructureVersion = FhirVersionEnum.DSTU2_HL7ORG; + } else { + myStructureVersion = ((IResource)instance).getStructureFhirVersionEnum(); + } } catch (Exception e) { throw new ConfigurationException(myContext.getLocalizer().getMessage(getClass(), "nonInstantiableType", theClass.getName(), e.toString()), e); } @@ -152,23 +157,23 @@ public class RuntimeResourceDefinition extends BaseRuntimeElementCompositeDefini } @Deprecated - public synchronized IResource toProfile() { + public synchronized IBaseResource toProfile() { if (myProfileDef != null) { return myProfileDef; } - IResource retVal = myContext.getVersion().generateProfile(this, null); + IBaseResource retVal = myContext.getVersion().generateProfile(this, null); myProfileDef = retVal; return retVal; } - public synchronized IResource toProfile(String theServerBase) { + public synchronized IBaseResource toProfile(String theServerBase) { if (myProfileDef != null) { return myProfileDef; } - IResource retVal = myContext.getVersion().generateProfile(this, theServerBase); + IBaseResource retVal = myContext.getVersion().generateProfile(this, theServerBase); myProfileDef = retVal; return retVal; diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeResourceReferenceDefinition.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeResourceReferenceDefinition.java index 81008db767a..74fa2222b9e 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeResourceReferenceDefinition.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/context/RuntimeResourceReferenceDefinition.java @@ -26,7 +26,7 @@ import java.util.Map; import org.hl7.fhir.instance.model.IBase; import org.hl7.fhir.instance.model.IBaseResource; -import org.hl7.fhir.instance.model.Resource; +import org.hl7.fhir.instance.model.api.IAnyResource; import ca.uhn.fhir.model.api.IResource; import ca.uhn.fhir.model.base.composite.BaseResourceReferenceDt; @@ -52,7 +52,7 @@ public class RuntimeResourceReferenceDefinition extends BaseRuntimeElementDefini void sealAndInitialize(FhirContext theContext, Map, BaseRuntimeElementDefinition> theClassToElementDefinitions) { myResourceTypeToDefinition = new HashMap, RuntimeResourceDefinition>(); for (Class next : myResourceTypes) { - if (next.equals(IResource.class) || next.equals(Resource.class) || next.equals(IBaseResource.class)) { + if (next.equals(IResource.class) || next.equals(IAnyResource.class) || next.equals(IBaseResource.class)) { continue; } RuntimeResourceDefinition definition = (RuntimeResourceDefinition) theClassToElementDefinitions.get(next); diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/api/IFhirVersion.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/api/IFhirVersion.java index 8d9e022471a..b500b9db3b8 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/api/IFhirVersion.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/api/IFhirVersion.java @@ -22,12 +22,11 @@ package ca.uhn.fhir.model.api; import java.io.InputStream; +import org.hl7.fhir.instance.model.IBase; import org.hl7.fhir.instance.model.IBaseResource; import ca.uhn.fhir.context.FhirVersionEnum; import ca.uhn.fhir.context.RuntimeResourceDefinition; -import ca.uhn.fhir.model.base.composite.BaseContainedDt; -import ca.uhn.fhir.model.base.composite.BaseResourceReferenceDt; import ca.uhn.fhir.rest.server.IResourceProvider; import ca.uhn.fhir.rest.server.IServerConformanceProvider; import ca.uhn.fhir.rest.server.RestfulServer; @@ -40,14 +39,14 @@ public interface IFhirVersion { InputStream getFhirVersionPropertiesFile(); - IResource generateProfile(RuntimeResourceDefinition theRuntimeResourceDefinition, String theServerBase); + IBaseResource generateProfile(RuntimeResourceDefinition theRuntimeResourceDefinition, String theServerBase); IServerConformanceProvider createServerConformanceProvider(RestfulServer theRestfulServer); String getPathToSchemaDefinitions(); - Class getResourceReferenceType(); + Class getResourceReferenceType(); - Class getContainedType(); + Class getContainedType(); } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/BooleanDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/BooleanDt.java index 52cd3b8a2ca..4a1160a441d 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/BooleanDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/BooleanDt.java @@ -20,13 +20,15 @@ package ca.uhn.fhir.model.primitive; * #L% */ +import org.hl7.fhir.instance.model.api.IBaseBooleanDatatype; + import ca.uhn.fhir.model.api.BasePrimitive; import ca.uhn.fhir.model.api.annotation.DatatypeDef; import ca.uhn.fhir.model.api.annotation.SimpleSetter; import ca.uhn.fhir.parser.DataFormatException; @DatatypeDef(name = "boolean") -public class BooleanDt extends BasePrimitive { +public class BooleanDt extends BasePrimitive implements IBaseBooleanDatatype { /** * Constructor diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/DecimalDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/DecimalDt.java index 1750e44ed5b..cdb387df702 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/DecimalDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/DecimalDt.java @@ -24,12 +24,14 @@ import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMode; +import org.hl7.fhir.instance.model.api.IBaseDecimalDatatype; + import ca.uhn.fhir.model.api.BasePrimitive; import ca.uhn.fhir.model.api.annotation.DatatypeDef; import ca.uhn.fhir.model.api.annotation.SimpleSetter; @DatatypeDef(name = "decimal") -public class DecimalDt extends BasePrimitive implements Comparable { +public class DecimalDt extends BasePrimitive implements Comparable, IBaseDecimalDatatype { /** * Constructor diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/IdDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/IdDt.java index dcef586710c..5769c71ce81 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/IdDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/IdDt.java @@ -29,7 +29,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.hl7.fhir.instance.model.IBaseResource; -import org.hl7.fhir.instance.model.Resource; +import org.hl7.fhir.instance.model.api.IAnyResource; import ca.uhn.fhir.model.api.IPrimitiveDatatype; import ca.uhn.fhir.model.api.IResource; @@ -525,8 +525,8 @@ public class IdDt implements IPrimitiveDatatype { throw new NullPointerException("theResource can not be null"); } else if (theResouce instanceof IResource) { ((IResource) theResouce).setId(new IdDt(getValue())); - } else if (theResouce instanceof Resource) { - ((Resource) theResouce).setId(getIdPart()); + } else if (theResouce instanceof IAnyResource) { + ((IAnyResource) theResouce).setId(getIdPart()); } else { throw new IllegalArgumentException("Unknown resource class type, does not implement IResource or extend Resource"); } @@ -540,7 +540,7 @@ public class IdDt implements IPrimitiveDatatype { throw new NullPointerException("theResource can not be null"); } else if (theResouce instanceof IResource) { return ((IResource) theResouce).getId(); - } else if (theResouce instanceof Resource) { + } else if (theResouce instanceof IAnyResource) { // TODO: implement throw new UnsupportedOperationException(); } else { diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/IntegerDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/IntegerDt.java index 5539587c1da..4caa96ccf53 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/IntegerDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/primitive/IntegerDt.java @@ -20,13 +20,15 @@ package ca.uhn.fhir.model.primitive; * #L% */ +import org.hl7.fhir.instance.model.api.IBaseIntegerDatatype; + import ca.uhn.fhir.model.api.BasePrimitive; import ca.uhn.fhir.model.api.annotation.DatatypeDef; import ca.uhn.fhir.model.api.annotation.SimpleSetter; import ca.uhn.fhir.parser.DataFormatException; @DatatypeDef(name = "integer") -public class IntegerDt extends BasePrimitive { +public class IntegerDt extends BasePrimitive implements IBaseIntegerDatatype { /** * Constructor diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/BaseParser.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/BaseParser.java index 672547c453f..6e3ab1bca68 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/BaseParser.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/BaseParser.java @@ -36,11 +36,11 @@ import java.util.Map; import java.util.Set; import org.apache.commons.lang3.StringUtils; -import org.hl7.fhir.instance.model.DomainResource; import org.hl7.fhir.instance.model.IBase; import org.hl7.fhir.instance.model.IBaseResource; -import org.hl7.fhir.instance.model.Reference; -import org.hl7.fhir.instance.model.Resource; +import org.hl7.fhir.instance.model.api.IAnyResource; +import org.hl7.fhir.instance.model.api.IDomainResource; +import org.hl7.fhir.instance.model.api.IReference; import ca.uhn.fhir.context.BaseRuntimeChildDefinition; import ca.uhn.fhir.context.BaseRuntimeDeclaredChildDefinition; @@ -81,9 +81,9 @@ public abstract class BaseParser implements IParser { existingIdToContainedResource.put(nextId, next); } } - } else if (theTarget instanceof DomainResource) { - List containedResources = ((DomainResource) theTarget).getContained(); - for (Resource next : containedResources) { + } else if (theTarget instanceof IDomainResource) { + List containedResources = ((IDomainResource) theTarget).getContained(); + for (IAnyResource next : containedResources) { String nextId = next.getId(); if (StringUtils.isNotBlank(nextId)) { allIds.add(nextId); @@ -122,9 +122,9 @@ public abstract class BaseParser implements IParser { } { - List allElements = myContext.newTerser().getAllPopulatedChildElementsOfType(theResource, Reference.class); - for (Reference next : allElements) { - Resource resource = next.getResource(); + List allElements = myContext.newTerser().getAllPopulatedChildElementsOfType(theResource, IReference.class); + for (IReference next : allElements) { + IAnyResource resource = next.getResource(); if (resource != null) { if (resource.getIdElement().isEmpty() || resource.getId().startsWith("#")) { theContained.addContained(resource); @@ -312,8 +312,8 @@ public abstract class BaseParser implements IParser { IdDt newId; if (theResource instanceof IResource && ((IResource) theResource).getId().isLocal()) { newId = ((IResource) theResource).getId(); - } else if (theResource instanceof Resource && ((Resource)theResource).getId() != null && ((Resource)theResource).getId().startsWith("#")) { - newId = new IdDt(((Resource)theResource).getId()); + } else if (theResource instanceof IAnyResource && ((IAnyResource)theResource).getId() != null && ((IAnyResource)theResource).getId().startsWith("#")) { + newId = new IdDt(((IAnyResource)theResource).getId()); } else { // TODO: make this configurable between the two below (and something else?) // newId = new IdDt(UUID.randomUUID().toString()); diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/JsonParser.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/JsonParser.java index 8c19fa4b702..e7133e2c7e4 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/JsonParser.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/JsonParser.java @@ -20,13 +20,10 @@ package ca.uhn.fhir.parser; * #L% */ -import static org.apache.commons.lang3.StringUtils.defaultString; -import static org.apache.commons.lang3.StringUtils.isBlank; -import static org.apache.commons.lang3.StringUtils.isNotBlank; +import static org.apache.commons.lang3.StringUtils.*; import java.io.IOException; import java.io.Reader; -import java.io.StringReader; import java.io.Writer; import java.util.ArrayList; import java.util.Collections; @@ -54,7 +51,11 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.hl7.fhir.instance.model.IBase; import org.hl7.fhir.instance.model.IBaseResource; -import org.hl7.fhir.instance.model.Resource; +import org.hl7.fhir.instance.model.IPrimitiveType; +import org.hl7.fhir.instance.model.api.IAnyResource; +import org.hl7.fhir.instance.model.api.IBaseBooleanDatatype; +import org.hl7.fhir.instance.model.api.IBaseDecimalDatatype; +import org.hl7.fhir.instance.model.api.IBaseIntegerDatatype; import ca.uhn.fhir.context.BaseRuntimeChildDefinition; import ca.uhn.fhir.context.BaseRuntimeElementCompositeDefinition; @@ -340,28 +341,28 @@ public class JsonParser extends BaseParser implements IParser { switch (theChildDef.getChildType()) { case PRIMITIVE_DATATYPE: { - IPrimitiveDatatype value = (IPrimitiveDatatype) theNextValue; + IPrimitiveType value = (IPrimitiveType) theNextValue; if (isBlank(value.getValueAsString())) { break; } - if (value instanceof IntegerDt) { + if (value instanceof IBaseIntegerDatatype) { if (theChildName != null) { - theWriter.write(theChildName, ((IntegerDt) value).getValue()); + theWriter.write(theChildName, ((IBaseIntegerDatatype) value).getValue()); } else { - theWriter.write(((IntegerDt) value).getValue()); + theWriter.write(((IBaseIntegerDatatype) value).getValue()); } - } else if (value instanceof DecimalDt) { + } else if (value instanceof IBaseDecimalDatatype) { if (theChildName != null) { - theWriter.write(theChildName, ((DecimalDt) value).getValue()); + theWriter.write(theChildName, ((IBaseDecimalDatatype) value).getValue()); } else { - theWriter.write(((DecimalDt) value).getValue()); + theWriter.write(((IBaseDecimalDatatype) value).getValue()); } - } else if (value instanceof BooleanDt) { + } else if (value instanceof IBaseBooleanDatatype) { if (theChildName != null) { - theWriter.write(theChildName, ((BooleanDt) value).getValue()); + theWriter.write(theChildName, ((IBaseBooleanDatatype) value).getValue()); } else { - theWriter.write(((BooleanDt) value).getValue()); + theWriter.write(((IBaseBooleanDatatype) value).getValue()); } } else { String valueStr = value.getValueAsString(); @@ -443,6 +444,11 @@ public class JsonParser extends BaseParser implements IParser { } break; } + case RESOURCE: + IBaseResource resource = (IBaseResource) theNextValue; + RuntimeResourceDefinition def = myContext.getResourceDefinition(resource); + encodeResourceToJsonStreamWriter(def, resource, theWriter, theChildName, true); + break; case UNDECL_EXT: default: throw new IllegalStateException("Should not have this state here: " + theChildDef.getChildType().name()); @@ -610,8 +616,8 @@ public class JsonParser extends BaseParser implements IParser { resourceId = res.getId().getIdPart(); } } - } else if (theResource instanceof Resource) { - Resource res = (Resource) theResource; + } else if (theResource instanceof IAnyResource) { + IAnyResource res = (IAnyResource) theResource; if (theIsSubElementWithinResource && StringUtils.isNotBlank(res.getId())) { resourceId = res.getId(); } @@ -656,6 +662,7 @@ public class JsonParser extends BaseParser implements IParser { } else { encodeCompositeElementToStreamWriter(theResDef, theResource, theResource, theEventWriter, resDef, theIsSubElementWithinResource); } + theEventWriter.writeEnd(); } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/ParserState.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/ParserState.java index d9edc336c9b..13a23e074d7 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/ParserState.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/ParserState.java @@ -20,9 +20,7 @@ package ca.uhn.fhir.parser; * #L% */ -import static org.apache.commons.lang3.StringUtils.defaultIfBlank; -import static org.apache.commons.lang3.StringUtils.isNotBlank; -import static org.apache.commons.lang3.StringUtils.isNotEmpty; +import static org.apache.commons.lang3.StringUtils.*; import java.util.ArrayList; import java.util.HashMap; @@ -34,12 +32,16 @@ import javax.xml.stream.events.XMLEvent; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; -import org.hl7.fhir.instance.model.Element; import org.hl7.fhir.instance.model.IBase; import org.hl7.fhir.instance.model.IBaseResource; +import org.hl7.fhir.instance.model.ICompositeType; import org.hl7.fhir.instance.model.IPrimitiveType; +import org.hl7.fhir.instance.model.api.IAnyResource; +import org.hl7.fhir.instance.model.api.IBaseElement; +import org.hl7.fhir.instance.model.api.IReference; import ca.uhn.fhir.context.BaseRuntimeChildDefinition; +import ca.uhn.fhir.context.BaseRuntimeChildDefinition.IMutator; import ca.uhn.fhir.context.BaseRuntimeElementCompositeDefinition; import ca.uhn.fhir.context.BaseRuntimeElementDefinition; import ca.uhn.fhir.context.ConfigurationException; @@ -121,9 +123,9 @@ class ParserState { return myState.isPreResource(); } - private BaseContainedDt newContainedDt(IResource theTarget) { + private Object newContainedDt(IResource theTarget) { - BaseContainedDt newChildInstance; + Object newChildInstance; try { newChildInstance = theTarget.getStructureFhirVersionEnum().getVersionImplementation().getContainedType().newInstance(); } catch (InstantiationException e) { @@ -134,12 +136,16 @@ class ParserState { return newChildInstance; } - private BaseResourceReferenceDt newResourceReferenceDt(IBase theFirstTarget, IResource theTarget) { + private IBase newResourceReferenceDt(IBaseResource theTarget) { - BaseResourceReferenceDt newChildInstance; + IBase newChildInstance; try { - // if (theFirstTarget instanceof IResource) - IFhirVersion version = theTarget.getStructureFhirVersionEnum().getVersionImplementation(); + IFhirVersion version; + if (theTarget instanceof IResource) { + version = ((IResource) theTarget).getStructureFhirVersionEnum().getVersionImplementation(); + } else { + version = FhirVersionEnum.DSTU2_HL7ORG.getVersionImplementation(); + } newChildInstance = version.getResourceReferenceType().newInstance(); } catch (InstantiationException e) { throw new ConfigurationException("Failed to instantiate " + myContext.getVersion().getResourceReferenceType(), e); @@ -220,7 +226,19 @@ class ParserState { */ public static ParserState getPreResourceInstance(Class theResourceType, FhirContext theContext, boolean theJsonMode) throws DataFormatException { ParserState retVal = new ParserState(theContext, theJsonMode); - retVal.push(retVal.new PreResourceState(theResourceType)); + if (theResourceType == null) { + if (theContext.getVersion().getVersion() != FhirVersionEnum.DSTU2_HL7ORG) { + retVal.push(retVal.new PreResourceStateHapi(theResourceType)); + } else { + retVal.push(retVal.new PreResourceStateHl7Org(theResourceType)); + } + } else { + if (IResource.class.isAssignableFrom(theResourceType)) { + retVal.push(retVal.new PreResourceStateHapi(theResourceType)); + } else { + retVal.push(retVal.new PreResourceStateHl7Org(theResourceType)); + } + } return retVal; } @@ -467,7 +485,7 @@ class ParserState { } else if ("author".equals(theLocalPart)) { push(new AtomAuthorState(myEntry)); } else if ("content".equals(theLocalPart)) { - push(new PreResourceState(myEntry, myResourceType)); + push(new PreResourceStateHapi(myEntry, myResourceType)); } else if ("summary".equals(theLocalPart)) { push(new XhtmlState(getPreResourceState(), myEntry.getSummary(), false)); } else if ("category".equals(theLocalPart)) { @@ -1016,7 +1034,7 @@ class ParserState { } else if ("score".equals(theLocalPart)) { push(new PrimitiveState(getPreResourceState(), myEntry.getScore())); } else if ("resource".equals(theLocalPart)) { - push(new PreResourceState(myEntry, myResourceType)); + push(new PreResourceStateHapi(myEntry, myResourceType)); } else if ("deleted".equals(theLocalPart)) { push(new BundleEntryDeletedState(getPreResourceState(), myEntry)); } else { @@ -1293,10 +1311,10 @@ class ParserState { } - private class ContainedResourcesState extends PreResourceState { + private class ContainedResourcesStateHapi extends PreResourceState { - public ContainedResourcesState(PreResourceState thePreResourcesState) { - super(thePreResourcesState, thePreResourcesState.myInstance.getStructureFhirVersionEnum()); + public ContainedResourcesStateHapi(PreResourceState thePreResourcesState) { + super(thePreResourcesState, ((IResource) thePreResourcesState.myInstance).getStructureFhirVersionEnum()); } @Override @@ -1370,9 +1388,9 @@ class ParserState { return; } case RESOURCE_REF: { - BaseResourceReferenceDt newChildInstance = newResourceReferenceDt(null, myPreResourceState.myInstance); + IBase newChildInstance = newResourceReferenceDt(myPreResourceState.myInstance); myDefinition.getMutator().addValue(myParentInstance, newChildInstance); - ResourceReferenceState newState = new ResourceReferenceState(getPreResourceState(), newChildInstance); + BaseState newState = createResourceReferenceState(getPreResourceState(), newChildInstance); push(newState); return; } @@ -1408,6 +1426,16 @@ class ParserState { } + private BaseState createResourceReferenceState(ParserState.PreResourceState thePreResourceState, IBase newChildInstance) { + BaseState newState; + if (newChildInstance instanceof IReference) { + newState = new ResourceReferenceStateHl7Org(thePreResourceState, (IReference) newChildInstance); + } else { + newState = new ResourceReferenceStateHapi(thePreResourceState, (BaseResourceReferenceDt) newChildInstance); + } + return newState; + } + private class ElementCompositeState extends BaseState { private BaseRuntimeElementCompositeDefinition myDefinition; @@ -1424,8 +1452,8 @@ class ParserState { if ("id".equals(theName)) { if (myInstance instanceof IIdentifiableElement) { ((IIdentifiableElement) myInstance).setElementSpecificId((theValue)); - } else if (myInstance instanceof Element) { - ((Element) myInstance).setId(theValue); + } else if (myInstance instanceof IBaseElement) { + ((IBaseElement) myInstance).setId(theValue); } else if (myInstance instanceof IBaseResource) { new IdDt(theValue).applyTo((IBaseResource) myInstance); } @@ -1464,9 +1492,9 @@ class ParserState { switch (target.getChildType()) { case COMPOSITE_DATATYPE: { BaseRuntimeElementCompositeDefinition compositeTarget = (BaseRuntimeElementCompositeDefinition) target; - ICompositeDatatype newChildInstance = (ICompositeDatatype) compositeTarget.newInstance(child.getInstanceConstructorArguments()); + ICompositeType newChildInstance = (ICompositeType) compositeTarget.newInstance(child.getInstanceConstructorArguments()); child.getMutator().addValue(myInstance, newChildInstance); - ElementCompositeState newState = new ElementCompositeState(getPreResourceState(), compositeTarget, newChildInstance); + ParserState.ElementCompositeState newState = new ElementCompositeState(getPreResourceState(), compositeTarget, newChildInstance); push(newState); return; } @@ -1480,19 +1508,17 @@ class ParserState { return; } case RESOURCE_REF: { - RuntimeResourceReferenceDefinition resourceRefTarget = (RuntimeResourceReferenceDefinition) target; - BaseResourceReferenceDt newChildInstance = newResourceReferenceDt(myInstance, getPreResourceState().myInstance); - getPreResourceState().getResourceReferences().add(newChildInstance); + IBase newChildInstance = newResourceReferenceDt(getPreResourceState().myInstance); child.getMutator().addValue(myInstance, newChildInstance); - ResourceReferenceState newState = new ResourceReferenceState(getPreResourceState(), newChildInstance); + BaseState newState = createResourceReferenceState(getPreResourceState(), newChildInstance); push(newState); return; } case RESOURCE_BLOCK: { RuntimeResourceBlockDefinition blockTarget = (RuntimeResourceBlockDefinition) target; - IResourceBlock newBlockInstance = blockTarget.newInstance(); + IBase newBlockInstance = blockTarget.newInstance(); child.getMutator().addValue(myInstance, newBlockInstance); - ElementCompositeState newState = new ElementCompositeState(getPreResourceState(), blockTarget, newBlockInstance); + ElementCompositeState newState = new ElementCompositeState(getPreResourceState(), blockTarget, newBlockInstance); push(newState); return; } @@ -1505,21 +1531,24 @@ class ParserState { return; } case CONTAINED_RESOURCES: { - RuntimeElemContainedResources targetElem = (RuntimeElemContainedResources) target; List values = child.getAccessor().getValues(myInstance); - BaseContainedDt newDt; + Object newDt; if (values == null || values.isEmpty() || values.get(0) == null) { - newDt = newContainedDt(getPreResourceState().myInstance); - child.getMutator().addValue(myInstance, newDt); + newDt = newContainedDt((IResource) getPreResourceState().myInstance); + child.getMutator().addValue(myInstance, (IBase) newDt); } else { - newDt = (BaseContainedDt) values.get(0); + newDt = values.get(0); } - ContainedResourcesState state = new ContainedResourcesState(getPreResourceState()); + ContainedResourcesStateHapi state = new ContainedResourcesStateHapi(getPreResourceState()); + push(state); + return; + } + case RESOURCE: { + ParserState.PreResourceStateHl7Org state = new PreResourceStateHl7Org(myInstance, child.getMutator(), null); push(state); return; } case UNDECL_EXT: - case RESOURCE: case EXTENSION_DECLARED: { // Throw an exception because this shouldn't happen here break; @@ -1589,9 +1618,9 @@ class ParserState { return; } case RESOURCE_REF: { - BaseResourceReferenceDt newChildInstance = newResourceReferenceDt(null, getPreResourceState().myInstance); + BaseResourceReferenceDt newChildInstance = (BaseResourceReferenceDt) newResourceReferenceDt(getPreResourceState().myInstance); myExtension.setValue(newChildInstance); - ResourceReferenceState newState = new ResourceReferenceState(getPreResourceState(), newChildInstance); + ResourceReferenceStateHapi newState = new ResourceReferenceStateHapi(getPreResourceState(), newChildInstance); push(newState); return; } @@ -1714,18 +1743,72 @@ class ParserState { } - private class PreResourceState extends BaseState { + private class PreResourceStateHapi extends PreResourceState { + private BundleEntry myEntry; + + public PreResourceStateHapi(BundleEntry theEntry, Class theResourceType) { + super(theResourceType); + myEntry = theEntry; + } + + public PreResourceStateHapi(Class theResourceType) { + super(theResourceType); + } + + @SuppressWarnings("unchecked") + @Override + public void wereBack() { + super.wereBack(); + + if (myEntry == null) { + myObject = (T) getCurrentElement(); + } + } + + @Override + public void enteringNewElement(String theNamespaceURI, String theLocalPart) throws DataFormatException { + super.enteringNewElement(theNamespaceURI, theLocalPart); + if (myEntry != null) { + myEntry.setResource((IResource) getCurrentElement()); + } + } + + } + + private class PreResourceStateHl7Org extends PreResourceState { + + private IMutator myMutator; + private Object myTarget; + + public PreResourceStateHl7Org(Object theTarget, IMutator theMutator, Class theResourceType) { + super(theResourceType); + myMutator = theMutator; + myTarget = theTarget; + } + + public PreResourceStateHl7Org(Class theResourceType) { + super(theResourceType); + } + + @Override + public void enteringNewElement(String theNamespaceURI, String theLocalPart) throws DataFormatException { + super.enteringNewElement(theNamespaceURI, theLocalPart); + if (myMutator != null) { + myMutator.addValue(myTarget, getCurrentElement()); + } + } + + } + + private abstract class PreResourceState extends BaseState { private Map myContainedResources = new HashMap(); - private BundleEntry myEntry; - private IResource myInstance; + private IBaseResource myInstance; private FhirVersionEnum myParentVersion; - private List myResourceReferences = new ArrayList(); private Class myResourceType; - public PreResourceState(BundleEntry theEntry, Class theResourceType) { + public PreResourceState(Class theResourceType) { super(null); - myEntry = theEntry; myResourceType = theResourceType; if (theResourceType != null) { myParentVersion = myContext.getResourceDefinition(theResourceType).getStructureVersion(); @@ -1734,14 +1817,6 @@ class ParserState { } } - /** - * @param theResourceType - * May be null - */ - public PreResourceState(Class theResourceType) { - this(null, theResourceType); - } - public PreResourceState(PreResourceState thePreResourcesState, FhirVersionEnum theParentVersion) { super(thePreResourcesState); Validate.notNull(theParentVersion); @@ -1772,16 +1847,15 @@ class ParserState { } RuntimeResourceDefinition def = (RuntimeResourceDefinition) definition; - myInstance = (IResource) def.newInstance(); - if (myEntry != null) { - myEntry.setResource(myInstance); - } + myInstance = def.newInstance(); String resourceName = def.getName(); if ("Binary".equals(resourceName) && myContext.getVersion().getVersion() == FhirVersionEnum.DSTU1) { push(new BinaryResourceStateForDstu1(getRootPreResourceState(), (BaseBinary) myInstance)); + } else if (myInstance instanceof IResource) { + push(new ResourceStateHapi(getRootPreResourceState(), def, (IResource) myInstance)); } else { - push(new ResourceState(getRootPreResourceState(), def, myInstance)); + push(new ResourceStateHl7Org(getRootPreResourceState(), def, myInstance)); } } @@ -1794,10 +1868,6 @@ class ParserState { return myInstance; } - public List getResourceReferences() { - return myResourceReferences; - } - private PreResourceState getRootPreResourceState() { if (getPreResourceState() != null) { return getPreResourceState(); @@ -1814,10 +1884,6 @@ class ParserState { @SuppressWarnings("unchecked") @Override public void wereBack() { - if (myEntry == null) { - myObject = (T) myInstance; - } - myContext.newTerser().visit(myInstance, new IModelVisitor() { @Override @@ -1904,8 +1970,8 @@ class ParserState { } else if ("id".equals(theName)) { if (myInstance instanceof IIdentifiableElement) { ((IIdentifiableElement) myInstance).setElementSpecificId(theValue); - } else if (myInstance instanceof Element) { - ((Element) myInstance).setId(theValue); + } else if (myInstance instanceof IBaseElement) { + ((IBaseElement) myInstance).setId(theValue); } else if (myInstance instanceof IBaseResource) { new IdDt(theValue).applyTo((org.hl7.fhir.instance.model.IBaseResource) myInstance); } @@ -1945,12 +2011,81 @@ class ParserState { } - private class ResourceReferenceState extends BaseState { + private class ResourceReferenceStateHl7Org extends BaseState { + + private IReference myInstance; + private ResourceReferenceSubState mySubState; + + public ResourceReferenceStateHl7Org(PreResourceState thePreResourceState, IReference theInstance) { + super(thePreResourceState); + myInstance = theInstance; + mySubState = ResourceReferenceSubState.INITIAL; + } + + @Override + public void attributeValue(String theName, String theValue) throws DataFormatException { + if (!"value".equals(theName)) { + return; + } + + switch (mySubState) { + case DISPLAY: + myInstance.setDisplay(theValue); + break; + case INITIAL: + throw new DataFormatException("Unexpected attribute: " + theValue); + case REFERENCE: + myInstance.setReference(theValue); + break; + } + } + + @Override + public void endingElement() { + switch (mySubState) { + case INITIAL: + pop(); + break; + case DISPLAY: + case REFERENCE: + mySubState = ResourceReferenceSubState.INITIAL; + } + } + + @Override + public void enteringNewElement(String theNamespaceURI, String theLocalPart) throws DataFormatException { + switch (mySubState) { + case INITIAL: + if ("display".equals(theLocalPart)) { + mySubState = ResourceReferenceSubState.DISPLAY; + break; + } else if ("reference".equals(theLocalPart)) { + mySubState = ResourceReferenceSubState.REFERENCE; + break; + } else if ("resource".equals(theLocalPart)) { + mySubState = ResourceReferenceSubState.REFERENCE; + break; + } + //$FALL-THROUGH$ + case DISPLAY: + case REFERENCE: + throw new DataFormatException("Unexpected element: " + theLocalPart); + } + } + + @Override + protected IReference getCurrentElement() { + return myInstance; + } + + } + + private class ResourceReferenceStateHapi extends BaseState { private BaseResourceReferenceDt myInstance; private ResourceReferenceSubState mySubState; - public ResourceReferenceState(PreResourceState thePreResourceState, BaseResourceReferenceDt theInstance) { + public ResourceReferenceStateHapi(PreResourceState thePreResourceState, BaseResourceReferenceDt theInstance) { super(thePreResourceState); myInstance = theInstance; mySubState = ResourceReferenceSubState.INITIAL; @@ -2018,9 +2153,9 @@ class ParserState { DISPLAY, INITIAL, REFERENCE } - private class ResourceState extends ElementCompositeState { + private class ResourceStateHapi extends ElementCompositeState { - public ResourceState(PreResourceState thePreResourceState, BaseRuntimeElementCompositeDefinition theDef, IResource theInstance) { + public ResourceStateHapi(PreResourceState thePreResourceState, BaseRuntimeElementCompositeDefinition theDef, IResource theInstance) { super(thePreResourceState, theDef, theInstance); } @@ -2037,6 +2172,14 @@ class ParserState { } + private class ResourceStateHl7Org extends ElementCompositeState { + + public ResourceStateHl7Org(PreResourceState thePreResourceState, BaseRuntimeElementCompositeDefinition theDef, IBaseResource theInstance) { + super(thePreResourceState, theDef, theInstance); + } + + } + private class SwallowChildrenWholeState extends BaseState { private int myDepth; diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/XmlParser.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/XmlParser.java index c426d8ae917..490e6d796a1 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/XmlParser.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/parser/XmlParser.java @@ -20,9 +20,7 @@ package ca.uhn.fhir.parser; * #L% */ -import static org.apache.commons.lang3.StringUtils.defaultString; -import static org.apache.commons.lang3.StringUtils.isBlank; -import static org.apache.commons.lang3.StringUtils.isNotBlank; +import static org.apache.commons.lang3.StringUtils.*; import java.io.IOException; import java.io.Reader; @@ -47,11 +45,11 @@ import javax.xml.stream.events.StartElement; import javax.xml.stream.events.XMLEvent; import org.apache.commons.lang3.StringUtils; -import org.hl7.fhir.instance.model.DomainResource; import org.hl7.fhir.instance.model.IBase; import org.hl7.fhir.instance.model.IBaseResource; -import org.hl7.fhir.instance.model.Narrative; -import org.hl7.fhir.instance.model.Resource; +import org.hl7.fhir.instance.model.api.IAnyResource; +import org.hl7.fhir.instance.model.api.IDomainResource; +import org.hl7.fhir.instance.model.api.INarrative; import ca.uhn.fhir.context.BaseRuntimeChildDefinition; import ca.uhn.fhir.context.BaseRuntimeElementCompositeDefinition; @@ -525,7 +523,7 @@ public class XmlParser extends BaseParser implements IParser { continue; } } else { - Narrative narr1 = ((DomainResource) theResource).getText(); + INarrative narr1 = ((IDomainResource) theResource).getText(); BaseNarrativeDt narr2 = null; if (gen != null && narr1.isEmpty()) { // TODO: need to implement this @@ -673,7 +671,7 @@ public class XmlParser extends BaseParser implements IParser { } } else { // HL7 structs - Resource resource = (Resource) theResource; + IAnyResource resource = (IAnyResource) theResource; if (StringUtils.isNotBlank(resource.getId())) { resourceId = resource.getId(); } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/BaseAddOrDeleteTagsMethodBinding.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/BaseAddOrDeleteTagsMethodBinding.java index ab8b37bcaf9..dfbf3aa2f8c 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/BaseAddOrDeleteTagsMethodBinding.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/BaseAddOrDeleteTagsMethodBinding.java @@ -24,11 +24,14 @@ import java.io.IOException; import java.io.PrintWriter; import java.io.Reader; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletResponse; +import org.hl7.fhir.instance.model.IBaseResource; + import ca.uhn.fhir.context.ConfigurationException; import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.model.api.IResource; @@ -52,7 +55,7 @@ import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor; abstract class BaseAddOrDeleteTagsMethodBinding extends BaseMethodBinding { - private Class myType; + private Class myType; private Integer myIdParamIndex; private Integer myVersionIdParamIndex; private String myResourceName; @@ -67,9 +70,10 @@ abstract class BaseAddOrDeleteTagsMethodBinding extends BaseMethodBinding myType = theTypeFromMethodAnnotation; } - if (myType.equals(IResource.class)) { + if (Modifier.isInterface(myType.getModifiers())) { throw new ConfigurationException("Method '" + theMethod.getName() + "' does not specify a resource type, but has an @" + IdParam.class.getSimpleName() + " parameter. Please specity a resource type in the method annotation on this method"); } + myResourceName = theConetxt.getResourceDefinition(myType).getName(); myIdParamIndex = MethodUtil.findIdParameterIndex(theMethod); @@ -132,7 +136,7 @@ abstract class BaseAddOrDeleteTagsMethodBinding extends BaseMethodBinding TagList tagList = (TagList) theArgs[myTagListParamIndex]; - Class type = myType; + Class type = myType; assert type != null; if (isDelete()) { diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/BaseMethodBinding.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/BaseMethodBinding.java index 6c4cba62e56..04b050e1d15 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/BaseMethodBinding.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/BaseMethodBinding.java @@ -254,9 +254,9 @@ public abstract class BaseMethodBinding implements IClientResponseHandler return null; } - Class returnType; + Class returnType; - Class returnTypeFromRp = null; + Class returnTypeFromRp = null; if (theProvider instanceof IResourceProvider) { returnTypeFromRp = ((IResourceProvider) theProvider).getResourceType(); if (!verifyIsValidResourceReturnType(returnTypeFromRp)) { diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/BaseOutcomeReturningMethodBindingWithResourceParam.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/BaseOutcomeReturningMethodBindingWithResourceParam.java index d48e06147b7..2815b005ecf 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/BaseOutcomeReturningMethodBindingWithResourceParam.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/BaseOutcomeReturningMethodBindingWithResourceParam.java @@ -42,7 +42,7 @@ abstract class BaseOutcomeReturningMethodBindingWithResourceParam extends BaseOu private int myResourceParameterIndex; private String myResourceName; private boolean myBinary; - private Class myResourceType; + private Class myResourceType; public BaseOutcomeReturningMethodBindingWithResourceParam(Method theMethod, FhirContext theContext, Class theMethodAnnotation, Object theProvider) { super(theMethod, theContext, theMethodAnnotation, theProvider); @@ -57,7 +57,7 @@ abstract class BaseOutcomeReturningMethodBindingWithResourceParam extends BaseOu } resourceParameter = (ResourceParameter) next; - Class providerResourceType = resourceParameter.getResourceType(); + Class providerResourceType = resourceParameter.getResourceType(); if (theProvider instanceof IResourceProvider) { providerResourceType = ((IResourceProvider) theProvider).getResourceType(); diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/DynamicSearchMethodBinding.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/DynamicSearchMethodBinding.java index 8acf901cf1e..c23f76b4eb2 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/DynamicSearchMethodBinding.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/DynamicSearchMethodBinding.java @@ -26,9 +26,10 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; +import org.hl7.fhir.instance.model.IBaseResource; + import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.context.RuntimeSearchParam; -import ca.uhn.fhir.model.api.IResource; import ca.uhn.fhir.model.dstu.valueset.RestfulOperationSystemEnum; import ca.uhn.fhir.model.dstu.valueset.RestfulOperationTypeEnum; import ca.uhn.fhir.model.valueset.BundleTypeEnum; @@ -47,7 +48,7 @@ public class DynamicSearchMethodBinding extends BaseResourceReturningMethodBindi private HashSet myParamNames; private Integer myIdParamIndex; - public DynamicSearchMethodBinding(Class theReturnResourceType, Method theMethod, FhirContext theConetxt, IDynamicSearchResourceProvider theProvider) { + public DynamicSearchMethodBinding(Class theReturnResourceType, Method theMethod, FhirContext theConetxt, IDynamicSearchResourceProvider theProvider) { super(theReturnResourceType, theMethod, theConetxt, theProvider); myProvider = theProvider; diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/GetTagsMethodBinding.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/GetTagsMethodBinding.java index 78ea4c257d8..ce8ead5a8ff 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/GetTagsMethodBinding.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/GetTagsMethodBinding.java @@ -24,11 +24,14 @@ import java.io.IOException; import java.io.PrintWriter; import java.io.Reader; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletResponse; +import org.hl7.fhir.instance.model.IBaseResource; + import ca.uhn.fhir.context.ConfigurationException; import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.model.api.IResource; @@ -51,7 +54,7 @@ import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor; public class GetTagsMethodBinding extends BaseMethodBinding { - private Class myType; + private Class myType; private Integer myIdParamIndex; private Integer myVersionIdParamIndex; private String myResourceName; @@ -65,7 +68,7 @@ public class GetTagsMethodBinding extends BaseMethodBinding { myType = theAnnotation.type(); } - if (!IResource.class.equals(myType)) { + if (!Modifier.isInterface(myType.getModifiers())) { myResourceName = theConetxt.getResourceDefinition(myType).getName(); } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/HistoryMethodBinding.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/HistoryMethodBinding.java index d00fabd4f6d..ccf2e630e90 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/HistoryMethodBinding.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/HistoryMethodBinding.java @@ -23,9 +23,11 @@ package ca.uhn.fhir.rest.method; import static org.apache.commons.lang3.StringUtils.*; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.util.List; import org.apache.commons.lang3.ObjectUtils; +import org.hl7.fhir.instance.model.IBaseResource; import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.model.api.IResource; @@ -57,8 +59,8 @@ public class HistoryMethodBinding extends BaseResourceReturningMethodBinding { myIdParamIndex = MethodUtil.findIdParameterIndex(theMethod); History historyAnnotation = theMethod.getAnnotation(History.class); - Class type = historyAnnotation.type(); - if (type == IResource.class) { + Class type = historyAnnotation.type(); + if (Modifier.isInterface(type.getModifiers())) { if (theProvider instanceof IResourceProvider) { type = ((IResourceProvider) theProvider).getResourceType(); if (myIdParamIndex != null) { @@ -235,7 +237,7 @@ public class HistoryMethodBinding extends BaseResourceReturningMethodBinding { return true; } - private static Class toReturnType(Method theMethod, Object theProvider) { + private static Class toReturnType(Method theMethod, Object theProvider) { if (theProvider instanceof IResourceProvider) { return ((IResourceProvider) theProvider).getResourceType(); } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/MethodUtil.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/MethodUtil.java index 982aaa3ee96..9e5324ca07e 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/MethodUtil.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/MethodUtil.java @@ -22,8 +22,8 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.apache.http.client.utils.DateUtils; import org.hl7.fhir.instance.model.IBaseResource; -import org.hl7.fhir.instance.model.Resource; -import org.hl7.fhir.instance.model.Resource.ResourceMetaComponent; +import org.hl7.fhir.instance.model.api.IAnyResource; +import org.hl7.fhir.instance.model.api.IMetaType; import ca.uhn.fhir.context.ConfigurationException; import ca.uhn.fhir.context.FhirContext; @@ -145,8 +145,8 @@ public class MethodUtil { if (resource instanceof IResource) { InstantDt lmValue = new InstantDt(headerDateValue); ((IResource) resource).getResourceMetadata().put(ResourceMetadataKeyEnum.UPDATED, lmValue); - } else if (resource instanceof Resource) { - ((Resource) resource).getMeta().setLastUpdated(headerDateValue); + } else if (resource instanceof IAnyResource) { + ((IAnyResource) resource).getMeta().setLastUpdated(headerDateValue); } } catch (Exception e) { ourLog.warn("Unable to parse date string '{}'. Error is: {}", headerValue, e.toString()); @@ -190,8 +190,8 @@ public class MethodUtil { } if (resource instanceof IResource) { ResourceMetadataKeyEnum.TAG_LIST.put((IResource) resource, tagList); - } else if (resource instanceof Resource) { - ResourceMetaComponent meta = ((Resource) resource).getMeta(); + } else if (resource instanceof IAnyResource) { + IMetaType meta = ((IAnyResource) resource).getMeta(); for (Tag next : tagList) { meta.addTag().setSystem(next.getScheme()).setCode(next.getTerm()).setDisplay(next.getLabel()); } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/ReadMethodBinding.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/ReadMethodBinding.java index 0e6dde55493..40929aa9245 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/ReadMethodBinding.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/ReadMethodBinding.java @@ -31,6 +31,7 @@ import java.util.Map; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; +import org.hl7.fhir.instance.model.IBaseResource; import ca.uhn.fhir.context.ConfigurationException; import ca.uhn.fhir.context.FhirContext; @@ -60,7 +61,7 @@ public class ReadMethodBinding extends BaseResourceReturningMethodBinding implem private boolean mySupportsVersion; private Integer myVersionIdIndex; - public ReadMethodBinding(Class theAnnotatedResourceType, Method theMethod, FhirContext theContext, Object theProvider) { + public ReadMethodBinding(Class theAnnotatedResourceType, Method theMethod, FhirContext theContext, Object theProvider) { super(theAnnotatedResourceType, theMethod, theContext, theProvider); Validate.notNull(theMethod, "Method must not be null"); diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java index 30c0b7c1c00..d21a72d38be 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/method/SearchMethodBinding.java @@ -20,8 +20,7 @@ package ca.uhn.fhir.rest.method; * #L% */ -import static org.apache.commons.lang3.StringUtils.isBlank; -import static org.apache.commons.lang3.StringUtils.isNotBlank; +import static org.apache.commons.lang3.StringUtils.*; import java.lang.reflect.Method; import java.util.ArrayList; @@ -34,6 +33,7 @@ import java.util.Map.Entry; import java.util.Set; import org.apache.commons.lang3.StringUtils; +import org.hl7.fhir.instance.model.IBaseResource; import ca.uhn.fhir.context.ConfigurationException; import ca.uhn.fhir.context.FhirContext; @@ -58,18 +58,18 @@ public class SearchMethodBinding extends BaseResourceReturningMethodBinding { private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(SearchMethodBinding.class); private String myCompartmentName; - private Class myDeclaredResourceType; + private Class myDeclaredResourceType; private String myDescription; private Integer myIdParamIndex; private String myQueryName; @SuppressWarnings("unchecked") - public SearchMethodBinding(Class theReturnResourceType, Method theMethod, FhirContext theContext, Object theProvider) { + public SearchMethodBinding(Class theReturnResourceType, Method theMethod, FhirContext theContext, Object theProvider) { super(theReturnResourceType, theMethod, theContext, theProvider); Search search = theMethod.getAnnotation(Search.class); this.myQueryName = StringUtils.defaultIfBlank(search.queryName(), null); this.myCompartmentName = StringUtils.defaultIfBlank(search.compartmentName(), null); - this.myDeclaredResourceType = (Class) theMethod.getReturnType(); + this.myDeclaredResourceType = (Class) theMethod.getReturnType(); this.myIdParamIndex = MethodUtil.findIdParameterIndex(theMethod); Description desc = theMethod.getAnnotation(Description.class); @@ -118,7 +118,7 @@ public class SearchMethodBinding extends BaseResourceReturningMethodBinding { } - public Class getDeclaredResourceType() { + public Class getDeclaredResourceType() { return myDeclaredResourceType; } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/IResourceProvider.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/IResourceProvider.java index 0435b044329..d66312437a0 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/IResourceProvider.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/IResourceProvider.java @@ -20,7 +20,7 @@ package ca.uhn.fhir.rest.server; * #L% */ -import ca.uhn.fhir.model.api.IResource; +import org.hl7.fhir.instance.model.IBaseResource; public interface IResourceProvider { @@ -29,6 +29,6 @@ public interface IResourceProvider { * * @return Returns the type of resource returned by this provider */ - Class getResourceType(); + Class getResourceType(); } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/RestfulServer.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/RestfulServer.java index e71c5fb2e0b..074ae7578a9 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/RestfulServer.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/rest/server/RestfulServer.java @@ -55,6 +55,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.http.client.utils.DateUtils; +import org.hl7.fhir.instance.model.IBaseResource; import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.context.FhirVersionEnum; @@ -770,7 +771,7 @@ public class RestfulServer extends HttpServlet { Map typeToProvider = new HashMap(); for (IResourceProvider nextProvider : resourceProvider) { - Class resourceType = nextProvider.getResourceType(); + Class resourceType = nextProvider.getResourceType(); if (resourceType == null) { throw new NullPointerException("getResourceType() on class '" + nextProvider.getClass().getCanonicalName() + "' returned null"); } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/util/FhirTerser.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/util/FhirTerser.java index 170f068a159..18b3485d2a2 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/util/FhirTerser.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/util/FhirTerser.java @@ -232,7 +232,8 @@ public class FhirTerser { b.append(childDef.getName()); b.append(" - Valid types: "); for (Iterator iter = new TreeSet(nextChild.getValidChildNames()).iterator(); iter.hasNext();) { - b.append(nextChild.getChildByName(iter.next()).getImplementingClass().getSimpleName()); + BaseRuntimeElementDefinition childByName = nextChild.getChildByName(iter.next()); + b.append(childByName.getImplementingClass().getSimpleName()); if (iter.hasNext()) { b.append(", "); } @@ -268,7 +269,7 @@ public class FhirTerser { * @param theVisitor * The visitor */ - public void visit(IResource theResource, IModelVisitor theVisitor) { + public void visit(IBaseResource theResource, IModelVisitor theVisitor) { BaseRuntimeElementCompositeDefinition def = myContext.getResourceDefinition(theResource); visit(theResource, null, def, theVisitor); } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/util/IModelVisitor.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/util/IModelVisitor.java index b089b35ce65..f183f8ee4d4 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/util/IModelVisitor.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/util/IModelVisitor.java @@ -21,6 +21,7 @@ package ca.uhn.fhir.util; */ import org.hl7.fhir.instance.model.IBase; +import org.hl7.fhir.instance.model.IBaseResource; import ca.uhn.fhir.context.BaseRuntimeChildDefinition; import ca.uhn.fhir.context.BaseRuntimeElementDefinition; @@ -28,7 +29,7 @@ import ca.uhn.fhir.model.api.ExtensionDt; import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions; /** - * @see FhirTerser#visit(ca.uhn.fhir.model.api.IResource, IModelVisitor) + * @see FhirTerser#visit(IBaseResource, IModelVisitor) */ public interface IModelVisitor { diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/formats/FormatUtilities.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/formats/FormatUtilities.java deleted file mode 100644 index b93b5c7a6c3..00000000000 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/formats/FormatUtilities.java +++ /dev/null @@ -1,109 +0,0 @@ -package org.hl7.fhir.instance.formats; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* -Copyright (c) 2011+, HL7, Inc -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -import java.math.BigDecimal; -import java.net.URI; - -import org.apache.commons.codec.binary.Base64; -import org.hl7.fhir.instance.model.DateAndTime; - -public abstract class FormatUtilities { - public static final String ID_REGEX = "[A-Za-z0-9\\-\\.]{1,64}"; - protected static final String FHIR_NS = "http://hl7.org/fhir"; - protected static final String ATOM_NS = "http://www.w3.org/2005/Atom"; - protected static final String GDATA_NS = "http://schemas.google.com/g/2005"; - - protected String toString(String value) { - return value; - } - - protected String toString(int value) { - return java.lang.Integer.toString(value); - } - - protected String toString(boolean value) { - return java.lang.Boolean.toString(value); - } - - protected String toString(BigDecimal value) { - return value.toString(); - } - - protected String toString(URI value) { - return value.toString(); - } - - public static String toString(byte[] value) { - byte[] encodeBase64 = Base64.encodeBase64(value); - return new String(encodeBase64); - } - - protected String toString(DateAndTime value) { - return value.toString(); - } - - public static boolean isValidId(String tail) { - return tail.matches(ID_REGEX); - } - - public static String makeId(String candidate) { - StringBuilder b = new StringBuilder(); - for (char c : candidate.toCharArray()) - if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '.' || c == '-') - b.append(c); - return b.toString(); - } - - - - -} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Bundle.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Bundle.java deleted file mode 100644 index a0eb5b9cd0a..00000000000 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Bundle.java +++ /dev/null @@ -1,1385 +0,0 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import java.math.*; -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A container for a group of resources. - */ -@ResourceDef(name="Bundle", profile="http://hl7.org/fhir/Profile/Bundle") -public class Bundle extends Resource { - - public enum BundleType implements FhirEnum { - /** - * The bundle is a document. The first resource is a Composition. - */ - DOCUMENT, - /** - * The bundle is a message. The first resource is a MessageHeader. - */ - MESSAGE, - /** - * The bundle is a transaction - intended to be processed by a server as an atomic commit. - */ - TRANSACTION, - /** - * The bundle is a transaction response. - */ - TRANSACTIONRESPONSE, - /** - * The bundle is a list of resources from a _history interaction on a server. - */ - HISTORY, - /** - * The bundle is a list of resources returned as a result of a search/query interaction, operation, or message. - */ - SEARCHSET, - /** - * The bundle is a set of resources collected into a single document for ease of distribution. - */ - COLLECTION, - /** - * added to help the parsers - */ - NULL; - - public static final BundleTypeEnumFactory ENUM_FACTORY = new BundleTypeEnumFactory(); - - public static BundleType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("document".equals(codeString)) - return DOCUMENT; - if ("message".equals(codeString)) - return MESSAGE; - if ("transaction".equals(codeString)) - return TRANSACTION; - if ("transaction-response".equals(codeString)) - return TRANSACTIONRESPONSE; - if ("history".equals(codeString)) - return HISTORY; - if ("searchset".equals(codeString)) - return SEARCHSET; - if ("collection".equals(codeString)) - return COLLECTION; - throw new IllegalArgumentException("Unknown BundleType code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case DOCUMENT: return "document"; - case MESSAGE: return "message"; - case TRANSACTION: return "transaction"; - case TRANSACTIONRESPONSE: return "transaction-response"; - case HISTORY: return "history"; - case SEARCHSET: return "searchset"; - case COLLECTION: return "collection"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case DOCUMENT: return ""; - case MESSAGE: return ""; - case TRANSACTION: return ""; - case TRANSACTIONRESPONSE: return ""; - case HISTORY: return ""; - case SEARCHSET: return ""; - case COLLECTION: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case DOCUMENT: return "The bundle is a document. The first resource is a Composition."; - case MESSAGE: return "The bundle is a message. The first resource is a MessageHeader."; - case TRANSACTION: return "The bundle is a transaction - intended to be processed by a server as an atomic commit."; - case TRANSACTIONRESPONSE: return "The bundle is a transaction response."; - case HISTORY: return "The bundle is a list of resources from a _history interaction on a server."; - case SEARCHSET: return "The bundle is a list of resources returned as a result of a search/query interaction, operation, or message."; - case COLLECTION: return "The bundle is a set of resources collected into a single document for ease of distribution."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case DOCUMENT: return "Document"; - case MESSAGE: return "Message"; - case TRANSACTION: return "Transaction"; - case TRANSACTIONRESPONSE: return "Transaction Response"; - case HISTORY: return "History List"; - case SEARCHSET: return "Search Results"; - case COLLECTION: return "Collection"; - default: return "?"; - } - } - } - - public static class BundleTypeEnumFactory implements EnumFactory { - public BundleType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("document".equals(codeString)) - return BundleType.DOCUMENT; - if ("message".equals(codeString)) - return BundleType.MESSAGE; - if ("transaction".equals(codeString)) - return BundleType.TRANSACTION; - if ("transaction-response".equals(codeString)) - return BundleType.TRANSACTIONRESPONSE; - if ("history".equals(codeString)) - return BundleType.HISTORY; - if ("searchset".equals(codeString)) - return BundleType.SEARCHSET; - if ("collection".equals(codeString)) - return BundleType.COLLECTION; - throw new IllegalArgumentException("Unknown BundleType code '"+codeString+"'"); - } - public String toCode(BundleType code) throws IllegalArgumentException { - if (code == BundleType.DOCUMENT) - return "document"; - if (code == BundleType.MESSAGE) - return "message"; - if (code == BundleType.TRANSACTION) - return "transaction"; - if (code == BundleType.TRANSACTIONRESPONSE) - return "transaction-response"; - if (code == BundleType.HISTORY) - return "history"; - if (code == BundleType.SEARCHSET) - return "searchset"; - if (code == BundleType.COLLECTION) - return "collection"; - return "?"; - } - } - - public enum BundleEntryStatus implements FhirEnum { - /** - * Transaction: perform a create operation on this resource. - */ - CREATE, - /** - * Transaction: perform an update operation on this resource. - */ - UPDATE, - /** - * Transaction: look for this resource using the search url provided. If there's no match, create it. Search: this resource is returned because it matches the search criteria. - */ - MATCH, - /** - * Search: this resource is returned because it meets an _include criteria. - */ - INCLUDE, - /** - * added to help the parsers - */ - NULL; - - public static final BundleEntryStatusEnumFactory ENUM_FACTORY = new BundleEntryStatusEnumFactory(); - - public static BundleEntryStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("create".equals(codeString)) - return CREATE; - if ("update".equals(codeString)) - return UPDATE; - if ("match".equals(codeString)) - return MATCH; - if ("include".equals(codeString)) - return INCLUDE; - throw new IllegalArgumentException("Unknown BundleEntryStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case CREATE: return "create"; - case UPDATE: return "update"; - case MATCH: return "match"; - case INCLUDE: return "include"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case CREATE: return ""; - case UPDATE: return ""; - case MATCH: return ""; - case INCLUDE: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case CREATE: return "Transaction: perform a create operation on this resource."; - case UPDATE: return "Transaction: perform an update operation on this resource."; - case MATCH: return "Transaction: look for this resource using the search url provided. If there's no match, create it. Search: this resource is returned because it matches the search criteria."; - case INCLUDE: return "Search: this resource is returned because it meets an _include criteria."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case CREATE: return "Create"; - case UPDATE: return "Update"; - case MATCH: return "Match"; - case INCLUDE: return "Include"; - default: return "?"; - } - } - } - - public static class BundleEntryStatusEnumFactory implements EnumFactory { - public BundleEntryStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("create".equals(codeString)) - return BundleEntryStatus.CREATE; - if ("update".equals(codeString)) - return BundleEntryStatus.UPDATE; - if ("match".equals(codeString)) - return BundleEntryStatus.MATCH; - if ("include".equals(codeString)) - return BundleEntryStatus.INCLUDE; - throw new IllegalArgumentException("Unknown BundleEntryStatus code '"+codeString+"'"); - } - public String toCode(BundleEntryStatus code) throws IllegalArgumentException { - if (code == BundleEntryStatus.CREATE) - return "create"; - if (code == BundleEntryStatus.UPDATE) - return "update"; - if (code == BundleEntryStatus.MATCH) - return "match"; - if (code == BundleEntryStatus.INCLUDE) - return "include"; - return "?"; - } - } - - @Block() - public static class BundleLinkComponent extends BackboneElement { - /** - * A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]. - */ - @Child(name="relation", type={StringType.class}, order=1, min=1, max=1) - @Description(shortDefinition="http://www.iana.org/assignments/link-relations/link-relations.xhtml", formalDefinition="A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]." ) - protected StringType relation; - - /** - * The reference details for the link. - */ - @Child(name="url", type={UriType.class}, order=2, min=1, max=1) - @Description(shortDefinition="Reference details for the link", formalDefinition="The reference details for the link." ) - protected UriType url; - - private static final long serialVersionUID = -1010386066L; - - public BundleLinkComponent() { - super(); - } - - public BundleLinkComponent(StringType relation, UriType url) { - super(); - this.relation = relation; - this.url = url; - } - - /** - * @return {@link #relation} (A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]].). This is the underlying object with id, value and extensions. The accessor "getRelation" gives direct access to the value - */ - public StringType getRelationElement() { - if (this.relation == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create BundleLinkComponent.relation"); - else if (Configuration.doAutoCreate()) - this.relation = new StringType(); - return this.relation; - } - - public boolean hasRelationElement() { - return this.relation != null && !this.relation.isEmpty(); - } - - public boolean hasRelation() { - return this.relation != null && !this.relation.isEmpty(); - } - - /** - * @param value {@link #relation} (A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]].). This is the underlying object with id, value and extensions. The accessor "getRelation" gives direct access to the value - */ - public BundleLinkComponent setRelationElement(StringType value) { - this.relation = value; - return this; - } - - /** - * @return A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]. - */ - public String getRelation() { - return this.relation == null ? null : this.relation.getValue(); - } - - /** - * @param value A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]. - */ - public BundleLinkComponent setRelation(String value) { - if (this.relation == null) - this.relation = new StringType(); - this.relation.setValue(value); - return this; - } - - /** - * @return {@link #url} (The reference details for the link.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public UriType getUrlElement() { - if (this.url == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create BundleLinkComponent.url"); - else if (Configuration.doAutoCreate()) - this.url = new UriType(); - return this.url; - } - - public boolean hasUrlElement() { - return this.url != null && !this.url.isEmpty(); - } - - public boolean hasUrl() { - return this.url != null && !this.url.isEmpty(); - } - - /** - * @param value {@link #url} (The reference details for the link.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public BundleLinkComponent setUrlElement(UriType value) { - this.url = value; - return this; - } - - /** - * @return The reference details for the link. - */ - public String getUrl() { - return this.url == null ? null : this.url.getValue(); - } - - /** - * @param value The reference details for the link. - */ - public BundleLinkComponent setUrl(String value) { - if (this.url == null) - this.url = new UriType(); - this.url.setValue(value); - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("relation", "string", "A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]].", 0, java.lang.Integer.MAX_VALUE, relation)); - childrenList.add(new Property("url", "uri", "The reference details for the link.", 0, java.lang.Integer.MAX_VALUE, url)); - } - - public BundleLinkComponent copy() { - BundleLinkComponent dst = new BundleLinkComponent(); - copyValues(dst); - dst.relation = relation == null ? null : relation.copy(); - dst.url = url == null ? null : url.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (relation == null || relation.isEmpty()) && (url == null || url.isEmpty()) - ; - } - - } - - @Block() - public static class BundleEntryComponent extends BackboneElement { - /** - * The Base URL for the resource, if different to the base URL specified for the bundle as a whole. - */ - @Child(name="base", type={UriType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Base URL, if different to bundle base", formalDefinition="The Base URL for the resource, if different to the base URL specified for the bundle as a whole." ) - protected UriType base; - - /** - * The status of a resource in the bundle. Used for search (to differentiate between resources included as a match, and resources included as an _include), for history (deleted resources), and for transactions (create/update/delete). - */ - @Child(name="status", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="create | update | match | include - for search & transaction", formalDefinition="The status of a resource in the bundle. Used for search (to differentiate between resources included as a match, and resources included as an _include), for history (deleted resources), and for transactions (create/update/delete)." ) - protected Enumeration status; - - /** - * Search URL for this resource when processing a transaction (see transaction documentation). - */ - @Child(name="search", type={UriType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Search URL (see transaction)", formalDefinition="Search URL for this resource when processing a transaction (see transaction documentation)." ) - protected UriType search; - - /** - * When searching, the server's search ranking score for the entry. - */ - @Child(name="score", type={DecimalType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Search ranking (between 0 and 1)", formalDefinition="When searching, the server's search ranking score for the entry." ) - protected DecimalType score; - - /** - * If this is an entry that represents a deleted resource. Only used when the bundle is a transaction or a history type. See RESTful API documentation for further informatino. - */ - @Child(name="deleted", type={}, order=5, min=0, max=1) - @Description(shortDefinition="If this is a deleted resource (transaction/history)", formalDefinition="If this is an entry that represents a deleted resource. Only used when the bundle is a transaction or a history type. See RESTful API documentation for further informatino." ) - protected BundleEntryDeletedComponent deleted; - - /** - * The Resources for the entry. - */ - @Child(name="resource", type={Resource.class}, order=6, min=0, max=1) - @Description(shortDefinition="Resources in this bundle", formalDefinition="The Resources for the entry." ) - protected Resource resource; - - private static final long serialVersionUID = 509077972L; - - public BundleEntryComponent() { - super(); - } - - /** - * @return {@link #base} (The Base URL for the resource, if different to the base URL specified for the bundle as a whole.). This is the underlying object with id, value and extensions. The accessor "getBase" gives direct access to the value - */ - public UriType getBaseElement() { - if (this.base == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create BundleEntryComponent.base"); - else if (Configuration.doAutoCreate()) - this.base = new UriType(); - return this.base; - } - - public boolean hasBaseElement() { - return this.base != null && !this.base.isEmpty(); - } - - public boolean hasBase() { - return this.base != null && !this.base.isEmpty(); - } - - /** - * @param value {@link #base} (The Base URL for the resource, if different to the base URL specified for the bundle as a whole.). This is the underlying object with id, value and extensions. The accessor "getBase" gives direct access to the value - */ - public BundleEntryComponent setBaseElement(UriType value) { - this.base = value; - return this; - } - - /** - * @return The Base URL for the resource, if different to the base URL specified for the bundle as a whole. - */ - public String getBase() { - return this.base == null ? null : this.base.getValue(); - } - - /** - * @param value The Base URL for the resource, if different to the base URL specified for the bundle as a whole. - */ - public BundleEntryComponent setBase(String value) { - if (Utilities.noString(value)) - this.base = null; - else { - if (this.base == null) - this.base = new UriType(); - this.base.setValue(value); - } - return this; - } - - /** - * @return {@link #status} (The status of a resource in the bundle. Used for search (to differentiate between resources included as a match, and resources included as an _include), for history (deleted resources), and for transactions (create/update/delete).). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create BundleEntryComponent.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of a resource in the bundle. Used for search (to differentiate between resources included as a match, and resources included as an _include), for history (deleted resources), and for transactions (create/update/delete).). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public BundleEntryComponent setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of a resource in the bundle. Used for search (to differentiate between resources included as a match, and resources included as an _include), for history (deleted resources), and for transactions (create/update/delete). - */ - public BundleEntryStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of a resource in the bundle. Used for search (to differentiate between resources included as a match, and resources included as an _include), for history (deleted resources), and for transactions (create/update/delete). - */ - public BundleEntryComponent setStatus(BundleEntryStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(BundleEntryStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #search} (Search URL for this resource when processing a transaction (see transaction documentation).). This is the underlying object with id, value and extensions. The accessor "getSearch" gives direct access to the value - */ - public UriType getSearchElement() { - if (this.search == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create BundleEntryComponent.search"); - else if (Configuration.doAutoCreate()) - this.search = new UriType(); - return this.search; - } - - public boolean hasSearchElement() { - return this.search != null && !this.search.isEmpty(); - } - - public boolean hasSearch() { - return this.search != null && !this.search.isEmpty(); - } - - /** - * @param value {@link #search} (Search URL for this resource when processing a transaction (see transaction documentation).). This is the underlying object with id, value and extensions. The accessor "getSearch" gives direct access to the value - */ - public BundleEntryComponent setSearchElement(UriType value) { - this.search = value; - return this; - } - - /** - * @return Search URL for this resource when processing a transaction (see transaction documentation). - */ - public String getSearch() { - return this.search == null ? null : this.search.getValue(); - } - - /** - * @param value Search URL for this resource when processing a transaction (see transaction documentation). - */ - public BundleEntryComponent setSearch(String value) { - if (Utilities.noString(value)) - this.search = null; - else { - if (this.search == null) - this.search = new UriType(); - this.search.setValue(value); - } - return this; - } - - /** - * @return {@link #score} (When searching, the server's search ranking score for the entry.). This is the underlying object with id, value and extensions. The accessor "getScore" gives direct access to the value - */ - public DecimalType getScoreElement() { - if (this.score == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create BundleEntryComponent.score"); - else if (Configuration.doAutoCreate()) - this.score = new DecimalType(); - return this.score; - } - - public boolean hasScoreElement() { - return this.score != null && !this.score.isEmpty(); - } - - public boolean hasScore() { - return this.score != null && !this.score.isEmpty(); - } - - /** - * @param value {@link #score} (When searching, the server's search ranking score for the entry.). This is the underlying object with id, value and extensions. The accessor "getScore" gives direct access to the value - */ - public BundleEntryComponent setScoreElement(DecimalType value) { - this.score = value; - return this; - } - - /** - * @return When searching, the server's search ranking score for the entry. - */ - public BigDecimal getScore() { - return this.score == null ? null : this.score.getValue(); - } - - /** - * @param value When searching, the server's search ranking score for the entry. - */ - public BundleEntryComponent setScore(BigDecimal value) { - if (value == null) - this.score = null; - else { - if (this.score == null) - this.score = new DecimalType(); - this.score.setValue(value); - } - return this; - } - - /** - * @return {@link #deleted} (If this is an entry that represents a deleted resource. Only used when the bundle is a transaction or a history type. See RESTful API documentation for further informatino.) - */ - public BundleEntryDeletedComponent getDeleted() { - if (this.deleted == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create BundleEntryComponent.deleted"); - else if (Configuration.doAutoCreate()) - this.deleted = new BundleEntryDeletedComponent(); - return this.deleted; - } - - public boolean hasDeleted() { - return this.deleted != null && !this.deleted.isEmpty(); - } - - /** - * @param value {@link #deleted} (If this is an entry that represents a deleted resource. Only used when the bundle is a transaction or a history type. See RESTful API documentation for further informatino.) - */ - public BundleEntryComponent setDeleted(BundleEntryDeletedComponent value) { - this.deleted = value; - return this; - } - - /** - * @return {@link #resource} (The Resources for the entry.) - */ - public Resource getResource() { - return this.resource; - } - - public boolean hasResource() { - return this.resource != null && !this.resource.isEmpty(); - } - - /** - * @param value {@link #resource} (The Resources for the entry.) - */ - public BundleEntryComponent setResource(Resource value) { - this.resource = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("base", "uri", "The Base URL for the resource, if different to the base URL specified for the bundle as a whole.", 0, java.lang.Integer.MAX_VALUE, base)); - childrenList.add(new Property("status", "code", "The status of a resource in the bundle. Used for search (to differentiate between resources included as a match, and resources included as an _include), for history (deleted resources), and for transactions (create/update/delete).", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("search", "uri", "Search URL for this resource when processing a transaction (see transaction documentation).", 0, java.lang.Integer.MAX_VALUE, search)); - childrenList.add(new Property("score", "decimal", "When searching, the server's search ranking score for the entry.", 0, java.lang.Integer.MAX_VALUE, score)); - childrenList.add(new Property("deleted", "", "If this is an entry that represents a deleted resource. Only used when the bundle is a transaction or a history type. See RESTful API documentation for further informatino.", 0, java.lang.Integer.MAX_VALUE, deleted)); - childrenList.add(new Property("resource", "Resource", "The Resources for the entry.", 0, java.lang.Integer.MAX_VALUE, resource)); - } - - public BundleEntryComponent copy() { - BundleEntryComponent dst = new BundleEntryComponent(); - copyValues(dst); - dst.base = base == null ? null : base.copy(); - dst.status = status == null ? null : status.copy(); - dst.search = search == null ? null : search.copy(); - dst.score = score == null ? null : score.copy(); - dst.deleted = deleted == null ? null : deleted.copy(); - dst.resource = resource == null ? null : resource.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (base == null || base.isEmpty()) && (status == null || status.isEmpty()) - && (search == null || search.isEmpty()) && (score == null || score.isEmpty()) && (deleted == null || deleted.isEmpty()) - && (resource == null || resource.isEmpty()); - } - - } - - @Block() - public static class BundleEntryDeletedComponent extends BackboneElement { - /** - * The type of resource that was deleted (required to construct the identity). - */ - @Child(name="type", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Type of resource that was deleted", formalDefinition="The type of resource that was deleted (required to construct the identity)." ) - protected CodeType type; - - /** - * The id of the resource that was deleted. - */ - @Child(name="resourceId", type={IdType.class}, order=2, min=1, max=1) - @Description(shortDefinition="Id of resource that was deleted", formalDefinition="The id of the resource that was deleted." ) - protected IdType resourceId; - - /** - * Version id for releted resource. - */ - @Child(name="versionId", type={IdType.class}, order=3, min=1, max=1) - @Description(shortDefinition="Version id for releted resource", formalDefinition="Version id for releted resource." ) - protected IdType versionId; - - /** - * The date/time that the resource was deleted. - */ - @Child(name="instant", type={InstantType.class}, order=4, min=1, max=1) - @Description(shortDefinition="When the resource was deleted", formalDefinition="The date/time that the resource was deleted." ) - protected InstantType instant; - - private static final long serialVersionUID = -1528107649L; - - public BundleEntryDeletedComponent() { - super(); - } - - public BundleEntryDeletedComponent(CodeType type, IdType resourceId, IdType versionId, InstantType instant) { - super(); - this.type = type; - this.resourceId = resourceId; - this.versionId = versionId; - this.instant = instant; - } - - /** - * @return {@link #type} (The type of resource that was deleted (required to construct the identity).). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public CodeType getTypeElement() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create BundleEntryDeletedComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeType(); - return this.type; - } - - public boolean hasTypeElement() { - return this.type != null && !this.type.isEmpty(); - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The type of resource that was deleted (required to construct the identity).). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public BundleEntryDeletedComponent setTypeElement(CodeType value) { - this.type = value; - return this; - } - - /** - * @return The type of resource that was deleted (required to construct the identity). - */ - public String getType() { - return this.type == null ? null : this.type.getValue(); - } - - /** - * @param value The type of resource that was deleted (required to construct the identity). - */ - public BundleEntryDeletedComponent setType(String value) { - if (this.type == null) - this.type = new CodeType(); - this.type.setValue(value); - return this; - } - - /** - * @return {@link #resourceId} (The id of the resource that was deleted.). This is the underlying object with id, value and extensions. The accessor "getResourceId" gives direct access to the value - */ - public IdType getResourceIdElement() { - if (this.resourceId == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create BundleEntryDeletedComponent.resourceId"); - else if (Configuration.doAutoCreate()) - this.resourceId = new IdType(); - return this.resourceId; - } - - public boolean hasResourceIdElement() { - return this.resourceId != null && !this.resourceId.isEmpty(); - } - - public boolean hasResourceId() { - return this.resourceId != null && !this.resourceId.isEmpty(); - } - - /** - * @param value {@link #resourceId} (The id of the resource that was deleted.). This is the underlying object with id, value and extensions. The accessor "getResourceId" gives direct access to the value - */ - public BundleEntryDeletedComponent setResourceIdElement(IdType value) { - this.resourceId = value; - return this; - } - - /** - * @return The id of the resource that was deleted. - */ - public String getResourceId() { - return this.resourceId == null ? null : this.resourceId.getValue(); - } - - /** - * @param value The id of the resource that was deleted. - */ - public BundleEntryDeletedComponent setResourceId(String value) { - if (this.resourceId == null) - this.resourceId = new IdType(); - this.resourceId.setValue(value); - return this; - } - - /** - * @return {@link #versionId} (Version id for releted resource.). This is the underlying object with id, value and extensions. The accessor "getVersionId" gives direct access to the value - */ - public IdType getVersionIdElement() { - if (this.versionId == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create BundleEntryDeletedComponent.versionId"); - else if (Configuration.doAutoCreate()) - this.versionId = new IdType(); - return this.versionId; - } - - public boolean hasVersionIdElement() { - return this.versionId != null && !this.versionId.isEmpty(); - } - - public boolean hasVersionId() { - return this.versionId != null && !this.versionId.isEmpty(); - } - - /** - * @param value {@link #versionId} (Version id for releted resource.). This is the underlying object with id, value and extensions. The accessor "getVersionId" gives direct access to the value - */ - public BundleEntryDeletedComponent setVersionIdElement(IdType value) { - this.versionId = value; - return this; - } - - /** - * @return Version id for releted resource. - */ - public String getVersionId() { - return this.versionId == null ? null : this.versionId.getValue(); - } - - /** - * @param value Version id for releted resource. - */ - public BundleEntryDeletedComponent setVersionId(String value) { - if (this.versionId == null) - this.versionId = new IdType(); - this.versionId.setValue(value); - return this; - } - - /** - * @return {@link #instant} (The date/time that the resource was deleted.). This is the underlying object with id, value and extensions. The accessor "getInstant" gives direct access to the value - */ - public InstantType getInstantElement() { - if (this.instant == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create BundleEntryDeletedComponent.instant"); - else if (Configuration.doAutoCreate()) - this.instant = new InstantType(); - return this.instant; - } - - public boolean hasInstantElement() { - return this.instant != null && !this.instant.isEmpty(); - } - - public boolean hasInstant() { - return this.instant != null && !this.instant.isEmpty(); - } - - /** - * @param value {@link #instant} (The date/time that the resource was deleted.). This is the underlying object with id, value and extensions. The accessor "getInstant" gives direct access to the value - */ - public BundleEntryDeletedComponent setInstantElement(InstantType value) { - this.instant = value; - return this; - } - - /** - * @return The date/time that the resource was deleted. - */ - public Date getInstant() { - return this.instant == null ? null : this.instant.getValue(); - } - - /** - * @param value The date/time that the resource was deleted. - */ - public BundleEntryDeletedComponent setInstant(Date value) { - if (this.instant == null) - this.instant = new InstantType(); - this.instant.setValue(value); - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "code", "The type of resource that was deleted (required to construct the identity).", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("resourceId", "id", "The id of the resource that was deleted.", 0, java.lang.Integer.MAX_VALUE, resourceId)); - childrenList.add(new Property("versionId", "id", "Version id for releted resource.", 0, java.lang.Integer.MAX_VALUE, versionId)); - childrenList.add(new Property("instant", "instant", "The date/time that the resource was deleted.", 0, java.lang.Integer.MAX_VALUE, instant)); - } - - public BundleEntryDeletedComponent copy() { - BundleEntryDeletedComponent dst = new BundleEntryDeletedComponent(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - dst.resourceId = resourceId == null ? null : resourceId.copy(); - dst.versionId = versionId == null ? null : versionId.copy(); - dst.instant = instant == null ? null : instant.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (resourceId == null || resourceId.isEmpty()) - && (versionId == null || versionId.isEmpty()) && (instant == null || instant.isEmpty()); - } - - } - - /** - * Indicates the purpose of this bundle- how it was intended to be used. - */ - @Child(name="type", type={CodeType.class}, order=-1, min=1, max=1) - @Description(shortDefinition="document | message | transaction | transaction-response | history | searchset | collection", formalDefinition="Indicates the purpose of this bundle- how it was intended to be used." ) - protected Enumeration type; - - /** - * The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base). - */ - @Child(name="base", type={UriType.class}, order=0, min=0, max=1) - @Description(shortDefinition="Stated Base URL", formalDefinition="The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base)." ) - protected UriType base; - - /** - * If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle). - */ - @Child(name="total", type={IntegerType.class}, order=1, min=0, max=1) - @Description(shortDefinition="If search, the total number of matches", formalDefinition="If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle)." ) - protected IntegerType total; - - /** - * A series of links that provide context to this bundle. - */ - @Child(name="link", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Links related to this Bundle", formalDefinition="A series of links that provide context to this bundle." ) - protected List link; - - /** - * An entry in a bundle resource - will either contain a resource, or a deleted entry (transaction and history bundles only). - */ - @Child(name="entry", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Entry in the bundle - will have deleted or resource", formalDefinition="An entry in a bundle resource - will either contain a resource, or a deleted entry (transaction and history bundles only)." ) - protected List entry; - - /** - * XML Digital Signature - base64 encoded. - */ - @Child(name="signature", type={Base64BinaryType.class}, order=4, min=0, max=1) - @Description(shortDefinition="XML Digital Signature (base64 encoded)", formalDefinition="XML Digital Signature - base64 encoded." ) - protected Base64BinaryType signature; - - private static final long serialVersionUID = -1332054150L; - - public Bundle() { - super(); - } - - public Bundle(Enumeration type) { - super(); - this.type = type; - } - - /** - * @return {@link #type} (Indicates the purpose of this bundle- how it was intended to be used.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public Enumeration getTypeElement() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Bundle.type"); - else if (Configuration.doAutoCreate()) - this.type = new Enumeration(); - return this.type; - } - - public boolean hasTypeElement() { - return this.type != null && !this.type.isEmpty(); - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Indicates the purpose of this bundle- how it was intended to be used.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public Bundle setTypeElement(Enumeration value) { - this.type = value; - return this; - } - - /** - * @return Indicates the purpose of this bundle- how it was intended to be used. - */ - public BundleType getType() { - return this.type == null ? null : this.type.getValue(); - } - - /** - * @param value Indicates the purpose of this bundle- how it was intended to be used. - */ - public Bundle setType(BundleType value) { - if (this.type == null) - this.type = new Enumeration(BundleType.ENUM_FACTORY); - this.type.setValue(value); - return this; - } - - /** - * @return {@link #base} (The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base).). This is the underlying object with id, value and extensions. The accessor "getBase" gives direct access to the value - */ - public UriType getBaseElement() { - if (this.base == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Bundle.base"); - else if (Configuration.doAutoCreate()) - this.base = new UriType(); - return this.base; - } - - public boolean hasBaseElement() { - return this.base != null && !this.base.isEmpty(); - } - - public boolean hasBase() { - return this.base != null && !this.base.isEmpty(); - } - - /** - * @param value {@link #base} (The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base).). This is the underlying object with id, value and extensions. The accessor "getBase" gives direct access to the value - */ - public Bundle setBaseElement(UriType value) { - this.base = value; - return this; - } - - /** - * @return The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base). - */ - public String getBase() { - return this.base == null ? null : this.base.getValue(); - } - - /** - * @param value The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base). - */ - public Bundle setBase(String value) { - if (Utilities.noString(value)) - this.base = null; - else { - if (this.base == null) - this.base = new UriType(); - this.base.setValue(value); - } - return this; - } - - /** - * @return {@link #total} (If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle).). This is the underlying object with id, value and extensions. The accessor "getTotal" gives direct access to the value - */ - public IntegerType getTotalElement() { - if (this.total == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Bundle.total"); - else if (Configuration.doAutoCreate()) - this.total = new IntegerType(); - return this.total; - } - - public boolean hasTotalElement() { - return this.total != null && !this.total.isEmpty(); - } - - public boolean hasTotal() { - return this.total != null && !this.total.isEmpty(); - } - - /** - * @param value {@link #total} (If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle).). This is the underlying object with id, value and extensions. The accessor "getTotal" gives direct access to the value - */ - public Bundle setTotalElement(IntegerType value) { - this.total = value; - return this; - } - - /** - * @return If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle). - */ - public int getTotal() { - return this.total == null ? null : this.total.getValue(); - } - - /** - * @param value If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle). - */ - public Bundle setTotal(int value) { - if (value == -1) - this.total = null; - else { - if (this.total == null) - this.total = new IntegerType(); - this.total.setValue(value); - } - return this; - } - - /** - * @return {@link #link} (A series of links that provide context to this bundle.) - */ - public List getLink() { - if (this.link == null) - this.link = new ArrayList(); - return this.link; - } - - public boolean hasLink() { - if (this.link == null) - return false; - for (BundleLinkComponent item : this.link) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #link} (A series of links that provide context to this bundle.) - */ - // syntactic sugar - public BundleLinkComponent addLink() { //3 - BundleLinkComponent t = new BundleLinkComponent(); - if (this.link == null) - this.link = new ArrayList(); - this.link.add(t); - return t; - } - - /** - * @return {@link #entry} (An entry in a bundle resource - will either contain a resource, or a deleted entry (transaction and history bundles only).) - */ - public List getEntry() { - if (this.entry == null) - this.entry = new ArrayList(); - return this.entry; - } - - public boolean hasEntry() { - if (this.entry == null) - return false; - for (BundleEntryComponent item : this.entry) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #entry} (An entry in a bundle resource - will either contain a resource, or a deleted entry (transaction and history bundles only).) - */ - // syntactic sugar - public BundleEntryComponent addEntry() { //3 - BundleEntryComponent t = new BundleEntryComponent(); - if (this.entry == null) - this.entry = new ArrayList(); - this.entry.add(t); - return t; - } - - /** - * @return {@link #signature} (XML Digital Signature - base64 encoded.). This is the underlying object with id, value and extensions. The accessor "getSignature" gives direct access to the value - */ - public Base64BinaryType getSignatureElement() { - if (this.signature == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Bundle.signature"); - else if (Configuration.doAutoCreate()) - this.signature = new Base64BinaryType(); - return this.signature; - } - - public boolean hasSignatureElement() { - return this.signature != null && !this.signature.isEmpty(); - } - - public boolean hasSignature() { - return this.signature != null && !this.signature.isEmpty(); - } - - /** - * @param value {@link #signature} (XML Digital Signature - base64 encoded.). This is the underlying object with id, value and extensions. The accessor "getSignature" gives direct access to the value - */ - public Bundle setSignatureElement(Base64BinaryType value) { - this.signature = value; - return this; - } - - /** - * @return XML Digital Signature - base64 encoded. - */ - public byte[] getSignature() { - return this.signature == null ? null : this.signature.getValue(); - } - - /** - * @param value XML Digital Signature - base64 encoded. - */ - public Bundle setSignature(byte[] value) { - if (value == null) - this.signature = null; - else { - if (this.signature == null) - this.signature = new Base64BinaryType(); - this.signature.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "code", "Indicates the purpose of this bundle- how it was intended to be used.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("base", "uri", "The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base).", 0, java.lang.Integer.MAX_VALUE, base)); - childrenList.add(new Property("total", "integer", "If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle).", 0, java.lang.Integer.MAX_VALUE, total)); - childrenList.add(new Property("link", "", "A series of links that provide context to this bundle.", 0, java.lang.Integer.MAX_VALUE, link)); - childrenList.add(new Property("entry", "", "An entry in a bundle resource - will either contain a resource, or a deleted entry (transaction and history bundles only).", 0, java.lang.Integer.MAX_VALUE, entry)); - childrenList.add(new Property("signature", "base64Binary", "XML Digital Signature - base64 encoded.", 0, java.lang.Integer.MAX_VALUE, signature)); - } - - public Bundle copy() { - Bundle dst = new Bundle(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - dst.base = base == null ? null : base.copy(); - dst.total = total == null ? null : total.copy(); - if (link != null) { - dst.link = new ArrayList(); - for (BundleLinkComponent i : link) - dst.link.add(i.copy()); - }; - if (entry != null) { - dst.entry = new ArrayList(); - for (BundleEntryComponent i : entry) - dst.entry.add(i.copy()); - }; - dst.signature = signature == null ? null : signature.copy(); - return dst; - } - - protected Bundle typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (base == null || base.isEmpty()) - && (total == null || total.isEmpty()) && (link == null || link.isEmpty()) && (entry == null || entry.isEmpty()) - && (signature == null || signature.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Bundle; - } - - @SearchParamDefinition(name="message", path="", description="The first resource in the bundle, if the bundle type is 'message' - this is a message header, and this parameter provides access to search it's contents", type="reference" ) - public static final String SP_MESSAGE = "message"; - @SearchParamDefinition(name="composition", path="", description="The first resource in the bundle, if the bundle type is 'document' - this is a composition, and this parameter provides access to searches it's contents", type="reference" ) - public static final String SP_COMPOSITION = "composition"; - @SearchParamDefinition(name="type", path="Bundle.type", description="document | message | transaction | transaction-response | history | searchset | collection", type="token" ) - public static final String SP_TYPE = "type"; - -} - diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CareActivity.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CareActivity.java deleted file mode 100644 index 34766d6249c..00000000000 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CareActivity.java +++ /dev/null @@ -1,1343 +0,0 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Describes the intention of how one or more practitioners intend to deliver care for a particular patient for a period of time, possibly limited to care for a specific condition or set of conditions. - */ -@ResourceDef(name="CareActivity", profile="http://hl7.org/fhir/Profile/CareActivity") -public class CareActivity extends DomainResource { - - public enum CareActivityStatus implements FhirEnum { - /** - * Activity is planned but no action has yet been taken. - */ - NOTSTARTED, - /** - * Appointment or other booking has occurred but activity has not yet begun. - */ - SCHEDULED, - /** - * Activity has been started but is not yet complete. - */ - INPROGRESS, - /** - * Activity was started but has temporarily ceased with an expectation of resumption at a future time. - */ - ONHOLD, - /** - * The activities have been completed (more or less) as planned. - */ - COMPLETED, - /** - * The activities have been ended prior to completion (perhaps even before they were started). - */ - CANCELLED, - /** - * added to help the parsers - */ - NULL; - - public static final CareActivityStatusEnumFactory ENUM_FACTORY = new CareActivityStatusEnumFactory(); - - public static CareActivityStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("not started".equals(codeString)) - return NOTSTARTED; - if ("scheduled".equals(codeString)) - return SCHEDULED; - if ("in progress".equals(codeString)) - return INPROGRESS; - if ("on hold".equals(codeString)) - return ONHOLD; - if ("completed".equals(codeString)) - return COMPLETED; - if ("cancelled".equals(codeString)) - return CANCELLED; - throw new IllegalArgumentException("Unknown CareActivityStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case NOTSTARTED: return "not started"; - case SCHEDULED: return "scheduled"; - case INPROGRESS: return "in progress"; - case ONHOLD: return "on hold"; - case COMPLETED: return "completed"; - case CANCELLED: return "cancelled"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case NOTSTARTED: return ""; - case SCHEDULED: return ""; - case INPROGRESS: return ""; - case ONHOLD: return ""; - case COMPLETED: return ""; - case CANCELLED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case NOTSTARTED: return "Activity is planned but no action has yet been taken."; - case SCHEDULED: return "Appointment or other booking has occurred but activity has not yet begun."; - case INPROGRESS: return "Activity has been started but is not yet complete."; - case ONHOLD: return "Activity was started but has temporarily ceased with an expectation of resumption at a future time."; - case COMPLETED: return "The activities have been completed (more or less) as planned."; - case CANCELLED: return "The activities have been ended prior to completion (perhaps even before they were started)."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case NOTSTARTED: return "not started"; - case SCHEDULED: return "scheduled"; - case INPROGRESS: return "in progress"; - case ONHOLD: return "on hold"; - case COMPLETED: return "completed"; - case CANCELLED: return "cancelled"; - default: return "?"; - } - } - } - - public static class CareActivityStatusEnumFactory implements EnumFactory { - public CareActivityStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("not started".equals(codeString)) - return CareActivityStatus.NOTSTARTED; - if ("scheduled".equals(codeString)) - return CareActivityStatus.SCHEDULED; - if ("in progress".equals(codeString)) - return CareActivityStatus.INPROGRESS; - if ("on hold".equals(codeString)) - return CareActivityStatus.ONHOLD; - if ("completed".equals(codeString)) - return CareActivityStatus.COMPLETED; - if ("cancelled".equals(codeString)) - return CareActivityStatus.CANCELLED; - throw new IllegalArgumentException("Unknown CareActivityStatus code '"+codeString+"'"); - } - public String toCode(CareActivityStatus code) throws IllegalArgumentException { - if (code == CareActivityStatus.NOTSTARTED) - return "not started"; - if (code == CareActivityStatus.SCHEDULED) - return "scheduled"; - if (code == CareActivityStatus.INPROGRESS) - return "in progress"; - if (code == CareActivityStatus.ONHOLD) - return "on hold"; - if (code == CareActivityStatus.COMPLETED) - return "completed"; - if (code == CareActivityStatus.CANCELLED) - return "cancelled"; - return "?"; - } - } - - public enum CareActivityCategory implements FhirEnum { - /** - * Plan for the patient to consume food of a specified nature. - */ - DIET, - /** - * Plan for the patient to consume/receive a drug, vaccine or other product. - */ - DRUG, - /** - * Plan to meet or communicate with the patient (in-patient, out-patient, phone call, etc.). - */ - ENCOUNTER, - /** - * Plan to capture information about a patient (vitals, labs, diagnostic images, etc.). - */ - OBSERVATION, - /** - * Plan to modify the patient in some way (surgery, physiotherapy, education, counseling, etc.). - */ - PROCEDURE, - /** - * Plan to provide something to the patient (medication, medical supply, etc.). - */ - SUPPLY, - /** - * Some other form of action. - */ - OTHER, - /** - * added to help the parsers - */ - NULL; - - public static final CareActivityCategoryEnumFactory ENUM_FACTORY = new CareActivityCategoryEnumFactory(); - - public static CareActivityCategory fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("diet".equals(codeString)) - return DIET; - if ("drug".equals(codeString)) - return DRUG; - if ("encounter".equals(codeString)) - return ENCOUNTER; - if ("observation".equals(codeString)) - return OBSERVATION; - if ("procedure".equals(codeString)) - return PROCEDURE; - if ("supply".equals(codeString)) - return SUPPLY; - if ("other".equals(codeString)) - return OTHER; - throw new IllegalArgumentException("Unknown CareActivityCategory code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case DIET: return "diet"; - case DRUG: return "drug"; - case ENCOUNTER: return "encounter"; - case OBSERVATION: return "observation"; - case PROCEDURE: return "procedure"; - case SUPPLY: return "supply"; - case OTHER: return "other"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case DIET: return ""; - case DRUG: return ""; - case ENCOUNTER: return ""; - case OBSERVATION: return ""; - case PROCEDURE: return ""; - case SUPPLY: return ""; - case OTHER: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case DIET: return "Plan for the patient to consume food of a specified nature."; - case DRUG: return "Plan for the patient to consume/receive a drug, vaccine or other product."; - case ENCOUNTER: return "Plan to meet or communicate with the patient (in-patient, out-patient, phone call, etc.)."; - case OBSERVATION: return "Plan to capture information about a patient (vitals, labs, diagnostic images, etc.)."; - case PROCEDURE: return "Plan to modify the patient in some way (surgery, physiotherapy, education, counseling, etc.)."; - case SUPPLY: return "Plan to provide something to the patient (medication, medical supply, etc.)."; - case OTHER: return "Some other form of action."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case DIET: return "diet"; - case DRUG: return "drug"; - case ENCOUNTER: return "encounter"; - case OBSERVATION: return "observation"; - case PROCEDURE: return "procedure"; - case SUPPLY: return "supply"; - case OTHER: return "other"; - default: return "?"; - } - } - } - - public static class CareActivityCategoryEnumFactory implements EnumFactory { - public CareActivityCategory fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("diet".equals(codeString)) - return CareActivityCategory.DIET; - if ("drug".equals(codeString)) - return CareActivityCategory.DRUG; - if ("encounter".equals(codeString)) - return CareActivityCategory.ENCOUNTER; - if ("observation".equals(codeString)) - return CareActivityCategory.OBSERVATION; - if ("procedure".equals(codeString)) - return CareActivityCategory.PROCEDURE; - if ("supply".equals(codeString)) - return CareActivityCategory.SUPPLY; - if ("other".equals(codeString)) - return CareActivityCategory.OTHER; - throw new IllegalArgumentException("Unknown CareActivityCategory code '"+codeString+"'"); - } - public String toCode(CareActivityCategory code) throws IllegalArgumentException { - if (code == CareActivityCategory.DIET) - return "diet"; - if (code == CareActivityCategory.DRUG) - return "drug"; - if (code == CareActivityCategory.ENCOUNTER) - return "encounter"; - if (code == CareActivityCategory.OBSERVATION) - return "observation"; - if (code == CareActivityCategory.PROCEDURE) - return "procedure"; - if (code == CareActivityCategory.SUPPLY) - return "supply"; - if (code == CareActivityCategory.OTHER) - return "other"; - return "?"; - } - } - - @Block() - public static class CareActivitySimpleComponent extends BackboneElement { - /** - * High-level categorization of the type of activity in a care plan. - */ - @Child(name="category", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="diet | drug | encounter | observation | procedure | supply | other", formalDefinition="High-level categorization of the type of activity in a care plan." ) - protected Enumeration category; - - /** - * Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter. - */ - @Child(name="code", type={CodeableConcept.class}, order=2, min=0, max=1) - @Description(shortDefinition="Detail type of activity", formalDefinition="Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter." ) - protected CodeableConcept code; - - /** - * The period, timing or frequency upon which the described activity is to occur. - */ - @Child(name="scheduled", type={Timing.class, Period.class, StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="When activity is to occur", formalDefinition="The period, timing or frequency upon which the described activity is to occur." ) - protected Type scheduled; - - /** - * Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc. - */ - @Child(name="location", type={Location.class}, order=4, min=0, max=1) - @Description(shortDefinition="Where it should happen", formalDefinition="Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc." ) - protected Reference location; - - /** - * The actual object that is the target of the reference (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) - */ - protected Location locationTarget; - - /** - * Identifies who's expected to be involved in the activity. - */ - @Child(name="performer", type={Practitioner.class, Organization.class, RelatedPerson.class, Patient.class}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Who's responsible?", formalDefinition="Identifies who's expected to be involved in the activity." ) - protected List performer; - /** - * The actual objects that are the target of the reference (Identifies who's expected to be involved in the activity.) - */ - protected List performerTarget; - - - /** - * Identifies the food, drug or other product being consumed or supplied in the activity. - */ - @Child(name="product", type={Medication.class, Substance.class}, order=6, min=0, max=1) - @Description(shortDefinition="What's administered/supplied", formalDefinition="Identifies the food, drug or other product being consumed or supplied in the activity." ) - protected Reference product; - - /** - * The actual object that is the target of the reference (Identifies the food, drug or other product being consumed or supplied in the activity.) - */ - protected Resource productTarget; - - /** - * Identifies the quantity expected to be consumed in a given day. - */ - @Child(name="dailyAmount", type={Quantity.class}, order=7, min=0, max=1) - @Description(shortDefinition="How much consumed/day?", formalDefinition="Identifies the quantity expected to be consumed in a given day." ) - protected Quantity dailyAmount; - - /** - * Identifies the quantity expected to be supplied. - */ - @Child(name="quantity", type={Quantity.class}, order=8, min=0, max=1) - @Description(shortDefinition="How much is administered/supplied/consumed", formalDefinition="Identifies the quantity expected to be supplied." ) - protected Quantity quantity; - - /** - * This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc. - */ - @Child(name="details", type={StringType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Extra info on activity occurrence", formalDefinition="This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc." ) - protected StringType details; - - private static final long serialVersionUID = -17133504L; - - public CareActivitySimpleComponent() { - super(); - } - - public CareActivitySimpleComponent(Enumeration category) { - super(); - this.category = category; - } - - /** - * @return {@link #category} (High-level categorization of the type of activity in a care plan.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value - */ - public Enumeration getCategoryElement() { - if (this.category == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivitySimpleComponent.category"); - else if (Configuration.doAutoCreate()) - this.category = new Enumeration(); - return this.category; - } - - public boolean hasCategoryElement() { - return this.category != null && !this.category.isEmpty(); - } - - public boolean hasCategory() { - return this.category != null && !this.category.isEmpty(); - } - - /** - * @param value {@link #category} (High-level categorization of the type of activity in a care plan.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value - */ - public CareActivitySimpleComponent setCategoryElement(Enumeration value) { - this.category = value; - return this; - } - - /** - * @return High-level categorization of the type of activity in a care plan. - */ - public CareActivityCategory getCategory() { - return this.category == null ? null : this.category.getValue(); - } - - /** - * @param value High-level categorization of the type of activity in a care plan. - */ - public CareActivitySimpleComponent setCategory(CareActivityCategory value) { - if (this.category == null) - this.category = new Enumeration(CareActivityCategory.ENUM_FACTORY); - this.category.setValue(value); - return this; - } - - /** - * @return {@link #code} (Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivitySimpleComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter.) - */ - public CareActivitySimpleComponent setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) - */ - public Type getScheduled() { - return this.scheduled; - } - - /** - * @return {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) - */ - public Timing getScheduledTiming() throws Exception { - if (!(this.scheduled instanceof Timing)) - throw new Exception("Type mismatch: the type Timing was expected, but "+this.scheduled.getClass().getName()+" was encountered"); - return (Timing) this.scheduled; - } - - /** - * @return {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) - */ - public Period getScheduledPeriod() throws Exception { - if (!(this.scheduled instanceof Period)) - throw new Exception("Type mismatch: the type Period was expected, but "+this.scheduled.getClass().getName()+" was encountered"); - return (Period) this.scheduled; - } - - /** - * @return {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) - */ - public StringType getScheduledStringType() throws Exception { - if (!(this.scheduled instanceof StringType)) - throw new Exception("Type mismatch: the type StringType was expected, but "+this.scheduled.getClass().getName()+" was encountered"); - return (StringType) this.scheduled; - } - - public boolean hasScheduled() { - return this.scheduled != null && !this.scheduled.isEmpty(); - } - - /** - * @param value {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) - */ - public CareActivitySimpleComponent setScheduled(Type value) { - this.scheduled = value; - return this; - } - - /** - * @return {@link #location} (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) - */ - public Reference getLocation() { - if (this.location == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivitySimpleComponent.location"); - else if (Configuration.doAutoCreate()) - this.location = new Reference(); - return this.location; - } - - public boolean hasLocation() { - return this.location != null && !this.location.isEmpty(); - } - - /** - * @param value {@link #location} (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) - */ - public CareActivitySimpleComponent setLocation(Reference value) { - this.location = value; - return this; - } - - /** - * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) - */ - public Location getLocationTarget() { - if (this.locationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivitySimpleComponent.location"); - else if (Configuration.doAutoCreate()) - this.locationTarget = new Location(); - return this.locationTarget; - } - - /** - * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) - */ - public CareActivitySimpleComponent setLocationTarget(Location value) { - this.locationTarget = value; - return this; - } - - /** - * @return {@link #performer} (Identifies who's expected to be involved in the activity.) - */ - public List getPerformer() { - if (this.performer == null) - this.performer = new ArrayList(); - return this.performer; - } - - public boolean hasPerformer() { - if (this.performer == null) - return false; - for (Reference item : this.performer) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #performer} (Identifies who's expected to be involved in the activity.) - */ - // syntactic sugar - public Reference addPerformer() { //3 - Reference t = new Reference(); - if (this.performer == null) - this.performer = new ArrayList(); - this.performer.add(t); - return t; - } - - /** - * @return {@link #performer} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies who's expected to be involved in the activity.) - */ - public List getPerformerTarget() { - if (this.performerTarget == null) - this.performerTarget = new ArrayList(); - return this.performerTarget; - } - - /** - * @return {@link #product} (Identifies the food, drug or other product being consumed or supplied in the activity.) - */ - public Reference getProduct() { - if (this.product == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivitySimpleComponent.product"); - else if (Configuration.doAutoCreate()) - this.product = new Reference(); - return this.product; - } - - public boolean hasProduct() { - return this.product != null && !this.product.isEmpty(); - } - - /** - * @param value {@link #product} (Identifies the food, drug or other product being consumed or supplied in the activity.) - */ - public CareActivitySimpleComponent setProduct(Reference value) { - this.product = value; - return this; - } - - /** - * @return {@link #product} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the food, drug or other product being consumed or supplied in the activity.) - */ - public Resource getProductTarget() { - return this.productTarget; - } - - /** - * @param value {@link #product} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the food, drug or other product being consumed or supplied in the activity.) - */ - public CareActivitySimpleComponent setProductTarget(Resource value) { - this.productTarget = value; - return this; - } - - /** - * @return {@link #dailyAmount} (Identifies the quantity expected to be consumed in a given day.) - */ - public Quantity getDailyAmount() { - if (this.dailyAmount == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivitySimpleComponent.dailyAmount"); - else if (Configuration.doAutoCreate()) - this.dailyAmount = new Quantity(); - return this.dailyAmount; - } - - public boolean hasDailyAmount() { - return this.dailyAmount != null && !this.dailyAmount.isEmpty(); - } - - /** - * @param value {@link #dailyAmount} (Identifies the quantity expected to be consumed in a given day.) - */ - public CareActivitySimpleComponent setDailyAmount(Quantity value) { - this.dailyAmount = value; - return this; - } - - /** - * @return {@link #quantity} (Identifies the quantity expected to be supplied.) - */ - public Quantity getQuantity() { - if (this.quantity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivitySimpleComponent.quantity"); - else if (Configuration.doAutoCreate()) - this.quantity = new Quantity(); - return this.quantity; - } - - public boolean hasQuantity() { - return this.quantity != null && !this.quantity.isEmpty(); - } - - /** - * @param value {@link #quantity} (Identifies the quantity expected to be supplied.) - */ - public CareActivitySimpleComponent setQuantity(Quantity value) { - this.quantity = value; - return this; - } - - /** - * @return {@link #details} (This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc.). This is the underlying object with id, value and extensions. The accessor "getDetails" gives direct access to the value - */ - public StringType getDetailsElement() { - if (this.details == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivitySimpleComponent.details"); - else if (Configuration.doAutoCreate()) - this.details = new StringType(); - return this.details; - } - - public boolean hasDetailsElement() { - return this.details != null && !this.details.isEmpty(); - } - - public boolean hasDetails() { - return this.details != null && !this.details.isEmpty(); - } - - /** - * @param value {@link #details} (This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc.). This is the underlying object with id, value and extensions. The accessor "getDetails" gives direct access to the value - */ - public CareActivitySimpleComponent setDetailsElement(StringType value) { - this.details = value; - return this; - } - - /** - * @return This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc. - */ - public String getDetails() { - return this.details == null ? null : this.details.getValue(); - } - - /** - * @param value This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc. - */ - public CareActivitySimpleComponent setDetails(String value) { - if (Utilities.noString(value)) - this.details = null; - else { - if (this.details == null) - this.details = new StringType(); - this.details.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("category", "code", "High-level categorization of the type of activity in a care plan.", 0, java.lang.Integer.MAX_VALUE, category)); - childrenList.add(new Property("code", "CodeableConcept", "Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("scheduled[x]", "Timing|Period|string", "The period, timing or frequency upon which the described activity is to occur.", 0, java.lang.Integer.MAX_VALUE, scheduled)); - childrenList.add(new Property("location", "Reference(Location)", "Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.", 0, java.lang.Integer.MAX_VALUE, location)); - childrenList.add(new Property("performer", "Reference(Practitioner|Organization|RelatedPerson|Patient)", "Identifies who's expected to be involved in the activity.", 0, java.lang.Integer.MAX_VALUE, performer)); - childrenList.add(new Property("product", "Reference(Medication|Substance)", "Identifies the food, drug or other product being consumed or supplied in the activity.", 0, java.lang.Integer.MAX_VALUE, product)); - childrenList.add(new Property("dailyAmount", "Quantity", "Identifies the quantity expected to be consumed in a given day.", 0, java.lang.Integer.MAX_VALUE, dailyAmount)); - childrenList.add(new Property("quantity", "Quantity", "Identifies the quantity expected to be supplied.", 0, java.lang.Integer.MAX_VALUE, quantity)); - childrenList.add(new Property("details", "string", "This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc.", 0, java.lang.Integer.MAX_VALUE, details)); - } - - public CareActivitySimpleComponent copy() { - CareActivitySimpleComponent dst = new CareActivitySimpleComponent(); - copyValues(dst); - dst.category = category == null ? null : category.copy(); - dst.code = code == null ? null : code.copy(); - dst.scheduled = scheduled == null ? null : scheduled.copy(); - dst.location = location == null ? null : location.copy(); - if (performer != null) { - dst.performer = new ArrayList(); - for (Reference i : performer) - dst.performer.add(i.copy()); - }; - dst.product = product == null ? null : product.copy(); - dst.dailyAmount = dailyAmount == null ? null : dailyAmount.copy(); - dst.quantity = quantity == null ? null : quantity.copy(); - dst.details = details == null ? null : details.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (category == null || category.isEmpty()) && (code == null || code.isEmpty()) - && (scheduled == null || scheduled.isEmpty()) && (location == null || location.isEmpty()) - && (performer == null || performer.isEmpty()) && (product == null || product.isEmpty()) && (dailyAmount == null || dailyAmount.isEmpty()) - && (quantity == null || quantity.isEmpty()) && (details == null || details.isEmpty()); - } - - } - - /** - * This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External Ids for this plan", formalDefinition="This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) - protected List identifier; - - /** - * Identifies the patient/subject whose intended care is described by the plan. - */ - @Child(name="patient", type={Patient.class}, order=0, min=0, max=1) - @Description(shortDefinition="Who care plan is for", formalDefinition="Identifies the patient/subject whose intended care is described by the plan." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (Identifies the patient/subject whose intended care is described by the plan.) - */ - protected Patient patientTarget; - - /** - * Internal reference that identifies the goals that this activity is intended to contribute towards meeting. - */ - @Child(name="goal", type={Goal.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Goals this activity relates to", formalDefinition="Internal reference that identifies the goals that this activity is intended to contribute towards meeting." ) - protected List goal; - /** - * The actual objects that are the target of the reference (Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) - */ - protected List goalTarget; - - - /** - * Identifies what progress is being made for the specific activity. - */ - @Child(name="status", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="not started | scheduled | in progress | on hold | completed | cancelled", formalDefinition="Identifies what progress is being made for the specific activity." ) - protected Enumeration status; - - /** - * If true, indicates that the described activity is one that must NOT be engaged in when following the plan. - */ - @Child(name="prohibited", type={BooleanType.class}, order=3, min=1, max=1) - @Description(shortDefinition="Do NOT do", formalDefinition="If true, indicates that the described activity is one that must NOT be engaged in when following the plan." ) - protected BooleanType prohibited; - - /** - * Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc. - */ - @Child(name="actionResulting", type={}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Appointments, orders, etc.", formalDefinition="Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc." ) - protected List actionResulting; - /** - * The actual objects that are the target of the reference (Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.) - */ - protected List actionResultingTarget; - - - /** - * Notes about the execution of the activity. - */ - @Child(name="notes", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Comments about the activity", formalDefinition="Notes about the execution of the activity." ) - protected StringType notes; - - /** - * The details of the proposed activity represented in a specific resource. - */ - @Child(name="detail", type={Procedure.class, MedicationPrescription.class, DiagnosticOrder.class, Encounter.class, Supply.class}, order=6, min=0, max=1) - @Description(shortDefinition="Activity details defined in specific resource", formalDefinition="The details of the proposed activity represented in a specific resource." ) - protected Reference detail; - - /** - * The actual object that is the target of the reference (The details of the proposed activity represented in a specific resource.) - */ - protected Resource detailTarget; - - /** - * A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc. - */ - @Child(name="simple", type={}, order=7, min=0, max=1) - @Description(shortDefinition="Activity details summarised here", formalDefinition="A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc." ) - protected CareActivitySimpleComponent simple; - - private static final long serialVersionUID = 1711521518L; - - public CareActivity() { - super(); - } - - public CareActivity(BooleanType prohibited) { - super(); - this.prohibited = prohibited; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivity.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) - */ - public CareActivity setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivity.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) - */ - public CareActivity setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #goal} (Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) - */ - public List getGoal() { - if (this.goal == null) - this.goal = new ArrayList(); - return this.goal; - } - - public boolean hasGoal() { - if (this.goal == null) - return false; - for (Reference item : this.goal) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #goal} (Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) - */ - // syntactic sugar - public Reference addGoal() { //3 - Reference t = new Reference(); - if (this.goal == null) - this.goal = new ArrayList(); - this.goal.add(t); - return t; - } - - /** - * @return {@link #goal} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) - */ - public List getGoalTarget() { - if (this.goalTarget == null) - this.goalTarget = new ArrayList(); - return this.goalTarget; - } - - // syntactic sugar - /** - * @return {@link #goal} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) - */ - public Goal addGoalTarget() { - Goal r = new Goal(); - if (this.goalTarget == null) - this.goalTarget = new ArrayList(); - this.goalTarget.add(r); - return r; - } - - /** - * @return {@link #status} (Identifies what progress is being made for the specific activity.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivity.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (Identifies what progress is being made for the specific activity.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public CareActivity setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return Identifies what progress is being made for the specific activity. - */ - public CareActivityStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value Identifies what progress is being made for the specific activity. - */ - public CareActivity setStatus(CareActivityStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(CareActivityStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #prohibited} (If true, indicates that the described activity is one that must NOT be engaged in when following the plan.). This is the underlying object with id, value and extensions. The accessor "getProhibited" gives direct access to the value - */ - public BooleanType getProhibitedElement() { - if (this.prohibited == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivity.prohibited"); - else if (Configuration.doAutoCreate()) - this.prohibited = new BooleanType(); - return this.prohibited; - } - - public boolean hasProhibitedElement() { - return this.prohibited != null && !this.prohibited.isEmpty(); - } - - public boolean hasProhibited() { - return this.prohibited != null && !this.prohibited.isEmpty(); - } - - /** - * @param value {@link #prohibited} (If true, indicates that the described activity is one that must NOT be engaged in when following the plan.). This is the underlying object with id, value and extensions. The accessor "getProhibited" gives direct access to the value - */ - public CareActivity setProhibitedElement(BooleanType value) { - this.prohibited = value; - return this; - } - - /** - * @return If true, indicates that the described activity is one that must NOT be engaged in when following the plan. - */ - public boolean getProhibited() { - return this.prohibited == null ? false : this.prohibited.getValue(); - } - - /** - * @param value If true, indicates that the described activity is one that must NOT be engaged in when following the plan. - */ - public CareActivity setProhibited(boolean value) { - if (this.prohibited == null) - this.prohibited = new BooleanType(); - this.prohibited.setValue(value); - return this; - } - - /** - * @return {@link #actionResulting} (Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.) - */ - public List getActionResulting() { - if (this.actionResulting == null) - this.actionResulting = new ArrayList(); - return this.actionResulting; - } - - public boolean hasActionResulting() { - if (this.actionResulting == null) - return false; - for (Reference item : this.actionResulting) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #actionResulting} (Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.) - */ - // syntactic sugar - public Reference addActionResulting() { //3 - Reference t = new Reference(); - if (this.actionResulting == null) - this.actionResulting = new ArrayList(); - this.actionResulting.add(t); - return t; - } - - /** - * @return {@link #actionResulting} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.) - */ - public List getActionResultingTarget() { - if (this.actionResultingTarget == null) - this.actionResultingTarget = new ArrayList(); - return this.actionResultingTarget; - } - - /** - * @return {@link #notes} (Notes about the execution of the activity.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public StringType getNotesElement() { - if (this.notes == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivity.notes"); - else if (Configuration.doAutoCreate()) - this.notes = new StringType(); - return this.notes; - } - - public boolean hasNotesElement() { - return this.notes != null && !this.notes.isEmpty(); - } - - public boolean hasNotes() { - return this.notes != null && !this.notes.isEmpty(); - } - - /** - * @param value {@link #notes} (Notes about the execution of the activity.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public CareActivity setNotesElement(StringType value) { - this.notes = value; - return this; - } - - /** - * @return Notes about the execution of the activity. - */ - public String getNotes() { - return this.notes == null ? null : this.notes.getValue(); - } - - /** - * @param value Notes about the execution of the activity. - */ - public CareActivity setNotes(String value) { - if (Utilities.noString(value)) - this.notes = null; - else { - if (this.notes == null) - this.notes = new StringType(); - this.notes.setValue(value); - } - return this; - } - - /** - * @return {@link #detail} (The details of the proposed activity represented in a specific resource.) - */ - public Reference getDetail() { - if (this.detail == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivity.detail"); - else if (Configuration.doAutoCreate()) - this.detail = new Reference(); - return this.detail; - } - - public boolean hasDetail() { - return this.detail != null && !this.detail.isEmpty(); - } - - /** - * @param value {@link #detail} (The details of the proposed activity represented in a specific resource.) - */ - public CareActivity setDetail(Reference value) { - this.detail = value; - return this; - } - - /** - * @return {@link #detail} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The details of the proposed activity represented in a specific resource.) - */ - public Resource getDetailTarget() { - return this.detailTarget; - } - - /** - * @param value {@link #detail} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The details of the proposed activity represented in a specific resource.) - */ - public CareActivity setDetailTarget(Resource value) { - this.detailTarget = value; - return this; - } - - /** - * @return {@link #simple} (A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc.) - */ - public CareActivitySimpleComponent getSimple() { - if (this.simple == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CareActivity.simple"); - else if (Configuration.doAutoCreate()) - this.simple = new CareActivitySimpleComponent(); - return this.simple; - } - - public boolean hasSimple() { - return this.simple != null && !this.simple.isEmpty(); - } - - /** - * @param value {@link #simple} (A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc.) - */ - public CareActivity setSimple(CareActivitySimpleComponent value) { - this.simple = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("patient", "Reference(Patient)", "Identifies the patient/subject whose intended care is described by the plan.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("goal", "Reference(Goal)", "Internal reference that identifies the goals that this activity is intended to contribute towards meeting.", 0, java.lang.Integer.MAX_VALUE, goal)); - childrenList.add(new Property("status", "code", "Identifies what progress is being made for the specific activity.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("prohibited", "boolean", "If true, indicates that the described activity is one that must NOT be engaged in when following the plan.", 0, java.lang.Integer.MAX_VALUE, prohibited)); - childrenList.add(new Property("actionResulting", "Reference(Any)", "Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.", 0, java.lang.Integer.MAX_VALUE, actionResulting)); - childrenList.add(new Property("notes", "string", "Notes about the execution of the activity.", 0, java.lang.Integer.MAX_VALUE, notes)); - childrenList.add(new Property("detail", "Reference(Procedure|MedicationPrescription|DiagnosticOrder|Encounter|Supply)", "The details of the proposed activity represented in a specific resource.", 0, java.lang.Integer.MAX_VALUE, detail)); - childrenList.add(new Property("simple", "", "A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc.", 0, java.lang.Integer.MAX_VALUE, simple)); - } - - public CareActivity copy() { - CareActivity dst = new CareActivity(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.patient = patient == null ? null : patient.copy(); - if (goal != null) { - dst.goal = new ArrayList(); - for (Reference i : goal) - dst.goal.add(i.copy()); - }; - dst.status = status == null ? null : status.copy(); - dst.prohibited = prohibited == null ? null : prohibited.copy(); - if (actionResulting != null) { - dst.actionResulting = new ArrayList(); - for (Reference i : actionResulting) - dst.actionResulting.add(i.copy()); - }; - dst.notes = notes == null ? null : notes.copy(); - dst.detail = detail == null ? null : detail.copy(); - dst.simple = simple == null ? null : simple.copy(); - return dst; - } - - protected CareActivity typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (patient == null || patient.isEmpty()) - && (goal == null || goal.isEmpty()) && (status == null || status.isEmpty()) && (prohibited == null || prohibited.isEmpty()) - && (actionResulting == null || actionResulting.isEmpty()) && (notes == null || notes.isEmpty()) - && (detail == null || detail.isEmpty()) && (simple == null || simple.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.CareActivity; - } - - @SearchParamDefinition(name="activitycode", path="CareActivity.simple.code", description="Detail type of activity", type="token" ) - public static final String SP_ACTIVITYCODE = "activitycode"; - @SearchParamDefinition(name="patient", path="CareActivity.patient", description="Who care plan is for", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="activitydetail", path="CareActivity.detail", description="Activity details defined in specific resource", type="reference" ) - public static final String SP_ACTIVITYDETAIL = "activitydetail"; - @SearchParamDefinition(name="activitydate", path="CareActivity.simple.scheduled[x]", description="Specified date occurs within period specified by CarePlan.activity.timingSchedule", type="date" ) - public static final String SP_ACTIVITYDATE = "activitydate"; - -} - diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/GoalRequest.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/GoalRequest.java deleted file mode 100644 index 115f0d20598..00000000000 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/GoalRequest.java +++ /dev/null @@ -1,702 +0,0 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Describes the intended objective(s) of carrying out the Care Plan. - */ -@ResourceDef(name="GoalRequest", profile="http://hl7.org/fhir/Profile/GoalRequest") -public class GoalRequest extends DomainResource { - - public enum GoalRequestStatus implements FhirEnum { - /** - * The goal is being sought but has not yet been reached. (Also applies if goal was reached in the past but there has been regression and goal is being sought again). - */ - INPROGRESS, - /** - * The goal has been met and no further action is needed. - */ - ACHIEVED, - /** - * The goal has been met, but ongoing activity is needed to sustain the goal objective. - */ - SUSTAINING, - /** - * The goal is no longer being sought. - */ - CANCELLED, - /** - * added to help the parsers - */ - NULL; - - public static final GoalRequestStatusEnumFactory ENUM_FACTORY = new GoalRequestStatusEnumFactory(); - - public static GoalRequestStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("in progress".equals(codeString)) - return INPROGRESS; - if ("achieved".equals(codeString)) - return ACHIEVED; - if ("sustaining".equals(codeString)) - return SUSTAINING; - if ("cancelled".equals(codeString)) - return CANCELLED; - throw new IllegalArgumentException("Unknown GoalRequestStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case INPROGRESS: return "in progress"; - case ACHIEVED: return "achieved"; - case SUSTAINING: return "sustaining"; - case CANCELLED: return "cancelled"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case INPROGRESS: return ""; - case ACHIEVED: return ""; - case SUSTAINING: return ""; - case CANCELLED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case INPROGRESS: return "The goal is being sought but has not yet been reached. (Also applies if goal was reached in the past but there has been regression and goal is being sought again)."; - case ACHIEVED: return "The goal has been met and no further action is needed."; - case SUSTAINING: return "The goal has been met, but ongoing activity is needed to sustain the goal objective."; - case CANCELLED: return "The goal is no longer being sought."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case INPROGRESS: return "in progress"; - case ACHIEVED: return "achieved"; - case SUSTAINING: return "sustaining"; - case CANCELLED: return "cancelled"; - default: return "?"; - } - } - } - - public static class GoalRequestStatusEnumFactory implements EnumFactory { - public GoalRequestStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("in progress".equals(codeString)) - return GoalRequestStatus.INPROGRESS; - if ("achieved".equals(codeString)) - return GoalRequestStatus.ACHIEVED; - if ("sustaining".equals(codeString)) - return GoalRequestStatus.SUSTAINING; - if ("cancelled".equals(codeString)) - return GoalRequestStatus.CANCELLED; - throw new IllegalArgumentException("Unknown GoalRequestStatus code '"+codeString+"'"); - } - public String toCode(GoalRequestStatus code) throws IllegalArgumentException { - if (code == GoalRequestStatus.INPROGRESS) - return "in progress"; - if (code == GoalRequestStatus.ACHIEVED) - return "achieved"; - if (code == GoalRequestStatus.SUSTAINING) - return "sustaining"; - if (code == GoalRequestStatus.CANCELLED) - return "cancelled"; - return "?"; - } - } - - public enum GoalRequestMode implements FhirEnum { - /** - * planned. - */ - PLANNED, - /** - * proposed. - */ - PROPOSED, - /** - * ordered. - */ - ORDERED, - /** - * added to help the parsers - */ - NULL; - - public static final GoalRequestModeEnumFactory ENUM_FACTORY = new GoalRequestModeEnumFactory(); - - public static GoalRequestMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("planned".equals(codeString)) - return PLANNED; - if ("proposed".equals(codeString)) - return PROPOSED; - if ("ordered".equals(codeString)) - return ORDERED; - throw new IllegalArgumentException("Unknown GoalRequestMode code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case PLANNED: return "planned"; - case PROPOSED: return "proposed"; - case ORDERED: return "ordered"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case PLANNED: return ""; - case PROPOSED: return ""; - case ORDERED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case PLANNED: return "planned."; - case PROPOSED: return "proposed."; - case ORDERED: return "ordered."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case PLANNED: return "planned"; - case PROPOSED: return "proposed"; - case ORDERED: return "ordered"; - default: return "?"; - } - } - } - - public static class GoalRequestModeEnumFactory implements EnumFactory { - public GoalRequestMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("planned".equals(codeString)) - return GoalRequestMode.PLANNED; - if ("proposed".equals(codeString)) - return GoalRequestMode.PROPOSED; - if ("ordered".equals(codeString)) - return GoalRequestMode.ORDERED; - throw new IllegalArgumentException("Unknown GoalRequestMode code '"+codeString+"'"); - } - public String toCode(GoalRequestMode code) throws IllegalArgumentException { - if (code == GoalRequestMode.PLANNED) - return "planned"; - if (code == GoalRequestMode.PROPOSED) - return "proposed"; - if (code == GoalRequestMode.ORDERED) - return "ordered"; - return "?"; - } - } - - /** - * This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External Ids for this goal", formalDefinition="This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) - protected List identifier; - - /** - * Identifies the patient/subject whose intended care is described by the plan. - */ - @Child(name="patient", type={Patient.class}, order=0, min=0, max=1) - @Description(shortDefinition="The patient for whom this goal is intended for", formalDefinition="Identifies the patient/subject whose intended care is described by the plan." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (Identifies the patient/subject whose intended care is described by the plan.) - */ - protected Patient patientTarget; - - /** - * Human-readable description of a specific desired objective of the care plan. - */ - @Child(name="description", type={StringType.class}, order=1, min=1, max=1) - @Description(shortDefinition="What's the desired outcome?", formalDefinition="Human-readable description of a specific desired objective of the care plan." ) - protected StringType description; - - /** - * Indicates whether the goal has been reached and is still considered relevant. - */ - @Child(name="status", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="in progress | achieved | sustaining | cancelled", formalDefinition="Indicates whether the goal has been reached and is still considered relevant." ) - protected Enumeration status; - - /** - * Any comments related to the goal. - */ - @Child(name="notes", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Comments about the goal", formalDefinition="Any comments related to the goal." ) - protected StringType notes; - - /** - * The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address. - */ - @Child(name="concern", type={Condition.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Health issues this goal addresses", formalDefinition="The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address." ) - protected List concern; - /** - * The actual objects that are the target of the reference (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - protected List concernTarget; - - - /** - * The status of the order. - */ - @Child(name="mode", type={CodeType.class}, order=5, min=0, max=1) - @Description(shortDefinition="planned | proposed | ordered", formalDefinition="The status of the order." ) - protected Enumeration mode; - - private static final long serialVersionUID = 1698507147L; - - public GoalRequest() { - super(); - } - - public GoalRequest(StringType description) { - super(); - this.description = description; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create GoalRequest.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) - */ - public GoalRequest setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create GoalRequest.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) - */ - public GoalRequest setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #description} (Human-readable description of a specific desired objective of the care plan.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create GoalRequest.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Human-readable description of a specific desired objective of the care plan.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public GoalRequest setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Human-readable description of a specific desired objective of the care plan. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Human-readable description of a specific desired objective of the care plan. - */ - public GoalRequest setDescription(String value) { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - return this; - } - - /** - * @return {@link #status} (Indicates whether the goal has been reached and is still considered relevant.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create GoalRequest.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (Indicates whether the goal has been reached and is still considered relevant.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public GoalRequest setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return Indicates whether the goal has been reached and is still considered relevant. - */ - public GoalRequestStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value Indicates whether the goal has been reached and is still considered relevant. - */ - public GoalRequest setStatus(GoalRequestStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(GoalRequestStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #notes} (Any comments related to the goal.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public StringType getNotesElement() { - if (this.notes == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create GoalRequest.notes"); - else if (Configuration.doAutoCreate()) - this.notes = new StringType(); - return this.notes; - } - - public boolean hasNotesElement() { - return this.notes != null && !this.notes.isEmpty(); - } - - public boolean hasNotes() { - return this.notes != null && !this.notes.isEmpty(); - } - - /** - * @param value {@link #notes} (Any comments related to the goal.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public GoalRequest setNotesElement(StringType value) { - this.notes = value; - return this; - } - - /** - * @return Any comments related to the goal. - */ - public String getNotes() { - return this.notes == null ? null : this.notes.getValue(); - } - - /** - * @param value Any comments related to the goal. - */ - public GoalRequest setNotes(String value) { - if (Utilities.noString(value)) - this.notes = null; - else { - if (this.notes == null) - this.notes = new StringType(); - this.notes.setValue(value); - } - return this; - } - - /** - * @return {@link #concern} (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - public List getConcern() { - if (this.concern == null) - this.concern = new ArrayList(); - return this.concern; - } - - public boolean hasConcern() { - if (this.concern == null) - return false; - for (Reference item : this.concern) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #concern} (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - // syntactic sugar - public Reference addConcern() { //3 - Reference t = new Reference(); - if (this.concern == null) - this.concern = new ArrayList(); - this.concern.add(t); - return t; - } - - /** - * @return {@link #concern} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - public List getConcernTarget() { - if (this.concernTarget == null) - this.concernTarget = new ArrayList(); - return this.concernTarget; - } - - // syntactic sugar - /** - * @return {@link #concern} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - public Condition addConcernTarget() { - Condition r = new Condition(); - if (this.concernTarget == null) - this.concernTarget = new ArrayList(); - this.concernTarget.add(r); - return r; - } - - /** - * @return {@link #mode} (The status of the order.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public Enumeration getModeElement() { - if (this.mode == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create GoalRequest.mode"); - else if (Configuration.doAutoCreate()) - this.mode = new Enumeration(); - return this.mode; - } - - public boolean hasModeElement() { - return this.mode != null && !this.mode.isEmpty(); - } - - public boolean hasMode() { - return this.mode != null && !this.mode.isEmpty(); - } - - /** - * @param value {@link #mode} (The status of the order.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public GoalRequest setModeElement(Enumeration value) { - this.mode = value; - return this; - } - - /** - * @return The status of the order. - */ - public GoalRequestMode getMode() { - return this.mode == null ? null : this.mode.getValue(); - } - - /** - * @param value The status of the order. - */ - public GoalRequest setMode(GoalRequestMode value) { - if (value == null) - this.mode = null; - else { - if (this.mode == null) - this.mode = new Enumeration(GoalRequestMode.ENUM_FACTORY); - this.mode.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("patient", "Reference(Patient)", "Identifies the patient/subject whose intended care is described by the plan.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("description", "string", "Human-readable description of a specific desired objective of the care plan.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("status", "code", "Indicates whether the goal has been reached and is still considered relevant.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("notes", "string", "Any comments related to the goal.", 0, java.lang.Integer.MAX_VALUE, notes)); - childrenList.add(new Property("concern", "Reference(Condition)", "The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.", 0, java.lang.Integer.MAX_VALUE, concern)); - childrenList.add(new Property("mode", "code", "The status of the order.", 0, java.lang.Integer.MAX_VALUE, mode)); - } - - public GoalRequest copy() { - GoalRequest dst = new GoalRequest(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.patient = patient == null ? null : patient.copy(); - dst.description = description == null ? null : description.copy(); - dst.status = status == null ? null : status.copy(); - dst.notes = notes == null ? null : notes.copy(); - if (concern != null) { - dst.concern = new ArrayList(); - for (Reference i : concern) - dst.concern.add(i.copy()); - }; - dst.mode = mode == null ? null : mode.copy(); - return dst; - } - - protected GoalRequest typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (patient == null || patient.isEmpty()) - && (description == null || description.isEmpty()) && (status == null || status.isEmpty()) - && (notes == null || notes.isEmpty()) && (concern == null || concern.isEmpty()) && (mode == null || mode.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.GoalRequest; - } - - @SearchParamDefinition(name="patient", path="GoalRequest.patient", description="The patient for whom this goal is intended for", type="reference" ) - public static final String SP_PATIENT = "patient"; - -} - diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ICompositeType.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ICompositeType.java index 8f8b0c22a64..ae84b61aec0 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ICompositeType.java +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ICompositeType.java @@ -1,5 +1,7 @@ package org.hl7.fhir.instance.model; +import org.hl7.fhir.instance.model.api.IBaseDatatype; + /* * #%L * HAPI FHIR - Core Library @@ -20,6 +22,6 @@ package org.hl7.fhir.instance.model; * #L% */ -public interface ICompositeType extends IBase { +public interface ICompositeType extends IBaseDatatype { } diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/IPrimitiveType.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/IPrimitiveType.java index 561e9a948d7..1d6685a2a29 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/IPrimitiveType.java +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/IPrimitiveType.java @@ -1,5 +1,7 @@ package org.hl7.fhir.instance.model; +import org.hl7.fhir.instance.model.api.IBaseDatatype; + /* * #%L * HAPI FHIR - Core Library @@ -21,7 +23,7 @@ package org.hl7.fhir.instance.model; */ -public interface IPrimitiveType extends IBase { +public interface IPrimitiveType extends IBaseDatatype { void setValueAsString(String theValue) throws IllegalArgumentException; diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Resource.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Resource.java deleted file mode 100644 index 7f23648c6d3..00000000000 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Resource.java +++ /dev/null @@ -1,594 +0,0 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Fri, Dec 5, 2014 09:17+1100 for FHIR v0.3.0 - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.utilities.Utilities; -/** - * Base Resource for everything. - */ -@ResourceDef(name="Resource", profile="http://hl7.org/fhir/Profile/Resource") -public abstract class Resource extends Base implements IBaseResource { - - @Block() - public static class ResourceMetaComponent extends BackboneElement { - /** - * The version specific identifier, as it appears in the version portion of the url. This values changes when the resource is created, updated, or deleted. - */ - @Child(name="versionId", type={IdType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Version specific identifier", formalDefinition="The version specific identifier, as it appears in the version portion of the url. This values changes when the resource is created, updated, or deleted." ) - protected IdType versionId; - - /** - * When the resource last changed - e.g. when the version changed. - */ - @Child(name="lastUpdated", type={InstantType.class}, order=2, min=0, max=1) - @Description(shortDefinition="When the resource version last changed", formalDefinition="When the resource last changed - e.g. when the version changed." ) - protected InstantType lastUpdated; - - /** - * A list of profiles that this resource claims to conform to. The URL is a reference to Profile.url. - */ - @Child(name="profile", type={UriType.class}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Profiles this resource claims to conform to", formalDefinition="A list of profiles that this resource claims to conform to. The URL is a reference to Profile.url." ) - protected List profile; - - /** - * Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure. - */ - @Child(name="security", type={Coding.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Security Labels applied to this resource", formalDefinition="Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure." ) - protected List security; - - /** - * Tags applied to this resource. Tags are intended to to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource. - */ - @Child(name="tag", type={Coding.class}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Tags applied", formalDefinition="Tags applied to this resource. Tags are intended to to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource." ) - protected List tag; - - private static final long serialVersionUID = 650918851L; - - public ResourceMetaComponent() { - super(); - } - - /** - * @return {@link #versionId} (The version specific identifier, as it appears in the version portion of the url. This values changes when the resource is created, updated, or deleted.). This is the underlying object with id, value and extensions. The accessor "getVersionId" gives direct access to the value - */ - public IdType getVersionIdElement() { - if (this.versionId == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ResourceMetaComponent.versionId"); - else if (Configuration.doAutoCreate()) - this.versionId = new IdType(); - return this.versionId; - } - - public boolean hasVersionIdElement() { - return this.versionId != null && !this.versionId.isEmpty(); - } - - public boolean hasVersionId() { - return this.versionId != null && !this.versionId.isEmpty(); - } - - /** - * @param value {@link #versionId} (The version specific identifier, as it appears in the version portion of the url. This values changes when the resource is created, updated, or deleted.). This is the underlying object with id, value and extensions. The accessor "getVersionId" gives direct access to the value - */ - public ResourceMetaComponent setVersionIdElement(IdType value) { - this.versionId = value; - return this; - } - - /** - * @return The version specific identifier, as it appears in the version portion of the url. This values changes when the resource is created, updated, or deleted. - */ - public String getVersionId() { - return this.versionId == null ? null : this.versionId.getValue(); - } - - /** - * @param value The version specific identifier, as it appears in the version portion of the url. This values changes when the resource is created, updated, or deleted. - */ - public ResourceMetaComponent setVersionId(String value) { - if (Utilities.noString(value)) - this.versionId = null; - else { - if (this.versionId == null) - this.versionId = new IdType(); - this.versionId.setValue(value); - } - return this; - } - - /** - * @return {@link #lastUpdated} (When the resource last changed - e.g. when the version changed.). This is the underlying object with id, value and extensions. The accessor "getLastUpdated" gives direct access to the value - */ - public InstantType getLastUpdatedElement() { - if (this.lastUpdated == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ResourceMetaComponent.lastUpdated"); - else if (Configuration.doAutoCreate()) - this.lastUpdated = new InstantType(); - return this.lastUpdated; - } - - public boolean hasLastUpdatedElement() { - return this.lastUpdated != null && !this.lastUpdated.isEmpty(); - } - - public boolean hasLastUpdated() { - return this.lastUpdated != null && !this.lastUpdated.isEmpty(); - } - - /** - * @param value {@link #lastUpdated} (When the resource last changed - e.g. when the version changed.). This is the underlying object with id, value and extensions. The accessor "getLastUpdated" gives direct access to the value - */ - public ResourceMetaComponent setLastUpdatedElement(InstantType value) { - this.lastUpdated = value; - return this; - } - - /** - * @return When the resource last changed - e.g. when the version changed. - */ - public Date getLastUpdated() { - return this.lastUpdated == null ? null : this.lastUpdated.getValue(); - } - - /** - * @param value When the resource last changed - e.g. when the version changed. - */ - public ResourceMetaComponent setLastUpdated(Date value) { - if (value == null) - this.lastUpdated = null; - else { - if (this.lastUpdated == null) - this.lastUpdated = new InstantType(); - this.lastUpdated.setValue(value); - } - return this; - } - - /** - * @return {@link #profile} (A list of profiles that this resource claims to conform to. The URL is a reference to Profile.url.) - */ - public List getProfile() { - if (this.profile == null) - this.profile = new ArrayList(); - return this.profile; - } - - public boolean hasProfile() { - if (this.profile == null) - return false; - for (UriType item : this.profile) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #profile} (A list of profiles that this resource claims to conform to. The URL is a reference to Profile.url.) - */ - // syntactic sugar - public UriType addProfileElement() {//2 - UriType t = new UriType(); - if (this.profile == null) - this.profile = new ArrayList(); - this.profile.add(t); - return t; - } - - /** - * @param value {@link #profile} (A list of profiles that this resource claims to conform to. The URL is a reference to Profile.url.) - */ - public ResourceMetaComponent addProfile(String value) { //1 - UriType t = new UriType(); - t.setValue(value); - if (this.profile == null) - this.profile = new ArrayList(); - this.profile.add(t); - return this; - } - - /** - * @param value {@link #profile} (A list of profiles that this resource claims to conform to. The URL is a reference to Profile.url.) - */ - public boolean hasProfile(String value) { - if (this.profile == null) - return false; - for (UriType v : this.profile) - if (v.equals(value)) // uri - return true; - return false; - } - - /** - * @return {@link #security} (Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.) - */ - public List getSecurity() { - if (this.security == null) - this.security = new ArrayList(); - return this.security; - } - - public boolean hasSecurity() { - if (this.security == null) - return false; - for (Coding item : this.security) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #security} (Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.) - */ - // syntactic sugar - public Coding addSecurity() { //3 - Coding t = new Coding(); - if (this.security == null) - this.security = new ArrayList(); - this.security.add(t); - return t; - } - - /** - * @return {@link #tag} (Tags applied to this resource. Tags are intended to to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.) - */ - public List getTag() { - if (this.tag == null) - this.tag = new ArrayList(); - return this.tag; - } - - public boolean hasTag() { - if (this.tag == null) - return false; - for (Coding item : this.tag) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #tag} (Tags applied to this resource. Tags are intended to to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.) - */ - // syntactic sugar - public Coding addTag() { //3 - Coding t = new Coding(); - if (this.tag == null) - this.tag = new ArrayList(); - this.tag.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("versionId", "id", "The version specific identifier, as it appears in the version portion of the url. This values changes when the resource is created, updated, or deleted.", 0, java.lang.Integer.MAX_VALUE, versionId)); - childrenList.add(new Property("lastUpdated", "instant", "When the resource last changed - e.g. when the version changed.", 0, java.lang.Integer.MAX_VALUE, lastUpdated)); - childrenList.add(new Property("profile", "uri", "A list of profiles that this resource claims to conform to. The URL is a reference to Profile.url.", 0, java.lang.Integer.MAX_VALUE, profile)); - childrenList.add(new Property("security", "Coding", "Security labels applied to this resource. These tags connect specific resources to the overall security policy and infrastructure.", 0, java.lang.Integer.MAX_VALUE, security)); - childrenList.add(new Property("tag", "Coding", "Tags applied to this resource. Tags are intended to to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource.", 0, java.lang.Integer.MAX_VALUE, tag)); - } - - public ResourceMetaComponent copy() { - ResourceMetaComponent dst = new ResourceMetaComponent(); - copyValues(dst); - dst.versionId = versionId == null ? null : versionId.copy(); - dst.lastUpdated = lastUpdated == null ? null : lastUpdated.copy(); - if (profile != null) { - dst.profile = new ArrayList(); - for (UriType i : profile) - dst.profile.add(i.copy()); - }; - if (security != null) { - dst.security = new ArrayList(); - for (Coding i : security) - dst.security.add(i.copy()); - }; - if (tag != null) { - dst.tag = new ArrayList(); - for (Coding i : tag) - dst.tag.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (versionId == null || versionId.isEmpty()) && (lastUpdated == null || lastUpdated.isEmpty()) - && (profile == null || profile.isEmpty()) && (security == null || security.isEmpty()) && (tag == null || tag.isEmpty()) - ; - } - - } - - /** - * The logical id of the resource, as used in the url for the resoure. Once assigned, this value never changes. - */ - @Child(name="id", type={IdType.class}, order=-1, min=0, max=1) - @Description(shortDefinition="Logical id of this artefact", formalDefinition="The logical id of the resource, as used in the url for the resoure. Once assigned, this value never changes." ) - protected IdType id; - - /** - * The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource. - */ - @Child(name="meta", type={}, order=0, min=0, max=1) - @Description(shortDefinition="Metadata about the resource", formalDefinition="The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource." ) - protected ResourceMetaComponent meta; - - /** - * A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. - */ - @Child(name="implicitRules", type={UriType.class}, order=1, min=0, max=1) - @Description(shortDefinition="A set of rules under which this content was created", formalDefinition="A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content." ) - protected UriType implicitRules; - - /** - * The base language in which the resource is written. - */ - @Child(name="language", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Language of the resource content", formalDefinition="The base language in which the resource is written." ) - protected CodeType language; - - private static final long serialVersionUID = -519506254L; - - public Resource() { - super(); - } - - /** - * @return {@link #id} (The logical id of the resource, as used in the url for the resoure. Once assigned, this value never changes.). This is the underlying object with id, value and extensions. The accessor "getId" gives direct access to the value - */ - public IdType getIdElement() { - if (this.id == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Resource.id"); - else if (Configuration.doAutoCreate()) - this.id = new IdType(); - return this.id; - } - - public boolean hasIdElement() { - return this.id != null && !this.id.isEmpty(); - } - - public boolean hasId() { - return this.id != null && !this.id.isEmpty(); - } - - /** - * @param value {@link #id} (The logical id of the resource, as used in the url for the resoure. Once assigned, this value never changes.). This is the underlying object with id, value and extensions. The accessor "getId" gives direct access to the value - */ - public Resource setIdElement(IdType value) { - this.id = value; - return this; - } - - /** - * @return The logical id of the resource, as used in the url for the resoure. Once assigned, this value never changes. - */ - public String getId() { - return this.id == null ? null : this.id.getValue(); - } - - /** - * @param value The logical id of the resource, as used in the url for the resoure. Once assigned, this value never changes. - */ - public Resource setId(String value) { - if (Utilities.noString(value)) - this.id = null; - else { - if (this.id == null) - this.id = new IdType(); - this.id.setValue(value); - } - return this; - } - - /** - * @return {@link #meta} (The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.) - */ - public ResourceMetaComponent getMeta() { - if (this.meta == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Resource.meta"); - else if (Configuration.doAutoCreate()) - this.meta = new ResourceMetaComponent(); - return this.meta; - } - - public boolean hasMeta() { - return this.meta != null && !this.meta.isEmpty(); - } - - /** - * @param value {@link #meta} (The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.) - */ - public Resource setMeta(ResourceMetaComponent value) { - this.meta = value; - return this; - } - - /** - * @return {@link #implicitRules} (A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content.). This is the underlying object with id, value and extensions. The accessor "getImplicitRules" gives direct access to the value - */ - public UriType getImplicitRulesElement() { - if (this.implicitRules == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Resource.implicitRules"); - else if (Configuration.doAutoCreate()) - this.implicitRules = new UriType(); - return this.implicitRules; - } - - public boolean hasImplicitRulesElement() { - return this.implicitRules != null && !this.implicitRules.isEmpty(); - } - - public boolean hasImplicitRules() { - return this.implicitRules != null && !this.implicitRules.isEmpty(); - } - - /** - * @param value {@link #implicitRules} (A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content.). This is the underlying object with id, value and extensions. The accessor "getImplicitRules" gives direct access to the value - */ - public Resource setImplicitRulesElement(UriType value) { - this.implicitRules = value; - return this; - } - - /** - * @return A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. - */ - public String getImplicitRules() { - return this.implicitRules == null ? null : this.implicitRules.getValue(); - } - - /** - * @param value A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. - */ - public Resource setImplicitRules(String value) { - if (Utilities.noString(value)) - this.implicitRules = null; - else { - if (this.implicitRules == null) - this.implicitRules = new UriType(); - this.implicitRules.setValue(value); - } - return this; - } - - /** - * @return {@link #language} (The base language in which the resource is written.). This is the underlying object with id, value and extensions. The accessor "getLanguage" gives direct access to the value - */ - public CodeType getLanguageElement() { - if (this.language == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Resource.language"); - else if (Configuration.doAutoCreate()) - this.language = new CodeType(); - return this.language; - } - - public boolean hasLanguageElement() { - return this.language != null && !this.language.isEmpty(); - } - - public boolean hasLanguage() { - return this.language != null && !this.language.isEmpty(); - } - - /** - * @param value {@link #language} (The base language in which the resource is written.). This is the underlying object with id, value and extensions. The accessor "getLanguage" gives direct access to the value - */ - public Resource setLanguageElement(CodeType value) { - this.language = value; - return this; - } - - /** - * @return The base language in which the resource is written. - */ - public String getLanguage() { - return this.language == null ? null : this.language.getValue(); - } - - /** - * @param value The base language in which the resource is written. - */ - public Resource setLanguage(String value) { - if (Utilities.noString(value)) - this.language = null; - else { - if (this.language == null) - this.language = new CodeType(); - this.language.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - childrenList.add(new Property("id", "id", "The logical id of the resource, as used in the url for the resoure. Once assigned, this value never changes.", 0, java.lang.Integer.MAX_VALUE, id)); - childrenList.add(new Property("meta", "", "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource.", 0, java.lang.Integer.MAX_VALUE, meta)); - childrenList.add(new Property("implicitRules", "uri", "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content.", 0, java.lang.Integer.MAX_VALUE, implicitRules)); - childrenList.add(new Property("language", "code", "The base language in which the resource is written.", 0, java.lang.Integer.MAX_VALUE, language)); - } - - public abstract Resource copy(); - - public void copyValues(Resource dst) { - dst.id = id == null ? null : id.copy(); - dst.meta = meta == null ? null : meta.copy(); - dst.implicitRules = implicitRules == null ? null : implicitRules.copy(); - dst.language = language == null ? null : language.copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (id == null || id.isEmpty()) && (meta == null || meta.isEmpty()) && (implicitRules == null || implicitRules.isEmpty()) - && (language == null || language.isEmpty()); - } - - public abstract ResourceType getResourceType(); - -} - diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/Child.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/Child.java deleted file mode 100644 index fa0990deb42..00000000000 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/Child.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.hl7.fhir.instance.model.annotations; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import org.hl7.fhir.instance.model.Base; - - -/** - * Field annotation for fields within resource and datatype definitions, indicating - * a child of that type. - */ -@Retention(RetentionPolicy.RUNTIME) -@Target(value= {ElementType.FIELD}) -public @interface Child { - - /** - * Constant value to supply for {@link #order()} when the order is defined - * elsewhere - */ - int ORDER_UNKNOWN = -1; - - /** - * COnstant value to supply for {@link #max()} to indicate '*' (no maximum) - */ - int MAX_UNLIMITED = -1; - - /** - * The name of this field, as it will appear in serialized versions of the message - */ - String name(); - - /** - * The order in which this field comes within its parent. The first field should have a - * value of 0, the second a value of 1, etc. - */ - int order() default ORDER_UNKNOWN; - - /** - * The minimum number of repetitions allowed for this child - */ - int min() default 0; - - /** - * The maximum number of repetitions allowed for this child. Should be - * set to {@link #MAX_UNLIMITED} if there is no limit to the number of - * repetitions. - */ - int max() default 1; - - /** - * Lists the allowable types for this field, if the field supports multiple - * types (otherwise does not need to be populated). - *

- * For example, if this field supports either DateTimeDt or BooleanDt types, - * those two classes should be supplied here. - *

- */ - Class[] type() default {}; - - // Not implemented -// /** -// * This value is used when extending a built-in model class and defining a -// * field to replace a field within the built-in class. For example, the {@link Patient} -// * resource has a {@link Patient#getName() name} field, but if you wanted to extend Patient and -// * provide your own implementation of {@link HumanNameDt} (most likely your own subclass of -// * HumanNameDt which adds extensions of your choosing) you could do that using a replacement field. -// */ -// String replaces() default ""; - -} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/DatatypeDef.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/DatatypeDef.java deleted file mode 100644 index 86706da3e12..00000000000 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/DatatypeDef.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.hl7.fhir.instance.model.annotations; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Class annotation to note a class which defines a datatype - */ -@Retention(RetentionPolicy.RUNTIME) -@Target(value= {ElementType.TYPE}) -public @interface DatatypeDef { - - /** - * The defined name of this datatype - */ - String name(); - - /** - * Set this to true (default is false) for any types that are - * really only a specialization of another type. For example, - * BoundCodeDt is really just a specific type of - * CodeDt and not a separate datatype, so it should - * have this set to true. - */ - boolean isSpecialization() default false; - -} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/Description.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/Description.java deleted file mode 100644 index 23aba340887..00000000000 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/Description.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.hl7.fhir.instance.model.annotations; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotation which may be placed on a resource/datatype definition, or a field, or - * a search parameter definition in order to provide documentation for that item. - */ -@Retention(RetentionPolicy.RUNTIME) -@Target(value= {ElementType.FIELD, ElementType.TYPE, ElementType.PARAMETER, ElementType.METHOD}) -public @interface Description { - - /** - * Optional short name for this child - */ - String shortDefinition() default ""; - - /** - * Optional formal definition for this child - */ - String formalDefinition() default ""; - -} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/SearchParamDefinition.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/SearchParamDefinition.java deleted file mode 100644 index a492c236e52..00000000000 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/SearchParamDefinition.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.hl7.fhir.instance.model.annotations; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target(value=ElementType.FIELD) -@Retention(RetentionPolicy.RUNTIME) -public @interface SearchParamDefinition { - - /** - * The name for this parameter - */ - String name(); - - /** - * The path for this parameter - */ - String path(); - - /** - * A description of this parameter - */ - String description() default ""; - - /** - * The type for this parameter, e.g. "string", or "token" - */ - String type() default "string"; - - /** - * If the parameter is of type "composite", this parameter lists the names of the parameters - * which this parameter is a composite of. E.g. "name-value-token" is a composite of "name" and "value-token". - *

- * If the parameter is not a composite, this parameter must be empty - *

- */ - String[] compositeOf() default {}; - -} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IAnyResource.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IAnyResource.java new file mode 100644 index 00000000000..58565ddf287 --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IAnyResource.java @@ -0,0 +1,15 @@ +package org.hl7.fhir.instance.model.api; + +import org.hl7.fhir.instance.model.IBaseResource; + +public interface IAnyResource extends IBaseResource { + + String getId(); + + IAnyResource setId(String theId); + + IIdType getIdElement(); + + IMetaType getMeta(); + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBackboneElement.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBackboneElement.java new file mode 100644 index 00000000000..15841fa2396 --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBackboneElement.java @@ -0,0 +1,5 @@ +package org.hl7.fhir.instance.model.api; + +public interface IBackboneElement { + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseBooleanDatatype.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseBooleanDatatype.java new file mode 100644 index 00000000000..4162693da73 --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseBooleanDatatype.java @@ -0,0 +1,7 @@ +package org.hl7.fhir.instance.model.api; + +import org.hl7.fhir.instance.model.IPrimitiveType; + +public interface IBaseBooleanDatatype extends IPrimitiveType { + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseDatatype.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseDatatype.java new file mode 100644 index 00000000000..24a59aac24a --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseDatatype.java @@ -0,0 +1,7 @@ +package org.hl7.fhir.instance.model.api; + +import org.hl7.fhir.instance.model.IBase; + +public interface IBaseDatatype extends IBase { + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseDecimalDatatype.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseDecimalDatatype.java new file mode 100644 index 00000000000..bcb5c96beb9 --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseDecimalDatatype.java @@ -0,0 +1,9 @@ +package org.hl7.fhir.instance.model.api; + +import java.math.BigDecimal; + +import org.hl7.fhir.instance.model.IPrimitiveType; + +public interface IBaseDecimalDatatype extends IPrimitiveType { + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseElement.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseElement.java new file mode 100644 index 00000000000..e53c06a2422 --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseElement.java @@ -0,0 +1,7 @@ +package org.hl7.fhir.instance.model.api; + +public interface IBaseElement { + + IBaseElement setId(String theValue); + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseExtension.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseExtension.java new file mode 100644 index 00000000000..83ad1ce865c --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseExtension.java @@ -0,0 +1,7 @@ +package org.hl7.fhir.instance.model.api; + +import org.hl7.fhir.instance.model.ICompositeType; + +public interface IBaseExtension extends ICompositeType { + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseIntegerDatatype.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseIntegerDatatype.java new file mode 100644 index 00000000000..4965c7c770e --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IBaseIntegerDatatype.java @@ -0,0 +1,7 @@ +package org.hl7.fhir.instance.model.api; + +import org.hl7.fhir.instance.model.IPrimitiveType; + +public interface IBaseIntegerDatatype extends IPrimitiveType { + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/ICoding.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/ICoding.java new file mode 100644 index 00000000000..c3f14f242a0 --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/ICoding.java @@ -0,0 +1,11 @@ +package org.hl7.fhir.instance.model.api; + +public interface ICoding { + + ICoding setSystem(String theScheme); + + ICoding setCode(String theTerm); + + ICoding setDisplay(String theLabel); + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IDatatypeElement.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IDatatypeElement.java new file mode 100644 index 00000000000..292aaf9b92a --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IDatatypeElement.java @@ -0,0 +1,7 @@ +package org.hl7.fhir.instance.model.api; + +import ca.uhn.fhir.model.api.IElement; + +public interface IDatatypeElement extends IElement { + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IDomainResource.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IDomainResource.java new file mode 100644 index 00000000000..a60d3bb9c2b --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IDomainResource.java @@ -0,0 +1,11 @@ +package org.hl7.fhir.instance.model.api; + +import java.util.List; + +public interface IDomainResource { + + List getContained(); + + INarrative getText(); + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IIdType.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IIdType.java new file mode 100644 index 00000000000..c998d6cc072 --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IIdType.java @@ -0,0 +1,8 @@ +package org.hl7.fhir.instance.model.api; + + +public interface IIdType { + + boolean isEmpty(); + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IMetaType.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IMetaType.java new file mode 100644 index 00000000000..5c7b61d74fe --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IMetaType.java @@ -0,0 +1,11 @@ +package org.hl7.fhir.instance.model.api; + +import java.util.Date; + +public interface IMetaType { + + ICoding addTag(); + + IMetaType setLastUpdated(Date theHeaderDateValue); + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/INarrative.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/INarrative.java new file mode 100644 index 00000000000..58f89e95eca --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/INarrative.java @@ -0,0 +1,9 @@ +package org.hl7.fhir.instance.model.api; + +import org.hl7.fhir.instance.model.ICompositeType; + +public interface INarrative extends ICompositeType { + + boolean isEmpty(); + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IReference.java b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IReference.java new file mode 100644 index 00000000000..dc50300ec09 --- /dev/null +++ b/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/api/IReference.java @@ -0,0 +1,16 @@ +package org.hl7.fhir.instance.model.api; + +import org.hl7.fhir.instance.model.IBase; + +public interface IReference extends IBase { + + IAnyResource getResource(); + + void setResource(IAnyResource theResource); + + String getReference(); + + IReference setReference(String theReference); + + IBase setDisplay(String theValue); +} diff --git a/hapi-fhir-jpaserver-base/.settings/org.eclipse.core.resources.prefs b/hapi-fhir-jpaserver-base/.settings/org.eclipse.core.resources.prefs index e35473ebaf9..29abf999564 100644 --- a/hapi-fhir-jpaserver-base/.settings/org.eclipse.core.resources.prefs +++ b/hapi-fhir-jpaserver-base/.settings/org.eclipse.core.resources.prefs @@ -3,6 +3,4 @@ encoding//src/main/java=UTF-8 encoding//src/main/resources=UTF-8 encoding//src/test/java=UTF-8 encoding//src/test/resources=UTF-8 -encoding//target/generated-resources/tinder=UTF-8 -encoding//target/generated-sources/tinder=UTF-8 encoding/=UTF-8 diff --git a/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/server/CreateTest.java b/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/server/CreateTest.java index aba4a74adaf..99d15561c4d 100644 --- a/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/server/CreateTest.java +++ b/hapi-fhir-structures-dstu/src/test/java/ca/uhn/fhir/rest/server/CreateTest.java @@ -19,7 +19,6 @@ import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.hamcrest.core.StringContains; -import org.hl7.fhir.instance.model.annotations.ResourceDef; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -29,6 +28,7 @@ import ca.uhn.fhir.model.api.IResource; import ca.uhn.fhir.model.api.TagList; import ca.uhn.fhir.model.api.annotation.Child; import ca.uhn.fhir.model.api.annotation.Extension; +import ca.uhn.fhir.model.api.annotation.ResourceDef; import ca.uhn.fhir.model.dstu.resource.AdverseReaction; import ca.uhn.fhir.model.dstu.resource.DiagnosticReport; import ca.uhn.fhir.model.dstu.resource.Observation; diff --git a/hapi-fhir-structures-dstu2/.gitignore b/hapi-fhir-structures-dstu2/.gitignore new file mode 100644 index 00000000000..3b27a3b49fd --- /dev/null +++ b/hapi-fhir-structures-dstu2/.gitignore @@ -0,0 +1,11 @@ +/bin +/target +*.log +*.log* +/.settings/ +.classpath +.project +/target/ +/target/ +/target/ +/target/ diff --git a/hapi-fhir-structures-hl7org-dev/.gitignore b/hapi-fhir-structures-hl7org-dev/.gitignore deleted file mode 100644 index ae3c1726048..00000000000 --- a/hapi-fhir-structures-hl7org-dev/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/bin/ diff --git a/hapi-fhir-structures-hl7org-dev/src/test/java/ca/uhn/fhir/parser/MyOrganization.java b/hapi-fhir-structures-hl7org-dev/src/test/java/ca/uhn/fhir/parser/MyOrganization.java deleted file mode 100644 index 6e69d520ec4..00000000000 --- a/hapi-fhir-structures-hl7org-dev/src/test/java/ca/uhn/fhir/parser/MyOrganization.java +++ /dev/null @@ -1,9 +0,0 @@ -package ca.uhn.fhir.parser; - -import ca.uhn.fhir.model.api.annotation.ResourceDef; -import ca.uhn.fhir.model.dstu.resource.Organization; - -@ResourceDef() -public class MyOrganization extends Organization { - -} diff --git a/hapi-fhir-structures-hl7org-dev/.classpath b/hapi-fhir-structures-hl7org-dstu2/.classpath similarity index 88% rename from hapi-fhir-structures-hl7org-dev/.classpath rename to hapi-fhir-structures-hl7org-dstu2/.classpath index fd7ad7fbda7..0463bd53037 100644 --- a/hapi-fhir-structures-hl7org-dev/.classpath +++ b/hapi-fhir-structures-hl7org-dstu2/.classpath @@ -12,6 +12,7 @@ + @@ -22,5 +23,6 @@ + diff --git a/hapi-fhir-structures-hl7org-dstu2/.gitignore b/hapi-fhir-structures-hl7org-dstu2/.gitignore new file mode 100644 index 00000000000..934e0e06ffa --- /dev/null +++ b/hapi-fhir-structures-hl7org-dstu2/.gitignore @@ -0,0 +1,2 @@ +/bin +/target diff --git a/hapi-fhir-structures-hl7org-dev/.project b/hapi-fhir-structures-hl7org-dstu2/.project similarity index 100% rename from hapi-fhir-structures-hl7org-dev/.project rename to hapi-fhir-structures-hl7org-dstu2/.project diff --git a/hapi-fhir-structures-hl7org-dev/bin/.project b/hapi-fhir-structures-hl7org-dstu2/bin/.project similarity index 100% rename from hapi-fhir-structures-hl7org-dev/bin/.project rename to hapi-fhir-structures-hl7org-dstu2/bin/.project diff --git a/hapi-fhir-structures-hl7org-dev/pom.xml b/hapi-fhir-structures-hl7org-dstu2/pom.xml similarity index 94% rename from hapi-fhir-structures-hl7org-dev/pom.xml rename to hapi-fhir-structures-hl7org-dstu2/pom.xml index c1b10957cfa..c3e42586e25 100644 --- a/hapi-fhir-structures-hl7org-dev/pom.xml +++ b/hapi-fhir-structures-hl7org-dstu2/pom.xml @@ -5,20 +5,20 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 0.8-SNAPSHOT + 0.9-SNAPSHOT ../hapi-deployable-pom/pom.xml - hapi-fhir-structures-hl7org-dev + hapi-fhir-structures-hl7org-dstu2 jar - HAPI FHIR Structures - HL7.org DEV (FHIR Latest) + HAPI FHIR Structures - HL7.org DSTU2 ca.uhn.hapi.fhir hapi-fhir-base - 0.8-SNAPSHOT + 0.9-SNAPSHOT @@ -28,6 +28,12 @@ provided + + xpp3 + xpp3_min + 1.1.4c + + junit diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/FhirDstu2Hl7Org.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/FhirDstu2Hl7Org.java new file mode 100644 index 00000000000..b43f57f2985 --- /dev/null +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/FhirDstu2Hl7Org.java @@ -0,0 +1,106 @@ +package org.hl7.fhir.instance; + +/* + * #%L + * HAPI FHIR Structures - DSTU2 (FHIR v0.4.0) + * %% + * Copyright (C) 2014 - 2015 University Health Network + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import java.io.InputStream; +import java.util.ArrayList; + +import org.apache.commons.lang3.StringUtils; +import org.hl7.fhir.instance.conf.ServerConformanceProvider; +import org.hl7.fhir.instance.conf.ServerProfileProvider; +import org.hl7.fhir.instance.model.Profile; +import org.hl7.fhir.instance.model.Reference; + +import ca.uhn.fhir.context.ConfigurationException; +import ca.uhn.fhir.context.FhirVersionEnum; +import ca.uhn.fhir.context.RuntimeResourceDefinition; +import ca.uhn.fhir.model.api.IFhirVersion; +import ca.uhn.fhir.model.api.IResource; +import ca.uhn.fhir.model.base.composite.BaseContainedDt; +import ca.uhn.fhir.model.base.composite.BaseResourceReferenceDt; +import ca.uhn.fhir.model.primitive.IdDt; +import ca.uhn.fhir.rest.server.IResourceProvider; +import ca.uhn.fhir.rest.server.RestfulServer; + +public class FhirDstu2Hl7Org implements IFhirVersion { + + private String myId; + + @Override + public ServerConformanceProvider createServerConformanceProvider(RestfulServer theServer) { + return new ServerConformanceProvider(theServer); + } + + @Override + public Profile generateProfile(RuntimeResourceDefinition theRuntimeResourceDefinition, String theServerBase) { + Profile retVal = new Profile(); + + RuntimeResourceDefinition def = theRuntimeResourceDefinition; + + myId = def.getId(); + if (StringUtils.isBlank(myId)) { + myId = theRuntimeResourceDefinition.getName().toLowerCase(); + } + + retVal.setId(myId); + return retVal; + } + + @Override + public IResourceProvider createServerProfilesProvider(RestfulServer theRestfulServer) { + return new ServerProfileProvider(theRestfulServer); + } + + @Override + public FhirVersionEnum getVersion() { + return FhirVersionEnum.DSTU2_HL7ORG; + } + + @Override + public InputStream getFhirVersionPropertiesFile() { + String path = "/org/hl7/fhir/instance/model/fhirversion.properties"; + InputStream str = FhirDstu2Hl7Org.class.getResourceAsStream(path); + if (str == null) { + str = FhirDstu2Hl7Org.class.getResourceAsStream(path.substring(1)); + } + if (str == null) { + throw new ConfigurationException("Can not find model property file on classpath: " + path); + } + return str; + } + + @Override + public String getPathToSchemaDefinitions() { + return "ca/uhn/fhir/model/dstu2/schema"; + } + + @Override + public Class getResourceReferenceType() { + return Reference.class; + } + + @SuppressWarnings("rawtypes") + @Override + public Class getContainedType() { + return ArrayList.class; + } + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/conf/ServerConformanceProvider.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/conf/ServerConformanceProvider.java new file mode 100644 index 00000000000..263779768c2 --- /dev/null +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/conf/ServerConformanceProvider.java @@ -0,0 +1,369 @@ +package org.hl7.fhir.instance.conf; + +/* + * #%L + * HAPI FHIR Structures - DSTU2 (FHIR v0.4.0) + * %% + * Copyright (C) 2014 - 2015 University Health Network + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.lang3.StringUtils; +import org.hl7.fhir.instance.model.Conformance; +import org.hl7.fhir.instance.model.Conformance.ConformanceRestComponent; +import org.hl7.fhir.instance.model.Conformance.ConformanceRestResourceComponent; +import org.hl7.fhir.instance.model.Conformance.ConformanceRestResourceSearchParamComponent; +import org.hl7.fhir.instance.model.Conformance.ResourceInteractionComponent; +import org.hl7.fhir.instance.model.Conformance.RestfulConformanceMode; +import org.hl7.fhir.instance.model.Conformance.SystemRestfulInteraction; +import org.hl7.fhir.instance.model.Conformance.TypeRestfulInteraction; +import org.hl7.fhir.instance.model.DateTimeType; +import org.hl7.fhir.instance.model.ResourceType; + +import ca.uhn.fhir.context.RuntimeResourceDefinition; +import ca.uhn.fhir.context.RuntimeSearchParam; +import ca.uhn.fhir.model.api.IResource; +import ca.uhn.fhir.model.primitive.DateTimeDt; +import ca.uhn.fhir.model.primitive.IdDt; +import ca.uhn.fhir.rest.annotation.Metadata; +import ca.uhn.fhir.rest.method.BaseMethodBinding; +import ca.uhn.fhir.rest.method.DynamicSearchMethodBinding; +import ca.uhn.fhir.rest.method.IParameter; +import ca.uhn.fhir.rest.method.SearchMethodBinding; +import ca.uhn.fhir.rest.method.SearchParameter; +import ca.uhn.fhir.rest.server.Constants; +import ca.uhn.fhir.rest.server.IServerConformanceProvider; +import ca.uhn.fhir.rest.server.ResourceBinding; +import ca.uhn.fhir.rest.server.RestfulServer; +import ca.uhn.fhir.rest.server.exceptions.InternalErrorException; + +/** + * Server FHIR Provider which serves the conformance statement for a RESTful server implementation + * + *

+ * Note: This class is safe to extend, but it is important to note that the same instance of {@link Conformance} is always returned unless {@link #setCache(boolean)} is called with a value of + * false. This means that if you are adding anything to the returned conformance instance on each call you should call setCache(false) in your provider constructor. + *

+ */ +public class ServerConformanceProvider implements IServerConformanceProvider { + + private boolean myCache = true; + private volatile Conformance myConformance; + private String myPublisher = "Not provided"; + private final RestfulServer myRestfulServer; + + public ServerConformanceProvider(RestfulServer theRestfulServer) { + myRestfulServer = theRestfulServer; + } + + /** + * Gets the value of the "publisher" that will be placed in the generated conformance statement. As this is a mandatory element, the value should not be null (although this is not enforced). The + * value defaults to "Not provided" but may be set to null, which will cause this element to be omitted. + */ + public String getPublisher() { + return myPublisher; + } + + @Override + @Metadata + public Conformance getServerConformance(HttpServletRequest theRequest) { + if (myConformance != null && myCache) { + return myConformance; + } + + Conformance retVal = new Conformance(); + + retVal.setPublisher(myPublisher); + retVal.setDateElement(DateTimeType.now()); + retVal.setFhirVersion("0.4.0"); // TODO: pull from model + retVal.setAcceptUnknown(false); // TODO: make this configurable - this is a fairly big effort since the parser + // needs to be modified to actually allow it + + retVal.getImplementation().setDescription(myRestfulServer.getImplementationDescription()); + retVal.getSoftware().setName(myRestfulServer.getServerName()); + retVal.getSoftware().setVersion(myRestfulServer.getServerVersion()); + retVal.addFormat(Constants.CT_FHIR_XML); + retVal.addFormat(Constants.CT_FHIR_JSON); + + ConformanceRestComponent rest = retVal.addRest(); + rest.setMode(RestfulConformanceMode.SERVER); + + Set systemOps = new HashSet(); + + List bindings = new ArrayList(myRestfulServer.getResourceBindings()); + Collections.sort(bindings, new Comparator() { + @Override + public int compare(ResourceBinding theArg0, ResourceBinding theArg1) { + return theArg0.getResourceName().compareToIgnoreCase(theArg1.getResourceName()); + } + }); + + for (ResourceBinding next : bindings) { + + Set resourceOps = new HashSet(); + ConformanceRestResourceComponent resource = rest.addResource(); + + String resourceName = next.getResourceName(); + RuntimeResourceDefinition def = myRestfulServer.getFhirContext().getResourceDefinition(resourceName); + resource.getTypeElement().setValue(def.getName()); + resource.getProfile().setReference(def.getResourceProfile(myRestfulServer.getServerBaseForRequest(theRequest))); + + TreeSet includes = new TreeSet(); + + // Map nameToSearchParam = new HashMap(); + for (BaseMethodBinding nextMethodBinding : next.getMethodBindings()) { + if (nextMethodBinding.getResourceOperationType() != null) { + String resOpCode = nextMethodBinding.getResourceOperationType().getCode(); + if (resOpCode != null) { + TypeRestfulInteraction resOp; + try { + resOp = TypeRestfulInteraction.fromCode(resOpCode); + } catch (Exception e) { + resOp = null; + } + if (resOp == null) { + throw new InternalErrorException("Unknown type-restful-interaction: " + resOpCode); + } + if (resourceOps.contains(resOp) == false) { + resourceOps.add(resOp); + resource.addInteraction().setCode(resOp); + } + } + } + + if (nextMethodBinding.getSystemOperationType() != null) { + String sysOpCode = nextMethodBinding.getSystemOperationType().getCode(); + if (sysOpCode != null) { + SystemRestfulInteraction sysOp; + try { + sysOp = SystemRestfulInteraction.fromCode(sysOpCode); + } catch (Exception e) { + sysOp = null; + } + if (sysOp == null) { + throw new InternalErrorException("Unknown system-restful-interaction: " + sysOpCode); + } + if (systemOps.contains(sysOp) == false) { + systemOps.add(sysOp); + rest.addInteraction().setCode(sysOp); + } + } + } + + if (nextMethodBinding instanceof SearchMethodBinding) { + handleSearchMethodBinding(rest, resource, resourceName, def, includes, (SearchMethodBinding) nextMethodBinding); + } else if (nextMethodBinding instanceof DynamicSearchMethodBinding) { + handleDynamicSearchMethodBinding(resource, def, includes, (DynamicSearchMethodBinding) nextMethodBinding); + } + + Collections.sort(resource.getInteraction(), new Comparator() { + @Override + public int compare(ResourceInteractionComponent theO1, ResourceInteractionComponent theO2) { + TypeRestfulInteraction o1 = theO1.getCodeElement().getValue(); + TypeRestfulInteraction o2 = theO2.getCodeElement().getValue(); + if (o1 == null && o2 == null) { + return 0; + } + if (o1 == null) { + return 1; + } + if (o2 == null) { + return -1; + } + return o1.ordinal() - o2.ordinal(); + } + }); + + } + + for (String nextInclude : includes) { + resource.addSearchInclude(nextInclude); + } + + } + + myConformance = retVal; + return retVal; + } + + private void handleDynamicSearchMethodBinding(ConformanceRestResourceComponent resource, RuntimeResourceDefinition def, TreeSet includes, DynamicSearchMethodBinding searchMethodBinding) { + includes.addAll(searchMethodBinding.getIncludes()); + + List searchParameters = new ArrayList(); + searchParameters.addAll(searchMethodBinding.getSearchParams()); + sortRuntimeSearchParameters(searchParameters); + + if (!searchParameters.isEmpty()) { + + for (RuntimeSearchParam nextParameter : searchParameters) { + + String nextParamName = nextParameter.getName(); + + // String chain = null; + String nextParamUnchainedName = nextParamName; + if (nextParamName.contains(".")) { + // chain = nextParamName.substring(nextParamName.indexOf('.') + 1); + nextParamUnchainedName = nextParamName.substring(0, nextParamName.indexOf('.')); + } + + String nextParamDescription = nextParameter.getDescription(); + + /* + * If the parameter has no description, default to the one from the resource + */ + if (StringUtils.isBlank(nextParamDescription)) { + RuntimeSearchParam paramDef = def.getSearchParam(nextParamUnchainedName); + if (paramDef != null) { + nextParamDescription = paramDef.getDescription(); + } + } + + ConformanceRestResourceSearchParamComponent param; + param = resource.addSearchParam(); + + param.setName(nextParamName); + // if (StringUtils.isNotBlank(chain)) { + // param.addChain(chain); + // } + param.setDocumentation(nextParamDescription); + // param.setType(nextParameter.getParamType()); + } + } + } + + private void handleSearchMethodBinding(ConformanceRestComponent rest, ConformanceRestResourceComponent resource, String resourceName, RuntimeResourceDefinition def, TreeSet includes, SearchMethodBinding searchMethodBinding) { + includes.addAll(searchMethodBinding.getIncludes()); + + List params = searchMethodBinding.getParameters(); + List searchParameters = new ArrayList(); + for (IParameter nextParameter : params) { + if ((nextParameter instanceof SearchParameter)) { + searchParameters.add((SearchParameter) nextParameter); + } + } + sortSearchParameters(searchParameters); + if (!searchParameters.isEmpty()) { + // boolean allOptional = searchParameters.get(0).isRequired() == false; + // + // OperationDefinition query = null; + // if (!allOptional) { + // RestOperation operation = rest.addOperation(); + // query = new OperationDefinition(); + // operation.setDefinition(new ResourceReferenceDt(query)); + // query.getDescriptionElement().setValue(searchMethodBinding.getDescription()); + // query.addUndeclaredExtension(false, ExtensionConstants.QUERY_RETURN_TYPE, new CodeDt(resourceName)); + // for (String nextInclude : searchMethodBinding.getIncludes()) { + // query.addUndeclaredExtension(false, ExtensionConstants.QUERY_ALLOWED_INCLUDE, new StringDt(nextInclude)); + // } + // } + + for (SearchParameter nextParameter : searchParameters) { + + String nextParamName = nextParameter.getName(); + + String chain = null; + String nextParamUnchainedName = nextParamName; + if (nextParamName.contains(".")) { + chain = nextParamName.substring(nextParamName.indexOf('.') + 1); + nextParamUnchainedName = nextParamName.substring(0, nextParamName.indexOf('.')); + } + + String nextParamDescription = nextParameter.getDescription(); + + /* + * If the parameter has no description, default to the one from the resource + */ + if (StringUtils.isBlank(nextParamDescription)) { + RuntimeSearchParam paramDef = def.getSearchParam(nextParamUnchainedName); + if (paramDef != null) { + nextParamDescription = paramDef.getDescription(); + } + } + + ConformanceRestResourceSearchParamComponent param = resource.addSearchParam(); + param.setName(nextParamUnchainedName); + if (StringUtils.isNotBlank(chain)) { + param.addChain(chain); + } + param.setDocumentation(nextParamDescription); + if (nextParameter.getParamType() != null) { + param.getTypeElement().setValueAsString(nextParameter.getParamType().getCode()); + } + for (Class nextTarget : nextParameter.getDeclaredTypes()) { + RuntimeResourceDefinition targetDef = myRestfulServer.getFhirContext().getResourceDefinition(nextTarget); + if (targetDef != null) { + ResourceType code = ResourceType.valueOf(targetDef.getName()); + if (code != null) { + param.addTarget(code.name()); + } + } + } + } + } + } + + /** + * Sets the cache property (default is true). If set to true, the same response will be returned for each invocation. + *

+ * See the class documentation for an important note if you are extending this class + *

+ */ + public void setCache(boolean theCache) { + myCache = theCache; + } + + /** + * Sets the value of the "publisher" that will be placed in the generated conformance statement. As this is a mandatory element, the value should not be null (although this is not enforced). The + * value defaults to "Not provided" but may be set to null, which will cause this element to be omitted. + */ + public void setPublisher(String thePublisher) { + myPublisher = thePublisher; + } + + private void sortRuntimeSearchParameters(List searchParameters) { + Collections.sort(searchParameters, new Comparator() { + @Override + public int compare(RuntimeSearchParam theO1, RuntimeSearchParam theO2) { + return theO1.getName().compareTo(theO2.getName()); + } + }); + } + + private void sortSearchParameters(List searchParameters) { + Collections.sort(searchParameters, new Comparator() { + @Override + public int compare(SearchParameter theO1, SearchParameter theO2) { + if (theO1.isRequired() == theO2.isRequired()) { + return theO1.getName().compareTo(theO2.getName()); + } + if (theO1.isRequired()) { + return -1; + } + return 1; + } + }); + } +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/conf/ServerProfileProvider.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/conf/ServerProfileProvider.java new file mode 100644 index 00000000000..a510d8872f5 --- /dev/null +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/conf/ServerProfileProvider.java @@ -0,0 +1,90 @@ +package org.hl7.fhir.instance.conf; + +/* + * #%L + * HAPI FHIR Structures - DSTU2 (FHIR v0.4.0) + * %% + * Copyright (C) 2014 - 2015 University Health Network + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.hl7.fhir.instance.model.IBaseResource; +import org.hl7.fhir.instance.model.Profile; + +import ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.context.RuntimeResourceDefinition; +import ca.uhn.fhir.model.primitive.IdDt; +import ca.uhn.fhir.rest.annotation.IdParam; +import ca.uhn.fhir.rest.annotation.Read; +import ca.uhn.fhir.rest.annotation.Search; +import ca.uhn.fhir.rest.server.IResourceProvider; +import ca.uhn.fhir.rest.server.RestfulServer; + +public class ServerProfileProvider implements IResourceProvider { + + private final FhirContext myContext; + private final RestfulServer myRestfulServer; + + public ServerProfileProvider(RestfulServer theServer) { + myContext = theServer.getFhirContext(); + myRestfulServer = theServer; + } + + @Override + public Class getResourceType() { + return Profile.class; + } + + @Read() + public Profile getProfileById(HttpServletRequest theRequest, @IdParam IdDt theId) { + RuntimeResourceDefinition retVal = myContext.getResourceDefinitionById(theId.getValue()); + if (retVal==null) { + return null; + } + String serverBase = getServerBase(theRequest); + return (Profile) retVal.toProfile(serverBase); + } + + @Search() + public List getAllProfiles(HttpServletRequest theRequest) { + final String serverBase = getServerBase(theRequest); + List defs = new ArrayList(myContext.getResourceDefinitions()); + Collections.sort(defs, new Comparator() { + @Override + public int compare(RuntimeResourceDefinition theO1, RuntimeResourceDefinition theO2) { + int cmp = theO1.getName().compareTo(theO2.getName()); + if (cmp==0) { + cmp=theO1.getResourceProfile(serverBase).compareTo(theO2.getResourceProfile(serverBase)); + } + return cmp; + }}); + ArrayList retVal = new ArrayList(); + for (RuntimeResourceDefinition next : defs) { + retVal.add((Profile) next.toProfile(serverBase)); + } + return retVal; + } + + private String getServerBase(HttpServletRequest theHttpRequest) { + return myRestfulServer.getServerBaseForRequest(theHttpRequest); + } +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Address$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Address$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c2c30f2ae4bd785593196c91688a8a4b412f22b7 GIT binary patch literal 862 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 EKhj90YXATM literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Address.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Address.java similarity index 90% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Address.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Address.java index f16050a1f30..7058567e2ae 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Address.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Address.java @@ -1,653 +1,652 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -import org.hl7.fhir.instance.model.annotations.DatatypeDef; -/** - * There is a variety of postal address formats defined around the world. This format defines a superset that is the basis for all addresses around the world. - */ -@DatatypeDef(name="Address") -public class Address extends Type implements ICompositeType{ - - public enum AddressUse implements FhirEnum { - /** - * A communication address at a home. - */ - HOME, - /** - * An office address. First choice for business related contacts during business hours. - */ - WORK, - /** - * A temporary address. The period can provide more detailed information. - */ - TEMP, - /** - * This address is no longer in use (or was never correct, but retained for records). - */ - OLD, - /** - * added to help the parsers - */ - NULL; - - public static final AddressUseEnumFactory ENUM_FACTORY = new AddressUseEnumFactory(); - - public static AddressUse fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("home".equals(codeString)) - return HOME; - if ("work".equals(codeString)) - return WORK; - if ("temp".equals(codeString)) - return TEMP; - if ("old".equals(codeString)) - return OLD; - throw new IllegalArgumentException("Unknown AddressUse code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case HOME: return "home"; - case WORK: return "work"; - case TEMP: return "temp"; - case OLD: return "old"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case HOME: return ""; - case WORK: return ""; - case TEMP: return ""; - case OLD: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case HOME: return "A communication address at a home."; - case WORK: return "An office address. First choice for business related contacts during business hours."; - case TEMP: return "A temporary address. The period can provide more detailed information."; - case OLD: return "This address is no longer in use (or was never correct, but retained for records)."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case HOME: return "home"; - case WORK: return "work"; - case TEMP: return "temp"; - case OLD: return "old"; - default: return "?"; - } - } - } - - public static class AddressUseEnumFactory implements EnumFactory { - public AddressUse fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("home".equals(codeString)) - return AddressUse.HOME; - if ("work".equals(codeString)) - return AddressUse.WORK; - if ("temp".equals(codeString)) - return AddressUse.TEMP; - if ("old".equals(codeString)) - return AddressUse.OLD; - throw new IllegalArgumentException("Unknown AddressUse code '"+codeString+"'"); - } - public String toCode(AddressUse code) throws IllegalArgumentException { - if (code == AddressUse.HOME) - return "home"; - if (code == AddressUse.WORK) - return "work"; - if (code == AddressUse.TEMP) - return "temp"; - if (code == AddressUse.OLD) - return "old"; - return "?"; - } - } - - /** - * The purpose of this address. - */ - @Child(name="use", type={CodeType.class}, order=-1, min=0, max=1) - @Description(shortDefinition="home | work | temp | old - purpose of this address", formalDefinition="The purpose of this address." ) - protected Enumeration use; - - /** - * A full text representation of the address. - */ - @Child(name="text", type={StringType.class}, order=0, min=0, max=1) - @Description(shortDefinition="Text representation of the address", formalDefinition="A full text representation of the address." ) - protected StringType text; - - /** +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +/** + * There is a variety of postal address formats defined around the world. This format defines a superset that is the basis for all addresses around the world. + */ +@DatatypeDef(name="Address") +public class Address extends Type implements ICompositeType { + + public enum AddressUse { + /** + * A communication address at a home. + */ + HOME, + /** + * An office address. First choice for business related contacts during business hours. + */ + WORK, + /** + * A temporary address. The period can provide more detailed information. + */ + TEMP, + /** + * This address is no longer in use (or was never correct, but retained for records). + */ + OLD, + /** + * added to help the parsers + */ + NULL; + public static AddressUse fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("home".equals(codeString)) + return HOME; + if ("work".equals(codeString)) + return WORK; + if ("temp".equals(codeString)) + return TEMP; + if ("old".equals(codeString)) + return OLD; + throw new Exception("Unknown AddressUse code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case HOME: return "home"; + case WORK: return "work"; + case TEMP: return "temp"; + case OLD: return "old"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case HOME: return ""; + case WORK: return ""; + case TEMP: return ""; + case OLD: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case HOME: return "A communication address at a home."; + case WORK: return "An office address. First choice for business related contacts during business hours."; + case TEMP: return "A temporary address. The period can provide more detailed information."; + case OLD: return "This address is no longer in use (or was never correct, but retained for records)."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case HOME: return "home"; + case WORK: return "work"; + case TEMP: return "temp"; + case OLD: return "old"; + default: return "?"; + } + } + } + + public static class AddressUseEnumFactory implements EnumFactory { + public AddressUse fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("home".equals(codeString)) + return AddressUse.HOME; + if ("work".equals(codeString)) + return AddressUse.WORK; + if ("temp".equals(codeString)) + return AddressUse.TEMP; + if ("old".equals(codeString)) + return AddressUse.OLD; + throw new IllegalArgumentException("Unknown AddressUse code '"+codeString+"'"); + } + public String toCode(AddressUse code) { + if (code == AddressUse.HOME) + return "home"; + if (code == AddressUse.WORK) + return "work"; + if (code == AddressUse.TEMP) + return "temp"; + if (code == AddressUse.OLD) + return "old"; + return "?"; + } + } + + /** + * The purpose of this address. + */ + @Child(name="use", type={CodeType.class}, order=-1, min=0, max=1) + @Description(shortDefinition="home | work | temp | old - purpose of this address", formalDefinition="The purpose of this address." ) + protected Enumeration use; + + /** + * A full text representation of the address. + */ + @Child(name="text", type={StringType.class}, order=0, min=0, max=1) + @Description(shortDefinition="Text representation of the address", formalDefinition="A full text representation of the address." ) + protected StringType text; + + /** * This component contains the house number, apartment number, street name, street direction, -P.O. Box number, delivery hints, and similar address information. - */ - @Child(name="line", type={StringType.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Street name, number, direction & P.O. Box etc", formalDefinition="This component contains the house number, apartment number, street name, street direction, \nP.O. Box number, delivery hints, and similar address information." ) - protected List line; - - /** - * The name of the city, town, village or other community or delivery center. - */ - @Child(name="city", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Name of city, town etc.", formalDefinition="The name of the city, town, village or other community or delivery center." ) - protected StringType city; - - /** - * Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes). - */ - @Child(name="state", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Sub-unit of country (abreviations ok)", formalDefinition="Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes)." ) - protected StringType state; - - /** - * A postal code designating a region defined by the postal service. - */ - @Child(name="postalCode", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Postal code for area", formalDefinition="A postal code designating a region defined by the postal service." ) - protected StringType postalCode; - - /** - * Country - a nation as commonly understood or generally accepted. - */ - @Child(name="country", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Country (can be ISO 3166 3 letter code)", formalDefinition="Country - a nation as commonly understood or generally accepted." ) - protected StringType country; - - /** - * Time period when address was/is in use. - */ - @Child(name="period", type={Period.class}, order=6, min=0, max=1) - @Description(shortDefinition="Time period when address was/is in use", formalDefinition="Time period when address was/is in use." ) - protected Period period; - - private static final long serialVersionUID = -470351694L; - - public Address() { - super(); - } - - /** - * @return {@link #use} (The purpose of this address.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value - */ - public Enumeration getUseElement() { - if (this.use == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Address.use"); - else if (Configuration.doAutoCreate()) - this.use = new Enumeration(); - return this.use; - } - - public boolean hasUseElement() { - return this.use != null && !this.use.isEmpty(); - } - - public boolean hasUse() { - return this.use != null && !this.use.isEmpty(); - } - - /** - * @param value {@link #use} (The purpose of this address.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value - */ - public Address setUseElement(Enumeration value) { - this.use = value; - return this; - } - - /** - * @return The purpose of this address. - */ - public AddressUse getUse() { - return this.use == null ? null : this.use.getValue(); - } - - /** - * @param value The purpose of this address. - */ - public Address setUse(AddressUse value) { - if (value == null) - this.use = null; - else { - if (this.use == null) - this.use = new Enumeration(AddressUse.ENUM_FACTORY); - this.use.setValue(value); - } - return this; - } - - /** - * @return {@link #text} (A full text representation of the address.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value - */ - public StringType getTextElement() { - if (this.text == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Address.text"); - else if (Configuration.doAutoCreate()) - this.text = new StringType(); - return this.text; - } - - public boolean hasTextElement() { - return this.text != null && !this.text.isEmpty(); - } - - public boolean hasText() { - return this.text != null && !this.text.isEmpty(); - } - - /** - * @param value {@link #text} (A full text representation of the address.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value - */ - public Address setTextElement(StringType value) { - this.text = value; - return this; - } - - /** - * @return A full text representation of the address. - */ - public String getText() { - return this.text == null ? null : this.text.getValue(); - } - - /** - * @param value A full text representation of the address. - */ - public Address setText(String value) { - if (Utilities.noString(value)) - this.text = null; - else { - if (this.text == null) - this.text = new StringType(); - this.text.setValue(value); - } - return this; - } - - /** +P.O. Box number, delivery hints, and similar address information. + */ + @Child(name="line", type={StringType.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Street name, number, direction & P.O. Box etc", formalDefinition="This component contains the house number, apartment number, street name, street direction, \nP.O. Box number, delivery hints, and similar address information." ) + protected List line; + + /** + * The name of the city, town, village or other community or delivery center. + */ + @Child(name="city", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Name of city, town etc.", formalDefinition="The name of the city, town, village or other community or delivery center." ) + protected StringType city; + + /** + * Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes). + */ + @Child(name="state", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Sub-unit of country (abreviations ok)", formalDefinition="Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes)." ) + protected StringType state; + + /** + * A postal code designating a region defined by the postal service. + */ + @Child(name="postalCode", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Postal code for area", formalDefinition="A postal code designating a region defined by the postal service." ) + protected StringType postalCode; + + /** + * Country - a nation as commonly understood or generally accepted. + */ + @Child(name="country", type={StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Country (can be ISO 3166 3 letter code)", formalDefinition="Country - a nation as commonly understood or generally accepted." ) + protected StringType country; + + /** + * Time period when address was/is in use. + */ + @Child(name="period", type={Period.class}, order=6, min=0, max=1) + @Description(shortDefinition="Time period when address was/is in use", formalDefinition="Time period when address was/is in use." ) + protected Period period; + + private static final long serialVersionUID = -470351694L; + + public Address() { + super(); + } + + /** + * @return {@link #use} (The purpose of this address.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value + */ + public Enumeration getUseElement() { + if (this.use == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Address.use"); + else if (Configuration.doAutoCreate()) + this.use = new Enumeration(new AddressUseEnumFactory()); // bb + return this.use; + } + + public boolean hasUseElement() { + return this.use != null && !this.use.isEmpty(); + } + + public boolean hasUse() { + return this.use != null && !this.use.isEmpty(); + } + + /** + * @param value {@link #use} (The purpose of this address.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value + */ + public Address setUseElement(Enumeration value) { + this.use = value; + return this; + } + + /** + * @return The purpose of this address. + */ + public AddressUse getUse() { + return this.use == null ? null : this.use.getValue(); + } + + /** + * @param value The purpose of this address. + */ + public Address setUse(AddressUse value) { + if (value == null) + this.use = null; + else { + if (this.use == null) + this.use = new Enumeration(new AddressUseEnumFactory()); + this.use.setValue(value); + } + return this; + } + + /** + * @return {@link #text} (A full text representation of the address.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value + */ + public StringType getTextElement() { + if (this.text == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Address.text"); + else if (Configuration.doAutoCreate()) + this.text = new StringType(); // bb + return this.text; + } + + public boolean hasTextElement() { + return this.text != null && !this.text.isEmpty(); + } + + public boolean hasText() { + return this.text != null && !this.text.isEmpty(); + } + + /** + * @param value {@link #text} (A full text representation of the address.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value + */ + public Address setTextElement(StringType value) { + this.text = value; + return this; + } + + /** + * @return A full text representation of the address. + */ + public String getText() { + return this.text == null ? null : this.text.getValue(); + } + + /** + * @param value A full text representation of the address. + */ + public Address setText(String value) { + if (Utilities.noString(value)) + this.text = null; + else { + if (this.text == null) + this.text = new StringType(); + this.text.setValue(value); + } + return this; + } + + /** * @return {@link #line} (This component contains the house number, apartment number, street name, street direction, -P.O. Box number, delivery hints, and similar address information.) - */ - public List getLine() { - if (this.line == null) - this.line = new ArrayList(); - return this.line; - } - - public boolean hasLine() { - if (this.line == null) - return false; - for (StringType item : this.line) - if (!item.isEmpty()) - return true; - return false; - } - - /** +P.O. Box number, delivery hints, and similar address information.) + */ + public List getLine() { + if (this.line == null) + this.line = new ArrayList(); + return this.line; + } + + public boolean hasLine() { + if (this.line == null) + return false; + for (StringType item : this.line) + if (!item.isEmpty()) + return true; + return false; + } + + /** * @return {@link #line} (This component contains the house number, apartment number, street name, street direction, -P.O. Box number, delivery hints, and similar address information.) - */ - // syntactic sugar - public StringType addLineElement() {//2 - StringType t = new StringType(); - if (this.line == null) - this.line = new ArrayList(); - this.line.add(t); - return t; - } - - /** +P.O. Box number, delivery hints, and similar address information.) + */ + // syntactic sugar + public StringType addLineElement() {//2 + StringType t = new StringType(); + if (this.line == null) + this.line = new ArrayList(); + this.line.add(t); + return t; + } + + /** * @param value {@link #line} (This component contains the house number, apartment number, street name, street direction, -P.O. Box number, delivery hints, and similar address information.) - */ - public Address addLine(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.line == null) - this.line = new ArrayList(); - this.line.add(t); - return this; - } - - /** +P.O. Box number, delivery hints, and similar address information.) + */ + public Address addLine(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.line == null) + this.line = new ArrayList(); + this.line.add(t); + return this; + } + + /** * @param value {@link #line} (This component contains the house number, apartment number, street name, street direction, -P.O. Box number, delivery hints, and similar address information.) - */ - public boolean hasLine(String value) { - if (this.line == null) - return false; - for (StringType v : this.line) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #city} (The name of the city, town, village or other community or delivery center.). This is the underlying object with id, value and extensions. The accessor "getCity" gives direct access to the value - */ - public StringType getCityElement() { - if (this.city == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Address.city"); - else if (Configuration.doAutoCreate()) - this.city = new StringType(); - return this.city; - } - - public boolean hasCityElement() { - return this.city != null && !this.city.isEmpty(); - } - - public boolean hasCity() { - return this.city != null && !this.city.isEmpty(); - } - - /** - * @param value {@link #city} (The name of the city, town, village or other community or delivery center.). This is the underlying object with id, value and extensions. The accessor "getCity" gives direct access to the value - */ - public Address setCityElement(StringType value) { - this.city = value; - return this; - } - - /** - * @return The name of the city, town, village or other community or delivery center. - */ - public String getCity() { - return this.city == null ? null : this.city.getValue(); - } - - /** - * @param value The name of the city, town, village or other community or delivery center. - */ - public Address setCity(String value) { - if (Utilities.noString(value)) - this.city = null; - else { - if (this.city == null) - this.city = new StringType(); - this.city.setValue(value); - } - return this; - } - - /** - * @return {@link #state} (Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes).). This is the underlying object with id, value and extensions. The accessor "getState" gives direct access to the value - */ - public StringType getStateElement() { - if (this.state == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Address.state"); - else if (Configuration.doAutoCreate()) - this.state = new StringType(); - return this.state; - } - - public boolean hasStateElement() { - return this.state != null && !this.state.isEmpty(); - } - - public boolean hasState() { - return this.state != null && !this.state.isEmpty(); - } - - /** - * @param value {@link #state} (Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes).). This is the underlying object with id, value and extensions. The accessor "getState" gives direct access to the value - */ - public Address setStateElement(StringType value) { - this.state = value; - return this; - } - - /** - * @return Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes). - */ - public String getState() { - return this.state == null ? null : this.state.getValue(); - } - - /** - * @param value Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes). - */ - public Address setState(String value) { - if (Utilities.noString(value)) - this.state = null; - else { - if (this.state == null) - this.state = new StringType(); - this.state.setValue(value); - } - return this; - } - - /** - * @return {@link #postalCode} (A postal code designating a region defined by the postal service.). This is the underlying object with id, value and extensions. The accessor "getPostalCode" gives direct access to the value - */ - public StringType getPostalCodeElement() { - if (this.postalCode == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Address.postalCode"); - else if (Configuration.doAutoCreate()) - this.postalCode = new StringType(); - return this.postalCode; - } - - public boolean hasPostalCodeElement() { - return this.postalCode != null && !this.postalCode.isEmpty(); - } - - public boolean hasPostalCode() { - return this.postalCode != null && !this.postalCode.isEmpty(); - } - - /** - * @param value {@link #postalCode} (A postal code designating a region defined by the postal service.). This is the underlying object with id, value and extensions. The accessor "getPostalCode" gives direct access to the value - */ - public Address setPostalCodeElement(StringType value) { - this.postalCode = value; - return this; - } - - /** - * @return A postal code designating a region defined by the postal service. - */ - public String getPostalCode() { - return this.postalCode == null ? null : this.postalCode.getValue(); - } - - /** - * @param value A postal code designating a region defined by the postal service. - */ - public Address setPostalCode(String value) { - if (Utilities.noString(value)) - this.postalCode = null; - else { - if (this.postalCode == null) - this.postalCode = new StringType(); - this.postalCode.setValue(value); - } - return this; - } - - /** - * @return {@link #country} (Country - a nation as commonly understood or generally accepted.). This is the underlying object with id, value and extensions. The accessor "getCountry" gives direct access to the value - */ - public StringType getCountryElement() { - if (this.country == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Address.country"); - else if (Configuration.doAutoCreate()) - this.country = new StringType(); - return this.country; - } - - public boolean hasCountryElement() { - return this.country != null && !this.country.isEmpty(); - } - - public boolean hasCountry() { - return this.country != null && !this.country.isEmpty(); - } - - /** - * @param value {@link #country} (Country - a nation as commonly understood or generally accepted.). This is the underlying object with id, value and extensions. The accessor "getCountry" gives direct access to the value - */ - public Address setCountryElement(StringType value) { - this.country = value; - return this; - } - - /** - * @return Country - a nation as commonly understood or generally accepted. - */ - public String getCountry() { - return this.country == null ? null : this.country.getValue(); - } - - /** - * @param value Country - a nation as commonly understood or generally accepted. - */ - public Address setCountry(String value) { - if (Utilities.noString(value)) - this.country = null; - else { - if (this.country == null) - this.country = new StringType(); - this.country.setValue(value); - } - return this; - } - - /** - * @return {@link #period} (Time period when address was/is in use.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Address.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (Time period when address was/is in use.) - */ - public Address setPeriod(Period value) { - this.period = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("use", "code", "The purpose of this address.", 0, java.lang.Integer.MAX_VALUE, use)); - childrenList.add(new Property("text", "string", "A full text representation of the address.", 0, java.lang.Integer.MAX_VALUE, text)); - childrenList.add(new Property("line", "string", "This component contains the house number, apartment number, street name, street direction, \nP.O. Box number, delivery hints, and similar address information.", 0, java.lang.Integer.MAX_VALUE, line)); - childrenList.add(new Property("city", "string", "The name of the city, town, village or other community or delivery center.", 0, java.lang.Integer.MAX_VALUE, city)); - childrenList.add(new Property("state", "string", "Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes).", 0, java.lang.Integer.MAX_VALUE, state)); - childrenList.add(new Property("postalCode", "string", "A postal code designating a region defined by the postal service.", 0, java.lang.Integer.MAX_VALUE, postalCode)); - childrenList.add(new Property("country", "string", "Country - a nation as commonly understood or generally accepted.", 0, java.lang.Integer.MAX_VALUE, country)); - childrenList.add(new Property("period", "Period", "Time period when address was/is in use.", 0, java.lang.Integer.MAX_VALUE, period)); - } - - public Address copy() { - Address dst = new Address(); - copyValues(dst); - dst.use = use == null ? null : use.copy(); - dst.text = text == null ? null : text.copy(); - if (line != null) { - dst.line = new ArrayList(); - for (StringType i : line) - dst.line.add(i.copy()); - }; - dst.city = city == null ? null : city.copy(); - dst.state = state == null ? null : state.copy(); - dst.postalCode = postalCode == null ? null : postalCode.copy(); - dst.country = country == null ? null : country.copy(); - dst.period = period == null ? null : period.copy(); - return dst; - } - - protected Address typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (use == null || use.isEmpty()) && (text == null || text.isEmpty()) - && (line == null || line.isEmpty()) && (city == null || city.isEmpty()) && (state == null || state.isEmpty()) - && (postalCode == null || postalCode.isEmpty()) && (country == null || country.isEmpty()) - && (period == null || period.isEmpty()); - } - - -} - +P.O. Box number, delivery hints, and similar address information.) + */ + public boolean hasLine(String value) { + if (this.line == null) + return false; + for (StringType v : this.line) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #city} (The name of the city, town, village or other community or delivery center.). This is the underlying object with id, value and extensions. The accessor "getCity" gives direct access to the value + */ + public StringType getCityElement() { + if (this.city == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Address.city"); + else if (Configuration.doAutoCreate()) + this.city = new StringType(); // bb + return this.city; + } + + public boolean hasCityElement() { + return this.city != null && !this.city.isEmpty(); + } + + public boolean hasCity() { + return this.city != null && !this.city.isEmpty(); + } + + /** + * @param value {@link #city} (The name of the city, town, village or other community or delivery center.). This is the underlying object with id, value and extensions. The accessor "getCity" gives direct access to the value + */ + public Address setCityElement(StringType value) { + this.city = value; + return this; + } + + /** + * @return The name of the city, town, village or other community or delivery center. + */ + public String getCity() { + return this.city == null ? null : this.city.getValue(); + } + + /** + * @param value The name of the city, town, village or other community or delivery center. + */ + public Address setCity(String value) { + if (Utilities.noString(value)) + this.city = null; + else { + if (this.city == null) + this.city = new StringType(); + this.city.setValue(value); + } + return this; + } + + /** + * @return {@link #state} (Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes).). This is the underlying object with id, value and extensions. The accessor "getState" gives direct access to the value + */ + public StringType getStateElement() { + if (this.state == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Address.state"); + else if (Configuration.doAutoCreate()) + this.state = new StringType(); // bb + return this.state; + } + + public boolean hasStateElement() { + return this.state != null && !this.state.isEmpty(); + } + + public boolean hasState() { + return this.state != null && !this.state.isEmpty(); + } + + /** + * @param value {@link #state} (Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes).). This is the underlying object with id, value and extensions. The accessor "getState" gives direct access to the value + */ + public Address setStateElement(StringType value) { + this.state = value; + return this; + } + + /** + * @return Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes). + */ + public String getState() { + return this.state == null ? null : this.state.getValue(); + } + + /** + * @param value Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes). + */ + public Address setState(String value) { + if (Utilities.noString(value)) + this.state = null; + else { + if (this.state == null) + this.state = new StringType(); + this.state.setValue(value); + } + return this; + } + + /** + * @return {@link #postalCode} (A postal code designating a region defined by the postal service.). This is the underlying object with id, value and extensions. The accessor "getPostalCode" gives direct access to the value + */ + public StringType getPostalCodeElement() { + if (this.postalCode == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Address.postalCode"); + else if (Configuration.doAutoCreate()) + this.postalCode = new StringType(); // bb + return this.postalCode; + } + + public boolean hasPostalCodeElement() { + return this.postalCode != null && !this.postalCode.isEmpty(); + } + + public boolean hasPostalCode() { + return this.postalCode != null && !this.postalCode.isEmpty(); + } + + /** + * @param value {@link #postalCode} (A postal code designating a region defined by the postal service.). This is the underlying object with id, value and extensions. The accessor "getPostalCode" gives direct access to the value + */ + public Address setPostalCodeElement(StringType value) { + this.postalCode = value; + return this; + } + + /** + * @return A postal code designating a region defined by the postal service. + */ + public String getPostalCode() { + return this.postalCode == null ? null : this.postalCode.getValue(); + } + + /** + * @param value A postal code designating a region defined by the postal service. + */ + public Address setPostalCode(String value) { + if (Utilities.noString(value)) + this.postalCode = null; + else { + if (this.postalCode == null) + this.postalCode = new StringType(); + this.postalCode.setValue(value); + } + return this; + } + + /** + * @return {@link #country} (Country - a nation as commonly understood or generally accepted.). This is the underlying object with id, value and extensions. The accessor "getCountry" gives direct access to the value + */ + public StringType getCountryElement() { + if (this.country == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Address.country"); + else if (Configuration.doAutoCreate()) + this.country = new StringType(); // bb + return this.country; + } + + public boolean hasCountryElement() { + return this.country != null && !this.country.isEmpty(); + } + + public boolean hasCountry() { + return this.country != null && !this.country.isEmpty(); + } + + /** + * @param value {@link #country} (Country - a nation as commonly understood or generally accepted.). This is the underlying object with id, value and extensions. The accessor "getCountry" gives direct access to the value + */ + public Address setCountryElement(StringType value) { + this.country = value; + return this; + } + + /** + * @return Country - a nation as commonly understood or generally accepted. + */ + public String getCountry() { + return this.country == null ? null : this.country.getValue(); + } + + /** + * @param value Country - a nation as commonly understood or generally accepted. + */ + public Address setCountry(String value) { + if (Utilities.noString(value)) + this.country = null; + else { + if (this.country == null) + this.country = new StringType(); + this.country.setValue(value); + } + return this; + } + + /** + * @return {@link #period} (Time period when address was/is in use.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Address.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (Time period when address was/is in use.) + */ + public Address setPeriod(Period value) { + this.period = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("use", "code", "The purpose of this address.", 0, java.lang.Integer.MAX_VALUE, use)); + childrenList.add(new Property("text", "string", "A full text representation of the address.", 0, java.lang.Integer.MAX_VALUE, text)); + childrenList.add(new Property("line", "string", "This component contains the house number, apartment number, street name, street direction, \nP.O. Box number, delivery hints, and similar address information.", 0, java.lang.Integer.MAX_VALUE, line)); + childrenList.add(new Property("city", "string", "The name of the city, town, village or other community or delivery center.", 0, java.lang.Integer.MAX_VALUE, city)); + childrenList.add(new Property("state", "string", "Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes).", 0, java.lang.Integer.MAX_VALUE, state)); + childrenList.add(new Property("postalCode", "string", "A postal code designating a region defined by the postal service.", 0, java.lang.Integer.MAX_VALUE, postalCode)); + childrenList.add(new Property("country", "string", "Country - a nation as commonly understood or generally accepted.", 0, java.lang.Integer.MAX_VALUE, country)); + childrenList.add(new Property("period", "Period", "Time period when address was/is in use.", 0, java.lang.Integer.MAX_VALUE, period)); + } + + public Address copy() { + Address dst = new Address(); + copyValues(dst); + dst.use = use == null ? null : use.copy(); + dst.text = text == null ? null : text.copy(); + if (line != null) { + dst.line = new ArrayList(); + for (StringType i : line) + dst.line.add(i.copy()); + }; + dst.city = city == null ? null : city.copy(); + dst.state = state == null ? null : state.copy(); + dst.postalCode = postalCode == null ? null : postalCode.copy(); + dst.country = country == null ? null : country.copy(); + dst.period = period == null ? null : period.copy(); + return dst; + } + + protected Address typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Address)) + return false; + Address o = (Address) other; + return compareDeep(use, o.use, true) && compareDeep(text, o.text, true) && compareDeep(line, o.line, true) + && compareDeep(city, o.city, true) && compareDeep(state, o.state, true) && compareDeep(postalCode, o.postalCode, true) + && compareDeep(country, o.country, true) && compareDeep(period, o.period, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Address)) + return false; + Address o = (Address) other; + return compareValues(use, o.use, true) && compareValues(text, o.text, true) && compareValues(line, o.line, true) + && compareValues(city, o.city, true) && compareValues(state, o.state, true) && compareValues(postalCode, o.postalCode, true) + && compareValues(country, o.country, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (use == null || use.isEmpty()) && (text == null || text.isEmpty()) + && (line == null || line.isEmpty()) && (city == null || city.isEmpty()) && (state == null || state.isEmpty()) + && (postalCode == null || postalCode.isEmpty()) && (country == null || country.isEmpty()) + && (period == null || period.isEmpty()); + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Age.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Age.class new file mode 100644 index 0000000000000000000000000000000000000000..daf4d0b4051a06f98c4d63e2a946657814b7a14a GIT binary patch literal 2964 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Alert$AlertStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Alert$AlertStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..0c32dbddb60e17e3e89bcf84395d71c5cfa6792c GIT binary patch literal 1773 zcmb7ETT>HB6#g2L%w!l42NZ9x;G&RZady2c2*en6vtrPIR%z|a5ZX98>4}{QYL)kY z;UDnLs^|k$Y1QsN`QVS*+S8K&!{SoKL(Zk=^f}-8&Pjj!=kuQc&Y)yq02v)W8JNH+ z9d;6Z_*us?ml!j>o2Qj0>tcI+HoQ7)* zi78jO!8AkXcEI;JsU~*T$D#e^r4t)7+YS+M>luZ+9#-iVlWj^Psc^P5MDTU9( zVH{zAhP;V6{7MW`5qFiF_zeXbtt&SC-<99XMZhIrnQ+Afm(rIeuB-FoTg?_ck5?Qo zD=UpEMQ=`rVPGq$Mbg!V>#cCfaOAdlB>X30I5O(tGOfVyn2CAZU|?hvv7qqYByUE; zEry9bjo8GG7&S47VTOx)x)~v#;a~*gwhz5q?X@P#Ft%Hn|GV7ch9ngnq+CpN+>I-EWK%2O$us3 z7@|Ko@SNleO7;@_@e2KTP3hiX2yer(adaBVWN(%#ooH7YX;(_7Gk>FR4gD(PHg+j| w5GN^20UK(EC(^{lfgQ1tb~-T@VjCwC6vi}uAZ?M=hbtJGJxs&Cf~!dW3;hze2mk;8 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Alert.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Alert.class new file mode 100644 index 0000000000000000000000000000000000000000..e9ef3f1b2216f4ed8e08a6cb2221b575f00c38ff GIT binary patch literal 11068 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 { - public AlertStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("active".equals(codeString)) - return AlertStatus.ACTIVE; - if ("inactive".equals(codeString)) - return AlertStatus.INACTIVE; - if ("entered in error".equals(codeString)) - return AlertStatus.ENTEREDINERROR; - throw new IllegalArgumentException("Unknown AlertStatus code '"+codeString+"'"); - } - public String toCode(AlertStatus code) throws IllegalArgumentException { - if (code == AlertStatus.ACTIVE) - return "active"; - if (code == AlertStatus.INACTIVE) - return "inactive"; - if (code == AlertStatus.ENTEREDINERROR) - return "entered in error"; - return "?"; - } - } - - /** - * Identifier assigned to the alert for external use (outside the FHIR environment). - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Business identifier", formalDefinition="Identifier assigned to the alert for external use (outside the FHIR environment)." ) - protected List identifier; - - /** - * Allows an alert to be divided into different categories like clinical, administrative etc. - */ - @Child(name="category", type={CodeableConcept.class}, order=0, min=0, max=1) - @Description(shortDefinition="Clinical, administrative, etc.", formalDefinition="Allows an alert to be divided into different categories like clinical, administrative etc." ) - protected CodeableConcept category; - - /** - * Supports basic workflow. - */ - @Child(name="status", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="active | inactive | entered in error", formalDefinition="Supports basic workflow." ) - protected Enumeration status; - - /** - * The person who this alert concerns. - */ - @Child(name="subject", type={Patient.class}, order=2, min=1, max=1) - @Description(shortDefinition="Who is alert about?", formalDefinition="The person who this alert concerns." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (The person who this alert concerns.) - */ - protected Patient subjectTarget; - - /** - * The person or device that created the alert. - */ - @Child(name="author", type={Practitioner.class, Patient.class, Device.class}, order=3, min=0, max=1) - @Description(shortDefinition="Alert creator", formalDefinition="The person or device that created the alert." ) - protected Reference author; - - /** - * The actual object that is the target of the reference (The person or device that created the alert.) - */ - protected Resource authorTarget; - - /** - * The textual component of the alert to display to the user. - */ - @Child(name="note", type={StringType.class}, order=4, min=1, max=1) - @Description(shortDefinition="Text of alert", formalDefinition="The textual component of the alert to display to the user." ) - protected StringType note; - - private static final long serialVersionUID = -655685828L; - - public Alert() { - super(); - } - - public Alert(Enumeration status, Reference subject, StringType note) { - super(); - this.status = status; - this.subject = subject; - this.note = note; - } - - /** - * @return {@link #identifier} (Identifier assigned to the alert for external use (outside the FHIR environment).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Identifier assigned to the alert for external use (outside the FHIR environment).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #category} (Allows an alert to be divided into different categories like clinical, administrative etc.) - */ - public CodeableConcept getCategory() { - if (this.category == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Alert.category"); - else if (Configuration.doAutoCreate()) - this.category = new CodeableConcept(); - return this.category; - } - - public boolean hasCategory() { - return this.category != null && !this.category.isEmpty(); - } - - /** - * @param value {@link #category} (Allows an alert to be divided into different categories like clinical, administrative etc.) - */ - public Alert setCategory(CodeableConcept value) { - this.category = value; - return this; - } - - /** - * @return {@link #status} (Supports basic workflow.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Alert.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (Supports basic workflow.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Alert setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return Supports basic workflow. - */ - public AlertStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value Supports basic workflow. - */ - public Alert setStatus(AlertStatus value) { - if (this.status == null) - this.status = new Enumeration(AlertStatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #subject} (The person who this alert concerns.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Alert.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (The person who this alert concerns.) - */ - public Alert setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person who this alert concerns.) - */ - public Patient getSubjectTarget() { - if (this.subjectTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Alert.subject"); - else if (Configuration.doAutoCreate()) - this.subjectTarget = new Patient(); - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person who this alert concerns.) - */ - public Alert setSubjectTarget(Patient value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #author} (The person or device that created the alert.) - */ - public Reference getAuthor() { - if (this.author == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Alert.author"); - else if (Configuration.doAutoCreate()) - this.author = new Reference(); - return this.author; - } - - public boolean hasAuthor() { - return this.author != null && !this.author.isEmpty(); - } - - /** - * @param value {@link #author} (The person or device that created the alert.) - */ - public Alert setAuthor(Reference value) { - this.author = value; - return this; - } - - /** - * @return {@link #author} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person or device that created the alert.) - */ - public Resource getAuthorTarget() { - return this.authorTarget; - } - - /** - * @param value {@link #author} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person or device that created the alert.) - */ - public Alert setAuthorTarget(Resource value) { - this.authorTarget = value; - return this; - } - - /** - * @return {@link #note} (The textual component of the alert to display to the user.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value - */ - public StringType getNoteElement() { - if (this.note == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Alert.note"); - else if (Configuration.doAutoCreate()) - this.note = new StringType(); - return this.note; - } - - public boolean hasNoteElement() { - return this.note != null && !this.note.isEmpty(); - } - - public boolean hasNote() { - return this.note != null && !this.note.isEmpty(); - } - - /** - * @param value {@link #note} (The textual component of the alert to display to the user.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value - */ - public Alert setNoteElement(StringType value) { - this.note = value; - return this; - } - - /** - * @return The textual component of the alert to display to the user. - */ - public String getNote() { - return this.note == null ? null : this.note.getValue(); - } - - /** - * @param value The textual component of the alert to display to the user. - */ - public Alert setNote(String value) { - if (this.note == null) - this.note = new StringType(); - this.note.setValue(value); - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "Identifier assigned to the alert for external use (outside the FHIR environment).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("category", "CodeableConcept", "Allows an alert to be divided into different categories like clinical, administrative etc.", 0, java.lang.Integer.MAX_VALUE, category)); - childrenList.add(new Property("status", "code", "Supports basic workflow.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("subject", "Reference(Patient)", "The person who this alert concerns.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("author", "Reference(Practitioner|Patient|Device)", "The person or device that created the alert.", 0, java.lang.Integer.MAX_VALUE, author)); - childrenList.add(new Property("note", "string", "The textual component of the alert to display to the user.", 0, java.lang.Integer.MAX_VALUE, note)); - } - - public Alert copy() { - Alert dst = new Alert(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.category = category == null ? null : category.copy(); - dst.status = status == null ? null : status.copy(); - dst.subject = subject == null ? null : subject.copy(); - dst.author = author == null ? null : author.copy(); - dst.note = note == null ? null : note.copy(); - return dst; - } - - protected Alert typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (category == null || category.isEmpty()) - && (status == null || status.isEmpty()) && (subject == null || subject.isEmpty()) && (author == null || author.isEmpty()) - && (note == null || note.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Alert; - } - - @SearchParamDefinition(name="patient", path="Alert.subject", description="The identity of a subject to list alerts for", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="subject", path="Alert.subject", description="The identity of a subject to list alerts for", type="reference" ) - public static final String SP_SUBJECT = "subject"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Prospective warnings of potential issues when providing care to the patient. + */ +@ResourceDef(name="Alert", profile="http://hl7.org/fhir/Profile/Alert") +public class Alert extends DomainResource { + + public enum AlertStatus { + /** + * A current alert that should be displayed to a user. A system may use the category to determine which roles should view the alert. + */ + ACTIVE, + /** + * The alert does not need to be displayed any more. + */ + INACTIVE, + /** + * The alert was added in error, and should no longer be displayed. + */ + ENTEREDINERROR, + /** + * added to help the parsers + */ + NULL; + public static AlertStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("active".equals(codeString)) + return ACTIVE; + if ("inactive".equals(codeString)) + return INACTIVE; + if ("entered-in-error".equals(codeString)) + return ENTEREDINERROR; + throw new Exception("Unknown AlertStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case ACTIVE: return "active"; + case INACTIVE: return "inactive"; + case ENTEREDINERROR: return "entered-in-error"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case ACTIVE: return ""; + case INACTIVE: return ""; + case ENTEREDINERROR: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case ACTIVE: return "A current alert that should be displayed to a user. A system may use the category to determine which roles should view the alert."; + case INACTIVE: return "The alert does not need to be displayed any more."; + case ENTEREDINERROR: return "The alert was added in error, and should no longer be displayed."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case ACTIVE: return "active"; + case INACTIVE: return "inactive"; + case ENTEREDINERROR: return "entered-in-error"; + default: return "?"; + } + } + } + + public static class AlertStatusEnumFactory implements EnumFactory { + public AlertStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("active".equals(codeString)) + return AlertStatus.ACTIVE; + if ("inactive".equals(codeString)) + return AlertStatus.INACTIVE; + if ("entered-in-error".equals(codeString)) + return AlertStatus.ENTEREDINERROR; + throw new IllegalArgumentException("Unknown AlertStatus code '"+codeString+"'"); + } + public String toCode(AlertStatus code) { + if (code == AlertStatus.ACTIVE) + return "active"; + if (code == AlertStatus.INACTIVE) + return "inactive"; + if (code == AlertStatus.ENTEREDINERROR) + return "entered-in-error"; + return "?"; + } + } + + /** + * Identifier assigned to the alert for external use (outside the FHIR environment). + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Business identifier", formalDefinition="Identifier assigned to the alert for external use (outside the FHIR environment)." ) + protected List identifier; + + /** + * Allows an alert to be divided into different categories like clinical, administrative etc. + */ + @Child(name="category", type={CodeableConcept.class}, order=0, min=0, max=1) + @Description(shortDefinition="Clinical, administrative, etc.", formalDefinition="Allows an alert to be divided into different categories like clinical, administrative etc." ) + protected CodeableConcept category; + + /** + * Supports basic workflow. + */ + @Child(name="status", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="active | inactive | entered-in-error", formalDefinition="Supports basic workflow." ) + protected Enumeration status; + + /** + * The person who this alert concerns. + */ + @Child(name="subject", type={Patient.class}, order=2, min=1, max=1) + @Description(shortDefinition="Who is alert about?", formalDefinition="The person who this alert concerns." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (The person who this alert concerns.) + */ + protected Patient subjectTarget; + + /** + * The person or device that created the alert. + */ + @Child(name="author", type={Practitioner.class, Patient.class, Device.class}, order=3, min=0, max=1) + @Description(shortDefinition="Alert creator", formalDefinition="The person or device that created the alert." ) + protected Reference author; + + /** + * The actual object that is the target of the reference (The person or device that created the alert.) + */ + protected Resource authorTarget; + + /** + * The textual component of the alert to display to the user. + */ + @Child(name="note", type={StringType.class}, order=4, min=1, max=1) + @Description(shortDefinition="Text of alert", formalDefinition="The textual component of the alert to display to the user." ) + protected StringType note; + + private static final long serialVersionUID = -655685828L; + + public Alert() { + super(); + } + + public Alert(Enumeration status, Reference subject, StringType note) { + super(); + this.status = status; + this.subject = subject; + this.note = note; + } + + /** + * @return {@link #identifier} (Identifier assigned to the alert for external use (outside the FHIR environment).) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Identifier assigned to the alert for external use (outside the FHIR environment).) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #category} (Allows an alert to be divided into different categories like clinical, administrative etc.) + */ + public CodeableConcept getCategory() { + if (this.category == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Alert.category"); + else if (Configuration.doAutoCreate()) + this.category = new CodeableConcept(); // cc + return this.category; + } + + public boolean hasCategory() { + return this.category != null && !this.category.isEmpty(); + } + + /** + * @param value {@link #category} (Allows an alert to be divided into different categories like clinical, administrative etc.) + */ + public Alert setCategory(CodeableConcept value) { + this.category = value; + return this; + } + + /** + * @return {@link #status} (Supports basic workflow.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Alert.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new AlertStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (Supports basic workflow.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Alert setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return Supports basic workflow. + */ + public AlertStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value Supports basic workflow. + */ + public Alert setStatus(AlertStatus value) { + if (this.status == null) + this.status = new Enumeration(new AlertStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #subject} (The person who this alert concerns.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Alert.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (The person who this alert concerns.) + */ + public Alert setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person who this alert concerns.) + */ + public Patient getSubjectTarget() { + if (this.subjectTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Alert.subject"); + else if (Configuration.doAutoCreate()) + this.subjectTarget = new Patient(); // aa + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person who this alert concerns.) + */ + public Alert setSubjectTarget(Patient value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #author} (The person or device that created the alert.) + */ + public Reference getAuthor() { + if (this.author == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Alert.author"); + else if (Configuration.doAutoCreate()) + this.author = new Reference(); // cc + return this.author; + } + + public boolean hasAuthor() { + return this.author != null && !this.author.isEmpty(); + } + + /** + * @param value {@link #author} (The person or device that created the alert.) + */ + public Alert setAuthor(Reference value) { + this.author = value; + return this; + } + + /** + * @return {@link #author} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person or device that created the alert.) + */ + public Resource getAuthorTarget() { + return this.authorTarget; + } + + /** + * @param value {@link #author} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person or device that created the alert.) + */ + public Alert setAuthorTarget(Resource value) { + this.authorTarget = value; + return this; + } + + /** + * @return {@link #note} (The textual component of the alert to display to the user.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value + */ + public StringType getNoteElement() { + if (this.note == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Alert.note"); + else if (Configuration.doAutoCreate()) + this.note = new StringType(); // bb + return this.note; + } + + public boolean hasNoteElement() { + return this.note != null && !this.note.isEmpty(); + } + + public boolean hasNote() { + return this.note != null && !this.note.isEmpty(); + } + + /** + * @param value {@link #note} (The textual component of the alert to display to the user.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value + */ + public Alert setNoteElement(StringType value) { + this.note = value; + return this; + } + + /** + * @return The textual component of the alert to display to the user. + */ + public String getNote() { + return this.note == null ? null : this.note.getValue(); + } + + /** + * @param value The textual component of the alert to display to the user. + */ + public Alert setNote(String value) { + if (this.note == null) + this.note = new StringType(); + this.note.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Identifier assigned to the alert for external use (outside the FHIR environment).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("category", "CodeableConcept", "Allows an alert to be divided into different categories like clinical, administrative etc.", 0, java.lang.Integer.MAX_VALUE, category)); + childrenList.add(new Property("status", "code", "Supports basic workflow.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("subject", "Reference(Patient)", "The person who this alert concerns.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("author", "Reference(Practitioner|Patient|Device)", "The person or device that created the alert.", 0, java.lang.Integer.MAX_VALUE, author)); + childrenList.add(new Property("note", "string", "The textual component of the alert to display to the user.", 0, java.lang.Integer.MAX_VALUE, note)); + } + + public Alert copy() { + Alert dst = new Alert(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.category = category == null ? null : category.copy(); + dst.status = status == null ? null : status.copy(); + dst.subject = subject == null ? null : subject.copy(); + dst.author = author == null ? null : author.copy(); + dst.note = note == null ? null : note.copy(); + return dst; + } + + protected Alert typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Alert)) + return false; + Alert o = (Alert) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(category, o.category, true) && compareDeep(status, o.status, true) + && compareDeep(subject, o.subject, true) && compareDeep(author, o.author, true) && compareDeep(note, o.note, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Alert)) + return false; + Alert o = (Alert) other; + return compareValues(status, o.status, true) && compareValues(note, o.note, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (category == null || category.isEmpty()) + && (status == null || status.isEmpty()) && (subject == null || subject.isEmpty()) && (author == null || author.isEmpty()) + && (note == null || note.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Alert; + } + + @SearchParamDefinition(name="patient", path="Alert.subject", description="The identity of a subject to list alerts for", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="subject", path="Alert.subject", description="The identity of a subject to list alerts for", type="reference" ) + public static final String SP_SUBJECT = "subject"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c29f2955bdc1b1048835843490d72910dc31b864 GIT binary patch literal 3681 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 h9yo)TYv(qPR9mL;3QLRckKzUma0F4 z4?6n64~`eSOeoqa6~*g}sK3Y=$LDNHo6-(5FdaA9J?B09p7(k0XYc=e=LZ1KG zaXNxC7z`sG#>)}x!7JjCka0GGVT{OlRWO~CabAp?j8QR;g)tt+g$SDPnv4lCUX*c3 zjIT$~h&SqR8E;0&c}0dUBPk;#BQ3*_k&%&=u~)pz$=D}jzl=^H)C}XQgqp<21qnO) zEX#1SGefrLaH88Oqu(_>Go@RmHzPqAvTeidxAbDsC`uSkIBqtcvyQ|wIn#}scF_}C z;&~@+Sn<`eVyl;`#CJ;w4i23eB+S@wpQa6H+R(|w09S{{5(x?6*mz%JY(SGRa%sJR zYo~OpBuqNj*1qn-gZ=b}gvNwv8^fi1(r`!hq{Wr6k2;c(kZem_)u;5hrQ6xK=DDVw z?QUOpBYRBS^m-+1UIT5YeOyAFW@c^OE4fszrcJEK8P~~I^sm=EJvDh&FDz;w8MvM@ z3ZCiM^jodxRJb;_wXZgXlCy@V%@jQ&FQK0EQ$|K8!_5*Rf;Ni_rC)AZKQC3igS)QnLN(E1FCp1^dNX^K$Mi#f0W8uU0bZWXZJBhAW_s zO4vVUPukA3t**AZswmYIb64G~zy+f$apIv@NGOFdrC=J@70lo*zB(>R7|j`K!SM{+ zGj&V#1IgB*n)!mB@>D0I>T0GW(o1y>t}yzlSyYXpXXbU!NUM5LrPZoy7AKFX#`S_z z6uh3J7E8%WZxQ?@+cGB&Yeu|qjbh32RMVzt%gm5DN72-P6{I>Y|5@Eui+<*P zPTuHJPgfMGM)PQfR*jfqj+=CyP?3<9?wL~tU1NK$-f7xtHb`MimxO=T!384PkMu!a zpZPxw7cfcR%q8RL=48>aO5WPm50BZRvx&e|l9VogR7OmjUe0GR?Tq6x2Si4&;!I13 zp*!US)8RbRfgNN}xTP|0UdBlqp5f-%S^Wx9&?yR{VLA0hF3Ve)u ze8SJePq7uBp#?Y5iqFxGFKED*H03LFlPio+y`(4#dPoTM8hO8jUOt7L=|#sJn8g<2 zZSA_rMP9AEg(<=ZExdQ~-W9E*_SCr?-6p&j@ZG%`AlQJR#!ta`fqPv}Fw&e|!s$p_!6Tw+1+C*p;4cbKQELyeOkd~9b66<%FcpqRp lKBQ(JvB+*PODg5ik5kkkfB~i<5ale0A+)i$FLOkb{2#>@bj|<( literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceCriticalityEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceCriticalityEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..001553b7cea2ad7e5957cb3a7d538935f6d5b08d GIT binary patch literal 2019 zcmb_d+j7%Z6kR92NEQkNB{a}BA)$fz0&xix+UDvQhZs!K)?5aL7ex_{hth|44wE?#!0ab%Qz+0(-JNySM z1Z7w2CW4(Y4EX!a@oJg64G{3JuuWRF0_$%w#EMpl>t5BRJNVX@XKwzsX?PJ9L->#Z5^^f0ah`N$J1Z(?kSDP% zTBSu57lf}?d0j6Ri{z%_qBuLU#YUbaSJLf_TdI~#?rq*KRo)6}usBt<>;=WZ{AhNVw{7B~bh78X@2D%j;{7!J}GKSC=_4B3xp*F!4}4hVc|<@C*}pjx1hKmw=3DyUJ8m#Sz+tsR4z4 zG!JA&zc(qbXrezw0KZ363)je#gclWFOn7ol(`ppdfY3{y7T_h>SCs5E_Tw*f;SHsG zi(dR)FB?HfiN!iHROx85Qh&2jESdTdoonb48Mm=Z;XOD;VFFlhGd!9kE)E1@eeHxW dSjQG85(LI14%4cU*NHLoP9CDm9>Wx3?*KYRB`g2{ literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceEventComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceEventComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..88f191842eafd1b2d5e853a197a092f99583a367 GIT binary patch literal 15419 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..ded8ea497eb901af9db3e1eb3c08e89dec3b6bd2 GIT binary patch literal 2066 zcmb_dTXWk~5dKc$=oW>hBB2e?Hf=)_$25i%S|A~*>)OTOBw#0H$_x*RbK%)GDBy88D@CkM=|WNTt`7op5hsw-96f~yWgH~rGNhY?RNm@@TP$= zoYgR6Ad6=-JgZ|Avl`Ax`J9I5r97|Uf|M_)cu~bm28QI3IVtBgye#E{0TYWFE~>a> z;3)EPxvZj~;);q_7?gQOIKcu#|5W-aLn`lWaE3!=NATsavCjQfd)=iSZPWJ}(Zi!T z*X4fwPDunFDYmHbYG4Opi@_`j!Tr2zw_2Rcx2MWC>|1u$wM9K!4SYw`=h9`*uV=5j z7qXkz9Y5=cRv;r}8puVQgl)^G4yFt;xh8KP*{0?)rQ zzprDmr+c?~ff{X8z0j}mq9dtrBzby9!Z7g!o@9WEl8IOG8pB{HYM$71{084JQN|L% zi)}2+4bA5*&%GrbR-~=^d@~HB`MNYu?KG%Fw5!{0&aa0JE`r`&Q$;&YQDZNKj=RBq zhRHQ?Q+V%+@np>ri^gljyYWdAZ=k}!NU35~B3UDAQ3cJ!l>=griKlSJ#0i{Ys2ott z*o`xs-V5X|ui>3$MVz88?N`lShoer@obh);+ogdUjn6@suIaak1#8RsmE~fovQ)Ut zP&zPT5}9IgwMwD7QobrvsFgx-ZB=TD-E4BP!EiQS+e3zL7j1~}THrmvH!}6mao&aY zK}2H9%znL0UJy>w3waC-kJEd9fF#Wjt;fhZMv}$}1Jm1JzmURkoK~f?d7D;Z68bu> ze<4L0(9HY|)9TA?q5mgXabtkBtyHwH{)&ONrSuH7ZD~D2Z(Bys7;N8%dF?)iu5IHH z>(Ca4>Cv!tn3gSA+j#U3%GuYcYL>n;z)z z$xn8Z>(iM(F}j7vWawSjK<+0fM05?uyY9*~_322$H-@mE8Y7FGMy4a5CLRD5?TjLa N@rz@`iX4j2{{sk4BGv!^ literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceType.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$AllergyIntoleranceType.class new file mode 100644 index 0000000000000000000000000000000000000000..8c1ea278bf87e4abefa3d53ef41cac525f36c740 GIT binary patch literal 2894 zcmb_e-Ez}L6#mwBEZHa|h<}=b2!_Og#8671O$r1EVCp!uCTUIRk0P&afxI%34CDd& z5PgQ;xM3z?%CzOG7kz|20vEmLMW??^&&rOIjC}(W+0yPgI(xqJw`cXstM7jVa25{} zh~aV))3~A_t>9V`M=>KG*Hzp|;wG{xZb_k!ROIA1t01pnE{UDEt>R-jexjlv$2&>% zV?Kcee3~T5&r}pu+*Prt;+~4nRSZk^7b;Gu7?HZZRPYr;JUcr(pPymaH|;pwt1M?l z;L^kt7QeGx=L}j_2<}~VOyB1|!;PHlRWeoQe5PEry^JmVK+0xnZizdYZY8O1mef1R zkjT&F*U@A7`CN`cNi9t0=4T2FHy5`JC;rHE8q)Mzqv`F_8oNpkGYsTx!SjvU68G+y zOAc|A5N@u_usE8#Z$2_JjwvdcLg3k=GMU~!x29}i2Nx-GJz%ow1qyJ%t_U+|cw|*{ zRC3g^=hj+=_ZI@wdN6C&+h!+co>;sd*sh>R#RIn`wP!Tl?E`79@Sw2l2fW76PxEWM zERCVX3`t4be%&#b32@4C+GZ9vDVhd!sfwp(o=v zxUGu0(y*Np_oV)_49Dli1K~avMz@c0R~Z%+r7@zR3Y&q^N=iR#rb!>(XkotM60ijq+!Fwf`0r=&lkoBIy~=)rB_mXykz^_^tpuWEFVAM~f1e z@1(TjY*+>wMr49_ZlqGyJ42u4xPl6F>!zApx=%h*5l_5cH8Pyryz#>ZJ-KO*bsElA zGYDvKgVPeCV&xATrb9b_?`EBC)6#cIz^vD~C^3w07U+SorD_RG4cv8*ExOm2Qdc_t zdXA@PpWRLs9@~LcrT&$o)hRlUQt~`Xt)EA!@I2~q`1D}4&bi29mYTQgQQ4bL*f6t~ z&(Jw}l+Nnd<%4n?12od+4M)l`FnCBd6_QBMZwx2FaEhp58s(K-0b51n1)@!&D0uXY zhwomJ`~)&>`D2KL+#S0S8+(Sn7l?H)h{zU0f)d~eqV%J7Gj?)l4e{@~w7)}~2z_HD z@GhaW7JW_LNV~FQKSR@%u~n$wppP~6L~E+7AlcM+bO^2a9R0=T*jZe|fIhg2UG!>~ zuG3=`yVtPirw~Lsb(k6-@F#tO{DlGhjRW`xL-?0M^dE)i70%JyIAZ-w)9@b6r6K)v zpT`AyN{{ZfLomLAy#%vw;#*?UHB5JeZfW>XdwxVukey9^zYJ0&jH*s5!5C63f)N(Q z7>k9VeTb$aGPv)*A(GP6>EDH<5>kSYl7zHlE7AvVh;*Q-AMAlNKuCjxw2P4Rtw@t^ zh;*o_ztsb2A0h20qyvO>a5IvMDJrE_p12G&UDMAIE9yhhHN5>4$&ff43kfYGj`W3u z5&wbYqEuOhVr&Ikq1d+qqwo}Lqh`b0;WsLX-*E_kQ1^UE#oeml4{HY6wFZnB0lOL}l+kSpI

kXQmueWK)a2XN&A`eAe}{sdZ;CwYF}1DO+s$@_Z`CVVzXaac6K##u_Hn zEc#|v>vm@dQ)sM7W~wU}swHv>$O#vzD@^Gwx*zIZOD5P2_M# zpmNP73bwOqd4#T4VpF*9MJ$+*6h|z>Vv6V%5(Qrp`qaI@-{# zqZzG)7w6)!qK$;Mlj$A9)EyP6EE7V{S(%)6xLjfGob|R~I(&mJS4w+df$`T2NYBl^ zn&%$QoRiF0_wx($2VNs)K5vOtLSJS46Yk70Nw88?-#y^a(0k%7JjUq2BR_flXVoj% z0`7SOzr}<`ewf2NviR9v<<)f_`5qvg*ady%3E>*sh}@)BwyYFXm7t#x;u)}%{0-fx zO75WgGmOebn2JWIysvyixM)NU7fNvt>hd0<%e&Bw3p>#Hmu}Rs*}=tK)c$18Ri)VN z{QQGrsG&Aoqjt1V2fC;eaq7Yy>c#-|;0B`=gllxtb;NiP;#5`sSlw(TvoyPt={6-f zl`n`Gp(4)|Ig1pHx+4E7$7|%0fD%wB35{-|p8C*0{iPVpSc}$;v)hh+w{81wqlx4% z)bGHMj*bJPi7HGFyBi7Y(?(X=qjbujh@oj%e?^%K3$I?w2WQl9u8p? F(SN>w@YVnT literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$ReactionEventCertainty.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$ReactionEventCertainty.class new file mode 100644 index 0000000000000000000000000000000000000000..fb70074937bbcb992073771da814b9c4cc7c27ed GIT binary patch literal 3088 zcmcImS$Eq+6#mAsE!kBTld?NIbVld)e$w^-DaaGgOO8BC`x zCevAltyj2ic&1|~r@8G7aM#mK+p91rDck1mfTfp8yu@%W?YM5*iH z;r!Uf0Z!{yS@>|FGrn=F1_#JGe|z*MLdIM;Rg+vta99*(IwQIz^A1cb&z`abRtRVv*cuSambA z%N9!7<;lJcibOwgDw=W1uEEcmA_3c0v$03yK|zn$fe8f@uq2S_$qnJOg2S*C9K|sP zNN^NP;Rd;0wk>mlTNMQz=%Sb|Nc)5oF&sN@x|2MoV87^SU82fjCdiki-Wq{UmrX0j zT>*ETp?$=ju$>uOTYI-@260sDP~d`+%IL*IznEH6+!tXcnL5mgeL&KZAyDX~sfz(7dAV(SvJly?SUfdPy_%a*5}(@rplW=BS{Ud6RlF zdm(%jXq(B9Ro}3AYLix78Ge(B7@jK3?ajE zY-0S%T{<*=of{tQik@eqH^Y(TmBcUoy~{T3Vg*}i1_8A!_0*Ke6@H_vTg198%h#-% z7Qadg`qUJ+a}3?f71qF5!FvLeJ!b)A#o7x~smvXCHpgQJ87{{%Gp1)0sUXH^c8pHC zm^kTT3nyL7Kj~ttYs*tkI)=blicSN^&6&1t`4u>I@*thTd+Eay!K6q>5{(VV@Hmh3#9Q`I@N(on0qnI3c4GLNl~ zd_>{lUP1-?9F6Q2n%NiF&b~w&`wH#sYsA?%IK;liQT82rNmoLsktvFTJ`#j^&2+zp zetHT&bM?R+n8h~2+urjtb<)*Nw{S(oppEWbbnjLpWIfqjRdpq5B1%=Y_Fskg3nBhWh`$kHl@RYdfp~JAh&!w5^HsHN z4Ih6e#5qEoC&YV%_{S57r`C!1LREdSs_t3?@c|(|B*aIA_?Qs?T7f9zG!d|t#}6pC z;u^k>U{=){=JC>9M15g*&=(Y6*c0-FCSQn!eW6`?K$9AXoSAHJ7D^@?nnhD48=ggb z<}N6*f(wFpwOoHh#QPXK*(YS#r#MVotpT;|Fn}|p6+jYkYE^m*B85)c+}Ef@i~Jv1 CJ_IoU literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$ReactionEventCertaintyEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$ReactionEventCertaintyEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..385896b59dfa92591c81b0a7acdc7aae38aa439c GIT binary patch literal 1964 zcmb_d-BS}+6#pGavL7yr3yM~uV4;wtlB%uRf*_{BMgv%=ouTc^vRvZI<}O_}w!HgK z^dIP3XHp+vMrX87PHVqs`sp9zcy1CPG%3>u9&*n)ch5cN{LcNIn`bW`J_c|B^Co(b z*71gkvl!KpG0=rKb(~Z3yp9V>zNO)94Hr!uQm&VjysYCLCEqn+Vob-lh6xkLF{zfT z8m2U4HM~bijC<0HCJ5~#$&U!JY_Kc{M+%-4v*pr~2tRa|eBRMl!k|?9czj+sZsY|r zcTdPDE5gX}WVAuB@=}U0>pSb~Vx92GNa3z?&&l|XEM^v>(38cnWFZKPnLGZa%*q`v z%y@D=a-=IVB~I&SrhH$7#f`j-0#?+A!PdFP2ptQNsUQWFc!R`bfR*|?Y`d-XKv}PaHFw(fv6DE zd@Dh?F}|h4+!? z>)5t#D9dmIx#EQ-v25X{+Bmb@iaax*==f7%v0P$u?c6D6-*u|B@LJjPmqkbzx-C~_ z@VV@7&6R$axz#^xp@10zu`-J}Rr4*jCN+FO$Q=krEWCz63%%$k+&Ykm4Yx`dXbo?V zPv>rvYOEm)?^nrx9jOmK)mCu+aZnY z-0XCIekP|LDrap?$YsLW#!^~L(;jv(hxI7fhSNRLaz6Kf+m6VO;pl#?YaRv+@Y~u0 z!U=x5<1BeBcs<2dFH4>f#8X?KZ&)Fm<~5-<=_#*F8njhizebETz)e4eWw)g_(f%du zMk7uYJ67A*9w1(^6FY`hvGpCps62wX_y~sVPACJytb!}bwgHqp6-qfaJSAiHvbAewWVaF=0X-Z2d%}|w)k^5&_XG4hH2MQ3{fVRW7rN-reDJ{smv>!Dt?n}kclyvSCYjl@&)H{x`##@1`us}(FXDqb zh!~IJ8eWx!g-V$Jfne)3f|l1|{t{rZ;LErIJ}<7|*y~A-QN@O6C_WFKIa?-*9qfa>-pV z?c|7Un_gix?f5Re@D1%iwF3PN!xG=N!|A> zr!bH>G^YkF$MT05S`R=;C*~OHbgSSPe%T|VLfw2t&U@}s)$V%TH*$9-jAG5|XzE_h zEbqE||W)TJp^$hI)D*GxOXSI?NE|yj3dN1{IJzn6qnUUf-c8 z<&>8O4<`^qR8CRdEqgh0+~VOsy1x$lc@`A(^R`PWxC2`PSw40c)vVw=90eC~i2)K^ z1x4JYYF@JJ1qEH`p&;=7@C@Hn(98Kqi8mN=r#aWOT_Rg4ATPF8tA%s5ObShpBVA_D zW}Q2ZyW+$T?67!_0OMT>JWw(jz4#d7C(9C+6|CT%f>pdvTUQv`M~yOdcbpp>FD|Z@ zEZ24mR?e{FW|2sQj|(;VQxJj^ zN17n^e1`Bti2Dx+yje+*1Dr&Ne$==TVj3zB5X(M5V|D}2sOmbJXsbzWrpG#3HqiQ2 zfXF@UBvi1UP|towjQxUR>{qn0-_XH+M}qxxCWPf3RWF>^_nW88dB!-(8qx%&M z(UbeRPz%hNH5?_pWBs4dB3&JHb60o_+UPz>ce`3g)|1T@^*E275QMuGVG{it8v6%b z>|g57N9be!1>g~gnjrAdUwKMIsiIc@dl7{YG(kj{5Jry>L7yP)K^%Tc#1j?u*^1h> z-$&sHA=2a)>It!d5Mz4~N1hV#xr+LHMLl@{ViO@Y6JiS?wi4peU5GNSQUO-;_#x$% zUo#INX4QCT125c1G+^4rfKdYGR5)N70!E7jOo#LZ9STu#>RE9Oik=Oxp+V0^*3hBf x2iq?GYOcSd!uuX4*bkKNA90>qEre=2jAAUPixd(>RjLpXX>?O_-y(`e`F|Fnnvwtj literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$ReactionEventSeverityEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance$ReactionEventSeverityEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..bf034c63414e8ea16405f332a73c8d2a8b6f20db GIT binary patch literal 1945 zcmb_d-%}G;6#nid+1;#*;sR0?Vn7g*2upM3C->h#I zvW^u7ZNZaXw8+pmlYYVwTMo7a!-GYn)Qq+gZo~h;;`b&{pezoRqx63p0zm~24$plb!hTvR);0U4Z}NcF=}H$L2|fM9Hg2H>!u!>(?D|);C{@ax{M|4i#dRMiPX( z3&%Qsc7qqG#bzm}hh?$qsqv3=ADvSeES$#$2I$CJSj9KQpsMF@S$K#7kw(ombR%Km zTV-oCMHaHYQ`W>`6ACo>itFdXO1(;)Iv6G;K6Gj|??Ij7i;x=oqkJWUUu3E$M^a@< zotm~##2N!51QtOc~T8S*+P1kpbkp`5rA7I%$yNA9vuse-7YuK^YzWzJn z4O=@f^oDI57>UMvm`~s1)YE;6)W3(*^y##HhL$}H?BncTl!iA8$C9QeE&DIEA6hX*8 zH}Ab2KmN)6KO>?;w7LLYEVdTXfVh``?&F{PePUaHykhGZ@l)}@81XalApdOliH8Cd z5Igusjy=rKj|9Ze#iKs4(=UDzpmE|cZa?l5PXuTmv6X)?VIT3NPdvrXr+LmV{o+?X z@l1gBV~G944(@!`FMiF>-}uCH0Xjfz^^50yVpo7>G0-dp^nzc!=o2sb#LEGy;Qn&) z3jbh@a$e(Ae*Tuxyyh3L`@|aonk%;Y#P7K4_kQuFPrMbN!@28i?s~^B{@@eu2Ixrc zdXKyQ=of$D=b!!JFFx_t05$VE&Adc2FY&j4_`CQAH{?41^of53XaNr|V8DyTzkT9A ze!9Ug{_Cfo6r8_%_wE3FLA>v$JN)AR{B#euKJe3KzxdEk_xtGqzxc>c+x@h|FFy9u zqke)cKk?I3etOzZ&-!VDpPu*AE1%#^*QZecBxCsj zO+Y`I23czbkgeu{>@+XLqUoSn^MOpw&v1pHRSWRj82$-zvxwh{nTZ{&{2hhbSZ$n7 z8}HLXf=E!XB_59^8+#+ER5T?h+|b(_O?IzqiKi2IiNrgj&1<6ZbYr5gKM}`^Pn!U! zwrHd?9ZSUJSbKC$G#N{;YmN`}9fSTva-C1xN6FqL#NrMNlLSq2 z2NN_am(0dUI@*n;EmR0985#~myO$HOmc@2RGK@`2qDBeBfWM}2%44`RM3IB zWL+5V)0a(m0r`A=!*8%v}6#^I}(VdwhdsNzUb0eDz>sW+7OQ? zKq%}0mQ#}#Q6vjm)7TU1?E*GWJkke>JZT6W0?j+$LWm%5BH0y97GN9h7F5s|ix

Dg) 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�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 V_F;Hli*^N`*P(q7p4ZQx`u`0Ts2~6U literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance.java similarity index 91% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance.java index 310984eda45..4500a959dbb 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AllergyIntolerance.java @@ -1,1778 +1,1784 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance. - */ -@ResourceDef(name="AllergyIntolerance", profile="http://hl7.org/fhir/Profile/AllergyIntolerance") -public class AllergyIntolerance extends DomainResource { - - public enum AllergyIntoleranceStatus implements FhirEnum { - /** - * A low level of certainty about the propensity for a reaction to the identified Substance. - */ - UNCONFIRMED, - /** - * A high level of certainty about the propensity for a reaction to the identified Substance, which may include clinical evidence by testing or rechallenge. - */ - CONFIRMED, - /** - * A reaction to the identified Substance has been clinically reassessed by testing or rechallenge and considered to be resolved. - */ - RESOLVED, - /** - * A propensity for a reaction to the identified Substance has been disproven with a high level of clinical certainty, which may include testing or rechallenge, and is refuted. - */ - REFUTED, - /** - * added to help the parsers - */ - NULL; - - public static final AllergyIntoleranceStatusEnumFactory ENUM_FACTORY = new AllergyIntoleranceStatusEnumFactory(); - - public static AllergyIntoleranceStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("unconfirmed".equals(codeString)) - return UNCONFIRMED; - if ("confirmed".equals(codeString)) - return CONFIRMED; - if ("resolved".equals(codeString)) - return RESOLVED; - if ("refuted".equals(codeString)) - return REFUTED; - throw new IllegalArgumentException("Unknown AllergyIntoleranceStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case UNCONFIRMED: return "unconfirmed"; - case CONFIRMED: return "confirmed"; - case RESOLVED: return "resolved"; - case REFUTED: return "refuted"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case UNCONFIRMED: return ""; - case CONFIRMED: return ""; - case RESOLVED: return ""; - case REFUTED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case UNCONFIRMED: return "A low level of certainty about the propensity for a reaction to the identified Substance."; - case CONFIRMED: return "A high level of certainty about the propensity for a reaction to the identified Substance, which may include clinical evidence by testing or rechallenge."; - case RESOLVED: return "A reaction to the identified Substance has been clinically reassessed by testing or rechallenge and considered to be resolved."; - case REFUTED: return "A propensity for a reaction to the identified Substance has been disproven with a high level of clinical certainty, which may include testing or rechallenge, and is refuted."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case UNCONFIRMED: return "Unconfirmed"; - case CONFIRMED: return "Confirmed"; - case RESOLVED: return "Resolved"; - case REFUTED: return "Refuted"; - default: return "?"; - } - } - } - - public static class AllergyIntoleranceStatusEnumFactory implements EnumFactory { - public AllergyIntoleranceStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("unconfirmed".equals(codeString)) - return AllergyIntoleranceStatus.UNCONFIRMED; - if ("confirmed".equals(codeString)) - return AllergyIntoleranceStatus.CONFIRMED; - if ("resolved".equals(codeString)) - return AllergyIntoleranceStatus.RESOLVED; - if ("refuted".equals(codeString)) - return AllergyIntoleranceStatus.REFUTED; - throw new IllegalArgumentException("Unknown AllergyIntoleranceStatus code '"+codeString+"'"); - } - public String toCode(AllergyIntoleranceStatus code) throws IllegalArgumentException { - if (code == AllergyIntoleranceStatus.UNCONFIRMED) - return "unconfirmed"; - if (code == AllergyIntoleranceStatus.CONFIRMED) - return "confirmed"; - if (code == AllergyIntoleranceStatus.RESOLVED) - return "resolved"; - if (code == AllergyIntoleranceStatus.REFUTED) - return "refuted"; - return "?"; - } - } - - public enum AllergyIntoleranceCriticality implements FhirEnum { - /** - * The potential clinical impact of a future reaction is estimated as low risk: exposure to substance is unlikely to result in a life threatening or organ system threatening outcome. Future exposure to the Substance is considered a relative contra-indication. - */ - LOW, - /** - * The potential clinical impact of a future reaction is estimated as high risk: exposure to substance may result in a life threatening or organ system threatening outcome. Future exposure to the Substance may be considered an absolute contra-indication. - */ - HIGH, - /** - * Unable to assess the potential clinical impact with the information available. - */ - UNASSESSIBLE, - /** - * added to help the parsers - */ - NULL; - - public static final AllergyIntoleranceCriticalityEnumFactory ENUM_FACTORY = new AllergyIntoleranceCriticalityEnumFactory(); - - public static AllergyIntoleranceCriticality fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("low".equals(codeString)) - return LOW; - if ("high".equals(codeString)) - return HIGH; - if ("unassessible".equals(codeString)) - return UNASSESSIBLE; - throw new IllegalArgumentException("Unknown AllergyIntoleranceCriticality code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case LOW: return "low"; - case HIGH: return "high"; - case UNASSESSIBLE: return "unassessible"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case LOW: return ""; - case HIGH: return ""; - case UNASSESSIBLE: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case LOW: return "The potential clinical impact of a future reaction is estimated as low risk: exposure to substance is unlikely to result in a life threatening or organ system threatening outcome. Future exposure to the Substance is considered a relative contra-indication."; - case HIGH: return "The potential clinical impact of a future reaction is estimated as high risk: exposure to substance may result in a life threatening or organ system threatening outcome. Future exposure to the Substance may be considered an absolute contra-indication."; - case UNASSESSIBLE: return "Unable to assess the potential clinical impact with the information available."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case LOW: return "Low Risk"; - case HIGH: return "High Risk"; - case UNASSESSIBLE: return "Unable to determine"; - default: return "?"; - } - } - } - - public static class AllergyIntoleranceCriticalityEnumFactory implements EnumFactory { - public AllergyIntoleranceCriticality fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("low".equals(codeString)) - return AllergyIntoleranceCriticality.LOW; - if ("high".equals(codeString)) - return AllergyIntoleranceCriticality.HIGH; - if ("unassessible".equals(codeString)) - return AllergyIntoleranceCriticality.UNASSESSIBLE; - throw new IllegalArgumentException("Unknown AllergyIntoleranceCriticality code '"+codeString+"'"); - } - public String toCode(AllergyIntoleranceCriticality code) throws IllegalArgumentException { - if (code == AllergyIntoleranceCriticality.LOW) - return "low"; - if (code == AllergyIntoleranceCriticality.HIGH) - return "high"; - if (code == AllergyIntoleranceCriticality.UNASSESSIBLE) - return "unassessible"; - return "?"; - } - } - - public enum AllergyIntoleranceType implements FhirEnum { - /** - * Immune mediated reaction, including allergic reactions and hypersensitivities. - */ - IMMUNE, - /** - * A non-immune mediated reaction, which can include pseudoallergic reactions, side effects, intolerances, drug toxicities (eg to Gentamicin), drug-drug interactions, food-drug interactions, and drug-disease interactions. - */ - NONIMMUNE, - /** - * added to help the parsers - */ - NULL; - - public static final AllergyIntoleranceTypeEnumFactory ENUM_FACTORY = new AllergyIntoleranceTypeEnumFactory(); - - public static AllergyIntoleranceType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("immune".equals(codeString)) - return IMMUNE; - if ("non-immune".equals(codeString)) - return NONIMMUNE; - throw new IllegalArgumentException("Unknown AllergyIntoleranceType code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case IMMUNE: return "immune"; - case NONIMMUNE: return "non-immune"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case IMMUNE: return ""; - case NONIMMUNE: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case IMMUNE: return "Immune mediated reaction, including allergic reactions and hypersensitivities."; - case NONIMMUNE: return "A non-immune mediated reaction, which can include pseudoallergic reactions, side effects, intolerances, drug toxicities (eg to Gentamicin), drug-drug interactions, food-drug interactions, and drug-disease interactions."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case IMMUNE: return "Immune Mediated"; - case NONIMMUNE: return "Non-immune mediated"; - default: return "?"; - } - } - } - - public static class AllergyIntoleranceTypeEnumFactory implements EnumFactory { - public AllergyIntoleranceType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("immune".equals(codeString)) - return AllergyIntoleranceType.IMMUNE; - if ("non-immune".equals(codeString)) - return AllergyIntoleranceType.NONIMMUNE; - throw new IllegalArgumentException("Unknown AllergyIntoleranceType code '"+codeString+"'"); - } - public String toCode(AllergyIntoleranceType code) throws IllegalArgumentException { - if (code == AllergyIntoleranceType.IMMUNE) - return "immune"; - if (code == AllergyIntoleranceType.NONIMMUNE) - return "non-immune"; - return "?"; - } - } - - public enum AllergyIntoleranceCategory implements FhirEnum { - /** - * Any substance consumed to provide nutritional support for the body. - */ - FOOD, - /** - * Substances administered to achieve a physiological effect. - */ - MEDICATION, - /** - * Substances that are encountered in the environment. - */ - ENVIRONMENT, - /** - * added to help the parsers - */ - NULL; - - public static final AllergyIntoleranceCategoryEnumFactory ENUM_FACTORY = new AllergyIntoleranceCategoryEnumFactory(); - - public static AllergyIntoleranceCategory fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("food".equals(codeString)) - return FOOD; - if ("medication".equals(codeString)) - return MEDICATION; - if ("environment".equals(codeString)) - return ENVIRONMENT; - throw new IllegalArgumentException("Unknown AllergyIntoleranceCategory code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case FOOD: return "food"; - case MEDICATION: return "medication"; - case ENVIRONMENT: return "environment"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case FOOD: return ""; - case MEDICATION: return ""; - case ENVIRONMENT: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case FOOD: return "Any substance consumed to provide nutritional support for the body."; - case MEDICATION: return "Substances administered to achieve a physiological effect."; - case ENVIRONMENT: return "Substances that are encountered in the environment."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case FOOD: return "Food"; - case MEDICATION: return "Medication"; - case ENVIRONMENT: return "Environment"; - default: return "?"; - } - } - } - - public static class AllergyIntoleranceCategoryEnumFactory implements EnumFactory { - public AllergyIntoleranceCategory fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("food".equals(codeString)) - return AllergyIntoleranceCategory.FOOD; - if ("medication".equals(codeString)) - return AllergyIntoleranceCategory.MEDICATION; - if ("environment".equals(codeString)) - return AllergyIntoleranceCategory.ENVIRONMENT; - throw new IllegalArgumentException("Unknown AllergyIntoleranceCategory code '"+codeString+"'"); - } - public String toCode(AllergyIntoleranceCategory code) throws IllegalArgumentException { - if (code == AllergyIntoleranceCategory.FOOD) - return "food"; - if (code == AllergyIntoleranceCategory.MEDICATION) - return "medication"; - if (code == AllergyIntoleranceCategory.ENVIRONMENT) - return "environment"; - return "?"; - } - } - - public enum ReactionEventCertainty implements FhirEnum { - /** - * There is a low level of clinical certainty that the reaction was caused by the identified Substance. - */ - UNLIKELY, - /** - * There is a high level of clinical certainty that the reaction was caused by the identified Substance. - */ - LIKELY, - /** - * There is a very high level of clinical certainty that the reaction was due to the identified Substance, which may include clinical evidence by testing or rechallenge. - */ - CONFIRMED, - /** - * added to help the parsers - */ - NULL; - - public static final ReactionEventCertaintyEnumFactory ENUM_FACTORY = new ReactionEventCertaintyEnumFactory(); - - public static ReactionEventCertainty fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("unlikely".equals(codeString)) - return UNLIKELY; - if ("likely".equals(codeString)) - return LIKELY; - if ("confirmed".equals(codeString)) - return CONFIRMED; - throw new IllegalArgumentException("Unknown ReactionEventCertainty code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case UNLIKELY: return "unlikely"; - case LIKELY: return "likely"; - case CONFIRMED: return "confirmed"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case UNLIKELY: return ""; - case LIKELY: return ""; - case CONFIRMED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case UNLIKELY: return "There is a low level of clinical certainty that the reaction was caused by the identified Substance."; - case LIKELY: return "There is a high level of clinical certainty that the reaction was caused by the identified Substance."; - case CONFIRMED: return "There is a very high level of clinical certainty that the reaction was due to the identified Substance, which may include clinical evidence by testing or rechallenge."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case UNLIKELY: return "Unlikely"; - case LIKELY: return "Likely"; - case CONFIRMED: return "Confirmed"; - default: return "?"; - } - } - } - - public static class ReactionEventCertaintyEnumFactory implements EnumFactory { - public ReactionEventCertainty fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("unlikely".equals(codeString)) - return ReactionEventCertainty.UNLIKELY; - if ("likely".equals(codeString)) - return ReactionEventCertainty.LIKELY; - if ("confirmed".equals(codeString)) - return ReactionEventCertainty.CONFIRMED; - throw new IllegalArgumentException("Unknown ReactionEventCertainty code '"+codeString+"'"); - } - public String toCode(ReactionEventCertainty code) throws IllegalArgumentException { - if (code == ReactionEventCertainty.UNLIKELY) - return "unlikely"; - if (code == ReactionEventCertainty.LIKELY) - return "likely"; - if (code == ReactionEventCertainty.CONFIRMED) - return "confirmed"; - return "?"; - } - } - - public enum ReactionEventSeverity implements FhirEnum { - /** - * Causes mild physiological effects. - */ - MILD, - /** - * Causes moderate physiological effects. - */ - MODERATE, - /** - * Causes severe physiological effects. - */ - SEVERE, - /** - * added to help the parsers - */ - NULL; - - public static final ReactionEventSeverityEnumFactory ENUM_FACTORY = new ReactionEventSeverityEnumFactory(); - - public static ReactionEventSeverity fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("mild".equals(codeString)) - return MILD; - if ("moderate".equals(codeString)) - return MODERATE; - if ("severe".equals(codeString)) - return SEVERE; - throw new IllegalArgumentException("Unknown ReactionEventSeverity code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case MILD: return "mild"; - case MODERATE: return "moderate"; - case SEVERE: return "severe"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case MILD: return ""; - case MODERATE: return ""; - case SEVERE: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case MILD: return "Causes mild physiological effects."; - case MODERATE: return "Causes moderate physiological effects."; - case SEVERE: return "Causes severe physiological effects."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case MILD: return "Mild"; - case MODERATE: return "Moderate"; - case SEVERE: return "Severe"; - default: return "?"; - } - } - } - - public static class ReactionEventSeverityEnumFactory implements EnumFactory { - public ReactionEventSeverity fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("mild".equals(codeString)) - return ReactionEventSeverity.MILD; - if ("moderate".equals(codeString)) - return ReactionEventSeverity.MODERATE; - if ("severe".equals(codeString)) - return ReactionEventSeverity.SEVERE; - throw new IllegalArgumentException("Unknown ReactionEventSeverity code '"+codeString+"'"); - } - public String toCode(ReactionEventSeverity code) throws IllegalArgumentException { - if (code == ReactionEventSeverity.MILD) - return "mild"; - if (code == ReactionEventSeverity.MODERATE) - return "moderate"; - if (code == ReactionEventSeverity.SEVERE) - return "severe"; - return "?"; - } - } - - @Block() - public static class AllergyIntoleranceEventComponent extends BackboneElement { - /** - * Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance. - */ - @Child(name="substance", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="Specific substance considered to be responsible for event", formalDefinition="Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance." ) - protected CodeableConcept substance; - - /** - * Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event. - */ - @Child(name="certainty", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="unlikely | likely | confirmed - clinical certainty about the specific substance", formalDefinition="Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event." ) - protected Enumeration certainty; - - /** - * Clinical symptoms and/or signs that are observed or associated with the Adverse Reaction Event. - */ - @Child(name="manifestation", type={CodeableConcept.class}, order=3, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Clinical symptoms/signs associated with the Event", formalDefinition="Clinical symptoms and/or signs that are observed or associated with the Adverse Reaction Event." ) - protected List manifestation; - - /** - * Text description about the Reaction as a whole, including details of the manifestation if required. - */ - @Child(name="description", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Description of the event as a whole", formalDefinition="Text description about the Reaction as a whole, including details of the manifestation if required." ) - protected StringType description; - - /** - * Record of the date and/or time of the onset of the Reaction. - */ - @Child(name="onset", type={DateTimeType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Date(/time) when manifestations showed", formalDefinition="Record of the date and/or time of the onset of the Reaction." ) - protected DateTimeType onset; - - /** - * The amount of time that the Adverse Reaction persisted. - */ - @Child(name="duration", type={Duration.class}, order=6, min=0, max=1) - @Description(shortDefinition="How long Manifestations persisted", formalDefinition="The amount of time that the Adverse Reaction persisted." ) - protected Duration duration; - - /** - * Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations. - */ - @Child(name="severity", type={CodeType.class}, order=7, min=0, max=1) - @Description(shortDefinition="mild | moderate | severe (of event as a whole)", formalDefinition="Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations." ) - protected Enumeration severity; - - /** - * Identification of the route by which the subject was exposed to the substance. - */ - @Child(name="exposureRoute", type={CodeableConcept.class}, order=8, min=0, max=1) - @Description(shortDefinition="How the subject was exposed to the substance", formalDefinition="Identification of the route by which the subject was exposed to the substance." ) - protected CodeableConcept exposureRoute; - - /** - * Additional text about the Adverse Reaction event not captured in other fields. - */ - @Child(name="comment", type={StringType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Text about event not captured in other fields", formalDefinition="Additional text about the Adverse Reaction event not captured in other fields." ) - protected StringType comment; - - private static final long serialVersionUID = -1773271720L; - - public AllergyIntoleranceEventComponent() { - super(); - } - - /** - * @return {@link #substance} (Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance.) - */ - public CodeableConcept getSubstance() { - if (this.substance == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.substance"); - else if (Configuration.doAutoCreate()) - this.substance = new CodeableConcept(); - return this.substance; - } - - public boolean hasSubstance() { - return this.substance != null && !this.substance.isEmpty(); - } - - /** - * @param value {@link #substance} (Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance.) - */ - public AllergyIntoleranceEventComponent setSubstance(CodeableConcept value) { - this.substance = value; - return this; - } - - /** - * @return {@link #certainty} (Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event.). This is the underlying object with id, value and extensions. The accessor "getCertainty" gives direct access to the value - */ - public Enumeration getCertaintyElement() { - if (this.certainty == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.certainty"); - else if (Configuration.doAutoCreate()) - this.certainty = new Enumeration(); - return this.certainty; - } - - public boolean hasCertaintyElement() { - return this.certainty != null && !this.certainty.isEmpty(); - } - - public boolean hasCertainty() { - return this.certainty != null && !this.certainty.isEmpty(); - } - - /** - * @param value {@link #certainty} (Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event.). This is the underlying object with id, value and extensions. The accessor "getCertainty" gives direct access to the value - */ - public AllergyIntoleranceEventComponent setCertaintyElement(Enumeration value) { - this.certainty = value; - return this; - } - - /** - * @return Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event. - */ - public ReactionEventCertainty getCertainty() { - return this.certainty == null ? null : this.certainty.getValue(); - } - - /** - * @param value Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event. - */ - public AllergyIntoleranceEventComponent setCertainty(ReactionEventCertainty value) { - if (value == null) - this.certainty = null; - else { - if (this.certainty == null) - this.certainty = new Enumeration(ReactionEventCertainty.ENUM_FACTORY); - this.certainty.setValue(value); - } - return this; - } - - /** - * @return {@link #manifestation} (Clinical symptoms and/or signs that are observed or associated with the Adverse Reaction Event.) - */ - public List getManifestation() { - if (this.manifestation == null) - this.manifestation = new ArrayList(); - return this.manifestation; - } - - public boolean hasManifestation() { - if (this.manifestation == null) - return false; - for (CodeableConcept item : this.manifestation) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #manifestation} (Clinical symptoms and/or signs that are observed or associated with the Adverse Reaction Event.) - */ - // syntactic sugar - public CodeableConcept addManifestation() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.manifestation == null) - this.manifestation = new ArrayList(); - this.manifestation.add(t); - return t; - } - - /** - * @return {@link #description} (Text description about the Reaction as a whole, including details of the manifestation if required.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Text description about the Reaction as a whole, including details of the manifestation if required.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public AllergyIntoleranceEventComponent setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Text description about the Reaction as a whole, including details of the manifestation if required. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Text description about the Reaction as a whole, including details of the manifestation if required. - */ - public AllergyIntoleranceEventComponent setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #onset} (Record of the date and/or time of the onset of the Reaction.). This is the underlying object with id, value and extensions. The accessor "getOnset" gives direct access to the value - */ - public DateTimeType getOnsetElement() { - if (this.onset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.onset"); - else if (Configuration.doAutoCreate()) - this.onset = new DateTimeType(); - return this.onset; - } - - public boolean hasOnsetElement() { - return this.onset != null && !this.onset.isEmpty(); - } - - public boolean hasOnset() { - return this.onset != null && !this.onset.isEmpty(); - } - - /** - * @param value {@link #onset} (Record of the date and/or time of the onset of the Reaction.). This is the underlying object with id, value and extensions. The accessor "getOnset" gives direct access to the value - */ - public AllergyIntoleranceEventComponent setOnsetElement(DateTimeType value) { - this.onset = value; - return this; - } - - /** - * @return Record of the date and/or time of the onset of the Reaction. - */ - public Date getOnset() { - return this.onset == null ? null : this.onset.getValue(); - } - - /** - * @param value Record of the date and/or time of the onset of the Reaction. - */ - public AllergyIntoleranceEventComponent setOnset(Date value) { - if (value == null) - this.onset = null; - else { - if (this.onset == null) - this.onset = new DateTimeType(); - this.onset.setValue(value); - } - return this; - } - - /** - * @return {@link #duration} (The amount of time that the Adverse Reaction persisted.) - */ - public Duration getDuration() { - if (this.duration == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.duration"); - else if (Configuration.doAutoCreate()) - this.duration = new Duration(); - return this.duration; - } - - public boolean hasDuration() { - return this.duration != null && !this.duration.isEmpty(); - } - - /** - * @param value {@link #duration} (The amount of time that the Adverse Reaction persisted.) - */ - public AllergyIntoleranceEventComponent setDuration(Duration value) { - this.duration = value; - return this; - } - - /** - * @return {@link #severity} (Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value - */ - public Enumeration getSeverityElement() { - if (this.severity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.severity"); - else if (Configuration.doAutoCreate()) - this.severity = new Enumeration(); - return this.severity; - } - - public boolean hasSeverityElement() { - return this.severity != null && !this.severity.isEmpty(); - } - - public boolean hasSeverity() { - return this.severity != null && !this.severity.isEmpty(); - } - - /** - * @param value {@link #severity} (Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value - */ - public AllergyIntoleranceEventComponent setSeverityElement(Enumeration value) { - this.severity = value; - return this; - } - - /** - * @return Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations. - */ - public ReactionEventSeverity getSeverity() { - return this.severity == null ? null : this.severity.getValue(); - } - - /** - * @param value Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations. - */ - public AllergyIntoleranceEventComponent setSeverity(ReactionEventSeverity value) { - if (value == null) - this.severity = null; - else { - if (this.severity == null) - this.severity = new Enumeration(ReactionEventSeverity.ENUM_FACTORY); - this.severity.setValue(value); - } - return this; - } - - /** - * @return {@link #exposureRoute} (Identification of the route by which the subject was exposed to the substance.) - */ - public CodeableConcept getExposureRoute() { - if (this.exposureRoute == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.exposureRoute"); - else if (Configuration.doAutoCreate()) - this.exposureRoute = new CodeableConcept(); - return this.exposureRoute; - } - - public boolean hasExposureRoute() { - return this.exposureRoute != null && !this.exposureRoute.isEmpty(); - } - - /** - * @param value {@link #exposureRoute} (Identification of the route by which the subject was exposed to the substance.) - */ - public AllergyIntoleranceEventComponent setExposureRoute(CodeableConcept value) { - this.exposureRoute = value; - return this; - } - - /** - * @return {@link #comment} (Additional text about the Adverse Reaction event not captured in other fields.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value - */ - public StringType getCommentElement() { - if (this.comment == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.comment"); - else if (Configuration.doAutoCreate()) - this.comment = new StringType(); - return this.comment; - } - - public boolean hasCommentElement() { - return this.comment != null && !this.comment.isEmpty(); - } - - public boolean hasComment() { - return this.comment != null && !this.comment.isEmpty(); - } - - /** - * @param value {@link #comment} (Additional text about the Adverse Reaction event not captured in other fields.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value - */ - public AllergyIntoleranceEventComponent setCommentElement(StringType value) { - this.comment = value; - return this; - } - - /** - * @return Additional text about the Adverse Reaction event not captured in other fields. - */ - public String getComment() { - return this.comment == null ? null : this.comment.getValue(); - } - - /** - * @param value Additional text about the Adverse Reaction event not captured in other fields. - */ - public AllergyIntoleranceEventComponent setComment(String value) { - if (Utilities.noString(value)) - this.comment = null; - else { - if (this.comment == null) - this.comment = new StringType(); - this.comment.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("substance", "CodeableConcept", "Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance.", 0, java.lang.Integer.MAX_VALUE, substance)); - childrenList.add(new Property("certainty", "code", "Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event.", 0, java.lang.Integer.MAX_VALUE, certainty)); - childrenList.add(new Property("manifestation", "CodeableConcept", "Clinical symptoms and/or signs that are observed or associated with the Adverse Reaction Event.", 0, java.lang.Integer.MAX_VALUE, manifestation)); - childrenList.add(new Property("description", "string", "Text description about the Reaction as a whole, including details of the manifestation if required.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("onset", "dateTime", "Record of the date and/or time of the onset of the Reaction.", 0, java.lang.Integer.MAX_VALUE, onset)); - childrenList.add(new Property("duration", "Duration", "The amount of time that the Adverse Reaction persisted.", 0, java.lang.Integer.MAX_VALUE, duration)); - childrenList.add(new Property("severity", "code", "Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.", 0, java.lang.Integer.MAX_VALUE, severity)); - childrenList.add(new Property("exposureRoute", "CodeableConcept", "Identification of the route by which the subject was exposed to the substance.", 0, java.lang.Integer.MAX_VALUE, exposureRoute)); - childrenList.add(new Property("comment", "string", "Additional text about the Adverse Reaction event not captured in other fields.", 0, java.lang.Integer.MAX_VALUE, comment)); - } - - public AllergyIntoleranceEventComponent copy() { - AllergyIntoleranceEventComponent dst = new AllergyIntoleranceEventComponent(); - copyValues(dst); - dst.substance = substance == null ? null : substance.copy(); - dst.certainty = certainty == null ? null : certainty.copy(); - if (manifestation != null) { - dst.manifestation = new ArrayList(); - for (CodeableConcept i : manifestation) - dst.manifestation.add(i.copy()); - }; - dst.description = description == null ? null : description.copy(); - dst.onset = onset == null ? null : onset.copy(); - dst.duration = duration == null ? null : duration.copy(); - dst.severity = severity == null ? null : severity.copy(); - dst.exposureRoute = exposureRoute == null ? null : exposureRoute.copy(); - dst.comment = comment == null ? null : comment.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (substance == null || substance.isEmpty()) && (certainty == null || certainty.isEmpty()) - && (manifestation == null || manifestation.isEmpty()) && (description == null || description.isEmpty()) - && (onset == null || onset.isEmpty()) && (duration == null || duration.isEmpty()) && (severity == null || severity.isEmpty()) - && (exposureRoute == null || exposureRoute.isEmpty()) && (comment == null || comment.isEmpty()) - ; - } - - } - - /** - * This records identifiers associated with this allergy/intolerance concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External Ids for this item", formalDefinition="This records identifiers associated with this allergy/intolerance concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) - protected List identifier; - - /** - * Date when the sensitivity was recorded. - */ - @Child(name="recordedDate", type={DateTimeType.class}, order=0, min=0, max=1) - @Description(shortDefinition="When recorded", formalDefinition="Date when the sensitivity was recorded." ) - protected DateTimeType recordedDate; - - /** - * Indicates who has responsibility for the record. - */ - @Child(name="recorder", type={Practitioner.class, Patient.class}, order=1, min=0, max=1) - @Description(shortDefinition="Who recorded the sensitivity", formalDefinition="Indicates who has responsibility for the record." ) - protected Reference recorder; - - /** - * The actual object that is the target of the reference (Indicates who has responsibility for the record.) - */ - protected Resource recorderTarget; - - /** - * The patient who has the allergy or intolerance. - */ - @Child(name="subject", type={Patient.class}, order=2, min=1, max=1) - @Description(shortDefinition="Who the sensitivity is for", formalDefinition="The patient who has the allergy or intolerance." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (The patient who has the allergy or intolerance.) - */ - protected Patient subjectTarget; - - /** - * Identification of a substance, or a class of substances, that is considered to be responsible for the Adverse reaction risk. - */ - @Child(name="substance", type={CodeableConcept.class}, order=3, min=1, max=1) - @Description(shortDefinition="Substance, (or class) considered to be responsible for risk", formalDefinition="Identification of a substance, or a class of substances, that is considered to be responsible for the Adverse reaction risk." ) - protected CodeableConcept substance; - - /** - * Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance. - */ - @Child(name="status", type={CodeType.class}, order=4, min=0, max=1) - @Description(shortDefinition="unconfirmed | confirmed | resolved | refuted", formalDefinition="Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance." ) - protected Enumeration status; - - /** - * Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance. - */ - @Child(name="criticality", type={CodeType.class}, order=5, min=0, max=1) - @Description(shortDefinition="low | high | unassessible - Estimated potential clinical harm", formalDefinition="Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance." ) - protected Enumeration criticality; - - /** - * Identification of the underlying physiological mechanism for the Reaction Risk. - */ - @Child(name="type", type={CodeType.class}, order=6, min=0, max=1) - @Description(shortDefinition="immune | non-immune - Underlying mechanism (if known)", formalDefinition="Identification of the underlying physiological mechanism for the Reaction Risk." ) - protected Enumeration type; - - /** - * Category of the identified Substance. - */ - @Child(name="category", type={CodeType.class}, order=7, min=0, max=1) - @Description(shortDefinition="food | medication | environment - Category of Substance", formalDefinition="Category of the identified Substance." ) - protected Enumeration category; - - /** - * Represents the date and/or time of the last known occurence of a reaction event. - */ - @Child(name="lastOccurence", type={DateTimeType.class}, order=8, min=0, max=1) - @Description(shortDefinition="Date(/time) of last known occurence of a reaction", formalDefinition="Represents the date and/or time of the last known occurence of a reaction event." ) - protected DateTimeType lastOccurence; - - /** - * Additional narrative about the propensity for the Adverse Reaction, not captured in other fields. - */ - @Child(name="comment", type={StringType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Additional text not captured in other fields", formalDefinition="Additional narrative about the propensity for the Adverse Reaction, not captured in other fields." ) - protected StringType comment; - - /** - * Details about each Adverse Reaction Event linked to exposure to the identified Substance. - */ - @Child(name="event", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Adverse Reaction Events linked to exposure to substance", formalDefinition="Details about each Adverse Reaction Event linked to exposure to the identified Substance." ) - protected List event; - - private static final long serialVersionUID = -571844748L; - - public AllergyIntolerance() { - super(); - } - - public AllergyIntolerance(Reference subject, CodeableConcept substance) { - super(); - this.subject = subject; - this.substance = substance; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this allergy/intolerance concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this allergy/intolerance concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #recordedDate} (Date when the sensitivity was recorded.). This is the underlying object with id, value and extensions. The accessor "getRecordedDate" gives direct access to the value - */ - public DateTimeType getRecordedDateElement() { - if (this.recordedDate == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntolerance.recordedDate"); - else if (Configuration.doAutoCreate()) - this.recordedDate = new DateTimeType(); - return this.recordedDate; - } - - public boolean hasRecordedDateElement() { - return this.recordedDate != null && !this.recordedDate.isEmpty(); - } - - public boolean hasRecordedDate() { - return this.recordedDate != null && !this.recordedDate.isEmpty(); - } - - /** - * @param value {@link #recordedDate} (Date when the sensitivity was recorded.). This is the underlying object with id, value and extensions. The accessor "getRecordedDate" gives direct access to the value - */ - public AllergyIntolerance setRecordedDateElement(DateTimeType value) { - this.recordedDate = value; - return this; - } - - /** - * @return Date when the sensitivity was recorded. - */ - public Date getRecordedDate() { - return this.recordedDate == null ? null : this.recordedDate.getValue(); - } - - /** - * @param value Date when the sensitivity was recorded. - */ - public AllergyIntolerance setRecordedDate(Date value) { - if (value == null) - this.recordedDate = null; - else { - if (this.recordedDate == null) - this.recordedDate = new DateTimeType(); - this.recordedDate.setValue(value); - } - return this; - } - - /** - * @return {@link #recorder} (Indicates who has responsibility for the record.) - */ - public Reference getRecorder() { - if (this.recorder == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntolerance.recorder"); - else if (Configuration.doAutoCreate()) - this.recorder = new Reference(); - return this.recorder; - } - - public boolean hasRecorder() { - return this.recorder != null && !this.recorder.isEmpty(); - } - - /** - * @param value {@link #recorder} (Indicates who has responsibility for the record.) - */ - public AllergyIntolerance setRecorder(Reference value) { - this.recorder = value; - return this; - } - - /** - * @return {@link #recorder} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates who has responsibility for the record.) - */ - public Resource getRecorderTarget() { - return this.recorderTarget; - } - - /** - * @param value {@link #recorder} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates who has responsibility for the record.) - */ - public AllergyIntolerance setRecorderTarget(Resource value) { - this.recorderTarget = value; - return this; - } - - /** - * @return {@link #subject} (The patient who has the allergy or intolerance.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntolerance.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (The patient who has the allergy or intolerance.) - */ - public AllergyIntolerance setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient who has the allergy or intolerance.) - */ - public Patient getSubjectTarget() { - if (this.subjectTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntolerance.subject"); - else if (Configuration.doAutoCreate()) - this.subjectTarget = new Patient(); - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient who has the allergy or intolerance.) - */ - public AllergyIntolerance setSubjectTarget(Patient value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #substance} (Identification of a substance, or a class of substances, that is considered to be responsible for the Adverse reaction risk.) - */ - public CodeableConcept getSubstance() { - if (this.substance == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntolerance.substance"); - else if (Configuration.doAutoCreate()) - this.substance = new CodeableConcept(); - return this.substance; - } - - public boolean hasSubstance() { - return this.substance != null && !this.substance.isEmpty(); - } - - /** - * @param value {@link #substance} (Identification of a substance, or a class of substances, that is considered to be responsible for the Adverse reaction risk.) - */ - public AllergyIntolerance setSubstance(CodeableConcept value) { - this.substance = value; - return this; - } - - /** - * @return {@link #status} (Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntolerance.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public AllergyIntolerance setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance. - */ - public AllergyIntoleranceStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance. - */ - public AllergyIntolerance setStatus(AllergyIntoleranceStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(AllergyIntoleranceStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #criticality} (Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance.). This is the underlying object with id, value and extensions. The accessor "getCriticality" gives direct access to the value - */ - public Enumeration getCriticalityElement() { - if (this.criticality == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntolerance.criticality"); - else if (Configuration.doAutoCreate()) - this.criticality = new Enumeration(); - return this.criticality; - } - - public boolean hasCriticalityElement() { - return this.criticality != null && !this.criticality.isEmpty(); - } - - public boolean hasCriticality() { - return this.criticality != null && !this.criticality.isEmpty(); - } - - /** - * @param value {@link #criticality} (Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance.). This is the underlying object with id, value and extensions. The accessor "getCriticality" gives direct access to the value - */ - public AllergyIntolerance setCriticalityElement(Enumeration value) { - this.criticality = value; - return this; - } - - /** - * @return Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance. - */ - public AllergyIntoleranceCriticality getCriticality() { - return this.criticality == null ? null : this.criticality.getValue(); - } - - /** - * @param value Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance. - */ - public AllergyIntolerance setCriticality(AllergyIntoleranceCriticality value) { - if (value == null) - this.criticality = null; - else { - if (this.criticality == null) - this.criticality = new Enumeration(AllergyIntoleranceCriticality.ENUM_FACTORY); - this.criticality.setValue(value); - } - return this; - } - - /** - * @return {@link #type} (Identification of the underlying physiological mechanism for the Reaction Risk.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public Enumeration getTypeElement() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntolerance.type"); - else if (Configuration.doAutoCreate()) - this.type = new Enumeration(); - return this.type; - } - - public boolean hasTypeElement() { - return this.type != null && !this.type.isEmpty(); - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Identification of the underlying physiological mechanism for the Reaction Risk.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public AllergyIntolerance setTypeElement(Enumeration value) { - this.type = value; - return this; - } - - /** - * @return Identification of the underlying physiological mechanism for the Reaction Risk. - */ - public AllergyIntoleranceType getType() { - return this.type == null ? null : this.type.getValue(); - } - - /** - * @param value Identification of the underlying physiological mechanism for the Reaction Risk. - */ - public AllergyIntolerance setType(AllergyIntoleranceType value) { - if (value == null) - this.type = null; - else { - if (this.type == null) - this.type = new Enumeration(AllergyIntoleranceType.ENUM_FACTORY); - this.type.setValue(value); - } - return this; - } - - /** - * @return {@link #category} (Category of the identified Substance.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value - */ - public Enumeration getCategoryElement() { - if (this.category == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntolerance.category"); - else if (Configuration.doAutoCreate()) - this.category = new Enumeration(); - return this.category; - } - - public boolean hasCategoryElement() { - return this.category != null && !this.category.isEmpty(); - } - - public boolean hasCategory() { - return this.category != null && !this.category.isEmpty(); - } - - /** - * @param value {@link #category} (Category of the identified Substance.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value - */ - public AllergyIntolerance setCategoryElement(Enumeration value) { - this.category = value; - return this; - } - - /** - * @return Category of the identified Substance. - */ - public AllergyIntoleranceCategory getCategory() { - return this.category == null ? null : this.category.getValue(); - } - - /** - * @param value Category of the identified Substance. - */ - public AllergyIntolerance setCategory(AllergyIntoleranceCategory value) { - if (value == null) - this.category = null; - else { - if (this.category == null) - this.category = new Enumeration(AllergyIntoleranceCategory.ENUM_FACTORY); - this.category.setValue(value); - } - return this; - } - - /** - * @return {@link #lastOccurence} (Represents the date and/or time of the last known occurence of a reaction event.). This is the underlying object with id, value and extensions. The accessor "getLastOccurence" gives direct access to the value - */ - public DateTimeType getLastOccurenceElement() { - if (this.lastOccurence == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntolerance.lastOccurence"); - else if (Configuration.doAutoCreate()) - this.lastOccurence = new DateTimeType(); - return this.lastOccurence; - } - - public boolean hasLastOccurenceElement() { - return this.lastOccurence != null && !this.lastOccurence.isEmpty(); - } - - public boolean hasLastOccurence() { - return this.lastOccurence != null && !this.lastOccurence.isEmpty(); - } - - /** - * @param value {@link #lastOccurence} (Represents the date and/or time of the last known occurence of a reaction event.). This is the underlying object with id, value and extensions. The accessor "getLastOccurence" gives direct access to the value - */ - public AllergyIntolerance setLastOccurenceElement(DateTimeType value) { - this.lastOccurence = value; - return this; - } - - /** - * @return Represents the date and/or time of the last known occurence of a reaction event. - */ - public Date getLastOccurence() { - return this.lastOccurence == null ? null : this.lastOccurence.getValue(); - } - - /** - * @param value Represents the date and/or time of the last known occurence of a reaction event. - */ - public AllergyIntolerance setLastOccurence(Date value) { - if (value == null) - this.lastOccurence = null; - else { - if (this.lastOccurence == null) - this.lastOccurence = new DateTimeType(); - this.lastOccurence.setValue(value); - } - return this; - } - - /** - * @return {@link #comment} (Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value - */ - public StringType getCommentElement() { - if (this.comment == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AllergyIntolerance.comment"); - else if (Configuration.doAutoCreate()) - this.comment = new StringType(); - return this.comment; - } - - public boolean hasCommentElement() { - return this.comment != null && !this.comment.isEmpty(); - } - - public boolean hasComment() { - return this.comment != null && !this.comment.isEmpty(); - } - - /** - * @param value {@link #comment} (Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value - */ - public AllergyIntolerance setCommentElement(StringType value) { - this.comment = value; - return this; - } - - /** - * @return Additional narrative about the propensity for the Adverse Reaction, not captured in other fields. - */ - public String getComment() { - return this.comment == null ? null : this.comment.getValue(); - } - - /** - * @param value Additional narrative about the propensity for the Adverse Reaction, not captured in other fields. - */ - public AllergyIntolerance setComment(String value) { - if (Utilities.noString(value)) - this.comment = null; - else { - if (this.comment == null) - this.comment = new StringType(); - this.comment.setValue(value); - } - return this; - } - - /** - * @return {@link #event} (Details about each Adverse Reaction Event linked to exposure to the identified Substance.) - */ - public List getEvent() { - if (this.event == null) - this.event = new ArrayList(); - return this.event; - } - - public boolean hasEvent() { - if (this.event == null) - return false; - for (AllergyIntoleranceEventComponent item : this.event) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #event} (Details about each Adverse Reaction Event linked to exposure to the identified Substance.) - */ - // syntactic sugar - public AllergyIntoleranceEventComponent addEvent() { //3 - AllergyIntoleranceEventComponent t = new AllergyIntoleranceEventComponent(); - if (this.event == null) - this.event = new ArrayList(); - this.event.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this allergy/intolerance concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("recordedDate", "dateTime", "Date when the sensitivity was recorded.", 0, java.lang.Integer.MAX_VALUE, recordedDate)); - childrenList.add(new Property("recorder", "Reference(Practitioner|Patient)", "Indicates who has responsibility for the record.", 0, java.lang.Integer.MAX_VALUE, recorder)); - childrenList.add(new Property("subject", "Reference(Patient)", "The patient who has the allergy or intolerance.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("substance", "CodeableConcept", "Identification of a substance, or a class of substances, that is considered to be responsible for the Adverse reaction risk.", 0, java.lang.Integer.MAX_VALUE, substance)); - childrenList.add(new Property("status", "code", "Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("criticality", "code", "Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance.", 0, java.lang.Integer.MAX_VALUE, criticality)); - childrenList.add(new Property("type", "code", "Identification of the underlying physiological mechanism for the Reaction Risk.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("category", "code", "Category of the identified Substance.", 0, java.lang.Integer.MAX_VALUE, category)); - childrenList.add(new Property("lastOccurence", "dateTime", "Represents the date and/or time of the last known occurence of a reaction event.", 0, java.lang.Integer.MAX_VALUE, lastOccurence)); - childrenList.add(new Property("comment", "string", "Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.", 0, java.lang.Integer.MAX_VALUE, comment)); - childrenList.add(new Property("event", "", "Details about each Adverse Reaction Event linked to exposure to the identified Substance.", 0, java.lang.Integer.MAX_VALUE, event)); - } - - public AllergyIntolerance copy() { - AllergyIntolerance dst = new AllergyIntolerance(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.recordedDate = recordedDate == null ? null : recordedDate.copy(); - dst.recorder = recorder == null ? null : recorder.copy(); - dst.subject = subject == null ? null : subject.copy(); - dst.substance = substance == null ? null : substance.copy(); - dst.status = status == null ? null : status.copy(); - dst.criticality = criticality == null ? null : criticality.copy(); - dst.type = type == null ? null : type.copy(); - dst.category = category == null ? null : category.copy(); - dst.lastOccurence = lastOccurence == null ? null : lastOccurence.copy(); - dst.comment = comment == null ? null : comment.copy(); - if (event != null) { - dst.event = new ArrayList(); - for (AllergyIntoleranceEventComponent i : event) - dst.event.add(i.copy()); - }; - return dst; - } - - protected AllergyIntolerance typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (recordedDate == null || recordedDate.isEmpty()) - && (recorder == null || recorder.isEmpty()) && (subject == null || subject.isEmpty()) && (substance == null || substance.isEmpty()) - && (status == null || status.isEmpty()) && (criticality == null || criticality.isEmpty()) - && (type == null || type.isEmpty()) && (category == null || category.isEmpty()) && (lastOccurence == null || lastOccurence.isEmpty()) - && (comment == null || comment.isEmpty()) && (event == null || event.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.AllergyIntolerance; - } - - @SearchParamDefinition(name="status", path="AllergyIntolerance.status", description="unconfirmed | confirmed | resolved | refuted", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="subject", path="AllergyIntolerance.subject", description="Who the sensitivity is for", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="onset", path="AllergyIntolerance.event.onset", description="Date(/time) when manifestations showed", type="date" ) - public static final String SP_ONSET = "onset"; - @SearchParamDefinition(name="last-date", path="AllergyIntolerance.lastOccurence", description="Date(/time) of last known occurence of a reaction", type="date" ) - public static final String SP_LASTDATE = "last-date"; - @SearchParamDefinition(name="severity", path="AllergyIntolerance.event.severity", description="mild | moderate | severe (of event as a whole)", type="token" ) - public static final String SP_SEVERITY = "severity"; - @SearchParamDefinition(name="date", path="AllergyIntolerance.recordedDate", description="When recorded", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="type", path="AllergyIntolerance.type", description="immune | non-immune - Underlying mechanism (if known)", type="token" ) - public static final String SP_TYPE = "type"; - @SearchParamDefinition(name="substance", path="AllergyIntolerance.substance|AllergyIntolerance.event.substance", description="Substance, (or class) considered to be responsible for risk", type="token" ) - public static final String SP_SUBSTANCE = "substance"; - @SearchParamDefinition(name="criticality", path="AllergyIntolerance.criticality", description="low | high | unassessible - Estimated potential clinical harm", type="token" ) - public static final String SP_CRITICALITY = "criticality"; - @SearchParamDefinition(name="category", path="AllergyIntolerance.category", description="food | medication | environment - Category of Substance", type="token" ) - public static final String SP_CATEGORY = "category"; - @SearchParamDefinition(name="duration", path="AllergyIntolerance.event.duration", description="How long Manifestations persisted", type="quantity" ) - public static final String SP_DURATION = "duration"; - @SearchParamDefinition(name="patient", path="AllergyIntolerance.subject", description="Who the sensitivity is for", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="recorder", path="AllergyIntolerance.recorder", description="Who recorded the sensitivity", type="reference" ) - public static final String SP_RECORDER = "recorder"; - @SearchParamDefinition(name="route", path="AllergyIntolerance.event.exposureRoute", description="How the subject was exposed to the substance", type="token" ) - public static final String SP_ROUTE = "route"; - @SearchParamDefinition(name="identifier", path="AllergyIntolerance.identifier", description="External Ids for this item", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - @SearchParamDefinition(name="manifestation", path="AllergyIntolerance.event.manifestation", description="Clinical symptoms/signs associated with the Event", type="token" ) - public static final String SP_MANIFESTATION = "manifestation"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance. + */ +@ResourceDef(name="AllergyIntolerance", profile="http://hl7.org/fhir/Profile/AllergyIntolerance") +public class AllergyIntolerance extends DomainResource { + + public enum AllergyIntoleranceStatus { + /** + * A low level of certainty about the propensity for a reaction to the identified Substance. + */ + UNCONFIRMED, + /** + * A high level of certainty about the propensity for a reaction to the identified Substance, which may include clinical evidence by testing or rechallenge. + */ + CONFIRMED, + /** + * A reaction to the identified Substance has been clinically reassessed by testing or rechallenge and considered to be resolved. + */ + RESOLVED, + /** + * A propensity for a reaction to the identified Substance has been disproven with a high level of clinical certainty, which may include testing or rechallenge, and is refuted. + */ + REFUTED, + /** + * added to help the parsers + */ + NULL; + public static AllergyIntoleranceStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("unconfirmed".equals(codeString)) + return UNCONFIRMED; + if ("confirmed".equals(codeString)) + return CONFIRMED; + if ("resolved".equals(codeString)) + return RESOLVED; + if ("refuted".equals(codeString)) + return REFUTED; + throw new Exception("Unknown AllergyIntoleranceStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case UNCONFIRMED: return "unconfirmed"; + case CONFIRMED: return "confirmed"; + case RESOLVED: return "resolved"; + case REFUTED: return "refuted"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case UNCONFIRMED: return ""; + case CONFIRMED: return ""; + case RESOLVED: return ""; + case REFUTED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case UNCONFIRMED: return "A low level of certainty about the propensity for a reaction to the identified Substance."; + case CONFIRMED: return "A high level of certainty about the propensity for a reaction to the identified Substance, which may include clinical evidence by testing or rechallenge."; + case RESOLVED: return "A reaction to the identified Substance has been clinically reassessed by testing or rechallenge and considered to be resolved."; + case REFUTED: return "A propensity for a reaction to the identified Substance has been disproven with a high level of clinical certainty, which may include testing or rechallenge, and is refuted."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case UNCONFIRMED: return "Unconfirmed"; + case CONFIRMED: return "Confirmed"; + case RESOLVED: return "Resolved"; + case REFUTED: return "Refuted"; + default: return "?"; + } + } + } + + public static class AllergyIntoleranceStatusEnumFactory implements EnumFactory { + public AllergyIntoleranceStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("unconfirmed".equals(codeString)) + return AllergyIntoleranceStatus.UNCONFIRMED; + if ("confirmed".equals(codeString)) + return AllergyIntoleranceStatus.CONFIRMED; + if ("resolved".equals(codeString)) + return AllergyIntoleranceStatus.RESOLVED; + if ("refuted".equals(codeString)) + return AllergyIntoleranceStatus.REFUTED; + throw new IllegalArgumentException("Unknown AllergyIntoleranceStatus code '"+codeString+"'"); + } + public String toCode(AllergyIntoleranceStatus code) { + if (code == AllergyIntoleranceStatus.UNCONFIRMED) + return "unconfirmed"; + if (code == AllergyIntoleranceStatus.CONFIRMED) + return "confirmed"; + if (code == AllergyIntoleranceStatus.RESOLVED) + return "resolved"; + if (code == AllergyIntoleranceStatus.REFUTED) + return "refuted"; + return "?"; + } + } + + public enum AllergyIntoleranceCriticality { + /** + * The potential clinical impact of a future reaction is estimated as low risk: exposure to substance is unlikely to result in a life threatening or organ system threatening outcome. Future exposure to the Substance is considered a relative contra-indication. + */ + LOW, + /** + * The potential clinical impact of a future reaction is estimated as high risk: exposure to substance may result in a life threatening or organ system threatening outcome. Future exposure to the Substance may be considered an absolute contra-indication. + */ + HIGH, + /** + * Unable to assess the potential clinical impact with the information available. + */ + UNASSESSIBLE, + /** + * added to help the parsers + */ + NULL; + public static AllergyIntoleranceCriticality fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("low".equals(codeString)) + return LOW; + if ("high".equals(codeString)) + return HIGH; + if ("unassessible".equals(codeString)) + return UNASSESSIBLE; + throw new Exception("Unknown AllergyIntoleranceCriticality code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case LOW: return "low"; + case HIGH: return "high"; + case UNASSESSIBLE: return "unassessible"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case LOW: return ""; + case HIGH: return ""; + case UNASSESSIBLE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case LOW: return "The potential clinical impact of a future reaction is estimated as low risk: exposure to substance is unlikely to result in a life threatening or organ system threatening outcome. Future exposure to the Substance is considered a relative contra-indication."; + case HIGH: return "The potential clinical impact of a future reaction is estimated as high risk: exposure to substance may result in a life threatening or organ system threatening outcome. Future exposure to the Substance may be considered an absolute contra-indication."; + case UNASSESSIBLE: return "Unable to assess the potential clinical impact with the information available."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case LOW: return "Low Risk"; + case HIGH: return "High Risk"; + case UNASSESSIBLE: return "Unable to determine"; + default: return "?"; + } + } + } + + public static class AllergyIntoleranceCriticalityEnumFactory implements EnumFactory { + public AllergyIntoleranceCriticality fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("low".equals(codeString)) + return AllergyIntoleranceCriticality.LOW; + if ("high".equals(codeString)) + return AllergyIntoleranceCriticality.HIGH; + if ("unassessible".equals(codeString)) + return AllergyIntoleranceCriticality.UNASSESSIBLE; + throw new IllegalArgumentException("Unknown AllergyIntoleranceCriticality code '"+codeString+"'"); + } + public String toCode(AllergyIntoleranceCriticality code) { + if (code == AllergyIntoleranceCriticality.LOW) + return "low"; + if (code == AllergyIntoleranceCriticality.HIGH) + return "high"; + if (code == AllergyIntoleranceCriticality.UNASSESSIBLE) + return "unassessible"; + return "?"; + } + } + + public enum AllergyIntoleranceType { + /** + * Immune mediated reaction, including allergic reactions and hypersensitivities. + */ + IMMUNE, + /** + * A non-immune mediated reaction, which can include pseudoallergic reactions, side effects, intolerances, drug toxicities (eg to Gentamicin), drug-drug interactions, food-drug interactions, and drug-disease interactions. + */ + NONIMMUNE, + /** + * added to help the parsers + */ + NULL; + public static AllergyIntoleranceType fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("immune".equals(codeString)) + return IMMUNE; + if ("non-immune".equals(codeString)) + return NONIMMUNE; + throw new Exception("Unknown AllergyIntoleranceType code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case IMMUNE: return "immune"; + case NONIMMUNE: return "non-immune"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case IMMUNE: return ""; + case NONIMMUNE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case IMMUNE: return "Immune mediated reaction, including allergic reactions and hypersensitivities."; + case NONIMMUNE: return "A non-immune mediated reaction, which can include pseudoallergic reactions, side effects, intolerances, drug toxicities (eg to Gentamicin), drug-drug interactions, food-drug interactions, and drug-disease interactions."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case IMMUNE: return "Immune Mediated"; + case NONIMMUNE: return "Non-immune mediated"; + default: return "?"; + } + } + } + + public static class AllergyIntoleranceTypeEnumFactory implements EnumFactory { + public AllergyIntoleranceType fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("immune".equals(codeString)) + return AllergyIntoleranceType.IMMUNE; + if ("non-immune".equals(codeString)) + return AllergyIntoleranceType.NONIMMUNE; + throw new IllegalArgumentException("Unknown AllergyIntoleranceType code '"+codeString+"'"); + } + public String toCode(AllergyIntoleranceType code) { + if (code == AllergyIntoleranceType.IMMUNE) + return "immune"; + if (code == AllergyIntoleranceType.NONIMMUNE) + return "non-immune"; + return "?"; + } + } + + public enum AllergyIntoleranceCategory { + /** + * Any substance consumed to provide nutritional support for the body. + */ + FOOD, + /** + * Substances administered to achieve a physiological effect. + */ + MEDICATION, + /** + * Substances that are encountered in the environment. + */ + ENVIRONMENT, + /** + * added to help the parsers + */ + NULL; + public static AllergyIntoleranceCategory fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("food".equals(codeString)) + return FOOD; + if ("medication".equals(codeString)) + return MEDICATION; + if ("environment".equals(codeString)) + return ENVIRONMENT; + throw new Exception("Unknown AllergyIntoleranceCategory code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case FOOD: return "food"; + case MEDICATION: return "medication"; + case ENVIRONMENT: return "environment"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case FOOD: return ""; + case MEDICATION: return ""; + case ENVIRONMENT: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case FOOD: return "Any substance consumed to provide nutritional support for the body."; + case MEDICATION: return "Substances administered to achieve a physiological effect."; + case ENVIRONMENT: return "Substances that are encountered in the environment."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case FOOD: return "Food"; + case MEDICATION: return "Medication"; + case ENVIRONMENT: return "Environment"; + default: return "?"; + } + } + } + + public static class AllergyIntoleranceCategoryEnumFactory implements EnumFactory { + public AllergyIntoleranceCategory fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("food".equals(codeString)) + return AllergyIntoleranceCategory.FOOD; + if ("medication".equals(codeString)) + return AllergyIntoleranceCategory.MEDICATION; + if ("environment".equals(codeString)) + return AllergyIntoleranceCategory.ENVIRONMENT; + throw new IllegalArgumentException("Unknown AllergyIntoleranceCategory code '"+codeString+"'"); + } + public String toCode(AllergyIntoleranceCategory code) { + if (code == AllergyIntoleranceCategory.FOOD) + return "food"; + if (code == AllergyIntoleranceCategory.MEDICATION) + return "medication"; + if (code == AllergyIntoleranceCategory.ENVIRONMENT) + return "environment"; + return "?"; + } + } + + public enum ReactionEventCertainty { + /** + * There is a low level of clinical certainty that the reaction was caused by the identified Substance. + */ + UNLIKELY, + /** + * There is a high level of clinical certainty that the reaction was caused by the identified Substance. + */ + LIKELY, + /** + * There is a very high level of clinical certainty that the reaction was due to the identified Substance, which may include clinical evidence by testing or rechallenge. + */ + CONFIRMED, + /** + * added to help the parsers + */ + NULL; + public static ReactionEventCertainty fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("unlikely".equals(codeString)) + return UNLIKELY; + if ("likely".equals(codeString)) + return LIKELY; + if ("confirmed".equals(codeString)) + return CONFIRMED; + throw new Exception("Unknown ReactionEventCertainty code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case UNLIKELY: return "unlikely"; + case LIKELY: return "likely"; + case CONFIRMED: return "confirmed"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case UNLIKELY: return ""; + case LIKELY: return ""; + case CONFIRMED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case UNLIKELY: return "There is a low level of clinical certainty that the reaction was caused by the identified Substance."; + case LIKELY: return "There is a high level of clinical certainty that the reaction was caused by the identified Substance."; + case CONFIRMED: return "There is a very high level of clinical certainty that the reaction was due to the identified Substance, which may include clinical evidence by testing or rechallenge."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case UNLIKELY: return "Unlikely"; + case LIKELY: return "Likely"; + case CONFIRMED: return "Confirmed"; + default: return "?"; + } + } + } + + public static class ReactionEventCertaintyEnumFactory implements EnumFactory { + public ReactionEventCertainty fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("unlikely".equals(codeString)) + return ReactionEventCertainty.UNLIKELY; + if ("likely".equals(codeString)) + return ReactionEventCertainty.LIKELY; + if ("confirmed".equals(codeString)) + return ReactionEventCertainty.CONFIRMED; + throw new IllegalArgumentException("Unknown ReactionEventCertainty code '"+codeString+"'"); + } + public String toCode(ReactionEventCertainty code) { + if (code == ReactionEventCertainty.UNLIKELY) + return "unlikely"; + if (code == ReactionEventCertainty.LIKELY) + return "likely"; + if (code == ReactionEventCertainty.CONFIRMED) + return "confirmed"; + return "?"; + } + } + + public enum ReactionEventSeverity { + /** + * Causes mild physiological effects. + */ + MILD, + /** + * Causes moderate physiological effects. + */ + MODERATE, + /** + * Causes severe physiological effects. + */ + SEVERE, + /** + * added to help the parsers + */ + NULL; + public static ReactionEventSeverity fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("mild".equals(codeString)) + return MILD; + if ("moderate".equals(codeString)) + return MODERATE; + if ("severe".equals(codeString)) + return SEVERE; + throw new Exception("Unknown ReactionEventSeverity code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case MILD: return "mild"; + case MODERATE: return "moderate"; + case SEVERE: return "severe"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case MILD: return ""; + case MODERATE: return ""; + case SEVERE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case MILD: return "Causes mild physiological effects."; + case MODERATE: return "Causes moderate physiological effects."; + case SEVERE: return "Causes severe physiological effects."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case MILD: return "Mild"; + case MODERATE: return "Moderate"; + case SEVERE: return "Severe"; + default: return "?"; + } + } + } + + public static class ReactionEventSeverityEnumFactory implements EnumFactory { + public ReactionEventSeverity fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("mild".equals(codeString)) + return ReactionEventSeverity.MILD; + if ("moderate".equals(codeString)) + return ReactionEventSeverity.MODERATE; + if ("severe".equals(codeString)) + return ReactionEventSeverity.SEVERE; + throw new IllegalArgumentException("Unknown ReactionEventSeverity code '"+codeString+"'"); + } + public String toCode(ReactionEventSeverity code) { + if (code == ReactionEventSeverity.MILD) + return "mild"; + if (code == ReactionEventSeverity.MODERATE) + return "moderate"; + if (code == ReactionEventSeverity.SEVERE) + return "severe"; + return "?"; + } + } + + @Block() + public static class AllergyIntoleranceEventComponent extends BackboneElement { + /** + * Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance. + */ + @Child(name="substance", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Specific substance considered to be responsible for event", formalDefinition="Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance." ) + protected CodeableConcept substance; + + /** + * Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event. + */ + @Child(name="certainty", type={CodeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="unlikely | likely | confirmed - clinical certainty about the specific substance", formalDefinition="Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event." ) + protected Enumeration certainty; + + /** + * Clinical symptoms and/or signs that are observed or associated with the Adverse Reaction Event. + */ + @Child(name="manifestation", type={CodeableConcept.class}, order=3, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Clinical symptoms/signs associated with the Event", formalDefinition="Clinical symptoms and/or signs that are observed or associated with the Adverse Reaction Event." ) + protected List manifestation; + + /** + * Text description about the Reaction as a whole, including details of the manifestation if required. + */ + @Child(name="description", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Description of the event as a whole", formalDefinition="Text description about the Reaction as a whole, including details of the manifestation if required." ) + protected StringType description; + + /** + * Record of the date and/or time of the onset of the Reaction. + */ + @Child(name="onset", type={DateTimeType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Date(/time) when manifestations showed", formalDefinition="Record of the date and/or time of the onset of the Reaction." ) + protected DateTimeType onset; + + /** + * The amount of time that the Adverse Reaction persisted. + */ + @Child(name="duration", type={Duration.class}, order=6, min=0, max=1) + @Description(shortDefinition="How long Manifestations persisted", formalDefinition="The amount of time that the Adverse Reaction persisted." ) + protected Duration duration; + + /** + * Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations. + */ + @Child(name="severity", type={CodeType.class}, order=7, min=0, max=1) + @Description(shortDefinition="mild | moderate | severe (of event as a whole)", formalDefinition="Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations." ) + protected Enumeration severity; + + /** + * Identification of the route by which the subject was exposed to the substance. + */ + @Child(name="exposureRoute", type={CodeableConcept.class}, order=8, min=0, max=1) + @Description(shortDefinition="How the subject was exposed to the substance", formalDefinition="Identification of the route by which the subject was exposed to the substance." ) + protected CodeableConcept exposureRoute; + + /** + * Additional text about the Adverse Reaction event not captured in other fields. + */ + @Child(name="comment", type={StringType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Text about event not captured in other fields", formalDefinition="Additional text about the Adverse Reaction event not captured in other fields." ) + protected StringType comment; + + private static final long serialVersionUID = -1773271720L; + + public AllergyIntoleranceEventComponent() { + super(); + } + + /** + * @return {@link #substance} (Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance.) + */ + public CodeableConcept getSubstance() { + if (this.substance == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.substance"); + else if (Configuration.doAutoCreate()) + this.substance = new CodeableConcept(); // cc + return this.substance; + } + + public boolean hasSubstance() { + return this.substance != null && !this.substance.isEmpty(); + } + + /** + * @param value {@link #substance} (Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance.) + */ + public AllergyIntoleranceEventComponent setSubstance(CodeableConcept value) { + this.substance = value; + return this; + } + + /** + * @return {@link #certainty} (Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event.). This is the underlying object with id, value and extensions. The accessor "getCertainty" gives direct access to the value + */ + public Enumeration getCertaintyElement() { + if (this.certainty == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.certainty"); + else if (Configuration.doAutoCreate()) + this.certainty = new Enumeration(new ReactionEventCertaintyEnumFactory()); // bb + return this.certainty; + } + + public boolean hasCertaintyElement() { + return this.certainty != null && !this.certainty.isEmpty(); + } + + public boolean hasCertainty() { + return this.certainty != null && !this.certainty.isEmpty(); + } + + /** + * @param value {@link #certainty} (Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event.). This is the underlying object with id, value and extensions. The accessor "getCertainty" gives direct access to the value + */ + public AllergyIntoleranceEventComponent setCertaintyElement(Enumeration value) { + this.certainty = value; + return this; + } + + /** + * @return Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event. + */ + public ReactionEventCertainty getCertainty() { + return this.certainty == null ? null : this.certainty.getValue(); + } + + /** + * @param value Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event. + */ + public AllergyIntoleranceEventComponent setCertainty(ReactionEventCertainty value) { + if (value == null) + this.certainty = null; + else { + if (this.certainty == null) + this.certainty = new Enumeration(new ReactionEventCertaintyEnumFactory()); + this.certainty.setValue(value); + } + return this; + } + + /** + * @return {@link #manifestation} (Clinical symptoms and/or signs that are observed or associated with the Adverse Reaction Event.) + */ + public List getManifestation() { + if (this.manifestation == null) + this.manifestation = new ArrayList(); + return this.manifestation; + } + + public boolean hasManifestation() { + if (this.manifestation == null) + return false; + for (CodeableConcept item : this.manifestation) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #manifestation} (Clinical symptoms and/or signs that are observed or associated with the Adverse Reaction Event.) + */ + // syntactic sugar + public CodeableConcept addManifestation() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.manifestation == null) + this.manifestation = new ArrayList(); + this.manifestation.add(t); + return t; + } + + /** + * @return {@link #description} (Text description about the Reaction as a whole, including details of the manifestation if required.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Text description about the Reaction as a whole, including details of the manifestation if required.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public AllergyIntoleranceEventComponent setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Text description about the Reaction as a whole, including details of the manifestation if required. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Text description about the Reaction as a whole, including details of the manifestation if required. + */ + public AllergyIntoleranceEventComponent setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #onset} (Record of the date and/or time of the onset of the Reaction.). This is the underlying object with id, value and extensions. The accessor "getOnset" gives direct access to the value + */ + public DateTimeType getOnsetElement() { + if (this.onset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.onset"); + else if (Configuration.doAutoCreate()) + this.onset = new DateTimeType(); // bb + return this.onset; + } + + public boolean hasOnsetElement() { + return this.onset != null && !this.onset.isEmpty(); + } + + public boolean hasOnset() { + return this.onset != null && !this.onset.isEmpty(); + } + + /** + * @param value {@link #onset} (Record of the date and/or time of the onset of the Reaction.). This is the underlying object with id, value and extensions. The accessor "getOnset" gives direct access to the value + */ + public AllergyIntoleranceEventComponent setOnsetElement(DateTimeType value) { + this.onset = value; + return this; + } + + /** + * @return Record of the date and/or time of the onset of the Reaction. + */ + public Date getOnset() { + return this.onset == null ? null : this.onset.getValue(); + } + + /** + * @param value Record of the date and/or time of the onset of the Reaction. + */ + public AllergyIntoleranceEventComponent setOnset(Date value) { + if (value == null) + this.onset = null; + else { + if (this.onset == null) + this.onset = new DateTimeType(); + this.onset.setValue(value); + } + return this; + } + + /** + * @return {@link #duration} (The amount of time that the Adverse Reaction persisted.) + */ + public Duration getDuration() { + if (this.duration == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.duration"); + else if (Configuration.doAutoCreate()) + this.duration = new Duration(); // cc + return this.duration; + } + + public boolean hasDuration() { + return this.duration != null && !this.duration.isEmpty(); + } + + /** + * @param value {@link #duration} (The amount of time that the Adverse Reaction persisted.) + */ + public AllergyIntoleranceEventComponent setDuration(Duration value) { + this.duration = value; + return this; + } + + /** + * @return {@link #severity} (Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value + */ + public Enumeration getSeverityElement() { + if (this.severity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.severity"); + else if (Configuration.doAutoCreate()) + this.severity = new Enumeration(new ReactionEventSeverityEnumFactory()); // bb + return this.severity; + } + + public boolean hasSeverityElement() { + return this.severity != null && !this.severity.isEmpty(); + } + + public boolean hasSeverity() { + return this.severity != null && !this.severity.isEmpty(); + } + + /** + * @param value {@link #severity} (Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value + */ + public AllergyIntoleranceEventComponent setSeverityElement(Enumeration value) { + this.severity = value; + return this; + } + + /** + * @return Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations. + */ + public ReactionEventSeverity getSeverity() { + return this.severity == null ? null : this.severity.getValue(); + } + + /** + * @param value Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations. + */ + public AllergyIntoleranceEventComponent setSeverity(ReactionEventSeverity value) { + if (value == null) + this.severity = null; + else { + if (this.severity == null) + this.severity = new Enumeration(new ReactionEventSeverityEnumFactory()); + this.severity.setValue(value); + } + return this; + } + + /** + * @return {@link #exposureRoute} (Identification of the route by which the subject was exposed to the substance.) + */ + public CodeableConcept getExposureRoute() { + if (this.exposureRoute == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.exposureRoute"); + else if (Configuration.doAutoCreate()) + this.exposureRoute = new CodeableConcept(); // cc + return this.exposureRoute; + } + + public boolean hasExposureRoute() { + return this.exposureRoute != null && !this.exposureRoute.isEmpty(); + } + + /** + * @param value {@link #exposureRoute} (Identification of the route by which the subject was exposed to the substance.) + */ + public AllergyIntoleranceEventComponent setExposureRoute(CodeableConcept value) { + this.exposureRoute = value; + return this; + } + + /** + * @return {@link #comment} (Additional text about the Adverse Reaction event not captured in other fields.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value + */ + public StringType getCommentElement() { + if (this.comment == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntoleranceEventComponent.comment"); + else if (Configuration.doAutoCreate()) + this.comment = new StringType(); // bb + return this.comment; + } + + public boolean hasCommentElement() { + return this.comment != null && !this.comment.isEmpty(); + } + + public boolean hasComment() { + return this.comment != null && !this.comment.isEmpty(); + } + + /** + * @param value {@link #comment} (Additional text about the Adverse Reaction event not captured in other fields.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value + */ + public AllergyIntoleranceEventComponent setCommentElement(StringType value) { + this.comment = value; + return this; + } + + /** + * @return Additional text about the Adverse Reaction event not captured in other fields. + */ + public String getComment() { + return this.comment == null ? null : this.comment.getValue(); + } + + /** + * @param value Additional text about the Adverse Reaction event not captured in other fields. + */ + public AllergyIntoleranceEventComponent setComment(String value) { + if (Utilities.noString(value)) + this.comment = null; + else { + if (this.comment == null) + this.comment = new StringType(); + this.comment.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("substance", "CodeableConcept", "Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance.", 0, java.lang.Integer.MAX_VALUE, substance)); + childrenList.add(new Property("certainty", "code", "Statement about the degree of clinical certainty that the Specific Substance was the cause of the Manifestation in this reaction event.", 0, java.lang.Integer.MAX_VALUE, certainty)); + childrenList.add(new Property("manifestation", "CodeableConcept", "Clinical symptoms and/or signs that are observed or associated with the Adverse Reaction Event.", 0, java.lang.Integer.MAX_VALUE, manifestation)); + childrenList.add(new Property("description", "string", "Text description about the Reaction as a whole, including details of the manifestation if required.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("onset", "dateTime", "Record of the date and/or time of the onset of the Reaction.", 0, java.lang.Integer.MAX_VALUE, onset)); + childrenList.add(new Property("duration", "Duration", "The amount of time that the Adverse Reaction persisted.", 0, java.lang.Integer.MAX_VALUE, duration)); + childrenList.add(new Property("severity", "code", "Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations.", 0, java.lang.Integer.MAX_VALUE, severity)); + childrenList.add(new Property("exposureRoute", "CodeableConcept", "Identification of the route by which the subject was exposed to the substance.", 0, java.lang.Integer.MAX_VALUE, exposureRoute)); + childrenList.add(new Property("comment", "string", "Additional text about the Adverse Reaction event not captured in other fields.", 0, java.lang.Integer.MAX_VALUE, comment)); + } + + public AllergyIntoleranceEventComponent copy() { + AllergyIntoleranceEventComponent dst = new AllergyIntoleranceEventComponent(); + copyValues(dst); + dst.substance = substance == null ? null : substance.copy(); + dst.certainty = certainty == null ? null : certainty.copy(); + if (manifestation != null) { + dst.manifestation = new ArrayList(); + for (CodeableConcept i : manifestation) + dst.manifestation.add(i.copy()); + }; + dst.description = description == null ? null : description.copy(); + dst.onset = onset == null ? null : onset.copy(); + dst.duration = duration == null ? null : duration.copy(); + dst.severity = severity == null ? null : severity.copy(); + dst.exposureRoute = exposureRoute == null ? null : exposureRoute.copy(); + dst.comment = comment == null ? null : comment.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof AllergyIntoleranceEventComponent)) + return false; + AllergyIntoleranceEventComponent o = (AllergyIntoleranceEventComponent) other; + return compareDeep(substance, o.substance, true) && compareDeep(certainty, o.certainty, true) && compareDeep(manifestation, o.manifestation, true) + && compareDeep(description, o.description, true) && compareDeep(onset, o.onset, true) && compareDeep(duration, o.duration, true) + && compareDeep(severity, o.severity, true) && compareDeep(exposureRoute, o.exposureRoute, true) + && compareDeep(comment, o.comment, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof AllergyIntoleranceEventComponent)) + return false; + AllergyIntoleranceEventComponent o = (AllergyIntoleranceEventComponent) other; + return compareValues(certainty, o.certainty, true) && compareValues(description, o.description, true) + && compareValues(onset, o.onset, true) && compareValues(severity, o.severity, true) && compareValues(comment, o.comment, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (substance == null || substance.isEmpty()) && (certainty == null || certainty.isEmpty()) + && (manifestation == null || manifestation.isEmpty()) && (description == null || description.isEmpty()) + && (onset == null || onset.isEmpty()) && (duration == null || duration.isEmpty()) && (severity == null || severity.isEmpty()) + && (exposureRoute == null || exposureRoute.isEmpty()) && (comment == null || comment.isEmpty()) + ; + } + + } + + /** + * This records identifiers associated with this allergy/intolerance concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="External Ids for this item", formalDefinition="This records identifiers associated with this allergy/intolerance concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) + protected List identifier; + + /** + * Date when the sensitivity was recorded. + */ + @Child(name="recordedDate", type={DateTimeType.class}, order=0, min=0, max=1) + @Description(shortDefinition="When recorded", formalDefinition="Date when the sensitivity was recorded." ) + protected DateTimeType recordedDate; + + /** + * Indicates who has responsibility for the record. + */ + @Child(name="recorder", type={Practitioner.class, Patient.class}, order=1, min=0, max=1) + @Description(shortDefinition="Who recorded the sensitivity", formalDefinition="Indicates who has responsibility for the record." ) + protected Reference recorder; + + /** + * The actual object that is the target of the reference (Indicates who has responsibility for the record.) + */ + protected Resource recorderTarget; + + /** + * The patient who has the allergy or intolerance. + */ + @Child(name="subject", type={Patient.class}, order=2, min=1, max=1) + @Description(shortDefinition="Who the sensitivity is for", formalDefinition="The patient who has the allergy or intolerance." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (The patient who has the allergy or intolerance.) + */ + protected Patient subjectTarget; + + /** + * Identification of a substance, or a class of substances, that is considered to be responsible for the Adverse reaction risk. + */ + @Child(name="substance", type={CodeableConcept.class}, order=3, min=1, max=1) + @Description(shortDefinition="Substance, (or class) considered to be responsible for risk", formalDefinition="Identification of a substance, or a class of substances, that is considered to be responsible for the Adverse reaction risk." ) + protected CodeableConcept substance; + + /** + * Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance. + */ + @Child(name="status", type={CodeType.class}, order=4, min=0, max=1) + @Description(shortDefinition="unconfirmed | confirmed | resolved | refuted", formalDefinition="Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance." ) + protected Enumeration status; + + /** + * Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance. + */ + @Child(name="criticality", type={CodeType.class}, order=5, min=0, max=1) + @Description(shortDefinition="low | high | unassessible - Estimated potential clinical harm", formalDefinition="Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance." ) + protected Enumeration criticality; + + /** + * Identification of the underlying physiological mechanism for the Reaction Risk. + */ + @Child(name="type", type={CodeType.class}, order=6, min=0, max=1) + @Description(shortDefinition="immune | non-immune - Underlying mechanism (if known)", formalDefinition="Identification of the underlying physiological mechanism for the Reaction Risk." ) + protected Enumeration type; + + /** + * Category of the identified Substance. + */ + @Child(name="category", type={CodeType.class}, order=7, min=0, max=1) + @Description(shortDefinition="food | medication | environment - Category of Substance", formalDefinition="Category of the identified Substance." ) + protected Enumeration category; + + /** + * Represents the date and/or time of the last known occurence of a reaction event. + */ + @Child(name="lastOccurence", type={DateTimeType.class}, order=8, min=0, max=1) + @Description(shortDefinition="Date(/time) of last known occurence of a reaction", formalDefinition="Represents the date and/or time of the last known occurence of a reaction event." ) + protected DateTimeType lastOccurence; + + /** + * Additional narrative about the propensity for the Adverse Reaction, not captured in other fields. + */ + @Child(name="comment", type={StringType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Additional text not captured in other fields", formalDefinition="Additional narrative about the propensity for the Adverse Reaction, not captured in other fields." ) + protected StringType comment; + + /** + * Details about each Adverse Reaction Event linked to exposure to the identified Substance. + */ + @Child(name="event", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Adverse Reaction Events linked to exposure to substance", formalDefinition="Details about each Adverse Reaction Event linked to exposure to the identified Substance." ) + protected List event; + + private static final long serialVersionUID = -571844748L; + + public AllergyIntolerance() { + super(); + } + + public AllergyIntolerance(Reference subject, CodeableConcept substance) { + super(); + this.subject = subject; + this.substance = substance; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this allergy/intolerance concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this allergy/intolerance concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #recordedDate} (Date when the sensitivity was recorded.). This is the underlying object with id, value and extensions. The accessor "getRecordedDate" gives direct access to the value + */ + public DateTimeType getRecordedDateElement() { + if (this.recordedDate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntolerance.recordedDate"); + else if (Configuration.doAutoCreate()) + this.recordedDate = new DateTimeType(); // bb + return this.recordedDate; + } + + public boolean hasRecordedDateElement() { + return this.recordedDate != null && !this.recordedDate.isEmpty(); + } + + public boolean hasRecordedDate() { + return this.recordedDate != null && !this.recordedDate.isEmpty(); + } + + /** + * @param value {@link #recordedDate} (Date when the sensitivity was recorded.). This is the underlying object with id, value and extensions. The accessor "getRecordedDate" gives direct access to the value + */ + public AllergyIntolerance setRecordedDateElement(DateTimeType value) { + this.recordedDate = value; + return this; + } + + /** + * @return Date when the sensitivity was recorded. + */ + public Date getRecordedDate() { + return this.recordedDate == null ? null : this.recordedDate.getValue(); + } + + /** + * @param value Date when the sensitivity was recorded. + */ + public AllergyIntolerance setRecordedDate(Date value) { + if (value == null) + this.recordedDate = null; + else { + if (this.recordedDate == null) + this.recordedDate = new DateTimeType(); + this.recordedDate.setValue(value); + } + return this; + } + + /** + * @return {@link #recorder} (Indicates who has responsibility for the record.) + */ + public Reference getRecorder() { + if (this.recorder == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntolerance.recorder"); + else if (Configuration.doAutoCreate()) + this.recorder = new Reference(); // cc + return this.recorder; + } + + public boolean hasRecorder() { + return this.recorder != null && !this.recorder.isEmpty(); + } + + /** + * @param value {@link #recorder} (Indicates who has responsibility for the record.) + */ + public AllergyIntolerance setRecorder(Reference value) { + this.recorder = value; + return this; + } + + /** + * @return {@link #recorder} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates who has responsibility for the record.) + */ + public Resource getRecorderTarget() { + return this.recorderTarget; + } + + /** + * @param value {@link #recorder} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates who has responsibility for the record.) + */ + public AllergyIntolerance setRecorderTarget(Resource value) { + this.recorderTarget = value; + return this; + } + + /** + * @return {@link #subject} (The patient who has the allergy or intolerance.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntolerance.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (The patient who has the allergy or intolerance.) + */ + public AllergyIntolerance setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient who has the allergy or intolerance.) + */ + public Patient getSubjectTarget() { + if (this.subjectTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntolerance.subject"); + else if (Configuration.doAutoCreate()) + this.subjectTarget = new Patient(); // aa + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient who has the allergy or intolerance.) + */ + public AllergyIntolerance setSubjectTarget(Patient value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #substance} (Identification of a substance, or a class of substances, that is considered to be responsible for the Adverse reaction risk.) + */ + public CodeableConcept getSubstance() { + if (this.substance == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntolerance.substance"); + else if (Configuration.doAutoCreate()) + this.substance = new CodeableConcept(); // cc + return this.substance; + } + + public boolean hasSubstance() { + return this.substance != null && !this.substance.isEmpty(); + } + + /** + * @param value {@link #substance} (Identification of a substance, or a class of substances, that is considered to be responsible for the Adverse reaction risk.) + */ + public AllergyIntolerance setSubstance(CodeableConcept value) { + this.substance = value; + return this; + } + + /** + * @return {@link #status} (Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntolerance.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new AllergyIntoleranceStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public AllergyIntolerance setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance. + */ + public AllergyIntoleranceStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance. + */ + public AllergyIntolerance setStatus(AllergyIntoleranceStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new AllergyIntoleranceStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #criticality} (Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance.). This is the underlying object with id, value and extensions. The accessor "getCriticality" gives direct access to the value + */ + public Enumeration getCriticalityElement() { + if (this.criticality == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntolerance.criticality"); + else if (Configuration.doAutoCreate()) + this.criticality = new Enumeration(new AllergyIntoleranceCriticalityEnumFactory()); // bb + return this.criticality; + } + + public boolean hasCriticalityElement() { + return this.criticality != null && !this.criticality.isEmpty(); + } + + public boolean hasCriticality() { + return this.criticality != null && !this.criticality.isEmpty(); + } + + /** + * @param value {@link #criticality} (Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance.). This is the underlying object with id, value and extensions. The accessor "getCriticality" gives direct access to the value + */ + public AllergyIntolerance setCriticalityElement(Enumeration value) { + this.criticality = value; + return this; + } + + /** + * @return Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance. + */ + public AllergyIntoleranceCriticality getCriticality() { + return this.criticality == null ? null : this.criticality.getValue(); + } + + /** + * @param value Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance. + */ + public AllergyIntolerance setCriticality(AllergyIntoleranceCriticality value) { + if (value == null) + this.criticality = null; + else { + if (this.criticality == null) + this.criticality = new Enumeration(new AllergyIntoleranceCriticalityEnumFactory()); + this.criticality.setValue(value); + } + return this; + } + + /** + * @return {@link #type} (Identification of the underlying physiological mechanism for the Reaction Risk.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public Enumeration getTypeElement() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntolerance.type"); + else if (Configuration.doAutoCreate()) + this.type = new Enumeration(new AllergyIntoleranceTypeEnumFactory()); // bb + return this.type; + } + + public boolean hasTypeElement() { + return this.type != null && !this.type.isEmpty(); + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Identification of the underlying physiological mechanism for the Reaction Risk.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public AllergyIntolerance setTypeElement(Enumeration value) { + this.type = value; + return this; + } + + /** + * @return Identification of the underlying physiological mechanism for the Reaction Risk. + */ + public AllergyIntoleranceType getType() { + return this.type == null ? null : this.type.getValue(); + } + + /** + * @param value Identification of the underlying physiological mechanism for the Reaction Risk. + */ + public AllergyIntolerance setType(AllergyIntoleranceType value) { + if (value == null) + this.type = null; + else { + if (this.type == null) + this.type = new Enumeration(new AllergyIntoleranceTypeEnumFactory()); + this.type.setValue(value); + } + return this; + } + + /** + * @return {@link #category} (Category of the identified Substance.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value + */ + public Enumeration getCategoryElement() { + if (this.category == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntolerance.category"); + else if (Configuration.doAutoCreate()) + this.category = new Enumeration(new AllergyIntoleranceCategoryEnumFactory()); // bb + return this.category; + } + + public boolean hasCategoryElement() { + return this.category != null && !this.category.isEmpty(); + } + + public boolean hasCategory() { + return this.category != null && !this.category.isEmpty(); + } + + /** + * @param value {@link #category} (Category of the identified Substance.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value + */ + public AllergyIntolerance setCategoryElement(Enumeration value) { + this.category = value; + return this; + } + + /** + * @return Category of the identified Substance. + */ + public AllergyIntoleranceCategory getCategory() { + return this.category == null ? null : this.category.getValue(); + } + + /** + * @param value Category of the identified Substance. + */ + public AllergyIntolerance setCategory(AllergyIntoleranceCategory value) { + if (value == null) + this.category = null; + else { + if (this.category == null) + this.category = new Enumeration(new AllergyIntoleranceCategoryEnumFactory()); + this.category.setValue(value); + } + return this; + } + + /** + * @return {@link #lastOccurence} (Represents the date and/or time of the last known occurence of a reaction event.). This is the underlying object with id, value and extensions. The accessor "getLastOccurence" gives direct access to the value + */ + public DateTimeType getLastOccurenceElement() { + if (this.lastOccurence == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntolerance.lastOccurence"); + else if (Configuration.doAutoCreate()) + this.lastOccurence = new DateTimeType(); // bb + return this.lastOccurence; + } + + public boolean hasLastOccurenceElement() { + return this.lastOccurence != null && !this.lastOccurence.isEmpty(); + } + + public boolean hasLastOccurence() { + return this.lastOccurence != null && !this.lastOccurence.isEmpty(); + } + + /** + * @param value {@link #lastOccurence} (Represents the date and/or time of the last known occurence of a reaction event.). This is the underlying object with id, value and extensions. The accessor "getLastOccurence" gives direct access to the value + */ + public AllergyIntolerance setLastOccurenceElement(DateTimeType value) { + this.lastOccurence = value; + return this; + } + + /** + * @return Represents the date and/or time of the last known occurence of a reaction event. + */ + public Date getLastOccurence() { + return this.lastOccurence == null ? null : this.lastOccurence.getValue(); + } + + /** + * @param value Represents the date and/or time of the last known occurence of a reaction event. + */ + public AllergyIntolerance setLastOccurence(Date value) { + if (value == null) + this.lastOccurence = null; + else { + if (this.lastOccurence == null) + this.lastOccurence = new DateTimeType(); + this.lastOccurence.setValue(value); + } + return this; + } + + /** + * @return {@link #comment} (Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value + */ + public StringType getCommentElement() { + if (this.comment == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AllergyIntolerance.comment"); + else if (Configuration.doAutoCreate()) + this.comment = new StringType(); // bb + return this.comment; + } + + public boolean hasCommentElement() { + return this.comment != null && !this.comment.isEmpty(); + } + + public boolean hasComment() { + return this.comment != null && !this.comment.isEmpty(); + } + + /** + * @param value {@link #comment} (Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value + */ + public AllergyIntolerance setCommentElement(StringType value) { + this.comment = value; + return this; + } + + /** + * @return Additional narrative about the propensity for the Adverse Reaction, not captured in other fields. + */ + public String getComment() { + return this.comment == null ? null : this.comment.getValue(); + } + + /** + * @param value Additional narrative about the propensity for the Adverse Reaction, not captured in other fields. + */ + public AllergyIntolerance setComment(String value) { + if (Utilities.noString(value)) + this.comment = null; + else { + if (this.comment == null) + this.comment = new StringType(); + this.comment.setValue(value); + } + return this; + } + + /** + * @return {@link #event} (Details about each Adverse Reaction Event linked to exposure to the identified Substance.) + */ + public List getEvent() { + if (this.event == null) + this.event = new ArrayList(); + return this.event; + } + + public boolean hasEvent() { + if (this.event == null) + return false; + for (AllergyIntoleranceEventComponent item : this.event) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #event} (Details about each Adverse Reaction Event linked to exposure to the identified Substance.) + */ + // syntactic sugar + public AllergyIntoleranceEventComponent addEvent() { //3 + AllergyIntoleranceEventComponent t = new AllergyIntoleranceEventComponent(); + if (this.event == null) + this.event = new ArrayList(); + this.event.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this allergy/intolerance concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("recordedDate", "dateTime", "Date when the sensitivity was recorded.", 0, java.lang.Integer.MAX_VALUE, recordedDate)); + childrenList.add(new Property("recorder", "Reference(Practitioner|Patient)", "Indicates who has responsibility for the record.", 0, java.lang.Integer.MAX_VALUE, recorder)); + childrenList.add(new Property("subject", "Reference(Patient)", "The patient who has the allergy or intolerance.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("substance", "CodeableConcept", "Identification of a substance, or a class of substances, that is considered to be responsible for the Adverse reaction risk.", 0, java.lang.Integer.MAX_VALUE, substance)); + childrenList.add(new Property("status", "code", "Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("criticality", "code", "Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance.", 0, java.lang.Integer.MAX_VALUE, criticality)); + childrenList.add(new Property("type", "code", "Identification of the underlying physiological mechanism for the Reaction Risk.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("category", "code", "Category of the identified Substance.", 0, java.lang.Integer.MAX_VALUE, category)); + childrenList.add(new Property("lastOccurence", "dateTime", "Represents the date and/or time of the last known occurence of a reaction event.", 0, java.lang.Integer.MAX_VALUE, lastOccurence)); + childrenList.add(new Property("comment", "string", "Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.", 0, java.lang.Integer.MAX_VALUE, comment)); + childrenList.add(new Property("event", "", "Details about each Adverse Reaction Event linked to exposure to the identified Substance.", 0, java.lang.Integer.MAX_VALUE, event)); + } + + public AllergyIntolerance copy() { + AllergyIntolerance dst = new AllergyIntolerance(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.recordedDate = recordedDate == null ? null : recordedDate.copy(); + dst.recorder = recorder == null ? null : recorder.copy(); + dst.subject = subject == null ? null : subject.copy(); + dst.substance = substance == null ? null : substance.copy(); + dst.status = status == null ? null : status.copy(); + dst.criticality = criticality == null ? null : criticality.copy(); + dst.type = type == null ? null : type.copy(); + dst.category = category == null ? null : category.copy(); + dst.lastOccurence = lastOccurence == null ? null : lastOccurence.copy(); + dst.comment = comment == null ? null : comment.copy(); + if (event != null) { + dst.event = new ArrayList(); + for (AllergyIntoleranceEventComponent i : event) + dst.event.add(i.copy()); + }; + return dst; + } + + protected AllergyIntolerance typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof AllergyIntolerance)) + return false; + AllergyIntolerance o = (AllergyIntolerance) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(recordedDate, o.recordedDate, true) + && compareDeep(recorder, o.recorder, true) && compareDeep(subject, o.subject, true) && compareDeep(substance, o.substance, true) + && compareDeep(status, o.status, true) && compareDeep(criticality, o.criticality, true) && compareDeep(type, o.type, true) + && compareDeep(category, o.category, true) && compareDeep(lastOccurence, o.lastOccurence, true) + && compareDeep(comment, o.comment, true) && compareDeep(event, o.event, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof AllergyIntolerance)) + return false; + AllergyIntolerance o = (AllergyIntolerance) other; + return compareValues(recordedDate, o.recordedDate, true) && compareValues(status, o.status, true) && compareValues(criticality, o.criticality, true) + && compareValues(type, o.type, true) && compareValues(category, o.category, true) && compareValues(lastOccurence, o.lastOccurence, true) + && compareValues(comment, o.comment, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (recordedDate == null || recordedDate.isEmpty()) + && (recorder == null || recorder.isEmpty()) && (subject == null || subject.isEmpty()) && (substance == null || substance.isEmpty()) + && (status == null || status.isEmpty()) && (criticality == null || criticality.isEmpty()) + && (type == null || type.isEmpty()) && (category == null || category.isEmpty()) && (lastOccurence == null || lastOccurence.isEmpty()) + && (comment == null || comment.isEmpty()) && (event == null || event.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.AllergyIntolerance; + } + + @SearchParamDefinition(name="status", path="AllergyIntolerance.status", description="unconfirmed | confirmed | resolved | refuted", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="subject", path="AllergyIntolerance.subject", description="Who the sensitivity is for", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="onset", path="AllergyIntolerance.event.onset", description="Date(/time) when manifestations showed", type="date" ) + public static final String SP_ONSET = "onset"; + @SearchParamDefinition(name="last-date", path="AllergyIntolerance.lastOccurence", description="Date(/time) of last known occurence of a reaction", type="date" ) + public static final String SP_LASTDATE = "last-date"; + @SearchParamDefinition(name="severity", path="AllergyIntolerance.event.severity", description="mild | moderate | severe (of event as a whole)", type="token" ) + public static final String SP_SEVERITY = "severity"; + @SearchParamDefinition(name="date", path="AllergyIntolerance.recordedDate", description="When recorded", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="type", path="AllergyIntolerance.type", description="immune | non-immune - Underlying mechanism (if known)", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="substance", path="AllergyIntolerance.substance|AllergyIntolerance.event.substance", description="Substance, (or class) considered to be responsible for risk", type="token" ) + public static final String SP_SUBSTANCE = "substance"; + @SearchParamDefinition(name="criticality", path="AllergyIntolerance.criticality", description="low | high | unassessible - Estimated potential clinical harm", type="token" ) + public static final String SP_CRITICALITY = "criticality"; + @SearchParamDefinition(name="category", path="AllergyIntolerance.category", description="food | medication | environment - Category of Substance", type="token" ) + public static final String SP_CATEGORY = "category"; + @SearchParamDefinition(name="duration", path="AllergyIntolerance.event.duration", description="How long Manifestations persisted", type="quantity" ) + public static final String SP_DURATION = "duration"; + @SearchParamDefinition(name="patient", path="AllergyIntolerance.subject", description="Who the sensitivity is for", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="recorder", path="AllergyIntolerance.recorder", description="Who recorded the sensitivity", type="reference" ) + public static final String SP_RECORDER = "recorder"; + @SearchParamDefinition(name="route", path="AllergyIntolerance.event.exposureRoute", description="How the subject was exposed to the substance", type="token" ) + public static final String SP_ROUTE = "route"; + @SearchParamDefinition(name="identifier", path="AllergyIntolerance.identifier", description="External Ids for this item", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + @SearchParamDefinition(name="manifestation", path="AllergyIntolerance.event.manifestation", description="Clinical symptoms/signs associated with the Event", type="token" ) + public static final String SP_MANIFESTATION = "manifestation"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$1.class new file mode 100644 index 0000000000000000000000000000000000000000..984b7f56b5711f3c12f671e2b2961f3a9305f69c GIT binary patch literal 2182 zcmbtWO>Y}j6g`u#vE6Co(n6B}r4+Y~`G{#tTZ-EdcRZ%k*fXx}B(wqAi9JoGIO8xG z7bMst!5*n>S+GNDkfI7f1zQAyJrdnlf**jy$GKCCUC1IN(&U_b-p76Sz5CvEzWw8i zI{=PjF@dM?OdMl)Hcsm~krOI1BAypGDsW8TxWEeuoWMyLe=1JvMUfL?ofdd0fh^8Q z@7Xx5Ns;W$;$?v;ftf|Td4hK^r% zQ_HP}+f3zFR$87PF1vo%YjaH4URBUHZz?Ek!B^P{La*+vIDQzoZ?(O^ZEVv~=(QyD zD6H6-deig0a8g14czRaBfX>}07%qCgYqggb+@R(xG}*GV8ankic?ywc5)>q=t#(j% z3!d~Rdk$dYx^u&!6T`1JTdSVGSaQRqRzt;k6{d!16g517$2F8-X|PdNFeXznO~+r% zSgmTizEtqsX2S@AR-oac466uK1!@8_uvE;7vsX3j7iX7nS;M@*Yq+f9b?LjJ;W6pE z3P;0&KwY3A;0jy=15Gor874L(iOqBpn~4&e>DgE6r~)X^Oy73{z3Hs3x=d}d8@j!4 z-K~cTj%?DQg6t+orvAAHz3JPtVe8Nhr`eXsrpD9r#ceE*RS?VRx>2qfc?D;;=}K({ z4bOL)(N*JXh~*8vXjzM9i(rfqHI z+@apW2XPWPaErW# zukbbb8+?Z!$UovI{7k-!d-#R?D}KZ8|!FIoM1Kn9v|ZhQfw<>|D1|LC~W{N z_=hn2V8_2?cUm-<3mm4?K5lHBJb*N@z`ujE$3!J#{J$ZM3sa-qcp7u$EcuP8(Z2v@ C8AMh9 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$AppointmentParticipantComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$AppointmentParticipantComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..852dce40e79b9b86f146e63f70ca28a4b6e90698 GIT binary patch literal 9632 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 Ib4FJD4(^b literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$AppointmentstatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$AppointmentstatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..924ccb3e31bcf41129d9c8f48ea61c671454ec9d GIT binary patch literal 2085 zcmbVNTXWk)6#h1GELo8oN2HYWhC>61V_HLjl#r0raqQOAwL{#bq+At8c9h7Hk>$4h z1%}~X+H#rUTCNX*hh&D%08c#dXZQyUXD!!JNbo~EO=S-R;|HPfj(s?(@5$XV0W?3AI_>l&Gb(cHRvRZSSGSxFQfTQ@6{ zv7BXB5^KhpM0riO6S_%z&61X=(uqdG7jxK$z4((1;i99KHZH2Q79S~ny`(&&yaqkwK_w<|@@t z#w9G0+$)x~p{>eT;+CM=wtkhHm$?}#H;l4w7<}P{=0b^=*;`m{Za1y^nsrUa6>dGW zEmD@8DyosRD-GUT?Fus-+II59oo(pGs%A4p7tIaRx@JawS$ItoEm31dM`XN+mlzm< zm+=bE?Nzd71iZ#DvF~P)5yO~_6L^GSZr@RSC1p6eD}x=6Bij;q-NG=^>EQp{?CD2E z)Lw6>23?+m{tj<7V(bdlbv~V+%jVB9bnZ(Z?LFF!4w@|#E~MuuU~*w0yTnl_vzW_d zbGar?CG)AYhlBY-@qFPj?NMvIIY`4M?%%?p--%6ElkY5jGJv-c#ydEScPZWX@G#z|j{g9s@gc@>12gyt zDcnR3w=j>}SjNY6y*@!1pJE-KVT2;|A{3UH-27pb76K$eg#L7OXyl6Bpd+~qGjU4s z4uVR+B_wbZ+UK2EHG&*|Ou1tfe)U%;<0fUj`` z-%!EsP#)hBmG6+i_ms;In81&i!cR@UB7#zg{~}4E7;jM=YEcZ0#s9$ICJyt%b`+M} wPvB8<;~5=qxd+Ec-y^$xeL8gGWRvzOBE#uFM&tm6&>*rHK08RlXOTzfUl&Xk2><{9 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$Participantrequired.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$Participantrequired.class new file mode 100644 index 0000000000000000000000000000000000000000..3e4081151517e6c616c299da42c812e68ab517b3 GIT binary patch literal 2808 zcmbtVYf~Fl7=AV+*(F^dF1?EqX=)SNlA^X%p%mJJMpM!fKvTRe$pYJMcGG0j%8Y-+ z@gMjpQU^NLOUFyq&UpLa?Sr=u-u{H+b2dOiNoP7`lihRPv+p_2dwbr!{oi{Z0(cyi zR`_u`gfkeGaY)89A?(Am;*nJFTnNu2rQobk8ds1O<2eQA#W*1&BV#gzFs2kti}3{o zFN!f6LI*CiVg@gTsQI#jR}{Re;57xhf~Z)VRS;7USI{fY%E`z}P$ovtPbDWt&q(Mz zr8x zl^7`&9n*FThV4e1oHjtb^ts7odVC}$p(8mymYz5}BINXVDl5T1K9%ANIXXR(ni|bW z7@FB4T=0r+RfOHcvG`Wc@}H)UG&^P5#(1SLYm_GSS&J*O2a=wXa6Xp0s9(_&mTu1{ zGH%JV=Lh0jbz#u7O?ODb&L)Q^UlyOk1cX^DvyWv=8DYUZ|OTs?Q`tX^C- zHZ=Nr&M3O3V>2p2*Qsf3kHt4z&Xea2H?vrFje>+W&d(Tg!WeFr5E8OkE?W8`0S9x| zs+sAAgGTL2VQ@?S53y!K8K+Xp8DpjhcDSL&`b4l*926uvq{6_QjClzITPRT#{a8>* z(kCQ9hNC;&2{~-qb55zCi_jc)Y->?PT&#E2%V9n45_Z*B zYejOZVp@5lByf*O=$W!F+0Iov(u6{h9E&h=K!pY7MB>E8fY|5AD5|&&9#V$OS0^PL zn_Ms=#X74aW;wFvNW^s_y6YNtKH^eKuQRu=$;N`d7+G`KTD<$ld=o_5aqj^&5^FF) z7^=@Y6<63+I1~{_FutA?@AJ~5qE`gCy&g(YY!U)F%duG}8!I|Jd(p_btfd3@SQ`?K zHqy=Oe*+Dby-x0p_(TZTS87V68M~=&k#9R1&s?=Bet`<~otcnuxKW`A#)fhc?bLPF zKsKDcww1jgevckU`z4G;GgnPFx4?E0<+dpMd{p%L=vtqTdVN0Hz`ftD^&=RC& z_->-5N=d>IK7-!7D)syE*sA_M_`KC^o$&WwN8l#>n>Y9b)u|`|y3xWPY2SOWYX!k~ zHl2QyD?S_}%5kF9HoZl!gk96Ux1efr?=qA(5s<1{Yi%koAyn12tqW>ZYg-rEt2fY* zy@7Cc1rKQ2GCKLHQ`^qRGIp$B=SLo*@bFQh0w1FdpYTKfDR$#Cbm12E<8!u}FKEw~ zwCpyXq?U|8o205Lo}wVk>)`z~2KW?y=2ruAWC^>7x4Z9cF7n#XTeu=((8ar(caPRe z>uGaU+asdq^TNFo0nWc-8oy@3z9ALAWum_Gz=QBdeLfNT!TUs%t6J^93GsU({y@YZ ziTD!{f4&3p#C;;}t!fWewXP;U{zAlGiTE24e<$J}cOVYkC*s|s`X>?pBI4gf{D+AD zZa`FUl4-8x@eSryT$4B8&uR~~tl;5m2zf%c-xE|%hy*;L-4h-OdP0x<0XMa?RpgWtG(EFpLq};KM1FD4=oX#~AjL K+%p^zR{jV66s0l% literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$ParticipantrequiredEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$ParticipantrequiredEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..a95ad137772c4fbf1723744ad11b77ceb5455d61 GIT binary patch literal 1898 zcmbtUOLG%P5dOxNw5w$e^4ees*s+O?EeRtY2_(o5gpojrEcpRcnc^~Duf@V@R;*V6 z@=x*ya!ZwxgIxtxkW&u%F{wZvBvlE}BgytU7Utl?&UDZAbbsCbP5<)d>2m-Vu%Mw2 zNfoCxjN^=oR1`fptKyv8&#Sl~_fHjkrr@H61Jd-8+&@?Gh1@S|(2!O!pOI>_ z*<#J-!n9Hqis_^>)v9X?zhVi0xJ`sKL)W6u%?Go*+QOt|ADdRyw_QO2Bfi^&N0Ijv zCcYat!*DR0tf*BemtE=o&ulB{ZNtV*hUlVQ7Tm9SRM&3;eoD*tEz?i$317O%anpCb zClh-beyE&NR8Vcvt$C)Evt@^4fg5KeW*x`y5d#!tb>wiJNU+&%9XF6C-ECB#J379U zddwE9u2Wan??7qT=ECilfEa#fnUnJ*PH z1)3uHVy?6>n~{2{SXd$;yjrycO^fj$kTx%62Lp(ys_$+l(>vDo?d?cy(<4o^Jqs70 zJcej8_JQFj4c;*AM1ES2lh#i=y#s_38(=?>z;J@rNaOHVT8SR$XqbMF5J`ZU{298@ zkz7aTw=jZAnAMF?^IZ86;kpsoQk1%(ZYk0FGiXcCaA0YJJaw((ApJUM9HM0%u?=*; zpfDW`APJiBz;EcnOTzq$&VI)T{y-dm;ynJsMZCr|{>BXcp)3IvkuII-x{i~ig(v}y zJ|a4;GT*!8S0*u(B!J%`Vub1>DN>3^DJmtkZWwhkYC;&GDFOUT>wo0z4Z86by;QT~ zjOflf8ezle)S}T?h9Zr$A`P`7MH9)N(6f$S>2XJO$-Ez@$V>toXqiV6RExvAYy;_Z eVzhy6jEW#JCh#%s21z}b#K4tf)a*%IMf4pOIrJw0 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$Participationstatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$Participationstatus.class new file mode 100644 index 0000000000000000000000000000000000000000..0f318b172958bc1050172ff5d3c0d483f00b0814 GIT binary patch literal 3617 zcmb_eTXWmi5&n)ui4YCREPP4qx(TY#ktkcF0jyeJBPYiVrM)fLpoUOIeT`$-Lt!g z|N8G={s!P3{B8g-+)kj3N*vR1EG3Y|hw}B2hH3(LaZkg2DfB?YcP0IvhVM&iX;_xj z)=-nw(Xb-vY8-2ExCtD`Lk*84^)%Ea^%FRTU;qt#oS(r`(`WvTs#ar{U?o6F_$i!5Oj9lAoSdkm}&B%&cO#!{& z`%akitY*_8`))A^SF>y0RCZ;}4YRJ4^KB5DJsC4pG!PO&HuPc6+A z@8l_Z_1*#D^sif9OZqiCnm(wmSdK9eI9zmnr_`!1J7L9I_Baz)Miy2CZjBZnTI*KU zv;5U;ISO5Wbvk`e7iL`FjjjqD@1nerUSdGY?yAqz42h+8RL*ECVNmbD9V|zd{phCE z*aVx%e_}fgl>q|%QP7b(I-1^(oSIjisQjcEIdy?Se$P8A5)9KvAR&3T+3>6 zn=lu4Da!k;`pkj+zsj6Sl!I1iJ2zYz?BuQ-%*bHtxFXAOTF0mOaU7osOdlYHbb4Pa4XZxH4UfY@NB-Qnn>(!i4;>-&S-|-*$ z!DHX-Qj(_4q%}u$`~tre5d8QY@5_B(#POw$U*Xp}euLj~>6*ZJWz8`gTV2AB%r&cN zZh3A-T(ou?Kt`b2O@1pfd*w~bubGcs&oliX+OZNjrt9yOrS5-s(`{~t*?aQ;fti&x zw@JraUd>!4=2jHcc{aA?ahDxB7SF(3rUJ96a$6w_osU~?=rqlhR!C1nbMy3A!c?*n zgv1${w&g38o7s?|DMzj}=@c#2>#k~!^v8-!D^Qze)JZv7UEia|ROx3%0X5VZ9C;8c()?Cr_d<~& zv)9%5QdRH6T?!+(Jr-kIsOh<@4k%?e=O@U*(b#7ux-=zSHfal6` z*)7n;#tXG7@5U(DGV+4%t*va_>6i34H7Rf-RetP7_8NP8irZ4Wv{UlZPHkPAgsB*<*6&AFgwX#5Ly22(PmG`jt7vk(<#aZrzqQ+qU>ghvV$qg zvj&nUWnZR-0shV4UGO$1H%uy@#0JDu^n8upHaUT7eD}*W(NFnV%x%iQg&wuz&=JJO z{*1n_5!=6^NA_z9N&|1Amw)WtV`ol1L;s)lX`kmz5Aw8fgH}45{zGpiu20AQ3EhZ~ zJ%#oM^oh1H(D{sSAkj7sZ8Lh?7~E!t+Q#8+CfPQ=vCSB5v?N{r&PNFy!Aa88`TMR69_ z#5nJ%42mL)MKOV@n8X8d4)0M%0@|R^)r0Slmku7|DByj*Wu(5`3~hb`-y)PZGJoVG zpDP?P82uch9A`K(9FrX9Ii`#O#)1)`-}II~wv9LCq4cOz9EQgI7ce2@wKqkemvC8J z#*DZ^z|*)cW)#2y#3y>xLu((r0#xy~vFCpus#&6%BdY5}l_RQoqRJE14WfE)KdRy@ zKxMX#Z?}!%w((ZmNVSdAU1IeCQ5A{mCQ+4$YJsR0iRu+QiDkz O!yQbr9X3dj)cyxQAaO4M literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$ParticipationstatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment$ParticipationstatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..bfda38e95d8a423f38aed44519cc000f55c65424 GIT binary patch literal 2125 zcmbtVT~`}r5PpV_><60?w$w^L5G)k}(r8s`g+kM?Xfy=cq$t&@%Vr4+o85G?p&x#G z>Ae^J0k5MMaE?7kz4F38<3I2??}mmTh!^CXyfgFeyfe?t`^@g2fB*6;fY)HExQJI} zTvge4UB(*<1~4V#nvieGxGv;dGNy%`k#R%FSs8Oe-jtA*a7#s>2$2zTUWOs$f{Fy* zmhp~+cU4@#dt%8+Sd_3NVVMw{aXcrSC3KD@R|s7hzho17bB<@{>ywkbbbPNCnqj?0(6XLq2N~C_)oeCzkL5PaZ8PPXUO80=1IH^*Cv$#K zPHni?QtKN|kaEOX&$3e$&grJo)vE7!Va4{sks~rp6XJ!?w6+$_>K-Q5cx2ht2m}`r z`b~J8`6OwQhj9}|+N&|VdWCB_RNlYbT1D?WMkfhM!6|#(wSfEjq%F?U+NN!V)5pRW zAr?$4^n=GU$2$IBJ7>9}YQe7umc8JJ8&0&HxFRrXcmYEMNVu)x4hl>H(-IB0OB#x} z%XZ1OTxJT}E5cSnzC32dwyoiPv7tKNWHsNf=Gk_sHpwM1 znKaxJdoS*{EbF><*>uxExh|N|x^cqUeWzxtZ`B>QWCwiwuD9j+551uyXf$Lo*@i|n ze29+-#L9hqEGqqktvLyw5~fc;9}P*2Yq*4$2n#2O({{~-!6WK8;E>pFMUz8>(c_Z; z*WqR#d6w)4b<^c3KGV+oJ$feZ@x`Yz8DqI<%oA>$h=m+#-pJ&#c@at}8u? z?8sR@Q2Mio{DwTXv27!SVSdwI1m7ON;JaD!F!4Ifme}RFLihMC=qFZ~vb@H`Cav+x z^g&1D`WL!b1HPO11Df73v4hSZptl>{)X=+{`_j+oZs@U=AvJWlWhf0@Z5cfcU27Tf zhJLDL^fsO%vHBE!tGm$k(>v(rNB#O4UUu-@F3$eOXgVUixA@ZnDj`lb&e1w9P#KqL z14(jll{PU&TbLsk8LA*h9)E3otWp*C=>gU$z$Vo&%F%kD#5K~QAI5m2i(8Q3KaUcx zqGR84O3{Y72`=$R#PqHPYm(4nLQ{k$3#~_Js?g#>(}dP5v{McJ`38q*VxK~sv2R17 zhfwJe`sgwG=?Tu$XBec#ECtK!+Q{w z@rmCtu!D0V*@25?_e*%0-9$x$d+xDu?(g|SzHNQz#AF2f3R01L1(#Xse0~5~jNBYx Jo@J4T@(-$UACUk6 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment.class new file mode 100644 index 0000000000000000000000000000000000000000..6f59bcf69ef3e16558472ea05e820a8fb35fc2c2 GIT binary patch literal 24221 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 F_CGewmq7pk literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Appointment.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment.java similarity index 81% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Appointment.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment.java index 1a30371bb15..72ea1d50ed9 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Appointment.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Appointment.java @@ -1,1367 +1,1509 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A scheduled healthcare event for a patient and/or practitioner(s) where a service may take place at a specific date/time. - */ -@ResourceDef(name="Appointment", profile="http://hl7.org/fhir/Profile/Appointment") -public class Appointment extends DomainResource { - - public enum Participantrequired implements FhirEnum { - /** - * The participant is required to attend the appointment. - */ - REQUIRED, - /** - * The participant may optionally attend the appointment. - */ - OPTIONAL, - /** - * The participant is not required to attend the appointment (appointment is about them, not for them). - */ - INFORMATIONONLY, - /** - * added to help the parsers - */ - NULL; - - public static final ParticipantrequiredEnumFactory ENUM_FACTORY = new ParticipantrequiredEnumFactory(); - - public static Participantrequired fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("required".equals(codeString)) - return REQUIRED; - if ("optional".equals(codeString)) - return OPTIONAL; - if ("information-only".equals(codeString)) - return INFORMATIONONLY; - throw new IllegalArgumentException("Unknown Participantrequired code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case REQUIRED: return "required"; - case OPTIONAL: return "optional"; - case INFORMATIONONLY: return "information-only"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case REQUIRED: return ""; - case OPTIONAL: return ""; - case INFORMATIONONLY: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case REQUIRED: return "The participant is required to attend the appointment."; - case OPTIONAL: return "The participant may optionally attend the appointment."; - case INFORMATIONONLY: return "The participant is not required to attend the appointment (appointment is about them, not for them)."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case REQUIRED: return "required"; - case OPTIONAL: return "optional"; - case INFORMATIONONLY: return "information-only"; - default: return "?"; - } - } - } - - public static class ParticipantrequiredEnumFactory implements EnumFactory { - public Participantrequired fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("required".equals(codeString)) - return Participantrequired.REQUIRED; - if ("optional".equals(codeString)) - return Participantrequired.OPTIONAL; - if ("information-only".equals(codeString)) - return Participantrequired.INFORMATIONONLY; - throw new IllegalArgumentException("Unknown Participantrequired code '"+codeString+"'"); - } - public String toCode(Participantrequired code) throws IllegalArgumentException { - if (code == Participantrequired.REQUIRED) - return "required"; - if (code == Participantrequired.OPTIONAL) - return "optional"; - if (code == Participantrequired.INFORMATIONONLY) - return "information-only"; - return "?"; - } - } - - public enum Participationstatus implements FhirEnum { - /** - * The participant has accepted the appointment. - */ - ACCEPTED, - /** - * The participant has declined the appointment and will not participate in the appointment. - */ - DECLINED, - /** - * The participant has tentatively accepted the appointment. This could be automatically created by a system and requires further processing before it can be accepted. There is no commitment that attendance will occur. - */ - TENTATIVE, - /** - * The participant has started the appointment. - */ - INPROCESS, - /** - * The participant's involvement in the appointment has been completed. - */ - COMPLETED, - /** - * The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses. - */ - NEEDSACTION, - /** - * added to help the parsers - */ - NULL; - - public static final ParticipationstatusEnumFactory ENUM_FACTORY = new ParticipationstatusEnumFactory(); - - public static Participationstatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("accepted".equals(codeString)) - return ACCEPTED; - if ("declined".equals(codeString)) - return DECLINED; - if ("tentative".equals(codeString)) - return TENTATIVE; - if ("in-process".equals(codeString)) - return INPROCESS; - if ("completed".equals(codeString)) - return COMPLETED; - if ("needs-action".equals(codeString)) - return NEEDSACTION; - throw new IllegalArgumentException("Unknown Participationstatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case ACCEPTED: return "accepted"; - case DECLINED: return "declined"; - case TENTATIVE: return "tentative"; - case INPROCESS: return "in-process"; - case COMPLETED: return "completed"; - case NEEDSACTION: return "needs-action"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case ACCEPTED: return ""; - case DECLINED: return ""; - case TENTATIVE: return ""; - case INPROCESS: return ""; - case COMPLETED: return ""; - case NEEDSACTION: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case ACCEPTED: return "The participant has accepted the appointment."; - case DECLINED: return "The participant has declined the appointment and will not participate in the appointment."; - case TENTATIVE: return "The participant has tentatively accepted the appointment. This could be automatically created by a system and requires further processing before it can be accepted. There is no commitment that attendance will occur."; - case INPROCESS: return "The participant has started the appointment."; - case COMPLETED: return "The participant's involvement in the appointment has been completed."; - case NEEDSACTION: return "The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case ACCEPTED: return "accepted"; - case DECLINED: return "declined"; - case TENTATIVE: return "tentative"; - case INPROCESS: return "in-process"; - case COMPLETED: return "completed"; - case NEEDSACTION: return "needs-action"; - default: return "?"; - } - } - } - - public static class ParticipationstatusEnumFactory implements EnumFactory { - public Participationstatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("accepted".equals(codeString)) - return Participationstatus.ACCEPTED; - if ("declined".equals(codeString)) - return Participationstatus.DECLINED; - if ("tentative".equals(codeString)) - return Participationstatus.TENTATIVE; - if ("in-process".equals(codeString)) - return Participationstatus.INPROCESS; - if ("completed".equals(codeString)) - return Participationstatus.COMPLETED; - if ("needs-action".equals(codeString)) - return Participationstatus.NEEDSACTION; - throw new IllegalArgumentException("Unknown Participationstatus code '"+codeString+"'"); - } - public String toCode(Participationstatus code) throws IllegalArgumentException { - if (code == Participationstatus.ACCEPTED) - return "accepted"; - if (code == Participationstatus.DECLINED) - return "declined"; - if (code == Participationstatus.TENTATIVE) - return "tentative"; - if (code == Participationstatus.INPROCESS) - return "in-process"; - if (code == Participationstatus.COMPLETED) - return "completed"; - if (code == Participationstatus.NEEDSACTION) - return "needs-action"; - return "?"; - } - } - - @Block() - public static class AppointmentParticipantComponent extends BackboneElement { - /** - * Role of participant in the appointment. - */ - @Child(name="type", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Role of participant in the appointment", formalDefinition="Role of participant in the appointment." ) - protected List type; - - /** - * A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device. - */ - @Child(name="actor", type={}, order=2, min=0, max=1) - @Description(shortDefinition="A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device", formalDefinition="A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device." ) - protected Reference actor; - - /** - * The actual object that is the target of the reference (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) - */ - protected Resource actorTarget; - - /** - * Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present. - */ - @Child(name="required", type={CodeType.class}, order=3, min=0, max=1) - @Description(shortDefinition="required | optional | information-only", formalDefinition="Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present." ) - protected Enumeration required; - - /** - * Participation status of the Patient. - */ - @Child(name="status", type={CodeType.class}, order=4, min=1, max=1) - @Description(shortDefinition="accepted | declined | tentative | in-process | completed | needs-action", formalDefinition="Participation status of the Patient." ) - protected Enumeration status; - - private static final long serialVersionUID = -1009855227L; - - public AppointmentParticipantComponent() { - super(); - } - - public AppointmentParticipantComponent(Enumeration status) { - super(); - this.status = status; - } - - /** - * @return {@link #type} (Role of participant in the appointment.) - */ - public List getType() { - if (this.type == null) - this.type = new ArrayList(); - return this.type; - } - - public boolean hasType() { - if (this.type == null) - return false; - for (CodeableConcept item : this.type) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #type} (Role of participant in the appointment.) - */ - // syntactic sugar - public CodeableConcept addType() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.type == null) - this.type = new ArrayList(); - this.type.add(t); - return t; - } - - /** - * @return {@link #actor} (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) - */ - public Reference getActor() { - if (this.actor == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AppointmentParticipantComponent.actor"); - else if (Configuration.doAutoCreate()) - this.actor = new Reference(); - return this.actor; - } - - public boolean hasActor() { - return this.actor != null && !this.actor.isEmpty(); - } - - /** - * @param value {@link #actor} (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) - */ - public AppointmentParticipantComponent setActor(Reference value) { - this.actor = value; - return this; - } - - /** - * @return {@link #actor} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) - */ - public Resource getActorTarget() { - return this.actorTarget; - } - - /** - * @param value {@link #actor} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) - */ - public AppointmentParticipantComponent setActorTarget(Resource value) { - this.actorTarget = value; - return this; - } - - /** - * @return {@link #required} (Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.). This is the underlying object with id, value and extensions. The accessor "getRequired" gives direct access to the value - */ - public Enumeration getRequiredElement() { - if (this.required == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AppointmentParticipantComponent.required"); - else if (Configuration.doAutoCreate()) - this.required = new Enumeration(); - return this.required; - } - - public boolean hasRequiredElement() { - return this.required != null && !this.required.isEmpty(); - } - - public boolean hasRequired() { - return this.required != null && !this.required.isEmpty(); - } - - /** - * @param value {@link #required} (Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.). This is the underlying object with id, value and extensions. The accessor "getRequired" gives direct access to the value - */ - public AppointmentParticipantComponent setRequiredElement(Enumeration value) { - this.required = value; - return this; - } - - /** - * @return Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present. - */ - public Participantrequired getRequired() { - return this.required == null ? null : this.required.getValue(); - } - - /** - * @param value Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present. - */ - public AppointmentParticipantComponent setRequired(Participantrequired value) { - if (value == null) - this.required = null; - else { - if (this.required == null) - this.required = new Enumeration(Participantrequired.ENUM_FACTORY); - this.required.setValue(value); - } - return this; - } - - /** - * @return {@link #status} (Participation status of the Patient.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AppointmentParticipantComponent.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (Participation status of the Patient.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public AppointmentParticipantComponent setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return Participation status of the Patient. - */ - public Participationstatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value Participation status of the Patient. - */ - public AppointmentParticipantComponent setStatus(Participationstatus value) { - if (this.status == null) - this.status = new Enumeration(Participationstatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "CodeableConcept", "Role of participant in the appointment.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("actor", "Reference(Any)", "A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.", 0, java.lang.Integer.MAX_VALUE, actor)); - childrenList.add(new Property("required", "code", "Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.", 0, java.lang.Integer.MAX_VALUE, required)); - childrenList.add(new Property("status", "code", "Participation status of the Patient.", 0, java.lang.Integer.MAX_VALUE, status)); - } - - public AppointmentParticipantComponent copy() { - AppointmentParticipantComponent dst = new AppointmentParticipantComponent(); - copyValues(dst); - if (type != null) { - dst.type = new ArrayList(); - for (CodeableConcept i : type) - dst.type.add(i.copy()); - }; - dst.actor = actor == null ? null : actor.copy(); - dst.required = required == null ? null : required.copy(); - dst.status = status == null ? null : status.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (actor == null || actor.isEmpty()) - && (required == null || required.isEmpty()) && (status == null || status.isEmpty()); - } - - } - - /** - * This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External Ids for this item", formalDefinition="This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) - protected List identifier; - - /** - * The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept). - */ - @Child(name="priority", type={IntegerType.class}, order=0, min=0, max=1) - @Description(shortDefinition="The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept)", formalDefinition="The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept)." ) - protected IntegerType priority; - - /** - * Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. - */ - @Child(name="status", type={CodeType.class}, order=1, min=0, max=1) - @Description(shortDefinition="The overall status of the Appointment", formalDefinition="Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status." ) - protected CodeType status; - - /** - * The type of appointments that is being booked (ideally this would be an identifiable service - which is at a location, rather than the location itself). - */ - @Child(name="type", type={CodeableConcept.class}, order=2, min=0, max=1) - @Description(shortDefinition="The type of appointments that is being booked (ideally this would be an identifiable service - which is at a location, rather than the location itself)", formalDefinition="The type of appointments that is being booked (ideally this would be an identifiable service - which is at a location, rather than the location itself)." ) - protected CodeableConcept type; - - /** - * The reason that this appointment is being scheduled, this is more clinical than administrative. - */ - @Child(name="reason", type={CodeableConcept.class}, order=3, min=0, max=1) - @Description(shortDefinition="The reason that this appointment is being scheduled, this is more clinical than administrative", formalDefinition="The reason that this appointment is being scheduled, this is more clinical than administrative." ) - protected CodeableConcept reason; - - /** - * The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field. - */ - @Child(name="description", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field", formalDefinition="The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field." ) - protected StringType description; - - /** - * Date/Time that the appointment is to take place. - */ - @Child(name="start", type={InstantType.class}, order=5, min=1, max=1) - @Description(shortDefinition="Date/Time that the appointment is to take place", formalDefinition="Date/Time that the appointment is to take place." ) - protected InstantType start; - - /** - * Date/Time that the appointment is to conclude. - */ - @Child(name="end", type={InstantType.class}, order=6, min=1, max=1) - @Description(shortDefinition="Date/Time that the appointment is to conclude", formalDefinition="Date/Time that the appointment is to conclude." ) - protected InstantType end; - - /** - * The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot. - */ - @Child(name="slot", type={Slot.class}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot", formalDefinition="The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot." ) - protected List slot; - /** - * The actual objects that are the target of the reference (The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot.) - */ - protected List slotTarget; - - - /** - * The primary location that this appointment is to take place. - */ - @Child(name="location", type={Location.class}, order=8, min=0, max=1) - @Description(shortDefinition="The primary location that this appointment is to take place", formalDefinition="The primary location that this appointment is to take place." ) - protected Reference location; - - /** - * The actual object that is the target of the reference (The primary location that this appointment is to take place.) - */ - protected Location locationTarget; - - /** - * Additional comments about the appointment. - */ - @Child(name="comment", type={StringType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Additional comments about the appointment", formalDefinition="Additional comments about the appointment." ) - protected StringType comment; - - /** - * An Order that lead to the creation of this appointment. - */ - @Child(name="order", type={Order.class}, order=10, min=0, max=1) - @Description(shortDefinition="An Order that lead to the creation of this appointment", formalDefinition="An Order that lead to the creation of this appointment." ) - protected Reference order; - - /** - * The actual object that is the target of the reference (An Order that lead to the creation of this appointment.) - */ - protected Order orderTarget; - - /** - * List of participants involved in the appointment. - */ - @Child(name="participant", type={}, order=11, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="List of participants involved in the appointment", formalDefinition="List of participants involved in the appointment." ) - protected List participant; - - /** - * Who recorded the appointment. - */ - @Child(name="lastModifiedBy", type={Practitioner.class, Patient.class, RelatedPerson.class}, order=12, min=0, max=1) - @Description(shortDefinition="Who recorded the appointment", formalDefinition="Who recorded the appointment." ) - protected Reference lastModifiedBy; - - /** - * The actual object that is the target of the reference (Who recorded the appointment.) - */ - protected Resource lastModifiedByTarget; - - /** - * Date when the appointment was recorded. - */ - @Child(name="lastModified", type={DateTimeType.class}, order=13, min=0, max=1) - @Description(shortDefinition="Date when the appointment was recorded", formalDefinition="Date when the appointment was recorded." ) - protected DateTimeType lastModified; - - private static final long serialVersionUID = 897214982L; - - public Appointment() { - super(); - } - - public Appointment(InstantType start, InstantType end) { - super(); - this.start = start; - this.end = end; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #priority} (The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept).). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value - */ - public IntegerType getPriorityElement() { - if (this.priority == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.priority"); - else if (Configuration.doAutoCreate()) - this.priority = new IntegerType(); - return this.priority; - } - - public boolean hasPriorityElement() { - return this.priority != null && !this.priority.isEmpty(); - } - - public boolean hasPriority() { - return this.priority != null && !this.priority.isEmpty(); - } - - /** - * @param value {@link #priority} (The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept).). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value - */ - public Appointment setPriorityElement(IntegerType value) { - this.priority = value; - return this; - } - - /** - * @return The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept). - */ - public int getPriority() { - return this.priority == null ? null : this.priority.getValue(); - } - - /** - * @param value The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept). - */ - public Appointment setPriority(int value) { - if (value == -1) - this.priority = null; - else { - if (this.priority == null) - this.priority = new IntegerType(); - this.priority.setValue(value); - } - return this; - } - - /** - * @return {@link #status} (Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public CodeType getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.status"); - else if (Configuration.doAutoCreate()) - this.status = new CodeType(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Appointment setStatusElement(CodeType value) { - this.status = value; - return this; - } - - /** - * @return Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. - */ - public String getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. - */ - public Appointment setStatus(String value) { - if (Utilities.noString(value)) - this.status = null; - else { - if (this.status == null) - this.status = new CodeType(); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #type} (The type of appointments that is being booked (ideally this would be an identifiable service - which is at a location, rather than the location itself).) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The type of appointments that is being booked (ideally this would be an identifiable service - which is at a location, rather than the location itself).) - */ - public Appointment setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #reason} (The reason that this appointment is being scheduled, this is more clinical than administrative.) - */ - public CodeableConcept getReason() { - if (this.reason == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.reason"); - else if (Configuration.doAutoCreate()) - this.reason = new CodeableConcept(); - return this.reason; - } - - public boolean hasReason() { - return this.reason != null && !this.reason.isEmpty(); - } - - /** - * @param value {@link #reason} (The reason that this appointment is being scheduled, this is more clinical than administrative.) - */ - public Appointment setReason(CodeableConcept value) { - this.reason = value; - return this; - } - - /** - * @return {@link #description} (The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public Appointment setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field. - */ - public Appointment setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #start} (Date/Time that the appointment is to take place.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value - */ - public InstantType getStartElement() { - if (this.start == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.start"); - else if (Configuration.doAutoCreate()) - this.start = new InstantType(); - return this.start; - } - - public boolean hasStartElement() { - return this.start != null && !this.start.isEmpty(); - } - - public boolean hasStart() { - return this.start != null && !this.start.isEmpty(); - } - - /** - * @param value {@link #start} (Date/Time that the appointment is to take place.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value - */ - public Appointment setStartElement(InstantType value) { - this.start = value; - return this; - } - - /** - * @return Date/Time that the appointment is to take place. - */ - public Date getStart() { - return this.start == null ? null : this.start.getValue(); - } - - /** - * @param value Date/Time that the appointment is to take place. - */ - public Appointment setStart(Date value) { - if (this.start == null) - this.start = new InstantType(); - this.start.setValue(value); - return this; - } - - /** - * @return {@link #end} (Date/Time that the appointment is to conclude.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value - */ - public InstantType getEndElement() { - if (this.end == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.end"); - else if (Configuration.doAutoCreate()) - this.end = new InstantType(); - return this.end; - } - - public boolean hasEndElement() { - return this.end != null && !this.end.isEmpty(); - } - - public boolean hasEnd() { - return this.end != null && !this.end.isEmpty(); - } - - /** - * @param value {@link #end} (Date/Time that the appointment is to conclude.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value - */ - public Appointment setEndElement(InstantType value) { - this.end = value; - return this; - } - - /** - * @return Date/Time that the appointment is to conclude. - */ - public Date getEnd() { - return this.end == null ? null : this.end.getValue(); - } - - /** - * @param value Date/Time that the appointment is to conclude. - */ - public Appointment setEnd(Date value) { - if (this.end == null) - this.end = new InstantType(); - this.end.setValue(value); - return this; - } - - /** - * @return {@link #slot} (The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot.) - */ - public List getSlot() { - if (this.slot == null) - this.slot = new ArrayList(); - return this.slot; - } - - public boolean hasSlot() { - if (this.slot == null) - return false; - for (Reference item : this.slot) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #slot} (The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot.) - */ - // syntactic sugar - public Reference addSlot() { //3 - Reference t = new Reference(); - if (this.slot == null) - this.slot = new ArrayList(); - this.slot.add(t); - return t; - } - - /** - * @return {@link #slot} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot.) - */ - public List getSlotTarget() { - if (this.slotTarget == null) - this.slotTarget = new ArrayList(); - return this.slotTarget; - } - - // syntactic sugar - /** - * @return {@link #slot} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot.) - */ - public Slot addSlotTarget() { - Slot r = new Slot(); - if (this.slotTarget == null) - this.slotTarget = new ArrayList(); - this.slotTarget.add(r); - return r; - } - - /** - * @return {@link #location} (The primary location that this appointment is to take place.) - */ - public Reference getLocation() { - if (this.location == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.location"); - else if (Configuration.doAutoCreate()) - this.location = new Reference(); - return this.location; - } - - public boolean hasLocation() { - return this.location != null && !this.location.isEmpty(); - } - - /** - * @param value {@link #location} (The primary location that this appointment is to take place.) - */ - public Appointment setLocation(Reference value) { - this.location = value; - return this; - } - - /** - * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The primary location that this appointment is to take place.) - */ - public Location getLocationTarget() { - if (this.locationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.location"); - else if (Configuration.doAutoCreate()) - this.locationTarget = new Location(); - return this.locationTarget; - } - - /** - * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The primary location that this appointment is to take place.) - */ - public Appointment setLocationTarget(Location value) { - this.locationTarget = value; - return this; - } - - /** - * @return {@link #comment} (Additional comments about the appointment.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value - */ - public StringType getCommentElement() { - if (this.comment == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.comment"); - else if (Configuration.doAutoCreate()) - this.comment = new StringType(); - return this.comment; - } - - public boolean hasCommentElement() { - return this.comment != null && !this.comment.isEmpty(); - } - - public boolean hasComment() { - return this.comment != null && !this.comment.isEmpty(); - } - - /** - * @param value {@link #comment} (Additional comments about the appointment.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value - */ - public Appointment setCommentElement(StringType value) { - this.comment = value; - return this; - } - - /** - * @return Additional comments about the appointment. - */ - public String getComment() { - return this.comment == null ? null : this.comment.getValue(); - } - - /** - * @param value Additional comments about the appointment. - */ - public Appointment setComment(String value) { - if (Utilities.noString(value)) - this.comment = null; - else { - if (this.comment == null) - this.comment = new StringType(); - this.comment.setValue(value); - } - return this; - } - - /** - * @return {@link #order} (An Order that lead to the creation of this appointment.) - */ - public Reference getOrder() { - if (this.order == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.order"); - else if (Configuration.doAutoCreate()) - this.order = new Reference(); - return this.order; - } - - public boolean hasOrder() { - return this.order != null && !this.order.isEmpty(); - } - - /** - * @param value {@link #order} (An Order that lead to the creation of this appointment.) - */ - public Appointment setOrder(Reference value) { - this.order = value; - return this; - } - - /** - * @return {@link #order} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (An Order that lead to the creation of this appointment.) - */ - public Order getOrderTarget() { - if (this.orderTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.order"); - else if (Configuration.doAutoCreate()) - this.orderTarget = new Order(); - return this.orderTarget; - } - - /** - * @param value {@link #order} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (An Order that lead to the creation of this appointment.) - */ - public Appointment setOrderTarget(Order value) { - this.orderTarget = value; - return this; - } - - /** - * @return {@link #participant} (List of participants involved in the appointment.) - */ - public List getParticipant() { - if (this.participant == null) - this.participant = new ArrayList(); - return this.participant; - } - - public boolean hasParticipant() { - if (this.participant == null) - return false; - for (AppointmentParticipantComponent item : this.participant) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #participant} (List of participants involved in the appointment.) - */ - // syntactic sugar - public AppointmentParticipantComponent addParticipant() { //3 - AppointmentParticipantComponent t = new AppointmentParticipantComponent(); - if (this.participant == null) - this.participant = new ArrayList(); - this.participant.add(t); - return t; - } - - /** - * @return {@link #lastModifiedBy} (Who recorded the appointment.) - */ - public Reference getLastModifiedBy() { - if (this.lastModifiedBy == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.lastModifiedBy"); - else if (Configuration.doAutoCreate()) - this.lastModifiedBy = new Reference(); - return this.lastModifiedBy; - } - - public boolean hasLastModifiedBy() { - return this.lastModifiedBy != null && !this.lastModifiedBy.isEmpty(); - } - - /** - * @param value {@link #lastModifiedBy} (Who recorded the appointment.) - */ - public Appointment setLastModifiedBy(Reference value) { - this.lastModifiedBy = value; - return this; - } - - /** - * @return {@link #lastModifiedBy} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who recorded the appointment.) - */ - public Resource getLastModifiedByTarget() { - return this.lastModifiedByTarget; - } - - /** - * @param value {@link #lastModifiedBy} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who recorded the appointment.) - */ - public Appointment setLastModifiedByTarget(Resource value) { - this.lastModifiedByTarget = value; - return this; - } - - /** - * @return {@link #lastModified} (Date when the appointment was recorded.). This is the underlying object with id, value and extensions. The accessor "getLastModified" gives direct access to the value - */ - public DateTimeType getLastModifiedElement() { - if (this.lastModified == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Appointment.lastModified"); - else if (Configuration.doAutoCreate()) - this.lastModified = new DateTimeType(); - return this.lastModified; - } - - public boolean hasLastModifiedElement() { - return this.lastModified != null && !this.lastModified.isEmpty(); - } - - public boolean hasLastModified() { - return this.lastModified != null && !this.lastModified.isEmpty(); - } - - /** - * @param value {@link #lastModified} (Date when the appointment was recorded.). This is the underlying object with id, value and extensions. The accessor "getLastModified" gives direct access to the value - */ - public Appointment setLastModifiedElement(DateTimeType value) { - this.lastModified = value; - return this; - } - - /** - * @return Date when the appointment was recorded. - */ - public Date getLastModified() { - return this.lastModified == null ? null : this.lastModified.getValue(); - } - - /** - * @param value Date when the appointment was recorded. - */ - public Appointment setLastModified(Date value) { - if (value == null) - this.lastModified = null; - else { - if (this.lastModified == null) - this.lastModified = new DateTimeType(); - this.lastModified.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("priority", "integer", "The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept).", 0, java.lang.Integer.MAX_VALUE, priority)); - childrenList.add(new Property("status", "code", "Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("type", "CodeableConcept", "The type of appointments that is being booked (ideally this would be an identifiable service - which is at a location, rather than the location itself).", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("reason", "CodeableConcept", "The reason that this appointment is being scheduled, this is more clinical than administrative.", 0, java.lang.Integer.MAX_VALUE, reason)); - childrenList.add(new Property("description", "string", "The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("start", "instant", "Date/Time that the appointment is to take place.", 0, java.lang.Integer.MAX_VALUE, start)); - childrenList.add(new Property("end", "instant", "Date/Time that the appointment is to conclude.", 0, java.lang.Integer.MAX_VALUE, end)); - childrenList.add(new Property("slot", "Reference(Slot)", "The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot.", 0, java.lang.Integer.MAX_VALUE, slot)); - childrenList.add(new Property("location", "Reference(Location)", "The primary location that this appointment is to take place.", 0, java.lang.Integer.MAX_VALUE, location)); - childrenList.add(new Property("comment", "string", "Additional comments about the appointment.", 0, java.lang.Integer.MAX_VALUE, comment)); - childrenList.add(new Property("order", "Reference(Order)", "An Order that lead to the creation of this appointment.", 0, java.lang.Integer.MAX_VALUE, order)); - childrenList.add(new Property("participant", "", "List of participants involved in the appointment.", 0, java.lang.Integer.MAX_VALUE, participant)); - childrenList.add(new Property("lastModifiedBy", "Reference(Practitioner|Patient|RelatedPerson)", "Who recorded the appointment.", 0, java.lang.Integer.MAX_VALUE, lastModifiedBy)); - childrenList.add(new Property("lastModified", "dateTime", "Date when the appointment was recorded.", 0, java.lang.Integer.MAX_VALUE, lastModified)); - } - - public Appointment copy() { - Appointment dst = new Appointment(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.priority = priority == null ? null : priority.copy(); - dst.status = status == null ? null : status.copy(); - dst.type = type == null ? null : type.copy(); - dst.reason = reason == null ? null : reason.copy(); - dst.description = description == null ? null : description.copy(); - dst.start = start == null ? null : start.copy(); - dst.end = end == null ? null : end.copy(); - if (slot != null) { - dst.slot = new ArrayList(); - for (Reference i : slot) - dst.slot.add(i.copy()); - }; - dst.location = location == null ? null : location.copy(); - dst.comment = comment == null ? null : comment.copy(); - dst.order = order == null ? null : order.copy(); - if (participant != null) { - dst.participant = new ArrayList(); - for (AppointmentParticipantComponent i : participant) - dst.participant.add(i.copy()); - }; - dst.lastModifiedBy = lastModifiedBy == null ? null : lastModifiedBy.copy(); - dst.lastModified = lastModified == null ? null : lastModified.copy(); - return dst; - } - - protected Appointment typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (priority == null || priority.isEmpty()) - && (status == null || status.isEmpty()) && (type == null || type.isEmpty()) && (reason == null || reason.isEmpty()) - && (description == null || description.isEmpty()) && (start == null || start.isEmpty()) && (end == null || end.isEmpty()) - && (slot == null || slot.isEmpty()) && (location == null || location.isEmpty()) && (comment == null || comment.isEmpty()) - && (order == null || order.isEmpty()) && (participant == null || participant.isEmpty()) && (lastModifiedBy == null || lastModifiedBy.isEmpty()) - && (lastModified == null || lastModified.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Appointment; - } - - @SearchParamDefinition(name="partstatus", path="Appointment.participant.status", description="The Participation status of the subject, or other participant on the appointment", type="token" ) - public static final String SP_PARTSTATUS = "partstatus"; - @SearchParamDefinition(name="status", path="Appointment.status", description="The overall status of the appointment", type="string" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="actor", path="Appointment.participant.actor", description="Any one of the individuals participating in the appointment", type="reference" ) - public static final String SP_ACTOR = "actor"; - @SearchParamDefinition(name="date", path="Appointment.start", description="Appointment date/time.", type="date" ) - public static final String SP_DATE = "date"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A scheduled healthcare event for a patient and/or practitioner(s) where a service may take place at a specific date/time. + */ +@ResourceDef(name="Appointment", profile="http://hl7.org/fhir/Profile/Appointment") +public class Appointment extends DomainResource { + + public enum Appointmentstatus { + /** + * Some or all of the participant(s) have not finalized their acceptance of the appointment request. + */ + PENDING, + /** + * All participant(s) have been considered and the appointment is condirmed to go ahead at the date/times specified. + */ + BOOKED, + /** + * Some of the patients have arrived. + */ + ARRIVED, + /** + * This appointment has completed and may have resulted in an encounter. + */ + FULFILLED, + /** + * The appointment has been cancelled. + */ + CANCELLED, + /** + * Some or all of the participant(s) have not/did not appear for the appointment (usually the patient). + */ + NOSHOW, + /** + * added to help the parsers + */ + NULL; + public static Appointmentstatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("pending".equals(codeString)) + return PENDING; + if ("booked".equals(codeString)) + return BOOKED; + if ("arrived".equals(codeString)) + return ARRIVED; + if ("fulfilled".equals(codeString)) + return FULFILLED; + if ("cancelled".equals(codeString)) + return CANCELLED; + if ("noshow".equals(codeString)) + return NOSHOW; + throw new Exception("Unknown Appointmentstatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PENDING: return "pending"; + case BOOKED: return "booked"; + case ARRIVED: return "arrived"; + case FULFILLED: return "fulfilled"; + case CANCELLED: return "cancelled"; + case NOSHOW: return "noshow"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PENDING: return ""; + case BOOKED: return ""; + case ARRIVED: return ""; + case FULFILLED: return ""; + case CANCELLED: return ""; + case NOSHOW: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PENDING: return "Some or all of the participant(s) have not finalized their acceptance of the appointment request."; + case BOOKED: return "All participant(s) have been considered and the appointment is condirmed to go ahead at the date/times specified."; + case ARRIVED: return "Some of the patients have arrived."; + case FULFILLED: return "This appointment has completed and may have resulted in an encounter."; + case CANCELLED: return "The appointment has been cancelled."; + case NOSHOW: return "Some or all of the participant(s) have not/did not appear for the appointment (usually the patient)."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PENDING: return "Pending"; + case BOOKED: return "Booked"; + case ARRIVED: return "Arrived"; + case FULFILLED: return "Fulfilled"; + case CANCELLED: return "Cancelled"; + case NOSHOW: return "No Show"; + default: return "?"; + } + } + } + + public static class AppointmentstatusEnumFactory implements EnumFactory { + public Appointmentstatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("pending".equals(codeString)) + return Appointmentstatus.PENDING; + if ("booked".equals(codeString)) + return Appointmentstatus.BOOKED; + if ("arrived".equals(codeString)) + return Appointmentstatus.ARRIVED; + if ("fulfilled".equals(codeString)) + return Appointmentstatus.FULFILLED; + if ("cancelled".equals(codeString)) + return Appointmentstatus.CANCELLED; + if ("noshow".equals(codeString)) + return Appointmentstatus.NOSHOW; + throw new IllegalArgumentException("Unknown Appointmentstatus code '"+codeString+"'"); + } + public String toCode(Appointmentstatus code) { + if (code == Appointmentstatus.PENDING) + return "pending"; + if (code == Appointmentstatus.BOOKED) + return "booked"; + if (code == Appointmentstatus.ARRIVED) + return "arrived"; + if (code == Appointmentstatus.FULFILLED) + return "fulfilled"; + if (code == Appointmentstatus.CANCELLED) + return "cancelled"; + if (code == Appointmentstatus.NOSHOW) + return "noshow"; + return "?"; + } + } + + public enum Participantrequired { + /** + * The participant is required to attend the appointment. + */ + REQUIRED, + /** + * The participant may optionally attend the appointment. + */ + OPTIONAL, + /** + * The participant is not required to attend the appointment (appointment is about them, not for them). + */ + INFORMATIONONLY, + /** + * added to help the parsers + */ + NULL; + public static Participantrequired fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("required".equals(codeString)) + return REQUIRED; + if ("optional".equals(codeString)) + return OPTIONAL; + if ("information-only".equals(codeString)) + return INFORMATIONONLY; + throw new Exception("Unknown Participantrequired code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case REQUIRED: return "required"; + case OPTIONAL: return "optional"; + case INFORMATIONONLY: return "information-only"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case REQUIRED: return ""; + case OPTIONAL: return ""; + case INFORMATIONONLY: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case REQUIRED: return "The participant is required to attend the appointment."; + case OPTIONAL: return "The participant may optionally attend the appointment."; + case INFORMATIONONLY: return "The participant is not required to attend the appointment (appointment is about them, not for them)."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case REQUIRED: return "required"; + case OPTIONAL: return "optional"; + case INFORMATIONONLY: return "information-only"; + default: return "?"; + } + } + } + + public static class ParticipantrequiredEnumFactory implements EnumFactory { + public Participantrequired fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("required".equals(codeString)) + return Participantrequired.REQUIRED; + if ("optional".equals(codeString)) + return Participantrequired.OPTIONAL; + if ("information-only".equals(codeString)) + return Participantrequired.INFORMATIONONLY; + throw new IllegalArgumentException("Unknown Participantrequired code '"+codeString+"'"); + } + public String toCode(Participantrequired code) { + if (code == Participantrequired.REQUIRED) + return "required"; + if (code == Participantrequired.OPTIONAL) + return "optional"; + if (code == Participantrequired.INFORMATIONONLY) + return "information-only"; + return "?"; + } + } + + public enum Participationstatus { + /** + * The participant has accepted the appointment. + */ + ACCEPTED, + /** + * The participant has declined the appointment and will not participate in the appointment. + */ + DECLINED, + /** + * The participant has tentatively accepted the appointment. This could be automatically created by a system and requires further processing before it can be accepted. There is no commitment that attendance will occur. + */ + TENTATIVE, + /** + * The participant has started the appointment. + */ + INPROCESS, + /** + * The participant's involvement in the appointment has been completed. + */ + COMPLETED, + /** + * The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses. + */ + NEEDSACTION, + /** + * added to help the parsers + */ + NULL; + public static Participationstatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("accepted".equals(codeString)) + return ACCEPTED; + if ("declined".equals(codeString)) + return DECLINED; + if ("tentative".equals(codeString)) + return TENTATIVE; + if ("in-process".equals(codeString)) + return INPROCESS; + if ("completed".equals(codeString)) + return COMPLETED; + if ("needs-action".equals(codeString)) + return NEEDSACTION; + throw new Exception("Unknown Participationstatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case ACCEPTED: return "accepted"; + case DECLINED: return "declined"; + case TENTATIVE: return "tentative"; + case INPROCESS: return "in-process"; + case COMPLETED: return "completed"; + case NEEDSACTION: return "needs-action"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case ACCEPTED: return ""; + case DECLINED: return ""; + case TENTATIVE: return ""; + case INPROCESS: return ""; + case COMPLETED: return ""; + case NEEDSACTION: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case ACCEPTED: return "The participant has accepted the appointment."; + case DECLINED: return "The participant has declined the appointment and will not participate in the appointment."; + case TENTATIVE: return "The participant has tentatively accepted the appointment. This could be automatically created by a system and requires further processing before it can be accepted. There is no commitment that attendance will occur."; + case INPROCESS: return "The participant has started the appointment."; + case COMPLETED: return "The participant's involvement in the appointment has been completed."; + case NEEDSACTION: return "The participant needs to indicate if they accept the appointment by changing this status to one of the other statuses."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case ACCEPTED: return "accepted"; + case DECLINED: return "declined"; + case TENTATIVE: return "tentative"; + case INPROCESS: return "in-process"; + case COMPLETED: return "completed"; + case NEEDSACTION: return "needs-action"; + default: return "?"; + } + } + } + + public static class ParticipationstatusEnumFactory implements EnumFactory { + public Participationstatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("accepted".equals(codeString)) + return Participationstatus.ACCEPTED; + if ("declined".equals(codeString)) + return Participationstatus.DECLINED; + if ("tentative".equals(codeString)) + return Participationstatus.TENTATIVE; + if ("in-process".equals(codeString)) + return Participationstatus.INPROCESS; + if ("completed".equals(codeString)) + return Participationstatus.COMPLETED; + if ("needs-action".equals(codeString)) + return Participationstatus.NEEDSACTION; + throw new IllegalArgumentException("Unknown Participationstatus code '"+codeString+"'"); + } + public String toCode(Participationstatus code) { + if (code == Participationstatus.ACCEPTED) + return "accepted"; + if (code == Participationstatus.DECLINED) + return "declined"; + if (code == Participationstatus.TENTATIVE) + return "tentative"; + if (code == Participationstatus.INPROCESS) + return "in-process"; + if (code == Participationstatus.COMPLETED) + return "completed"; + if (code == Participationstatus.NEEDSACTION) + return "needs-action"; + return "?"; + } + } + + @Block() + public static class AppointmentParticipantComponent extends BackboneElement { + /** + * Role of participant in the appointment. + */ + @Child(name="type", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Role of participant in the appointment", formalDefinition="Role of participant in the appointment." ) + protected List type; + + /** + * A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device. + */ + @Child(name="actor", type={}, order=2, min=0, max=1) + @Description(shortDefinition="A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device", formalDefinition="A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device." ) + protected Reference actor; + + /** + * The actual object that is the target of the reference (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) + */ + protected Resource actorTarget; + + /** + * Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present. + */ + @Child(name="required", type={CodeType.class}, order=3, min=0, max=1) + @Description(shortDefinition="required | optional | information-only", formalDefinition="Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present." ) + protected Enumeration required; + + /** + * Participation status of the Patient. + */ + @Child(name="status", type={CodeType.class}, order=4, min=1, max=1) + @Description(shortDefinition="accepted | declined | tentative | in-process | completed | needs-action", formalDefinition="Participation status of the Patient." ) + protected Enumeration status; + + private static final long serialVersionUID = -1009855227L; + + public AppointmentParticipantComponent() { + super(); + } + + public AppointmentParticipantComponent(Enumeration status) { + super(); + this.status = status; + } + + /** + * @return {@link #type} (Role of participant in the appointment.) + */ + public List getType() { + if (this.type == null) + this.type = new ArrayList(); + return this.type; + } + + public boolean hasType() { + if (this.type == null) + return false; + for (CodeableConcept item : this.type) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #type} (Role of participant in the appointment.) + */ + // syntactic sugar + public CodeableConcept addType() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.type == null) + this.type = new ArrayList(); + this.type.add(t); + return t; + } + + /** + * @return {@link #actor} (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) + */ + public Reference getActor() { + if (this.actor == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AppointmentParticipantComponent.actor"); + else if (Configuration.doAutoCreate()) + this.actor = new Reference(); // cc + return this.actor; + } + + public boolean hasActor() { + return this.actor != null && !this.actor.isEmpty(); + } + + /** + * @param value {@link #actor} (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) + */ + public AppointmentParticipantComponent setActor(Reference value) { + this.actor = value; + return this; + } + + /** + * @return {@link #actor} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) + */ + public Resource getActorTarget() { + return this.actorTarget; + } + + /** + * @param value {@link #actor} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) + */ + public AppointmentParticipantComponent setActorTarget(Resource value) { + this.actorTarget = value; + return this; + } + + /** + * @return {@link #required} (Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.). This is the underlying object with id, value and extensions. The accessor "getRequired" gives direct access to the value + */ + public Enumeration getRequiredElement() { + if (this.required == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AppointmentParticipantComponent.required"); + else if (Configuration.doAutoCreate()) + this.required = new Enumeration(new ParticipantrequiredEnumFactory()); // bb + return this.required; + } + + public boolean hasRequiredElement() { + return this.required != null && !this.required.isEmpty(); + } + + public boolean hasRequired() { + return this.required != null && !this.required.isEmpty(); + } + + /** + * @param value {@link #required} (Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.). This is the underlying object with id, value and extensions. The accessor "getRequired" gives direct access to the value + */ + public AppointmentParticipantComponent setRequiredElement(Enumeration value) { + this.required = value; + return this; + } + + /** + * @return Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present. + */ + public Participantrequired getRequired() { + return this.required == null ? null : this.required.getValue(); + } + + /** + * @param value Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present. + */ + public AppointmentParticipantComponent setRequired(Participantrequired value) { + if (value == null) + this.required = null; + else { + if (this.required == null) + this.required = new Enumeration(new ParticipantrequiredEnumFactory()); + this.required.setValue(value); + } + return this; + } + + /** + * @return {@link #status} (Participation status of the Patient.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AppointmentParticipantComponent.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new ParticipationstatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (Participation status of the Patient.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public AppointmentParticipantComponent setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return Participation status of the Patient. + */ + public Participationstatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value Participation status of the Patient. + */ + public AppointmentParticipantComponent setStatus(Participationstatus value) { + if (this.status == null) + this.status = new Enumeration(new ParticipationstatusEnumFactory()); + this.status.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "CodeableConcept", "Role of participant in the appointment.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("actor", "Reference(Any)", "A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.", 0, java.lang.Integer.MAX_VALUE, actor)); + childrenList.add(new Property("required", "code", "Is this participant required to be present at the meeting. This covers a use-case where 2 doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.", 0, java.lang.Integer.MAX_VALUE, required)); + childrenList.add(new Property("status", "code", "Participation status of the Patient.", 0, java.lang.Integer.MAX_VALUE, status)); + } + + public AppointmentParticipantComponent copy() { + AppointmentParticipantComponent dst = new AppointmentParticipantComponent(); + copyValues(dst); + if (type != null) { + dst.type = new ArrayList(); + for (CodeableConcept i : type) + dst.type.add(i.copy()); + }; + dst.actor = actor == null ? null : actor.copy(); + dst.required = required == null ? null : required.copy(); + dst.status = status == null ? null : status.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof AppointmentParticipantComponent)) + return false; + AppointmentParticipantComponent o = (AppointmentParticipantComponent) other; + return compareDeep(type, o.type, true) && compareDeep(actor, o.actor, true) && compareDeep(required, o.required, true) + && compareDeep(status, o.status, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof AppointmentParticipantComponent)) + return false; + AppointmentParticipantComponent o = (AppointmentParticipantComponent) other; + return compareValues(required, o.required, true) && compareValues(status, o.status, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (actor == null || actor.isEmpty()) + && (required == null || required.isEmpty()) && (status == null || status.isEmpty()); + } + + } + + /** + * This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="External Ids for this item", formalDefinition="This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) + protected List identifier; + + /** + * The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept). + */ + @Child(name="priority", type={IntegerType.class}, order=0, min=0, max=1) + @Description(shortDefinition="The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept)", formalDefinition="The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept)." ) + protected IntegerType priority; + + /** + * The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. + */ + @Child(name="status", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="pending | booked | arrived | fulfilled | cancelled | noshow", formalDefinition="The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status." ) + protected Enumeration status; + + /** + * The type of appointments that is being booked (ideally this would be an identifiable service - which is at a location, rather than the location itself). + */ + @Child(name="type", type={CodeableConcept.class}, order=2, min=0, max=1) + @Description(shortDefinition="The type of appointments that is being booked (ideally this would be an identifiable service - which is at a location, rather than the location itself)", formalDefinition="The type of appointments that is being booked (ideally this would be an identifiable service - which is at a location, rather than the location itself)." ) + protected CodeableConcept type; + + /** + * The reason that this appointment is being scheduled, this is more clinical than administrative. + */ + @Child(name="reason", type={CodeableConcept.class}, order=3, min=0, max=1) + @Description(shortDefinition="The reason that this appointment is being scheduled, this is more clinical than administrative", formalDefinition="The reason that this appointment is being scheduled, this is more clinical than administrative." ) + protected CodeableConcept reason; + + /** + * The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field. + */ + @Child(name="description", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field", formalDefinition="The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field." ) + protected StringType description; + + /** + * Date/Time that the appointment is to take place. + */ + @Child(name="start", type={InstantType.class}, order=5, min=1, max=1) + @Description(shortDefinition="Date/Time that the appointment is to take place", formalDefinition="Date/Time that the appointment is to take place." ) + protected InstantType start; + + /** + * Date/Time that the appointment is to conclude. + */ + @Child(name="end", type={InstantType.class}, order=6, min=1, max=1) + @Description(shortDefinition="Date/Time that the appointment is to conclude", formalDefinition="Date/Time that the appointment is to conclude." ) + protected InstantType end; + + /** + * The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot. + */ + @Child(name="slot", type={Slot.class}, order=7, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot", formalDefinition="The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot." ) + protected List slot; + /** + * The actual objects that are the target of the reference (The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot.) + */ + protected List slotTarget; + + + /** + * The primary location that this appointment is to take place. + */ + @Child(name="location", type={Location.class}, order=8, min=0, max=1) + @Description(shortDefinition="The primary location that this appointment is to take place", formalDefinition="The primary location that this appointment is to take place." ) + protected Reference location; + + /** + * The actual object that is the target of the reference (The primary location that this appointment is to take place.) + */ + protected Location locationTarget; + + /** + * Additional comments about the appointment. + */ + @Child(name="comment", type={StringType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Additional comments about the appointment", formalDefinition="Additional comments about the appointment." ) + protected StringType comment; + + /** + * An Order that lead to the creation of this appointment. + */ + @Child(name="order", type={Order.class}, order=10, min=0, max=1) + @Description(shortDefinition="An Order that lead to the creation of this appointment", formalDefinition="An Order that lead to the creation of this appointment." ) + protected Reference order; + + /** + * The actual object that is the target of the reference (An Order that lead to the creation of this appointment.) + */ + protected Order orderTarget; + + /** + * List of participants involved in the appointment. + */ + @Child(name="participant", type={}, order=11, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="List of participants involved in the appointment", formalDefinition="List of participants involved in the appointment." ) + protected List participant; + + /** + * Who recorded the appointment. + */ + @Child(name="lastModifiedBy", type={Practitioner.class, Patient.class, RelatedPerson.class}, order=12, min=0, max=1) + @Description(shortDefinition="Who recorded the appointment", formalDefinition="Who recorded the appointment." ) + protected Reference lastModifiedBy; + + /** + * The actual object that is the target of the reference (Who recorded the appointment.) + */ + protected Resource lastModifiedByTarget; + + /** + * Date when the appointment was recorded. + */ + @Child(name="lastModified", type={DateTimeType.class}, order=13, min=0, max=1) + @Description(shortDefinition="Date when the appointment was recorded", formalDefinition="Date when the appointment was recorded." ) + protected DateTimeType lastModified; + + private static final long serialVersionUID = -733080597L; + + public Appointment() { + super(); + } + + public Appointment(Enumeration status, InstantType start, InstantType end) { + super(); + this.status = status; + this.start = start; + this.end = end; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #priority} (The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept).). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value + */ + public IntegerType getPriorityElement() { + if (this.priority == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.priority"); + else if (Configuration.doAutoCreate()) + this.priority = new IntegerType(); // bb + return this.priority; + } + + public boolean hasPriorityElement() { + return this.priority != null && !this.priority.isEmpty(); + } + + public boolean hasPriority() { + return this.priority != null && !this.priority.isEmpty(); + } + + /** + * @param value {@link #priority} (The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept).). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value + */ + public Appointment setPriorityElement(IntegerType value) { + this.priority = value; + return this; + } + + /** + * @return The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept). + */ + public int getPriority() { + return this.priority == null ? 0 : this.priority.getValue(); + } + + /** + * @param value The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept). + */ + public Appointment setPriority(int value) { + if (this.priority == null) + this.priority = new IntegerType(); + this.priority.setValue(value); + return this; + } + + /** + * @return {@link #status} (The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new AppointmentstatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Appointment setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. + */ + public Appointmentstatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. + */ + public Appointment setStatus(Appointmentstatus value) { + if (this.status == null) + this.status = new Enumeration(new AppointmentstatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #type} (The type of appointments that is being booked (ideally this would be an identifiable service - which is at a location, rather than the location itself).) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The type of appointments that is being booked (ideally this would be an identifiable service - which is at a location, rather than the location itself).) + */ + public Appointment setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #reason} (The reason that this appointment is being scheduled, this is more clinical than administrative.) + */ + public CodeableConcept getReason() { + if (this.reason == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.reason"); + else if (Configuration.doAutoCreate()) + this.reason = new CodeableConcept(); // cc + return this.reason; + } + + public boolean hasReason() { + return this.reason != null && !this.reason.isEmpty(); + } + + /** + * @param value {@link #reason} (The reason that this appointment is being scheduled, this is more clinical than administrative.) + */ + public Appointment setReason(CodeableConcept value) { + this.reason = value; + return this; + } + + /** + * @return {@link #description} (The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public Appointment setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field. + */ + public Appointment setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #start} (Date/Time that the appointment is to take place.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value + */ + public InstantType getStartElement() { + if (this.start == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.start"); + else if (Configuration.doAutoCreate()) + this.start = new InstantType(); // bb + return this.start; + } + + public boolean hasStartElement() { + return this.start != null && !this.start.isEmpty(); + } + + public boolean hasStart() { + return this.start != null && !this.start.isEmpty(); + } + + /** + * @param value {@link #start} (Date/Time that the appointment is to take place.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value + */ + public Appointment setStartElement(InstantType value) { + this.start = value; + return this; + } + + /** + * @return Date/Time that the appointment is to take place. + */ + public Date getStart() { + return this.start == null ? null : this.start.getValue(); + } + + /** + * @param value Date/Time that the appointment is to take place. + */ + public Appointment setStart(Date value) { + if (this.start == null) + this.start = new InstantType(); + this.start.setValue(value); + return this; + } + + /** + * @return {@link #end} (Date/Time that the appointment is to conclude.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value + */ + public InstantType getEndElement() { + if (this.end == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.end"); + else if (Configuration.doAutoCreate()) + this.end = new InstantType(); // bb + return this.end; + } + + public boolean hasEndElement() { + return this.end != null && !this.end.isEmpty(); + } + + public boolean hasEnd() { + return this.end != null && !this.end.isEmpty(); + } + + /** + * @param value {@link #end} (Date/Time that the appointment is to conclude.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value + */ + public Appointment setEndElement(InstantType value) { + this.end = value; + return this; + } + + /** + * @return Date/Time that the appointment is to conclude. + */ + public Date getEnd() { + return this.end == null ? null : this.end.getValue(); + } + + /** + * @param value Date/Time that the appointment is to conclude. + */ + public Appointment setEnd(Date value) { + if (this.end == null) + this.end = new InstantType(); + this.end.setValue(value); + return this; + } + + /** + * @return {@link #slot} (The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot.) + */ + public List getSlot() { + if (this.slot == null) + this.slot = new ArrayList(); + return this.slot; + } + + public boolean hasSlot() { + if (this.slot == null) + return false; + for (Reference item : this.slot) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #slot} (The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot.) + */ + // syntactic sugar + public Reference addSlot() { //3 + Reference t = new Reference(); + if (this.slot == null) + this.slot = new ArrayList(); + this.slot.add(t); + return t; + } + + /** + * @return {@link #slot} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot.) + */ + public List getSlotTarget() { + if (this.slotTarget == null) + this.slotTarget = new ArrayList(); + return this.slotTarget; + } + + // syntactic sugar + /** + * @return {@link #slot} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot.) + */ + public Slot addSlotTarget() { + Slot r = new Slot(); + if (this.slotTarget == null) + this.slotTarget = new ArrayList(); + this.slotTarget.add(r); + return r; + } + + /** + * @return {@link #location} (The primary location that this appointment is to take place.) + */ + public Reference getLocation() { + if (this.location == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.location"); + else if (Configuration.doAutoCreate()) + this.location = new Reference(); // cc + return this.location; + } + + public boolean hasLocation() { + return this.location != null && !this.location.isEmpty(); + } + + /** + * @param value {@link #location} (The primary location that this appointment is to take place.) + */ + public Appointment setLocation(Reference value) { + this.location = value; + return this; + } + + /** + * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The primary location that this appointment is to take place.) + */ + public Location getLocationTarget() { + if (this.locationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.location"); + else if (Configuration.doAutoCreate()) + this.locationTarget = new Location(); // aa + return this.locationTarget; + } + + /** + * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The primary location that this appointment is to take place.) + */ + public Appointment setLocationTarget(Location value) { + this.locationTarget = value; + return this; + } + + /** + * @return {@link #comment} (Additional comments about the appointment.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value + */ + public StringType getCommentElement() { + if (this.comment == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.comment"); + else if (Configuration.doAutoCreate()) + this.comment = new StringType(); // bb + return this.comment; + } + + public boolean hasCommentElement() { + return this.comment != null && !this.comment.isEmpty(); + } + + public boolean hasComment() { + return this.comment != null && !this.comment.isEmpty(); + } + + /** + * @param value {@link #comment} (Additional comments about the appointment.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value + */ + public Appointment setCommentElement(StringType value) { + this.comment = value; + return this; + } + + /** + * @return Additional comments about the appointment. + */ + public String getComment() { + return this.comment == null ? null : this.comment.getValue(); + } + + /** + * @param value Additional comments about the appointment. + */ + public Appointment setComment(String value) { + if (Utilities.noString(value)) + this.comment = null; + else { + if (this.comment == null) + this.comment = new StringType(); + this.comment.setValue(value); + } + return this; + } + + /** + * @return {@link #order} (An Order that lead to the creation of this appointment.) + */ + public Reference getOrder() { + if (this.order == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.order"); + else if (Configuration.doAutoCreate()) + this.order = new Reference(); // cc + return this.order; + } + + public boolean hasOrder() { + return this.order != null && !this.order.isEmpty(); + } + + /** + * @param value {@link #order} (An Order that lead to the creation of this appointment.) + */ + public Appointment setOrder(Reference value) { + this.order = value; + return this; + } + + /** + * @return {@link #order} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (An Order that lead to the creation of this appointment.) + */ + public Order getOrderTarget() { + if (this.orderTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.order"); + else if (Configuration.doAutoCreate()) + this.orderTarget = new Order(); // aa + return this.orderTarget; + } + + /** + * @param value {@link #order} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (An Order that lead to the creation of this appointment.) + */ + public Appointment setOrderTarget(Order value) { + this.orderTarget = value; + return this; + } + + /** + * @return {@link #participant} (List of participants involved in the appointment.) + */ + public List getParticipant() { + if (this.participant == null) + this.participant = new ArrayList(); + return this.participant; + } + + public boolean hasParticipant() { + if (this.participant == null) + return false; + for (AppointmentParticipantComponent item : this.participant) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #participant} (List of participants involved in the appointment.) + */ + // syntactic sugar + public AppointmentParticipantComponent addParticipant() { //3 + AppointmentParticipantComponent t = new AppointmentParticipantComponent(); + if (this.participant == null) + this.participant = new ArrayList(); + this.participant.add(t); + return t; + } + + /** + * @return {@link #lastModifiedBy} (Who recorded the appointment.) + */ + public Reference getLastModifiedBy() { + if (this.lastModifiedBy == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.lastModifiedBy"); + else if (Configuration.doAutoCreate()) + this.lastModifiedBy = new Reference(); // cc + return this.lastModifiedBy; + } + + public boolean hasLastModifiedBy() { + return this.lastModifiedBy != null && !this.lastModifiedBy.isEmpty(); + } + + /** + * @param value {@link #lastModifiedBy} (Who recorded the appointment.) + */ + public Appointment setLastModifiedBy(Reference value) { + this.lastModifiedBy = value; + return this; + } + + /** + * @return {@link #lastModifiedBy} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who recorded the appointment.) + */ + public Resource getLastModifiedByTarget() { + return this.lastModifiedByTarget; + } + + /** + * @param value {@link #lastModifiedBy} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who recorded the appointment.) + */ + public Appointment setLastModifiedByTarget(Resource value) { + this.lastModifiedByTarget = value; + return this; + } + + /** + * @return {@link #lastModified} (Date when the appointment was recorded.). This is the underlying object with id, value and extensions. The accessor "getLastModified" gives direct access to the value + */ + public DateTimeType getLastModifiedElement() { + if (this.lastModified == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Appointment.lastModified"); + else if (Configuration.doAutoCreate()) + this.lastModified = new DateTimeType(); // bb + return this.lastModified; + } + + public boolean hasLastModifiedElement() { + return this.lastModified != null && !this.lastModified.isEmpty(); + } + + public boolean hasLastModified() { + return this.lastModified != null && !this.lastModified.isEmpty(); + } + + /** + * @param value {@link #lastModified} (Date when the appointment was recorded.). This is the underlying object with id, value and extensions. The accessor "getLastModified" gives direct access to the value + */ + public Appointment setLastModifiedElement(DateTimeType value) { + this.lastModified = value; + return this; + } + + /** + * @return Date when the appointment was recorded. + */ + public Date getLastModified() { + return this.lastModified == null ? null : this.lastModified.getValue(); + } + + /** + * @param value Date when the appointment was recorded. + */ + public Appointment setLastModified(Date value) { + if (value == null) + this.lastModified = null; + else { + if (this.lastModified == null) + this.lastModified = new DateTimeType(); + this.lastModified.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("priority", "integer", "The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority) (Need to change back to CodeableConcept).", 0, java.lang.Integer.MAX_VALUE, priority)); + childrenList.add(new Property("status", "code", "The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("type", "CodeableConcept", "The type of appointments that is being booked (ideally this would be an identifiable service - which is at a location, rather than the location itself).", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("reason", "CodeableConcept", "The reason that this appointment is being scheduled, this is more clinical than administrative.", 0, java.lang.Integer.MAX_VALUE, reason)); + childrenList.add(new Property("description", "string", "The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("start", "instant", "Date/Time that the appointment is to take place.", 0, java.lang.Integer.MAX_VALUE, start)); + childrenList.add(new Property("end", "instant", "Date/Time that the appointment is to conclude.", 0, java.lang.Integer.MAX_VALUE, end)); + childrenList.add(new Property("slot", "Reference(Slot)", "The slot that this appointment is filling. If provided then the schedule will not be provided as slots are not recursive, and the start/end values MUST be the same as from the slot.", 0, java.lang.Integer.MAX_VALUE, slot)); + childrenList.add(new Property("location", "Reference(Location)", "The primary location that this appointment is to take place.", 0, java.lang.Integer.MAX_VALUE, location)); + childrenList.add(new Property("comment", "string", "Additional comments about the appointment.", 0, java.lang.Integer.MAX_VALUE, comment)); + childrenList.add(new Property("order", "Reference(Order)", "An Order that lead to the creation of this appointment.", 0, java.lang.Integer.MAX_VALUE, order)); + childrenList.add(new Property("participant", "", "List of participants involved in the appointment.", 0, java.lang.Integer.MAX_VALUE, participant)); + childrenList.add(new Property("lastModifiedBy", "Reference(Practitioner|Patient|RelatedPerson)", "Who recorded the appointment.", 0, java.lang.Integer.MAX_VALUE, lastModifiedBy)); + childrenList.add(new Property("lastModified", "dateTime", "Date when the appointment was recorded.", 0, java.lang.Integer.MAX_VALUE, lastModified)); + } + + public Appointment copy() { + Appointment dst = new Appointment(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.priority = priority == null ? null : priority.copy(); + dst.status = status == null ? null : status.copy(); + dst.type = type == null ? null : type.copy(); + dst.reason = reason == null ? null : reason.copy(); + dst.description = description == null ? null : description.copy(); + dst.start = start == null ? null : start.copy(); + dst.end = end == null ? null : end.copy(); + if (slot != null) { + dst.slot = new ArrayList(); + for (Reference i : slot) + dst.slot.add(i.copy()); + }; + dst.location = location == null ? null : location.copy(); + dst.comment = comment == null ? null : comment.copy(); + dst.order = order == null ? null : order.copy(); + if (participant != null) { + dst.participant = new ArrayList(); + for (AppointmentParticipantComponent i : participant) + dst.participant.add(i.copy()); + }; + dst.lastModifiedBy = lastModifiedBy == null ? null : lastModifiedBy.copy(); + dst.lastModified = lastModified == null ? null : lastModified.copy(); + return dst; + } + + protected Appointment typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Appointment)) + return false; + Appointment o = (Appointment) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(priority, o.priority, true) && compareDeep(status, o.status, true) + && compareDeep(type, o.type, true) && compareDeep(reason, o.reason, true) && compareDeep(description, o.description, true) + && compareDeep(start, o.start, true) && compareDeep(end, o.end, true) && compareDeep(slot, o.slot, true) + && compareDeep(location, o.location, true) && compareDeep(comment, o.comment, true) && compareDeep(order, o.order, true) + && compareDeep(participant, o.participant, true) && compareDeep(lastModifiedBy, o.lastModifiedBy, true) + && compareDeep(lastModified, o.lastModified, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Appointment)) + return false; + Appointment o = (Appointment) other; + return compareValues(priority, o.priority, true) && compareValues(status, o.status, true) && compareValues(description, o.description, true) + && compareValues(start, o.start, true) && compareValues(end, o.end, true) && compareValues(comment, o.comment, true) + && compareValues(lastModified, o.lastModified, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (priority == null || priority.isEmpty()) + && (status == null || status.isEmpty()) && (type == null || type.isEmpty()) && (reason == null || reason.isEmpty()) + && (description == null || description.isEmpty()) && (start == null || start.isEmpty()) && (end == null || end.isEmpty()) + && (slot == null || slot.isEmpty()) && (location == null || location.isEmpty()) && (comment == null || comment.isEmpty()) + && (order == null || order.isEmpty()) && (participant == null || participant.isEmpty()) && (lastModifiedBy == null || lastModifiedBy.isEmpty()) + && (lastModified == null || lastModified.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Appointment; + } + + @SearchParamDefinition(name="partstatus", path="Appointment.participant.status", description="The Participation status of the subject, or other participant on the appointment", type="token" ) + public static final String SP_PARTSTATUS = "partstatus"; + @SearchParamDefinition(name="patient", path="Appointment.participant.actor", description="One of the individuals of the appointment is this patient", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="status", path="Appointment.status", description="The overall status of the appointment", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="actor", path="Appointment.participant.actor", description="Any one of the individuals participating in the appointment", type="reference" ) + public static final String SP_ACTOR = "actor"; + @SearchParamDefinition(name="date", path="Appointment.start", description="Appointment date/time.", type="date" ) + public static final String SP_DATE = "date"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AppointmentResponse$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AppointmentResponse$1.class new file mode 100644 index 0000000000000000000000000000000000000000..cd56a06e287b9e23f98a3483b22a9182f66e86e7 GIT binary patch literal 1103 zcmb_cO>fgc5Ph4Zagw?;mz7tYWQ*MO-bCcTLgj8g3|Z zQ$bb1Ed{p~tZOhdY%p{T_q|AiQP&?EQG95O!Y9Vtk%$c;lhl_1H;$tr4~@on90{2o zbD8e(WE{za8+|`cMIgq$Oer>M=M33eeV-v`Q4WUXj*#4$91nQx z`Gb&FmfX}2-jVi{Q@so&H=4u&Zwd9jGDmjv$UpHZnJt4bN`yS@@^lmpHPkfJb=<>! z9ZNW;;{i5xn0UyrrnZ=&FAq&8awoy4C3rZr<2Z_SY^ktE3bqwIRcnU;!1Z;||#k z8pIv4yJ(ycm6x9u`5G6aOt8o>V literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AppointmentResponse$Participantstatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AppointmentResponse$Participantstatus.class new file mode 100644 index 0000000000000000000000000000000000000000..d79de89892c07aafe497252115a1c033640ba321 GIT binary patch literal 3595 zcmb_eTXPdf7XHSTt+5z`GF$>INhU-Iwh5NKF#%#iaO5FTB5a3|O$51(M zT@@25PO5lT#VHl1Rh$vKzn8@O3e>4w&YUZn(+VD%v+J?vcr`nSqu7ockpe9r1a3X& z+fn3_%@xA>Qg+!tm8~p$^{f|AE^ypzH7vV+cB)njy&$f-L43)LYGDw$nT|atsdL)Q z74kDe=Rnb%DNYsh3ns_;nYl}|In%N@&dpw&E0_}3t{Kyuwx)8${OpW^#LRr5pdgu9 zm@3Sh6rH}hBcS?MY`-CFyf8GpGdm`7^ooK#1ut-C8r4O&UbGi|&LpL(*@}Y8LxpSh zikoTjjh!vcB={oIi7Ya0t^=`ND1DHYQDWn zg=Zaq9p?O&jm)4?J-Y*5ILBB^Sz)8@xEDO(_=8;{bW|LGhUY}ePHOl7A13jUf~o&I z&^4UL#~NNlP63kmM8l`}j5gbj@T6PTFotKymtElm!A}T&AZGg5vA5!CI4LGlUT~sT z4;?p(G(0OsoUmH+UAf08F`)&nTaHfHj_|RD(_(J#W?;3?PQk;Qv#oG@vElh;w=Qs+ z3XJ*SdJx_WjE=N590s#-OvC56tw7=64qg$fzDVLr4PW7F4d38TeD#8YkBZB#VQ*Fg zqqbRDjAc7AHhf^j%XZApT{Rp#FzlGdmj%CVbxXvEy{cw_36dH22AheIB%Y^Dw(;9__ZGeb`+V{I$63MF#&dRk8Fk z$!ylS~7{aIjQYB?W(#R z2Q{TPXIet6Z0?PQ?MDjsZ{2ep+wc_%(47oX1t+!&bkVUbyTqLrhZ{<^?Y*&-<#+sd zTAmqKP{>#}z1Uf1rOt49hF5b&T+Nw{t2raD=1i9?>Aad1^jyvJdJ5}hFR*=iE#%LS z^IIXyFC6v!AyKgaQdTNSS)e3kS(231NK#fHNf`k^`mm_3++l#fvv?i~&XGGxDxTCD zl)LEp1-(sj3SMB}FW-$({ye7E<)1*0oZYn-iIMNo_X`r83wlJorJzvo7<&0*?HxIO z!#y1NSppM|IEOv# zXE2Caj^=O>ui*$T;YogG4x@-aVxD)x0-bi5cE64SN|d_7{wm(Y8+eJUQ&0yLO+I*; zyfAP-TOO~l7oPfZ-L>W#9wC%RNB_o2KF_fUXY{iTu^nd{WgBOkU^}G`&=>Ro?WVP~ zv8g{M4y8w);!&s^zs;z5hjCyN=pt)^!x$*@z00GjNPq)Kj`hfg+FsoORLQ3Pz`q04 zHKMvsR6bEvi7Ftfkf>@zb)yqiVFyqdP5tqvezd7S(bO|d{mCxAY7o^5QQah}TST== zRPPeidqnkqC#s7(fa-rZ!Hx=#qI_mCQcLoJhCiM$^e3xqC13 z(kdm^pjoB9HSD%Z{cA{DCFZMcmDDxtvr1`BjauJ9*(?RE5S?ItoyK9Bb&LgP0@Ex9 kFVl_!GiZ!8q*W+pnOP#VUt`t*I!6g+-#E)*jTCA1Kaml3k^lez literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AppointmentResponse$ParticipantstatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/AppointmentResponse$ParticipantstatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..57dc6ee992374d068eeabdfad49921bb06052bb0 GIT binary patch literal 2171 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 { - public Participantstatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("accepted".equals(codeString)) - return Participantstatus.ACCEPTED; - if ("declined".equals(codeString)) - return Participantstatus.DECLINED; - if ("tentative".equals(codeString)) - return Participantstatus.TENTATIVE; - if ("in-process".equals(codeString)) - return Participantstatus.INPROCESS; - if ("completed".equals(codeString)) - return Participantstatus.COMPLETED; - if ("needs-action".equals(codeString)) - return Participantstatus.NEEDSACTION; - throw new IllegalArgumentException("Unknown Participantstatus code '"+codeString+"'"); - } - public String toCode(Participantstatus code) throws IllegalArgumentException { - if (code == Participantstatus.ACCEPTED) - return "accepted"; - if (code == Participantstatus.DECLINED) - return "declined"; - if (code == Participantstatus.TENTATIVE) - return "tentative"; - if (code == Participantstatus.INPROCESS) - return "in-process"; - if (code == Participantstatus.COMPLETED) - return "completed"; - if (code == Participantstatus.NEEDSACTION) - return "needs-action"; - return "?"; - } - } - - /** - * This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External Ids for this item", formalDefinition="This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) - protected List identifier; - - /** - * Parent appointment that this response is replying to. - */ - @Child(name="appointment", type={Appointment.class}, order=0, min=1, max=1) - @Description(shortDefinition="Parent appointment that this response is replying to", formalDefinition="Parent appointment that this response is replying to." ) - protected Reference appointment; - - /** - * The actual object that is the target of the reference (Parent appointment that this response is replying to.) - */ - protected Appointment appointmentTarget; - - /** - * Role of participant in the appointment. - */ - @Child(name="participantType", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Role of participant in the appointment", formalDefinition="Role of participant in the appointment." ) - protected List participantType; - - /** - * A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device. - */ - @Child(name="individual", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device", formalDefinition="A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device." ) - protected List individual; - /** - * The actual objects that are the target of the reference (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) - */ - protected List individualTarget; - - - /** - * Participation status of the Patient. - */ - @Child(name="participantStatus", type={CodeType.class}, order=3, min=1, max=1) - @Description(shortDefinition="accepted | declined | tentative | in-process | completed | needs-action", formalDefinition="Participation status of the Patient." ) - protected Enumeration participantStatus; - - /** - * Additional comments about the appointment. - */ - @Child(name="comment", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Additional comments about the appointment", formalDefinition="Additional comments about the appointment." ) - protected StringType comment; - - /** - * Date/Time that the appointment is to take place. - */ - @Child(name="start", type={InstantType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Date/Time that the appointment is to take place", formalDefinition="Date/Time that the appointment is to take place." ) - protected InstantType start; - - /** - * Date/Time that the appointment is to conclude. - */ - @Child(name="end", type={InstantType.class}, order=6, min=0, max=1) - @Description(shortDefinition="Date/Time that the appointment is to conclude", formalDefinition="Date/Time that the appointment is to conclude." ) - protected InstantType end; - - /** - * Who recorded the appointment response. - */ - @Child(name="lastModifiedBy", type={Practitioner.class, Patient.class, RelatedPerson.class}, order=7, min=0, max=1) - @Description(shortDefinition="Who recorded the appointment response", formalDefinition="Who recorded the appointment response." ) - protected Reference lastModifiedBy; - - /** - * The actual object that is the target of the reference (Who recorded the appointment response.) - */ - protected Resource lastModifiedByTarget; - - /** - * Date when the response was recorded or last updated. - */ - @Child(name="lastModified", type={DateTimeType.class}, order=8, min=0, max=1) - @Description(shortDefinition="Date when the response was recorded or last updated", formalDefinition="Date when the response was recorded or last updated." ) - protected DateTimeType lastModified; - - private static final long serialVersionUID = 1948503527L; - - public AppointmentResponse() { - super(); - } - - public AppointmentResponse(Reference appointment, Enumeration participantStatus) { - super(); - this.appointment = appointment; - this.participantStatus = participantStatus; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #appointment} (Parent appointment that this response is replying to.) - */ - public Reference getAppointment() { - if (this.appointment == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AppointmentResponse.appointment"); - else if (Configuration.doAutoCreate()) - this.appointment = new Reference(); - return this.appointment; - } - - public boolean hasAppointment() { - return this.appointment != null && !this.appointment.isEmpty(); - } - - /** - * @param value {@link #appointment} (Parent appointment that this response is replying to.) - */ - public AppointmentResponse setAppointment(Reference value) { - this.appointment = value; - return this; - } - - /** - * @return {@link #appointment} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Parent appointment that this response is replying to.) - */ - public Appointment getAppointmentTarget() { - if (this.appointmentTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AppointmentResponse.appointment"); - else if (Configuration.doAutoCreate()) - this.appointmentTarget = new Appointment(); - return this.appointmentTarget; - } - - /** - * @param value {@link #appointment} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Parent appointment that this response is replying to.) - */ - public AppointmentResponse setAppointmentTarget(Appointment value) { - this.appointmentTarget = value; - return this; - } - - /** - * @return {@link #participantType} (Role of participant in the appointment.) - */ - public List getParticipantType() { - if (this.participantType == null) - this.participantType = new ArrayList(); - return this.participantType; - } - - public boolean hasParticipantType() { - if (this.participantType == null) - return false; - for (CodeableConcept item : this.participantType) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #participantType} (Role of participant in the appointment.) - */ - // syntactic sugar - public CodeableConcept addParticipantType() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.participantType == null) - this.participantType = new ArrayList(); - this.participantType.add(t); - return t; - } - - /** - * @return {@link #individual} (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) - */ - public List getIndividual() { - if (this.individual == null) - this.individual = new ArrayList(); - return this.individual; - } - - public boolean hasIndividual() { - if (this.individual == null) - return false; - for (Reference item : this.individual) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #individual} (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) - */ - // syntactic sugar - public Reference addIndividual() { //3 - Reference t = new Reference(); - if (this.individual == null) - this.individual = new ArrayList(); - this.individual.add(t); - return t; - } - - /** - * @return {@link #individual} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) - */ - public List getIndividualTarget() { - if (this.individualTarget == null) - this.individualTarget = new ArrayList(); - return this.individualTarget; - } - - /** - * @return {@link #participantStatus} (Participation status of the Patient.). This is the underlying object with id, value and extensions. The accessor "getParticipantStatus" gives direct access to the value - */ - public Enumeration getParticipantStatusElement() { - if (this.participantStatus == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AppointmentResponse.participantStatus"); - else if (Configuration.doAutoCreate()) - this.participantStatus = new Enumeration(); - return this.participantStatus; - } - - public boolean hasParticipantStatusElement() { - return this.participantStatus != null && !this.participantStatus.isEmpty(); - } - - public boolean hasParticipantStatus() { - return this.participantStatus != null && !this.participantStatus.isEmpty(); - } - - /** - * @param value {@link #participantStatus} (Participation status of the Patient.). This is the underlying object with id, value and extensions. The accessor "getParticipantStatus" gives direct access to the value - */ - public AppointmentResponse setParticipantStatusElement(Enumeration value) { - this.participantStatus = value; - return this; - } - - /** - * @return Participation status of the Patient. - */ - public Participantstatus getParticipantStatus() { - return this.participantStatus == null ? null : this.participantStatus.getValue(); - } - - /** - * @param value Participation status of the Patient. - */ - public AppointmentResponse setParticipantStatus(Participantstatus value) { - if (this.participantStatus == null) - this.participantStatus = new Enumeration(Participantstatus.ENUM_FACTORY); - this.participantStatus.setValue(value); - return this; - } - - /** - * @return {@link #comment} (Additional comments about the appointment.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value - */ - public StringType getCommentElement() { - if (this.comment == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AppointmentResponse.comment"); - else if (Configuration.doAutoCreate()) - this.comment = new StringType(); - return this.comment; - } - - public boolean hasCommentElement() { - return this.comment != null && !this.comment.isEmpty(); - } - - public boolean hasComment() { - return this.comment != null && !this.comment.isEmpty(); - } - - /** - * @param value {@link #comment} (Additional comments about the appointment.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value - */ - public AppointmentResponse setCommentElement(StringType value) { - this.comment = value; - return this; - } - - /** - * @return Additional comments about the appointment. - */ - public String getComment() { - return this.comment == null ? null : this.comment.getValue(); - } - - /** - * @param value Additional comments about the appointment. - */ - public AppointmentResponse setComment(String value) { - if (Utilities.noString(value)) - this.comment = null; - else { - if (this.comment == null) - this.comment = new StringType(); - this.comment.setValue(value); - } - return this; - } - - /** - * @return {@link #start} (Date/Time that the appointment is to take place.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value - */ - public InstantType getStartElement() { - if (this.start == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AppointmentResponse.start"); - else if (Configuration.doAutoCreate()) - this.start = new InstantType(); - return this.start; - } - - public boolean hasStartElement() { - return this.start != null && !this.start.isEmpty(); - } - - public boolean hasStart() { - return this.start != null && !this.start.isEmpty(); - } - - /** - * @param value {@link #start} (Date/Time that the appointment is to take place.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value - */ - public AppointmentResponse setStartElement(InstantType value) { - this.start = value; - return this; - } - - /** - * @return Date/Time that the appointment is to take place. - */ - public Date getStart() { - return this.start == null ? null : this.start.getValue(); - } - - /** - * @param value Date/Time that the appointment is to take place. - */ - public AppointmentResponse setStart(Date value) { - if (value == null) - this.start = null; - else { - if (this.start == null) - this.start = new InstantType(); - this.start.setValue(value); - } - return this; - } - - /** - * @return {@link #end} (Date/Time that the appointment is to conclude.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value - */ - public InstantType getEndElement() { - if (this.end == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AppointmentResponse.end"); - else if (Configuration.doAutoCreate()) - this.end = new InstantType(); - return this.end; - } - - public boolean hasEndElement() { - return this.end != null && !this.end.isEmpty(); - } - - public boolean hasEnd() { - return this.end != null && !this.end.isEmpty(); - } - - /** - * @param value {@link #end} (Date/Time that the appointment is to conclude.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value - */ - public AppointmentResponse setEndElement(InstantType value) { - this.end = value; - return this; - } - - /** - * @return Date/Time that the appointment is to conclude. - */ - public Date getEnd() { - return this.end == null ? null : this.end.getValue(); - } - - /** - * @param value Date/Time that the appointment is to conclude. - */ - public AppointmentResponse setEnd(Date value) { - if (value == null) - this.end = null; - else { - if (this.end == null) - this.end = new InstantType(); - this.end.setValue(value); - } - return this; - } - - /** - * @return {@link #lastModifiedBy} (Who recorded the appointment response.) - */ - public Reference getLastModifiedBy() { - if (this.lastModifiedBy == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AppointmentResponse.lastModifiedBy"); - else if (Configuration.doAutoCreate()) - this.lastModifiedBy = new Reference(); - return this.lastModifiedBy; - } - - public boolean hasLastModifiedBy() { - return this.lastModifiedBy != null && !this.lastModifiedBy.isEmpty(); - } - - /** - * @param value {@link #lastModifiedBy} (Who recorded the appointment response.) - */ - public AppointmentResponse setLastModifiedBy(Reference value) { - this.lastModifiedBy = value; - return this; - } - - /** - * @return {@link #lastModifiedBy} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who recorded the appointment response.) - */ - public Resource getLastModifiedByTarget() { - return this.lastModifiedByTarget; - } - - /** - * @param value {@link #lastModifiedBy} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who recorded the appointment response.) - */ - public AppointmentResponse setLastModifiedByTarget(Resource value) { - this.lastModifiedByTarget = value; - return this; - } - - /** - * @return {@link #lastModified} (Date when the response was recorded or last updated.). This is the underlying object with id, value and extensions. The accessor "getLastModified" gives direct access to the value - */ - public DateTimeType getLastModifiedElement() { - if (this.lastModified == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AppointmentResponse.lastModified"); - else if (Configuration.doAutoCreate()) - this.lastModified = new DateTimeType(); - return this.lastModified; - } - - public boolean hasLastModifiedElement() { - return this.lastModified != null && !this.lastModified.isEmpty(); - } - - public boolean hasLastModified() { - return this.lastModified != null && !this.lastModified.isEmpty(); - } - - /** - * @param value {@link #lastModified} (Date when the response was recorded or last updated.). This is the underlying object with id, value and extensions. The accessor "getLastModified" gives direct access to the value - */ - public AppointmentResponse setLastModifiedElement(DateTimeType value) { - this.lastModified = value; - return this; - } - - /** - * @return Date when the response was recorded or last updated. - */ - public Date getLastModified() { - return this.lastModified == null ? null : this.lastModified.getValue(); - } - - /** - * @param value Date when the response was recorded or last updated. - */ - public AppointmentResponse setLastModified(Date value) { - if (value == null) - this.lastModified = null; - else { - if (this.lastModified == null) - this.lastModified = new DateTimeType(); - this.lastModified.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("appointment", "Reference(Appointment)", "Parent appointment that this response is replying to.", 0, java.lang.Integer.MAX_VALUE, appointment)); - childrenList.add(new Property("participantType", "CodeableConcept", "Role of participant in the appointment.", 0, java.lang.Integer.MAX_VALUE, participantType)); - childrenList.add(new Property("individual", "Reference(Any)", "A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.", 0, java.lang.Integer.MAX_VALUE, individual)); - childrenList.add(new Property("participantStatus", "code", "Participation status of the Patient.", 0, java.lang.Integer.MAX_VALUE, participantStatus)); - childrenList.add(new Property("comment", "string", "Additional comments about the appointment.", 0, java.lang.Integer.MAX_VALUE, comment)); - childrenList.add(new Property("start", "instant", "Date/Time that the appointment is to take place.", 0, java.lang.Integer.MAX_VALUE, start)); - childrenList.add(new Property("end", "instant", "Date/Time that the appointment is to conclude.", 0, java.lang.Integer.MAX_VALUE, end)); - childrenList.add(new Property("lastModifiedBy", "Reference(Practitioner|Patient|RelatedPerson)", "Who recorded the appointment response.", 0, java.lang.Integer.MAX_VALUE, lastModifiedBy)); - childrenList.add(new Property("lastModified", "dateTime", "Date when the response was recorded or last updated.", 0, java.lang.Integer.MAX_VALUE, lastModified)); - } - - public AppointmentResponse copy() { - AppointmentResponse dst = new AppointmentResponse(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.appointment = appointment == null ? null : appointment.copy(); - if (participantType != null) { - dst.participantType = new ArrayList(); - for (CodeableConcept i : participantType) - dst.participantType.add(i.copy()); - }; - if (individual != null) { - dst.individual = new ArrayList(); - for (Reference i : individual) - dst.individual.add(i.copy()); - }; - dst.participantStatus = participantStatus == null ? null : participantStatus.copy(); - dst.comment = comment == null ? null : comment.copy(); - dst.start = start == null ? null : start.copy(); - dst.end = end == null ? null : end.copy(); - dst.lastModifiedBy = lastModifiedBy == null ? null : lastModifiedBy.copy(); - dst.lastModified = lastModified == null ? null : lastModified.copy(); - return dst; - } - - protected AppointmentResponse typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (appointment == null || appointment.isEmpty()) - && (participantType == null || participantType.isEmpty()) && (individual == null || individual.isEmpty()) - && (participantStatus == null || participantStatus.isEmpty()) && (comment == null || comment.isEmpty()) - && (start == null || start.isEmpty()) && (end == null || end.isEmpty()) && (lastModifiedBy == null || lastModifiedBy.isEmpty()) - && (lastModified == null || lastModified.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.AppointmentResponse; - } - - @SearchParamDefinition(name="partstatus", path="AppointmentResponse.participantStatus", description="The overall status of the appointment", type="token" ) - public static final String SP_PARTSTATUS = "partstatus"; - @SearchParamDefinition(name="subject", path="AppointmentResponse.individual", description="The subject that the appointment response replies for", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="appointment", path="AppointmentResponse.appointment", description="The appointment that the response is attached to", type="reference" ) - public static final String SP_APPOINTMENT = "appointment"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection. + */ +@ResourceDef(name="AppointmentResponse", profile="http://hl7.org/fhir/Profile/AppointmentResponse") +public class AppointmentResponse extends DomainResource { + + public enum Participantstatus { + /** + * The appointment participant has accepted that they can attend the appointment at the time specified in the AppointmentResponse. + */ + ACCEPTED, + /** + * The appointment participant has declined the appointment. + */ + DECLINED, + /** + * The appointment participant has tentatively accepted the appointment. + */ + TENTATIVE, + /** + * The participant has in-process the appointment. + */ + INPROCESS, + /** + * The participant has completed the appointment. + */ + COMPLETED, + /** + * This is the intitial status of an appointment participant until a participant has replied. It implies that there is no commitment for the appointment. + */ + NEEDSACTION, + /** + * added to help the parsers + */ + NULL; + public static Participantstatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("accepted".equals(codeString)) + return ACCEPTED; + if ("declined".equals(codeString)) + return DECLINED; + if ("tentative".equals(codeString)) + return TENTATIVE; + if ("in-process".equals(codeString)) + return INPROCESS; + if ("completed".equals(codeString)) + return COMPLETED; + if ("needs-action".equals(codeString)) + return NEEDSACTION; + throw new Exception("Unknown Participantstatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case ACCEPTED: return "accepted"; + case DECLINED: return "declined"; + case TENTATIVE: return "tentative"; + case INPROCESS: return "in-process"; + case COMPLETED: return "completed"; + case NEEDSACTION: return "needs-action"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case ACCEPTED: return ""; + case DECLINED: return ""; + case TENTATIVE: return ""; + case INPROCESS: return ""; + case COMPLETED: return ""; + case NEEDSACTION: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case ACCEPTED: return "The appointment participant has accepted that they can attend the appointment at the time specified in the AppointmentResponse."; + case DECLINED: return "The appointment participant has declined the appointment."; + case TENTATIVE: return "The appointment participant has tentatively accepted the appointment."; + case INPROCESS: return "The participant has in-process the appointment."; + case COMPLETED: return "The participant has completed the appointment."; + case NEEDSACTION: return "This is the intitial status of an appointment participant until a participant has replied. It implies that there is no commitment for the appointment."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case ACCEPTED: return "accepted"; + case DECLINED: return "declined"; + case TENTATIVE: return "tentative"; + case INPROCESS: return "in-process"; + case COMPLETED: return "completed"; + case NEEDSACTION: return "needs-action"; + default: return "?"; + } + } + } + + public static class ParticipantstatusEnumFactory implements EnumFactory { + public Participantstatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("accepted".equals(codeString)) + return Participantstatus.ACCEPTED; + if ("declined".equals(codeString)) + return Participantstatus.DECLINED; + if ("tentative".equals(codeString)) + return Participantstatus.TENTATIVE; + if ("in-process".equals(codeString)) + return Participantstatus.INPROCESS; + if ("completed".equals(codeString)) + return Participantstatus.COMPLETED; + if ("needs-action".equals(codeString)) + return Participantstatus.NEEDSACTION; + throw new IllegalArgumentException("Unknown Participantstatus code '"+codeString+"'"); + } + public String toCode(Participantstatus code) { + if (code == Participantstatus.ACCEPTED) + return "accepted"; + if (code == Participantstatus.DECLINED) + return "declined"; + if (code == Participantstatus.TENTATIVE) + return "tentative"; + if (code == Participantstatus.INPROCESS) + return "in-process"; + if (code == Participantstatus.COMPLETED) + return "completed"; + if (code == Participantstatus.NEEDSACTION) + return "needs-action"; + return "?"; + } + } + + /** + * This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="External Ids for this item", formalDefinition="This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) + protected List identifier; + + /** + * Parent appointment that this response is replying to. + */ + @Child(name="appointment", type={Appointment.class}, order=0, min=1, max=1) + @Description(shortDefinition="Parent appointment that this response is replying to", formalDefinition="Parent appointment that this response is replying to." ) + protected Reference appointment; + + /** + * The actual object that is the target of the reference (Parent appointment that this response is replying to.) + */ + protected Appointment appointmentTarget; + + /** + * Role of participant in the appointment. + */ + @Child(name="participantType", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Role of participant in the appointment", formalDefinition="Role of participant in the appointment." ) + protected List participantType; + + /** + * A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device. + */ + @Child(name="individual", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device", formalDefinition="A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device." ) + protected List individual; + /** + * The actual objects that are the target of the reference (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) + */ + protected List individualTarget; + + + /** + * Participation status of the Patient. + */ + @Child(name="participantStatus", type={CodeType.class}, order=3, min=1, max=1) + @Description(shortDefinition="accepted | declined | tentative | in-process | completed | needs-action", formalDefinition="Participation status of the Patient." ) + protected Enumeration participantStatus; + + /** + * Additional comments about the appointment. + */ + @Child(name="comment", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Additional comments about the appointment", formalDefinition="Additional comments about the appointment." ) + protected StringType comment; + + /** + * Date/Time that the appointment is to take place. + */ + @Child(name="start", type={InstantType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Date/Time that the appointment is to take place", formalDefinition="Date/Time that the appointment is to take place." ) + protected InstantType start; + + /** + * Date/Time that the appointment is to conclude. + */ + @Child(name="end", type={InstantType.class}, order=6, min=0, max=1) + @Description(shortDefinition="Date/Time that the appointment is to conclude", formalDefinition="Date/Time that the appointment is to conclude." ) + protected InstantType end; + + /** + * Who recorded the appointment response. + */ + @Child(name="lastModifiedBy", type={Practitioner.class, Patient.class, RelatedPerson.class}, order=7, min=0, max=1) + @Description(shortDefinition="Who recorded the appointment response", formalDefinition="Who recorded the appointment response." ) + protected Reference lastModifiedBy; + + /** + * The actual object that is the target of the reference (Who recorded the appointment response.) + */ + protected Resource lastModifiedByTarget; + + /** + * Date when the response was recorded or last updated. + */ + @Child(name="lastModified", type={DateTimeType.class}, order=8, min=0, max=1) + @Description(shortDefinition="Date when the response was recorded or last updated", formalDefinition="Date when the response was recorded or last updated." ) + protected DateTimeType lastModified; + + private static final long serialVersionUID = 1948503527L; + + public AppointmentResponse() { + super(); + } + + public AppointmentResponse(Reference appointment, Enumeration participantStatus) { + super(); + this.appointment = appointment; + this.participantStatus = participantStatus; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #appointment} (Parent appointment that this response is replying to.) + */ + public Reference getAppointment() { + if (this.appointment == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AppointmentResponse.appointment"); + else if (Configuration.doAutoCreate()) + this.appointment = new Reference(); // cc + return this.appointment; + } + + public boolean hasAppointment() { + return this.appointment != null && !this.appointment.isEmpty(); + } + + /** + * @param value {@link #appointment} (Parent appointment that this response is replying to.) + */ + public AppointmentResponse setAppointment(Reference value) { + this.appointment = value; + return this; + } + + /** + * @return {@link #appointment} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Parent appointment that this response is replying to.) + */ + public Appointment getAppointmentTarget() { + if (this.appointmentTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AppointmentResponse.appointment"); + else if (Configuration.doAutoCreate()) + this.appointmentTarget = new Appointment(); // aa + return this.appointmentTarget; + } + + /** + * @param value {@link #appointment} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Parent appointment that this response is replying to.) + */ + public AppointmentResponse setAppointmentTarget(Appointment value) { + this.appointmentTarget = value; + return this; + } + + /** + * @return {@link #participantType} (Role of participant in the appointment.) + */ + public List getParticipantType() { + if (this.participantType == null) + this.participantType = new ArrayList(); + return this.participantType; + } + + public boolean hasParticipantType() { + if (this.participantType == null) + return false; + for (CodeableConcept item : this.participantType) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #participantType} (Role of participant in the appointment.) + */ + // syntactic sugar + public CodeableConcept addParticipantType() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.participantType == null) + this.participantType = new ArrayList(); + this.participantType.add(t); + return t; + } + + /** + * @return {@link #individual} (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) + */ + public List getIndividual() { + if (this.individual == null) + this.individual = new ArrayList(); + return this.individual; + } + + public boolean hasIndividual() { + if (this.individual == null) + return false; + for (Reference item : this.individual) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #individual} (A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) + */ + // syntactic sugar + public Reference addIndividual() { //3 + Reference t = new Reference(); + if (this.individual == null) + this.individual = new ArrayList(); + this.individual.add(t); + return t; + } + + /** + * @return {@link #individual} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.) + */ + public List getIndividualTarget() { + if (this.individualTarget == null) + this.individualTarget = new ArrayList(); + return this.individualTarget; + } + + /** + * @return {@link #participantStatus} (Participation status of the Patient.). This is the underlying object with id, value and extensions. The accessor "getParticipantStatus" gives direct access to the value + */ + public Enumeration getParticipantStatusElement() { + if (this.participantStatus == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AppointmentResponse.participantStatus"); + else if (Configuration.doAutoCreate()) + this.participantStatus = new Enumeration(new ParticipantstatusEnumFactory()); // bb + return this.participantStatus; + } + + public boolean hasParticipantStatusElement() { + return this.participantStatus != null && !this.participantStatus.isEmpty(); + } + + public boolean hasParticipantStatus() { + return this.participantStatus != null && !this.participantStatus.isEmpty(); + } + + /** + * @param value {@link #participantStatus} (Participation status of the Patient.). This is the underlying object with id, value and extensions. The accessor "getParticipantStatus" gives direct access to the value + */ + public AppointmentResponse setParticipantStatusElement(Enumeration value) { + this.participantStatus = value; + return this; + } + + /** + * @return Participation status of the Patient. + */ + public Participantstatus getParticipantStatus() { + return this.participantStatus == null ? null : this.participantStatus.getValue(); + } + + /** + * @param value Participation status of the Patient. + */ + public AppointmentResponse setParticipantStatus(Participantstatus value) { + if (this.participantStatus == null) + this.participantStatus = new Enumeration(new ParticipantstatusEnumFactory()); + this.participantStatus.setValue(value); + return this; + } + + /** + * @return {@link #comment} (Additional comments about the appointment.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value + */ + public StringType getCommentElement() { + if (this.comment == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AppointmentResponse.comment"); + else if (Configuration.doAutoCreate()) + this.comment = new StringType(); // bb + return this.comment; + } + + public boolean hasCommentElement() { + return this.comment != null && !this.comment.isEmpty(); + } + + public boolean hasComment() { + return this.comment != null && !this.comment.isEmpty(); + } + + /** + * @param value {@link #comment} (Additional comments about the appointment.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value + */ + public AppointmentResponse setCommentElement(StringType value) { + this.comment = value; + return this; + } + + /** + * @return Additional comments about the appointment. + */ + public String getComment() { + return this.comment == null ? null : this.comment.getValue(); + } + + /** + * @param value Additional comments about the appointment. + */ + public AppointmentResponse setComment(String value) { + if (Utilities.noString(value)) + this.comment = null; + else { + if (this.comment == null) + this.comment = new StringType(); + this.comment.setValue(value); + } + return this; + } + + /** + * @return {@link #start} (Date/Time that the appointment is to take place.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value + */ + public InstantType getStartElement() { + if (this.start == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AppointmentResponse.start"); + else if (Configuration.doAutoCreate()) + this.start = new InstantType(); // bb + return this.start; + } + + public boolean hasStartElement() { + return this.start != null && !this.start.isEmpty(); + } + + public boolean hasStart() { + return this.start != null && !this.start.isEmpty(); + } + + /** + * @param value {@link #start} (Date/Time that the appointment is to take place.). This is the underlying object with id, value and extensions. The accessor "getStart" gives direct access to the value + */ + public AppointmentResponse setStartElement(InstantType value) { + this.start = value; + return this; + } + + /** + * @return Date/Time that the appointment is to take place. + */ + public Date getStart() { + return this.start == null ? null : this.start.getValue(); + } + + /** + * @param value Date/Time that the appointment is to take place. + */ + public AppointmentResponse setStart(Date value) { + if (value == null) + this.start = null; + else { + if (this.start == null) + this.start = new InstantType(); + this.start.setValue(value); + } + return this; + } + + /** + * @return {@link #end} (Date/Time that the appointment is to conclude.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value + */ + public InstantType getEndElement() { + if (this.end == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AppointmentResponse.end"); + else if (Configuration.doAutoCreate()) + this.end = new InstantType(); // bb + return this.end; + } + + public boolean hasEndElement() { + return this.end != null && !this.end.isEmpty(); + } + + public boolean hasEnd() { + return this.end != null && !this.end.isEmpty(); + } + + /** + * @param value {@link #end} (Date/Time that the appointment is to conclude.). This is the underlying object with id, value and extensions. The accessor "getEnd" gives direct access to the value + */ + public AppointmentResponse setEndElement(InstantType value) { + this.end = value; + return this; + } + + /** + * @return Date/Time that the appointment is to conclude. + */ + public Date getEnd() { + return this.end == null ? null : this.end.getValue(); + } + + /** + * @param value Date/Time that the appointment is to conclude. + */ + public AppointmentResponse setEnd(Date value) { + if (value == null) + this.end = null; + else { + if (this.end == null) + this.end = new InstantType(); + this.end.setValue(value); + } + return this; + } + + /** + * @return {@link #lastModifiedBy} (Who recorded the appointment response.) + */ + public Reference getLastModifiedBy() { + if (this.lastModifiedBy == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AppointmentResponse.lastModifiedBy"); + else if (Configuration.doAutoCreate()) + this.lastModifiedBy = new Reference(); // cc + return this.lastModifiedBy; + } + + public boolean hasLastModifiedBy() { + return this.lastModifiedBy != null && !this.lastModifiedBy.isEmpty(); + } + + /** + * @param value {@link #lastModifiedBy} (Who recorded the appointment response.) + */ + public AppointmentResponse setLastModifiedBy(Reference value) { + this.lastModifiedBy = value; + return this; + } + + /** + * @return {@link #lastModifiedBy} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who recorded the appointment response.) + */ + public Resource getLastModifiedByTarget() { + return this.lastModifiedByTarget; + } + + /** + * @param value {@link #lastModifiedBy} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who recorded the appointment response.) + */ + public AppointmentResponse setLastModifiedByTarget(Resource value) { + this.lastModifiedByTarget = value; + return this; + } + + /** + * @return {@link #lastModified} (Date when the response was recorded or last updated.). This is the underlying object with id, value and extensions. The accessor "getLastModified" gives direct access to the value + */ + public DateTimeType getLastModifiedElement() { + if (this.lastModified == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AppointmentResponse.lastModified"); + else if (Configuration.doAutoCreate()) + this.lastModified = new DateTimeType(); // bb + return this.lastModified; + } + + public boolean hasLastModifiedElement() { + return this.lastModified != null && !this.lastModified.isEmpty(); + } + + public boolean hasLastModified() { + return this.lastModified != null && !this.lastModified.isEmpty(); + } + + /** + * @param value {@link #lastModified} (Date when the response was recorded or last updated.). This is the underlying object with id, value and extensions. The accessor "getLastModified" gives direct access to the value + */ + public AppointmentResponse setLastModifiedElement(DateTimeType value) { + this.lastModified = value; + return this; + } + + /** + * @return Date when the response was recorded or last updated. + */ + public Date getLastModified() { + return this.lastModified == null ? null : this.lastModified.getValue(); + } + + /** + * @param value Date when the response was recorded or last updated. + */ + public AppointmentResponse setLastModified(Date value) { + if (value == null) + this.lastModified = null; + else { + if (this.lastModified == null) + this.lastModified = new DateTimeType(); + this.lastModified.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this appointment concern that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("appointment", "Reference(Appointment)", "Parent appointment that this response is replying to.", 0, java.lang.Integer.MAX_VALUE, appointment)); + childrenList.add(new Property("participantType", "CodeableConcept", "Role of participant in the appointment.", 0, java.lang.Integer.MAX_VALUE, participantType)); + childrenList.add(new Property("individual", "Reference(Any)", "A Person of device that is participating in the appointment, usually Practitioner, Patient, RelatedPerson or Device.", 0, java.lang.Integer.MAX_VALUE, individual)); + childrenList.add(new Property("participantStatus", "code", "Participation status of the Patient.", 0, java.lang.Integer.MAX_VALUE, participantStatus)); + childrenList.add(new Property("comment", "string", "Additional comments about the appointment.", 0, java.lang.Integer.MAX_VALUE, comment)); + childrenList.add(new Property("start", "instant", "Date/Time that the appointment is to take place.", 0, java.lang.Integer.MAX_VALUE, start)); + childrenList.add(new Property("end", "instant", "Date/Time that the appointment is to conclude.", 0, java.lang.Integer.MAX_VALUE, end)); + childrenList.add(new Property("lastModifiedBy", "Reference(Practitioner|Patient|RelatedPerson)", "Who recorded the appointment response.", 0, java.lang.Integer.MAX_VALUE, lastModifiedBy)); + childrenList.add(new Property("lastModified", "dateTime", "Date when the response was recorded or last updated.", 0, java.lang.Integer.MAX_VALUE, lastModified)); + } + + public AppointmentResponse copy() { + AppointmentResponse dst = new AppointmentResponse(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.appointment = appointment == null ? null : appointment.copy(); + if (participantType != null) { + dst.participantType = new ArrayList(); + for (CodeableConcept i : participantType) + dst.participantType.add(i.copy()); + }; + if (individual != null) { + dst.individual = new ArrayList(); + for (Reference i : individual) + dst.individual.add(i.copy()); + }; + dst.participantStatus = participantStatus == null ? null : participantStatus.copy(); + dst.comment = comment == null ? null : comment.copy(); + dst.start = start == null ? null : start.copy(); + dst.end = end == null ? null : end.copy(); + dst.lastModifiedBy = lastModifiedBy == null ? null : lastModifiedBy.copy(); + dst.lastModified = lastModified == null ? null : lastModified.copy(); + return dst; + } + + protected AppointmentResponse typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof AppointmentResponse)) + return false; + AppointmentResponse o = (AppointmentResponse) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(appointment, o.appointment, true) + && compareDeep(participantType, o.participantType, true) && compareDeep(individual, o.individual, true) + && compareDeep(participantStatus, o.participantStatus, true) && compareDeep(comment, o.comment, true) + && compareDeep(start, o.start, true) && compareDeep(end, o.end, true) && compareDeep(lastModifiedBy, o.lastModifiedBy, true) + && compareDeep(lastModified, o.lastModified, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof AppointmentResponse)) + return false; + AppointmentResponse o = (AppointmentResponse) other; + return compareValues(participantStatus, o.participantStatus, true) && compareValues(comment, o.comment, true) + && compareValues(start, o.start, true) && compareValues(end, o.end, true) && compareValues(lastModified, o.lastModified, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (appointment == null || appointment.isEmpty()) + && (participantType == null || participantType.isEmpty()) && (individual == null || individual.isEmpty()) + && (participantStatus == null || participantStatus.isEmpty()) && (comment == null || comment.isEmpty()) + && (start == null || start.isEmpty()) && (end == null || end.isEmpty()) && (lastModifiedBy == null || lastModifiedBy.isEmpty()) + && (lastModified == null || lastModified.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.AppointmentResponse; + } + + @SearchParamDefinition(name="partstatus", path="AppointmentResponse.participantStatus", description="The overall status of the appointment", type="token" ) + public static final String SP_PARTSTATUS = "partstatus"; + @SearchParamDefinition(name="subject", path="AppointmentResponse.individual", description="The subject that the appointment response replies for", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="appointment", path="AppointmentResponse.appointment", description="The appointment that the response is attached to", type="reference" ) + public static final String SP_APPOINTMENT = "appointment"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Attachment.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Attachment.class new file mode 100644 index 0000000000000000000000000000000000000000..1bd7dc7fe24e42e60396ad77fa2ee43a2e611895 GIT binary patch literal 10889 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 W1GuXJ_e1$8+5(~<;SWBF{`hw-A!-o- literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Attachment.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Attachment.java similarity index 89% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Attachment.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Attachment.java index c4935b570b7..eff47739c16 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Attachment.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Attachment.java @@ -1,501 +1,500 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -import org.hl7.fhir.instance.model.annotations.DatatypeDef; -/** - * For referring to data content defined in other formats. - */ -@DatatypeDef(name="Attachment") -public class Attachment extends Type implements ICompositeType{ - - /** - * Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate. - */ - @Child(name="contentType", type={CodeType.class}, order=-1, min=0, max=1) - @Description(shortDefinition="Mime type of the content, with charset etc.", formalDefinition="Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate." ) - protected CodeType contentType; - - /** - * The human language of the content. The value can be any valid value according to BCP 47. - */ - @Child(name="language", type={CodeType.class}, order=0, min=0, max=1) - @Description(shortDefinition="Human language of the content (BCP-47)", formalDefinition="The human language of the content. The value can be any valid value according to BCP 47." ) - protected CodeType language; - - /** - * The actual data of the attachment - a sequence of bytes. In XML, represented using base64. - */ - @Child(name="data", type={Base64BinaryType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Data inline, base64ed", formalDefinition="The actual data of the attachment - a sequence of bytes. In XML, represented using base64." ) - protected Base64BinaryType data; - - /** - * An alternative location where the data can be accessed. - */ - @Child(name="url", type={UriType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Uri where the data can be found", formalDefinition="An alternative location where the data can be accessed." ) - protected UriType url; - - /** - * The number of bytes of data that make up this attachment. - */ - @Child(name="size", type={IntegerType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Number of bytes of content (if url provided)", formalDefinition="The number of bytes of data that make up this attachment." ) - protected IntegerType size; - - /** - * The calculated hash of the data using SHA-1. Represented using base64. - */ - @Child(name="hash", type={Base64BinaryType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Hash of the data (sha-1, base64ed )", formalDefinition="The calculated hash of the data using SHA-1. Represented using base64." ) - protected Base64BinaryType hash; - - /** - * A label or set of text to display in place of the data. - */ - @Child(name="title", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Label to display in place of the data", formalDefinition="A label or set of text to display in place of the data." ) - protected StringType title; - - private static final long serialVersionUID = 483430116L; - - public Attachment() { - super(); - } - - /** - * @return {@link #contentType} (Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.). This is the underlying object with id, value and extensions. The accessor "getContentType" gives direct access to the value - */ - public CodeType getContentTypeElement() { - if (this.contentType == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Attachment.contentType"); - else if (Configuration.doAutoCreate()) - this.contentType = new CodeType(); - return this.contentType; - } - - public boolean hasContentTypeElement() { - return this.contentType != null && !this.contentType.isEmpty(); - } - - public boolean hasContentType() { - return this.contentType != null && !this.contentType.isEmpty(); - } - - /** - * @param value {@link #contentType} (Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.). This is the underlying object with id, value and extensions. The accessor "getContentType" gives direct access to the value - */ - public Attachment setContentTypeElement(CodeType value) { - this.contentType = value; - return this; - } - - /** - * @return Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate. - */ - public String getContentType() { - return this.contentType == null ? null : this.contentType.getValue(); - } - - /** - * @param value Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate. - */ - public Attachment setContentType(String value) { - if (Utilities.noString(value)) - this.contentType = null; - else { - if (this.contentType == null) - this.contentType = new CodeType(); - this.contentType.setValue(value); - } - return this; - } - - /** - * @return {@link #language} (The human language of the content. The value can be any valid value according to BCP 47.). This is the underlying object with id, value and extensions. The accessor "getLanguage" gives direct access to the value - */ - public CodeType getLanguageElement() { - if (this.language == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Attachment.language"); - else if (Configuration.doAutoCreate()) - this.language = new CodeType(); - return this.language; - } - - public boolean hasLanguageElement() { - return this.language != null && !this.language.isEmpty(); - } - - public boolean hasLanguage() { - return this.language != null && !this.language.isEmpty(); - } - - /** - * @param value {@link #language} (The human language of the content. The value can be any valid value according to BCP 47.). This is the underlying object with id, value and extensions. The accessor "getLanguage" gives direct access to the value - */ - public Attachment setLanguageElement(CodeType value) { - this.language = value; - return this; - } - - /** - * @return The human language of the content. The value can be any valid value according to BCP 47. - */ - public String getLanguage() { - return this.language == null ? null : this.language.getValue(); - } - - /** - * @param value The human language of the content. The value can be any valid value according to BCP 47. - */ - public Attachment setLanguage(String value) { - if (Utilities.noString(value)) - this.language = null; - else { - if (this.language == null) - this.language = new CodeType(); - this.language.setValue(value); - } - return this; - } - - /** - * @return {@link #data} (The actual data of the attachment - a sequence of bytes. In XML, represented using base64.). This is the underlying object with id, value and extensions. The accessor "getData" gives direct access to the value - */ - public Base64BinaryType getDataElement() { - if (this.data == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Attachment.data"); - else if (Configuration.doAutoCreate()) - this.data = new Base64BinaryType(); - return this.data; - } - - public boolean hasDataElement() { - return this.data != null && !this.data.isEmpty(); - } - - public boolean hasData() { - return this.data != null && !this.data.isEmpty(); - } - - /** - * @param value {@link #data} (The actual data of the attachment - a sequence of bytes. In XML, represented using base64.). This is the underlying object with id, value and extensions. The accessor "getData" gives direct access to the value - */ - public Attachment setDataElement(Base64BinaryType value) { - this.data = value; - return this; - } - - /** - * @return The actual data of the attachment - a sequence of bytes. In XML, represented using base64. - */ - public byte[] getData() { - return this.data == null ? null : this.data.getValue(); - } - - /** - * @param value The actual data of the attachment - a sequence of bytes. In XML, represented using base64. - */ - public Attachment setData(byte[] value) { - if (value == null) - this.data = null; - else { - if (this.data == null) - this.data = new Base64BinaryType(); - this.data.setValue(value); - } - return this; - } - - /** - * @return {@link #url} (An alternative location where the data can be accessed.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public UriType getUrlElement() { - if (this.url == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Attachment.url"); - else if (Configuration.doAutoCreate()) - this.url = new UriType(); - return this.url; - } - - public boolean hasUrlElement() { - return this.url != null && !this.url.isEmpty(); - } - - public boolean hasUrl() { - return this.url != null && !this.url.isEmpty(); - } - - /** - * @param value {@link #url} (An alternative location where the data can be accessed.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public Attachment setUrlElement(UriType value) { - this.url = value; - return this; - } - - /** - * @return An alternative location where the data can be accessed. - */ - public String getUrl() { - return this.url == null ? null : this.url.getValue(); - } - - /** - * @param value An alternative location where the data can be accessed. - */ - public Attachment setUrl(String value) { - if (Utilities.noString(value)) - this.url = null; - else { - if (this.url == null) - this.url = new UriType(); - this.url.setValue(value); - } - return this; - } - - /** - * @return {@link #size} (The number of bytes of data that make up this attachment.). This is the underlying object with id, value and extensions. The accessor "getSize" gives direct access to the value - */ - public IntegerType getSizeElement() { - if (this.size == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Attachment.size"); - else if (Configuration.doAutoCreate()) - this.size = new IntegerType(); - return this.size; - } - - public boolean hasSizeElement() { - return this.size != null && !this.size.isEmpty(); - } - - public boolean hasSize() { - return this.size != null && !this.size.isEmpty(); - } - - /** - * @param value {@link #size} (The number of bytes of data that make up this attachment.). This is the underlying object with id, value and extensions. The accessor "getSize" gives direct access to the value - */ - public Attachment setSizeElement(IntegerType value) { - this.size = value; - return this; - } - - /** - * @return The number of bytes of data that make up this attachment. - */ - public int getSize() { - return this.size == null ? null : this.size.getValue(); - } - - /** - * @param value The number of bytes of data that make up this attachment. - */ - public Attachment setSize(int value) { - if (value == -1) - this.size = null; - else { - if (this.size == null) - this.size = new IntegerType(); - this.size.setValue(value); - } - return this; - } - - /** - * @return {@link #hash} (The calculated hash of the data using SHA-1. Represented using base64.). This is the underlying object with id, value and extensions. The accessor "getHash" gives direct access to the value - */ - public Base64BinaryType getHashElement() { - if (this.hash == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Attachment.hash"); - else if (Configuration.doAutoCreate()) - this.hash = new Base64BinaryType(); - return this.hash; - } - - public boolean hasHashElement() { - return this.hash != null && !this.hash.isEmpty(); - } - - public boolean hasHash() { - return this.hash != null && !this.hash.isEmpty(); - } - - /** - * @param value {@link #hash} (The calculated hash of the data using SHA-1. Represented using base64.). This is the underlying object with id, value and extensions. The accessor "getHash" gives direct access to the value - */ - public Attachment setHashElement(Base64BinaryType value) { - this.hash = value; - return this; - } - - /** - * @return The calculated hash of the data using SHA-1. Represented using base64. - */ - public byte[] getHash() { - return this.hash == null ? null : this.hash.getValue(); - } - - /** - * @param value The calculated hash of the data using SHA-1. Represented using base64. - */ - public Attachment setHash(byte[] value) { - if (value == null) - this.hash = null; - else { - if (this.hash == null) - this.hash = new Base64BinaryType(); - this.hash.setValue(value); - } - return this; - } - - /** - * @return {@link #title} (A label or set of text to display in place of the data.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value - */ - public StringType getTitleElement() { - if (this.title == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Attachment.title"); - else if (Configuration.doAutoCreate()) - this.title = new StringType(); - return this.title; - } - - public boolean hasTitleElement() { - return this.title != null && !this.title.isEmpty(); - } - - public boolean hasTitle() { - return this.title != null && !this.title.isEmpty(); - } - - /** - * @param value {@link #title} (A label or set of text to display in place of the data.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value - */ - public Attachment setTitleElement(StringType value) { - this.title = value; - return this; - } - - /** - * @return A label or set of text to display in place of the data. - */ - public String getTitle() { - return this.title == null ? null : this.title.getValue(); - } - - /** - * @param value A label or set of text to display in place of the data. - */ - public Attachment setTitle(String value) { - if (Utilities.noString(value)) - this.title = null; - else { - if (this.title == null) - this.title = new StringType(); - this.title.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("contentType", "code", "Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.", 0, java.lang.Integer.MAX_VALUE, contentType)); - childrenList.add(new Property("language", "code", "The human language of the content. The value can be any valid value according to BCP 47.", 0, java.lang.Integer.MAX_VALUE, language)); - childrenList.add(new Property("data", "base64Binary", "The actual data of the attachment - a sequence of bytes. In XML, represented using base64.", 0, java.lang.Integer.MAX_VALUE, data)); - childrenList.add(new Property("url", "uri", "An alternative location where the data can be accessed.", 0, java.lang.Integer.MAX_VALUE, url)); - childrenList.add(new Property("size", "integer", "The number of bytes of data that make up this attachment.", 0, java.lang.Integer.MAX_VALUE, size)); - childrenList.add(new Property("hash", "base64Binary", "The calculated hash of the data using SHA-1. Represented using base64.", 0, java.lang.Integer.MAX_VALUE, hash)); - childrenList.add(new Property("title", "string", "A label or set of text to display in place of the data.", 0, java.lang.Integer.MAX_VALUE, title)); - } - - public Attachment copy() { - Attachment dst = new Attachment(); - copyValues(dst); - dst.contentType = contentType == null ? null : contentType.copy(); - dst.language = language == null ? null : language.copy(); - dst.data = data == null ? null : data.copy(); - dst.url = url == null ? null : url.copy(); - dst.size = size == null ? null : size.copy(); - dst.hash = hash == null ? null : hash.copy(); - dst.title = title == null ? null : title.copy(); - return dst; - } - - protected Attachment typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (contentType == null || contentType.isEmpty()) && (language == null || language.isEmpty()) - && (data == null || data.isEmpty()) && (url == null || url.isEmpty()) && (size == null || size.isEmpty()) - && (hash == null || hash.isEmpty()) && (title == null || title.isEmpty()); - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +/** + * For referring to data content defined in other formats. + */ +@DatatypeDef(name="Attachment") +public class Attachment extends Type implements ICompositeType { + + /** + * Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate. + */ + @Child(name="contentType", type={CodeType.class}, order=-1, min=0, max=1) + @Description(shortDefinition="Mime type of the content, with charset etc.", formalDefinition="Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate." ) + protected CodeType contentType; + + /** + * The human language of the content. The value can be any valid value according to BCP 47. + */ + @Child(name="language", type={CodeType.class}, order=0, min=0, max=1) + @Description(shortDefinition="Human language of the content (BCP-47)", formalDefinition="The human language of the content. The value can be any valid value according to BCP 47." ) + protected CodeType language; + + /** + * The actual data of the attachment - a sequence of bytes. In XML, represented using base64. + */ + @Child(name="data", type={Base64BinaryType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Data inline, base64ed", formalDefinition="The actual data of the attachment - a sequence of bytes. In XML, represented using base64." ) + protected Base64BinaryType data; + + /** + * An alternative location where the data can be accessed. + */ + @Child(name="url", type={UriType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Uri where the data can be found", formalDefinition="An alternative location where the data can be accessed." ) + protected UriType url; + + /** + * The number of bytes of data that make up this attachment. + */ + @Child(name="size", type={IntegerType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Number of bytes of content (if url provided)", formalDefinition="The number of bytes of data that make up this attachment." ) + protected IntegerType size; + + /** + * The calculated hash of the data using SHA-1. Represented using base64. + */ + @Child(name="hash", type={Base64BinaryType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Hash of the data (sha-1, base64ed )", formalDefinition="The calculated hash of the data using SHA-1. Represented using base64." ) + protected Base64BinaryType hash; + + /** + * A label or set of text to display in place of the data. + */ + @Child(name="title", type={StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Label to display in place of the data", formalDefinition="A label or set of text to display in place of the data." ) + protected StringType title; + + private static final long serialVersionUID = 483430116L; + + public Attachment() { + super(); + } + + /** + * @return {@link #contentType} (Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.). This is the underlying object with id, value and extensions. The accessor "getContentType" gives direct access to the value + */ + public CodeType getContentTypeElement() { + if (this.contentType == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Attachment.contentType"); + else if (Configuration.doAutoCreate()) + this.contentType = new CodeType(); // bb + return this.contentType; + } + + public boolean hasContentTypeElement() { + return this.contentType != null && !this.contentType.isEmpty(); + } + + public boolean hasContentType() { + return this.contentType != null && !this.contentType.isEmpty(); + } + + /** + * @param value {@link #contentType} (Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.). This is the underlying object with id, value and extensions. The accessor "getContentType" gives direct access to the value + */ + public Attachment setContentTypeElement(CodeType value) { + this.contentType = value; + return this; + } + + /** + * @return Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate. + */ + public String getContentType() { + return this.contentType == null ? null : this.contentType.getValue(); + } + + /** + * @param value Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate. + */ + public Attachment setContentType(String value) { + if (Utilities.noString(value)) + this.contentType = null; + else { + if (this.contentType == null) + this.contentType = new CodeType(); + this.contentType.setValue(value); + } + return this; + } + + /** + * @return {@link #language} (The human language of the content. The value can be any valid value according to BCP 47.). This is the underlying object with id, value and extensions. The accessor "getLanguage" gives direct access to the value + */ + public CodeType getLanguageElement() { + if (this.language == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Attachment.language"); + else if (Configuration.doAutoCreate()) + this.language = new CodeType(); // bb + return this.language; + } + + public boolean hasLanguageElement() { + return this.language != null && !this.language.isEmpty(); + } + + public boolean hasLanguage() { + return this.language != null && !this.language.isEmpty(); + } + + /** + * @param value {@link #language} (The human language of the content. The value can be any valid value according to BCP 47.). This is the underlying object with id, value and extensions. The accessor "getLanguage" gives direct access to the value + */ + public Attachment setLanguageElement(CodeType value) { + this.language = value; + return this; + } + + /** + * @return The human language of the content. The value can be any valid value according to BCP 47. + */ + public String getLanguage() { + return this.language == null ? null : this.language.getValue(); + } + + /** + * @param value The human language of the content. The value can be any valid value according to BCP 47. + */ + public Attachment setLanguage(String value) { + if (Utilities.noString(value)) + this.language = null; + else { + if (this.language == null) + this.language = new CodeType(); + this.language.setValue(value); + } + return this; + } + + /** + * @return {@link #data} (The actual data of the attachment - a sequence of bytes. In XML, represented using base64.). This is the underlying object with id, value and extensions. The accessor "getData" gives direct access to the value + */ + public Base64BinaryType getDataElement() { + if (this.data == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Attachment.data"); + else if (Configuration.doAutoCreate()) + this.data = new Base64BinaryType(); // bb + return this.data; + } + + public boolean hasDataElement() { + return this.data != null && !this.data.isEmpty(); + } + + public boolean hasData() { + return this.data != null && !this.data.isEmpty(); + } + + /** + * @param value {@link #data} (The actual data of the attachment - a sequence of bytes. In XML, represented using base64.). This is the underlying object with id, value and extensions. The accessor "getData" gives direct access to the value + */ + public Attachment setDataElement(Base64BinaryType value) { + this.data = value; + return this; + } + + /** + * @return The actual data of the attachment - a sequence of bytes. In XML, represented using base64. + */ + public byte[] getData() { + return this.data == null ? null : this.data.getValue(); + } + + /** + * @param value The actual data of the attachment - a sequence of bytes. In XML, represented using base64. + */ + public Attachment setData(byte[] value) { + if (value == null) + this.data = null; + else { + if (this.data == null) + this.data = new Base64BinaryType(); + this.data.setValue(value); + } + return this; + } + + /** + * @return {@link #url} (An alternative location where the data can be accessed.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Attachment.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (An alternative location where the data can be accessed.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public Attachment setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return An alternative location where the data can be accessed. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value An alternative location where the data can be accessed. + */ + public Attachment setUrl(String value) { + if (Utilities.noString(value)) + this.url = null; + else { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + } + return this; + } + + /** + * @return {@link #size} (The number of bytes of data that make up this attachment.). This is the underlying object with id, value and extensions. The accessor "getSize" gives direct access to the value + */ + public IntegerType getSizeElement() { + if (this.size == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Attachment.size"); + else if (Configuration.doAutoCreate()) + this.size = new IntegerType(); // bb + return this.size; + } + + public boolean hasSizeElement() { + return this.size != null && !this.size.isEmpty(); + } + + public boolean hasSize() { + return this.size != null && !this.size.isEmpty(); + } + + /** + * @param value {@link #size} (The number of bytes of data that make up this attachment.). This is the underlying object with id, value and extensions. The accessor "getSize" gives direct access to the value + */ + public Attachment setSizeElement(IntegerType value) { + this.size = value; + return this; + } + + /** + * @return The number of bytes of data that make up this attachment. + */ + public int getSize() { + return this.size == null ? 0 : this.size.getValue(); + } + + /** + * @param value The number of bytes of data that make up this attachment. + */ + public Attachment setSize(int value) { + if (this.size == null) + this.size = new IntegerType(); + this.size.setValue(value); + return this; + } + + /** + * @return {@link #hash} (The calculated hash of the data using SHA-1. Represented using base64.). This is the underlying object with id, value and extensions. The accessor "getHash" gives direct access to the value + */ + public Base64BinaryType getHashElement() { + if (this.hash == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Attachment.hash"); + else if (Configuration.doAutoCreate()) + this.hash = new Base64BinaryType(); // bb + return this.hash; + } + + public boolean hasHashElement() { + return this.hash != null && !this.hash.isEmpty(); + } + + public boolean hasHash() { + return this.hash != null && !this.hash.isEmpty(); + } + + /** + * @param value {@link #hash} (The calculated hash of the data using SHA-1. Represented using base64.). This is the underlying object with id, value and extensions. The accessor "getHash" gives direct access to the value + */ + public Attachment setHashElement(Base64BinaryType value) { + this.hash = value; + return this; + } + + /** + * @return The calculated hash of the data using SHA-1. Represented using base64. + */ + public byte[] getHash() { + return this.hash == null ? null : this.hash.getValue(); + } + + /** + * @param value The calculated hash of the data using SHA-1. Represented using base64. + */ + public Attachment setHash(byte[] value) { + if (value == null) + this.hash = null; + else { + if (this.hash == null) + this.hash = new Base64BinaryType(); + this.hash.setValue(value); + } + return this; + } + + /** + * @return {@link #title} (A label or set of text to display in place of the data.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value + */ + public StringType getTitleElement() { + if (this.title == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Attachment.title"); + else if (Configuration.doAutoCreate()) + this.title = new StringType(); // bb + return this.title; + } + + public boolean hasTitleElement() { + return this.title != null && !this.title.isEmpty(); + } + + public boolean hasTitle() { + return this.title != null && !this.title.isEmpty(); + } + + /** + * @param value {@link #title} (A label or set of text to display in place of the data.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value + */ + public Attachment setTitleElement(StringType value) { + this.title = value; + return this; + } + + /** + * @return A label or set of text to display in place of the data. + */ + public String getTitle() { + return this.title == null ? null : this.title.getValue(); + } + + /** + * @param value A label or set of text to display in place of the data. + */ + public Attachment setTitle(String value) { + if (Utilities.noString(value)) + this.title = null; + else { + if (this.title == null) + this.title = new StringType(); + this.title.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("contentType", "code", "Identifies the type of the data in the attachment and allows a method to be chosen to interpret or render the data. Includes mime type parameters such as charset where appropriate.", 0, java.lang.Integer.MAX_VALUE, contentType)); + childrenList.add(new Property("language", "code", "The human language of the content. The value can be any valid value according to BCP 47.", 0, java.lang.Integer.MAX_VALUE, language)); + childrenList.add(new Property("data", "base64Binary", "The actual data of the attachment - a sequence of bytes. In XML, represented using base64.", 0, java.lang.Integer.MAX_VALUE, data)); + childrenList.add(new Property("url", "uri", "An alternative location where the data can be accessed.", 0, java.lang.Integer.MAX_VALUE, url)); + childrenList.add(new Property("size", "integer", "The number of bytes of data that make up this attachment.", 0, java.lang.Integer.MAX_VALUE, size)); + childrenList.add(new Property("hash", "base64Binary", "The calculated hash of the data using SHA-1. Represented using base64.", 0, java.lang.Integer.MAX_VALUE, hash)); + childrenList.add(new Property("title", "string", "A label or set of text to display in place of the data.", 0, java.lang.Integer.MAX_VALUE, title)); + } + + public Attachment copy() { + Attachment dst = new Attachment(); + copyValues(dst); + dst.contentType = contentType == null ? null : contentType.copy(); + dst.language = language == null ? null : language.copy(); + dst.data = data == null ? null : data.copy(); + dst.url = url == null ? null : url.copy(); + dst.size = size == null ? null : size.copy(); + dst.hash = hash == null ? null : hash.copy(); + dst.title = title == null ? null : title.copy(); + return dst; + } + + protected Attachment typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Attachment)) + return false; + Attachment o = (Attachment) other; + return compareDeep(contentType, o.contentType, true) && compareDeep(language, o.language, true) + && compareDeep(data, o.data, true) && compareDeep(url, o.url, true) && compareDeep(size, o.size, true) + && compareDeep(hash, o.hash, true) && compareDeep(title, o.title, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Attachment)) + return false; + Attachment o = (Attachment) other; + return compareValues(contentType, o.contentType, true) && compareValues(language, o.language, true) + && compareValues(data, o.data, true) && compareValues(url, o.url, true) && compareValues(size, o.size, true) + && compareValues(hash, o.hash, true) && compareValues(title, o.title, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (contentType == null || contentType.isEmpty()) && (language == null || language.isEmpty()) + && (data == null || data.isEmpty()) && (url == null || url.isEmpty()) && (size == null || size.isEmpty()) + && (hash == null || hash.isEmpty()) && (title == null || title.isEmpty()); + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BackboneElement.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BackboneElement.class new file mode 100644 index 0000000000000000000000000000000000000000..e44523467355a717d39f1905098b384e81cd98d0 GIT binary patch literal 3493 zcmb7GZF3Xl8or(+ZQ3-vg^E%Tmm^5uXwahvwH2teLNrC7P^I|xGvivLn-FTz57}q)>~mlDbzk?(?$5vf@BaY) z2|tGsTo}YKE@rWqLmC%`a0!=(u!Q&I@_rUqau~p}T%u=Jv-n^D`v&mg0FI{rv$nRD zLmnT=^N$7XlPq+OfGhH+B9~=>B)~ALSr~;~O|NR#Y~#;=8X7mSJy&68`I^3|i|x>M zie)$+a3LwXGqid*97&e7uOhV4{|mT`5Hgfii3i_4KM?K?aa`aHjC{50iS zQ%E;$H_Ze6$nlGb*YXdv1+^Z9-H`h#dAZ=L|b+^ zWnB*1+HqFbF?=h553H8&-L$L5a!ox-vgP^K4IXB}Rice4tK@Q%?j+8pzHVXyff2W6 zy(9xG&@~gWZE9E7jb`mk%2A(629~yh(6=k06__aYx_8s~t`woATP??qWt7mmw2;`T z@S~2VtV<2AU2o9Ws%1A@u~4KZUL41}6+=ZZLa4*>Q93aX-`r^1ex!9$0E=g5%Vo)J zlP5G4>dICZwx)mODI75ZnSuurf}M#q-eb*I_i ztopL;nse>uit#T=S`>!sCR})YsuV`YdIkr3X4_(@E7uovE3ut^?9kttF2fBSY~q=G zm$Rsm8T)6G=VNsG*G3ozutMJ9OpHd5Z`kC!M|;B(b*6iFw~phy@3o8{u5w65+E%>Q zDktI-h`mYeRy^0t$7M=Ab7B}Jjsx}B=$2viT8rZxD^@$foG~qh!%wmg%=FkYlNcK< zHlhwu$lAetvlTLcBTopRi}+$x#BbSA1@%yylK0Wy8qAt+6}}YaOic!J4_uxv+n4j$ zhyBc6=T$fB`+8O0cUjc)XuxL8IsQ_Owke!uHOlD55Z6Z#>)c zNRO`DQ0FY$?;K~AyqKe9c>ScK-Forem20LV9}{V|p~6#1hjc%aYI>)8f01+Dtxv}t z7M=XloliXO-mXlLJD)nsW6PO?{5l%p2SExMDH5*FM*j}rIj+a} z-$EY_27LIBt56j@k3%IK#tS7J!KmDg@yvLD2}}k!N~|dq`FU|HLU|EGyk`aS`U-ar za#dXW#_vIW!yAQv@tPw9aGVrg<<4?>Cw$GCY}(_>dGN=pzp>z>sp~%|j%Op%mVm=!Ck5=>RV9tM?*yV3C4fViGP# z{sy2PVkAoeGML4ibRhA*N`B&M|HK32uN1ZwwikA!3p>T(J?x4d^ycCU^Szv?cRHh_ z$B3X9=b0pc&lo_4d$WS`BW4KRotsF`g~>$D1H6glJU7APNAIE#`@OyPi@1&@jYIpG zl77N0YD&4nP^wXALr6Wuek%DJD^SV6NO)W&56R}?@rirb%|xZ|O#Fc1_~v^IF9^R$ z{xbi?Q=RmUpr1w!%4oCvu3;DF-flQ}hSN-{CxcXua>|5B9GxdiaWo>1_H5!P(~IsC zJs^5W^fu9N68+XA=p3I3`W#m&b&H+x^yhREsk%d!`*=o5GMl-LOjiN+N9X??;q@au ul0Kz&&N5MD?n~OA modifierExtension; - - private static final long serialVersionUID = -1431673179L; - - public BackboneElement() { - super(); - } - - /** - * @return {@link #modifierExtension} (May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.) - */ - public List getModifierExtension() { - if (this.modifierExtension == null) - this.modifierExtension = new ArrayList(); - return this.modifierExtension; - } - - public boolean hasModifierExtension() { - if (this.modifierExtension == null) - return false; - for (Extension item : this.modifierExtension) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #modifierExtension} (May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.) - */ - // syntactic sugar - public Extension addModifierExtension() { //3 - Extension t = new Extension(); - if (this.modifierExtension == null) - this.modifierExtension = new ArrayList(); - this.modifierExtension.add(t); - return t; - } - - protected void listChildren(List childrenList) { - childrenList.add(new Property("modifierExtension", "Extension", "May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", 0, java.lang.Integer.MAX_VALUE, modifierExtension)); - } - - public abstract BackboneElement copy(); - - public void copyValues(BackboneElement dst) { - if (modifierExtension != null) { - dst.modifierExtension = new ArrayList(); - for (Extension i : modifierExtension) - dst.modifierExtension.add(i.copy()); - }; - } - - public boolean isEmpty() { - return super.isEmpty() && (modifierExtension == null || modifierExtension.isEmpty()); - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +import org.hl7.fhir.instance.model.api.IBackboneElement; +/** + * Base definition for all elements that are defined inside a resource - but not those in a data type. + */ +@DatatypeDef(name="BackboneElement") +public abstract class BackboneElement extends Element implements IBackboneElement { + + /** + * May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. + */ + @Child(name="modifierExtension", type={Extension.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Extensions that cannot be ignored", formalDefinition="May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions." ) + protected List modifierExtension; + + private static final long serialVersionUID = -1431673179L; + + public BackboneElement() { + super(); + } + + /** + * @return {@link #modifierExtension} (May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.) + */ + public List getModifierExtension() { + if (this.modifierExtension == null) + this.modifierExtension = new ArrayList(); + return this.modifierExtension; + } + + public boolean hasModifierExtension() { + if (this.modifierExtension == null) + return false; + for (Extension item : this.modifierExtension) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #modifierExtension} (May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.) + */ + // syntactic sugar + public Extension addModifierExtension() { //3 + Extension t = new Extension(); + if (this.modifierExtension == null) + this.modifierExtension = new ArrayList(); + this.modifierExtension.add(t); + return t; + } + + protected void listChildren(List childrenList) { + childrenList.add(new Property("modifierExtension", "Extension", "May be used to represent additional information that is not part of the basic definition of the element, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", 0, java.lang.Integer.MAX_VALUE, modifierExtension)); + } + + public abstract BackboneElement copy(); + + public void copyValues(BackboneElement dst) { + if (modifierExtension != null) { + dst.modifierExtension = new ArrayList(); + for (Extension i : modifierExtension) + dst.modifierExtension.add(i.copy()); + }; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof BackboneElement)) + return false; + BackboneElement o = (BackboneElement) other; + return compareDeep(modifierExtension, o.modifierExtension, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof BackboneElement)) + return false; + BackboneElement o = (BackboneElement) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (modifierExtension == null || modifierExtension.isEmpty()); + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Base.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Base.class new file mode 100644 index 0000000000000000000000000000000000000000..99c931540557bed73e618000d3a6ea30efb19e52 GIT binary patch literal 4299 zcmb_fTXPge7(Kl^$?Rp4KnRxr!GI8wU0@YNk%Wi@5M&8x!o}ci2t#&YFL8D@BnXJg zRYbg7;l(Onc#yKNO3`SQr7u$D5Ae-DVtG3~GkeWu2~}1q-P1i^pFZFD`ulqJw|{>4 z3BU$?7(zP+gJ{KpFb?97io+o&7?gt-WHTh+9SP$_yrkmg5JDIXapn~{^J*A6j>=|O z#jz0PzzE?uMgmC4-jvOWAg51C>!fT_D$;U&MmD1%yar1}Ru1eC+K^K*rs9-9AeS|) z?YgZCG{sNoV|pxSo5|Q-eY9I3IAD&XbvtJn0vpTU_PE2Oo*sz}*p`_d=`NYscl3lY zYFxgU=)m31oqex!i zgq|&KKflVlt|7`mtDU9NIBxO9T(U2FLCu;wJ;qLOJk>g;P0pa3mZZ#m2{U=jGSUL` zJVr$<$-298wkMvkMq-KN6S3n7(~6nttgWYqjaZ7RCu94q%&1}66O6H39T+aaZ>~aX zmPkA;blzdQZK7XKF_xRF$u~P@D#lezP`pz2^SCRk;uaIY(U{35uxl2UwYA!&XALJ8 zR5QCHHENSn$apQMC$rlPV^m;OXHAEk=#jsXn zRrintNl%M&^!~f|ddXeD?wQphXG7{&EBuak_qTAM1}mT>9n&_AY-~JXr;@S5vhC;j z>@EkK+0KD&@N_(=Cvyg~?fe5uwBIsQq%md;PK?SxSLl8pttwYLl!huiotAy2JC-|J z)6@YE4PLCoYwF<&afC2Gh&yXO|Up>IE!-{-oSYc z9azmI)36g8SyqasPg|BgAu~wBlh~}`O}xcS)bKVoYPf)ltoXH#M839YxP;3pu4uT5 z^DK`?#$VF#4mN1GCYyJ$TElg`C#l{LXs-n+oz(Cw_G)+ryHva{`ws-VYAq^@jD~%9 zPQz~OV(oTZb?!d*_7G@srp!!iz_3g`X`XhkqQ;^qQV$lR;>2#-uyi|PF|mu2RG6N! z3JR26T;45J_2Tl6=4igDv`%^ERW7LMQ%)gC+d2=<9)q>1?8eIP%gPZj3xpSx)%d(4 zyrNa!YW>DI=_qNZYsp)ds3q;_pW}Ec7#$2!UutF3xD$-8G~v=NDEx1eU|cKjspjSMm$c zhgJM%!W71xXy!9hj%}0{ZR`d6y2y7BU-Lm=4cmHWGR$@@*0GhQTO4qpCGrh?_fRM9 z$cN|@{65^_d!Mti5q>_mLd9YPu>>)W{18EcJc36(s5qyj*+VW=W8_CDFMNl(Z{c$= z*G!?_k3*7=i`vYuR+ci~Q;W|jNGY=(6 zK8B4RR1bS8O)C)szha*3rVtdk301iT#b3m8>Dc4`gp-4M7->27&&yQ)m>JL^~gv1b)Vx z%}T3s7jwB$^Caq9l{>fo{X-P}Sw>I5>J?xSY``8W9jCy1NjXk8`W^q8;Qt#fDz>V4 zdc~jIUSJ#g*h@NJdURf{MW?44ots$dP-~ud7cG;RA9Y4|F@F-lR^=NkAk|+y)Jnq7 zlkflu50dZ!(mlx00r~sMA-oVuf$(40q+#nRZ144&unVg7QI>D>smQ5AFkf)E`P*;6>q zoaLqJx&It}k+o#mj6U#mE-B{f0_S|&!w6hs1m0x?t}_DH7=ar# lBCwwl@x$anBzmY)qL0YqWAgZfJU%6l&q^f{Bq3}6z<=)S_9p-U literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Base.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Base.java similarity index 54% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Base.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Base.java index 86abeae0415..ab5a34bcf07 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Base.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Base.java @@ -1,105 +1,153 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public abstract class Base implements Serializable, IBase { - - /** - * User appended data items - allow users to add extra information to the class - */ -private Map userData; - - /** - * Round tracking xml comments for testing convenience - */ - private List formatComments; - - - public Object getUserData(String name) { - if (userData == null) - return null; - return userData.get(name); - } - - public void setUserData(String name, Object value) { - if (userData == null) - userData = new HashMap(); - userData.put(name, value); - } - - public boolean hasFormatComment() { - return (formatComments != null && !formatComments.isEmpty()); - } - - public List getFormatComments() { - if (formatComments == null) - formatComments = new ArrayList(); - return formatComments; - } - - protected abstract void listChildren(List result) ; - - /** - * Supports iterating the children elements in some generic processor or browser - * All defined children will be listed, even if they have no value on this instance - * - * Note that the actual content of primitive or xhtml elements is not iterated explicitly. - * To find these, the processing code must recognise the element as a primitive, typecast - * the value to a {@link Type}, and examine the value - * - * @return a list of all the children defined for this element - */ - public List children() { - List result = new ArrayList(); - listChildren(result); - return result; - } - - public Property getChildByName(String name) { - List children = new ArrayList(); - listChildren(children); - for (Property c : children) - if (c.getName().equals(name)) - return c; - return null; - } - - public List listChildrenByName(String name) { - List children = new ArrayList(); - listChildren(children); - for (Property c : children) - if (c.getName().equals(name) || (c.getName().endsWith("[x]") && name.startsWith(c.getName()))) - return c.values; - return new ArrayList(); - } - - public boolean isEmpty() { - return true; // userData does not count - } - -} +package org.hl7.fhir.instance.model; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.hl7.fhir.utilities.xhtml.XhtmlNode; + +public abstract class Base implements Serializable, IBase { + + /** + * User appended data items - allow users to add extra information to the class + */ +private Map userData; + + /** + * Round tracking xml comments for testing convenience + */ + private List formatComments; + + + public Object getUserData(String name) { + if (userData == null) + return null; + return userData.get(name); + } + + public void setUserData(String name, Object value) { + if (userData == null) + userData = new HashMap(); + userData.put(name, value); + } + + public boolean hasUserData(String name) { + if (userData == null) + return false; + else + return userData.containsKey(name); + } + + + public boolean hasFormatComment() { + return (formatComments != null && !formatComments.isEmpty()); + } + + public List getFormatComments() { + if (formatComments == null) + formatComments = new ArrayList(); + return formatComments; + } + + protected abstract void listChildren(List result) ; + + /** + * Supports iterating the children elements in some generic processor or browser + * All defined children will be listed, even if they have no value on this instance + * + * Note that the actual content of primitive or xhtml elements is not iterated explicitly. + * To find these, the processing code must recognise the element as a primitive, typecast + * the value to a {@link Type}, and examine the value + * + * @return a list of all the children defined for this element + */ + public List children() { + List result = new ArrayList(); + listChildren(result); + return result; + } + + public Property getChildByName(String name) { + List children = new ArrayList(); + listChildren(children); + for (Property c : children) + if (c.getName().equals(name)) + return c; + return null; + } + + public List listChildrenByName(String name) { + List children = new ArrayList(); + listChildren(children); + for (Property c : children) + if (c.getName().equals(name) || (c.getName().endsWith("[x]") && name.startsWith(c.getName()))) + return c.values; + return new ArrayList(); + } + + public boolean isEmpty() { + return true; // userData does not count + } + + public boolean equalsDeep(Base other) { + return other != null; + } + + public boolean equalsShallow(Base other) { + return other != null; + } + + public static boolean compareDeep(List e1, List e2, boolean allowNull) { + if (e1 == null && e2 == null && allowNull) + return true; + if (e1 == null || e2 == null) + return false; + if (e1.size() != e2.size()) + return false; + for (int i = 0; i < e1.size(); i++) { + if (!compareDeep(e1.get(i), e2.get(i), allowNull)) + return false; + } + return true; + } + public static boolean compareDeep(Base e1, Base e2, boolean allowNull) { + if (e1 == null && e2 == null && allowNull) + return true; + if (e1 == null || e2 == null) + return false; + return e1.equalsDeep(e2); + } + + public static boolean compareDeep(XhtmlNode div1, XhtmlNode div2, boolean allowNull) { + if (div1 == null && div2 == null && allowNull) + return true; + if (div1 == null || div2 == null) + return false; + return div1.equalsDeep(div2); + } + + + public static boolean compareValues(List e1, List e2, boolean allowNull) { + if (e1 == null && e2 == null && allowNull) + return true; + if (e1 == null || e2 == null) + return false; + if (e1.size() != e2.size()) + return false; + for (int i = 0; i < e1.size(); i++) { + if (!compareValues(e1.get(i), e2.get(i), allowNull)) + return false; + } + return true; + } + + public static boolean compareValues(PrimitiveType e1, PrimitiveType e2, boolean allowNull) { + if (e1 == null && e2 == null && allowNull) + return true; + if (e1 == null || e2 == null) + return false; + return e1.equalsShallow(e2); + } +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Base64BinaryType.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Base64BinaryType.class new file mode 100644 index 0000000000000000000000000000000000000000..82368f65c0b8a9093a3fe41886463fddefacb4f7 GIT binary patch literal 1454 zcmb7DZBNrs6n^erSt&4;cL7Bw>;)+As6z+?O*BMJh8VL?UAc}+x^`(h68@Eb8AcQ1 zXMdFO+_nge1+X8^X-}W$xlhkI{r%_rPXJ4Jp`ZuT3KGc5kW-LHL57(mW@TkA2~FmC z85U$%lwm1}WrnoN9if~1+;N3%eR#dYz}_(QY}=OW>6W*zn@t|4gX9%uNURG>cpD7S zY;K<+wrwA9hQ3{4@wd%-l{?Kh`x34=@|T#kfRuA@4%d#h>CmYSFwUs6>Aty;;D*f7*+8c zV+=F@(@_;gtTRL^B`G?jVjL4H?qf{F2u2xl*NI)S&(P)aVCNV%JGTGUTGR$w?m%qI z4W_~{CHZo>!BZqVHCaSqnxIv2<||kdl~@60jf+=W|ZUkQ?Rc-VUVIiP+$fz%=+-55MH3V zeA6xA`9cekkLRRbMCsK$krqf`(I*av#C%9p&WO==-U{(nk)oA|$>D{(amw<*c;Opj zU+9K@T#5yG#Yz{CZsmf69+O}M89edx F)L)~oE}Z}X literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Base64BinaryType.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Base64BinaryType.java similarity index 73% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Base64BinaryType.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Base64BinaryType.java index 5c980b73300..5376b1cf323 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Base64BinaryType.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Base64BinaryType.java @@ -1,96 +1,72 @@ -/* -Copyright (c) 2011+, HL7, Inc -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - - */ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -import org.apache.commons.codec.binary.Base64; - -/** - * Primitive type "base64Binary" in FHIR: a sequence of bytes represented in base64 - */ -public class Base64BinaryType extends PrimitiveType { - - private static final long serialVersionUID = 2L; - - /** - * Constructor - */ - public Base64BinaryType() { - super(); - } - - /** - * Constructor - */ - public Base64BinaryType(byte[] theBytes) { - setValue(theBytes); - } - - /** - * Constructor - */ - public Base64BinaryType(String theValue) { - setValueAsString(theValue); - } - - @Override - protected byte[] parse(String theValue) { - return Base64.decodeBase64(theValue); - } - - @Override - protected String encode(byte[] theValue) { - return Base64.encodeBase64String(theValue); - } - - @Override - public Base64BinaryType copy() { - return new Base64BinaryType(getValue()); - } -} +/* +Copyright (c) 2011+, HL7, Inc +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + */ +package org.hl7.fhir.instance.model; + +import org.apache.commons.codec.binary.Base64; +import org.hl7.fhir.instance.model.annotations.DatatypeDef; + +/** + * Primitive type "base64Binary" in FHIR: a sequence of bytes represented in base64 + */ +@DatatypeDef(name="base64binary") +public class Base64BinaryType extends PrimitiveType { + + private static final long serialVersionUID = 3L; + + /** + * Constructor + */ + public Base64BinaryType() { + super(); + } + + public Base64BinaryType(byte[] theBytes) { + super(); + setValue(theBytes); + } + + public Base64BinaryType(String theValue) { + super(); + setValueAsString(theValue); + } + + protected byte[] parse(String theValue) { + return Base64.decodeBase64(theValue); + } + + protected String encode(byte[] theValue) { + return Base64.encodeBase64String(theValue); + } + + @Override + public Base64BinaryType copy() { + return new Base64BinaryType(getValue()); + } + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType$1.class new file mode 100644 index 0000000000000000000000000000000000000000..611b35bf7bfee44e633206edf337603878f0bb66 GIT binary patch literal 977 zcmbV~TWb?R6vzLQ+a~GO#!I!w`t8$rgjjrkGVJeQ~lGlc}5Cu)C@F zWqkEn1rd>c0AKw+;+cp9M1=~=|D50KnR8*z*YBT?0MxLN$9XL0Foz2{@-8a8q~WrH zD@uw=t}3~vWJQCaVU=Oa=)RJ%J8bi@5rhL{=-oA53}t9YKZ?2U3S$)Xg=aWoG!8=U z?S{gYkqmsxpNtq1`%Q-Img`Ah#`hVLrSemTRGscHEVQIA?8&GnLWlP}I+^dr+#?XD@Iy|SEZ_BlNcw}eh=)O6LrFtf#|_-n zF^>~E*08Rl0+V4`T`@iG4@^7gPTb*+6kgv7!ywdgONCXH+*VRkatG@S6&l{8;Y~HX z`D=J{I=uONS4Ncq40_Y|MOgQE6p4tTFe}{Y9SApOSUXNuhU&k<|MCKvL+(vf`OQ*! zzjf>c_vp(o4!1)Lb~0torkmmd)D@2hD^I@KXEK_x>mhoH&j5g z)oK=sw5d96E-Ngl_fsCSSU`d7NuqB^k_U)SU`Jo_ACP#jzT`)wQk}O*J(^;MFg-(! zFf+p}p*F)DVRnXj!ott!cgP@zGdPDdmau~BWLIfHHpp&b8x67+cF`s4;5l5f37n$# rGSepC;57L~=+89D(*A?k>WoHOq__mmQY9cowLrCiJY|_vRLK4STHWTm literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType.class new file mode 100644 index 0000000000000000000000000000000000000000..81a14b36753b9bc6ed9600f254fe20d1fbb89d36 GIT binary patch literal 12785 zcmb_i34GMm@t^r+lih573Clu&K!D|t+zE%E1PFw11(R?jKodk+k|kN)?8e;U?(9+zrhxK&Me6EXUyQ#>Syxh%mc&;?_ zWbz6Z&v)_yH&^mPCs(;?ChKlq#EXS?iJO=5GB;QAa#6u~LQo@3t;|{{Lsm$~N_ko( z&1z}t1=k=?You8#ldW^{X9PA1d6PV?m%j6zyurm6xT%&ebn!;%^b7SS>1>v!Mbs7$ z+-4WIy132BK^I@-rbc5u7Yj{D7`96j79B-o*E*bhiNNu~CFMb%#h1&rUE$&@U3`^LeNGf}wKUgAbFDPjN%MJWu9xNuF22Fd zH}V&S*-b)!vouQIUlQDxrMbn$w~A_SbMaSPe7h*~t1iC7#do^+E*I}`@lF?i&BeQ< z=WZ9@e-s9rEF22{rUw8377k|UW-*j=84EdHc_c{4~H|@gqp?Sc~`}sj9Kjh?Z zGZB+s9S#SgRUv;Y7KkxA8wsd77w-u%9i+J@kRc4z?foA1=x+ljEw<*bdf*SRvQV&+vH)9 zfBQ-$LYOJXHb*qj8rW85c7b?gU*ZInEJWBEGclF^Z;~-(n+!~uwp)zG_QBUhMBqTo z>L1akKOs?0pNzvFc3pW;h0_c!N%AZARDx-v)vyS zL$q&#tSr%Ctt_K``^spbIVkSKG(%ZYTj-p!&27PG8Ki>~H3!PtBQ1eYSwo<`BNFw8 z5(JCGo$atvce@f+gkTzOGiRAyuo#n-9MjYp>V%s%F{RB7hJ*16rj-1GwM>pGOv5y! zCKwLXb+&H`L>v5@LclD^w=tDv&G{5^$_$zHaewp0wf+vp7=aZ>g_94!8_XHRm&@wo z(O|fBPQh9ye}}2*|6_8S{0XHffto{bVhaV01j5Zq36uNHT43<7ONi*w8i+3nZ1#7C z;)z|s)_D z-5ZQ07*~cuk*$Firdj!)LdpVg%L>M<`3<{*DFN*SI@03b&Xn5WkH(+~OQClC*;k>= z3a2>CdGWU9Kt~)7fdfLvS`y-ZS~+2P8Q^0H$~0mCb88ZN7-`>jYdkCwUSVTktkjXO zNL=Vp#~h9;JGENS={J9&KNgT-GEoD}1v`iX)!hzjd+ok?YA)=D z{1j(p+NQwfh@876r#FXQGRt&+!D*a?bzaYq{<%(gj@U| z>TS&y-qeL*&4|;TamhCv`PH%+PSYJ!Ovhc11Ex8!Bq$*}yRU7PO2E+RIXaGjtMftnflg0J^Fw-8r@zvRI{lV@$23s| z7PVc~p-`aJAF7PDcD4t?@q}B#O_GBQ^(^cRhFZh|CRK;G_(Q=KUkmJ7C1t*t3g^Cj zU{p}_>3oR4tMkL$?c~Ec_s~a(O1_pzAm$54;=WjC2adV88umSyzpukOAPdTY{62jo z%Xmqrzf1E=dQDy-{=4+PPEXS_Iv?Rjbbgc{)9E06$H_-^K1RRL=?HyCrvrpDWlS=9 zE=A54K@J6WHP7>`dX z#?&58ym-K-x|x=O607p%$J>H2AO8D&n>t&IeX+JkXQ(Bd7x%UKJ30bkSvI{&ui-e< z`DrYRpWz?s{475Q2lF)}sr4gM@P#`=As>|AiS73!e}`=Q_)}&`SOFN@gg*}#@oOPj$|L5 zuw|V5Ne$OQ@hc<2FhZbB*qp?%|`oFT>$Cp*E-!t_d6Ne@&W%*r~gRvq%8OeG5xo7euqxLlIe9P|4HX}WlJ2e?-Fss z_mBpb8}CIrox*9$@AIE^{);q!mF92K{9T%VNb^trGd5^V_~LM6YuL9r7znk9{YjP@ zFZVh5Upjxl|CVs_H{t&uS=xs>{am~crUPqOKec4`hRe>ryu^5zo_x^xBmOVb(0(Hz z;CB3BC42%=PM%9@YfB{JyX2*|Rvt%LbQWU^VhfWbc@25XmX)`+m&b6Jy#FBsR+~$u~LO4kZtBl<;6Y<_@XChsj zAci&I>OmKj0}7HN1(ATxbe?^ACXfF1v)+apV1E;H=M6e{9NB-F9K~yJ3x=?i9*ot) zc5nrObgG}W`e_gG!br!I?t0x|VKvx2+?63Qn_*u~6*N~LxTF)+ZotyAjl9+%!oKz6 zY<49$OHSUnxN<%nXCFg)HWc{&q!FU@&Ieeuy z5R3U+q4(6<>Y5t#7uw}CeblDnhPG&AtK3ScqAabpx^7LwVw@VC9kPAKc+&_5D)Oqu z3DRSon_?;{MUaH;*w~vB8nT&%J*@L|0ZDewD&Ph*Z)}jweJtZPYWiyPhQ~_FRNf68 zLpv${O;B#`K=Rqb1qvUzhQ!GJredv3?W~B24NV7ux&;J<6VI?RJh||+4Alc3-7>%` zx8$WhfD^t2JwsFvE)8QAM#9p-{$%LUG-zA~EX2Yt##w3K+}=hAE#>A{_1}x+T1QBE zH_%==aTDC3s-9la*4#^z#Ae>+l_0dS&@NA6{Gh8+p4#V*nQ83+Ol)47h=Rslz<}Xr zV8+AXAC`3`4Q0Ag!~ZDb5R+As%``Er|B*|tTRJP)VdJusr$bc)MPsvhdE@B}58RF>Kfb$4OkABAvCpiQ&~-xrL=zkT!#eCzN{ylK>hcO<)be?YzO$2$rQ zH4;ULf++74MB%3(su2ZIpD2i;O+l1w3Zmpt5Y?N4C>Rt(U8f*wMg>vnD2UoeK@>|0 zq9#-jHHLzy3>8H7tsqiyKut<*1yP?Wh^iZKBG!V69PRUXn~8Dwl7)sA9wsh4NZP}c zQke2EIfMn%3uwLMKpRH8nKCFy9_mmmUNl+kL{ADvtnSOAu&B73QVY?f?W9>p$k}*= zT#bh*-RthAjKXfxyD1Y--Yhg2HN@+|LlGXjY3O0{9yOLBGK?c9+HE!&w$li@6!^<% z6{`;4urHgE{>+rL82S{Q>(Jm~$}TMFrV+{g$Wq$A zh0^F&?8j|b6Ut_Ph*v5R36m1#;ZugsIrz-SXD2@YI!L3jb7Mf6Yr?S#f{kMbl^vmR zjo$G++)#aIjkk9o=%46pdXHw&`!pL@ z4fCMK`M@uRE@c6kl=?9_n9CfgAAuPW?lpmCdV_v%%4uJcLuRor=@j1HObo3Tg3>j&K`-cSQZv zBD}ev7LTaQxra&)(z$q?-A&~?$cJNKj*5gS#?xE`%y|b%bX##iC_HJ3WPUG_1ql*7 znIx4-5@VKypGYFn!<@yXW~u5$vM4bNp3GSmCrR9jWXUIzNUSnv@$BVii#+Asv~*ss zwui>qqyI8!8Y45z5Rb>Q+_a7RXk-xpEX-5Bhn$Wsa;0>UBc($6J>I>PRpcr4c)O_@ zSZ$Ug+oA1K!yGBIQnOQcP^_@%FfHFfLk?0QXe!Fnx@ba?#J}?tvc^K{M$k|LO3Iyf z(dr;pj`lXk$ao^`!7Qfu$~4Ehjx2htq5c`M(? z`|+EeceSyak7~8`+RfT6R10^Uro9a~omvzO(47k2Mb9aCoIY0Yr1rc(?FH>^^{#>m zdub6o(L>ohl*V&5P2mw#$RlYwkD_G=z^i#2eibyHHn5KZJb^CbNpv0O(M_CBw{QX7 z#f9_`7gG;UMZlhhAU&Oq^9+1@GLzm#;Ql+8<1%&*o#eT=&Yj0uT*1S5K9}-BuEURe z0=$@`yb`Nh%~x_ge~}ybc3#7KcpcWe9>2J0$F15#Zqt_Y#o8(kY3n(nHFJj+;Y+k_9M!JnxOOvd({AA{+HJg5 zdxS65p5)84=lBZk1-?pqo3Ga1;cHaj+)Go&d#!&bsEl(`7Vrrg&eCS6b~Fz^K`x|p zrx3l;jD(5tN9?3Oo}dEsd_ILk$jX{915N-!xJ2oS55AQ!LMT-u zMkBb=C?rgoN2syU+jN-L!zd+z?xypTx$6idT*P0&@o+n3@f|db@1&7@mv!)E*(T8N zh0=SN1~D36jX3ZRiMK>w&#(%dQfb$wIIJ*{QRwKV4PCUV$U7c~-38ii@)pXmcOjB2 z&vB4i`Xp5NipnT%|AjFh(7#P3T621#F3Btqqyqrmv^kkzsDzB)1jTEzL}Xt*|n=4eCdLT#8@ayn@zX%3?2B#4P`-%MdAnYx#% zT=u$~Vh=)gTZ*dX;J1|cLdGEAAYzkv*vT=fJ~XpkqAcK+;@G zUJ2o4*oQI3CiT9cSVBW#X=l+gEsxe~`H07bbct3(ajk@|*GlO|Z7SW3DtnJMgAQqD zQ@1vYp4HBw=e61N8?Bt)(B>k4s8D;9N$LNkW!c8xX!v!Cb%()Qp?2|u*NS@RvpaA> zz}0h;zurs}+~u8V539Zo?z zB(Kjb_TakV3h*od0x38U4F+Nq5N>0jzK7h!k~Ckjt~fhYz_kvPPdAi2O|y|&UFmV} zqp9Fi1_l$0OH$Ih=_;shokddugq%B=CcPNrGS*3vJQVjZNps#zIZ$aOIkkl_uJXBLP%sMA85sT+s%s+drc2rdx(~JuTyZL_wzk;{UI9b{eps{y*DVh*n6YuukwCTz2|vvQn0{# zv-e9#0D9=lhp5JTi$WH9Z%rcWy|*c3zV|B%=6Y{eu+sZg#c{s(4h7Hk-l_1Dymuvu z8@xLda!P7y5A8feL4dCvqP8Qn3zh5L=b=zRrI$%!U7Z4m=Nx& z=qH&FCad13m@wCbl?wLI?nBg)JVJNU6gbsf)Wq{}(NRI8P~7`y0qzSbX(}zmT@0eRdS{6c6g zy@)HDSLidixoAWk-h?b?Jr3LRab9eIsa(KWbRlYjji>|sJOw|rFQsPW_AQ9A>Tu?C W)bQ{J&cO8!GAS6$UdTZn*Z%=AwJbsa literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType.java similarity index 89% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType.java index 8a18214b9f0..aeb6c6ae389 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BaseDateTimeType.java @@ -1,26 +1,37 @@ package org.hl7.fhir.instance.model; /* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ +Copyright (c) 2011+, HL7, Inc. +All rights reserved. -import static org.hl7.fhir.instance.model.TemporalPrecisionEnum.*; +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +*/ + +import static org.hl7.fhir.instance.model.TemporalPrecisionEnum.DAY; +import static org.hl7.fhir.instance.model.TemporalPrecisionEnum.MONTH; +import static org.hl7.fhir.instance.model.TemporalPrecisionEnum.YEAR; import java.text.ParseException; import java.util.ArrayList; @@ -188,7 +199,7 @@ public abstract class BaseDateTimeType extends PrimitiveType { return ourYearMonthDayTimeMilliFormat.format(theValue); } } - throw new IllegalStateException("Invalid precision (this is a HAPI bug, shouldn't happen): " + myPrecision); + throw new IllegalStateException("Invalid precision (this is a bug, shouldn't happen): " + myPrecision); } } @@ -420,14 +431,27 @@ public abstract class BaseDateTimeType extends PrimitiveType { updateStringValue(); } + /** + * Sets the value of this date/time using the default level of precision + * for this datatype + * using the system local time zone + * + * @param theValue + * The date value + */ @Override public BaseDateTimeType setValue(Date theValue) { - clearTimeZone(); - return (BaseDateTimeType) super.setValue(theValue); + if (myTimeZoneZulu == false && myTimeZone == null) { + myTimeZone = TimeZone.getDefault(); + } + myPrecision = getDefaultPrecisionForDatatype(); + BaseDateTimeType retVal = (BaseDateTimeType) super.setValue(theValue); + return retVal; } /** * Sets the value of this date/time using the specified level of precision + * using the system local time zone * * @param theValue * The date value @@ -436,9 +460,11 @@ public abstract class BaseDateTimeType extends PrimitiveType { * @throws IllegalArgumentException */ public void setValue(Date theValue, TemporalPrecisionEnum thePrecision) throws IllegalArgumentException { - clearTimeZone(); - super.setValue(theValue); + if (myTimeZoneZulu == false && myTimeZone == null) { + myTimeZone = TimeZone.getDefault(); + } myPrecision = thePrecision; + super.setValue(theValue); } @Override diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Basic.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Basic.class new file mode 100644 index 0000000000000000000000000000000000000000..6b41b1563bfb353bd689fd5ca47ad20ad5ce4123 GIT binary patch literal 8744 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 B%9Q{B literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Basic.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Basic.java similarity index 91% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Basic.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Basic.java index f838ad61cb1..f1c8d9a0718 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Basic.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Basic.java @@ -1,354 +1,354 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification. - */ -@ResourceDef(name="Basic", profile="http://hl7.org/fhir/Profile/Basic") -public class Basic extends DomainResource { - - /** - * Identifier assigned to the resource for business purposes, outside the context of FHIR. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Business identifier", formalDefinition="Identifier assigned to the resource for business purposes, outside the context of FHIR." ) - protected List identifier; - - /** - * Identifies the 'type' of resource - equivalent to the resource name for other resources. - */ - @Child(name="code", type={CodeableConcept.class}, order=0, min=1, max=1) - @Description(shortDefinition="Kind of Resource", formalDefinition="Identifies the 'type' of resource - equivalent to the resource name for other resources." ) - protected CodeableConcept code; - - /** - * Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce. - */ - @Child(name="subject", type={}, order=1, min=0, max=1) - @Description(shortDefinition="Identifies the", formalDefinition="Identifies the patient, practitioner, device or any other resource that is the 'focus' of this resoruce." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce.) - */ - protected Resource subjectTarget; - - /** - * Indicates who was responsible for creating the resource instance. - */ - @Child(name="author", type={Practitioner.class, Patient.class, RelatedPerson.class}, order=2, min=0, max=1) - @Description(shortDefinition="Who created", formalDefinition="Indicates who was responsible for creating the resource instance." ) - protected Reference author; - - /** - * The actual object that is the target of the reference (Indicates who was responsible for creating the resource instance.) - */ - protected Resource authorTarget; - - /** - * Identifies when the resource was first created. - */ - @Child(name="created", type={DateType.class}, order=3, min=0, max=1) - @Description(shortDefinition="When created", formalDefinition="Identifies when the resource was first created." ) - protected DateType created; - - private static final long serialVersionUID = 916539354L; - - public Basic() { - super(); - } - - public Basic(CodeableConcept code) { - super(); - this.code = code; - } - - /** - * @return {@link #identifier} (Identifier assigned to the resource for business purposes, outside the context of FHIR.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Identifier assigned to the resource for business purposes, outside the context of FHIR.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #code} (Identifies the 'type' of resource - equivalent to the resource name for other resources.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Basic.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Identifies the 'type' of resource - equivalent to the resource name for other resources.) - */ - public Basic setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #subject} (Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Basic.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce.) - */ - public Basic setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce.) - */ - public Resource getSubjectTarget() { - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce.) - */ - public Basic setSubjectTarget(Resource value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #author} (Indicates who was responsible for creating the resource instance.) - */ - public Reference getAuthor() { - if (this.author == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Basic.author"); - else if (Configuration.doAutoCreate()) - this.author = new Reference(); - return this.author; - } - - public boolean hasAuthor() { - return this.author != null && !this.author.isEmpty(); - } - - /** - * @param value {@link #author} (Indicates who was responsible for creating the resource instance.) - */ - public Basic setAuthor(Reference value) { - this.author = value; - return this; - } - - /** - * @return {@link #author} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates who was responsible for creating the resource instance.) - */ - public Resource getAuthorTarget() { - return this.authorTarget; - } - - /** - * @param value {@link #author} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates who was responsible for creating the resource instance.) - */ - public Basic setAuthorTarget(Resource value) { - this.authorTarget = value; - return this; - } - - /** - * @return {@link #created} (Identifies when the resource was first created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DateType getCreatedElement() { - if (this.created == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Basic.created"); - else if (Configuration.doAutoCreate()) - this.created = new DateType(); - return this.created; - } - - public boolean hasCreatedElement() { - return this.created != null && !this.created.isEmpty(); - } - - public boolean hasCreated() { - return this.created != null && !this.created.isEmpty(); - } - - /** - * @param value {@link #created} (Identifies when the resource was first created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public Basic setCreatedElement(DateType value) { - this.created = value; - return this; - } - - /** - * @return Identifies when the resource was first created. - */ - public Date getCreated() { - return this.created == null ? null : this.created.getValue(); - } - - /** - * @param value Identifies when the resource was first created. - */ - public Basic setCreated(Date value) { - if (value == null) - this.created = null; - else { - if (this.created == null) - this.created = new DateType(); - this.created.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "Identifier assigned to the resource for business purposes, outside the context of FHIR.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("code", "CodeableConcept", "Identifies the 'type' of resource - equivalent to the resource name for other resources.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("subject", "Reference(Any)", "Identifies the patient, practitioner, device or any other resource that is the 'focus' of this resoruce.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("author", "Reference(Practitioner|Patient|RelatedPerson)", "Indicates who was responsible for creating the resource instance.", 0, java.lang.Integer.MAX_VALUE, author)); - childrenList.add(new Property("created", "date", "Identifies when the resource was first created.", 0, java.lang.Integer.MAX_VALUE, created)); - } - - public Basic copy() { - Basic dst = new Basic(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.code = code == null ? null : code.copy(); - dst.subject = subject == null ? null : subject.copy(); - dst.author = author == null ? null : author.copy(); - dst.created = created == null ? null : created.copy(); - return dst; - } - - protected Basic typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (code == null || code.isEmpty()) - && (subject == null || subject.isEmpty()) && (author == null || author.isEmpty()) && (created == null || created.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Basic; - } - - @SearchParamDefinition(name="patient", path="Basic.subject", description="Identifies the", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="created", path="Basic.created", description="When created", type="date" ) - public static final String SP_CREATED = "created"; - @SearchParamDefinition(name="subject", path="Basic.subject", description="Identifies the", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="code", path="Basic.code", description="Kind of Resource", type="token" ) - public static final String SP_CODE = "code"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification. + */ +@ResourceDef(name="Basic", profile="http://hl7.org/fhir/Profile/Basic") +public class Basic extends DomainResource { + + /** + * Identifier assigned to the resource for business purposes, outside the context of FHIR. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Business identifier", formalDefinition="Identifier assigned to the resource for business purposes, outside the context of FHIR." ) + protected List identifier; + + /** + * Identifies the 'type' of resource - equivalent to the resource name for other resources. + */ + @Child(name="code", type={CodeableConcept.class}, order=0, min=1, max=1) + @Description(shortDefinition="Kind of Resource", formalDefinition="Identifies the 'type' of resource - equivalent to the resource name for other resources." ) + protected CodeableConcept code; + + /** + * Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce. + */ + @Child(name="subject", type={}, order=1, min=0, max=1) + @Description(shortDefinition="Identifies the", formalDefinition="Identifies the patient, practitioner, device or any other resource that is the 'focus' of this resoruce." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce.) + */ + protected Resource subjectTarget; + + /** + * Indicates who was responsible for creating the resource instance. + */ + @Child(name="author", type={Practitioner.class, Patient.class, RelatedPerson.class}, order=2, min=0, max=1) + @Description(shortDefinition="Who created", formalDefinition="Indicates who was responsible for creating the resource instance." ) + protected Reference author; + + /** + * The actual object that is the target of the reference (Indicates who was responsible for creating the resource instance.) + */ + protected Resource authorTarget; + + /** + * Identifies when the resource was first created. + */ + @Child(name="created", type={DateType.class}, order=3, min=0, max=1) + @Description(shortDefinition="When created", formalDefinition="Identifies when the resource was first created." ) + protected DateType created; + + private static final long serialVersionUID = 916539354L; + + public Basic() { + super(); + } + + public Basic(CodeableConcept code) { + super(); + this.code = code; + } + + /** + * @return {@link #identifier} (Identifier assigned to the resource for business purposes, outside the context of FHIR.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Identifier assigned to the resource for business purposes, outside the context of FHIR.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #code} (Identifies the 'type' of resource - equivalent to the resource name for other resources.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Basic.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Identifies the 'type' of resource - equivalent to the resource name for other resources.) + */ + public Basic setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #subject} (Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Basic.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce.) + */ + public Basic setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce.) + */ + public Resource getSubjectTarget() { + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the patient, practitioner, device or any other resource that is the "focus" of this resoruce.) + */ + public Basic setSubjectTarget(Resource value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #author} (Indicates who was responsible for creating the resource instance.) + */ + public Reference getAuthor() { + if (this.author == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Basic.author"); + else if (Configuration.doAutoCreate()) + this.author = new Reference(); // cc + return this.author; + } + + public boolean hasAuthor() { + return this.author != null && !this.author.isEmpty(); + } + + /** + * @param value {@link #author} (Indicates who was responsible for creating the resource instance.) + */ + public Basic setAuthor(Reference value) { + this.author = value; + return this; + } + + /** + * @return {@link #author} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates who was responsible for creating the resource instance.) + */ + public Resource getAuthorTarget() { + return this.authorTarget; + } + + /** + * @param value {@link #author} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates who was responsible for creating the resource instance.) + */ + public Basic setAuthorTarget(Resource value) { + this.authorTarget = value; + return this; + } + + /** + * @return {@link #created} (Identifies when the resource was first created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DateType getCreatedElement() { + if (this.created == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Basic.created"); + else if (Configuration.doAutoCreate()) + this.created = new DateType(); // bb + return this.created; + } + + public boolean hasCreatedElement() { + return this.created != null && !this.created.isEmpty(); + } + + public boolean hasCreated() { + return this.created != null && !this.created.isEmpty(); + } + + /** + * @param value {@link #created} (Identifies when the resource was first created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public Basic setCreatedElement(DateType value) { + this.created = value; + return this; + } + + /** + * @return Identifies when the resource was first created. + */ + public Date getCreated() { + return this.created == null ? null : this.created.getValue(); + } + + /** + * @param value Identifies when the resource was first created. + */ + public Basic setCreated(Date value) { + if (value == null) + this.created = null; + else { + if (this.created == null) + this.created = new DateType(); + this.created.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Identifier assigned to the resource for business purposes, outside the context of FHIR.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("code", "CodeableConcept", "Identifies the 'type' of resource - equivalent to the resource name for other resources.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("subject", "Reference(Any)", "Identifies the patient, practitioner, device or any other resource that is the 'focus' of this resoruce.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("author", "Reference(Practitioner|Patient|RelatedPerson)", "Indicates who was responsible for creating the resource instance.", 0, java.lang.Integer.MAX_VALUE, author)); + childrenList.add(new Property("created", "date", "Identifies when the resource was first created.", 0, java.lang.Integer.MAX_VALUE, created)); + } + + public Basic copy() { + Basic dst = new Basic(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.code = code == null ? null : code.copy(); + dst.subject = subject == null ? null : subject.copy(); + dst.author = author == null ? null : author.copy(); + dst.created = created == null ? null : created.copy(); + return dst; + } + + protected Basic typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Basic)) + return false; + Basic o = (Basic) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(code, o.code, true) && compareDeep(subject, o.subject, true) + && compareDeep(author, o.author, true) && compareDeep(created, o.created, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Basic)) + return false; + Basic o = (Basic) other; + return compareValues(created, o.created, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (code == null || code.isEmpty()) + && (subject == null || subject.isEmpty()) && (author == null || author.isEmpty()) && (created == null || created.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Basic; + } + + @SearchParamDefinition(name="patient", path="Basic.subject", description="Identifies the", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="created", path="Basic.created", description="When created", type="date" ) + public static final String SP_CREATED = "created"; + @SearchParamDefinition(name="subject", path="Basic.subject", description="Identifies the", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="code", path="Basic.code", description="Kind of Resource", type="token" ) + public static final String SP_CODE = "code"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Binary.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Binary.class new file mode 100644 index 0000000000000000000000000000000000000000..890d3aecea3be4a4951be72128cae9c42e695d15 GIT binary patch literal 5437 zcmbVP`Fj)B6+I)#NS5UVv6GO>K&UN)MM}0J0@%iBOpI}`g9~n&jHR(PppBU^2}!fH zv`x1x-BQywOIt$Pl0Ddf)0S@J``VxS|MaVS?#yVj+_9Sv^JeBP=bn4defK^6<3HE` z2w)FB31b(|H=-Til;&Gud>bzW@tqL98%6`ZC*R)>;s;?g;=D93O7l_>FU#|l5PlfM zkHTn^!8RFelffU$^A&;qNf18`p*w_EL%7fX?83rA7#r}jCd}YM2>V0$c?i8h{31-_ zglNYv1@|>s|GIp>As}zc+ppy9*Yfrod3&)D7x7jQmlQOm3VBP*TchWSnt~mJ1!F3a z$=;Kg%;-i!&zqK-Picu+)D;k=~ zcxvgGYR1%<1Td`{=~#JTM{nP7?2bL1-3o$bQ{A3k^{S?J_no~qJzD^Y2oyv|$y!ZW z(`vTDdRu+x&e(*F5YzH0YM7?!Hd8ZnHG5n$Oa|lOfkO(E!wQ=FC?P3Z$JOk#)*xo~ zZo2lkf|iltNBfQrjrI?Xj-D9qr|rR0>RC0BRr6Dc5zEl?Q^^np6&&#Nq+0zEO*K-P zVbxG`l@L>@Qc6165GblvhUOgayKB<5DP56RL4#E|tx?xi`$XdXOqh<&d$I9ri6lyj!sXovPlXtVyUUq zN7SNAc3nm_mx82^C#g>DC>fYbGZt)mLo(!;vEV8P?mT1E=)?Wmu* zLbIzYX3MeNy-aNDgi^4&616f+xYEZ770%@equvp$GqXaM!WEa8vK^h{y$Zq=^O8H` zy(`3uWOdWBYpWsqVT~K;X-m&0204_J9BmxYr}C;bZEz>^-Ev6V2Q-zC(S$QSf`@P{f^H-t*pCB2ydA-B z!8o;6wq(Cy6buEOJ(i_0R57a%Q>U%Mu9TsvmKJl_S5;X7{apmV7o6=YxgA9CBu++f z8Sn6vsTg+7hzQ=rdlYy@<|&$&!Nprmfp5Gwf*hFho=i*m%Z(<-p?LUy5FbSFAwE(N znW#E#6>RmSVCQrMALB{{XD}vBS{fsQ$MHl2vzUwEoV;DdwIHrX@I2<1p;t-;s^n#x zr@^E?HEr0}F4ihdls%g7p_+ZRm^=lRDzV)Ak#wPYT8Nv)KJORT@1ql^w3Nks46zcq zGY(W^x)Z$X(y*cDc;z}W_l@o`C_+swC-P*P|9Y>B`lP_W(7WUKETH zaVB+G%9rgN@2;KRm8T?)ZHM=iTv0VNr)E9iz0zj4JpYq+S#yC)q)vK6*T&b=M(tGF zScg}RmHd@Ur-HaAcJWzk0vB`hcuHSiibQR`+5v`f!M=`)S*U`>_cRV1RGV z_hFmUW{y8dJLEKoBPND$RIKkYF^u&bV@+i{LWFic6+Ro{b5K6ui-J+MVFCg@gy?0@ zLwK02Oy9$Pxv00w^mx}5_~JXSz+YJy00 zcrDIX@CeZ)g4^hc#5U+ePh6`G`2;g5#h$O?QFlR-PjO(q6S1Ij3C)fZksD~PgvQ~2 z%C;MXuW2BN$GA|%gbQ?-p%=?r9H7NP?wUo*SiFMgD0zmVHV}o0TVUDP)GtcJ6w)qk zwWR)9Nn2|qZKI^CnJu*Muh?-UeTsIzMoFKhq|Z>&XDR7(w!M<1+LBWE9ZCJOi2g50 z&(}&Z`B`yZsKuE=#tlG?q<%Yu)sntMNnhqv9jDv{)siw|B}wVTnj2VK35_G^tF~QN z(zS#*jjRh)Eh&LS(&`{n(slKczQ$0$PD$UOq;J~Twxj{MWiUY`Ngw0hl~mam@0!E< zu6b-Y5#1Qw6y5BP-XhsEhg+{* zlE>f3 childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("contentType", "code", "MimeType of the binary content represented as a standard MimeType (BCP 13).", 0, java.lang.Integer.MAX_VALUE, contentType)); - childrenList.add(new Property("content", "base64Binary", "The actual content, base64 encoded.", 0, java.lang.Integer.MAX_VALUE, content)); - } - - public Binary copy() { - Binary dst = new Binary(); - copyValues(dst); - dst.contentType = contentType == null ? null : contentType.copy(); - dst.content = content == null ? null : content.copy(); - return dst; - } - - protected Binary typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (contentType == null || contentType.isEmpty()) && (content == null || content.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Binary; - } - - @SearchParamDefinition(name="contenttype", path="Binary.contentType", description="MimeType of the binary content", type="token" ) - public static final String SP_CONTENTTYPE = "contenttype"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A binary resource can contain any content, whether text, image, pdf, zip archive, etc. + */ +@ResourceDef(name="Binary", profile="http://hl7.org/fhir/Profile/Binary") +public class Binary extends Resource { + + /** + * MimeType of the binary content represented as a standard MimeType (BCP 13). + */ + @Child(name="contentType", type={CodeType.class}, order=-1, min=1, max=1) + @Description(shortDefinition="MimeType of the binary content", formalDefinition="MimeType of the binary content represented as a standard MimeType (BCP 13)." ) + protected CodeType contentType; + + /** + * The actual content, base64 encoded. + */ + @Child(name="content", type={Base64BinaryType.class}, order=0, min=1, max=1) + @Description(shortDefinition="The actual content", formalDefinition="The actual content, base64 encoded." ) + protected Base64BinaryType content; + + private static final long serialVersionUID = 974764407L; + + public Binary() { + super(); + } + + public Binary(CodeType contentType, Base64BinaryType content) { + super(); + this.contentType = contentType; + this.content = content; + } + + /** + * @return {@link #contentType} (MimeType of the binary content represented as a standard MimeType (BCP 13).). This is the underlying object with id, value and extensions. The accessor "getContentType" gives direct access to the value + */ + public CodeType getContentTypeElement() { + if (this.contentType == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Binary.contentType"); + else if (Configuration.doAutoCreate()) + this.contentType = new CodeType(); // bb + return this.contentType; + } + + public boolean hasContentTypeElement() { + return this.contentType != null && !this.contentType.isEmpty(); + } + + public boolean hasContentType() { + return this.contentType != null && !this.contentType.isEmpty(); + } + + /** + * @param value {@link #contentType} (MimeType of the binary content represented as a standard MimeType (BCP 13).). This is the underlying object with id, value and extensions. The accessor "getContentType" gives direct access to the value + */ + public Binary setContentTypeElement(CodeType value) { + this.contentType = value; + return this; + } + + /** + * @return MimeType of the binary content represented as a standard MimeType (BCP 13). + */ + public String getContentType() { + return this.contentType == null ? null : this.contentType.getValue(); + } + + /** + * @param value MimeType of the binary content represented as a standard MimeType (BCP 13). + */ + public Binary setContentType(String value) { + if (this.contentType == null) + this.contentType = new CodeType(); + this.contentType.setValue(value); + return this; + } + + /** + * @return {@link #content} (The actual content, base64 encoded.). This is the underlying object with id, value and extensions. The accessor "getContent" gives direct access to the value + */ + public Base64BinaryType getContentElement() { + if (this.content == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Binary.content"); + else if (Configuration.doAutoCreate()) + this.content = new Base64BinaryType(); // bb + return this.content; + } + + public boolean hasContentElement() { + return this.content != null && !this.content.isEmpty(); + } + + public boolean hasContent() { + return this.content != null && !this.content.isEmpty(); + } + + /** + * @param value {@link #content} (The actual content, base64 encoded.). This is the underlying object with id, value and extensions. The accessor "getContent" gives direct access to the value + */ + public Binary setContentElement(Base64BinaryType value) { + this.content = value; + return this; + } + + /** + * @return The actual content, base64 encoded. + */ + public byte[] getContent() { + return this.content == null ? null : this.content.getValue(); + } + + /** + * @param value The actual content, base64 encoded. + */ + public Binary setContent(byte[] value) { + if (this.content == null) + this.content = new Base64BinaryType(); + this.content.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("contentType", "code", "MimeType of the binary content represented as a standard MimeType (BCP 13).", 0, java.lang.Integer.MAX_VALUE, contentType)); + childrenList.add(new Property("content", "base64Binary", "The actual content, base64 encoded.", 0, java.lang.Integer.MAX_VALUE, content)); + } + + public Binary copy() { + Binary dst = new Binary(); + copyValues(dst); + dst.contentType = contentType == null ? null : contentType.copy(); + dst.content = content == null ? null : content.copy(); + return dst; + } + + protected Binary typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Binary)) + return false; + Binary o = (Binary) other; + return compareDeep(contentType, o.contentType, true) && compareDeep(content, o.content, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Binary)) + return false; + Binary o = (Binary) other; + return compareValues(contentType, o.contentType, true) && compareValues(content, o.content, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (contentType == null || contentType.isEmpty()) && (content == null || content.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Binary; + } + + @SearchParamDefinition(name="contenttype", path="Binary.contentType", description="MimeType of the binary content", type="token" ) + public static final String SP_CONTENTTYPE = "contenttype"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BodySite$BodySiteRelativeLocationComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BodySite$BodySiteRelativeLocationComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..dffacc0def4ac0b69e44cdd7c01db15cc4816c45 GIT binary patch literal 4809 zcmb_fS$7lX8Gb%3maGN5l+B4_5g@UpfCvdmv5D~pCk7jgotWBbma#Ol1|*G`83E2l z(sWDry*2H9ZgSC{(_mW8>2i~t(;v`3(wkoN)P3F=jV&+8(DvB==9~9>x98oy@!$Ua z$3Fph4!?<^4`wTRP>ta_tO)EVoESo=$@`56ZpILWDa$QkTZ-asdA<|HyAiw>!)`g; zja#DV{RnPHk&fbnC{6`$udc4f(1{P@_!>TnqCbk4q8NrsqE@XZ+2P__r(67Am> zEgy@P?+ER?viqJa)ZBybNALrMXi2N&%bImf;pl{EEoO_Q7qf+;VP%bq?P!&po-Lbs zy_6m0sx6fCQIoW)GoWx_x>j+FvOa6r1`mcS71Pli!>rf}*`~U*b=K@?(J1AqEmYCU zIv>tbm5;D#<#j8_fGUMx*{H}Cvej-WoP22QW4fKQjH-A=8@uhIX*pwh!KfHQQWzM| z>jY6S^nA*XMC>7H3T*|`Dr==ih0_hfT19irvXRqDYr0bf%PgmE7L8mn<(MhEs^^Tt zQp(axjNA=9)hJ@-+-M$CXwihxkr)INx~F~as%g78M3wKoLh*7byddwJPp8vs$U9hoyotwSRoT zc%GI57-Tv1_RX^9q_$Zd6Glb9SSv5+)+%^|O8`9ES! zlvuFttg>{@jn3YQtJ)1MTXT$3c7jI(Qb?^c#v*&ZX0dh#HglYAnx-kstm+mUWYEHx$Zyw$+3NigUCxktw>s5s#&0{&D+4_LgY0?v#DQcyXc~c=` z*k{XChfeO)7bEO}1=jA_l3r#3vv8i?0oFQaY{slvIsKd=?U?l89+TKV$|W^M4+$>h^&j(Id^>6)XbeB%%7h-1{^ zUZrB^#|ivI^k*L7PEEkTR093TD4hAPz3}de1O{>De*u$Uo9u_1LGXJmf!FbdLQ`J9 z#u@cZvr;1V(+GZ+z|ZjuUMs%V2!5$>u98p?0vaY|nMNCPEzZu6eDvNISC-P<^ z+w0q~dE=*1a4Theyy?jCTAO2Q*TzxCYf;PRH+gqy;VQoy+)29%`}ipk;txjwKPsQ$+i?VN6k!~* zNzA?mmE+OzaXgC?A|}6 z8L>UIReD&YN6>{)j8Xb5JrCd<+PUX!<9eQygM2DJ!|4^M-*KaGfoqJcP#p-VPEsZ? z$yL~M2)gV?)4xaH3mm?O;4+f;5t{1=ub}16_YhgeuJnCG=T^}A83MxhTM7nTwOweT z+5?EFE+o}s*ry&xx9Uc(dIA^86+&QN8x35-RNY`dpW@#>QS>?5<#89WJBWlnK`8j? zn(7u|Q%|~T!U*gc61mHGg{wGzh#n9UBI%5HB`!50?L%0lNqKc!r16bN6Wbw;)3f+y zq|XxR2_k)tNS`OtlSKN$2BfpwB8_`U<4utEZ$x@!d!+F#NQa4Zgh;=Fxq4_CbDG?U zbk_!?yP4Cr&yXb2U{0;5J&_BDj*yte_)vADwd@U+UP?u{YS^*4GO5{{aUAxZ)jk z@#rz{D8A|F@s93}C%mKN+R=LZ?B#TTdV>zUiIjQ^14_fJTELrhB7nE(KW~saiocU0 zm3jF-dKlo;L^^X92QyOWUofbjAm-KlldM~zvKW0T>x0y|P?d zOwl3^sUl7(1DDiQH?}iqS;YYaBFOOKRo=$RCV&+spF4@Z`9L}2nY?!E36e0)uMubVsH8!9HzRS{Fy(XK3X zDjWNi3|E##L@cnGWrGM=Wh4N1Y1U*p!5jR=*!qII6Z>&!}0@W+()jx zD8l>O+JZx>ZJ5P$wQjS!ZZn*|i{AAi=MG2w(`CK(P^^qgiM|I=cCS29P~rOw|6<(t K;2W4m>wf_Lak-`d literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BodySite$BodySiteSpecificLocationComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BodySite$BodySiteSpecificLocationComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..8da262e193eb8f8ca6fe4f9cfb4318e8413e12dc GIT binary patch literal 6119 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BodySite.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BodySite.java new file mode 100644 index 00000000000..2df8d736a54 --- /dev/null +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BodySite.java @@ -0,0 +1,670 @@ +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Record details about the anatomical location of a specimen or body part, including precise localisation information. This resource may be used when a coded concept does not provide the necessary detail needed for the use case. + */ +@ResourceDef(name="BodySite", profile="http://hl7.org/fhir/Profile/BodySite") +public class BodySite extends DomainResource { + + @Block() + public static class BodySiteSpecificLocationComponent extends BackboneElement { + /** + * Named anatomical location - ideally would be coded where possible. + */ + @Child(name="name", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Named anatomical location", formalDefinition="Named anatomical location - ideally would be coded where possible." ) + protected CodeableConcept name; + + /** + * Specify lateraility of the anatomical location. + */ + @Child(name="side", type={CodeableConcept.class}, order=2, min=0, max=1) + @Description(shortDefinition="Laterality", formalDefinition="Specify lateraility of the anatomical location." ) + protected CodeableConcept side; + + /** + * Identify the specific anatomical site out of multiple eg tenth rib; fourth vertebra; second toe. + */ + @Child(name="number", type={IntegerType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Which instance of many", formalDefinition="Identify the specific anatomical site out of multiple eg tenth rib; fourth vertebra; second toe." ) + protected IntegerType number; + + /** + * Line describing the position of a vertical anatomical plane in the body. + */ + @Child(name="anatomicalPlane", type={CodeableConcept.class}, order=4, min=0, max=1) + @Description(shortDefinition="Description of anatomical plane", formalDefinition="Line describing the position of a vertical anatomical plane in the body." ) + protected CodeableConcept anatomicalPlane; + + private static final long serialVersionUID = -1123177167L; + + public BodySiteSpecificLocationComponent() { + super(); + } + + /** + * @return {@link #name} (Named anatomical location - ideally would be coded where possible.) + */ + public CodeableConcept getName() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BodySiteSpecificLocationComponent.name"); + else if (Configuration.doAutoCreate()) + this.name = new CodeableConcept(); // cc + return this.name; + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (Named anatomical location - ideally would be coded where possible.) + */ + public BodySiteSpecificLocationComponent setName(CodeableConcept value) { + this.name = value; + return this; + } + + /** + * @return {@link #side} (Specify lateraility of the anatomical location.) + */ + public CodeableConcept getSide() { + if (this.side == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BodySiteSpecificLocationComponent.side"); + else if (Configuration.doAutoCreate()) + this.side = new CodeableConcept(); // cc + return this.side; + } + + public boolean hasSide() { + return this.side != null && !this.side.isEmpty(); + } + + /** + * @param value {@link #side} (Specify lateraility of the anatomical location.) + */ + public BodySiteSpecificLocationComponent setSide(CodeableConcept value) { + this.side = value; + return this; + } + + /** + * @return {@link #number} (Identify the specific anatomical site out of multiple eg tenth rib; fourth vertebra; second toe.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value + */ + public IntegerType getNumberElement() { + if (this.number == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BodySiteSpecificLocationComponent.number"); + else if (Configuration.doAutoCreate()) + this.number = new IntegerType(); // bb + return this.number; + } + + public boolean hasNumberElement() { + return this.number != null && !this.number.isEmpty(); + } + + public boolean hasNumber() { + return this.number != null && !this.number.isEmpty(); + } + + /** + * @param value {@link #number} (Identify the specific anatomical site out of multiple eg tenth rib; fourth vertebra; second toe.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value + */ + public BodySiteSpecificLocationComponent setNumberElement(IntegerType value) { + this.number = value; + return this; + } + + /** + * @return Identify the specific anatomical site out of multiple eg tenth rib; fourth vertebra; second toe. + */ + public int getNumber() { + return this.number == null ? 0 : this.number.getValue(); + } + + /** + * @param value Identify the specific anatomical site out of multiple eg tenth rib; fourth vertebra; second toe. + */ + public BodySiteSpecificLocationComponent setNumber(int value) { + if (this.number == null) + this.number = new IntegerType(); + this.number.setValue(value); + return this; + } + + /** + * @return {@link #anatomicalPlane} (Line describing the position of a vertical anatomical plane in the body.) + */ + public CodeableConcept getAnatomicalPlane() { + if (this.anatomicalPlane == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BodySiteSpecificLocationComponent.anatomicalPlane"); + else if (Configuration.doAutoCreate()) + this.anatomicalPlane = new CodeableConcept(); // cc + return this.anatomicalPlane; + } + + public boolean hasAnatomicalPlane() { + return this.anatomicalPlane != null && !this.anatomicalPlane.isEmpty(); + } + + /** + * @param value {@link #anatomicalPlane} (Line describing the position of a vertical anatomical plane in the body.) + */ + public BodySiteSpecificLocationComponent setAnatomicalPlane(CodeableConcept value) { + this.anatomicalPlane = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("name", "CodeableConcept", "Named anatomical location - ideally would be coded where possible.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("side", "CodeableConcept", "Specify lateraility of the anatomical location.", 0, java.lang.Integer.MAX_VALUE, side)); + childrenList.add(new Property("number", "integer", "Identify the specific anatomical site out of multiple eg tenth rib; fourth vertebra; second toe.", 0, java.lang.Integer.MAX_VALUE, number)); + childrenList.add(new Property("anatomicalPlane", "CodeableConcept", "Line describing the position of a vertical anatomical plane in the body.", 0, java.lang.Integer.MAX_VALUE, anatomicalPlane)); + } + + public BodySiteSpecificLocationComponent copy() { + BodySiteSpecificLocationComponent dst = new BodySiteSpecificLocationComponent(); + copyValues(dst); + dst.name = name == null ? null : name.copy(); + dst.side = side == null ? null : side.copy(); + dst.number = number == null ? null : number.copy(); + dst.anatomicalPlane = anatomicalPlane == null ? null : anatomicalPlane.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof BodySiteSpecificLocationComponent)) + return false; + BodySiteSpecificLocationComponent o = (BodySiteSpecificLocationComponent) other; + return compareDeep(name, o.name, true) && compareDeep(side, o.side, true) && compareDeep(number, o.number, true) + && compareDeep(anatomicalPlane, o.anatomicalPlane, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof BodySiteSpecificLocationComponent)) + return false; + BodySiteSpecificLocationComponent o = (BodySiteSpecificLocationComponent) other; + return compareValues(number, o.number, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (name == null || name.isEmpty()) && (side == null || side.isEmpty()) + && (number == null || number.isEmpty()) && (anatomicalPlane == null || anatomicalPlane.isEmpty()) + ; + } + + } + + @Block() + public static class BodySiteRelativeLocationComponent extends BackboneElement { + /** + * Identified anatomical landmark from which to specify relative anatomical location. + */ + @Child(name="landmark", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Identified landmark\nIdentified landmark\nIdentified landmark", formalDefinition="Identified anatomical landmark from which to specify relative anatomical location." ) + protected CodeableConcept landmark; + + /** + * Qualifier to identify which direction the anatomical location is in relation to the identified landmark. + */ + @Child(name="aspect", type={CodeableConcept.class}, order=2, min=0, max=1) + @Description(shortDefinition="Relative position to landmark", formalDefinition="Qualifier to identify which direction the anatomical location is in relation to the identified landmark." ) + protected CodeableConcept aspect; + + /** + * Distance of location from the identified landmark. + */ + @Child(name="distance", type={Quantity.class}, order=3, min=0, max=1) + @Description(shortDefinition="Distance from Landmark", formalDefinition="Distance of location from the identified landmark." ) + protected Quantity distance; + + private static final long serialVersionUID = 729150336L; + + public BodySiteRelativeLocationComponent() { + super(); + } + + /** + * @return {@link #landmark} (Identified anatomical landmark from which to specify relative anatomical location.) + */ + public CodeableConcept getLandmark() { + if (this.landmark == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BodySiteRelativeLocationComponent.landmark"); + else if (Configuration.doAutoCreate()) + this.landmark = new CodeableConcept(); // cc + return this.landmark; + } + + public boolean hasLandmark() { + return this.landmark != null && !this.landmark.isEmpty(); + } + + /** + * @param value {@link #landmark} (Identified anatomical landmark from which to specify relative anatomical location.) + */ + public BodySiteRelativeLocationComponent setLandmark(CodeableConcept value) { + this.landmark = value; + return this; + } + + /** + * @return {@link #aspect} (Qualifier to identify which direction the anatomical location is in relation to the identified landmark.) + */ + public CodeableConcept getAspect() { + if (this.aspect == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BodySiteRelativeLocationComponent.aspect"); + else if (Configuration.doAutoCreate()) + this.aspect = new CodeableConcept(); // cc + return this.aspect; + } + + public boolean hasAspect() { + return this.aspect != null && !this.aspect.isEmpty(); + } + + /** + * @param value {@link #aspect} (Qualifier to identify which direction the anatomical location is in relation to the identified landmark.) + */ + public BodySiteRelativeLocationComponent setAspect(CodeableConcept value) { + this.aspect = value; + return this; + } + + /** + * @return {@link #distance} (Distance of location from the identified landmark.) + */ + public Quantity getDistance() { + if (this.distance == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BodySiteRelativeLocationComponent.distance"); + else if (Configuration.doAutoCreate()) + this.distance = new Quantity(); // cc + return this.distance; + } + + public boolean hasDistance() { + return this.distance != null && !this.distance.isEmpty(); + } + + /** + * @param value {@link #distance} (Distance of location from the identified landmark.) + */ + public BodySiteRelativeLocationComponent setDistance(Quantity value) { + this.distance = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("landmark", "CodeableConcept", "Identified anatomical landmark from which to specify relative anatomical location.", 0, java.lang.Integer.MAX_VALUE, landmark)); + childrenList.add(new Property("aspect", "CodeableConcept", "Qualifier to identify which direction the anatomical location is in relation to the identified landmark.", 0, java.lang.Integer.MAX_VALUE, aspect)); + childrenList.add(new Property("distance", "Quantity", "Distance of location from the identified landmark.", 0, java.lang.Integer.MAX_VALUE, distance)); + } + + public BodySiteRelativeLocationComponent copy() { + BodySiteRelativeLocationComponent dst = new BodySiteRelativeLocationComponent(); + copyValues(dst); + dst.landmark = landmark == null ? null : landmark.copy(); + dst.aspect = aspect == null ? null : aspect.copy(); + dst.distance = distance == null ? null : distance.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof BodySiteRelativeLocationComponent)) + return false; + BodySiteRelativeLocationComponent o = (BodySiteRelativeLocationComponent) other; + return compareDeep(landmark, o.landmark, true) && compareDeep(aspect, o.aspect, true) && compareDeep(distance, o.distance, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof BodySiteRelativeLocationComponent)) + return false; + BodySiteRelativeLocationComponent o = (BodySiteRelativeLocationComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (landmark == null || landmark.isEmpty()) && (aspect == null || aspect.isEmpty()) + && (distance == null || distance.isEmpty()); + } + + } + + /** + * Identifier for this instance of the anatomical location. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Bodysite identifier", formalDefinition="Identifier for this instance of the anatomical location." ) + protected List identifier; + + /** + * The Specific and identified anatomical location. + */ + @Child(name="specificLocation", type={}, order=0, min=0, max=1) + @Description(shortDefinition="Specific anatomical location", formalDefinition="The Specific and identified anatomical location." ) + protected BodySiteSpecificLocationComponent specificLocation; + + /** + * Qualifiers to identify non-specific location eg 5cm (distance) inferior (aspect) to the tibial tuberosity (landmark). There may be more than one relative location required to provide a cross reference. + */ + @Child(name="relativeLocation", type={}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Relative anatomical location(s)", formalDefinition="Qualifiers to identify non-specific location eg 5cm (distance) inferior (aspect) to the tibial tuberosity (landmark). There may be more than one relative location required to provide a cross reference." ) + protected List relativeLocation; + + /** + * Description of anatomical location. + */ + @Child(name="description", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="The Description of anatomical location", formalDefinition="Description of anatomical location." ) + protected StringType description; + + /** + * Image or images used to identify a location. + */ + @Child(name="image", type={Attachment.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Attached images", formalDefinition="Image or images used to identify a location." ) + protected List image; + + private static final long serialVersionUID = -11708151L; + + public BodySite() { + super(); + } + + /** + * @return {@link #identifier} (Identifier for this instance of the anatomical location.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Identifier for this instance of the anatomical location.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #specificLocation} (The Specific and identified anatomical location.) + */ + public BodySiteSpecificLocationComponent getSpecificLocation() { + if (this.specificLocation == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BodySite.specificLocation"); + else if (Configuration.doAutoCreate()) + this.specificLocation = new BodySiteSpecificLocationComponent(); // cc + return this.specificLocation; + } + + public boolean hasSpecificLocation() { + return this.specificLocation != null && !this.specificLocation.isEmpty(); + } + + /** + * @param value {@link #specificLocation} (The Specific and identified anatomical location.) + */ + public BodySite setSpecificLocation(BodySiteSpecificLocationComponent value) { + this.specificLocation = value; + return this; + } + + /** + * @return {@link #relativeLocation} (Qualifiers to identify non-specific location eg 5cm (distance) inferior (aspect) to the tibial tuberosity (landmark). There may be more than one relative location required to provide a cross reference.) + */ + public List getRelativeLocation() { + if (this.relativeLocation == null) + this.relativeLocation = new ArrayList(); + return this.relativeLocation; + } + + public boolean hasRelativeLocation() { + if (this.relativeLocation == null) + return false; + for (BodySiteRelativeLocationComponent item : this.relativeLocation) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #relativeLocation} (Qualifiers to identify non-specific location eg 5cm (distance) inferior (aspect) to the tibial tuberosity (landmark). There may be more than one relative location required to provide a cross reference.) + */ + // syntactic sugar + public BodySiteRelativeLocationComponent addRelativeLocation() { //3 + BodySiteRelativeLocationComponent t = new BodySiteRelativeLocationComponent(); + if (this.relativeLocation == null) + this.relativeLocation = new ArrayList(); + this.relativeLocation.add(t); + return t; + } + + /** + * @return {@link #description} (Description of anatomical location.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BodySite.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Description of anatomical location.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public BodySite setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Description of anatomical location. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Description of anatomical location. + */ + public BodySite setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #image} (Image or images used to identify a location.) + */ + public List getImage() { + if (this.image == null) + this.image = new ArrayList(); + return this.image; + } + + public boolean hasImage() { + if (this.image == null) + return false; + for (Attachment item : this.image) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #image} (Image or images used to identify a location.) + */ + // syntactic sugar + public Attachment addImage() { //3 + Attachment t = new Attachment(); + if (this.image == null) + this.image = new ArrayList(); + this.image.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Identifier for this instance of the anatomical location.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("specificLocation", "", "The Specific and identified anatomical location.", 0, java.lang.Integer.MAX_VALUE, specificLocation)); + childrenList.add(new Property("relativeLocation", "", "Qualifiers to identify non-specific location eg 5cm (distance) inferior (aspect) to the tibial tuberosity (landmark). There may be more than one relative location required to provide a cross reference.", 0, java.lang.Integer.MAX_VALUE, relativeLocation)); + childrenList.add(new Property("description", "string", "Description of anatomical location.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("image", "Attachment", "Image or images used to identify a location.", 0, java.lang.Integer.MAX_VALUE, image)); + } + + public BodySite copy() { + BodySite dst = new BodySite(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.specificLocation = specificLocation == null ? null : specificLocation.copy(); + if (relativeLocation != null) { + dst.relativeLocation = new ArrayList(); + for (BodySiteRelativeLocationComponent i : relativeLocation) + dst.relativeLocation.add(i.copy()); + }; + dst.description = description == null ? null : description.copy(); + if (image != null) { + dst.image = new ArrayList(); + for (Attachment i : image) + dst.image.add(i.copy()); + }; + return dst; + } + + protected BodySite typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof BodySite)) + return false; + BodySite o = (BodySite) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(specificLocation, o.specificLocation, true) + && compareDeep(relativeLocation, o.relativeLocation, true) && compareDeep(description, o.description, true) + && compareDeep(image, o.image, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof BodySite)) + return false; + BodySite o = (BodySite) other; + return compareValues(description, o.description, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (specificLocation == null || specificLocation.isEmpty()) + && (relativeLocation == null || relativeLocation.isEmpty()) && (description == null || description.isEmpty()) + && (image == null || image.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.BodySite; + } + + @SearchParamDefinition(name="name", path="BodySite.specificLocation.name", description="Named anatomical location", type="token" ) + public static final String SP_NAME = "name"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BooleanType.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/BooleanType.class new file mode 100644 index 0000000000000000000000000000000000000000..0d9315e860991d7401ef1918d08bda71eceaa1d6 GIT binary patch literal 2190 zcma)7ZC4vb7`+4Jl?Bq2QcJZ0RuV!XR&B9`0)c?i2B-w6pjDSJgsq!R+}&`j|D^u{ z{SbQO9QCumsi(&~n+*w=gXO~vJI{0PbDx)){PXsYKLLD(!zgZICW-+(ilQI0YMF~- z9+@x})V>&@EgQy?+LuH4GK8<9&@dCmirOEC@kH&pD7vw#h!#UwQ#9)#JXQPGYS~ar zUM-s;Yzf31X&bt^Ep5jrTU#qx0r6O%XR&NKu5P*8x>=P0N>qQH0>K%>GTd2#&g9s( zK-Xeu=Hx;3o~*IEsE*EX!8 zcOIzdwnKcPoxKegrRH6|@YAYZ@gj#n@}RT|p00B&XW?6D{K(W>C|6zzj3>u(WxJR@ zG^f%BhlZUtyfPGIx=k;3N7ikud>{XgEm+h}Vp>w7O`!JQs!C*quAqbMzoK2}xd za+yn}EJ@3y#7N#KTDn`cS=0GTQ+sL~CBrq2q*6W8617pcS<*%G<*Hqf%ZBQ4%(p1O zq-wLkjg6}18YQ`HI0ok+V_9WacR5*(z`aYu>rK~mRwsz0S$V*iU6x*Aw9sCCd^8MW zM8h+DqhSZT8oot>UDxm(p3~X2t5U=F_(8*uprXKmZaO^KQy(MEVO%jyS=7ypU9757 zE&WoE6(v;Qdef=igN3SL?n|55tyo98Y3vXAQidFFa32mOG!(GUtHXaJo-2t7cIh1_ zNy7n(0#}-G{lY4qQ4NzwYq*064M~g%j9o^1u8V9@le3-+>&O(Ua{WME&fV5A^n_gE$GmK!?5#j`q`*XoO5d;0lo0|JA1A0KeP z#jg&0$TwKfI>PlMo(yvr+yki-h~GTGZLU$e0u$(BiL|ku8CNdGVl7X!@kT&YMjh9+-T>XWMk`-bIW%RrkK; { - - private static final long serialVersionUID = 1L; - - /** - * Constructor - */ - public BooleanType() { - super(); - } - - /** - * Constructor - */ - public BooleanType(boolean theBoolean) { - setValue(theBoolean); - } - - /** - * Constructor - */ - public BooleanType(Boolean theBoolean) { - setValue(theBoolean); - } - - @Override - protected Boolean parse(String theValue) { - String value = theValue.trim(); - if ("true".equals(value)) { - return Boolean.TRUE; - } else if ("false".equals(value)) { - return Boolean.FALSE; - } else { - throw new IllegalArgumentException("Invalid boolean string: '" + theValue + "'"); - } - } - - @Override - protected String encode(Boolean theValue) { - if (Boolean.TRUE.equals(theValue)) { - return "true"; - } else { - return "false"; - } - } - - @Override - public BooleanType copy() { - return new BooleanType(getValue()); - } - -} +/* +Copyright (c) 2011+, HL7, Inc +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + */ +/** + * + */ +package org.hl7.fhir.instance.model; + +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +import org.hl7.fhir.instance.model.api.IBaseBooleanDatatype; + +/** + * Primitive type "boolean" in FHIR "true" or "false" + */ +@DatatypeDef(name="boolean") +public class BooleanType extends PrimitiveType implements IBaseBooleanDatatype { + + private static final long serialVersionUID = 3L; + + public BooleanType() { + super(); + } + + public BooleanType(boolean theBoolean) { + super(); + setValue(theBoolean); + } + + public BooleanType(Boolean theBoolean) { + super(); + setValue(theBoolean); + } + + public BooleanType(String value) { + super(); + setValueAsString(value); + } + + protected Boolean parse(String theValue) { + String value = theValue.trim(); + if ("true".equals(value)) { + return Boolean.TRUE; + } else if ("false".equals(value)) { + return Boolean.FALSE; + } else { + throw new IllegalArgumentException("Invalid boolean string: '" + theValue + "'"); + } + } + + protected String encode(Boolean theValue) { + if (Boolean.TRUE.equals(theValue)) { + return "true"; + } else { + return "false"; + } + } + + public BooleanType copy() { + return new BooleanType(getValue()); + } +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$1.class new file mode 100644 index 0000000000000000000000000000000000000000..495bca17a5c1cd97d3c568af2e26a41f5dcf10d7 GIT binary patch literal 1885 zcmb7FO>Y}j6g@9?GPW~m3@tPXUnLllv`yWntyAa+amSO`tvwEzNlKd*nAp>J+UYnN z+eO_W!5#_rNM*wci3TZ(P*qqXBv`RRLi`cLdE*$T&7zJpKIfi!_ulvJyYG#E{r9IQ z08YbBU=mYtjNoXT)-frME0~tzgoLz&lL?%{jPyDkr*%fk zgZCtymvBMCMG2QAysuzRfhKS+Wq#^5E47lnk*WvlshT&Nx?OXFldHRnOTW>%oR2(6?F;xVXP~)3Jj}P4}C@gA(%!WcC-IZ#FkpoM25LcA?_AzT3Pc z5Sg4>5r}GG!r`LpJ4Wl?niE*|n#U=I%%)wr%K}5qT@^@}^;S@E=3O~H*skrw9s9m5 zFs%C(uikL|^^()9)vF3}3Un0<$g6k_uc#>Cii)c!3XI8+v}gP4X`^noDz$mn@v3?d z)B_bI>1IeM+86oVpYOT3AZGCB;jKTpWudo zY*Ly{O3NmtJ55T5O-k=H>68Ej)PnCjf#%tbhSLy8cGp^7yW>=v0^`rmC2;KdPN`j8 z>6!!gZLcL~J~=tHTHHsL^X%w?ZV629GfJrkRoAz@@I>%zMis%HXOTz@HRX?cM&y_B~%Tqzh@aXH6IrhBNQeI(i!HnCgG^tk?R z43{3um9^!PZg4--y{!JJV5Ov+W_E!KAGDUThMCo@LfH^FxJxbR=3?0}>7(Qerd3|L zE)X~M?2?u@<&j8eWBg41 z1;62U@*nsMf0O(0Cb#qew-(|kbo>bqw=vFl8pf_EoW1lkto$##)-x`KbP0iJQ%u!| lw^;-bWf{O_{>EvKNR^E7k8uL?bEEtpoWKX<4EfsJ=zq?&)<^&V literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleEntryComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleEntryComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..05c96071874658d71db538773deb1df5c3ff2cf0 GIT binary patch literal 7739 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleEntrySearchComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleEntrySearchComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..299e45e00e5e9fa53d7c7aeb5f5e9e5ee11ed470 GIT binary patch literal 5979 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 M`!0g_pJ>qk0H?M8b^rhX literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleEntryTransactionResponseComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleEntryTransactionResponseComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..d7543070c6fc6fcb9265c8d9d1ef97f6aa63a3bd GIT binary patch literal 6851 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleLinkComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$BundleLinkComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..6b81cc9da0b5e7796e50b27951fcbb6e3960f937 GIT binary patch literal 5153 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 a&r>oR6#rcwn`{UL0<=4}S-67V8q8#90x~OLzh2 zM4XRe5En#TuN!6GbZj~z;yWP@I_qGL$M<4m zIN6LiX;(^wcTWiaF{=mGFs$xmh^l7M*8GY~sj-^;AvIMn%UQI zZ^~vVX_D$xT-{hOdAT}5o6{Vij1w4PfPfVl*YGM8v*75Jl41KYUc)MbP%=DED;hGc zbFssBHQOU3lyDiZb5&oHYRWadGL?eN->B~1Fg*@h#+zJ>dWPoe8=gVl-{J~McPxvd zuX=l%YepJ*OVOvIX2soN6;Qp<3`ZJ9VZP@prd2RphJh9PhV9(6hZ{{ZtWz@$kIHxl z8UrI{4LT3JK+>E5O3BoLnnlJWo{@11V+s0c~xx`8)nWd4B9k98mKQc*GjbBMpYvh;XSv8)>r*c__ z-X>`|sV?QRD%l8&DK(#4=B=P6r*5hCrTrP_K9t<`^3-@;+~bXYk;%NCy4#=sv0t)&Y7D*YOO zJLtp*IEoK(3?ES#A7dP!;0!*+IedmWe2xUZKpJ0S3149qU(=M|#X7#hChoz*x44P# zXb&Jm>XexrKA0d)8zn}emqv+Jp2vH1Hcw7!k^;Yrh|(4iCvYypxhUsE&UJ83;#?=^ zWX^SQ?hxmCIM*F0M+0&ehBJ#U;=iYB?gvQt5j_adhx_z@d_ZOWi9-9CYV-?Y*rM>Z zaS^{_2ES2w53zuqY6wvXQndPX#|iaR4fTl{>gdGepBUW2F@EZ<4j}VWI8A0e$f25f nWP);ke2;BYYFY^m$NwyztI{(VC905S5E(puX@GoXu#D)xk^>19 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$HttpVerb.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$HttpVerb.class new file mode 100644 index 0000000000000000000000000000000000000000..537106685f904eaf4cc6298950f85f58a523caaa GIT binary patch literal 2549 zcmbtVTUQfT6#h;UGLtY|9K7N!!l+4*q<8^akc$`v8-;d&Hrm?|hA=uzVlvVCJNneW z(5DpFg08yS`qYR1sIGozMsDJ&i{*qld-geJ?{DvYzJ2)T-{1cPa1G4_Vz`q;0e2M) zDws*4AG30}uj2D0ig=*HkeeQ=NJ}}VA|vIzima4hDELx=nS_o76^l|XsrX9Duah`} zQUZ_gILV#gsQ6aJcPhSD@q-FW&Mm7LkY36PRs^E=3JU`2jPKW$?E12RHtTtIecH7e z4Z9&QSgh77`89VWzq;ns^N!c>Ew60n*Q+bGo4?)kR$SZIwjLFT&Ci*17@c3_7{5~} z78VMeeYjXG3Mj_XRB^Fj3gjLi(r^5^&te1!CH1X zqXbUpRt2Wg#V6KtEALufC2#t5$E%EH4jbZ_<2nAg!14Duo6Rf}Xof zsH^qrdKg}Z>09Ne53JhT;F5(O%XZCosvfhB`_*vQ(RAiur1V^|ee-3*x7P(a_@*T)W(?>G-TX;z!{vVGT)#cU7Bkdt-Pa79vk zP=k$C1r>pTL(oXWRjg^ajvE3{;AnV)ry2}g){vG%Mh;nA7UND zaaZiR^f|)iMenIsec`3Hd7CPeASwEE!TJe)co>tLs|sowo`IGP_*|M`sb>}z=2L8& z919S9OUhFT7f5`5Yr#TD|6GuYh5;FH=Wb}S<^pYHx9YKc`ww<*`H5ZjS>nDA*G=HY zUcv>fJG$p=cj&wyn$Ej-XTnV+n*FS4xn$h2y*}TDlX=7qR;^}xyg3HyIzRD9! z^{d+;`+RSkvKx#KCu)SP$1kt3SEPl(+sTl(ld*j}8NuyjymLDVL>|ww>8te> z$Ftm^1!pIRcop{ZVvbLqk_-bVNwPqaXMrTu0?88ux_c$LX_4SBhdg*EQR}0WPjUld z6OlKFwx|gVag56~p>Y3I{sRd2_ahQmwD%yE{S9qz5IblPkxjsj65u?d{IMaj1824n z|Mh_PVa`M_LX?|C35|Ybb~3JV_HSsqlHG**GulK;PlTV!29hnkeMiw+ddH5^+0wgq zlLp#$wiw3%Dry zkP-d3Dhv#ZitK)3UUY;4FH18W35e#Q+Ax739PqhC~k6MLq~bL0dY) zhhA@e1iI4Fcm58bUnBZ;qTe9;FwsYde)C=Q@sB`1)6&nj^m8r!{CjdABl<0(j}v`@ z=#xaBdKZ1-Bhdf1@&%&bCHg(0&k%i<==b-dtC%E>!*l;BI9Z_b8nKd|h;AYE3dule zj|GYrC>?Eq(itdS@j&SglnY9r^r?T)LzH|sOR)`TW~prhon|S%fo`+JKIk)FLF{%_ v$dh)GxC_0ahj;f0MtT}k?BgiHUYo-0fLGH2<#aMEhI_ck8{`osy4C*xEjkEM literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$HttpVerbEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Bundle$HttpVerbEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..24d08c28d9b171163eb875212ef84a07f819ef97 GIT binary patch literal 1760 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 { + public BundleType fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("document".equals(codeString)) + return BundleType.DOCUMENT; + if ("message".equals(codeString)) + return BundleType.MESSAGE; + if ("transaction".equals(codeString)) + return BundleType.TRANSACTION; + if ("transaction-response".equals(codeString)) + return BundleType.TRANSACTIONRESPONSE; + if ("history".equals(codeString)) + return BundleType.HISTORY; + if ("searchset".equals(codeString)) + return BundleType.SEARCHSET; + if ("collection".equals(codeString)) + return BundleType.COLLECTION; + throw new IllegalArgumentException("Unknown BundleType code '"+codeString+"'"); + } + public String toCode(BundleType code) { + if (code == BundleType.DOCUMENT) + return "document"; + if (code == BundleType.MESSAGE) + return "message"; + if (code == BundleType.TRANSACTION) + return "transaction"; + if (code == BundleType.TRANSACTIONRESPONSE) + return "transaction-response"; + if (code == BundleType.HISTORY) + return "history"; + if (code == BundleType.SEARCHSET) + return "searchset"; + if (code == BundleType.COLLECTION) + return "collection"; + return "?"; + } + } + + public enum SearchEntryMode { + /** + * This resource matched the search specification. + */ + MATCH, + /** + * This resource is returned because it is referred to from another resource in the search set. + */ + INCLUDE, + /** + * added to help the parsers + */ + NULL; + public static SearchEntryMode fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("match".equals(codeString)) + return MATCH; + if ("include".equals(codeString)) + return INCLUDE; + throw new Exception("Unknown SearchEntryMode code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case MATCH: return "match"; + case INCLUDE: return "include"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case MATCH: return ""; + case INCLUDE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case MATCH: return "This resource matched the search specification."; + case INCLUDE: return "This resource is returned because it is referred to from another resource in the search set."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case MATCH: return "match"; + case INCLUDE: return "include"; + default: return "?"; + } + } + } + + public static class SearchEntryModeEnumFactory implements EnumFactory { + public SearchEntryMode fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("match".equals(codeString)) + return SearchEntryMode.MATCH; + if ("include".equals(codeString)) + return SearchEntryMode.INCLUDE; + throw new IllegalArgumentException("Unknown SearchEntryMode code '"+codeString+"'"); + } + public String toCode(SearchEntryMode code) { + if (code == SearchEntryMode.MATCH) + return "match"; + if (code == SearchEntryMode.INCLUDE) + return "include"; + return "?"; + } + } + + public enum HttpVerb { + /** + * HTTP GET. + */ + GET, + /** + * HTTP POST. + */ + POST, + /** + * HTTP PUT. + */ + PUT, + /** + * HTTP DELETE. + */ + DELETE, + /** + * added to help the parsers + */ + NULL; + public static HttpVerb fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("GET".equals(codeString)) + return GET; + if ("POST".equals(codeString)) + return POST; + if ("PUT".equals(codeString)) + return PUT; + if ("DELETE".equals(codeString)) + return DELETE; + throw new Exception("Unknown HttpVerb code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case GET: return "GET"; + case POST: return "POST"; + case PUT: return "PUT"; + case DELETE: return "DELETE"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case GET: return ""; + case POST: return ""; + case PUT: return ""; + case DELETE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case GET: return "HTTP GET."; + case POST: return "HTTP POST."; + case PUT: return "HTTP PUT."; + case DELETE: return "HTTP DELETE."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case GET: return "GET"; + case POST: return "POST"; + case PUT: return "PUT"; + case DELETE: return "DELETE"; + default: return "?"; + } + } + } + + public static class HttpVerbEnumFactory implements EnumFactory { + public HttpVerb fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("GET".equals(codeString)) + return HttpVerb.GET; + if ("POST".equals(codeString)) + return HttpVerb.POST; + if ("PUT".equals(codeString)) + return HttpVerb.PUT; + if ("DELETE".equals(codeString)) + return HttpVerb.DELETE; + throw new IllegalArgumentException("Unknown HttpVerb code '"+codeString+"'"); + } + public String toCode(HttpVerb code) { + if (code == HttpVerb.GET) + return "GET"; + if (code == HttpVerb.POST) + return "POST"; + if (code == HttpVerb.PUT) + return "PUT"; + if (code == HttpVerb.DELETE) + return "DELETE"; + return "?"; + } + } + + @Block() + public static class BundleLinkComponent extends BackboneElement { + /** + * A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]. + */ + @Child(name="relation", type={StringType.class}, order=1, min=1, max=1) + @Description(shortDefinition="http://www.iana.org/assignments/link-relations/link-relations.xhtml", formalDefinition="A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]." ) + protected StringType relation; + + /** + * The reference details for the link. + */ + @Child(name="url", type={UriType.class}, order=2, min=1, max=1) + @Description(shortDefinition="Reference details for the link", formalDefinition="The reference details for the link." ) + protected UriType url; + + private static final long serialVersionUID = -1010386066L; + + public BundleLinkComponent() { + super(); + } + + public BundleLinkComponent(StringType relation, UriType url) { + super(); + this.relation = relation; + this.url = url; + } + + /** + * @return {@link #relation} (A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]].). This is the underlying object with id, value and extensions. The accessor "getRelation" gives direct access to the value + */ + public StringType getRelationElement() { + if (this.relation == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleLinkComponent.relation"); + else if (Configuration.doAutoCreate()) + this.relation = new StringType(); // bb + return this.relation; + } + + public boolean hasRelationElement() { + return this.relation != null && !this.relation.isEmpty(); + } + + public boolean hasRelation() { + return this.relation != null && !this.relation.isEmpty(); + } + + /** + * @param value {@link #relation} (A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]].). This is the underlying object with id, value and extensions. The accessor "getRelation" gives direct access to the value + */ + public BundleLinkComponent setRelationElement(StringType value) { + this.relation = value; + return this; + } + + /** + * @return A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]. + */ + public String getRelation() { + return this.relation == null ? null : this.relation.getValue(); + } + + /** + * @param value A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]. + */ + public BundleLinkComponent setRelation(String value) { + if (this.relation == null) + this.relation = new StringType(); + this.relation.setValue(value); + return this; + } + + /** + * @return {@link #url} (The reference details for the link.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleLinkComponent.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (The reference details for the link.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public BundleLinkComponent setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return The reference details for the link. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value The reference details for the link. + */ + public BundleLinkComponent setUrl(String value) { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("relation", "string", "A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]].", 0, java.lang.Integer.MAX_VALUE, relation)); + childrenList.add(new Property("url", "uri", "The reference details for the link.", 0, java.lang.Integer.MAX_VALUE, url)); + } + + public BundleLinkComponent copy() { + BundleLinkComponent dst = new BundleLinkComponent(); + copyValues(dst); + dst.relation = relation == null ? null : relation.copy(); + dst.url = url == null ? null : url.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof BundleLinkComponent)) + return false; + BundleLinkComponent o = (BundleLinkComponent) other; + return compareDeep(relation, o.relation, true) && compareDeep(url, o.url, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof BundleLinkComponent)) + return false; + BundleLinkComponent o = (BundleLinkComponent) other; + return compareValues(relation, o.relation, true) && compareValues(url, o.url, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (relation == null || relation.isEmpty()) && (url == null || url.isEmpty()) + ; + } + + } + + @Block() + public static class BundleEntryComponent extends BackboneElement { + /** + * The Base URL for the resource, if different to the base URL specified for the bundle as a whole. + */ + @Child(name="base", type={UriType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Base URL, if different to bundle base", formalDefinition="The Base URL for the resource, if different to the base URL specified for the bundle as a whole." ) + protected UriType base; + + /** + * The Resources for the entry. + */ + @Child(name="resource", type={Resource.class}, order=2, min=0, max=1) + @Description(shortDefinition="Resources in this bundle", formalDefinition="The Resources for the entry." ) + protected Resource resource; + + /** + * Information about the search process that lead to the creation of this entry. + */ + @Child(name="search", type={}, order=3, min=0, max=1) + @Description(shortDefinition="Search related information", formalDefinition="Information about the search process that lead to the creation of this entry." ) + protected BundleEntrySearchComponent search; + + /** + * Additional information about how this entry should be processed as part of a transaction. + */ + @Child(name="transaction", type={}, order=4, min=0, max=1) + @Description(shortDefinition="Transaction Related Information", formalDefinition="Additional information about how this entry should be processed as part of a transaction." ) + protected BundleEntryTransactionComponent transaction; + + /** + * Additional information about how this entry should be processed as part of a transaction. + */ + @Child(name="transactionResponse", type={}, order=5, min=0, max=1) + @Description(shortDefinition="Transaction Related Information", formalDefinition="Additional information about how this entry should be processed as part of a transaction." ) + protected BundleEntryTransactionResponseComponent transactionResponse; + + private static final long serialVersionUID = 2068509254L; + + public BundleEntryComponent() { + super(); + } + + /** + * @return {@link #base} (The Base URL for the resource, if different to the base URL specified for the bundle as a whole.). This is the underlying object with id, value and extensions. The accessor "getBase" gives direct access to the value + */ + public UriType getBaseElement() { + if (this.base == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntryComponent.base"); + else if (Configuration.doAutoCreate()) + this.base = new UriType(); // bb + return this.base; + } + + public boolean hasBaseElement() { + return this.base != null && !this.base.isEmpty(); + } + + public boolean hasBase() { + return this.base != null && !this.base.isEmpty(); + } + + /** + * @param value {@link #base} (The Base URL for the resource, if different to the base URL specified for the bundle as a whole.). This is the underlying object with id, value and extensions. The accessor "getBase" gives direct access to the value + */ + public BundleEntryComponent setBaseElement(UriType value) { + this.base = value; + return this; + } + + /** + * @return The Base URL for the resource, if different to the base URL specified for the bundle as a whole. + */ + public String getBase() { + return this.base == null ? null : this.base.getValue(); + } + + /** + * @param value The Base URL for the resource, if different to the base URL specified for the bundle as a whole. + */ + public BundleEntryComponent setBase(String value) { + if (Utilities.noString(value)) + this.base = null; + else { + if (this.base == null) + this.base = new UriType(); + this.base.setValue(value); + } + return this; + } + + /** + * @return {@link #resource} (The Resources for the entry.) + */ + public Resource getResource() { + return this.resource; + } + + public boolean hasResource() { + return this.resource != null && !this.resource.isEmpty(); + } + + /** + * @param value {@link #resource} (The Resources for the entry.) + */ + public BundleEntryComponent setResource(Resource value) { + this.resource = value; + return this; + } + + /** + * @return {@link #search} (Information about the search process that lead to the creation of this entry.) + */ + public BundleEntrySearchComponent getSearch() { + if (this.search == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntryComponent.search"); + else if (Configuration.doAutoCreate()) + this.search = new BundleEntrySearchComponent(); // cc + return this.search; + } + + public boolean hasSearch() { + return this.search != null && !this.search.isEmpty(); + } + + /** + * @param value {@link #search} (Information about the search process that lead to the creation of this entry.) + */ + public BundleEntryComponent setSearch(BundleEntrySearchComponent value) { + this.search = value; + return this; + } + + /** + * @return {@link #transaction} (Additional information about how this entry should be processed as part of a transaction.) + */ + public BundleEntryTransactionComponent getTransaction() { + if (this.transaction == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntryComponent.transaction"); + else if (Configuration.doAutoCreate()) + this.transaction = new BundleEntryTransactionComponent(); // cc + return this.transaction; + } + + public boolean hasTransaction() { + return this.transaction != null && !this.transaction.isEmpty(); + } + + /** + * @param value {@link #transaction} (Additional information about how this entry should be processed as part of a transaction.) + */ + public BundleEntryComponent setTransaction(BundleEntryTransactionComponent value) { + this.transaction = value; + return this; + } + + /** + * @return {@link #transactionResponse} (Additional information about how this entry should be processed as part of a transaction.) + */ + public BundleEntryTransactionResponseComponent getTransactionResponse() { + if (this.transactionResponse == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntryComponent.transactionResponse"); + else if (Configuration.doAutoCreate()) + this.transactionResponse = new BundleEntryTransactionResponseComponent(); // cc + return this.transactionResponse; + } + + public boolean hasTransactionResponse() { + return this.transactionResponse != null && !this.transactionResponse.isEmpty(); + } + + /** + * @param value {@link #transactionResponse} (Additional information about how this entry should be processed as part of a transaction.) + */ + public BundleEntryComponent setTransactionResponse(BundleEntryTransactionResponseComponent value) { + this.transactionResponse = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("base", "uri", "The Base URL for the resource, if different to the base URL specified for the bundle as a whole.", 0, java.lang.Integer.MAX_VALUE, base)); + childrenList.add(new Property("resource", "Resource", "The Resources for the entry.", 0, java.lang.Integer.MAX_VALUE, resource)); + childrenList.add(new Property("search", "", "Information about the search process that lead to the creation of this entry.", 0, java.lang.Integer.MAX_VALUE, search)); + childrenList.add(new Property("transaction", "", "Additional information about how this entry should be processed as part of a transaction.", 0, java.lang.Integer.MAX_VALUE, transaction)); + childrenList.add(new Property("transactionResponse", "", "Additional information about how this entry should be processed as part of a transaction.", 0, java.lang.Integer.MAX_VALUE, transactionResponse)); + } + + public BundleEntryComponent copy() { + BundleEntryComponent dst = new BundleEntryComponent(); + copyValues(dst); + dst.base = base == null ? null : base.copy(); + dst.resource = resource == null ? null : resource.copy(); + dst.search = search == null ? null : search.copy(); + dst.transaction = transaction == null ? null : transaction.copy(); + dst.transactionResponse = transactionResponse == null ? null : transactionResponse.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof BundleEntryComponent)) + return false; + BundleEntryComponent o = (BundleEntryComponent) other; + return compareDeep(base, o.base, true) && compareDeep(resource, o.resource, true) && compareDeep(search, o.search, true) + && compareDeep(transaction, o.transaction, true) && compareDeep(transactionResponse, o.transactionResponse, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof BundleEntryComponent)) + return false; + BundleEntryComponent o = (BundleEntryComponent) other; + return compareValues(base, o.base, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (base == null || base.isEmpty()) && (resource == null || resource.isEmpty()) + && (search == null || search.isEmpty()) && (transaction == null || transaction.isEmpty()) + && (transactionResponse == null || transactionResponse.isEmpty()); + } + + } + + @Block() + public static class BundleEntrySearchComponent extends BackboneElement { + /** + * Why this entry is in the result set - whether it's included as a match or because of an _include requirement. + */ + @Child(name="mode", type={CodeType.class}, order=1, min=0, max=1) + @Description(shortDefinition="match | include - why this is in the result set", formalDefinition="Why this entry is in the result set - whether it's included as a match or because of an _include requirement." ) + protected Enumeration mode; + + /** + * When searching, the server's search ranking score for the entry. + */ + @Child(name="score", type={DecimalType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Search ranking (between 0 and 1)", formalDefinition="When searching, the server's search ranking score for the entry." ) + protected DecimalType score; + + private static final long serialVersionUID = 837739866L; + + public BundleEntrySearchComponent() { + super(); + } + + /** + * @return {@link #mode} (Why this entry is in the result set - whether it's included as a match or because of an _include requirement.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value + */ + public Enumeration getModeElement() { + if (this.mode == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntrySearchComponent.mode"); + else if (Configuration.doAutoCreate()) + this.mode = new Enumeration(new SearchEntryModeEnumFactory()); // bb + return this.mode; + } + + public boolean hasModeElement() { + return this.mode != null && !this.mode.isEmpty(); + } + + public boolean hasMode() { + return this.mode != null && !this.mode.isEmpty(); + } + + /** + * @param value {@link #mode} (Why this entry is in the result set - whether it's included as a match or because of an _include requirement.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value + */ + public BundleEntrySearchComponent setModeElement(Enumeration value) { + this.mode = value; + return this; + } + + /** + * @return Why this entry is in the result set - whether it's included as a match or because of an _include requirement. + */ + public SearchEntryMode getMode() { + return this.mode == null ? null : this.mode.getValue(); + } + + /** + * @param value Why this entry is in the result set - whether it's included as a match or because of an _include requirement. + */ + public BundleEntrySearchComponent setMode(SearchEntryMode value) { + if (value == null) + this.mode = null; + else { + if (this.mode == null) + this.mode = new Enumeration(new SearchEntryModeEnumFactory()); + this.mode.setValue(value); + } + return this; + } + + /** + * @return {@link #score} (When searching, the server's search ranking score for the entry.). This is the underlying object with id, value and extensions. The accessor "getScore" gives direct access to the value + */ + public DecimalType getScoreElement() { + if (this.score == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntrySearchComponent.score"); + else if (Configuration.doAutoCreate()) + this.score = new DecimalType(); // bb + return this.score; + } + + public boolean hasScoreElement() { + return this.score != null && !this.score.isEmpty(); + } + + public boolean hasScore() { + return this.score != null && !this.score.isEmpty(); + } + + /** + * @param value {@link #score} (When searching, the server's search ranking score for the entry.). This is the underlying object with id, value and extensions. The accessor "getScore" gives direct access to the value + */ + public BundleEntrySearchComponent setScoreElement(DecimalType value) { + this.score = value; + return this; + } + + /** + * @return When searching, the server's search ranking score for the entry. + */ + public BigDecimal getScore() { + return this.score == null ? null : this.score.getValue(); + } + + /** + * @param value When searching, the server's search ranking score for the entry. + */ + public BundleEntrySearchComponent setScore(BigDecimal value) { + if (value == null) + this.score = null; + else { + if (this.score == null) + this.score = new DecimalType(); + this.score.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("mode", "code", "Why this entry is in the result set - whether it's included as a match or because of an _include requirement.", 0, java.lang.Integer.MAX_VALUE, mode)); + childrenList.add(new Property("score", "decimal", "When searching, the server's search ranking score for the entry.", 0, java.lang.Integer.MAX_VALUE, score)); + } + + public BundleEntrySearchComponent copy() { + BundleEntrySearchComponent dst = new BundleEntrySearchComponent(); + copyValues(dst); + dst.mode = mode == null ? null : mode.copy(); + dst.score = score == null ? null : score.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof BundleEntrySearchComponent)) + return false; + BundleEntrySearchComponent o = (BundleEntrySearchComponent) other; + return compareDeep(mode, o.mode, true) && compareDeep(score, o.score, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof BundleEntrySearchComponent)) + return false; + BundleEntrySearchComponent o = (BundleEntrySearchComponent) other; + return compareValues(mode, o.mode, true) && compareValues(score, o.score, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (mode == null || mode.isEmpty()) && (score == null || score.isEmpty()) + ; + } + + } + + @Block() + public static class BundleEntryTransactionComponent extends BackboneElement { + /** + * The HTTP verb for this entry in either a update history, or a transaction/ transaction response. + */ + @Child(name="method", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="GET | POST | PUT | DELETE", formalDefinition="The HTTP verb for this entry in either a update history, or a transaction/ transaction response." ) + protected Enumeration method; + + /** + * A search URL for this resource that specifies how the resource is matched to an existing resource when processing a transaction (see transaction documentation). + */ + @Child(name="url", type={UriType.class}, order=2, min=1, max=1) + @Description(shortDefinition="The URL for the transaction", formalDefinition="A search URL for this resource that specifies how the resource is matched to an existing resource when processing a transaction (see transaction documentation)." ) + protected UriType url; + + /** + * If the ETag values match, return a 304 Not modified status. See the read/vread interaction documentation. + */ + @Child(name="ifNoneMatch", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="For managing cache currency", formalDefinition="If the ETag values match, return a 304 Not modified status. See the read/vread interaction documentation." ) + protected StringType ifNoneMatch; + + /** + * Only perform the operation if the Etag value matches. For more information, see the API section "Managing Resource Contention". + */ + @Child(name="ifMatch", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="For managing update contention", formalDefinition="Only perform the operation if the Etag value matches. For more information, see the API section 'Managing Resource Contention'." ) + protected StringType ifMatch; + + /** + * Only perform the operation if the last updated date matches. For more information, see the API section "Managing Resource Contention". + */ + @Child(name="ifModifiedSince", type={StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="For managing update contention", formalDefinition="Only perform the operation if the last updated date matches. For more information, see the API section 'Managing Resource Contention'." ) + protected StringType ifModifiedSince; + + /** + * Instruct the server not to perform the create if a specified resource already exists. For further information, see "Conditional Create". + */ + @Child(name="ifNoneExist", type={StringType.class}, order=6, min=0, max=1) + @Description(shortDefinition="For conditional creates", formalDefinition="Instruct the server not to perform the create if a specified resource already exists. For further information, see 'Conditional Create'." ) + protected StringType ifNoneExist; + + private static final long serialVersionUID = 1494764694L; + + public BundleEntryTransactionComponent() { + super(); + } + + public BundleEntryTransactionComponent(Enumeration method, UriType url) { + super(); + this.method = method; + this.url = url; + } + + /** + * @return {@link #method} (The HTTP verb for this entry in either a update history, or a transaction/ transaction response.). This is the underlying object with id, value and extensions. The accessor "getMethod" gives direct access to the value + */ + public Enumeration getMethodElement() { + if (this.method == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntryTransactionComponent.method"); + else if (Configuration.doAutoCreate()) + this.method = new Enumeration(new HttpVerbEnumFactory()); // bb + return this.method; + } + + public boolean hasMethodElement() { + return this.method != null && !this.method.isEmpty(); + } + + public boolean hasMethod() { + return this.method != null && !this.method.isEmpty(); + } + + /** + * @param value {@link #method} (The HTTP verb for this entry in either a update history, or a transaction/ transaction response.). This is the underlying object with id, value and extensions. The accessor "getMethod" gives direct access to the value + */ + public BundleEntryTransactionComponent setMethodElement(Enumeration value) { + this.method = value; + return this; + } + + /** + * @return The HTTP verb for this entry in either a update history, or a transaction/ transaction response. + */ + public HttpVerb getMethod() { + return this.method == null ? null : this.method.getValue(); + } + + /** + * @param value The HTTP verb for this entry in either a update history, or a transaction/ transaction response. + */ + public BundleEntryTransactionComponent setMethod(HttpVerb value) { + if (this.method == null) + this.method = new Enumeration(new HttpVerbEnumFactory()); + this.method.setValue(value); + return this; + } + + /** + * @return {@link #url} (A search URL for this resource that specifies how the resource is matched to an existing resource when processing a transaction (see transaction documentation).). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntryTransactionComponent.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (A search URL for this resource that specifies how the resource is matched to an existing resource when processing a transaction (see transaction documentation).). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public BundleEntryTransactionComponent setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return A search URL for this resource that specifies how the resource is matched to an existing resource when processing a transaction (see transaction documentation). + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value A search URL for this resource that specifies how the resource is matched to an existing resource when processing a transaction (see transaction documentation). + */ + public BundleEntryTransactionComponent setUrl(String value) { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + return this; + } + + /** + * @return {@link #ifNoneMatch} (If the ETag values match, return a 304 Not modified status. See the read/vread interaction documentation.). This is the underlying object with id, value and extensions. The accessor "getIfNoneMatch" gives direct access to the value + */ + public StringType getIfNoneMatchElement() { + if (this.ifNoneMatch == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntryTransactionComponent.ifNoneMatch"); + else if (Configuration.doAutoCreate()) + this.ifNoneMatch = new StringType(); // bb + return this.ifNoneMatch; + } + + public boolean hasIfNoneMatchElement() { + return this.ifNoneMatch != null && !this.ifNoneMatch.isEmpty(); + } + + public boolean hasIfNoneMatch() { + return this.ifNoneMatch != null && !this.ifNoneMatch.isEmpty(); + } + + /** + * @param value {@link #ifNoneMatch} (If the ETag values match, return a 304 Not modified status. See the read/vread interaction documentation.). This is the underlying object with id, value and extensions. The accessor "getIfNoneMatch" gives direct access to the value + */ + public BundleEntryTransactionComponent setIfNoneMatchElement(StringType value) { + this.ifNoneMatch = value; + return this; + } + + /** + * @return If the ETag values match, return a 304 Not modified status. See the read/vread interaction documentation. + */ + public String getIfNoneMatch() { + return this.ifNoneMatch == null ? null : this.ifNoneMatch.getValue(); + } + + /** + * @param value If the ETag values match, return a 304 Not modified status. See the read/vread interaction documentation. + */ + public BundleEntryTransactionComponent setIfNoneMatch(String value) { + if (Utilities.noString(value)) + this.ifNoneMatch = null; + else { + if (this.ifNoneMatch == null) + this.ifNoneMatch = new StringType(); + this.ifNoneMatch.setValue(value); + } + return this; + } + + /** + * @return {@link #ifMatch} (Only perform the operation if the Etag value matches. For more information, see the API section "Managing Resource Contention".). This is the underlying object with id, value and extensions. The accessor "getIfMatch" gives direct access to the value + */ + public StringType getIfMatchElement() { + if (this.ifMatch == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntryTransactionComponent.ifMatch"); + else if (Configuration.doAutoCreate()) + this.ifMatch = new StringType(); // bb + return this.ifMatch; + } + + public boolean hasIfMatchElement() { + return this.ifMatch != null && !this.ifMatch.isEmpty(); + } + + public boolean hasIfMatch() { + return this.ifMatch != null && !this.ifMatch.isEmpty(); + } + + /** + * @param value {@link #ifMatch} (Only perform the operation if the Etag value matches. For more information, see the API section "Managing Resource Contention".). This is the underlying object with id, value and extensions. The accessor "getIfMatch" gives direct access to the value + */ + public BundleEntryTransactionComponent setIfMatchElement(StringType value) { + this.ifMatch = value; + return this; + } + + /** + * @return Only perform the operation if the Etag value matches. For more information, see the API section "Managing Resource Contention". + */ + public String getIfMatch() { + return this.ifMatch == null ? null : this.ifMatch.getValue(); + } + + /** + * @param value Only perform the operation if the Etag value matches. For more information, see the API section "Managing Resource Contention". + */ + public BundleEntryTransactionComponent setIfMatch(String value) { + if (Utilities.noString(value)) + this.ifMatch = null; + else { + if (this.ifMatch == null) + this.ifMatch = new StringType(); + this.ifMatch.setValue(value); + } + return this; + } + + /** + * @return {@link #ifModifiedSince} (Only perform the operation if the last updated date matches. For more information, see the API section "Managing Resource Contention".). This is the underlying object with id, value and extensions. The accessor "getIfModifiedSince" gives direct access to the value + */ + public StringType getIfModifiedSinceElement() { + if (this.ifModifiedSince == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntryTransactionComponent.ifModifiedSince"); + else if (Configuration.doAutoCreate()) + this.ifModifiedSince = new StringType(); // bb + return this.ifModifiedSince; + } + + public boolean hasIfModifiedSinceElement() { + return this.ifModifiedSince != null && !this.ifModifiedSince.isEmpty(); + } + + public boolean hasIfModifiedSince() { + return this.ifModifiedSince != null && !this.ifModifiedSince.isEmpty(); + } + + /** + * @param value {@link #ifModifiedSince} (Only perform the operation if the last updated date matches. For more information, see the API section "Managing Resource Contention".). This is the underlying object with id, value and extensions. The accessor "getIfModifiedSince" gives direct access to the value + */ + public BundleEntryTransactionComponent setIfModifiedSinceElement(StringType value) { + this.ifModifiedSince = value; + return this; + } + + /** + * @return Only perform the operation if the last updated date matches. For more information, see the API section "Managing Resource Contention". + */ + public String getIfModifiedSince() { + return this.ifModifiedSince == null ? null : this.ifModifiedSince.getValue(); + } + + /** + * @param value Only perform the operation if the last updated date matches. For more information, see the API section "Managing Resource Contention". + */ + public BundleEntryTransactionComponent setIfModifiedSince(String value) { + if (Utilities.noString(value)) + this.ifModifiedSince = null; + else { + if (this.ifModifiedSince == null) + this.ifModifiedSince = new StringType(); + this.ifModifiedSince.setValue(value); + } + return this; + } + + /** + * @return {@link #ifNoneExist} (Instruct the server not to perform the create if a specified resource already exists. For further information, see "Conditional Create".). This is the underlying object with id, value and extensions. The accessor "getIfNoneExist" gives direct access to the value + */ + public StringType getIfNoneExistElement() { + if (this.ifNoneExist == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntryTransactionComponent.ifNoneExist"); + else if (Configuration.doAutoCreate()) + this.ifNoneExist = new StringType(); // bb + return this.ifNoneExist; + } + + public boolean hasIfNoneExistElement() { + return this.ifNoneExist != null && !this.ifNoneExist.isEmpty(); + } + + public boolean hasIfNoneExist() { + return this.ifNoneExist != null && !this.ifNoneExist.isEmpty(); + } + + /** + * @param value {@link #ifNoneExist} (Instruct the server not to perform the create if a specified resource already exists. For further information, see "Conditional Create".). This is the underlying object with id, value and extensions. The accessor "getIfNoneExist" gives direct access to the value + */ + public BundleEntryTransactionComponent setIfNoneExistElement(StringType value) { + this.ifNoneExist = value; + return this; + } + + /** + * @return Instruct the server not to perform the create if a specified resource already exists. For further information, see "Conditional Create". + */ + public String getIfNoneExist() { + return this.ifNoneExist == null ? null : this.ifNoneExist.getValue(); + } + + /** + * @param value Instruct the server not to perform the create if a specified resource already exists. For further information, see "Conditional Create". + */ + public BundleEntryTransactionComponent setIfNoneExist(String value) { + if (Utilities.noString(value)) + this.ifNoneExist = null; + else { + if (this.ifNoneExist == null) + this.ifNoneExist = new StringType(); + this.ifNoneExist.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("method", "code", "The HTTP verb for this entry in either a update history, or a transaction/ transaction response.", 0, java.lang.Integer.MAX_VALUE, method)); + childrenList.add(new Property("url", "uri", "A search URL for this resource that specifies how the resource is matched to an existing resource when processing a transaction (see transaction documentation).", 0, java.lang.Integer.MAX_VALUE, url)); + childrenList.add(new Property("ifNoneMatch", "string", "If the ETag values match, return a 304 Not modified status. See the read/vread interaction documentation.", 0, java.lang.Integer.MAX_VALUE, ifNoneMatch)); + childrenList.add(new Property("ifMatch", "string", "Only perform the operation if the Etag value matches. For more information, see the API section 'Managing Resource Contention'.", 0, java.lang.Integer.MAX_VALUE, ifMatch)); + childrenList.add(new Property("ifModifiedSince", "string", "Only perform the operation if the last updated date matches. For more information, see the API section 'Managing Resource Contention'.", 0, java.lang.Integer.MAX_VALUE, ifModifiedSince)); + childrenList.add(new Property("ifNoneExist", "string", "Instruct the server not to perform the create if a specified resource already exists. For further information, see 'Conditional Create'.", 0, java.lang.Integer.MAX_VALUE, ifNoneExist)); + } + + public BundleEntryTransactionComponent copy() { + BundleEntryTransactionComponent dst = new BundleEntryTransactionComponent(); + copyValues(dst); + dst.method = method == null ? null : method.copy(); + dst.url = url == null ? null : url.copy(); + dst.ifNoneMatch = ifNoneMatch == null ? null : ifNoneMatch.copy(); + dst.ifMatch = ifMatch == null ? null : ifMatch.copy(); + dst.ifModifiedSince = ifModifiedSince == null ? null : ifModifiedSince.copy(); + dst.ifNoneExist = ifNoneExist == null ? null : ifNoneExist.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof BundleEntryTransactionComponent)) + return false; + BundleEntryTransactionComponent o = (BundleEntryTransactionComponent) other; + return compareDeep(method, o.method, true) && compareDeep(url, o.url, true) && compareDeep(ifNoneMatch, o.ifNoneMatch, true) + && compareDeep(ifMatch, o.ifMatch, true) && compareDeep(ifModifiedSince, o.ifModifiedSince, true) + && compareDeep(ifNoneExist, o.ifNoneExist, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof BundleEntryTransactionComponent)) + return false; + BundleEntryTransactionComponent o = (BundleEntryTransactionComponent) other; + return compareValues(method, o.method, true) && compareValues(url, o.url, true) && compareValues(ifNoneMatch, o.ifNoneMatch, true) + && compareValues(ifMatch, o.ifMatch, true) && compareValues(ifModifiedSince, o.ifModifiedSince, true) + && compareValues(ifNoneExist, o.ifNoneExist, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (method == null || method.isEmpty()) && (url == null || url.isEmpty()) + && (ifNoneMatch == null || ifNoneMatch.isEmpty()) && (ifMatch == null || ifMatch.isEmpty()) + && (ifModifiedSince == null || ifModifiedSince.isEmpty()) && (ifNoneExist == null || ifNoneExist.isEmpty()) + ; + } + + } + + @Block() + public static class BundleEntryTransactionResponseComponent extends BackboneElement { + /** + * The status code returned by processing this entry. + */ + @Child(name="status", type={StringType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Status return code for entry", formalDefinition="The status code returned by processing this entry." ) + protected StringType status; + + /** + * The location header created by processing this operation. + */ + @Child(name="location", type={UriType.class}, order=2, min=0, max=1) + @Description(shortDefinition="The location, if the operation returns a location", formalDefinition="The location header created by processing this operation." ) + protected UriType location; + + /** + * The etag for the resource, it the operation for the entry produced a versioned resource. + */ + @Child(name="etag", type={StringType.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="The etag for the resource (if relevant)", formalDefinition="The etag for the resource, it the operation for the entry produced a versioned resource." ) + protected List etag; + + private static final long serialVersionUID = -1512370306L; + + public BundleEntryTransactionResponseComponent() { + super(); + } + + public BundleEntryTransactionResponseComponent(StringType status) { + super(); + this.status = status; + } + + /** + * @return {@link #status} (The status code returned by processing this entry.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public StringType getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntryTransactionResponseComponent.status"); + else if (Configuration.doAutoCreate()) + this.status = new StringType(); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status code returned by processing this entry.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public BundleEntryTransactionResponseComponent setStatusElement(StringType value) { + this.status = value; + return this; + } + + /** + * @return The status code returned by processing this entry. + */ + public String getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status code returned by processing this entry. + */ + public BundleEntryTransactionResponseComponent setStatus(String value) { + if (this.status == null) + this.status = new StringType(); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #location} (The location header created by processing this operation.). This is the underlying object with id, value and extensions. The accessor "getLocation" gives direct access to the value + */ + public UriType getLocationElement() { + if (this.location == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create BundleEntryTransactionResponseComponent.location"); + else if (Configuration.doAutoCreate()) + this.location = new UriType(); // bb + return this.location; + } + + public boolean hasLocationElement() { + return this.location != null && !this.location.isEmpty(); + } + + public boolean hasLocation() { + return this.location != null && !this.location.isEmpty(); + } + + /** + * @param value {@link #location} (The location header created by processing this operation.). This is the underlying object with id, value and extensions. The accessor "getLocation" gives direct access to the value + */ + public BundleEntryTransactionResponseComponent setLocationElement(UriType value) { + this.location = value; + return this; + } + + /** + * @return The location header created by processing this operation. + */ + public String getLocation() { + return this.location == null ? null : this.location.getValue(); + } + + /** + * @param value The location header created by processing this operation. + */ + public BundleEntryTransactionResponseComponent setLocation(String value) { + if (Utilities.noString(value)) + this.location = null; + else { + if (this.location == null) + this.location = new UriType(); + this.location.setValue(value); + } + return this; + } + + /** + * @return {@link #etag} (The etag for the resource, it the operation for the entry produced a versioned resource.) + */ + public List getEtag() { + if (this.etag == null) + this.etag = new ArrayList(); + return this.etag; + } + + public boolean hasEtag() { + if (this.etag == null) + return false; + for (StringType item : this.etag) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #etag} (The etag for the resource, it the operation for the entry produced a versioned resource.) + */ + // syntactic sugar + public StringType addEtagElement() {//2 + StringType t = new StringType(); + if (this.etag == null) + this.etag = new ArrayList(); + this.etag.add(t); + return t; + } + + /** + * @param value {@link #etag} (The etag for the resource, it the operation for the entry produced a versioned resource.) + */ + public BundleEntryTransactionResponseComponent addEtag(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.etag == null) + this.etag = new ArrayList(); + this.etag.add(t); + return this; + } + + /** + * @param value {@link #etag} (The etag for the resource, it the operation for the entry produced a versioned resource.) + */ + public boolean hasEtag(String value) { + if (this.etag == null) + return false; + for (StringType v : this.etag) + if (v.equals(value)) // string + return true; + return false; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("status", "string", "The status code returned by processing this entry.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("location", "uri", "The location header created by processing this operation.", 0, java.lang.Integer.MAX_VALUE, location)); + childrenList.add(new Property("etag", "string", "The etag for the resource, it the operation for the entry produced a versioned resource.", 0, java.lang.Integer.MAX_VALUE, etag)); + } + + public BundleEntryTransactionResponseComponent copy() { + BundleEntryTransactionResponseComponent dst = new BundleEntryTransactionResponseComponent(); + copyValues(dst); + dst.status = status == null ? null : status.copy(); + dst.location = location == null ? null : location.copy(); + if (etag != null) { + dst.etag = new ArrayList(); + for (StringType i : etag) + dst.etag.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof BundleEntryTransactionResponseComponent)) + return false; + BundleEntryTransactionResponseComponent o = (BundleEntryTransactionResponseComponent) other; + return compareDeep(status, o.status, true) && compareDeep(location, o.location, true) && compareDeep(etag, o.etag, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof BundleEntryTransactionResponseComponent)) + return false; + BundleEntryTransactionResponseComponent o = (BundleEntryTransactionResponseComponent) other; + return compareValues(status, o.status, true) && compareValues(location, o.location, true) && compareValues(etag, o.etag, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (status == null || status.isEmpty()) && (location == null || location.isEmpty()) + && (etag == null || etag.isEmpty()); + } + + } + + /** + * Indicates the purpose of this bundle- how it was intended to be used. + */ + @Child(name="type", type={CodeType.class}, order=-1, min=1, max=1) + @Description(shortDefinition="document | message | transaction | transaction-response | history | searchset | collection", formalDefinition="Indicates the purpose of this bundle- how it was intended to be used." ) + protected Enumeration type; + + /** + * The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base). + */ + @Child(name="base", type={UriType.class}, order=0, min=0, max=1) + @Description(shortDefinition="Stated Base URL", formalDefinition="The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base)." ) + protected UriType base; + + /** + * If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle). + */ + @Child(name="total", type={IntegerType.class}, order=1, min=0, max=1) + @Description(shortDefinition="If search, the total number of matches", formalDefinition="If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle)." ) + protected IntegerType total; + + /** + * A series of links that provide context to this bundle. + */ + @Child(name="link", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Links related to this Bundle", formalDefinition="A series of links that provide context to this bundle." ) + protected List link; + + /** + * An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only). + */ + @Child(name="entry", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Entry in the bundle - will have a resource, or information", formalDefinition="An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only)." ) + protected List entry; + + /** + * XML Digital Signature - base64 encoded. + */ + @Child(name="signature", type={Base64BinaryType.class}, order=4, min=0, max=1) + @Description(shortDefinition="XML Digital Signature (base64 encoded)", formalDefinition="XML Digital Signature - base64 encoded." ) + protected Base64BinaryType signature; + + private static final long serialVersionUID = -1332054150L; + + public Bundle() { + super(); + } + + public Bundle(Enumeration type) { + super(); + this.type = type; + } + + /** + * @return {@link #type} (Indicates the purpose of this bundle- how it was intended to be used.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public Enumeration getTypeElement() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Bundle.type"); + else if (Configuration.doAutoCreate()) + this.type = new Enumeration(new BundleTypeEnumFactory()); // bb + return this.type; + } + + public boolean hasTypeElement() { + return this.type != null && !this.type.isEmpty(); + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Indicates the purpose of this bundle- how it was intended to be used.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public Bundle setTypeElement(Enumeration value) { + this.type = value; + return this; + } + + /** + * @return Indicates the purpose of this bundle- how it was intended to be used. + */ + public BundleType getType() { + return this.type == null ? null : this.type.getValue(); + } + + /** + * @param value Indicates the purpose of this bundle- how it was intended to be used. + */ + public Bundle setType(BundleType value) { + if (this.type == null) + this.type = new Enumeration(new BundleTypeEnumFactory()); + this.type.setValue(value); + return this; + } + + /** + * @return {@link #base} (The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base).). This is the underlying object with id, value and extensions. The accessor "getBase" gives direct access to the value + */ + public UriType getBaseElement() { + if (this.base == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Bundle.base"); + else if (Configuration.doAutoCreate()) + this.base = new UriType(); // bb + return this.base; + } + + public boolean hasBaseElement() { + return this.base != null && !this.base.isEmpty(); + } + + public boolean hasBase() { + return this.base != null && !this.base.isEmpty(); + } + + /** + * @param value {@link #base} (The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base).). This is the underlying object with id, value and extensions. The accessor "getBase" gives direct access to the value + */ + public Bundle setBaseElement(UriType value) { + this.base = value; + return this; + } + + /** + * @return The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base). + */ + public String getBase() { + return this.base == null ? null : this.base.getValue(); + } + + /** + * @param value The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base). + */ + public Bundle setBase(String value) { + if (Utilities.noString(value)) + this.base = null; + else { + if (this.base == null) + this.base = new UriType(); + this.base.setValue(value); + } + return this; + } + + /** + * @return {@link #total} (If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle).). This is the underlying object with id, value and extensions. The accessor "getTotal" gives direct access to the value + */ + public IntegerType getTotalElement() { + if (this.total == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Bundle.total"); + else if (Configuration.doAutoCreate()) + this.total = new IntegerType(); // bb + return this.total; + } + + public boolean hasTotalElement() { + return this.total != null && !this.total.isEmpty(); + } + + public boolean hasTotal() { + return this.total != null && !this.total.isEmpty(); + } + + /** + * @param value {@link #total} (If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle).). This is the underlying object with id, value and extensions. The accessor "getTotal" gives direct access to the value + */ + public Bundle setTotalElement(IntegerType value) { + this.total = value; + return this; + } + + /** + * @return If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle). + */ + public int getTotal() { + return this.total == null ? 0 : this.total.getValue(); + } + + /** + * @param value If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle). + */ + public Bundle setTotal(int value) { + if (this.total == null) + this.total = new IntegerType(); + this.total.setValue(value); + return this; + } + + /** + * @return {@link #link} (A series of links that provide context to this bundle.) + */ + public List getLink() { + if (this.link == null) + this.link = new ArrayList(); + return this.link; + } + + public boolean hasLink() { + if (this.link == null) + return false; + for (BundleLinkComponent item : this.link) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #link} (A series of links that provide context to this bundle.) + */ + // syntactic sugar + public BundleLinkComponent addLink() { //3 + BundleLinkComponent t = new BundleLinkComponent(); + if (this.link == null) + this.link = new ArrayList(); + this.link.add(t); + return t; + } + + /** + * @return {@link #entry} (An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only).) + */ + public List getEntry() { + if (this.entry == null) + this.entry = new ArrayList(); + return this.entry; + } + + public boolean hasEntry() { + if (this.entry == null) + return false; + for (BundleEntryComponent item : this.entry) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #entry} (An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only).) + */ + // syntactic sugar + public BundleEntryComponent addEntry() { //3 + BundleEntryComponent t = new BundleEntryComponent(); + if (this.entry == null) + this.entry = new ArrayList(); + this.entry.add(t); + return t; + } + + /** + * @return {@link #signature} (XML Digital Signature - base64 encoded.). This is the underlying object with id, value and extensions. The accessor "getSignature" gives direct access to the value + */ + public Base64BinaryType getSignatureElement() { + if (this.signature == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Bundle.signature"); + else if (Configuration.doAutoCreate()) + this.signature = new Base64BinaryType(); // bb + return this.signature; + } + + public boolean hasSignatureElement() { + return this.signature != null && !this.signature.isEmpty(); + } + + public boolean hasSignature() { + return this.signature != null && !this.signature.isEmpty(); + } + + /** + * @param value {@link #signature} (XML Digital Signature - base64 encoded.). This is the underlying object with id, value and extensions. The accessor "getSignature" gives direct access to the value + */ + public Bundle setSignatureElement(Base64BinaryType value) { + this.signature = value; + return this; + } + + /** + * @return XML Digital Signature - base64 encoded. + */ + public byte[] getSignature() { + return this.signature == null ? null : this.signature.getValue(); + } + + /** + * @param value XML Digital Signature - base64 encoded. + */ + public Bundle setSignature(byte[] value) { + if (value == null) + this.signature = null; + else { + if (this.signature == null) + this.signature = new Base64BinaryType(); + this.signature.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "code", "Indicates the purpose of this bundle- how it was intended to be used.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("base", "uri", "The base URL for the service that provided these resources. All relative URLs are relative to this one (equivalent to xml:base).", 0, java.lang.Integer.MAX_VALUE, base)); + childrenList.add(new Property("total", "integer", "If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle).", 0, java.lang.Integer.MAX_VALUE, total)); + childrenList.add(new Property("link", "", "A series of links that provide context to this bundle.", 0, java.lang.Integer.MAX_VALUE, link)); + childrenList.add(new Property("entry", "", "An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only).", 0, java.lang.Integer.MAX_VALUE, entry)); + childrenList.add(new Property("signature", "base64Binary", "XML Digital Signature - base64 encoded.", 0, java.lang.Integer.MAX_VALUE, signature)); + } + + public Bundle copy() { + Bundle dst = new Bundle(); + copyValues(dst); + dst.type = type == null ? null : type.copy(); + dst.base = base == null ? null : base.copy(); + dst.total = total == null ? null : total.copy(); + if (link != null) { + dst.link = new ArrayList(); + for (BundleLinkComponent i : link) + dst.link.add(i.copy()); + }; + if (entry != null) { + dst.entry = new ArrayList(); + for (BundleEntryComponent i : entry) + dst.entry.add(i.copy()); + }; + dst.signature = signature == null ? null : signature.copy(); + return dst; + } + + protected Bundle typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Bundle)) + return false; + Bundle o = (Bundle) other; + return compareDeep(type, o.type, true) && compareDeep(base, o.base, true) && compareDeep(total, o.total, true) + && compareDeep(link, o.link, true) && compareDeep(entry, o.entry, true) && compareDeep(signature, o.signature, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Bundle)) + return false; + Bundle o = (Bundle) other; + return compareValues(type, o.type, true) && compareValues(base, o.base, true) && compareValues(total, o.total, true) + && compareValues(signature, o.signature, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (base == null || base.isEmpty()) + && (total == null || total.isEmpty()) && (link == null || link.isEmpty()) && (entry == null || entry.isEmpty()) + && (signature == null || signature.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Bundle; + } + + @SearchParamDefinition(name="message", path="", description="The first resource in the bundle, if the bundle type is 'message' - this is a message header, and this parameter provides access to search it's contents", type="reference" ) + public static final String SP_MESSAGE = "message"; + @SearchParamDefinition(name="composition", path="", description="The first resource in the bundle, if the bundle type is 'document' - this is a composition, and this parameter provides access to searches it's contents", type="reference" ) + public static final String SP_COMPOSITION = "composition"; + @SearchParamDefinition(name="type", path="Bundle.type", description="document | message | transaction | transaction-response | history | searchset | collection", type="token" ) + public static final String SP_TYPE = "type"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7a2708612d668a4471700e4a9b19f4a9e9fee314 GIT binary patch literal 2690 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanActivityCategoryEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanActivityCategoryEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..40b9e90b68c35d2e593bff609a9dcfb0751d9798 GIT binary patch literal 2192 zcmbtVT~ixn6n+kn>}J^%*wRm0q%8;m+i0t;6$*tAN@^f6At=?VOIX6vup2iUDl`5M z$3NhBnR)>;c1FGGMXwyczdvXE{?=>9^Clz&DBO@4-t(My&z|=@&wI{t_rEvZ1aJ=X z3hu)>84oLX1m|U3@SzQl%D5=(V>0@M9guNJ*g+XX!d{j!EbNGkkg%f?!V<<5>=&u7 z2s9WX7^9VFEE1f~fMA$!gsG(}Czm@F*K z8qSnHo8=vO-m#a;4-bcQ$B1WjYdGzi%ci>$(p@8CJ1Yb=Vp)b0%If*NktZa3qKo>n z9^}|eFzGs`mFW*eZ6_04$X*D}FPKiywDPWQrH$YcADj(VQg>Fs)-(DE{-mp?Z%pX9 z_0p8^i)kb0nzqG9dR@C*C7->wg96)YCv?^_3R{IG=Ch6Bmar=Ejlj~I1Ygq3Sh`zq zSm2jx^2BBrjkMdpD*=&WOi#P4`@pV&6(x6;bdW_=l6JvK8)K%pY=7mQGooY_CvcJg z2`LrRc#^wh&NN&VPhm!2r;t%`O<{8jgym#YUq&n>U8|ecG$@jmJG|SUOC~=Mo?Mlk%F0> zGaN#9%DQ3MH?58eovqE(k>;lB=vMJObOJG$MOx6EV{b?TOL1vWO{Ag^52)xu4`F;y znQE?^aB3$)o1&UGgef-^E3#V+JH1?1l`qP8p`d4Z#tzgD!FsO-u5l}jM#B6_8QNnz zibRRj6>g{SWGI%JoC+tnlVT&uaAJCRDiWLIC-Foq6dp|_!dzA|6^}%^wUMW|QL z?ZPu4yLN?ZYtKFBdK2?XM*eJe?xt(yvbe9>`D;(;;7`AYEsqti zr`S8rmM09J-ZjuI2Aq;tuh^t_c;ya4od_il8W;gD_uYZ2)%C5S{uOAoj)#g`LwR3% z9iF1*tvXUsldF!es3}#av8bt4$6wU;Rh_1y)?9U3inpQ7+{XTyHMD96R&kIY9n=o- zvWmlNIPw;kR#z(iD*xvJy$e6Rhokg9j?o9`q7M7ipFpxejRGkG`2|u1Y7%IlKrI3_7qz2BPFAKfh$g1W~=f0ZJ5CQmyd9+ I2_)eAANYqj%m4rY literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanActivityComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanActivityComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..0ad1ab645009ccad95c166b08261a566d6eb5713 GIT binary patch literal 13301 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanActivityStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanActivityStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..473446080ada1c04b4de2c92a71e85c6a36dbeb1 GIT binary patch literal 2127 zcmbtVTUQ%Z6#h1s%w(7p7-=iLAXpFr(r8s`4TXjfO4^VB2~=olJ0wFGI+=-+Nwxk2 z-+k~8_#AzJwd`8zlMntG|AEVWCL|<6c_C}%?91%4FW>pj%-{e1_B(*jpewkEPi5Ru z*!Wz=7eNeSM#fzszm#!L$ggBXg`AafU&uKb^Flt55R@*RK0K7M zEa8!Y8+a_1l!O%t840U|z^rMT-W;KGBD_iHiaP~^(3>)CBV8@+8g5SCwb&!?xlXD6 z@Jd{Fja5sxV|mYfZF+CAp6*pE1T|^fh8wr^O2uGvZ6bA`zt$rhS&U>o*R+e#aLRFu zk$vlKWN+VeBc@&PbUSZEN?g{8G!lNC$oECSQK(wNu_+uqrafJDouX@0Dk`1`m*m*f`;NsCU;A6~PN{4eevYlWLvX4x zYjYhxnFrE|5ttXHx79#xpCcsf1rG7>}jniIg85(931RE)b?$`#j_Bwb6vRFMCd7)`5vL zZ*$w^jg0)796b-$#!+E}-?cYE7~)raH%q=wypFIXynM6JJ$VHBg%##JuL0qtC0?05 z=D0T36jK{fh3I7HAq$O_Q5Ou%;||1iOhE{33w|9q2p z6^Q-FB?S!gQ#|6&2xwh3)+C_?gccNDMAYgO%+Q4+F;+iPdcCZ|N3m%Ak#!}<`gGgfZ!65T2 Ii8O-$0V$6cOaK4? literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanGoalComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanGoalComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..3fe9acf1de52e4a9e9324b1c3b8055785fb4d747 GIT binary patch literal 8998 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 HEK2?lF_=-4 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanGoalStatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanGoalStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..8f7cae38ba7d62aa986d96aec582315a825d8f11 GIT binary patch literal 3039 zcmbtV+fx%~6#p#*vV;Y3y;ECPiAWGg=|!qg1raedf;B*k_O>KTvbyZX%?6~G*FN;2 z5A956+UdQvGqsnA*g~h)%R_4~e^jTxZxa#_rsK#ayJye0=bYcUe&0X;{(2k0lX$BR z0h|gUhUbFl4k8}H0h|$!5gDT)oW=7p&IzG}j4?sSWlRYAf{Yghoebi95EnvF@sf;} z1${-vtAf53!e;1om_jl{$&?I3#HV|HZsaWcjAP)?liVaN+ogi*vJTW#98;Ok!OQ;(h7#SRj$Hj-h$ap+1 zAsC(*h>s7^sUsIQfLJ@LTY2GjUt44&b^?P8Pr|0SX&WQ?nJL2^)2A%11bu+fX$fcA z;urNNc?=PrJ@c(bWdl zFL~*Vo-H{V8oH7+vYzSK%to!}6s5MdMb>&v%W1<)%;!8~MnVJMPZ-m}87i}Kf;V$n zOP?oTU(zbMd3uGRAv-_Q_t3E)Wvhe|PTox#Cry#$hUISR5*b$TxR{}C1v9XNa3u6R zWJ@YIgsg&Ra99F@xU9ehvr}){omtmOyGAajpbZBZr=HB1#;lQ2&>{FxF3-Mab*_N_d0p@5HZP9_13GDLwML|^5xUo`A z(ee^%l2l>GuAZw=AA;o#KS-lWczWf;`#W#%is35nEvvz4zNxZO6yl^Cm-D*Crrx&F zX33$*c?z)BhMkhoxl&*qj8*MQFxhjKK~~vbR^@io`XJ$kyCobCC+18qnc;RNQWWO# z5*Eixc=>n<`^QW9R4Kny#zR8Yg&6l^$4!~G&XbKhVywTL2i*Z4!L|Ln#2^Et9AKYv zY<8>wkNj@`unvE(npk{(sf2B{7Sap zgQ5o87a@O$8mXYx6<>o32o==&GNTmKhBDJwP&bvCrov5Zp1cWlatT}1t&7;kPutY( zd@N$e5_aD4;YGMzsOR%zG~g3#!l&4Y&#)VxV?Vw?1Ya^~UojC^aSUH$5Z~ZgO3SEi zkQ81xN=`VvnfEdD^C_awmeSR;fL#P`?z+ZBULCwefC1hb?-t&zyd!EI<6<<7p`bn@ zQd{NMqM6kIzGbbiv6|n}+3#7+9|-cJ??@0eZB@KzbzlSN!Gc=;uR&iR`VFH0MD(AD zzDV??`_YeY0DX5seYBuHR#5k>6Z=h~|3>s%M88e+J4C;GKl zpG5zQ=zp(9mvMq^T&(;1er195O#~)Yt$GQ2Zy@9|`vN|r_)JTU&ouf>xYlQyd}e>p zXIkZ3v{21{PfP|Dpd==17SNcOtX)7;Vv=*vnz#X}GF8Psd52B>E}HQk_lOVZ=|^me fw>gHzSsTJhzpsYTPO7rQ0yvEbcaSMkG|B$~UkuQw literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanGoalStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanGoalStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..c741e1f9c924b01fa477464db40a282c9784348b GIT binary patch literal 1937 zcmbVMTT>fl7=Ato*#nEED_Bu!p<*FK8l_sSAT*?bMngaXb?V&`wqe_4H*PklKgB=b zb@T#e?2J0o885tWJRfH~>(6j}zMK){g3RQ558u1*@p->b|M}oU09Wvujv-8`xU3_A zXH-0^VGz?Qu1NZvisvQ0s$xdc7ZhAm@S=`B`N^!Lb1GhvbY6#n1r^s7Eb4d^DS6yb zkXEp);HE%y&heaZUZ8s-c1s|V^0#e)Gg-&8bCumKJJ_(cTx!%ifxlb7G*eb!uep}D z>|1U=w8BbRz{q%>9i&{VT(&8$Ol0p`dsc#0#Y8>~9IrSV%lbhvvE$Ap?(8^0!tu(X ze9uMRS5my?YR>To83FE zjq_}zp7$$3!CrFYQ2UzJmu0dB9>)^`P>?b3GF}nrb-bxk;1>hCTsDx!3UOc+b{u=p z-ZqevvR;|O z+YSUqH@$nF|E4$6OtuY-kpiJJGH&2itP2P-d2GlsHYqJAAfRVX2?zsE;gW$1xG1oA zN*^6V6Bs_4{-OK+b_42w5Ewrx?*DyU?;e-JexqW!+>XIc5I3+Ed!3WZ=Pt4peDg&*~EW13&Xc`2{+D#aaA@0sPJ;|G}*PWSGA&fxl~+L=n+7 zP3uomJKhLB+6b;q#y`g3J|2;-4~>E57wDoshVu>c=p_4e?uczih23n7OmY(O8hx5L T08DBIk;KULA)+FQC20Qwf+_Jr literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanParticipantComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanParticipantComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..13fbd29a96baf119060bd8d05b4eb03ac270a83d GIT binary patch literal 4812 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan$CarePlanStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..6d071798acc8195f3bf0b4558476adb6c88e37e1 GIT binary patch literal 1810 zcmbVMTT>HR5dID%b8~_?pvWpLxF{r1qq1H>FlNJU)^Jf+tK9Ns7>;ptawbkDs8!zo zg@3>|tD+B3rB%E8?C&6xUQ_RpeCs z!k|pM!VPB_x+jvi8DcqqjWg^ox`Hp%%BwtBu~$9X(e4F)IXdjg*#TejY_S~LVXeww z7KGqI&aj=AM3iwa;gdUYGK{sO&x=}_uziG|z~q zHo-oS!f=$N(%2Lvsr%?^xV}e>G{8xJfoXN6H_-hSR=W{rbt@L_s~-`sTgsN9)-7$z z(CeRJ-1&@scQz?fVgo&N)MM=@v4P%A9Qd2kbTxpa=q&~+NZ=7+4rs56;|P&N4d<|q z3wVrKJV6dmsY*bDk}#QRnm9&Qj0!O5qd6ui>%B{HWf7xk0{9M!6|0k`N==cPE;X%g zS#@%XAPm!O2cD69PQhN_0A8XWuPEGW4C75BZ5-W(uJ>js)A44e(Pkz+mHr2P8|ar2 zJJ==nA)FvL32eCOuB3>IgFAfN%IU^<1KR|VATg%!Bdr!`eYlF@YlGD6tGEvRKbq~t ANdN!< literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan.class new file mode 100644 index 0000000000000000000000000000000000000000..35ec5f8b290f811a3b7f1811ff7a884e3e1d5395 GIT binary patch literal 18065 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 { - public CarePlanStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("planned".equals(codeString)) - return CarePlanStatus.PLANNED; - if ("active".equals(codeString)) - return CarePlanStatus.ACTIVE; - if ("completed".equals(codeString)) - return CarePlanStatus.COMPLETED; - throw new IllegalArgumentException("Unknown CarePlanStatus code '"+codeString+"'"); - } - public String toCode(CarePlanStatus code) throws IllegalArgumentException { - if (code == CarePlanStatus.PLANNED) - return "planned"; - if (code == CarePlanStatus.ACTIVE) - return "active"; - if (code == CarePlanStatus.COMPLETED) - return "completed"; - return "?"; - } - } - - public enum CarePlanGoalStatus implements FhirEnum { - /** - * The goal is being sought but has not yet been reached. (Also applies if goal was reached in the past but there has been regression and goal is being sought again). - */ - INPROGRESS, - /** - * The goal has been met and no further action is needed. - */ - ACHIEVED, - /** - * The goal has been met, but ongoing activity is needed to sustain the goal objective. - */ - SUSTAINING, - /** - * The goal is no longer being sought. - */ - CANCELLED, - /** - * added to help the parsers - */ - NULL; - - public static final CarePlanGoalStatusEnumFactory ENUM_FACTORY = new CarePlanGoalStatusEnumFactory(); - - public static CarePlanGoalStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("in progress".equals(codeString)) - return INPROGRESS; - if ("achieved".equals(codeString)) - return ACHIEVED; - if ("sustaining".equals(codeString)) - return SUSTAINING; - if ("cancelled".equals(codeString)) - return CANCELLED; - throw new IllegalArgumentException("Unknown CarePlanGoalStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case INPROGRESS: return "in progress"; - case ACHIEVED: return "achieved"; - case SUSTAINING: return "sustaining"; - case CANCELLED: return "cancelled"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case INPROGRESS: return ""; - case ACHIEVED: return ""; - case SUSTAINING: return ""; - case CANCELLED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case INPROGRESS: return "The goal is being sought but has not yet been reached. (Also applies if goal was reached in the past but there has been regression and goal is being sought again)."; - case ACHIEVED: return "The goal has been met and no further action is needed."; - case SUSTAINING: return "The goal has been met, but ongoing activity is needed to sustain the goal objective."; - case CANCELLED: return "The goal is no longer being sought."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case INPROGRESS: return "in progress"; - case ACHIEVED: return "achieved"; - case SUSTAINING: return "sustaining"; - case CANCELLED: return "cancelled"; - default: return "?"; - } - } - } - - public static class CarePlanGoalStatusEnumFactory implements EnumFactory { - public CarePlanGoalStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("in progress".equals(codeString)) - return CarePlanGoalStatus.INPROGRESS; - if ("achieved".equals(codeString)) - return CarePlanGoalStatus.ACHIEVED; - if ("sustaining".equals(codeString)) - return CarePlanGoalStatus.SUSTAINING; - if ("cancelled".equals(codeString)) - return CarePlanGoalStatus.CANCELLED; - throw new IllegalArgumentException("Unknown CarePlanGoalStatus code '"+codeString+"'"); - } - public String toCode(CarePlanGoalStatus code) throws IllegalArgumentException { - if (code == CarePlanGoalStatus.INPROGRESS) - return "in progress"; - if (code == CarePlanGoalStatus.ACHIEVED) - return "achieved"; - if (code == CarePlanGoalStatus.SUSTAINING) - return "sustaining"; - if (code == CarePlanGoalStatus.CANCELLED) - return "cancelled"; - return "?"; - } - } - - public enum CarePlanActivityStatus implements FhirEnum { - /** - * Activity is planned but no action has yet been taken. - */ - NOTSTARTED, - /** - * Appointment or other booking has occurred but activity has not yet begun. - */ - SCHEDULED, - /** - * Activity has been started but is not yet complete. - */ - INPROGRESS, - /** - * Activity was started but has temporarily ceased with an expectation of resumption at a future time. - */ - ONHOLD, - /** - * The activities have been completed (more or less) as planned. - */ - COMPLETED, - /** - * The activities have been ended prior to completion (perhaps even before they were started). - */ - CANCELLED, - /** - * added to help the parsers - */ - NULL; - - public static final CarePlanActivityStatusEnumFactory ENUM_FACTORY = new CarePlanActivityStatusEnumFactory(); - - public static CarePlanActivityStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("not started".equals(codeString)) - return NOTSTARTED; - if ("scheduled".equals(codeString)) - return SCHEDULED; - if ("in progress".equals(codeString)) - return INPROGRESS; - if ("on hold".equals(codeString)) - return ONHOLD; - if ("completed".equals(codeString)) - return COMPLETED; - if ("cancelled".equals(codeString)) - return CANCELLED; - throw new IllegalArgumentException("Unknown CarePlanActivityStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case NOTSTARTED: return "not started"; - case SCHEDULED: return "scheduled"; - case INPROGRESS: return "in progress"; - case ONHOLD: return "on hold"; - case COMPLETED: return "completed"; - case CANCELLED: return "cancelled"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case NOTSTARTED: return ""; - case SCHEDULED: return ""; - case INPROGRESS: return ""; - case ONHOLD: return ""; - case COMPLETED: return ""; - case CANCELLED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case NOTSTARTED: return "Activity is planned but no action has yet been taken."; - case SCHEDULED: return "Appointment or other booking has occurred but activity has not yet begun."; - case INPROGRESS: return "Activity has been started but is not yet complete."; - case ONHOLD: return "Activity was started but has temporarily ceased with an expectation of resumption at a future time."; - case COMPLETED: return "The activities have been completed (more or less) as planned."; - case CANCELLED: return "The activities have been ended prior to completion (perhaps even before they were started)."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case NOTSTARTED: return "not started"; - case SCHEDULED: return "scheduled"; - case INPROGRESS: return "in progress"; - case ONHOLD: return "on hold"; - case COMPLETED: return "completed"; - case CANCELLED: return "cancelled"; - default: return "?"; - } - } - } - - public static class CarePlanActivityStatusEnumFactory implements EnumFactory { - public CarePlanActivityStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("not started".equals(codeString)) - return CarePlanActivityStatus.NOTSTARTED; - if ("scheduled".equals(codeString)) - return CarePlanActivityStatus.SCHEDULED; - if ("in progress".equals(codeString)) - return CarePlanActivityStatus.INPROGRESS; - if ("on hold".equals(codeString)) - return CarePlanActivityStatus.ONHOLD; - if ("completed".equals(codeString)) - return CarePlanActivityStatus.COMPLETED; - if ("cancelled".equals(codeString)) - return CarePlanActivityStatus.CANCELLED; - throw new IllegalArgumentException("Unknown CarePlanActivityStatus code '"+codeString+"'"); - } - public String toCode(CarePlanActivityStatus code) throws IllegalArgumentException { - if (code == CarePlanActivityStatus.NOTSTARTED) - return "not started"; - if (code == CarePlanActivityStatus.SCHEDULED) - return "scheduled"; - if (code == CarePlanActivityStatus.INPROGRESS) - return "in progress"; - if (code == CarePlanActivityStatus.ONHOLD) - return "on hold"; - if (code == CarePlanActivityStatus.COMPLETED) - return "completed"; - if (code == CarePlanActivityStatus.CANCELLED) - return "cancelled"; - return "?"; - } - } - - public enum CarePlanActivityCategory implements FhirEnum { - /** - * Plan for the patient to consume food of a specified nature. - */ - DIET, - /** - * Plan for the patient to consume/receive a drug, vaccine or other product. - */ - DRUG, - /** - * Plan to meet or communicate with the patient (in-patient, out-patient, phone call, etc.). - */ - ENCOUNTER, - /** - * Plan to capture information about a patient (vitals, labs, diagnostic images, etc.). - */ - OBSERVATION, - /** - * Plan to modify the patient in some way (surgery, physiotherapy, education, counseling, etc.). - */ - PROCEDURE, - /** - * Plan to provide something to the patient (medication, medical supply, etc.). - */ - SUPPLY, - /** - * Some other form of action. - */ - OTHER, - /** - * added to help the parsers - */ - NULL; - - public static final CarePlanActivityCategoryEnumFactory ENUM_FACTORY = new CarePlanActivityCategoryEnumFactory(); - - public static CarePlanActivityCategory fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("diet".equals(codeString)) - return DIET; - if ("drug".equals(codeString)) - return DRUG; - if ("encounter".equals(codeString)) - return ENCOUNTER; - if ("observation".equals(codeString)) - return OBSERVATION; - if ("procedure".equals(codeString)) - return PROCEDURE; - if ("supply".equals(codeString)) - return SUPPLY; - if ("other".equals(codeString)) - return OTHER; - throw new IllegalArgumentException("Unknown CarePlanActivityCategory code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case DIET: return "diet"; - case DRUG: return "drug"; - case ENCOUNTER: return "encounter"; - case OBSERVATION: return "observation"; - case PROCEDURE: return "procedure"; - case SUPPLY: return "supply"; - case OTHER: return "other"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case DIET: return ""; - case DRUG: return ""; - case ENCOUNTER: return ""; - case OBSERVATION: return ""; - case PROCEDURE: return ""; - case SUPPLY: return ""; - case OTHER: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case DIET: return "Plan for the patient to consume food of a specified nature."; - case DRUG: return "Plan for the patient to consume/receive a drug, vaccine or other product."; - case ENCOUNTER: return "Plan to meet or communicate with the patient (in-patient, out-patient, phone call, etc.)."; - case OBSERVATION: return "Plan to capture information about a patient (vitals, labs, diagnostic images, etc.)."; - case PROCEDURE: return "Plan to modify the patient in some way (surgery, physiotherapy, education, counseling, etc.)."; - case SUPPLY: return "Plan to provide something to the patient (medication, medical supply, etc.)."; - case OTHER: return "Some other form of action."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case DIET: return "diet"; - case DRUG: return "drug"; - case ENCOUNTER: return "encounter"; - case OBSERVATION: return "observation"; - case PROCEDURE: return "procedure"; - case SUPPLY: return "supply"; - case OTHER: return "other"; - default: return "?"; - } - } - } - - public static class CarePlanActivityCategoryEnumFactory implements EnumFactory { - public CarePlanActivityCategory fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("diet".equals(codeString)) - return CarePlanActivityCategory.DIET; - if ("drug".equals(codeString)) - return CarePlanActivityCategory.DRUG; - if ("encounter".equals(codeString)) - return CarePlanActivityCategory.ENCOUNTER; - if ("observation".equals(codeString)) - return CarePlanActivityCategory.OBSERVATION; - if ("procedure".equals(codeString)) - return CarePlanActivityCategory.PROCEDURE; - if ("supply".equals(codeString)) - return CarePlanActivityCategory.SUPPLY; - if ("other".equals(codeString)) - return CarePlanActivityCategory.OTHER; - throw new IllegalArgumentException("Unknown CarePlanActivityCategory code '"+codeString+"'"); - } - public String toCode(CarePlanActivityCategory code) throws IllegalArgumentException { - if (code == CarePlanActivityCategory.DIET) - return "diet"; - if (code == CarePlanActivityCategory.DRUG) - return "drug"; - if (code == CarePlanActivityCategory.ENCOUNTER) - return "encounter"; - if (code == CarePlanActivityCategory.OBSERVATION) - return "observation"; - if (code == CarePlanActivityCategory.PROCEDURE) - return "procedure"; - if (code == CarePlanActivityCategory.SUPPLY) - return "supply"; - if (code == CarePlanActivityCategory.OTHER) - return "other"; - return "?"; - } - } - - @Block() - public static class CarePlanParticipantComponent extends BackboneElement { - /** - * Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc. - */ - @Child(name="role", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="Type of involvement", formalDefinition="Indicates specific responsibility of an individual within the care plan. E.g. 'Primary physician', 'Team coordinator', 'Caregiver', etc." ) - protected CodeableConcept role; - - /** - * The specific person or organization who is participating/expected to participate in the care plan. - */ - @Child(name="member", type={Practitioner.class, RelatedPerson.class, Patient.class, Organization.class}, order=2, min=1, max=1) - @Description(shortDefinition="Who is involved", formalDefinition="The specific person or organization who is participating/expected to participate in the care plan." ) - protected Reference member; - - /** - * The actual object that is the target of the reference (The specific person or organization who is participating/expected to participate in the care plan.) - */ - protected Resource memberTarget; - - private static final long serialVersionUID = -466811117L; - - public CarePlanParticipantComponent() { - super(); - } - - public CarePlanParticipantComponent(Reference member) { - super(); - this.member = member; - } - - /** - * @return {@link #role} (Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc.) - */ - public CodeableConcept getRole() { - if (this.role == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanParticipantComponent.role"); - else if (Configuration.doAutoCreate()) - this.role = new CodeableConcept(); - return this.role; - } - - public boolean hasRole() { - return this.role != null && !this.role.isEmpty(); - } - - /** - * @param value {@link #role} (Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc.) - */ - public CarePlanParticipantComponent setRole(CodeableConcept value) { - this.role = value; - return this; - } - - /** - * @return {@link #member} (The specific person or organization who is participating/expected to participate in the care plan.) - */ - public Reference getMember() { - if (this.member == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanParticipantComponent.member"); - else if (Configuration.doAutoCreate()) - this.member = new Reference(); - return this.member; - } - - public boolean hasMember() { - return this.member != null && !this.member.isEmpty(); - } - - /** - * @param value {@link #member} (The specific person or organization who is participating/expected to participate in the care plan.) - */ - public CarePlanParticipantComponent setMember(Reference value) { - this.member = value; - return this; - } - - /** - * @return {@link #member} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The specific person or organization who is participating/expected to participate in the care plan.) - */ - public Resource getMemberTarget() { - return this.memberTarget; - } - - /** - * @param value {@link #member} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The specific person or organization who is participating/expected to participate in the care plan.) - */ - public CarePlanParticipantComponent setMemberTarget(Resource value) { - this.memberTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("role", "CodeableConcept", "Indicates specific responsibility of an individual within the care plan. E.g. 'Primary physician', 'Team coordinator', 'Caregiver', etc.", 0, java.lang.Integer.MAX_VALUE, role)); - childrenList.add(new Property("member", "Reference(Practitioner|RelatedPerson|Patient|Organization)", "The specific person or organization who is participating/expected to participate in the care plan.", 0, java.lang.Integer.MAX_VALUE, member)); - } - - public CarePlanParticipantComponent copy() { - CarePlanParticipantComponent dst = new CarePlanParticipantComponent(); - copyValues(dst); - dst.role = role == null ? null : role.copy(); - dst.member = member == null ? null : member.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (role == null || role.isEmpty()) && (member == null || member.isEmpty()) - ; - } - - } - - @Block() - public static class CarePlanGoalComponent extends BackboneElement { - /** - * Human-readable description of a specific desired objective of the care plan. - */ - @Child(name="description", type={StringType.class}, order=1, min=1, max=1) - @Description(shortDefinition="What's the desired outcome?", formalDefinition="Human-readable description of a specific desired objective of the care plan." ) - protected StringType description; - - /** - * Indicates whether the goal has been reached and is still considered relevant. - */ - @Child(name="status", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="in progress | achieved | sustaining | cancelled", formalDefinition="Indicates whether the goal has been reached and is still considered relevant." ) - protected Enumeration status; - - /** - * Any comments related to the goal. - */ - @Child(name="notes", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Comments about the goal", formalDefinition="Any comments related to the goal." ) - protected StringType notes; - - /** - * The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address. - */ - @Child(name="concern", type={Condition.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Health issues this goal addresses", formalDefinition="The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address." ) - protected List concern; - /** - * The actual objects that are the target of the reference (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - protected List concernTarget; - - - private static final long serialVersionUID = -1557229012L; - - public CarePlanGoalComponent() { - super(); - } - - public CarePlanGoalComponent(StringType description) { - super(); - this.description = description; - } - - /** - * @return {@link #description} (Human-readable description of a specific desired objective of the care plan.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanGoalComponent.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Human-readable description of a specific desired objective of the care plan.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public CarePlanGoalComponent setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Human-readable description of a specific desired objective of the care plan. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Human-readable description of a specific desired objective of the care plan. - */ - public CarePlanGoalComponent setDescription(String value) { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - return this; - } - - /** - * @return {@link #status} (Indicates whether the goal has been reached and is still considered relevant.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanGoalComponent.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (Indicates whether the goal has been reached and is still considered relevant.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public CarePlanGoalComponent setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return Indicates whether the goal has been reached and is still considered relevant. - */ - public CarePlanGoalStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value Indicates whether the goal has been reached and is still considered relevant. - */ - public CarePlanGoalComponent setStatus(CarePlanGoalStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(CarePlanGoalStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #notes} (Any comments related to the goal.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public StringType getNotesElement() { - if (this.notes == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanGoalComponent.notes"); - else if (Configuration.doAutoCreate()) - this.notes = new StringType(); - return this.notes; - } - - public boolean hasNotesElement() { - return this.notes != null && !this.notes.isEmpty(); - } - - public boolean hasNotes() { - return this.notes != null && !this.notes.isEmpty(); - } - - /** - * @param value {@link #notes} (Any comments related to the goal.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public CarePlanGoalComponent setNotesElement(StringType value) { - this.notes = value; - return this; - } - - /** - * @return Any comments related to the goal. - */ - public String getNotes() { - return this.notes == null ? null : this.notes.getValue(); - } - - /** - * @param value Any comments related to the goal. - */ - public CarePlanGoalComponent setNotes(String value) { - if (Utilities.noString(value)) - this.notes = null; - else { - if (this.notes == null) - this.notes = new StringType(); - this.notes.setValue(value); - } - return this; - } - - /** - * @return {@link #concern} (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - public List getConcern() { - if (this.concern == null) - this.concern = new ArrayList(); - return this.concern; - } - - public boolean hasConcern() { - if (this.concern == null) - return false; - for (Reference item : this.concern) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #concern} (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - // syntactic sugar - public Reference addConcern() { //3 - Reference t = new Reference(); - if (this.concern == null) - this.concern = new ArrayList(); - this.concern.add(t); - return t; - } - - /** - * @return {@link #concern} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - public List getConcernTarget() { - if (this.concernTarget == null) - this.concernTarget = new ArrayList(); - return this.concernTarget; - } - - // syntactic sugar - /** - * @return {@link #concern} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - public Condition addConcernTarget() { - Condition r = new Condition(); - if (this.concernTarget == null) - this.concernTarget = new ArrayList(); - this.concernTarget.add(r); - return r; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("description", "string", "Human-readable description of a specific desired objective of the care plan.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("status", "code", "Indicates whether the goal has been reached and is still considered relevant.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("notes", "string", "Any comments related to the goal.", 0, java.lang.Integer.MAX_VALUE, notes)); - childrenList.add(new Property("concern", "Reference(Condition)", "The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.", 0, java.lang.Integer.MAX_VALUE, concern)); - } - - public CarePlanGoalComponent copy() { - CarePlanGoalComponent dst = new CarePlanGoalComponent(); - copyValues(dst); - dst.description = description == null ? null : description.copy(); - dst.status = status == null ? null : status.copy(); - dst.notes = notes == null ? null : notes.copy(); - if (concern != null) { - dst.concern = new ArrayList(); - for (Reference i : concern) - dst.concern.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (description == null || description.isEmpty()) && (status == null || status.isEmpty()) - && (notes == null || notes.isEmpty()) && (concern == null || concern.isEmpty()); - } - - } - - @Block() - public static class CarePlanActivityComponent extends BackboneElement { - /** - * Internal reference that identifies the goals that this activity is intended to contribute towards meeting. - */ - @Child(name="goal", type={UriType.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Goals this activity relates to", formalDefinition="Internal reference that identifies the goals that this activity is intended to contribute towards meeting." ) - protected List goal; - - /** - * Identifies what progress is being made for the specific activity. - */ - @Child(name="status", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="not started | scheduled | in progress | on hold | completed | cancelled", formalDefinition="Identifies what progress is being made for the specific activity." ) - protected Enumeration status; - - /** - * If true, indicates that the described activity is one that must NOT be engaged in when following the plan. - */ - @Child(name="prohibited", type={BooleanType.class}, order=3, min=1, max=1) - @Description(shortDefinition="Do NOT do", formalDefinition="If true, indicates that the described activity is one that must NOT be engaged in when following the plan." ) - protected BooleanType prohibited; - - /** - * Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc. - */ - @Child(name="actionResulting", type={}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Appointments, orders, etc.", formalDefinition="Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc." ) - protected List actionResulting; - /** - * The actual objects that are the target of the reference (Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.) - */ - protected List actionResultingTarget; - - - /** - * Notes about the execution of the activity. - */ - @Child(name="notes", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Comments about the activity", formalDefinition="Notes about the execution of the activity." ) - protected StringType notes; - - /** - * The details of the proposed activity represented in a specific resource. - */ - @Child(name="detail", type={Procedure.class, MedicationPrescription.class, DiagnosticOrder.class, Encounter.class, Supply.class}, order=6, min=0, max=1) - @Description(shortDefinition="Activity details defined in specific resource", formalDefinition="The details of the proposed activity represented in a specific resource." ) - protected Reference detail; - - /** - * The actual object that is the target of the reference (The details of the proposed activity represented in a specific resource.) - */ - protected Resource detailTarget; - - /** - * A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc. - */ - @Child(name="simple", type={}, order=7, min=0, max=1) - @Description(shortDefinition="Activity details summarised here", formalDefinition="A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc." ) - protected CarePlanActivitySimpleComponent simple; - - private static final long serialVersionUID = -1536095647L; - - public CarePlanActivityComponent() { - super(); - } - - public CarePlanActivityComponent(BooleanType prohibited) { - super(); - this.prohibited = prohibited; - } - - /** - * @return {@link #goal} (Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) - */ - public List getGoal() { - if (this.goal == null) - this.goal = new ArrayList(); - return this.goal; - } - - public boolean hasGoal() { - if (this.goal == null) - return false; - for (UriType item : this.goal) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #goal} (Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) - */ - // syntactic sugar - public UriType addGoalElement() {//2 - UriType t = new UriType(); - if (this.goal == null) - this.goal = new ArrayList(); - this.goal.add(t); - return t; - } - - /** - * @param value {@link #goal} (Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) - */ - public CarePlanActivityComponent addGoal(String value) { //1 - UriType t = new UriType(); - t.setValue(value); - if (this.goal == null) - this.goal = new ArrayList(); - this.goal.add(t); - return this; - } - - /** - * @param value {@link #goal} (Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) - */ - public boolean hasGoal(String value) { - if (this.goal == null) - return false; - for (UriType v : this.goal) - if (v.equals(value)) // uri - return true; - return false; - } - - /** - * @return {@link #status} (Identifies what progress is being made for the specific activity.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivityComponent.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (Identifies what progress is being made for the specific activity.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public CarePlanActivityComponent setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return Identifies what progress is being made for the specific activity. - */ - public CarePlanActivityStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value Identifies what progress is being made for the specific activity. - */ - public CarePlanActivityComponent setStatus(CarePlanActivityStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(CarePlanActivityStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #prohibited} (If true, indicates that the described activity is one that must NOT be engaged in when following the plan.). This is the underlying object with id, value and extensions. The accessor "getProhibited" gives direct access to the value - */ - public BooleanType getProhibitedElement() { - if (this.prohibited == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivityComponent.prohibited"); - else if (Configuration.doAutoCreate()) - this.prohibited = new BooleanType(); - return this.prohibited; - } - - public boolean hasProhibitedElement() { - return this.prohibited != null && !this.prohibited.isEmpty(); - } - - public boolean hasProhibited() { - return this.prohibited != null && !this.prohibited.isEmpty(); - } - - /** - * @param value {@link #prohibited} (If true, indicates that the described activity is one that must NOT be engaged in when following the plan.). This is the underlying object with id, value and extensions. The accessor "getProhibited" gives direct access to the value - */ - public CarePlanActivityComponent setProhibitedElement(BooleanType value) { - this.prohibited = value; - return this; - } - - /** - * @return If true, indicates that the described activity is one that must NOT be engaged in when following the plan. - */ - public boolean getProhibited() { - return this.prohibited == null ? false : this.prohibited.getValue(); - } - - /** - * @param value If true, indicates that the described activity is one that must NOT be engaged in when following the plan. - */ - public CarePlanActivityComponent setProhibited(boolean value) { - if (this.prohibited == null) - this.prohibited = new BooleanType(); - this.prohibited.setValue(value); - return this; - } - - /** - * @return {@link #actionResulting} (Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.) - */ - public List getActionResulting() { - if (this.actionResulting == null) - this.actionResulting = new ArrayList(); - return this.actionResulting; - } - - public boolean hasActionResulting() { - if (this.actionResulting == null) - return false; - for (Reference item : this.actionResulting) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #actionResulting} (Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.) - */ - // syntactic sugar - public Reference addActionResulting() { //3 - Reference t = new Reference(); - if (this.actionResulting == null) - this.actionResulting = new ArrayList(); - this.actionResulting.add(t); - return t; - } - - /** - * @return {@link #actionResulting} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.) - */ - public List getActionResultingTarget() { - if (this.actionResultingTarget == null) - this.actionResultingTarget = new ArrayList(); - return this.actionResultingTarget; - } - - /** - * @return {@link #notes} (Notes about the execution of the activity.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public StringType getNotesElement() { - if (this.notes == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivityComponent.notes"); - else if (Configuration.doAutoCreate()) - this.notes = new StringType(); - return this.notes; - } - - public boolean hasNotesElement() { - return this.notes != null && !this.notes.isEmpty(); - } - - public boolean hasNotes() { - return this.notes != null && !this.notes.isEmpty(); - } - - /** - * @param value {@link #notes} (Notes about the execution of the activity.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public CarePlanActivityComponent setNotesElement(StringType value) { - this.notes = value; - return this; - } - - /** - * @return Notes about the execution of the activity. - */ - public String getNotes() { - return this.notes == null ? null : this.notes.getValue(); - } - - /** - * @param value Notes about the execution of the activity. - */ - public CarePlanActivityComponent setNotes(String value) { - if (Utilities.noString(value)) - this.notes = null; - else { - if (this.notes == null) - this.notes = new StringType(); - this.notes.setValue(value); - } - return this; - } - - /** - * @return {@link #detail} (The details of the proposed activity represented in a specific resource.) - */ - public Reference getDetail() { - if (this.detail == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivityComponent.detail"); - else if (Configuration.doAutoCreate()) - this.detail = new Reference(); - return this.detail; - } - - public boolean hasDetail() { - return this.detail != null && !this.detail.isEmpty(); - } - - /** - * @param value {@link #detail} (The details of the proposed activity represented in a specific resource.) - */ - public CarePlanActivityComponent setDetail(Reference value) { - this.detail = value; - return this; - } - - /** - * @return {@link #detail} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The details of the proposed activity represented in a specific resource.) - */ - public Resource getDetailTarget() { - return this.detailTarget; - } - - /** - * @param value {@link #detail} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The details of the proposed activity represented in a specific resource.) - */ - public CarePlanActivityComponent setDetailTarget(Resource value) { - this.detailTarget = value; - return this; - } - - /** - * @return {@link #simple} (A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc.) - */ - public CarePlanActivitySimpleComponent getSimple() { - if (this.simple == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivityComponent.simple"); - else if (Configuration.doAutoCreate()) - this.simple = new CarePlanActivitySimpleComponent(); - return this.simple; - } - - public boolean hasSimple() { - return this.simple != null && !this.simple.isEmpty(); - } - - /** - * @param value {@link #simple} (A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc.) - */ - public CarePlanActivityComponent setSimple(CarePlanActivitySimpleComponent value) { - this.simple = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("goal", "uri", "Internal reference that identifies the goals that this activity is intended to contribute towards meeting.", 0, java.lang.Integer.MAX_VALUE, goal)); - childrenList.add(new Property("status", "code", "Identifies what progress is being made for the specific activity.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("prohibited", "boolean", "If true, indicates that the described activity is one that must NOT be engaged in when following the plan.", 0, java.lang.Integer.MAX_VALUE, prohibited)); - childrenList.add(new Property("actionResulting", "Reference(Any)", "Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.", 0, java.lang.Integer.MAX_VALUE, actionResulting)); - childrenList.add(new Property("notes", "string", "Notes about the execution of the activity.", 0, java.lang.Integer.MAX_VALUE, notes)); - childrenList.add(new Property("detail", "Reference(Procedure|MedicationPrescription|DiagnosticOrder|Encounter|Supply)", "The details of the proposed activity represented in a specific resource.", 0, java.lang.Integer.MAX_VALUE, detail)); - childrenList.add(new Property("simple", "", "A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc.", 0, java.lang.Integer.MAX_VALUE, simple)); - } - - public CarePlanActivityComponent copy() { - CarePlanActivityComponent dst = new CarePlanActivityComponent(); - copyValues(dst); - if (goal != null) { - dst.goal = new ArrayList(); - for (UriType i : goal) - dst.goal.add(i.copy()); - }; - dst.status = status == null ? null : status.copy(); - dst.prohibited = prohibited == null ? null : prohibited.copy(); - if (actionResulting != null) { - dst.actionResulting = new ArrayList(); - for (Reference i : actionResulting) - dst.actionResulting.add(i.copy()); - }; - dst.notes = notes == null ? null : notes.copy(); - dst.detail = detail == null ? null : detail.copy(); - dst.simple = simple == null ? null : simple.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (goal == null || goal.isEmpty()) && (status == null || status.isEmpty()) - && (prohibited == null || prohibited.isEmpty()) && (actionResulting == null || actionResulting.isEmpty()) - && (notes == null || notes.isEmpty()) && (detail == null || detail.isEmpty()) && (simple == null || simple.isEmpty()) - ; - } - - } - - @Block() - public static class CarePlanActivitySimpleComponent extends BackboneElement { - /** - * High-level categorization of the type of activity in a care plan. - */ - @Child(name="category", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="diet | drug | encounter | observation | procedure | supply | other", formalDefinition="High-level categorization of the type of activity in a care plan." ) - protected Enumeration category; - - /** - * Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter. - */ - @Child(name="code", type={CodeableConcept.class}, order=2, min=0, max=1) - @Description(shortDefinition="Detail type of activity", formalDefinition="Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter." ) - protected CodeableConcept code; - - /** - * The period, timing or frequency upon which the described activity is to occur. - */ - @Child(name="scheduled", type={Timing.class, Period.class, StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="When activity is to occur", formalDefinition="The period, timing or frequency upon which the described activity is to occur." ) - protected Type scheduled; - - /** - * Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc. - */ - @Child(name="location", type={Location.class}, order=4, min=0, max=1) - @Description(shortDefinition="Where it should happen", formalDefinition="Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc." ) - protected Reference location; - - /** - * The actual object that is the target of the reference (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) - */ - protected Location locationTarget; - - /** - * Identifies who's expected to be involved in the activity. - */ - @Child(name="performer", type={Practitioner.class, Organization.class, RelatedPerson.class, Patient.class}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Who's responsible?", formalDefinition="Identifies who's expected to be involved in the activity." ) - protected List performer; - /** - * The actual objects that are the target of the reference (Identifies who's expected to be involved in the activity.) - */ - protected List performerTarget; - - - /** - * Identifies the food, drug or other product being consumed or supplied in the activity. - */ - @Child(name="product", type={Medication.class, Substance.class}, order=6, min=0, max=1) - @Description(shortDefinition="What's administered/supplied", formalDefinition="Identifies the food, drug or other product being consumed or supplied in the activity." ) - protected Reference product; - - /** - * The actual object that is the target of the reference (Identifies the food, drug or other product being consumed or supplied in the activity.) - */ - protected Resource productTarget; - - /** - * Identifies the quantity expected to be consumed in a given day. - */ - @Child(name="dailyAmount", type={Quantity.class}, order=7, min=0, max=1) - @Description(shortDefinition="How much consumed/day?", formalDefinition="Identifies the quantity expected to be consumed in a given day." ) - protected Quantity dailyAmount; - - /** - * Identifies the quantity expected to be supplied. - */ - @Child(name="quantity", type={Quantity.class}, order=8, min=0, max=1) - @Description(shortDefinition="How much is administered/supplied/consumed", formalDefinition="Identifies the quantity expected to be supplied." ) - protected Quantity quantity; - - /** - * This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc. - */ - @Child(name="details", type={StringType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Extra info on activity occurrence", formalDefinition="This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc." ) - protected StringType details; - - private static final long serialVersionUID = 1028930313L; - - public CarePlanActivitySimpleComponent() { - super(); - } - - public CarePlanActivitySimpleComponent(Enumeration category) { - super(); - this.category = category; - } - - /** - * @return {@link #category} (High-level categorization of the type of activity in a care plan.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value - */ - public Enumeration getCategoryElement() { - if (this.category == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.category"); - else if (Configuration.doAutoCreate()) - this.category = new Enumeration(); - return this.category; - } - - public boolean hasCategoryElement() { - return this.category != null && !this.category.isEmpty(); - } - - public boolean hasCategory() { - return this.category != null && !this.category.isEmpty(); - } - - /** - * @param value {@link #category} (High-level categorization of the type of activity in a care plan.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value - */ - public CarePlanActivitySimpleComponent setCategoryElement(Enumeration value) { - this.category = value; - return this; - } - - /** - * @return High-level categorization of the type of activity in a care plan. - */ - public CarePlanActivityCategory getCategory() { - return this.category == null ? null : this.category.getValue(); - } - - /** - * @param value High-level categorization of the type of activity in a care plan. - */ - public CarePlanActivitySimpleComponent setCategory(CarePlanActivityCategory value) { - if (this.category == null) - this.category = new Enumeration(CarePlanActivityCategory.ENUM_FACTORY); - this.category.setValue(value); - return this; - } - - /** - * @return {@link #code} (Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter.) - */ - public CarePlanActivitySimpleComponent setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) - */ - public Type getScheduled() { - return this.scheduled; - } - - /** - * @return {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) - */ - public Timing getScheduledTiming() throws Exception { - if (!(this.scheduled instanceof Timing)) - throw new Exception("Type mismatch: the type Timing was expected, but "+this.scheduled.getClass().getName()+" was encountered"); - return (Timing) this.scheduled; - } - - /** - * @return {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) - */ - public Period getScheduledPeriod() throws Exception { - if (!(this.scheduled instanceof Period)) - throw new Exception("Type mismatch: the type Period was expected, but "+this.scheduled.getClass().getName()+" was encountered"); - return (Period) this.scheduled; - } - - /** - * @return {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) - */ - public StringType getScheduledStringType() throws Exception { - if (!(this.scheduled instanceof StringType)) - throw new Exception("Type mismatch: the type StringType was expected, but "+this.scheduled.getClass().getName()+" was encountered"); - return (StringType) this.scheduled; - } - - public boolean hasScheduled() { - return this.scheduled != null && !this.scheduled.isEmpty(); - } - - /** - * @param value {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) - */ - public CarePlanActivitySimpleComponent setScheduled(Type value) { - this.scheduled = value; - return this; - } - - /** - * @return {@link #location} (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) - */ - public Reference getLocation() { - if (this.location == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.location"); - else if (Configuration.doAutoCreate()) - this.location = new Reference(); - return this.location; - } - - public boolean hasLocation() { - return this.location != null && !this.location.isEmpty(); - } - - /** - * @param value {@link #location} (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) - */ - public CarePlanActivitySimpleComponent setLocation(Reference value) { - this.location = value; - return this; - } - - /** - * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) - */ - public Location getLocationTarget() { - if (this.locationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.location"); - else if (Configuration.doAutoCreate()) - this.locationTarget = new Location(); - return this.locationTarget; - } - - /** - * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) - */ - public CarePlanActivitySimpleComponent setLocationTarget(Location value) { - this.locationTarget = value; - return this; - } - - /** - * @return {@link #performer} (Identifies who's expected to be involved in the activity.) - */ - public List getPerformer() { - if (this.performer == null) - this.performer = new ArrayList(); - return this.performer; - } - - public boolean hasPerformer() { - if (this.performer == null) - return false; - for (Reference item : this.performer) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #performer} (Identifies who's expected to be involved in the activity.) - */ - // syntactic sugar - public Reference addPerformer() { //3 - Reference t = new Reference(); - if (this.performer == null) - this.performer = new ArrayList(); - this.performer.add(t); - return t; - } - - /** - * @return {@link #performer} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies who's expected to be involved in the activity.) - */ - public List getPerformerTarget() { - if (this.performerTarget == null) - this.performerTarget = new ArrayList(); - return this.performerTarget; - } - - /** - * @return {@link #product} (Identifies the food, drug or other product being consumed or supplied in the activity.) - */ - public Reference getProduct() { - if (this.product == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.product"); - else if (Configuration.doAutoCreate()) - this.product = new Reference(); - return this.product; - } - - public boolean hasProduct() { - return this.product != null && !this.product.isEmpty(); - } - - /** - * @param value {@link #product} (Identifies the food, drug or other product being consumed or supplied in the activity.) - */ - public CarePlanActivitySimpleComponent setProduct(Reference value) { - this.product = value; - return this; - } - - /** - * @return {@link #product} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the food, drug or other product being consumed or supplied in the activity.) - */ - public Resource getProductTarget() { - return this.productTarget; - } - - /** - * @param value {@link #product} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the food, drug or other product being consumed or supplied in the activity.) - */ - public CarePlanActivitySimpleComponent setProductTarget(Resource value) { - this.productTarget = value; - return this; - } - - /** - * @return {@link #dailyAmount} (Identifies the quantity expected to be consumed in a given day.) - */ - public Quantity getDailyAmount() { - if (this.dailyAmount == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.dailyAmount"); - else if (Configuration.doAutoCreate()) - this.dailyAmount = new Quantity(); - return this.dailyAmount; - } - - public boolean hasDailyAmount() { - return this.dailyAmount != null && !this.dailyAmount.isEmpty(); - } - - /** - * @param value {@link #dailyAmount} (Identifies the quantity expected to be consumed in a given day.) - */ - public CarePlanActivitySimpleComponent setDailyAmount(Quantity value) { - this.dailyAmount = value; - return this; - } - - /** - * @return {@link #quantity} (Identifies the quantity expected to be supplied.) - */ - public Quantity getQuantity() { - if (this.quantity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.quantity"); - else if (Configuration.doAutoCreate()) - this.quantity = new Quantity(); - return this.quantity; - } - - public boolean hasQuantity() { - return this.quantity != null && !this.quantity.isEmpty(); - } - - /** - * @param value {@link #quantity} (Identifies the quantity expected to be supplied.) - */ - public CarePlanActivitySimpleComponent setQuantity(Quantity value) { - this.quantity = value; - return this; - } - - /** - * @return {@link #details} (This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc.). This is the underlying object with id, value and extensions. The accessor "getDetails" gives direct access to the value - */ - public StringType getDetailsElement() { - if (this.details == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.details"); - else if (Configuration.doAutoCreate()) - this.details = new StringType(); - return this.details; - } - - public boolean hasDetailsElement() { - return this.details != null && !this.details.isEmpty(); - } - - public boolean hasDetails() { - return this.details != null && !this.details.isEmpty(); - } - - /** - * @param value {@link #details} (This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc.). This is the underlying object with id, value and extensions. The accessor "getDetails" gives direct access to the value - */ - public CarePlanActivitySimpleComponent setDetailsElement(StringType value) { - this.details = value; - return this; - } - - /** - * @return This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc. - */ - public String getDetails() { - return this.details == null ? null : this.details.getValue(); - } - - /** - * @param value This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc. - */ - public CarePlanActivitySimpleComponent setDetails(String value) { - if (Utilities.noString(value)) - this.details = null; - else { - if (this.details == null) - this.details = new StringType(); - this.details.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("category", "code", "High-level categorization of the type of activity in a care plan.", 0, java.lang.Integer.MAX_VALUE, category)); - childrenList.add(new Property("code", "CodeableConcept", "Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("scheduled[x]", "Timing|Period|string", "The period, timing or frequency upon which the described activity is to occur.", 0, java.lang.Integer.MAX_VALUE, scheduled)); - childrenList.add(new Property("location", "Reference(Location)", "Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.", 0, java.lang.Integer.MAX_VALUE, location)); - childrenList.add(new Property("performer", "Reference(Practitioner|Organization|RelatedPerson|Patient)", "Identifies who's expected to be involved in the activity.", 0, java.lang.Integer.MAX_VALUE, performer)); - childrenList.add(new Property("product", "Reference(Medication|Substance)", "Identifies the food, drug or other product being consumed or supplied in the activity.", 0, java.lang.Integer.MAX_VALUE, product)); - childrenList.add(new Property("dailyAmount", "Quantity", "Identifies the quantity expected to be consumed in a given day.", 0, java.lang.Integer.MAX_VALUE, dailyAmount)); - childrenList.add(new Property("quantity", "Quantity", "Identifies the quantity expected to be supplied.", 0, java.lang.Integer.MAX_VALUE, quantity)); - childrenList.add(new Property("details", "string", "This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc.", 0, java.lang.Integer.MAX_VALUE, details)); - } - - public CarePlanActivitySimpleComponent copy() { - CarePlanActivitySimpleComponent dst = new CarePlanActivitySimpleComponent(); - copyValues(dst); - dst.category = category == null ? null : category.copy(); - dst.code = code == null ? null : code.copy(); - dst.scheduled = scheduled == null ? null : scheduled.copy(); - dst.location = location == null ? null : location.copy(); - if (performer != null) { - dst.performer = new ArrayList(); - for (Reference i : performer) - dst.performer.add(i.copy()); - }; - dst.product = product == null ? null : product.copy(); - dst.dailyAmount = dailyAmount == null ? null : dailyAmount.copy(); - dst.quantity = quantity == null ? null : quantity.copy(); - dst.details = details == null ? null : details.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (category == null || category.isEmpty()) && (code == null || code.isEmpty()) - && (scheduled == null || scheduled.isEmpty()) && (location == null || location.isEmpty()) - && (performer == null || performer.isEmpty()) && (product == null || product.isEmpty()) && (dailyAmount == null || dailyAmount.isEmpty()) - && (quantity == null || quantity.isEmpty()) && (details == null || details.isEmpty()); - } - - } - - /** - * This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External Ids for this plan", formalDefinition="This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) - protected List identifier; - - /** - * Identifies the patient/subject whose intended care is described by the plan. - */ - @Child(name="patient", type={Patient.class}, order=0, min=0, max=1) - @Description(shortDefinition="Who care plan is for", formalDefinition="Identifies the patient/subject whose intended care is described by the plan." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (Identifies the patient/subject whose intended care is described by the plan.) - */ - protected Patient patientTarget; - - /** - * Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. - */ - @Child(name="status", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="planned | active | completed", formalDefinition="Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record." ) - protected Enumeration status; - - /** - * Indicates when the plan did (or is intended to) come into effect and end. - */ - @Child(name="period", type={Period.class}, order=2, min=0, max=1) - @Description(shortDefinition="Time period plan covers", formalDefinition="Indicates when the plan did (or is intended to) come into effect and end." ) - protected Period period; - - /** - * Identifies the most recent date on which the plan has been revised. - */ - @Child(name="modified", type={DateTimeType.class}, order=3, min=0, max=1) - @Description(shortDefinition="When last updated", formalDefinition="Identifies the most recent date on which the plan has been revised." ) - protected DateTimeType modified; - - /** - * Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan. - */ - @Child(name="concern", type={Condition.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Health issues this plan addresses", formalDefinition="Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan." ) - protected List concern; - /** - * The actual objects that are the target of the reference (Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) - */ - protected List concernTarget; - - - /** - * Identifies all people and organizations who are expected to be involved in the care envisioned by this plan. - */ - @Child(name="participant", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Who's involved in plan?", formalDefinition="Identifies all people and organizations who are expected to be involved in the care envisioned by this plan." ) - protected List participant; - - /** - * Describes the intended objective(s) of carrying out the Care Plan. - */ - @Child(name="goal", type={}, order=6, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Desired outcome of plan", formalDefinition="Describes the intended objective(s) of carrying out the Care Plan." ) - protected List goal; - - /** - * Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc. - */ - @Child(name="activity", type={}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Action to occur as part of plan", formalDefinition="Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc." ) - protected List activity; - - /** - * General notes about the care plan not covered elsewhere. - */ - @Child(name="notes", type={StringType.class}, order=8, min=0, max=1) - @Description(shortDefinition="Comments about the plan", formalDefinition="General notes about the care plan not covered elsewhere." ) - protected StringType notes; - - private static final long serialVersionUID = -1730021244L; - - public CarePlan() { - super(); - } - - public CarePlan(Enumeration status) { - super(); - this.status = status; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) - */ - public CarePlan setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) - */ - public CarePlan setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #status} (Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public CarePlan setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. - */ - public CarePlanStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. - */ - public CarePlan setStatus(CarePlanStatus value) { - if (this.status == null) - this.status = new Enumeration(CarePlanStatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #period} (Indicates when the plan did (or is intended to) come into effect and end.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (Indicates when the plan did (or is intended to) come into effect and end.) - */ - public CarePlan setPeriod(Period value) { - this.period = value; - return this; - } - - /** - * @return {@link #modified} (Identifies the most recent date on which the plan has been revised.). This is the underlying object with id, value and extensions. The accessor "getModified" gives direct access to the value - */ - public DateTimeType getModifiedElement() { - if (this.modified == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan.modified"); - else if (Configuration.doAutoCreate()) - this.modified = new DateTimeType(); - return this.modified; - } - - public boolean hasModifiedElement() { - return this.modified != null && !this.modified.isEmpty(); - } - - public boolean hasModified() { - return this.modified != null && !this.modified.isEmpty(); - } - - /** - * @param value {@link #modified} (Identifies the most recent date on which the plan has been revised.). This is the underlying object with id, value and extensions. The accessor "getModified" gives direct access to the value - */ - public CarePlan setModifiedElement(DateTimeType value) { - this.modified = value; - return this; - } - - /** - * @return Identifies the most recent date on which the plan has been revised. - */ - public Date getModified() { - return this.modified == null ? null : this.modified.getValue(); - } - - /** - * @param value Identifies the most recent date on which the plan has been revised. - */ - public CarePlan setModified(Date value) { - if (value == null) - this.modified = null; - else { - if (this.modified == null) - this.modified = new DateTimeType(); - this.modified.setValue(value); - } - return this; - } - - /** - * @return {@link #concern} (Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) - */ - public List getConcern() { - if (this.concern == null) - this.concern = new ArrayList(); - return this.concern; - } - - public boolean hasConcern() { - if (this.concern == null) - return false; - for (Reference item : this.concern) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #concern} (Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) - */ - // syntactic sugar - public Reference addConcern() { //3 - Reference t = new Reference(); - if (this.concern == null) - this.concern = new ArrayList(); - this.concern.add(t); - return t; - } - - /** - * @return {@link #concern} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) - */ - public List getConcernTarget() { - if (this.concernTarget == null) - this.concernTarget = new ArrayList(); - return this.concernTarget; - } - - // syntactic sugar - /** - * @return {@link #concern} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) - */ - public Condition addConcernTarget() { - Condition r = new Condition(); - if (this.concernTarget == null) - this.concernTarget = new ArrayList(); - this.concernTarget.add(r); - return r; - } - - /** - * @return {@link #participant} (Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.) - */ - public List getParticipant() { - if (this.participant == null) - this.participant = new ArrayList(); - return this.participant; - } - - public boolean hasParticipant() { - if (this.participant == null) - return false; - for (CarePlanParticipantComponent item : this.participant) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #participant} (Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.) - */ - // syntactic sugar - public CarePlanParticipantComponent addParticipant() { //3 - CarePlanParticipantComponent t = new CarePlanParticipantComponent(); - if (this.participant == null) - this.participant = new ArrayList(); - this.participant.add(t); - return t; - } - - /** - * @return {@link #goal} (Describes the intended objective(s) of carrying out the Care Plan.) - */ - public List getGoal() { - if (this.goal == null) - this.goal = new ArrayList(); - return this.goal; - } - - public boolean hasGoal() { - if (this.goal == null) - return false; - for (CarePlanGoalComponent item : this.goal) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #goal} (Describes the intended objective(s) of carrying out the Care Plan.) - */ - // syntactic sugar - public CarePlanGoalComponent addGoal() { //3 - CarePlanGoalComponent t = new CarePlanGoalComponent(); - if (this.goal == null) - this.goal = new ArrayList(); - this.goal.add(t); - return t; - } - - /** - * @return {@link #activity} (Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) - */ - public List getActivity() { - if (this.activity == null) - this.activity = new ArrayList(); - return this.activity; - } - - public boolean hasActivity() { - if (this.activity == null) - return false; - for (CarePlanActivityComponent item : this.activity) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #activity} (Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) - */ - // syntactic sugar - public CarePlanActivityComponent addActivity() { //3 - CarePlanActivityComponent t = new CarePlanActivityComponent(); - if (this.activity == null) - this.activity = new ArrayList(); - this.activity.add(t); - return t; - } - - /** - * @return {@link #notes} (General notes about the care plan not covered elsewhere.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public StringType getNotesElement() { - if (this.notes == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan.notes"); - else if (Configuration.doAutoCreate()) - this.notes = new StringType(); - return this.notes; - } - - public boolean hasNotesElement() { - return this.notes != null && !this.notes.isEmpty(); - } - - public boolean hasNotes() { - return this.notes != null && !this.notes.isEmpty(); - } - - /** - * @param value {@link #notes} (General notes about the care plan not covered elsewhere.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public CarePlan setNotesElement(StringType value) { - this.notes = value; - return this; - } - - /** - * @return General notes about the care plan not covered elsewhere. - */ - public String getNotes() { - return this.notes == null ? null : this.notes.getValue(); - } - - /** - * @param value General notes about the care plan not covered elsewhere. - */ - public CarePlan setNotes(String value) { - if (Utilities.noString(value)) - this.notes = null; - else { - if (this.notes == null) - this.notes = new StringType(); - this.notes.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("patient", "Reference(Patient)", "Identifies the patient/subject whose intended care is described by the plan.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("status", "code", "Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("period", "Period", "Indicates when the plan did (or is intended to) come into effect and end.", 0, java.lang.Integer.MAX_VALUE, period)); - childrenList.add(new Property("modified", "dateTime", "Identifies the most recent date on which the plan has been revised.", 0, java.lang.Integer.MAX_VALUE, modified)); - childrenList.add(new Property("concern", "Reference(Condition)", "Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.", 0, java.lang.Integer.MAX_VALUE, concern)); - childrenList.add(new Property("participant", "", "Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.", 0, java.lang.Integer.MAX_VALUE, participant)); - childrenList.add(new Property("goal", "", "Describes the intended objective(s) of carrying out the Care Plan.", 0, java.lang.Integer.MAX_VALUE, goal)); - childrenList.add(new Property("activity", "", "Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.", 0, java.lang.Integer.MAX_VALUE, activity)); - childrenList.add(new Property("notes", "string", "General notes about the care plan not covered elsewhere.", 0, java.lang.Integer.MAX_VALUE, notes)); - } - - public CarePlan copy() { - CarePlan dst = new CarePlan(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.patient = patient == null ? null : patient.copy(); - dst.status = status == null ? null : status.copy(); - dst.period = period == null ? null : period.copy(); - dst.modified = modified == null ? null : modified.copy(); - if (concern != null) { - dst.concern = new ArrayList(); - for (Reference i : concern) - dst.concern.add(i.copy()); - }; - if (participant != null) { - dst.participant = new ArrayList(); - for (CarePlanParticipantComponent i : participant) - dst.participant.add(i.copy()); - }; - if (goal != null) { - dst.goal = new ArrayList(); - for (CarePlanGoalComponent i : goal) - dst.goal.add(i.copy()); - }; - if (activity != null) { - dst.activity = new ArrayList(); - for (CarePlanActivityComponent i : activity) - dst.activity.add(i.copy()); - }; - dst.notes = notes == null ? null : notes.copy(); - return dst; - } - - protected CarePlan typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (patient == null || patient.isEmpty()) - && (status == null || status.isEmpty()) && (period == null || period.isEmpty()) && (modified == null || modified.isEmpty()) - && (concern == null || concern.isEmpty()) && (participant == null || participant.isEmpty()) - && (goal == null || goal.isEmpty()) && (activity == null || activity.isEmpty()) && (notes == null || notes.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.CarePlan; - } - - @SearchParamDefinition(name="activitycode", path="CarePlan.activity.simple.code", description="Detail type of activity", type="token" ) - public static final String SP_ACTIVITYCODE = "activitycode"; - @SearchParamDefinition(name="patient", path="CarePlan.patient", description="Who care plan is for", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="condition", path="CarePlan.concern", description="Health issues this plan addresses", type="reference" ) - public static final String SP_CONDITION = "condition"; - @SearchParamDefinition(name="activitydetail", path="CarePlan.activity.detail", description="Activity details defined in specific resource", type="reference" ) - public static final String SP_ACTIVITYDETAIL = "activitydetail"; - @SearchParamDefinition(name="activitydate", path="CarePlan.activity.simple.scheduled[x]", description="Specified date occurs within period specified by CarePlan.activity.timingSchedule", type="date" ) - public static final String SP_ACTIVITYDATE = "activitydate"; - @SearchParamDefinition(name="participant", path="CarePlan.participant.member", description="Who is involved", type="reference" ) - public static final String SP_PARTICIPANT = "participant"; - @SearchParamDefinition(name="date", path="CarePlan.period", description="Time period plan covers", type="date" ) - public static final String SP_DATE = "date"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Describes the intention of how one or more practitioners intend to deliver care for a particular patient for a period of time, possibly limited to care for a specific condition or set of conditions. + */ +@ResourceDef(name="CarePlan", profile="http://hl7.org/fhir/Profile/CarePlan") +public class CarePlan extends DomainResource { + + public enum CarePlanStatus { + /** + * The plan is in development or awaiting use but is not yet intended to be acted upon. + */ + PLANNED, + /** + * The plan is intended to be followed and used as part of patient care. + */ + ACTIVE, + /** + * The plan is no longer in use and is not expected to be followed or used in patient care. + */ + COMPLETED, + /** + * added to help the parsers + */ + NULL; + public static CarePlanStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("planned".equals(codeString)) + return PLANNED; + if ("active".equals(codeString)) + return ACTIVE; + if ("completed".equals(codeString)) + return COMPLETED; + throw new Exception("Unknown CarePlanStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PLANNED: return "planned"; + case ACTIVE: return "active"; + case COMPLETED: return "completed"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PLANNED: return ""; + case ACTIVE: return ""; + case COMPLETED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PLANNED: return "The plan is in development or awaiting use but is not yet intended to be acted upon."; + case ACTIVE: return "The plan is intended to be followed and used as part of patient care."; + case COMPLETED: return "The plan is no longer in use and is not expected to be followed or used in patient care."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PLANNED: return "planned"; + case ACTIVE: return "active"; + case COMPLETED: return "completed"; + default: return "?"; + } + } + } + + public static class CarePlanStatusEnumFactory implements EnumFactory { + public CarePlanStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("planned".equals(codeString)) + return CarePlanStatus.PLANNED; + if ("active".equals(codeString)) + return CarePlanStatus.ACTIVE; + if ("completed".equals(codeString)) + return CarePlanStatus.COMPLETED; + throw new IllegalArgumentException("Unknown CarePlanStatus code '"+codeString+"'"); + } + public String toCode(CarePlanStatus code) { + if (code == CarePlanStatus.PLANNED) + return "planned"; + if (code == CarePlanStatus.ACTIVE) + return "active"; + if (code == CarePlanStatus.COMPLETED) + return "completed"; + return "?"; + } + } + + public enum CarePlanGoalStatus { + /** + * The goal is being sought but has not yet been reached. (Also applies if goal was reached in the past but there has been regression and goal is being sought again). + */ + INPROGRESS, + /** + * The goal has been met and no further action is needed. + */ + ACHIEVED, + /** + * The goal has been met, but ongoing activity is needed to sustain the goal objective. + */ + SUSTAINING, + /** + * The goal is no longer being sought. + */ + CANCELLED, + /** + * added to help the parsers + */ + NULL; + public static CarePlanGoalStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("in-progress".equals(codeString)) + return INPROGRESS; + if ("achieved".equals(codeString)) + return ACHIEVED; + if ("sustaining".equals(codeString)) + return SUSTAINING; + if ("cancelled".equals(codeString)) + return CANCELLED; + throw new Exception("Unknown CarePlanGoalStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case INPROGRESS: return "in-progress"; + case ACHIEVED: return "achieved"; + case SUSTAINING: return "sustaining"; + case CANCELLED: return "cancelled"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case INPROGRESS: return ""; + case ACHIEVED: return ""; + case SUSTAINING: return ""; + case CANCELLED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case INPROGRESS: return "The goal is being sought but has not yet been reached. (Also applies if goal was reached in the past but there has been regression and goal is being sought again)."; + case ACHIEVED: return "The goal has been met and no further action is needed."; + case SUSTAINING: return "The goal has been met, but ongoing activity is needed to sustain the goal objective."; + case CANCELLED: return "The goal is no longer being sought."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case INPROGRESS: return "in-progress"; + case ACHIEVED: return "achieved"; + case SUSTAINING: return "sustaining"; + case CANCELLED: return "cancelled"; + default: return "?"; + } + } + } + + public static class CarePlanGoalStatusEnumFactory implements EnumFactory { + public CarePlanGoalStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("in-progress".equals(codeString)) + return CarePlanGoalStatus.INPROGRESS; + if ("achieved".equals(codeString)) + return CarePlanGoalStatus.ACHIEVED; + if ("sustaining".equals(codeString)) + return CarePlanGoalStatus.SUSTAINING; + if ("cancelled".equals(codeString)) + return CarePlanGoalStatus.CANCELLED; + throw new IllegalArgumentException("Unknown CarePlanGoalStatus code '"+codeString+"'"); + } + public String toCode(CarePlanGoalStatus code) { + if (code == CarePlanGoalStatus.INPROGRESS) + return "in-progress"; + if (code == CarePlanGoalStatus.ACHIEVED) + return "achieved"; + if (code == CarePlanGoalStatus.SUSTAINING) + return "sustaining"; + if (code == CarePlanGoalStatus.CANCELLED) + return "cancelled"; + return "?"; + } + } + + public enum CarePlanActivityStatus { + /** + * Activity is planned but no action has yet been taken. + */ + NOTSTARTED, + /** + * Appointment or other booking has occurred but activity has not yet begun. + */ + SCHEDULED, + /** + * Activity has been started but is not yet complete. + */ + INPROGRESS, + /** + * Activity was started but has temporarily ceased with an expectation of resumption at a future time. + */ + ONHOLD, + /** + * The activities have been completed (more or less) as planned. + */ + COMPLETED, + /** + * The activities have been ended prior to completion (perhaps even before they were started). + */ + CANCELLED, + /** + * added to help the parsers + */ + NULL; + public static CarePlanActivityStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("not-started".equals(codeString)) + return NOTSTARTED; + if ("scheduled".equals(codeString)) + return SCHEDULED; + if ("in-progress".equals(codeString)) + return INPROGRESS; + if ("on-hold".equals(codeString)) + return ONHOLD; + if ("completed".equals(codeString)) + return COMPLETED; + if ("cancelled".equals(codeString)) + return CANCELLED; + throw new Exception("Unknown CarePlanActivityStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case NOTSTARTED: return "not-started"; + case SCHEDULED: return "scheduled"; + case INPROGRESS: return "in-progress"; + case ONHOLD: return "on-hold"; + case COMPLETED: return "completed"; + case CANCELLED: return "cancelled"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case NOTSTARTED: return ""; + case SCHEDULED: return ""; + case INPROGRESS: return ""; + case ONHOLD: return ""; + case COMPLETED: return ""; + case CANCELLED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case NOTSTARTED: return "Activity is planned but no action has yet been taken."; + case SCHEDULED: return "Appointment or other booking has occurred but activity has not yet begun."; + case INPROGRESS: return "Activity has been started but is not yet complete."; + case ONHOLD: return "Activity was started but has temporarily ceased with an expectation of resumption at a future time."; + case COMPLETED: return "The activities have been completed (more or less) as planned."; + case CANCELLED: return "The activities have been ended prior to completion (perhaps even before they were started)."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case NOTSTARTED: return "not-started"; + case SCHEDULED: return "scheduled"; + case INPROGRESS: return "in-progress"; + case ONHOLD: return "on-hold"; + case COMPLETED: return "completed"; + case CANCELLED: return "cancelled"; + default: return "?"; + } + } + } + + public static class CarePlanActivityStatusEnumFactory implements EnumFactory { + public CarePlanActivityStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("not-started".equals(codeString)) + return CarePlanActivityStatus.NOTSTARTED; + if ("scheduled".equals(codeString)) + return CarePlanActivityStatus.SCHEDULED; + if ("in-progress".equals(codeString)) + return CarePlanActivityStatus.INPROGRESS; + if ("on-hold".equals(codeString)) + return CarePlanActivityStatus.ONHOLD; + if ("completed".equals(codeString)) + return CarePlanActivityStatus.COMPLETED; + if ("cancelled".equals(codeString)) + return CarePlanActivityStatus.CANCELLED; + throw new IllegalArgumentException("Unknown CarePlanActivityStatus code '"+codeString+"'"); + } + public String toCode(CarePlanActivityStatus code) { + if (code == CarePlanActivityStatus.NOTSTARTED) + return "not-started"; + if (code == CarePlanActivityStatus.SCHEDULED) + return "scheduled"; + if (code == CarePlanActivityStatus.INPROGRESS) + return "in-progress"; + if (code == CarePlanActivityStatus.ONHOLD) + return "on-hold"; + if (code == CarePlanActivityStatus.COMPLETED) + return "completed"; + if (code == CarePlanActivityStatus.CANCELLED) + return "cancelled"; + return "?"; + } + } + + public enum CarePlanActivityCategory { + /** + * Plan for the patient to consume food of a specified nature. + */ + DIET, + /** + * Plan for the patient to consume/receive a drug, vaccine or other product. + */ + DRUG, + /** + * Plan to meet or communicate with the patient (in-patient, out-patient, phone call, etc.). + */ + ENCOUNTER, + /** + * Plan to capture information about a patient (vitals, labs, diagnostic images, etc.). + */ + OBSERVATION, + /** + * Plan to modify the patient in some way (surgery, physiotherapy, education, counseling, etc.). + */ + PROCEDURE, + /** + * Plan to provide something to the patient (medication, medical supply, etc.). + */ + SUPPLY, + /** + * Some other form of action. + */ + OTHER, + /** + * added to help the parsers + */ + NULL; + public static CarePlanActivityCategory fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("diet".equals(codeString)) + return DIET; + if ("drug".equals(codeString)) + return DRUG; + if ("encounter".equals(codeString)) + return ENCOUNTER; + if ("observation".equals(codeString)) + return OBSERVATION; + if ("procedure".equals(codeString)) + return PROCEDURE; + if ("supply".equals(codeString)) + return SUPPLY; + if ("other".equals(codeString)) + return OTHER; + throw new Exception("Unknown CarePlanActivityCategory code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case DIET: return "diet"; + case DRUG: return "drug"; + case ENCOUNTER: return "encounter"; + case OBSERVATION: return "observation"; + case PROCEDURE: return "procedure"; + case SUPPLY: return "supply"; + case OTHER: return "other"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case DIET: return ""; + case DRUG: return ""; + case ENCOUNTER: return ""; + case OBSERVATION: return ""; + case PROCEDURE: return ""; + case SUPPLY: return ""; + case OTHER: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case DIET: return "Plan for the patient to consume food of a specified nature."; + case DRUG: return "Plan for the patient to consume/receive a drug, vaccine or other product."; + case ENCOUNTER: return "Plan to meet or communicate with the patient (in-patient, out-patient, phone call, etc.)."; + case OBSERVATION: return "Plan to capture information about a patient (vitals, labs, diagnostic images, etc.)."; + case PROCEDURE: return "Plan to modify the patient in some way (surgery, physiotherapy, education, counseling, etc.)."; + case SUPPLY: return "Plan to provide something to the patient (medication, medical supply, etc.)."; + case OTHER: return "Some other form of action."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case DIET: return "diet"; + case DRUG: return "drug"; + case ENCOUNTER: return "encounter"; + case OBSERVATION: return "observation"; + case PROCEDURE: return "procedure"; + case SUPPLY: return "supply"; + case OTHER: return "other"; + default: return "?"; + } + } + } + + public static class CarePlanActivityCategoryEnumFactory implements EnumFactory { + public CarePlanActivityCategory fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("diet".equals(codeString)) + return CarePlanActivityCategory.DIET; + if ("drug".equals(codeString)) + return CarePlanActivityCategory.DRUG; + if ("encounter".equals(codeString)) + return CarePlanActivityCategory.ENCOUNTER; + if ("observation".equals(codeString)) + return CarePlanActivityCategory.OBSERVATION; + if ("procedure".equals(codeString)) + return CarePlanActivityCategory.PROCEDURE; + if ("supply".equals(codeString)) + return CarePlanActivityCategory.SUPPLY; + if ("other".equals(codeString)) + return CarePlanActivityCategory.OTHER; + throw new IllegalArgumentException("Unknown CarePlanActivityCategory code '"+codeString+"'"); + } + public String toCode(CarePlanActivityCategory code) { + if (code == CarePlanActivityCategory.DIET) + return "diet"; + if (code == CarePlanActivityCategory.DRUG) + return "drug"; + if (code == CarePlanActivityCategory.ENCOUNTER) + return "encounter"; + if (code == CarePlanActivityCategory.OBSERVATION) + return "observation"; + if (code == CarePlanActivityCategory.PROCEDURE) + return "procedure"; + if (code == CarePlanActivityCategory.SUPPLY) + return "supply"; + if (code == CarePlanActivityCategory.OTHER) + return "other"; + return "?"; + } + } + + @Block() + public static class CarePlanParticipantComponent extends BackboneElement { + /** + * Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc. + */ + @Child(name="role", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Type of involvement", formalDefinition="Indicates specific responsibility of an individual within the care plan. E.g. 'Primary physician', 'Team coordinator', 'Caregiver', etc." ) + protected CodeableConcept role; + + /** + * The specific person or organization who is participating/expected to participate in the care plan. + */ + @Child(name="member", type={Practitioner.class, RelatedPerson.class, Patient.class, Organization.class}, order=2, min=1, max=1) + @Description(shortDefinition="Who is involved", formalDefinition="The specific person or organization who is participating/expected to participate in the care plan." ) + protected Reference member; + + /** + * The actual object that is the target of the reference (The specific person or organization who is participating/expected to participate in the care plan.) + */ + protected Resource memberTarget; + + private static final long serialVersionUID = -466811117L; + + public CarePlanParticipantComponent() { + super(); + } + + public CarePlanParticipantComponent(Reference member) { + super(); + this.member = member; + } + + /** + * @return {@link #role} (Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc.) + */ + public CodeableConcept getRole() { + if (this.role == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanParticipantComponent.role"); + else if (Configuration.doAutoCreate()) + this.role = new CodeableConcept(); // cc + return this.role; + } + + public boolean hasRole() { + return this.role != null && !this.role.isEmpty(); + } + + /** + * @param value {@link #role} (Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc.) + */ + public CarePlanParticipantComponent setRole(CodeableConcept value) { + this.role = value; + return this; + } + + /** + * @return {@link #member} (The specific person or organization who is participating/expected to participate in the care plan.) + */ + public Reference getMember() { + if (this.member == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanParticipantComponent.member"); + else if (Configuration.doAutoCreate()) + this.member = new Reference(); // cc + return this.member; + } + + public boolean hasMember() { + return this.member != null && !this.member.isEmpty(); + } + + /** + * @param value {@link #member} (The specific person or organization who is participating/expected to participate in the care plan.) + */ + public CarePlanParticipantComponent setMember(Reference value) { + this.member = value; + return this; + } + + /** + * @return {@link #member} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The specific person or organization who is participating/expected to participate in the care plan.) + */ + public Resource getMemberTarget() { + return this.memberTarget; + } + + /** + * @param value {@link #member} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The specific person or organization who is participating/expected to participate in the care plan.) + */ + public CarePlanParticipantComponent setMemberTarget(Resource value) { + this.memberTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("role", "CodeableConcept", "Indicates specific responsibility of an individual within the care plan. E.g. 'Primary physician', 'Team coordinator', 'Caregiver', etc.", 0, java.lang.Integer.MAX_VALUE, role)); + childrenList.add(new Property("member", "Reference(Practitioner|RelatedPerson|Patient|Organization)", "The specific person or organization who is participating/expected to participate in the care plan.", 0, java.lang.Integer.MAX_VALUE, member)); + } + + public CarePlanParticipantComponent copy() { + CarePlanParticipantComponent dst = new CarePlanParticipantComponent(); + copyValues(dst); + dst.role = role == null ? null : role.copy(); + dst.member = member == null ? null : member.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CarePlanParticipantComponent)) + return false; + CarePlanParticipantComponent o = (CarePlanParticipantComponent) other; + return compareDeep(role, o.role, true) && compareDeep(member, o.member, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CarePlanParticipantComponent)) + return false; + CarePlanParticipantComponent o = (CarePlanParticipantComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (role == null || role.isEmpty()) && (member == null || member.isEmpty()) + ; + } + + } + + @Block() + public static class CarePlanGoalComponent extends BackboneElement { + /** + * Human-readable description of a specific desired objective of the care plan. + */ + @Child(name="description", type={StringType.class}, order=1, min=1, max=1) + @Description(shortDefinition="What's the desired outcome?", formalDefinition="Human-readable description of a specific desired objective of the care plan." ) + protected StringType description; + + /** + * Indicates whether the goal has been reached and is still considered relevant. + */ + @Child(name="status", type={CodeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="in-progress | achieved | sustaining | cancelled", formalDefinition="Indicates whether the goal has been reached and is still considered relevant." ) + protected Enumeration status; + + /** + * Any comments related to the goal. + */ + @Child(name="notes", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Comments about the goal", formalDefinition="Any comments related to the goal." ) + protected StringType notes; + + /** + * The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address. + */ + @Child(name="concern", type={Condition.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Health issues this goal addresses", formalDefinition="The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address." ) + protected List concern; + /** + * The actual objects that are the target of the reference (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) + */ + protected List concernTarget; + + + private static final long serialVersionUID = -1557229012L; + + public CarePlanGoalComponent() { + super(); + } + + public CarePlanGoalComponent(StringType description) { + super(); + this.description = description; + } + + /** + * @return {@link #description} (Human-readable description of a specific desired objective of the care plan.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanGoalComponent.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Human-readable description of a specific desired objective of the care plan.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public CarePlanGoalComponent setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Human-readable description of a specific desired objective of the care plan. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Human-readable description of a specific desired objective of the care plan. + */ + public CarePlanGoalComponent setDescription(String value) { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + return this; + } + + /** + * @return {@link #status} (Indicates whether the goal has been reached and is still considered relevant.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanGoalComponent.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new CarePlanGoalStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (Indicates whether the goal has been reached and is still considered relevant.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public CarePlanGoalComponent setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return Indicates whether the goal has been reached and is still considered relevant. + */ + public CarePlanGoalStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value Indicates whether the goal has been reached and is still considered relevant. + */ + public CarePlanGoalComponent setStatus(CarePlanGoalStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new CarePlanGoalStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #notes} (Any comments related to the goal.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value + */ + public StringType getNotesElement() { + if (this.notes == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanGoalComponent.notes"); + else if (Configuration.doAutoCreate()) + this.notes = new StringType(); // bb + return this.notes; + } + + public boolean hasNotesElement() { + return this.notes != null && !this.notes.isEmpty(); + } + + public boolean hasNotes() { + return this.notes != null && !this.notes.isEmpty(); + } + + /** + * @param value {@link #notes} (Any comments related to the goal.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value + */ + public CarePlanGoalComponent setNotesElement(StringType value) { + this.notes = value; + return this; + } + + /** + * @return Any comments related to the goal. + */ + public String getNotes() { + return this.notes == null ? null : this.notes.getValue(); + } + + /** + * @param value Any comments related to the goal. + */ + public CarePlanGoalComponent setNotes(String value) { + if (Utilities.noString(value)) + this.notes = null; + else { + if (this.notes == null) + this.notes = new StringType(); + this.notes.setValue(value); + } + return this; + } + + /** + * @return {@link #concern} (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) + */ + public List getConcern() { + if (this.concern == null) + this.concern = new ArrayList(); + return this.concern; + } + + public boolean hasConcern() { + if (this.concern == null) + return false; + for (Reference item : this.concern) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #concern} (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) + */ + // syntactic sugar + public Reference addConcern() { //3 + Reference t = new Reference(); + if (this.concern == null) + this.concern = new ArrayList(); + this.concern.add(t); + return t; + } + + /** + * @return {@link #concern} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) + */ + public List getConcernTarget() { + if (this.concernTarget == null) + this.concernTarget = new ArrayList(); + return this.concernTarget; + } + + // syntactic sugar + /** + * @return {@link #concern} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) + */ + public Condition addConcernTarget() { + Condition r = new Condition(); + if (this.concernTarget == null) + this.concernTarget = new ArrayList(); + this.concernTarget.add(r); + return r; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("description", "string", "Human-readable description of a specific desired objective of the care plan.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("status", "code", "Indicates whether the goal has been reached and is still considered relevant.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("notes", "string", "Any comments related to the goal.", 0, java.lang.Integer.MAX_VALUE, notes)); + childrenList.add(new Property("concern", "Reference(Condition)", "The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.", 0, java.lang.Integer.MAX_VALUE, concern)); + } + + public CarePlanGoalComponent copy() { + CarePlanGoalComponent dst = new CarePlanGoalComponent(); + copyValues(dst); + dst.description = description == null ? null : description.copy(); + dst.status = status == null ? null : status.copy(); + dst.notes = notes == null ? null : notes.copy(); + if (concern != null) { + dst.concern = new ArrayList(); + for (Reference i : concern) + dst.concern.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CarePlanGoalComponent)) + return false; + CarePlanGoalComponent o = (CarePlanGoalComponent) other; + return compareDeep(description, o.description, true) && compareDeep(status, o.status, true) && compareDeep(notes, o.notes, true) + && compareDeep(concern, o.concern, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CarePlanGoalComponent)) + return false; + CarePlanGoalComponent o = (CarePlanGoalComponent) other; + return compareValues(description, o.description, true) && compareValues(status, o.status, true) && compareValues(notes, o.notes, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (description == null || description.isEmpty()) && (status == null || status.isEmpty()) + && (notes == null || notes.isEmpty()) && (concern == null || concern.isEmpty()); + } + + } + + @Block() + public static class CarePlanActivityComponent extends BackboneElement { + /** + * Internal reference that identifies the goals that this activity is intended to contribute towards meeting. + */ + @Child(name="goal", type={UriType.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Goals this activity relates to", formalDefinition="Internal reference that identifies the goals that this activity is intended to contribute towards meeting." ) + protected List goal; + + /** + * Identifies what progress is being made for the specific activity. + */ + @Child(name="status", type={CodeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="not-started | scheduled | in-progress | on-hold | completed | cancelled", formalDefinition="Identifies what progress is being made for the specific activity." ) + protected Enumeration status; + + /** + * If true, indicates that the described activity is one that must NOT be engaged in when following the plan. + */ + @Child(name="prohibited", type={BooleanType.class}, order=3, min=1, max=1) + @Description(shortDefinition="Do NOT do", formalDefinition="If true, indicates that the described activity is one that must NOT be engaged in when following the plan." ) + protected BooleanType prohibited; + + /** + * Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc. + */ + @Child(name="actionResulting", type={}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Appointments, orders, etc.", formalDefinition="Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc." ) + protected List actionResulting; + /** + * The actual objects that are the target of the reference (Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.) + */ + protected List actionResultingTarget; + + + /** + * Notes about the execution of the activity. + */ + @Child(name="notes", type={StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Comments about the activity", formalDefinition="Notes about the execution of the activity." ) + protected StringType notes; + + /** + * The details of the proposed activity represented in a specific resource. + */ + @Child(name="detail", type={Procedure.class, MedicationPrescription.class, DiagnosticOrder.class, Encounter.class, Supply.class}, order=6, min=0, max=1) + @Description(shortDefinition="Activity details defined in specific resource", formalDefinition="The details of the proposed activity represented in a specific resource." ) + protected Reference detail; + + /** + * The actual object that is the target of the reference (The details of the proposed activity represented in a specific resource.) + */ + protected Resource detailTarget; + + /** + * A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc. + */ + @Child(name="simple", type={}, order=7, min=0, max=1) + @Description(shortDefinition="Activity details summarised here", formalDefinition="A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc." ) + protected CarePlanActivitySimpleComponent simple; + + private static final long serialVersionUID = -1536095647L; + + public CarePlanActivityComponent() { + super(); + } + + public CarePlanActivityComponent(BooleanType prohibited) { + super(); + this.prohibited = prohibited; + } + + /** + * @return {@link #goal} (Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) + */ + public List getGoal() { + if (this.goal == null) + this.goal = new ArrayList(); + return this.goal; + } + + public boolean hasGoal() { + if (this.goal == null) + return false; + for (UriType item : this.goal) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #goal} (Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) + */ + // syntactic sugar + public UriType addGoalElement() {//2 + UriType t = new UriType(); + if (this.goal == null) + this.goal = new ArrayList(); + this.goal.add(t); + return t; + } + + /** + * @param value {@link #goal} (Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) + */ + public CarePlanActivityComponent addGoal(String value) { //1 + UriType t = new UriType(); + t.setValue(value); + if (this.goal == null) + this.goal = new ArrayList(); + this.goal.add(t); + return this; + } + + /** + * @param value {@link #goal} (Internal reference that identifies the goals that this activity is intended to contribute towards meeting.) + */ + public boolean hasGoal(String value) { + if (this.goal == null) + return false; + for (UriType v : this.goal) + if (v.equals(value)) // uri + return true; + return false; + } + + /** + * @return {@link #status} (Identifies what progress is being made for the specific activity.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivityComponent.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new CarePlanActivityStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (Identifies what progress is being made for the specific activity.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public CarePlanActivityComponent setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return Identifies what progress is being made for the specific activity. + */ + public CarePlanActivityStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value Identifies what progress is being made for the specific activity. + */ + public CarePlanActivityComponent setStatus(CarePlanActivityStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new CarePlanActivityStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #prohibited} (If true, indicates that the described activity is one that must NOT be engaged in when following the plan.). This is the underlying object with id, value and extensions. The accessor "getProhibited" gives direct access to the value + */ + public BooleanType getProhibitedElement() { + if (this.prohibited == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivityComponent.prohibited"); + else if (Configuration.doAutoCreate()) + this.prohibited = new BooleanType(); // bb + return this.prohibited; + } + + public boolean hasProhibitedElement() { + return this.prohibited != null && !this.prohibited.isEmpty(); + } + + public boolean hasProhibited() { + return this.prohibited != null && !this.prohibited.isEmpty(); + } + + /** + * @param value {@link #prohibited} (If true, indicates that the described activity is one that must NOT be engaged in when following the plan.). This is the underlying object with id, value and extensions. The accessor "getProhibited" gives direct access to the value + */ + public CarePlanActivityComponent setProhibitedElement(BooleanType value) { + this.prohibited = value; + return this; + } + + /** + * @return If true, indicates that the described activity is one that must NOT be engaged in when following the plan. + */ + public boolean getProhibited() { + return this.prohibited == null ? false : this.prohibited.getValue(); + } + + /** + * @param value If true, indicates that the described activity is one that must NOT be engaged in when following the plan. + */ + public CarePlanActivityComponent setProhibited(boolean value) { + if (this.prohibited == null) + this.prohibited = new BooleanType(); + this.prohibited.setValue(value); + return this; + } + + /** + * @return {@link #actionResulting} (Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.) + */ + public List getActionResulting() { + if (this.actionResulting == null) + this.actionResulting = new ArrayList(); + return this.actionResulting; + } + + public boolean hasActionResulting() { + if (this.actionResulting == null) + return false; + for (Reference item : this.actionResulting) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #actionResulting} (Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.) + */ + // syntactic sugar + public Reference addActionResulting() { //3 + Reference t = new Reference(); + if (this.actionResulting == null) + this.actionResulting = new ArrayList(); + this.actionResulting.add(t); + return t; + } + + /** + * @return {@link #actionResulting} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.) + */ + public List getActionResultingTarget() { + if (this.actionResultingTarget == null) + this.actionResultingTarget = new ArrayList(); + return this.actionResultingTarget; + } + + /** + * @return {@link #notes} (Notes about the execution of the activity.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value + */ + public StringType getNotesElement() { + if (this.notes == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivityComponent.notes"); + else if (Configuration.doAutoCreate()) + this.notes = new StringType(); // bb + return this.notes; + } + + public boolean hasNotesElement() { + return this.notes != null && !this.notes.isEmpty(); + } + + public boolean hasNotes() { + return this.notes != null && !this.notes.isEmpty(); + } + + /** + * @param value {@link #notes} (Notes about the execution of the activity.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value + */ + public CarePlanActivityComponent setNotesElement(StringType value) { + this.notes = value; + return this; + } + + /** + * @return Notes about the execution of the activity. + */ + public String getNotes() { + return this.notes == null ? null : this.notes.getValue(); + } + + /** + * @param value Notes about the execution of the activity. + */ + public CarePlanActivityComponent setNotes(String value) { + if (Utilities.noString(value)) + this.notes = null; + else { + if (this.notes == null) + this.notes = new StringType(); + this.notes.setValue(value); + } + return this; + } + + /** + * @return {@link #detail} (The details of the proposed activity represented in a specific resource.) + */ + public Reference getDetail() { + if (this.detail == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivityComponent.detail"); + else if (Configuration.doAutoCreate()) + this.detail = new Reference(); // cc + return this.detail; + } + + public boolean hasDetail() { + return this.detail != null && !this.detail.isEmpty(); + } + + /** + * @param value {@link #detail} (The details of the proposed activity represented in a specific resource.) + */ + public CarePlanActivityComponent setDetail(Reference value) { + this.detail = value; + return this; + } + + /** + * @return {@link #detail} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The details of the proposed activity represented in a specific resource.) + */ + public Resource getDetailTarget() { + return this.detailTarget; + } + + /** + * @param value {@link #detail} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The details of the proposed activity represented in a specific resource.) + */ + public CarePlanActivityComponent setDetailTarget(Resource value) { + this.detailTarget = value; + return this; + } + + /** + * @return {@link #simple} (A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc.) + */ + public CarePlanActivitySimpleComponent getSimple() { + if (this.simple == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivityComponent.simple"); + else if (Configuration.doAutoCreate()) + this.simple = new CarePlanActivitySimpleComponent(); // cc + return this.simple; + } + + public boolean hasSimple() { + return this.simple != null && !this.simple.isEmpty(); + } + + /** + * @param value {@link #simple} (A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc.) + */ + public CarePlanActivityComponent setSimple(CarePlanActivitySimpleComponent value) { + this.simple = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("goal", "uri", "Internal reference that identifies the goals that this activity is intended to contribute towards meeting.", 0, java.lang.Integer.MAX_VALUE, goal)); + childrenList.add(new Property("status", "code", "Identifies what progress is being made for the specific activity.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("prohibited", "boolean", "If true, indicates that the described activity is one that must NOT be engaged in when following the plan.", 0, java.lang.Integer.MAX_VALUE, prohibited)); + childrenList.add(new Property("actionResulting", "Reference(Any)", "Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.", 0, java.lang.Integer.MAX_VALUE, actionResulting)); + childrenList.add(new Property("notes", "string", "Notes about the execution of the activity.", 0, java.lang.Integer.MAX_VALUE, notes)); + childrenList.add(new Property("detail", "Reference(Procedure|MedicationPrescription|DiagnosticOrder|Encounter|Supply)", "The details of the proposed activity represented in a specific resource.", 0, java.lang.Integer.MAX_VALUE, detail)); + childrenList.add(new Property("simple", "", "A simple summary of details suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc.", 0, java.lang.Integer.MAX_VALUE, simple)); + } + + public CarePlanActivityComponent copy() { + CarePlanActivityComponent dst = new CarePlanActivityComponent(); + copyValues(dst); + if (goal != null) { + dst.goal = new ArrayList(); + for (UriType i : goal) + dst.goal.add(i.copy()); + }; + dst.status = status == null ? null : status.copy(); + dst.prohibited = prohibited == null ? null : prohibited.copy(); + if (actionResulting != null) { + dst.actionResulting = new ArrayList(); + for (Reference i : actionResulting) + dst.actionResulting.add(i.copy()); + }; + dst.notes = notes == null ? null : notes.copy(); + dst.detail = detail == null ? null : detail.copy(); + dst.simple = simple == null ? null : simple.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CarePlanActivityComponent)) + return false; + CarePlanActivityComponent o = (CarePlanActivityComponent) other; + return compareDeep(goal, o.goal, true) && compareDeep(status, o.status, true) && compareDeep(prohibited, o.prohibited, true) + && compareDeep(actionResulting, o.actionResulting, true) && compareDeep(notes, o.notes, true) && compareDeep(detail, o.detail, true) + && compareDeep(simple, o.simple, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CarePlanActivityComponent)) + return false; + CarePlanActivityComponent o = (CarePlanActivityComponent) other; + return compareValues(goal, o.goal, true) && compareValues(status, o.status, true) && compareValues(prohibited, o.prohibited, true) + && compareValues(notes, o.notes, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (goal == null || goal.isEmpty()) && (status == null || status.isEmpty()) + && (prohibited == null || prohibited.isEmpty()) && (actionResulting == null || actionResulting.isEmpty()) + && (notes == null || notes.isEmpty()) && (detail == null || detail.isEmpty()) && (simple == null || simple.isEmpty()) + ; + } + + } + + @Block() + public static class CarePlanActivitySimpleComponent extends BackboneElement { + /** + * High-level categorization of the type of activity in a care plan. + */ + @Child(name="category", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="diet | drug | encounter | observation | procedure | supply | other", formalDefinition="High-level categorization of the type of activity in a care plan." ) + protected Enumeration category; + + /** + * Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter. + */ + @Child(name="code", type={CodeableConcept.class}, order=2, min=0, max=1) + @Description(shortDefinition="Detail type of activity", formalDefinition="Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter." ) + protected CodeableConcept code; + + /** + * The period, timing or frequency upon which the described activity is to occur. + */ + @Child(name="scheduled", type={Timing.class, Period.class, StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="When activity is to occur", formalDefinition="The period, timing or frequency upon which the described activity is to occur." ) + protected Type scheduled; + + /** + * Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc. + */ + @Child(name="location", type={Location.class}, order=4, min=0, max=1) + @Description(shortDefinition="Where it should happen", formalDefinition="Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc." ) + protected Reference location; + + /** + * The actual object that is the target of the reference (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) + */ + protected Location locationTarget; + + /** + * Identifies who's expected to be involved in the activity. + */ + @Child(name="performer", type={Practitioner.class, Organization.class, RelatedPerson.class, Patient.class}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Who's responsible?", formalDefinition="Identifies who's expected to be involved in the activity." ) + protected List performer; + /** + * The actual objects that are the target of the reference (Identifies who's expected to be involved in the activity.) + */ + protected List performerTarget; + + + /** + * Identifies the food, drug or other product being consumed or supplied in the activity. + */ + @Child(name="product", type={Medication.class, Substance.class}, order=6, min=0, max=1) + @Description(shortDefinition="What's administered/supplied", formalDefinition="Identifies the food, drug or other product being consumed or supplied in the activity." ) + protected Reference product; + + /** + * The actual object that is the target of the reference (Identifies the food, drug or other product being consumed or supplied in the activity.) + */ + protected Resource productTarget; + + /** + * Identifies the quantity expected to be consumed in a given day. + */ + @Child(name="dailyAmount", type={Quantity.class}, order=7, min=0, max=1) + @Description(shortDefinition="How much consumed/day?", formalDefinition="Identifies the quantity expected to be consumed in a given day." ) + protected Quantity dailyAmount; + + /** + * Identifies the quantity expected to be supplied. + */ + @Child(name="quantity", type={Quantity.class}, order=8, min=0, max=1) + @Description(shortDefinition="How much is administered/supplied/consumed", formalDefinition="Identifies the quantity expected to be supplied." ) + protected Quantity quantity; + + /** + * This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc. + */ + @Child(name="details", type={StringType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Extra info on activity occurrence", formalDefinition="This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc." ) + protected StringType details; + + private static final long serialVersionUID = 1028930313L; + + public CarePlanActivitySimpleComponent() { + super(); + } + + public CarePlanActivitySimpleComponent(Enumeration category) { + super(); + this.category = category; + } + + /** + * @return {@link #category} (High-level categorization of the type of activity in a care plan.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value + */ + public Enumeration getCategoryElement() { + if (this.category == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.category"); + else if (Configuration.doAutoCreate()) + this.category = new Enumeration(new CarePlanActivityCategoryEnumFactory()); // bb + return this.category; + } + + public boolean hasCategoryElement() { + return this.category != null && !this.category.isEmpty(); + } + + public boolean hasCategory() { + return this.category != null && !this.category.isEmpty(); + } + + /** + * @param value {@link #category} (High-level categorization of the type of activity in a care plan.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value + */ + public CarePlanActivitySimpleComponent setCategoryElement(Enumeration value) { + this.category = value; + return this; + } + + /** + * @return High-level categorization of the type of activity in a care plan. + */ + public CarePlanActivityCategory getCategory() { + return this.category == null ? null : this.category.getValue(); + } + + /** + * @param value High-level categorization of the type of activity in a care plan. + */ + public CarePlanActivitySimpleComponent setCategory(CarePlanActivityCategory value) { + if (this.category == null) + this.category = new Enumeration(new CarePlanActivityCategoryEnumFactory()); + this.category.setValue(value); + return this; + } + + /** + * @return {@link #code} (Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter.) + */ + public CarePlanActivitySimpleComponent setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) + */ + public Type getScheduled() { + return this.scheduled; + } + + /** + * @return {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) + */ + public Timing getScheduledTiming() throws Exception { + if (!(this.scheduled instanceof Timing)) + throw new Exception("Type mismatch: the type Timing was expected, but "+this.scheduled.getClass().getName()+" was encountered"); + return (Timing) this.scheduled; + } + + /** + * @return {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) + */ + public Period getScheduledPeriod() throws Exception { + if (!(this.scheduled instanceof Period)) + throw new Exception("Type mismatch: the type Period was expected, but "+this.scheduled.getClass().getName()+" was encountered"); + return (Period) this.scheduled; + } + + /** + * @return {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) + */ + public StringType getScheduledStringType() throws Exception { + if (!(this.scheduled instanceof StringType)) + throw new Exception("Type mismatch: the type StringType was expected, but "+this.scheduled.getClass().getName()+" was encountered"); + return (StringType) this.scheduled; + } + + public boolean hasScheduled() { + return this.scheduled != null && !this.scheduled.isEmpty(); + } + + /** + * @param value {@link #scheduled} (The period, timing or frequency upon which the described activity is to occur.) + */ + public CarePlanActivitySimpleComponent setScheduled(Type value) { + this.scheduled = value; + return this; + } + + /** + * @return {@link #location} (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) + */ + public Reference getLocation() { + if (this.location == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.location"); + else if (Configuration.doAutoCreate()) + this.location = new Reference(); // cc + return this.location; + } + + public boolean hasLocation() { + return this.location != null && !this.location.isEmpty(); + } + + /** + * @param value {@link #location} (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) + */ + public CarePlanActivitySimpleComponent setLocation(Reference value) { + this.location = value; + return this; + } + + /** + * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) + */ + public Location getLocationTarget() { + if (this.locationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.location"); + else if (Configuration.doAutoCreate()) + this.locationTarget = new Location(); // aa + return this.locationTarget; + } + + /** + * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.) + */ + public CarePlanActivitySimpleComponent setLocationTarget(Location value) { + this.locationTarget = value; + return this; + } + + /** + * @return {@link #performer} (Identifies who's expected to be involved in the activity.) + */ + public List getPerformer() { + if (this.performer == null) + this.performer = new ArrayList(); + return this.performer; + } + + public boolean hasPerformer() { + if (this.performer == null) + return false; + for (Reference item : this.performer) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #performer} (Identifies who's expected to be involved in the activity.) + */ + // syntactic sugar + public Reference addPerformer() { //3 + Reference t = new Reference(); + if (this.performer == null) + this.performer = new ArrayList(); + this.performer.add(t); + return t; + } + + /** + * @return {@link #performer} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies who's expected to be involved in the activity.) + */ + public List getPerformerTarget() { + if (this.performerTarget == null) + this.performerTarget = new ArrayList(); + return this.performerTarget; + } + + /** + * @return {@link #product} (Identifies the food, drug or other product being consumed or supplied in the activity.) + */ + public Reference getProduct() { + if (this.product == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.product"); + else if (Configuration.doAutoCreate()) + this.product = new Reference(); // cc + return this.product; + } + + public boolean hasProduct() { + return this.product != null && !this.product.isEmpty(); + } + + /** + * @param value {@link #product} (Identifies the food, drug or other product being consumed or supplied in the activity.) + */ + public CarePlanActivitySimpleComponent setProduct(Reference value) { + this.product = value; + return this; + } + + /** + * @return {@link #product} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the food, drug or other product being consumed or supplied in the activity.) + */ + public Resource getProductTarget() { + return this.productTarget; + } + + /** + * @param value {@link #product} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the food, drug or other product being consumed or supplied in the activity.) + */ + public CarePlanActivitySimpleComponent setProductTarget(Resource value) { + this.productTarget = value; + return this; + } + + /** + * @return {@link #dailyAmount} (Identifies the quantity expected to be consumed in a given day.) + */ + public Quantity getDailyAmount() { + if (this.dailyAmount == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.dailyAmount"); + else if (Configuration.doAutoCreate()) + this.dailyAmount = new Quantity(); // cc + return this.dailyAmount; + } + + public boolean hasDailyAmount() { + return this.dailyAmount != null && !this.dailyAmount.isEmpty(); + } + + /** + * @param value {@link #dailyAmount} (Identifies the quantity expected to be consumed in a given day.) + */ + public CarePlanActivitySimpleComponent setDailyAmount(Quantity value) { + this.dailyAmount = value; + return this; + } + + /** + * @return {@link #quantity} (Identifies the quantity expected to be supplied.) + */ + public Quantity getQuantity() { + if (this.quantity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.quantity"); + else if (Configuration.doAutoCreate()) + this.quantity = new Quantity(); // cc + return this.quantity; + } + + public boolean hasQuantity() { + return this.quantity != null && !this.quantity.isEmpty(); + } + + /** + * @param value {@link #quantity} (Identifies the quantity expected to be supplied.) + */ + public CarePlanActivitySimpleComponent setQuantity(Quantity value) { + this.quantity = value; + return this; + } + + /** + * @return {@link #details} (This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc.). This is the underlying object with id, value and extensions. The accessor "getDetails" gives direct access to the value + */ + public StringType getDetailsElement() { + if (this.details == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlanActivitySimpleComponent.details"); + else if (Configuration.doAutoCreate()) + this.details = new StringType(); // bb + return this.details; + } + + public boolean hasDetailsElement() { + return this.details != null && !this.details.isEmpty(); + } + + public boolean hasDetails() { + return this.details != null && !this.details.isEmpty(); + } + + /** + * @param value {@link #details} (This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc.). This is the underlying object with id, value and extensions. The accessor "getDetails" gives direct access to the value + */ + public CarePlanActivitySimpleComponent setDetailsElement(StringType value) { + this.details = value; + return this; + } + + /** + * @return This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc. + */ + public String getDetails() { + return this.details == null ? null : this.details.getValue(); + } + + /** + * @param value This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc. + */ + public CarePlanActivitySimpleComponent setDetails(String value) { + if (Utilities.noString(value)) + this.details = null; + else { + if (this.details == null) + this.details = new StringType(); + this.details.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("category", "code", "High-level categorization of the type of activity in a care plan.", 0, java.lang.Integer.MAX_VALUE, category)); + childrenList.add(new Property("code", "CodeableConcept", "Detailed description of the type of activity. E.g. What lab test, what procedure, what kind of encounter.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("scheduled[x]", "Timing|Period|string", "The period, timing or frequency upon which the described activity is to occur.", 0, java.lang.Integer.MAX_VALUE, scheduled)); + childrenList.add(new Property("location", "Reference(Location)", "Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.", 0, java.lang.Integer.MAX_VALUE, location)); + childrenList.add(new Property("performer", "Reference(Practitioner|Organization|RelatedPerson|Patient)", "Identifies who's expected to be involved in the activity.", 0, java.lang.Integer.MAX_VALUE, performer)); + childrenList.add(new Property("product", "Reference(Medication|Substance)", "Identifies the food, drug or other product being consumed or supplied in the activity.", 0, java.lang.Integer.MAX_VALUE, product)); + childrenList.add(new Property("dailyAmount", "Quantity", "Identifies the quantity expected to be consumed in a given day.", 0, java.lang.Integer.MAX_VALUE, dailyAmount)); + childrenList.add(new Property("quantity", "Quantity", "Identifies the quantity expected to be supplied.", 0, java.lang.Integer.MAX_VALUE, quantity)); + childrenList.add(new Property("details", "string", "This provides a textual description of constraints on the activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc.", 0, java.lang.Integer.MAX_VALUE, details)); + } + + public CarePlanActivitySimpleComponent copy() { + CarePlanActivitySimpleComponent dst = new CarePlanActivitySimpleComponent(); + copyValues(dst); + dst.category = category == null ? null : category.copy(); + dst.code = code == null ? null : code.copy(); + dst.scheduled = scheduled == null ? null : scheduled.copy(); + dst.location = location == null ? null : location.copy(); + if (performer != null) { + dst.performer = new ArrayList(); + for (Reference i : performer) + dst.performer.add(i.copy()); + }; + dst.product = product == null ? null : product.copy(); + dst.dailyAmount = dailyAmount == null ? null : dailyAmount.copy(); + dst.quantity = quantity == null ? null : quantity.copy(); + dst.details = details == null ? null : details.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CarePlanActivitySimpleComponent)) + return false; + CarePlanActivitySimpleComponent o = (CarePlanActivitySimpleComponent) other; + return compareDeep(category, o.category, true) && compareDeep(code, o.code, true) && compareDeep(scheduled, o.scheduled, true) + && compareDeep(location, o.location, true) && compareDeep(performer, o.performer, true) && compareDeep(product, o.product, true) + && compareDeep(dailyAmount, o.dailyAmount, true) && compareDeep(quantity, o.quantity, true) && compareDeep(details, o.details, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CarePlanActivitySimpleComponent)) + return false; + CarePlanActivitySimpleComponent o = (CarePlanActivitySimpleComponent) other; + return compareValues(category, o.category, true) && compareValues(details, o.details, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (category == null || category.isEmpty()) && (code == null || code.isEmpty()) + && (scheduled == null || scheduled.isEmpty()) && (location == null || location.isEmpty()) + && (performer == null || performer.isEmpty()) && (product == null || product.isEmpty()) && (dailyAmount == null || dailyAmount.isEmpty()) + && (quantity == null || quantity.isEmpty()) && (details == null || details.isEmpty()); + } + + } + + /** + * This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="External Ids for this plan", formalDefinition="This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) + protected List identifier; + + /** + * Identifies the patient/subject whose intended care is described by the plan. + */ + @Child(name="patient", type={Patient.class}, order=0, min=0, max=1) + @Description(shortDefinition="Who care plan is for", formalDefinition="Identifies the patient/subject whose intended care is described by the plan." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (Identifies the patient/subject whose intended care is described by the plan.) + */ + protected Patient patientTarget; + + /** + * Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. + */ + @Child(name="status", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="planned | active | completed", formalDefinition="Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record." ) + protected Enumeration status; + + /** + * Indicates when the plan did (or is intended to) come into effect and end. + */ + @Child(name="period", type={Period.class}, order=2, min=0, max=1) + @Description(shortDefinition="Time period plan covers", formalDefinition="Indicates when the plan did (or is intended to) come into effect and end." ) + protected Period period; + + /** + * Identifies the most recent date on which the plan has been revised. + */ + @Child(name="modified", type={DateTimeType.class}, order=3, min=0, max=1) + @Description(shortDefinition="When last updated", formalDefinition="Identifies the most recent date on which the plan has been revised." ) + protected DateTimeType modified; + + /** + * Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan. + */ + @Child(name="concern", type={Condition.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Health issues this plan addresses", formalDefinition="Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan." ) + protected List concern; + /** + * The actual objects that are the target of the reference (Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) + */ + protected List concernTarget; + + + /** + * Identifies all people and organizations who are expected to be involved in the care envisioned by this plan. + */ + @Child(name="participant", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Who's involved in plan?", formalDefinition="Identifies all people and organizations who are expected to be involved in the care envisioned by this plan." ) + protected List participant; + + /** + * Describes the intended objective(s) of carrying out the Care Plan. + */ + @Child(name="goal", type={}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Desired outcome of plan", formalDefinition="Describes the intended objective(s) of carrying out the Care Plan." ) + protected List goal; + + /** + * Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc. + */ + @Child(name="activity", type={}, order=7, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Action to occur as part of plan", formalDefinition="Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc." ) + protected List activity; + + /** + * General notes about the care plan not covered elsewhere. + */ + @Child(name="notes", type={StringType.class}, order=8, min=0, max=1) + @Description(shortDefinition="Comments about the plan", formalDefinition="General notes about the care plan not covered elsewhere." ) + protected StringType notes; + + private static final long serialVersionUID = -1730021244L; + + public CarePlan() { + super(); + } + + public CarePlan(Enumeration status) { + super(); + this.status = status; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) + */ + public CarePlan setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) + */ + public CarePlan setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #status} (Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new CarePlanStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public CarePlan setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. + */ + public CarePlanStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. + */ + public CarePlan setStatus(CarePlanStatus value) { + if (this.status == null) + this.status = new Enumeration(new CarePlanStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #period} (Indicates when the plan did (or is intended to) come into effect and end.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (Indicates when the plan did (or is intended to) come into effect and end.) + */ + public CarePlan setPeriod(Period value) { + this.period = value; + return this; + } + + /** + * @return {@link #modified} (Identifies the most recent date on which the plan has been revised.). This is the underlying object with id, value and extensions. The accessor "getModified" gives direct access to the value + */ + public DateTimeType getModifiedElement() { + if (this.modified == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan.modified"); + else if (Configuration.doAutoCreate()) + this.modified = new DateTimeType(); // bb + return this.modified; + } + + public boolean hasModifiedElement() { + return this.modified != null && !this.modified.isEmpty(); + } + + public boolean hasModified() { + return this.modified != null && !this.modified.isEmpty(); + } + + /** + * @param value {@link #modified} (Identifies the most recent date on which the plan has been revised.). This is the underlying object with id, value and extensions. The accessor "getModified" gives direct access to the value + */ + public CarePlan setModifiedElement(DateTimeType value) { + this.modified = value; + return this; + } + + /** + * @return Identifies the most recent date on which the plan has been revised. + */ + public Date getModified() { + return this.modified == null ? null : this.modified.getValue(); + } + + /** + * @param value Identifies the most recent date on which the plan has been revised. + */ + public CarePlan setModified(Date value) { + if (value == null) + this.modified = null; + else { + if (this.modified == null) + this.modified = new DateTimeType(); + this.modified.setValue(value); + } + return this; + } + + /** + * @return {@link #concern} (Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) + */ + public List getConcern() { + if (this.concern == null) + this.concern = new ArrayList(); + return this.concern; + } + + public boolean hasConcern() { + if (this.concern == null) + return false; + for (Reference item : this.concern) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #concern} (Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) + */ + // syntactic sugar + public Reference addConcern() { //3 + Reference t = new Reference(); + if (this.concern == null) + this.concern = new ArrayList(); + this.concern.add(t); + return t; + } + + /** + * @return {@link #concern} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) + */ + public List getConcernTarget() { + if (this.concernTarget == null) + this.concernTarget = new ArrayList(); + return this.concernTarget; + } + + // syntactic sugar + /** + * @return {@link #concern} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) + */ + public Condition addConcernTarget() { + Condition r = new Condition(); + if (this.concernTarget == null) + this.concernTarget = new ArrayList(); + this.concernTarget.add(r); + return r; + } + + /** + * @return {@link #participant} (Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.) + */ + public List getParticipant() { + if (this.participant == null) + this.participant = new ArrayList(); + return this.participant; + } + + public boolean hasParticipant() { + if (this.participant == null) + return false; + for (CarePlanParticipantComponent item : this.participant) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #participant} (Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.) + */ + // syntactic sugar + public CarePlanParticipantComponent addParticipant() { //3 + CarePlanParticipantComponent t = new CarePlanParticipantComponent(); + if (this.participant == null) + this.participant = new ArrayList(); + this.participant.add(t); + return t; + } + + /** + * @return {@link #goal} (Describes the intended objective(s) of carrying out the Care Plan.) + */ + public List getGoal() { + if (this.goal == null) + this.goal = new ArrayList(); + return this.goal; + } + + public boolean hasGoal() { + if (this.goal == null) + return false; + for (CarePlanGoalComponent item : this.goal) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #goal} (Describes the intended objective(s) of carrying out the Care Plan.) + */ + // syntactic sugar + public CarePlanGoalComponent addGoal() { //3 + CarePlanGoalComponent t = new CarePlanGoalComponent(); + if (this.goal == null) + this.goal = new ArrayList(); + this.goal.add(t); + return t; + } + + /** + * @return {@link #activity} (Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) + */ + public List getActivity() { + if (this.activity == null) + this.activity = new ArrayList(); + return this.activity; + } + + public boolean hasActivity() { + if (this.activity == null) + return false; + for (CarePlanActivityComponent item : this.activity) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #activity} (Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) + */ + // syntactic sugar + public CarePlanActivityComponent addActivity() { //3 + CarePlanActivityComponent t = new CarePlanActivityComponent(); + if (this.activity == null) + this.activity = new ArrayList(); + this.activity.add(t); + return t; + } + + /** + * @return {@link #notes} (General notes about the care plan not covered elsewhere.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value + */ + public StringType getNotesElement() { + if (this.notes == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan.notes"); + else if (Configuration.doAutoCreate()) + this.notes = new StringType(); // bb + return this.notes; + } + + public boolean hasNotesElement() { + return this.notes != null && !this.notes.isEmpty(); + } + + public boolean hasNotes() { + return this.notes != null && !this.notes.isEmpty(); + } + + /** + * @param value {@link #notes} (General notes about the care plan not covered elsewhere.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value + */ + public CarePlan setNotesElement(StringType value) { + this.notes = value; + return this; + } + + /** + * @return General notes about the care plan not covered elsewhere. + */ + public String getNotes() { + return this.notes == null ? null : this.notes.getValue(); + } + + /** + * @param value General notes about the care plan not covered elsewhere. + */ + public CarePlan setNotes(String value) { + if (Utilities.noString(value)) + this.notes = null; + else { + if (this.notes == null) + this.notes = new StringType(); + this.notes.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("patient", "Reference(Patient)", "Identifies the patient/subject whose intended care is described by the plan.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("status", "code", "Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("period", "Period", "Indicates when the plan did (or is intended to) come into effect and end.", 0, java.lang.Integer.MAX_VALUE, period)); + childrenList.add(new Property("modified", "dateTime", "Identifies the most recent date on which the plan has been revised.", 0, java.lang.Integer.MAX_VALUE, modified)); + childrenList.add(new Property("concern", "Reference(Condition)", "Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.", 0, java.lang.Integer.MAX_VALUE, concern)); + childrenList.add(new Property("participant", "", "Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.", 0, java.lang.Integer.MAX_VALUE, participant)); + childrenList.add(new Property("goal", "", "Describes the intended objective(s) of carrying out the Care Plan.", 0, java.lang.Integer.MAX_VALUE, goal)); + childrenList.add(new Property("activity", "", "Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.", 0, java.lang.Integer.MAX_VALUE, activity)); + childrenList.add(new Property("notes", "string", "General notes about the care plan not covered elsewhere.", 0, java.lang.Integer.MAX_VALUE, notes)); + } + + public CarePlan copy() { + CarePlan dst = new CarePlan(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.patient = patient == null ? null : patient.copy(); + dst.status = status == null ? null : status.copy(); + dst.period = period == null ? null : period.copy(); + dst.modified = modified == null ? null : modified.copy(); + if (concern != null) { + dst.concern = new ArrayList(); + for (Reference i : concern) + dst.concern.add(i.copy()); + }; + if (participant != null) { + dst.participant = new ArrayList(); + for (CarePlanParticipantComponent i : participant) + dst.participant.add(i.copy()); + }; + if (goal != null) { + dst.goal = new ArrayList(); + for (CarePlanGoalComponent i : goal) + dst.goal.add(i.copy()); + }; + if (activity != null) { + dst.activity = new ArrayList(); + for (CarePlanActivityComponent i : activity) + dst.activity.add(i.copy()); + }; + dst.notes = notes == null ? null : notes.copy(); + return dst; + } + + protected CarePlan typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CarePlan)) + return false; + CarePlan o = (CarePlan) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(patient, o.patient, true) && compareDeep(status, o.status, true) + && compareDeep(period, o.period, true) && compareDeep(modified, o.modified, true) && compareDeep(concern, o.concern, true) + && compareDeep(participant, o.participant, true) && compareDeep(goal, o.goal, true) && compareDeep(activity, o.activity, true) + && compareDeep(notes, o.notes, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CarePlan)) + return false; + CarePlan o = (CarePlan) other; + return compareValues(status, o.status, true) && compareValues(modified, o.modified, true) && compareValues(notes, o.notes, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (patient == null || patient.isEmpty()) + && (status == null || status.isEmpty()) && (period == null || period.isEmpty()) && (modified == null || modified.isEmpty()) + && (concern == null || concern.isEmpty()) && (participant == null || participant.isEmpty()) + && (goal == null || goal.isEmpty()) && (activity == null || activity.isEmpty()) && (notes == null || notes.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.CarePlan; + } + + @SearchParamDefinition(name="activitycode", path="CarePlan.activity.simple.code", description="Detail type of activity", type="token" ) + public static final String SP_ACTIVITYCODE = "activitycode"; + @SearchParamDefinition(name="patient", path="CarePlan.patient", description="Who care plan is for", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="condition", path="CarePlan.concern", description="Health issues this plan addresses", type="reference" ) + public static final String SP_CONDITION = "condition"; + @SearchParamDefinition(name="activitydetail", path="CarePlan.activity.detail", description="Activity details defined in specific resource", type="reference" ) + public static final String SP_ACTIVITYDETAIL = "activitydetail"; + @SearchParamDefinition(name="activitydate", path="CarePlan.activity.simple.scheduled[x]", description="Specified date occurs within period specified by CarePlan.activity.timingSchedule", type="date" ) + public static final String SP_ACTIVITYDATE = "activitydate"; + @SearchParamDefinition(name="participant", path="CarePlan.participant.member", description="Who is involved", type="reference" ) + public static final String SP_PARTICIPANT = "participant"; + @SearchParamDefinition(name="date", path="CarePlan.period", description="Time period plan covers", type="date" ) + public static final String SP_DATE = "date"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2$1.class new file mode 100644 index 0000000000000000000000000000000000000000..3fb368a7740e96ae36f12dc7af1a62ab2e75be12 GIT binary patch literal 867 zcmbVL+iuf95Ivi?b{yO$6iU-_QK4>=aI+|?A^}3JTvv*ko0OC42rWdr#_nse{ewd^@bcJ~qO+;YYJQjn1hdXm?nDR7B z7z!tChSD21@Iya+%TR1Ij~Nu3;utC&KNP*}Y%Jmt9|z=Fq&W8j<;yV@#ZVqbS?r2K zU#>6BQawNA=bR{<&<&!*52sy`deKC~BMqAdwymB+cm^g79#Ri_pZBNl)s8g#JwQ9*$t;<%eyj5$K-+aLU2BRH@BDMpbB!b$l&QtWq zr@~Dcwys3SuzRI_|DSMWR?_8}tLHq(WHqlE&6CcxXkRmEgU)`h=NvG!uFnz06F=lZ ze(y90>b^Z{A3F@X-R}-M&d52aZqOj=G?=VflNTl}@)%eoy+r6Uiev$;pI{fi%imG> zCcokjC`$hel%pJ~1Q+H|BdF%^D~0R0ja4k5hD~gfu44zgqzkAJv6|C&Q6>8()OQ-m h?o3elGA$Hvi%0+kDc4@5&mX(Q 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 bdOJ*Gh8zMc&9fY%oCRfBvbondqF4J53W{?R literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2$CarePlan2StatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2$CarePlan2StatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..b8293a90cc1f38cdec6195352188fcca02774e0e GIT binary patch literal 1827 zcmbVMT~iZR7=8{U`{jbTKv9$wEEJMdqo|+-ftZGt5hwKHT!L6GxXAl)&Xf0j-j6-+|9$fpfE)PHKp)Z?zA|tH zS2bjGbmN+a>r#(vxFPjT6}MDO7&s%LlTzQ-a7XH|4H%fxFs)+7z-O41VopU?MNY*x z49c`C+;E1WeJr`b5X<@7oZ)Q26@0l`+Ty{wz2(t~c0ce-&C8q}@Kw(i<7=TERx1qV zf)G5&d3L43$z2>PJhXT03_*&SwJ>l+aVlBxgJR}^H<`Krzzs64sD!p~c&0@8yi62v zIIfqm*^{SS7fO=NtuJikY1FxurPV@yU4~Qaa+!;5hAXX^ zKe6;j#!IWGh5iTjJ!7BzjE>auAtF6SBPVq#>N3y_6ht=xDS-~k|$|8o+MDPU^D^?>*m6jqcU0Pbr zvT6isP)N{c5By5l7)a~EjXcX1E;f5fZD AtN;K2 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2.class new file mode 100644 index 0000000000000000000000000000000000000000..7544a9ed441b73d698778c5e3b8857e9d908858d GIT binary patch literal 17340 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CarePlan2.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2.java similarity index 86% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CarePlan2.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2.java index ca9cc561d1a..f7e1770dffd 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CarePlan2.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CarePlan2.java @@ -1,877 +1,884 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Describes the intention of how one or more practitioners intend to deliver care for a particular patient for a period of time, possibly limited to care for a specific condition or set of conditions. - */ -@ResourceDef(name="CarePlan2", profile="http://hl7.org/fhir/Profile/CarePlan2") -public class CarePlan2 extends DomainResource { - - public enum CarePlan2Status implements FhirEnum { - /** - * The plan is in development or awaiting use but is not yet intended to be acted upon. - */ - PLANNED, - /** - * The plan is intended to be followed and used as part of patient care. - */ - ACTIVE, - /** - * The plan is no longer in use and is not expected to be followed or used in patient care. - */ - COMPLETED, - /** - * added to help the parsers - */ - NULL; - - public static final CarePlan2StatusEnumFactory ENUM_FACTORY = new CarePlan2StatusEnumFactory(); - - public static CarePlan2Status fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("planned".equals(codeString)) - return PLANNED; - if ("active".equals(codeString)) - return ACTIVE; - if ("completed".equals(codeString)) - return COMPLETED; - throw new IllegalArgumentException("Unknown CarePlan2Status code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case PLANNED: return "planned"; - case ACTIVE: return "active"; - case COMPLETED: return "completed"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case PLANNED: return ""; - case ACTIVE: return ""; - case COMPLETED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case PLANNED: return "The plan is in development or awaiting use but is not yet intended to be acted upon."; - case ACTIVE: return "The plan is intended to be followed and used as part of patient care."; - case COMPLETED: return "The plan is no longer in use and is not expected to be followed or used in patient care."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case PLANNED: return "planned"; - case ACTIVE: return "active"; - case COMPLETED: return "completed"; - default: return "?"; - } - } - } - - public static class CarePlan2StatusEnumFactory implements EnumFactory { - public CarePlan2Status fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("planned".equals(codeString)) - return CarePlan2Status.PLANNED; - if ("active".equals(codeString)) - return CarePlan2Status.ACTIVE; - if ("completed".equals(codeString)) - return CarePlan2Status.COMPLETED; - throw new IllegalArgumentException("Unknown CarePlan2Status code '"+codeString+"'"); - } - public String toCode(CarePlan2Status code) throws IllegalArgumentException { - if (code == CarePlan2Status.PLANNED) - return "planned"; - if (code == CarePlan2Status.ACTIVE) - return "active"; - if (code == CarePlan2Status.COMPLETED) - return "completed"; - return "?"; - } - } - - @Block() - public static class CarePlan2ParticipantComponent extends BackboneElement { - /** - * Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc. - */ - @Child(name="role", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="Type of involvement", formalDefinition="Indicates specific responsibility of an individual within the care plan. E.g. 'Primary physician', 'Team coordinator', 'Caregiver', etc." ) - protected CodeableConcept role; - - /** - * The specific person or organization who is participating/expected to participate in the care plan. - */ - @Child(name="member", type={Practitioner.class, RelatedPerson.class, Patient.class, Organization.class}, order=2, min=1, max=1) - @Description(shortDefinition="Who is involved", formalDefinition="The specific person or organization who is participating/expected to participate in the care plan." ) - protected Reference member; - - /** - * The actual object that is the target of the reference (The specific person or organization who is participating/expected to participate in the care plan.) - */ - protected Resource memberTarget; - - private static final long serialVersionUID = -466811117L; - - public CarePlan2ParticipantComponent() { - super(); - } - - public CarePlan2ParticipantComponent(Reference member) { - super(); - this.member = member; - } - - /** - * @return {@link #role} (Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc.) - */ - public CodeableConcept getRole() { - if (this.role == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan2ParticipantComponent.role"); - else if (Configuration.doAutoCreate()) - this.role = new CodeableConcept(); - return this.role; - } - - public boolean hasRole() { - return this.role != null && !this.role.isEmpty(); - } - - /** - * @param value {@link #role} (Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc.) - */ - public CarePlan2ParticipantComponent setRole(CodeableConcept value) { - this.role = value; - return this; - } - - /** - * @return {@link #member} (The specific person or organization who is participating/expected to participate in the care plan.) - */ - public Reference getMember() { - if (this.member == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan2ParticipantComponent.member"); - else if (Configuration.doAutoCreate()) - this.member = new Reference(); - return this.member; - } - - public boolean hasMember() { - return this.member != null && !this.member.isEmpty(); - } - - /** - * @param value {@link #member} (The specific person or organization who is participating/expected to participate in the care plan.) - */ - public CarePlan2ParticipantComponent setMember(Reference value) { - this.member = value; - return this; - } - - /** - * @return {@link #member} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The specific person or organization who is participating/expected to participate in the care plan.) - */ - public Resource getMemberTarget() { - return this.memberTarget; - } - - /** - * @param value {@link #member} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The specific person or organization who is participating/expected to participate in the care plan.) - */ - public CarePlan2ParticipantComponent setMemberTarget(Resource value) { - this.memberTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("role", "CodeableConcept", "Indicates specific responsibility of an individual within the care plan. E.g. 'Primary physician', 'Team coordinator', 'Caregiver', etc.", 0, java.lang.Integer.MAX_VALUE, role)); - childrenList.add(new Property("member", "Reference(Practitioner|RelatedPerson|Patient|Organization)", "The specific person or organization who is participating/expected to participate in the care plan.", 0, java.lang.Integer.MAX_VALUE, member)); - } - - public CarePlan2ParticipantComponent copy() { - CarePlan2ParticipantComponent dst = new CarePlan2ParticipantComponent(); - copyValues(dst); - dst.role = role == null ? null : role.copy(); - dst.member = member == null ? null : member.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (role == null || role.isEmpty()) && (member == null || member.isEmpty()) - ; - } - - } - - /** - * This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External Ids for this plan", formalDefinition="This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) - protected List identifier; - - /** - * Identifies the patient/subject whose intended care is described by the plan. - */ - @Child(name="patient", type={Patient.class}, order=0, min=0, max=1) - @Description(shortDefinition="Who care plan is for", formalDefinition="Identifies the patient/subject whose intended care is described by the plan." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (Identifies the patient/subject whose intended care is described by the plan.) - */ - protected Patient patientTarget; - - /** - * Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. - */ - @Child(name="status", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="planned | active | completed", formalDefinition="Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record." ) - protected Enumeration status; - - /** - * Indicates when the plan did (or is intended to) come into effect and end. - */ - @Child(name="period", type={Period.class}, order=2, min=0, max=1) - @Description(shortDefinition="Time period plan covers", formalDefinition="Indicates when the plan did (or is intended to) come into effect and end." ) - protected Period period; - - /** - * Identifies the most recent date on which the plan has been revised. - */ - @Child(name="modified", type={DateTimeType.class}, order=3, min=0, max=1) - @Description(shortDefinition="When last updated", formalDefinition="Identifies the most recent date on which the plan has been revised." ) - protected DateTimeType modified; - - /** - * Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan. - */ - @Child(name="concern", type={Condition.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Health issues this plan addresses", formalDefinition="Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan." ) - protected List concern; - /** - * The actual objects that are the target of the reference (Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) - */ - protected List concernTarget; - - - /** - * Identifies all people and organizations who are expected to be involved in the care envisioned by this plan. - */ - @Child(name="participant", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Who's involved in plan?", formalDefinition="Identifies all people and organizations who are expected to be involved in the care envisioned by this plan." ) - protected List participant; - - /** - * General notes about the care plan not covered elsewhere. - */ - @Child(name="notes", type={StringType.class}, order=6, min=0, max=1) - @Description(shortDefinition="Comments about the plan", formalDefinition="General notes about the care plan not covered elsewhere." ) - protected StringType notes; - - /** - * Describes the intended objective(s) of carrying out the Care Plan. - */ - @Child(name="goal", type={Goal.class}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="CarePlan Goal", formalDefinition="Describes the intended objective(s) of carrying out the Care Plan." ) - protected List goal; - /** - * The actual objects that are the target of the reference (Describes the intended objective(s) of carrying out the Care Plan.) - */ - protected List goalTarget; - - - /** - * Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc. - */ - @Child(name="activity", type={CareActivity.class}, order=8, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="CarePlan Activity", formalDefinition="Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc." ) - protected List activity; - /** - * The actual objects that are the target of the reference (Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) - */ - protected List activityTarget; - - - private static final long serialVersionUID = -1325874459L; - - public CarePlan2() { - super(); - } - - public CarePlan2(Enumeration status) { - super(); - this.status = status; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan2.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) - */ - public CarePlan2 setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan2.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) - */ - public CarePlan2 setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #status} (Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan2.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public CarePlan2 setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. - */ - public CarePlan2Status getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. - */ - public CarePlan2 setStatus(CarePlan2Status value) { - if (this.status == null) - this.status = new Enumeration(CarePlan2Status.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #period} (Indicates when the plan did (or is intended to) come into effect and end.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan2.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (Indicates when the plan did (or is intended to) come into effect and end.) - */ - public CarePlan2 setPeriod(Period value) { - this.period = value; - return this; - } - - /** - * @return {@link #modified} (Identifies the most recent date on which the plan has been revised.). This is the underlying object with id, value and extensions. The accessor "getModified" gives direct access to the value - */ - public DateTimeType getModifiedElement() { - if (this.modified == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan2.modified"); - else if (Configuration.doAutoCreate()) - this.modified = new DateTimeType(); - return this.modified; - } - - public boolean hasModifiedElement() { - return this.modified != null && !this.modified.isEmpty(); - } - - public boolean hasModified() { - return this.modified != null && !this.modified.isEmpty(); - } - - /** - * @param value {@link #modified} (Identifies the most recent date on which the plan has been revised.). This is the underlying object with id, value and extensions. The accessor "getModified" gives direct access to the value - */ - public CarePlan2 setModifiedElement(DateTimeType value) { - this.modified = value; - return this; - } - - /** - * @return Identifies the most recent date on which the plan has been revised. - */ - public Date getModified() { - return this.modified == null ? null : this.modified.getValue(); - } - - /** - * @param value Identifies the most recent date on which the plan has been revised. - */ - public CarePlan2 setModified(Date value) { - if (value == null) - this.modified = null; - else { - if (this.modified == null) - this.modified = new DateTimeType(); - this.modified.setValue(value); - } - return this; - } - - /** - * @return {@link #concern} (Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) - */ - public List getConcern() { - if (this.concern == null) - this.concern = new ArrayList(); - return this.concern; - } - - public boolean hasConcern() { - if (this.concern == null) - return false; - for (Reference item : this.concern) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #concern} (Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) - */ - // syntactic sugar - public Reference addConcern() { //3 - Reference t = new Reference(); - if (this.concern == null) - this.concern = new ArrayList(); - this.concern.add(t); - return t; - } - - /** - * @return {@link #concern} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) - */ - public List getConcernTarget() { - if (this.concernTarget == null) - this.concernTarget = new ArrayList(); - return this.concernTarget; - } - - // syntactic sugar - /** - * @return {@link #concern} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) - */ - public Condition addConcernTarget() { - Condition r = new Condition(); - if (this.concernTarget == null) - this.concernTarget = new ArrayList(); - this.concernTarget.add(r); - return r; - } - - /** - * @return {@link #participant} (Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.) - */ - public List getParticipant() { - if (this.participant == null) - this.participant = new ArrayList(); - return this.participant; - } - - public boolean hasParticipant() { - if (this.participant == null) - return false; - for (CarePlan2ParticipantComponent item : this.participant) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #participant} (Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.) - */ - // syntactic sugar - public CarePlan2ParticipantComponent addParticipant() { //3 - CarePlan2ParticipantComponent t = new CarePlan2ParticipantComponent(); - if (this.participant == null) - this.participant = new ArrayList(); - this.participant.add(t); - return t; - } - - /** - * @return {@link #notes} (General notes about the care plan not covered elsewhere.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public StringType getNotesElement() { - if (this.notes == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CarePlan2.notes"); - else if (Configuration.doAutoCreate()) - this.notes = new StringType(); - return this.notes; - } - - public boolean hasNotesElement() { - return this.notes != null && !this.notes.isEmpty(); - } - - public boolean hasNotes() { - return this.notes != null && !this.notes.isEmpty(); - } - - /** - * @param value {@link #notes} (General notes about the care plan not covered elsewhere.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public CarePlan2 setNotesElement(StringType value) { - this.notes = value; - return this; - } - - /** - * @return General notes about the care plan not covered elsewhere. - */ - public String getNotes() { - return this.notes == null ? null : this.notes.getValue(); - } - - /** - * @param value General notes about the care plan not covered elsewhere. - */ - public CarePlan2 setNotes(String value) { - if (Utilities.noString(value)) - this.notes = null; - else { - if (this.notes == null) - this.notes = new StringType(); - this.notes.setValue(value); - } - return this; - } - - /** - * @return {@link #goal} (Describes the intended objective(s) of carrying out the Care Plan.) - */ - public List getGoal() { - if (this.goal == null) - this.goal = new ArrayList(); - return this.goal; - } - - public boolean hasGoal() { - if (this.goal == null) - return false; - for (Reference item : this.goal) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #goal} (Describes the intended objective(s) of carrying out the Care Plan.) - */ - // syntactic sugar - public Reference addGoal() { //3 - Reference t = new Reference(); - if (this.goal == null) - this.goal = new ArrayList(); - this.goal.add(t); - return t; - } - - /** - * @return {@link #goal} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Describes the intended objective(s) of carrying out the Care Plan.) - */ - public List getGoalTarget() { - if (this.goalTarget == null) - this.goalTarget = new ArrayList(); - return this.goalTarget; - } - - // syntactic sugar - /** - * @return {@link #goal} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Describes the intended objective(s) of carrying out the Care Plan.) - */ - public Goal addGoalTarget() { - Goal r = new Goal(); - if (this.goalTarget == null) - this.goalTarget = new ArrayList(); - this.goalTarget.add(r); - return r; - } - - /** - * @return {@link #activity} (Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) - */ - public List getActivity() { - if (this.activity == null) - this.activity = new ArrayList(); - return this.activity; - } - - public boolean hasActivity() { - if (this.activity == null) - return false; - for (Reference item : this.activity) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #activity} (Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) - */ - // syntactic sugar - public Reference addActivity() { //3 - Reference t = new Reference(); - if (this.activity == null) - this.activity = new ArrayList(); - this.activity.add(t); - return t; - } - - /** - * @return {@link #activity} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) - */ - public List getActivityTarget() { - if (this.activityTarget == null) - this.activityTarget = new ArrayList(); - return this.activityTarget; - } - - // syntactic sugar - /** - * @return {@link #activity} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) - */ - public CareActivity addActivityTarget() { - CareActivity r = new CareActivity(); - if (this.activityTarget == null) - this.activityTarget = new ArrayList(); - this.activityTarget.add(r); - return r; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("patient", "Reference(Patient)", "Identifies the patient/subject whose intended care is described by the plan.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("status", "code", "Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("period", "Period", "Indicates when the plan did (or is intended to) come into effect and end.", 0, java.lang.Integer.MAX_VALUE, period)); - childrenList.add(new Property("modified", "dateTime", "Identifies the most recent date on which the plan has been revised.", 0, java.lang.Integer.MAX_VALUE, modified)); - childrenList.add(new Property("concern", "Reference(Condition)", "Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.", 0, java.lang.Integer.MAX_VALUE, concern)); - childrenList.add(new Property("participant", "", "Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.", 0, java.lang.Integer.MAX_VALUE, participant)); - childrenList.add(new Property("notes", "string", "General notes about the care plan not covered elsewhere.", 0, java.lang.Integer.MAX_VALUE, notes)); - childrenList.add(new Property("goal", "Reference(Goal)", "Describes the intended objective(s) of carrying out the Care Plan.", 0, java.lang.Integer.MAX_VALUE, goal)); - childrenList.add(new Property("activity", "Reference(CareActivity)", "Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.", 0, java.lang.Integer.MAX_VALUE, activity)); - } - - public CarePlan2 copy() { - CarePlan2 dst = new CarePlan2(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.patient = patient == null ? null : patient.copy(); - dst.status = status == null ? null : status.copy(); - dst.period = period == null ? null : period.copy(); - dst.modified = modified == null ? null : modified.copy(); - if (concern != null) { - dst.concern = new ArrayList(); - for (Reference i : concern) - dst.concern.add(i.copy()); - }; - if (participant != null) { - dst.participant = new ArrayList(); - for (CarePlan2ParticipantComponent i : participant) - dst.participant.add(i.copy()); - }; - dst.notes = notes == null ? null : notes.copy(); - if (goal != null) { - dst.goal = new ArrayList(); - for (Reference i : goal) - dst.goal.add(i.copy()); - }; - if (activity != null) { - dst.activity = new ArrayList(); - for (Reference i : activity) - dst.activity.add(i.copy()); - }; - return dst; - } - - protected CarePlan2 typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (patient == null || patient.isEmpty()) - && (status == null || status.isEmpty()) && (period == null || period.isEmpty()) && (modified == null || modified.isEmpty()) - && (concern == null || concern.isEmpty()) && (participant == null || participant.isEmpty()) - && (notes == null || notes.isEmpty()) && (goal == null || goal.isEmpty()) && (activity == null || activity.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.CarePlan2; - } - - @SearchParamDefinition(name="patient", path="CarePlan2.patient", description="Who care plan is for", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="condition", path="CarePlan2.concern", description="Health issues this plan addresses", type="reference" ) - public static final String SP_CONDITION = "condition"; - @SearchParamDefinition(name="participant", path="CarePlan2.participant.member", description="Who is involved", type="reference" ) - public static final String SP_PARTICIPANT = "participant"; - @SearchParamDefinition(name="date", path="CarePlan2.period", description="Time period plan covers", type="date" ) - public static final String SP_DATE = "date"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Describes the intention of how one or more practitioners intend to deliver care for a particular patient for a period of time, possibly limited to care for a specific condition or set of conditions. + */ +@ResourceDef(name="CarePlan2", profile="http://hl7.org/fhir/Profile/CarePlan2") +public class CarePlan2 extends DomainResource { + + public enum CarePlan2Status { + /** + * The plan is in development or awaiting use but is not yet intended to be acted upon. + */ + PLANNED, + /** + * The plan is intended to be followed and used as part of patient care. + */ + ACTIVE, + /** + * The plan is no longer in use and is not expected to be followed or used in patient care. + */ + COMPLETED, + /** + * added to help the parsers + */ + NULL; + public static CarePlan2Status fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("planned".equals(codeString)) + return PLANNED; + if ("active".equals(codeString)) + return ACTIVE; + if ("completed".equals(codeString)) + return COMPLETED; + throw new Exception("Unknown CarePlan2Status code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PLANNED: return "planned"; + case ACTIVE: return "active"; + case COMPLETED: return "completed"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PLANNED: return ""; + case ACTIVE: return ""; + case COMPLETED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PLANNED: return "The plan is in development or awaiting use but is not yet intended to be acted upon."; + case ACTIVE: return "The plan is intended to be followed and used as part of patient care."; + case COMPLETED: return "The plan is no longer in use and is not expected to be followed or used in patient care."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PLANNED: return "planned"; + case ACTIVE: return "active"; + case COMPLETED: return "completed"; + default: return "?"; + } + } + } + + public static class CarePlan2StatusEnumFactory implements EnumFactory { + public CarePlan2Status fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("planned".equals(codeString)) + return CarePlan2Status.PLANNED; + if ("active".equals(codeString)) + return CarePlan2Status.ACTIVE; + if ("completed".equals(codeString)) + return CarePlan2Status.COMPLETED; + throw new IllegalArgumentException("Unknown CarePlan2Status code '"+codeString+"'"); + } + public String toCode(CarePlan2Status code) { + if (code == CarePlan2Status.PLANNED) + return "planned"; + if (code == CarePlan2Status.ACTIVE) + return "active"; + if (code == CarePlan2Status.COMPLETED) + return "completed"; + return "?"; + } + } + + @Block() + public static class CarePlan2ParticipantComponent extends BackboneElement { + /** + * Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc. + */ + @Child(name="role", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Type of involvement", formalDefinition="Indicates specific responsibility of an individual within the care plan. E.g. 'Primary physician', 'Team coordinator', 'Caregiver', etc." ) + protected CodeableConcept role; + + /** + * The specific person or organization who is participating/expected to participate in the care plan. + */ + @Child(name="member", type={Practitioner.class, RelatedPerson.class, Patient.class, Organization.class}, order=2, min=1, max=1) + @Description(shortDefinition="Who is involved", formalDefinition="The specific person or organization who is participating/expected to participate in the care plan." ) + protected Reference member; + + /** + * The actual object that is the target of the reference (The specific person or organization who is participating/expected to participate in the care plan.) + */ + protected Resource memberTarget; + + private static final long serialVersionUID = -466811117L; + + public CarePlan2ParticipantComponent() { + super(); + } + + public CarePlan2ParticipantComponent(Reference member) { + super(); + this.member = member; + } + + /** + * @return {@link #role} (Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc.) + */ + public CodeableConcept getRole() { + if (this.role == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan2ParticipantComponent.role"); + else if (Configuration.doAutoCreate()) + this.role = new CodeableConcept(); // cc + return this.role; + } + + public boolean hasRole() { + return this.role != null && !this.role.isEmpty(); + } + + /** + * @param value {@link #role} (Indicates specific responsibility of an individual within the care plan. E.g. "Primary physician", "Team coordinator", "Caregiver", etc.) + */ + public CarePlan2ParticipantComponent setRole(CodeableConcept value) { + this.role = value; + return this; + } + + /** + * @return {@link #member} (The specific person or organization who is participating/expected to participate in the care plan.) + */ + public Reference getMember() { + if (this.member == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan2ParticipantComponent.member"); + else if (Configuration.doAutoCreate()) + this.member = new Reference(); // cc + return this.member; + } + + public boolean hasMember() { + return this.member != null && !this.member.isEmpty(); + } + + /** + * @param value {@link #member} (The specific person or organization who is participating/expected to participate in the care plan.) + */ + public CarePlan2ParticipantComponent setMember(Reference value) { + this.member = value; + return this; + } + + /** + * @return {@link #member} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The specific person or organization who is participating/expected to participate in the care plan.) + */ + public Resource getMemberTarget() { + return this.memberTarget; + } + + /** + * @param value {@link #member} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The specific person or organization who is participating/expected to participate in the care plan.) + */ + public CarePlan2ParticipantComponent setMemberTarget(Resource value) { + this.memberTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("role", "CodeableConcept", "Indicates specific responsibility of an individual within the care plan. E.g. 'Primary physician', 'Team coordinator', 'Caregiver', etc.", 0, java.lang.Integer.MAX_VALUE, role)); + childrenList.add(new Property("member", "Reference(Practitioner|RelatedPerson|Patient|Organization)", "The specific person or organization who is participating/expected to participate in the care plan.", 0, java.lang.Integer.MAX_VALUE, member)); + } + + public CarePlan2ParticipantComponent copy() { + CarePlan2ParticipantComponent dst = new CarePlan2ParticipantComponent(); + copyValues(dst); + dst.role = role == null ? null : role.copy(); + dst.member = member == null ? null : member.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CarePlan2ParticipantComponent)) + return false; + CarePlan2ParticipantComponent o = (CarePlan2ParticipantComponent) other; + return compareDeep(role, o.role, true) && compareDeep(member, o.member, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CarePlan2ParticipantComponent)) + return false; + CarePlan2ParticipantComponent o = (CarePlan2ParticipantComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (role == null || role.isEmpty()) && (member == null || member.isEmpty()) + ; + } + + } + + /** + * This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="External Ids for this plan", formalDefinition="This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) + protected List identifier; + + /** + * Identifies the patient/subject whose intended care is described by the plan. + */ + @Child(name="patient", type={Patient.class}, order=0, min=0, max=1) + @Description(shortDefinition="Who care plan is for", formalDefinition="Identifies the patient/subject whose intended care is described by the plan." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (Identifies the patient/subject whose intended care is described by the plan.) + */ + protected Patient patientTarget; + + /** + * Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. + */ + @Child(name="status", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="planned | active | completed", formalDefinition="Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record." ) + protected Enumeration status; + + /** + * Indicates when the plan did (or is intended to) come into effect and end. + */ + @Child(name="period", type={Period.class}, order=2, min=0, max=1) + @Description(shortDefinition="Time period plan covers", formalDefinition="Indicates when the plan did (or is intended to) come into effect and end." ) + protected Period period; + + /** + * Identifies the most recent date on which the plan has been revised. + */ + @Child(name="modified", type={DateTimeType.class}, order=3, min=0, max=1) + @Description(shortDefinition="When last updated", formalDefinition="Identifies the most recent date on which the plan has been revised." ) + protected DateTimeType modified; + + /** + * Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan. + */ + @Child(name="concern", type={Condition.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Health issues this plan addresses", formalDefinition="Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan." ) + protected List concern; + /** + * The actual objects that are the target of the reference (Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) + */ + protected List concernTarget; + + + /** + * Identifies all people and organizations who are expected to be involved in the care envisioned by this plan. + */ + @Child(name="participant", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Who's involved in plan?", formalDefinition="Identifies all people and organizations who are expected to be involved in the care envisioned by this plan." ) + protected List participant; + + /** + * General notes about the care plan not covered elsewhere. + */ + @Child(name="notes", type={StringType.class}, order=6, min=0, max=1) + @Description(shortDefinition="Comments about the plan", formalDefinition="General notes about the care plan not covered elsewhere." ) + protected StringType notes; + + /** + * Describes the intended objective(s) of carrying out the Care Plan. + */ + @Child(name="goal", type={Goal.class}, order=7, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="CarePlan Goal", formalDefinition="Describes the intended objective(s) of carrying out the Care Plan." ) + protected List goal; + /** + * The actual objects that are the target of the reference (Describes the intended objective(s) of carrying out the Care Plan.) + */ + protected List goalTarget; + + + /** + * Identifies an action that is planned to happen as part of the careplan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc. + */ + @Child(name="activity", type={ProcedureRequest.class, MedicationPrescription.class, DiagnosticOrder.class, ReferralRequest.class, CommunicationRequest.class, NutritionOrder.class}, order=8, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="CarePlan Activity", formalDefinition="Identifies an action that is planned to happen as part of the careplan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc." ) + protected List activity; + /** + * The actual objects that are the target of the reference (Identifies an action that is planned to happen as part of the careplan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) + */ + protected List activityTarget; + + + private static final long serialVersionUID = 2070266071L; + + public CarePlan2() { + super(); + } + + public CarePlan2(Enumeration status) { + super(); + this.status = status; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan2.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) + */ + public CarePlan2 setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan2.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) + */ + public CarePlan2 setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #status} (Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan2.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new CarePlan2StatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public CarePlan2 setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. + */ + public CarePlan2Status getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record. + */ + public CarePlan2 setStatus(CarePlan2Status value) { + if (this.status == null) + this.status = new Enumeration(new CarePlan2StatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #period} (Indicates when the plan did (or is intended to) come into effect and end.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan2.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (Indicates when the plan did (or is intended to) come into effect and end.) + */ + public CarePlan2 setPeriod(Period value) { + this.period = value; + return this; + } + + /** + * @return {@link #modified} (Identifies the most recent date on which the plan has been revised.). This is the underlying object with id, value and extensions. The accessor "getModified" gives direct access to the value + */ + public DateTimeType getModifiedElement() { + if (this.modified == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan2.modified"); + else if (Configuration.doAutoCreate()) + this.modified = new DateTimeType(); // bb + return this.modified; + } + + public boolean hasModifiedElement() { + return this.modified != null && !this.modified.isEmpty(); + } + + public boolean hasModified() { + return this.modified != null && !this.modified.isEmpty(); + } + + /** + * @param value {@link #modified} (Identifies the most recent date on which the plan has been revised.). This is the underlying object with id, value and extensions. The accessor "getModified" gives direct access to the value + */ + public CarePlan2 setModifiedElement(DateTimeType value) { + this.modified = value; + return this; + } + + /** + * @return Identifies the most recent date on which the plan has been revised. + */ + public Date getModified() { + return this.modified == null ? null : this.modified.getValue(); + } + + /** + * @param value Identifies the most recent date on which the plan has been revised. + */ + public CarePlan2 setModified(Date value) { + if (value == null) + this.modified = null; + else { + if (this.modified == null) + this.modified = new DateTimeType(); + this.modified.setValue(value); + } + return this; + } + + /** + * @return {@link #concern} (Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) + */ + public List getConcern() { + if (this.concern == null) + this.concern = new ArrayList(); + return this.concern; + } + + public boolean hasConcern() { + if (this.concern == null) + return false; + for (Reference item : this.concern) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #concern} (Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) + */ + // syntactic sugar + public Reference addConcern() { //3 + Reference t = new Reference(); + if (this.concern == null) + this.concern = new ArrayList(); + this.concern.add(t); + return t; + } + + /** + * @return {@link #concern} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) + */ + public List getConcernTarget() { + if (this.concernTarget == null) + this.concernTarget = new ArrayList(); + return this.concernTarget; + } + + // syntactic sugar + /** + * @return {@link #concern} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.) + */ + public Condition addConcernTarget() { + Condition r = new Condition(); + if (this.concernTarget == null) + this.concernTarget = new ArrayList(); + this.concernTarget.add(r); + return r; + } + + /** + * @return {@link #participant} (Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.) + */ + public List getParticipant() { + if (this.participant == null) + this.participant = new ArrayList(); + return this.participant; + } + + public boolean hasParticipant() { + if (this.participant == null) + return false; + for (CarePlan2ParticipantComponent item : this.participant) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #participant} (Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.) + */ + // syntactic sugar + public CarePlan2ParticipantComponent addParticipant() { //3 + CarePlan2ParticipantComponent t = new CarePlan2ParticipantComponent(); + if (this.participant == null) + this.participant = new ArrayList(); + this.participant.add(t); + return t; + } + + /** + * @return {@link #notes} (General notes about the care plan not covered elsewhere.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value + */ + public StringType getNotesElement() { + if (this.notes == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CarePlan2.notes"); + else if (Configuration.doAutoCreate()) + this.notes = new StringType(); // bb + return this.notes; + } + + public boolean hasNotesElement() { + return this.notes != null && !this.notes.isEmpty(); + } + + public boolean hasNotes() { + return this.notes != null && !this.notes.isEmpty(); + } + + /** + * @param value {@link #notes} (General notes about the care plan not covered elsewhere.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value + */ + public CarePlan2 setNotesElement(StringType value) { + this.notes = value; + return this; + } + + /** + * @return General notes about the care plan not covered elsewhere. + */ + public String getNotes() { + return this.notes == null ? null : this.notes.getValue(); + } + + /** + * @param value General notes about the care plan not covered elsewhere. + */ + public CarePlan2 setNotes(String value) { + if (Utilities.noString(value)) + this.notes = null; + else { + if (this.notes == null) + this.notes = new StringType(); + this.notes.setValue(value); + } + return this; + } + + /** + * @return {@link #goal} (Describes the intended objective(s) of carrying out the Care Plan.) + */ + public List getGoal() { + if (this.goal == null) + this.goal = new ArrayList(); + return this.goal; + } + + public boolean hasGoal() { + if (this.goal == null) + return false; + for (Reference item : this.goal) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #goal} (Describes the intended objective(s) of carrying out the Care Plan.) + */ + // syntactic sugar + public Reference addGoal() { //3 + Reference t = new Reference(); + if (this.goal == null) + this.goal = new ArrayList(); + this.goal.add(t); + return t; + } + + /** + * @return {@link #goal} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Describes the intended objective(s) of carrying out the Care Plan.) + */ + public List getGoalTarget() { + if (this.goalTarget == null) + this.goalTarget = new ArrayList(); + return this.goalTarget; + } + + // syntactic sugar + /** + * @return {@link #goal} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Describes the intended objective(s) of carrying out the Care Plan.) + */ + public Goal addGoalTarget() { + Goal r = new Goal(); + if (this.goalTarget == null) + this.goalTarget = new ArrayList(); + this.goalTarget.add(r); + return r; + } + + /** + * @return {@link #activity} (Identifies an action that is planned to happen as part of the careplan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) + */ + public List getActivity() { + if (this.activity == null) + this.activity = new ArrayList(); + return this.activity; + } + + public boolean hasActivity() { + if (this.activity == null) + return false; + for (Reference item : this.activity) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #activity} (Identifies an action that is planned to happen as part of the careplan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) + */ + // syntactic sugar + public Reference addActivity() { //3 + Reference t = new Reference(); + if (this.activity == null) + this.activity = new ArrayList(); + this.activity.add(t); + return t; + } + + /** + * @return {@link #activity} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies an action that is planned to happen as part of the careplan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.) + */ + public List getActivityTarget() { + if (this.activityTarget == null) + this.activityTarget = new ArrayList(); + return this.activityTarget; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("patient", "Reference(Patient)", "Identifies the patient/subject whose intended care is described by the plan.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("status", "code", "Indicates whether the plan is currently being acted upon, represents future intentions or is now just historical record.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("period", "Period", "Indicates when the plan did (or is intended to) come into effect and end.", 0, java.lang.Integer.MAX_VALUE, period)); + childrenList.add(new Property("modified", "dateTime", "Identifies the most recent date on which the plan has been revised.", 0, java.lang.Integer.MAX_VALUE, modified)); + childrenList.add(new Property("concern", "Reference(Condition)", "Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan.", 0, java.lang.Integer.MAX_VALUE, concern)); + childrenList.add(new Property("participant", "", "Identifies all people and organizations who are expected to be involved in the care envisioned by this plan.", 0, java.lang.Integer.MAX_VALUE, participant)); + childrenList.add(new Property("notes", "string", "General notes about the care plan not covered elsewhere.", 0, java.lang.Integer.MAX_VALUE, notes)); + childrenList.add(new Property("goal", "Reference(Goal)", "Describes the intended objective(s) of carrying out the Care Plan.", 0, java.lang.Integer.MAX_VALUE, goal)); + childrenList.add(new Property("activity", "Reference(ProcedureRequest|MedicationPrescription|DiagnosticOrder|ReferralRequest|CommunicationRequest|NutritionOrder)", "Identifies an action that is planned to happen as part of the careplan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc.", 0, java.lang.Integer.MAX_VALUE, activity)); + } + + public CarePlan2 copy() { + CarePlan2 dst = new CarePlan2(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.patient = patient == null ? null : patient.copy(); + dst.status = status == null ? null : status.copy(); + dst.period = period == null ? null : period.copy(); + dst.modified = modified == null ? null : modified.copy(); + if (concern != null) { + dst.concern = new ArrayList(); + for (Reference i : concern) + dst.concern.add(i.copy()); + }; + if (participant != null) { + dst.participant = new ArrayList(); + for (CarePlan2ParticipantComponent i : participant) + dst.participant.add(i.copy()); + }; + dst.notes = notes == null ? null : notes.copy(); + if (goal != null) { + dst.goal = new ArrayList(); + for (Reference i : goal) + dst.goal.add(i.copy()); + }; + if (activity != null) { + dst.activity = new ArrayList(); + for (Reference i : activity) + dst.activity.add(i.copy()); + }; + return dst; + } + + protected CarePlan2 typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CarePlan2)) + return false; + CarePlan2 o = (CarePlan2) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(patient, o.patient, true) && compareDeep(status, o.status, true) + && compareDeep(period, o.period, true) && compareDeep(modified, o.modified, true) && compareDeep(concern, o.concern, true) + && compareDeep(participant, o.participant, true) && compareDeep(notes, o.notes, true) && compareDeep(goal, o.goal, true) + && compareDeep(activity, o.activity, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CarePlan2)) + return false; + CarePlan2 o = (CarePlan2) other; + return compareValues(status, o.status, true) && compareValues(modified, o.modified, true) && compareValues(notes, o.notes, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (patient == null || patient.isEmpty()) + && (status == null || status.isEmpty()) && (period == null || period.isEmpty()) && (modified == null || modified.isEmpty()) + && (concern == null || concern.isEmpty()) && (participant == null || participant.isEmpty()) + && (notes == null || notes.isEmpty()) && (goal == null || goal.isEmpty()) && (activity == null || activity.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.CarePlan2; + } + + @SearchParamDefinition(name="patient", path="CarePlan2.patient", description="Who care plan is for", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="condition", path="CarePlan2.concern", description="Health issues this plan addresses", type="reference" ) + public static final String SP_CONDITION = "condition"; + @SearchParamDefinition(name="participant", path="CarePlan2.participant.member", description="Who is involved", type="reference" ) + public static final String SP_PARTICIPANT = "participant"; + @SearchParamDefinition(name="date", path="CarePlan2.period", description="Time period plan covers", type="date" ) + public static final String SP_DATE = "date"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$1.class new file mode 100644 index 0000000000000000000000000000000000000000..55766bcca30de8c93656d260e1d9f451e3d4eaff GIT binary patch literal 800 zcmbVKO>fgc5Pj=7aS~i=LZN9vP{4!)B+Q2pha!X&xuPOzD!YP1Pa9`Rw%x2N+bKVZ zGaw;^P=5eF3NdS`pxz3S*E4T+=gq#I`T6Vn34o`#-^3MMZNR~5gS@tZYYx^8xaQ!x zgPRPSe*8fe$!y4v{4|^TGxgkmKa-g+bzX3t2!EbVg!21}%XuX7qg3a@kK%#UhYZ&K zHbebIqNJ9^ONL6f_m;u#QwqZ}oe?{W`B-Foe5@$46c;=>q*5iOt1vX7HXPh?aRwJQq2G_qW1md?1p7p?7Xd zhDYZ<`{#{or;lAb=4xT?@T}Y0AN(uPCN-)*8tx9ly^!I_|KvMqHj$dEvd`4`Y8XYM z$lIU^tJB0WuWkBaJi-^?l3gM+Muj|}`wi^mNAnA;&*rOqg>8>M!hTc28o_D_KfxlN z6|AC)Hnq7!*1|<%sFgggu}r=T`<(+1L-V5wmndeTh0A1Z$_8%GYEjHF$g9)Tui*Bp Fwcn%E#$o^f literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$AddedItemAdjudicationComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$AddedItemAdjudicationComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..efe5ea51b75560fe7ac56af8530cbab3476b58c8 GIT binary patch literal 5762 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 LH{)Bl2etnP@8;vo literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$AddedItemsDetailComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$AddedItemsDetailComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..075ab6254c95baf27a8ec0f84e9781affb95b82f GIT binary patch literal 5568 zcmcIn`F9i775+w+{bX4NA%fWoh+Wti(F6j-gxDC97%xyvOo5Ovmd5rNSyE<35SO;J zX=$4-bV)bUbYJK~+oTOP#BG-L95|;x^*`w8IsGeAPTcR#jFG$`JDk%4elv65yZ3(I zefQq?^p6kTdKmhtY z;hSO9im=ubeoNuiFqYs-4Ze-<)Zn}Lo($htxE4kouFBxf{XpEkrtrfM9uMJ1Asni> zJUKZT#%laHgticV62g%XIzsqq2q#4RGlidr>6gwD_=UjurMUf-n7l65ek~Kfk>R)U z`8ye|3J!Wr;D*BQH7MJ#E|@7p!=}!hHIN+4>`C?ynpV=x+K!%08Oh;X+Q=kZb7?a> z(4=AI@j})yhmBs-Hv2M0OE#NxbjQqPZ4Jq?CiLRcWb2@rNz+;|s}Iw6&>6||QJJ&S zhE>7vYZ@ws&8&?2OB!}B*zh64PFZGN0MYzndoX7?hm3wRYl=uitjFUU&sp(fRxVvg zIU1tpJ zr5#VZIOEe> z!XGHq)9F&7hU4?Z_94oSrxt5H!#3eIaLdSQSelp_2+8QCnbPu+VAIPRmNUY_c1tRi z%a3Sy`r#PNN;n>rJgs>)vmlHY3wnktjJ#xD*?c~z+eVXAQLU%cGpJ`Wxr;nBO}lM4 z?+{^f9)t&3pndF-Z5d;jjgqOqbsml4%5YDvV5N-1ru357wB6bvsrO;d+k=^0>U>iK zr*S5N$FWD@j}g3%6!XT-;*6dhNVZv4&eE{A#bG1OJ975v1t-^-vJ5%?9@ss0_y>)c zeC)hH@@vWI4077;au2 zEZvd3+E&g4&)R--punZ>tz?NIxp*|&!u)G>(@(=Pzoodj+T&PqAC+biN#{zJEh_q! zUDgody}*Z1$KoqaPeEfNBf41lvHnd4yES_ZwKtiGf?|> zq^F#ngN=u+l;3Pgd;0=<7NgSf@b-%laxaAL1w|UNdk^C6Zs&Y$b9&Dc{hAc-in?WZ zefOF946yIc&+@c{ansCmrm19uUHDvv_58iFo7d|g|FQe=n!T4_I}yM>RN@Jn!lpCO zQk>e~jwf+IhNom`=9(582hnQd5VhH@W^1?k+J{B^Y0-XWns&QrAE7pT5$$!+cL2v+ z42?w$9byGy;$!zs9G?QvBPLE@6`n;e0i1MAd>k>pv!`=>j*|6!vP+<{ejM5xd|{e# z4ATdy{)=GMJxWgFd5*HYo^sA0EX(T~ZX!_BSp@zbshUJk0o6*(zJPPSUW#+#rm_A_ z1ny$fEmVx6b^^guvC45&y>km{6pQL75IQxEYMPaGuTvr5!dZnXKq>wYp;lF6xe8;A zszE|UpmS9af#p#;=tIhP_ynKgaJd+|gC+79L--n0@H&DOH}0FRl4UCDnyEx!S+nS+ z(a%u`Z}bT(mu$U2Dv6Lg#U(Q9BFao>wOwLZ2X zw$YoanK88~wmG)Nn~IKOtEW{gPY>F0ZetJP>I9k;`-1BAH{k-A^VIhFe?b00^1n2J z1o?04tZx`YeS_e+3#DCW{k!!f4M3z!^eHKGZ@ZV((L2~rKBYO~Ze!PWe;e2G#oNa2 z2JUg=7#cm$*C+o~64Nb=5Y#Eg^fXK23^uCguuq*uvw9vK>IDp{a~M&5Zj9Tc0j)$p zQGyX@946U2roO%BC%WepU%H32OosPa^P1dh{8+rgSV%&4$Oi3Tu2tMm^A`xmB9Mw9I%4L9_M+n=*6ZNhh7Twa)Dkhx?b2m!^}>(T>I9g zn@RgT$Ugt*DE14-JE)ZhyXYv~P4@)SY(@!#9PePUJZ|GLsnWSS?Iph!Dpy2f70p_- zg=zO0-|HIRYi0cyb`@K#+oG%f?JoW7f|fEeFB5$LpM#v*V&L<99_3$*(mJB+W>zKm HG*JCN-PWUI literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$DetailAdjudicationComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$DetailAdjudicationComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..e4ab63da632db3009c4679e8822587500ac93e84 GIT binary patch literal 5732 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

q;j1RFmi-ltn-{ET^@ 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$ItemAdjudicationComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$ItemAdjudicationComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..fded68c253eb6b3a63f36ce90e34f47d78298075 GIT binary patch literal 5712 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$ItemDetailComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$ItemDetailComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..4df54c4e6555e90fcc93add1eb042c2fe5c9da20 GIT binary patch literal 6425 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 TLeN?5IOX*f`*4;c`qX~`6_FBB literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$RSLinkEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse$RSLinkEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..7e5acfa673be9ced89f58d2f4423f056d50c69b4 GIT binary patch literal 1700 zcmb7ET~iZD6g>?|W-<-}vmkzphzlXBadFp=4Wh^fMZ>a{s8#wlgfal^oG7KV`5V#dHN1Gf#_5lGE=%8O__i-4mbhQV})j-A`u$&{Cuz6%VeH5EGx`qA^jNH@CJ;oOlsG<*R zv^|{0Ixb=Z8Tgn+4cDM>jvfY*eYUV|jM7LDs>zSTNvSJaWH=3XBugm&Amt=lTp4Wf9>w{Nu_eF@#tUJg!S_94yPEABtk_Bq%rWeR?Xc&!!=|UQA2GNIM+fR^8r@G} voNgM0Zk|Swnqs{_?D6fu-pe92q#rTS)|2E0aJVywn>c;v1VP=zEYe>A_z*oh4kgV{=&u{4$kq!}?98Qdl% zZC2W(ZMw#EOIOl_rdhxS+@|Si3qAdz>pAUT(sTMlPu=g%jId-InQ(HzZ)Wa$clqwS z_j}L&)Bmo$3*a71g>g5Yszn2y4&xa-8^m)VJRgRNbMpPgAifkv2v5oIf-HM6gf9p2 zl`!f>SnmnH8p2CKd@YQa2xE9bhOYegdV9RfYTYMRQhKV8bTrqF zp3!GpbhI-?vo%`QVqO(&sED-RGWD@`Nl-ur5Ftf|qY*;ULX#^IP@aUa@>bFy(p3Dk z;f%zc5uG?wI?+^*YMBBP-&E0Sx1KbJ`2hFG^kvVjZK5BGTA7m ztj{p@J%#L$ZXb}nQLwqOB7VR2#Y8ZzJD!z>#>z?al^ETCqa{!FYdPOpa74>{CK%OG zn#>nXt{W%}rF2I#GNnb@Wo2{Rb}5cXuW9ObSB5*Pv)yvH7j|WA8O_M<*Yk9d*Ed!U zfDKhk{2hL&ZdxD%Ua?Y#fQve{1Y3N!Du?f>FOcN-7yV*J@7Bm}udo!fEP$c3^jSGX zQm!8=N`z}>8!uD_SZezNg&8WsRIrNpPH3ZABC9zgiB2Q!J8kD_qaaiaS;0`_{Odl@ zz#*V64zR!YVWDToJ8;hjz!RkE(JU8%&T|qC|F;~n@da)^q`jodS`yzlaaeu$xR78L~s&s zC|EXMCr4o7ml5P}idVQw_KMBHW6?XCB)xA2@m2(H;~m}wTwE;2ly}?*aY;c>C5vT6 zw7}UB!DUQD;NY+fnhe7cd-G+v(31{(@PSfoUs{;ktKI2qcZqhlXzwo5eo(X@qBbdMu6B>F-7DG;&((fJwEM6I{n$h8y^K77eOS(S z@;k=^l&t4d;j_AV63SbAQE-rBm`kDdKvl)@ehhMy<;|3H24Pv=+;SO#8J$JouP$mI zb^1}OipxVd?CT{tCvIAsFClOP8?T^h9Q9LBkHo4cQS+NC2##Y>^AtiyCQ(bXvhGbP z1l(}epoXRoAgCThy*h}M>LILE52H~%f+Jj|BCs+_2S>r(a0A`Wr#M_GhOT3YJSGr6 zPZJlQR$aVlx<;0%$6Yhk2rSMENSBl$jS=b6%ZL(bbT-nbiS!vFeU?a{Bhu%I^jsOz^t?!;9@6Lp zmfZ^Ji{(g1?$pjp<#r65m@i||IT?GI85`%)lgRiA?R-j6u8>UJKv21WdU>6|^7pV} zCN*A7zT)}~B2d>GM3#ysEZ@*$Y$s{Mrj{ElAceWTfOVcxX`<4Ew@hH=AvdpR zuOgzphNbH3Sf^gZX7vppXH{fLh#kd?2YpBnoJFnc?ND>eBv!RdVfB&Nn%IY8AFhh6 zrPIJ9)?LL%0yyMN#bfJZcX?BFv!*u0HpVu2Q_-7KGYqnVqzd(I=ItHC)k|nsFJn-h zfXyHR$P+y85Pk~&Nr|N3lT&D5eQoY*Cep?hiO0)qSY9X4L^2U6dr|T&Qnp7k8&9PE zE{K%7Kt7AM%xr_lI#&@=udza>utEJ5?o)q_z3RJess>Oq&A;9Sf*9q0C>*9qRK;)a zd3w*h;xqG$$B2%1Cm-WEZnOM3=n+Z$mh-5ty4dntGy@J+pY!Ynz ztn)tID&uF=`@msL{zg&MIRIiFgt9B{T4%XG@e4lH5pViG1 s_^8x^NB3S!wz*5s-qunk=}D>w@Ok&rAO^m`???F)=6eIakK?HQKV#_8WdHyG literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClaimResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..5d0083f6ef405634d95e9f6f35e8503b61e42318 GIT binary patch literal 28439 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 { - public RSLink fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("complete".equals(codeString)) - return RSLink.COMPLETE; - if ("error".equals(codeString)) - return RSLink.ERROR; - throw new IllegalArgumentException("Unknown RSLink code '"+codeString+"'"); - } - public String toCode(RSLink code) throws IllegalArgumentException { - if (code == RSLink.COMPLETE) - return "complete"; - if (code == RSLink.ERROR) - return "error"; - return "?"; - } - } - - @Block() - public static class ItemsComponent extends BackboneElement { - /** - * A service line number. - */ - @Child(name="sequenceLinkId", type={IntegerType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Service instance", formalDefinition="A service line number." ) - protected IntegerType sequenceLinkId; - - /** - * A list of note references to the notes provided below. - */ - @Child(name="noteNumber", type={IntegerType.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="List of note numbers which apply", formalDefinition="A list of note references to the notes provided below." ) - protected List noteNumber; - - /** - * The adjudications results. - */ - @Child(name="adjudication", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Adjudication details", formalDefinition="The adjudications results." ) - protected List adjudication; - - /** - * The second tier service adjudications for submitted services. - */ - @Child(name="detail", type={}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Detail line items", formalDefinition="The second tier service adjudications for submitted services." ) - protected List detail; - - private static final long serialVersionUID = -1140851161L; - - public ItemsComponent() { - super(); - } - - public ItemsComponent(IntegerType sequenceLinkId) { - super(); - this.sequenceLinkId = sequenceLinkId; - } - - /** - * @return {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value - */ - public IntegerType getSequenceLinkIdElement() { - if (this.sequenceLinkId == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.sequenceLinkId"); - else if (Configuration.doAutoCreate()) - this.sequenceLinkId = new IntegerType(); - return this.sequenceLinkId; - } - - public boolean hasSequenceLinkIdElement() { - return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); - } - - public boolean hasSequenceLinkId() { - return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); - } - - /** - * @param value {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value - */ - public ItemsComponent setSequenceLinkIdElement(IntegerType value) { - this.sequenceLinkId = value; - return this; - } - - /** - * @return A service line number. - */ - public int getSequenceLinkId() { - return this.sequenceLinkId == null ? null : this.sequenceLinkId.getValue(); - } - - /** - * @param value A service line number. - */ - public ItemsComponent setSequenceLinkId(int value) { - if (this.sequenceLinkId == null) - this.sequenceLinkId = new IntegerType(); - this.sequenceLinkId.setValue(value); - return this; - } - - /** - * @return {@link #noteNumber} (A list of note references to the notes provided below.) - */ - public List getNoteNumber() { - if (this.noteNumber == null) - this.noteNumber = new ArrayList(); - return this.noteNumber; - } - - public boolean hasNoteNumber() { - if (this.noteNumber == null) - return false; - for (IntegerType item : this.noteNumber) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #noteNumber} (A list of note references to the notes provided below.) - */ - // syntactic sugar - public IntegerType addNoteNumberElement() {//2 - IntegerType t = new IntegerType(); - if (this.noteNumber == null) - this.noteNumber = new ArrayList(); - this.noteNumber.add(t); - return t; - } - - /** - * @param value {@link #noteNumber} (A list of note references to the notes provided below.) - */ - public ItemsComponent addNoteNumber(int value) { //1 - IntegerType t = new IntegerType(); - t.setValue(value); - if (this.noteNumber == null) - this.noteNumber = new ArrayList(); - this.noteNumber.add(t); - return this; - } - - /** - * @param value {@link #noteNumber} (A list of note references to the notes provided below.) - */ - public boolean hasNoteNumber(int value) { - if (this.noteNumber == null) - return false; - for (IntegerType v : this.noteNumber) - if (v.equals(value)) // integer - return true; - return false; - } - - /** - * @return {@link #adjudication} (The adjudications results.) - */ - public List getAdjudication() { - if (this.adjudication == null) - this.adjudication = new ArrayList(); - return this.adjudication; - } - - public boolean hasAdjudication() { - if (this.adjudication == null) - return false; - for (ItemAdjudicationComponent item : this.adjudication) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #adjudication} (The adjudications results.) - */ - // syntactic sugar - public ItemAdjudicationComponent addAdjudication() { //3 - ItemAdjudicationComponent t = new ItemAdjudicationComponent(); - if (this.adjudication == null) - this.adjudication = new ArrayList(); - this.adjudication.add(t); - return t; - } - - /** - * @return {@link #detail} (The second tier service adjudications for submitted services.) - */ - public List getDetail() { - if (this.detail == null) - this.detail = new ArrayList(); - return this.detail; - } - - public boolean hasDetail() { - if (this.detail == null) - return false; - for (ItemDetailComponent item : this.detail) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #detail} (The second tier service adjudications for submitted services.) - */ - // syntactic sugar - public ItemDetailComponent addDetail() { //3 - ItemDetailComponent t = new ItemDetailComponent(); - if (this.detail == null) - this.detail = new ArrayList(); - this.detail.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("sequenceLinkId", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequenceLinkId)); - childrenList.add(new Property("noteNumber", "integer", "A list of note references to the notes provided below.", 0, java.lang.Integer.MAX_VALUE, noteNumber)); - childrenList.add(new Property("adjudication", "", "The adjudications results.", 0, java.lang.Integer.MAX_VALUE, adjudication)); - childrenList.add(new Property("detail", "", "The second tier service adjudications for submitted services.", 0, java.lang.Integer.MAX_VALUE, detail)); - } - - public ItemsComponent copy() { - ItemsComponent dst = new ItemsComponent(); - copyValues(dst); - dst.sequenceLinkId = sequenceLinkId == null ? null : sequenceLinkId.copy(); - if (noteNumber != null) { - dst.noteNumber = new ArrayList(); - for (IntegerType i : noteNumber) - dst.noteNumber.add(i.copy()); - }; - if (adjudication != null) { - dst.adjudication = new ArrayList(); - for (ItemAdjudicationComponent i : adjudication) - dst.adjudication.add(i.copy()); - }; - if (detail != null) { - dst.detail = new ArrayList(); - for (ItemDetailComponent i : detail) - dst.detail.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (sequenceLinkId == null || sequenceLinkId.isEmpty()) && (noteNumber == null || noteNumber.isEmpty()) - && (adjudication == null || adjudication.isEmpty()) && (detail == null || detail.isEmpty()) - ; - } - - } - - @Block() - public static class ItemAdjudicationComponent extends BackboneElement { - /** - * Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. - */ - @Child(name="code", type={Coding.class}, order=1, min=1, max=1) - @Description(shortDefinition="Adjudication category such as co-pay, eligible, benefit, etc.", formalDefinition="Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc." ) - protected Coding code; - - /** - * Monitory amount associated with the code. - */ - @Child(name="amount", type={Money.class}, order=2, min=0, max=1) - @Description(shortDefinition="Monitary amount", formalDefinition="Monitory amount associated with the code." ) - protected Money amount; - - /** - * A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - @Child(name="value", type={DecimalType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Non-monitory value", formalDefinition="A non-monitary value for example a percentage. Mutually exclusive to the amount element above." ) - protected DecimalType value; - - private static final long serialVersionUID = -949880587L; - - public ItemAdjudicationComponent() { - super(); - } - - public ItemAdjudicationComponent(Coding code) { - super(); - this.code = code; - } - - /** - * @return {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) - */ - public Coding getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemAdjudicationComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new Coding(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) - */ - public ItemAdjudicationComponent setCode(Coding value) { - this.code = value; - return this; - } - - /** - * @return {@link #amount} (Monitory amount associated with the code.) - */ - public Money getAmount() { - if (this.amount == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemAdjudicationComponent.amount"); - else if (Configuration.doAutoCreate()) - this.amount = new Money(); - return this.amount; - } - - public boolean hasAmount() { - return this.amount != null && !this.amount.isEmpty(); - } - - /** - * @param value {@link #amount} (Monitory amount associated with the code.) - */ - public ItemAdjudicationComponent setAmount(Money value) { - this.amount = value; - return this; - } - - /** - * @return {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public DecimalType getValueElement() { - if (this.value == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemAdjudicationComponent.value"); - else if (Configuration.doAutoCreate()) - this.value = new DecimalType(); - return this.value; - } - - public boolean hasValueElement() { - return this.value != null && !this.value.isEmpty(); - } - - public boolean hasValue() { - return this.value != null && !this.value.isEmpty(); - } - - /** - * @param value {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public ItemAdjudicationComponent setValueElement(DecimalType value) { - this.value = value; - return this; - } - - /** - * @return A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - public BigDecimal getValue() { - return this.value == null ? null : this.value.getValue(); - } - - /** - * @param value A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - public ItemAdjudicationComponent setValue(BigDecimal value) { - if (value == null) - this.value = null; - else { - if (this.value == null) - this.value = new DecimalType(); - this.value.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "Coding", "Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("amount", "Money", "Monitory amount associated with the code.", 0, java.lang.Integer.MAX_VALUE, amount)); - childrenList.add(new Property("value", "decimal", "A non-monitary value for example a percentage. Mutually exclusive to the amount element above.", 0, java.lang.Integer.MAX_VALUE, value)); - } - - public ItemAdjudicationComponent copy() { - ItemAdjudicationComponent dst = new ItemAdjudicationComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.amount = amount == null ? null : amount.copy(); - dst.value = value == null ? null : value.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (amount == null || amount.isEmpty()) - && (value == null || value.isEmpty()); - } - - } - - @Block() - public static class ItemDetailComponent extends BackboneElement { - /** - * A service line number. - */ - @Child(name="sequenceLinkId", type={IntegerType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Service instance", formalDefinition="A service line number." ) - protected IntegerType sequenceLinkId; - - /** - * The adjudications results. - */ - @Child(name="adjudication", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Detail adjudication", formalDefinition="The adjudications results." ) - protected List adjudication; - - /** - * The third tier service adjudications for submitted services. - */ - @Child(name="subdetail", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Subdetail line items", formalDefinition="The third tier service adjudications for submitted services." ) - protected List subdetail; - - private static final long serialVersionUID = -812538L; - - public ItemDetailComponent() { - super(); - } - - public ItemDetailComponent(IntegerType sequenceLinkId) { - super(); - this.sequenceLinkId = sequenceLinkId; - } - - /** - * @return {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value - */ - public IntegerType getSequenceLinkIdElement() { - if (this.sequenceLinkId == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemDetailComponent.sequenceLinkId"); - else if (Configuration.doAutoCreate()) - this.sequenceLinkId = new IntegerType(); - return this.sequenceLinkId; - } - - public boolean hasSequenceLinkIdElement() { - return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); - } - - public boolean hasSequenceLinkId() { - return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); - } - - /** - * @param value {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value - */ - public ItemDetailComponent setSequenceLinkIdElement(IntegerType value) { - this.sequenceLinkId = value; - return this; - } - - /** - * @return A service line number. - */ - public int getSequenceLinkId() { - return this.sequenceLinkId == null ? null : this.sequenceLinkId.getValue(); - } - - /** - * @param value A service line number. - */ - public ItemDetailComponent setSequenceLinkId(int value) { - if (this.sequenceLinkId == null) - this.sequenceLinkId = new IntegerType(); - this.sequenceLinkId.setValue(value); - return this; - } - - /** - * @return {@link #adjudication} (The adjudications results.) - */ - public List getAdjudication() { - if (this.adjudication == null) - this.adjudication = new ArrayList(); - return this.adjudication; - } - - public boolean hasAdjudication() { - if (this.adjudication == null) - return false; - for (DetailAdjudicationComponent item : this.adjudication) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #adjudication} (The adjudications results.) - */ - // syntactic sugar - public DetailAdjudicationComponent addAdjudication() { //3 - DetailAdjudicationComponent t = new DetailAdjudicationComponent(); - if (this.adjudication == null) - this.adjudication = new ArrayList(); - this.adjudication.add(t); - return t; - } - - /** - * @return {@link #subdetail} (The third tier service adjudications for submitted services.) - */ - public List getSubdetail() { - if (this.subdetail == null) - this.subdetail = new ArrayList(); - return this.subdetail; - } - - public boolean hasSubdetail() { - if (this.subdetail == null) - return false; - for (ItemSubdetailComponent item : this.subdetail) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #subdetail} (The third tier service adjudications for submitted services.) - */ - // syntactic sugar - public ItemSubdetailComponent addSubdetail() { //3 - ItemSubdetailComponent t = new ItemSubdetailComponent(); - if (this.subdetail == null) - this.subdetail = new ArrayList(); - this.subdetail.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("sequenceLinkId", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequenceLinkId)); - childrenList.add(new Property("adjudication", "", "The adjudications results.", 0, java.lang.Integer.MAX_VALUE, adjudication)); - childrenList.add(new Property("subdetail", "", "The third tier service adjudications for submitted services.", 0, java.lang.Integer.MAX_VALUE, subdetail)); - } - - public ItemDetailComponent copy() { - ItemDetailComponent dst = new ItemDetailComponent(); - copyValues(dst); - dst.sequenceLinkId = sequenceLinkId == null ? null : sequenceLinkId.copy(); - if (adjudication != null) { - dst.adjudication = new ArrayList(); - for (DetailAdjudicationComponent i : adjudication) - dst.adjudication.add(i.copy()); - }; - if (subdetail != null) { - dst.subdetail = new ArrayList(); - for (ItemSubdetailComponent i : subdetail) - dst.subdetail.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (sequenceLinkId == null || sequenceLinkId.isEmpty()) && (adjudication == null || adjudication.isEmpty()) - && (subdetail == null || subdetail.isEmpty()); - } - - } - - @Block() - public static class DetailAdjudicationComponent extends BackboneElement { - /** - * Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. - */ - @Child(name="code", type={Coding.class}, order=1, min=1, max=1) - @Description(shortDefinition="Adjudication category such as co-pay, eligible, benefit, etc.", formalDefinition="Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc." ) - protected Coding code; - - /** - * Monitory amount associated with the code. - */ - @Child(name="amount", type={Money.class}, order=2, min=0, max=1) - @Description(shortDefinition="Monitary amount", formalDefinition="Monitory amount associated with the code." ) - protected Money amount; - - /** - * A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - @Child(name="value", type={DecimalType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Non-monitory value", formalDefinition="A non-monitary value for example a percentage. Mutually exclusive to the amount element above." ) - protected DecimalType value; - - private static final long serialVersionUID = -949880587L; - - public DetailAdjudicationComponent() { - super(); - } - - public DetailAdjudicationComponent(Coding code) { - super(); - this.code = code; - } - - /** - * @return {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) - */ - public Coding getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DetailAdjudicationComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new Coding(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) - */ - public DetailAdjudicationComponent setCode(Coding value) { - this.code = value; - return this; - } - - /** - * @return {@link #amount} (Monitory amount associated with the code.) - */ - public Money getAmount() { - if (this.amount == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DetailAdjudicationComponent.amount"); - else if (Configuration.doAutoCreate()) - this.amount = new Money(); - return this.amount; - } - - public boolean hasAmount() { - return this.amount != null && !this.amount.isEmpty(); - } - - /** - * @param value {@link #amount} (Monitory amount associated with the code.) - */ - public DetailAdjudicationComponent setAmount(Money value) { - this.amount = value; - return this; - } - - /** - * @return {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public DecimalType getValueElement() { - if (this.value == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DetailAdjudicationComponent.value"); - else if (Configuration.doAutoCreate()) - this.value = new DecimalType(); - return this.value; - } - - public boolean hasValueElement() { - return this.value != null && !this.value.isEmpty(); - } - - public boolean hasValue() { - return this.value != null && !this.value.isEmpty(); - } - - /** - * @param value {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public DetailAdjudicationComponent setValueElement(DecimalType value) { - this.value = value; - return this; - } - - /** - * @return A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - public BigDecimal getValue() { - return this.value == null ? null : this.value.getValue(); - } - - /** - * @param value A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - public DetailAdjudicationComponent setValue(BigDecimal value) { - if (value == null) - this.value = null; - else { - if (this.value == null) - this.value = new DecimalType(); - this.value.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "Coding", "Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("amount", "Money", "Monitory amount associated with the code.", 0, java.lang.Integer.MAX_VALUE, amount)); - childrenList.add(new Property("value", "decimal", "A non-monitary value for example a percentage. Mutually exclusive to the amount element above.", 0, java.lang.Integer.MAX_VALUE, value)); - } - - public DetailAdjudicationComponent copy() { - DetailAdjudicationComponent dst = new DetailAdjudicationComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.amount = amount == null ? null : amount.copy(); - dst.value = value == null ? null : value.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (amount == null || amount.isEmpty()) - && (value == null || value.isEmpty()); - } - - } - - @Block() - public static class ItemSubdetailComponent extends BackboneElement { - /** - * A service line number. - */ - @Child(name="sequenceLinkId", type={IntegerType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Service instance", formalDefinition="A service line number." ) - protected IntegerType sequenceLinkId; - - /** - * The adjudications results. - */ - @Child(name="adjudication", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Subdetail adjudication", formalDefinition="The adjudications results." ) - protected List adjudication; - - private static final long serialVersionUID = -1143083130L; - - public ItemSubdetailComponent() { - super(); - } - - public ItemSubdetailComponent(IntegerType sequenceLinkId) { - super(); - this.sequenceLinkId = sequenceLinkId; - } - - /** - * @return {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value - */ - public IntegerType getSequenceLinkIdElement() { - if (this.sequenceLinkId == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemSubdetailComponent.sequenceLinkId"); - else if (Configuration.doAutoCreate()) - this.sequenceLinkId = new IntegerType(); - return this.sequenceLinkId; - } - - public boolean hasSequenceLinkIdElement() { - return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); - } - - public boolean hasSequenceLinkId() { - return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); - } - - /** - * @param value {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value - */ - public ItemSubdetailComponent setSequenceLinkIdElement(IntegerType value) { - this.sequenceLinkId = value; - return this; - } - - /** - * @return A service line number. - */ - public int getSequenceLinkId() { - return this.sequenceLinkId == null ? null : this.sequenceLinkId.getValue(); - } - - /** - * @param value A service line number. - */ - public ItemSubdetailComponent setSequenceLinkId(int value) { - if (this.sequenceLinkId == null) - this.sequenceLinkId = new IntegerType(); - this.sequenceLinkId.setValue(value); - return this; - } - - /** - * @return {@link #adjudication} (The adjudications results.) - */ - public List getAdjudication() { - if (this.adjudication == null) - this.adjudication = new ArrayList(); - return this.adjudication; - } - - public boolean hasAdjudication() { - if (this.adjudication == null) - return false; - for (SubdetailAdjudicationComponent item : this.adjudication) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #adjudication} (The adjudications results.) - */ - // syntactic sugar - public SubdetailAdjudicationComponent addAdjudication() { //3 - SubdetailAdjudicationComponent t = new SubdetailAdjudicationComponent(); - if (this.adjudication == null) - this.adjudication = new ArrayList(); - this.adjudication.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("sequenceLinkId", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequenceLinkId)); - childrenList.add(new Property("adjudication", "", "The adjudications results.", 0, java.lang.Integer.MAX_VALUE, adjudication)); - } - - public ItemSubdetailComponent copy() { - ItemSubdetailComponent dst = new ItemSubdetailComponent(); - copyValues(dst); - dst.sequenceLinkId = sequenceLinkId == null ? null : sequenceLinkId.copy(); - if (adjudication != null) { - dst.adjudication = new ArrayList(); - for (SubdetailAdjudicationComponent i : adjudication) - dst.adjudication.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (sequenceLinkId == null || sequenceLinkId.isEmpty()) && (adjudication == null || adjudication.isEmpty()) - ; - } - - } - - @Block() - public static class SubdetailAdjudicationComponent extends BackboneElement { - /** - * Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. - */ - @Child(name="code", type={Coding.class}, order=1, min=1, max=1) - @Description(shortDefinition="Adjudication category such as co-pay, eligible, benefit, etc.", formalDefinition="Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc." ) - protected Coding code; - - /** - * Monitory amount associated with the code. - */ - @Child(name="amount", type={Money.class}, order=2, min=0, max=1) - @Description(shortDefinition="Monitary amount", formalDefinition="Monitory amount associated with the code." ) - protected Money amount; - - /** - * A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - @Child(name="value", type={DecimalType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Non-monitory value", formalDefinition="A non-monitary value for example a percentage. Mutually exclusive to the amount element above." ) - protected DecimalType value; - - private static final long serialVersionUID = -949880587L; - - public SubdetailAdjudicationComponent() { - super(); - } - - public SubdetailAdjudicationComponent(Coding code) { - super(); - this.code = code; - } - - /** - * @return {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) - */ - public Coding getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SubdetailAdjudicationComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new Coding(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) - */ - public SubdetailAdjudicationComponent setCode(Coding value) { - this.code = value; - return this; - } - - /** - * @return {@link #amount} (Monitory amount associated with the code.) - */ - public Money getAmount() { - if (this.amount == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SubdetailAdjudicationComponent.amount"); - else if (Configuration.doAutoCreate()) - this.amount = new Money(); - return this.amount; - } - - public boolean hasAmount() { - return this.amount != null && !this.amount.isEmpty(); - } - - /** - * @param value {@link #amount} (Monitory amount associated with the code.) - */ - public SubdetailAdjudicationComponent setAmount(Money value) { - this.amount = value; - return this; - } - - /** - * @return {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public DecimalType getValueElement() { - if (this.value == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SubdetailAdjudicationComponent.value"); - else if (Configuration.doAutoCreate()) - this.value = new DecimalType(); - return this.value; - } - - public boolean hasValueElement() { - return this.value != null && !this.value.isEmpty(); - } - - public boolean hasValue() { - return this.value != null && !this.value.isEmpty(); - } - - /** - * @param value {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public SubdetailAdjudicationComponent setValueElement(DecimalType value) { - this.value = value; - return this; - } - - /** - * @return A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - public BigDecimal getValue() { - return this.value == null ? null : this.value.getValue(); - } - - /** - * @param value A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - public SubdetailAdjudicationComponent setValue(BigDecimal value) { - if (value == null) - this.value = null; - else { - if (this.value == null) - this.value = new DecimalType(); - this.value.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "Coding", "Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("amount", "Money", "Monitory amount associated with the code.", 0, java.lang.Integer.MAX_VALUE, amount)); - childrenList.add(new Property("value", "decimal", "A non-monitary value for example a percentage. Mutually exclusive to the amount element above.", 0, java.lang.Integer.MAX_VALUE, value)); - } - - public SubdetailAdjudicationComponent copy() { - SubdetailAdjudicationComponent dst = new SubdetailAdjudicationComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.amount = amount == null ? null : amount.copy(); - dst.value = value == null ? null : value.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (amount == null || amount.isEmpty()) - && (value == null || value.isEmpty()); - } - - } - - @Block() - public static class AddedItemComponent extends BackboneElement { - /** - * List of input service items which this service line is intended to replace. - */ - @Child(name="sequenceLinkId", type={IntegerType.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Service instances", formalDefinition="List of input service items which this service line is intended to replace." ) - protected List sequenceLinkId; - - /** - * A code to indicate the Professional Service or Product supplied. - */ - @Child(name="service", type={Coding.class}, order=2, min=1, max=1) - @Description(shortDefinition="Group, Service or Product", formalDefinition="A code to indicate the Professional Service or Product supplied." ) - protected Coding service; - - /** - * The fee charged for the professional service or product.. - */ - @Child(name="fee", type={Money.class}, order=3, min=0, max=1) - @Description(shortDefinition="Professional fee or Product charge", formalDefinition="The fee charged for the professional service or product.." ) - protected Money fee; - - /** - * A list of note references to the notes provided below. - */ - @Child(name="noteNumberLinkId", type={IntegerType.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="List of note numbers which apply", formalDefinition="A list of note references to the notes provided below." ) - protected List noteNumberLinkId; - - /** - * The adjudications results. - */ - @Child(name="adjudication", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Added items adjudication", formalDefinition="The adjudications results." ) - protected List adjudication; - - /** - * The second tier service adjudications for payor added services. - */ - @Child(name="detail", type={}, order=6, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Added items details", formalDefinition="The second tier service adjudications for payor added services." ) - protected List detail; - - private static final long serialVersionUID = -1703432926L; - - public AddedItemComponent() { - super(); - } - - public AddedItemComponent(Coding service) { - super(); - this.service = service; - } - - /** - * @return {@link #sequenceLinkId} (List of input service items which this service line is intended to replace.) - */ - public List getSequenceLinkId() { - if (this.sequenceLinkId == null) - this.sequenceLinkId = new ArrayList(); - return this.sequenceLinkId; - } - - public boolean hasSequenceLinkId() { - if (this.sequenceLinkId == null) - return false; - for (IntegerType item : this.sequenceLinkId) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #sequenceLinkId} (List of input service items which this service line is intended to replace.) - */ - // syntactic sugar - public IntegerType addSequenceLinkIdElement() {//2 - IntegerType t = new IntegerType(); - if (this.sequenceLinkId == null) - this.sequenceLinkId = new ArrayList(); - this.sequenceLinkId.add(t); - return t; - } - - /** - * @param value {@link #sequenceLinkId} (List of input service items which this service line is intended to replace.) - */ - public AddedItemComponent addSequenceLinkId(int value) { //1 - IntegerType t = new IntegerType(); - t.setValue(value); - if (this.sequenceLinkId == null) - this.sequenceLinkId = new ArrayList(); - this.sequenceLinkId.add(t); - return this; - } - - /** - * @param value {@link #sequenceLinkId} (List of input service items which this service line is intended to replace.) - */ - public boolean hasSequenceLinkId(int value) { - if (this.sequenceLinkId == null) - return false; - for (IntegerType v : this.sequenceLinkId) - if (v.equals(value)) // integer - return true; - return false; - } - - /** - * @return {@link #service} (A code to indicate the Professional Service or Product supplied.) - */ - public Coding getService() { - if (this.service == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AddedItemComponent.service"); - else if (Configuration.doAutoCreate()) - this.service = new Coding(); - return this.service; - } - - public boolean hasService() { - return this.service != null && !this.service.isEmpty(); - } - - /** - * @param value {@link #service} (A code to indicate the Professional Service or Product supplied.) - */ - public AddedItemComponent setService(Coding value) { - this.service = value; - return this; - } - - /** - * @return {@link #fee} (The fee charged for the professional service or product..) - */ - public Money getFee() { - if (this.fee == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AddedItemComponent.fee"); - else if (Configuration.doAutoCreate()) - this.fee = new Money(); - return this.fee; - } - - public boolean hasFee() { - return this.fee != null && !this.fee.isEmpty(); - } - - /** - * @param value {@link #fee} (The fee charged for the professional service or product..) - */ - public AddedItemComponent setFee(Money value) { - this.fee = value; - return this; - } - - /** - * @return {@link #noteNumberLinkId} (A list of note references to the notes provided below.) - */ - public List getNoteNumberLinkId() { - if (this.noteNumberLinkId == null) - this.noteNumberLinkId = new ArrayList(); - return this.noteNumberLinkId; - } - - public boolean hasNoteNumberLinkId() { - if (this.noteNumberLinkId == null) - return false; - for (IntegerType item : this.noteNumberLinkId) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #noteNumberLinkId} (A list of note references to the notes provided below.) - */ - // syntactic sugar - public IntegerType addNoteNumberLinkIdElement() {//2 - IntegerType t = new IntegerType(); - if (this.noteNumberLinkId == null) - this.noteNumberLinkId = new ArrayList(); - this.noteNumberLinkId.add(t); - return t; - } - - /** - * @param value {@link #noteNumberLinkId} (A list of note references to the notes provided below.) - */ - public AddedItemComponent addNoteNumberLinkId(int value) { //1 - IntegerType t = new IntegerType(); - t.setValue(value); - if (this.noteNumberLinkId == null) - this.noteNumberLinkId = new ArrayList(); - this.noteNumberLinkId.add(t); - return this; - } - - /** - * @param value {@link #noteNumberLinkId} (A list of note references to the notes provided below.) - */ - public boolean hasNoteNumberLinkId(int value) { - if (this.noteNumberLinkId == null) - return false; - for (IntegerType v : this.noteNumberLinkId) - if (v.equals(value)) // integer - return true; - return false; - } - - /** - * @return {@link #adjudication} (The adjudications results.) - */ - public List getAdjudication() { - if (this.adjudication == null) - this.adjudication = new ArrayList(); - return this.adjudication; - } - - public boolean hasAdjudication() { - if (this.adjudication == null) - return false; - for (AddedItemAdjudicationComponent item : this.adjudication) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #adjudication} (The adjudications results.) - */ - // syntactic sugar - public AddedItemAdjudicationComponent addAdjudication() { //3 - AddedItemAdjudicationComponent t = new AddedItemAdjudicationComponent(); - if (this.adjudication == null) - this.adjudication = new ArrayList(); - this.adjudication.add(t); - return t; - } - - /** - * @return {@link #detail} (The second tier service adjudications for payor added services.) - */ - public List getDetail() { - if (this.detail == null) - this.detail = new ArrayList(); - return this.detail; - } - - public boolean hasDetail() { - if (this.detail == null) - return false; - for (AddedItemsDetailComponent item : this.detail) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #detail} (The second tier service adjudications for payor added services.) - */ - // syntactic sugar - public AddedItemsDetailComponent addDetail() { //3 - AddedItemsDetailComponent t = new AddedItemsDetailComponent(); - if (this.detail == null) - this.detail = new ArrayList(); - this.detail.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("sequenceLinkId", "integer", "List of input service items which this service line is intended to replace.", 0, java.lang.Integer.MAX_VALUE, sequenceLinkId)); - childrenList.add(new Property("service", "Coding", "A code to indicate the Professional Service or Product supplied.", 0, java.lang.Integer.MAX_VALUE, service)); - childrenList.add(new Property("fee", "Money", "The fee charged for the professional service or product..", 0, java.lang.Integer.MAX_VALUE, fee)); - childrenList.add(new Property("noteNumberLinkId", "integer", "A list of note references to the notes provided below.", 0, java.lang.Integer.MAX_VALUE, noteNumberLinkId)); - childrenList.add(new Property("adjudication", "", "The adjudications results.", 0, java.lang.Integer.MAX_VALUE, adjudication)); - childrenList.add(new Property("detail", "", "The second tier service adjudications for payor added services.", 0, java.lang.Integer.MAX_VALUE, detail)); - } - - public AddedItemComponent copy() { - AddedItemComponent dst = new AddedItemComponent(); - copyValues(dst); - if (sequenceLinkId != null) { - dst.sequenceLinkId = new ArrayList(); - for (IntegerType i : sequenceLinkId) - dst.sequenceLinkId.add(i.copy()); - }; - dst.service = service == null ? null : service.copy(); - dst.fee = fee == null ? null : fee.copy(); - if (noteNumberLinkId != null) { - dst.noteNumberLinkId = new ArrayList(); - for (IntegerType i : noteNumberLinkId) - dst.noteNumberLinkId.add(i.copy()); - }; - if (adjudication != null) { - dst.adjudication = new ArrayList(); - for (AddedItemAdjudicationComponent i : adjudication) - dst.adjudication.add(i.copy()); - }; - if (detail != null) { - dst.detail = new ArrayList(); - for (AddedItemsDetailComponent i : detail) - dst.detail.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (sequenceLinkId == null || sequenceLinkId.isEmpty()) && (service == null || service.isEmpty()) - && (fee == null || fee.isEmpty()) && (noteNumberLinkId == null || noteNumberLinkId.isEmpty()) - && (adjudication == null || adjudication.isEmpty()) && (detail == null || detail.isEmpty()) - ; - } - - } - - @Block() - public static class AddedItemAdjudicationComponent extends BackboneElement { - /** - * Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. - */ - @Child(name="code", type={Coding.class}, order=1, min=1, max=1) - @Description(shortDefinition="Adjudication category such as co-pay, eligible, benefit, etc.", formalDefinition="Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc." ) - protected Coding code; - - /** - * Monitory amount associated with the code. - */ - @Child(name="amount", type={Money.class}, order=2, min=0, max=1) - @Description(shortDefinition="Monitary amount", formalDefinition="Monitory amount associated with the code." ) - protected Money amount; - - /** - * A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - @Child(name="value", type={DecimalType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Non-monitory value", formalDefinition="A non-monitary value for example a percentage. Mutually exclusive to the amount element above." ) - protected DecimalType value; - - private static final long serialVersionUID = -949880587L; - - public AddedItemAdjudicationComponent() { - super(); - } - - public AddedItemAdjudicationComponent(Coding code) { - super(); - this.code = code; - } - - /** - * @return {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) - */ - public Coding getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AddedItemAdjudicationComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new Coding(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) - */ - public AddedItemAdjudicationComponent setCode(Coding value) { - this.code = value; - return this; - } - - /** - * @return {@link #amount} (Monitory amount associated with the code.) - */ - public Money getAmount() { - if (this.amount == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AddedItemAdjudicationComponent.amount"); - else if (Configuration.doAutoCreate()) - this.amount = new Money(); - return this.amount; - } - - public boolean hasAmount() { - return this.amount != null && !this.amount.isEmpty(); - } - - /** - * @param value {@link #amount} (Monitory amount associated with the code.) - */ - public AddedItemAdjudicationComponent setAmount(Money value) { - this.amount = value; - return this; - } - - /** - * @return {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public DecimalType getValueElement() { - if (this.value == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AddedItemAdjudicationComponent.value"); - else if (Configuration.doAutoCreate()) - this.value = new DecimalType(); - return this.value; - } - - public boolean hasValueElement() { - return this.value != null && !this.value.isEmpty(); - } - - public boolean hasValue() { - return this.value != null && !this.value.isEmpty(); - } - - /** - * @param value {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public AddedItemAdjudicationComponent setValueElement(DecimalType value) { - this.value = value; - return this; - } - - /** - * @return A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - public BigDecimal getValue() { - return this.value == null ? null : this.value.getValue(); - } - - /** - * @param value A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - public AddedItemAdjudicationComponent setValue(BigDecimal value) { - if (value == null) - this.value = null; - else { - if (this.value == null) - this.value = new DecimalType(); - this.value.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "Coding", "Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("amount", "Money", "Monitory amount associated with the code.", 0, java.lang.Integer.MAX_VALUE, amount)); - childrenList.add(new Property("value", "decimal", "A non-monitary value for example a percentage. Mutually exclusive to the amount element above.", 0, java.lang.Integer.MAX_VALUE, value)); - } - - public AddedItemAdjudicationComponent copy() { - AddedItemAdjudicationComponent dst = new AddedItemAdjudicationComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.amount = amount == null ? null : amount.copy(); - dst.value = value == null ? null : value.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (amount == null || amount.isEmpty()) - && (value == null || value.isEmpty()); - } - - } - - @Block() - public static class AddedItemsDetailComponent extends BackboneElement { - /** - * A code to indicate the Professional Service or Product supplied. - */ - @Child(name="service", type={Coding.class}, order=1, min=1, max=1) - @Description(shortDefinition="Service or Product", formalDefinition="A code to indicate the Professional Service or Product supplied." ) - protected Coding service; - - /** - * The fee charged for the professional service or product.. - */ - @Child(name="fee", type={Money.class}, order=2, min=0, max=1) - @Description(shortDefinition="Professional fee or Product charge", formalDefinition="The fee charged for the professional service or product.." ) - protected Money fee; - - /** - * The adjudications results. - */ - @Child(name="adjudication", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Added items detail adjudication", formalDefinition="The adjudications results." ) - protected List adjudication; - - private static final long serialVersionUID = -2104242020L; - - public AddedItemsDetailComponent() { - super(); - } - - public AddedItemsDetailComponent(Coding service) { - super(); - this.service = service; - } - - /** - * @return {@link #service} (A code to indicate the Professional Service or Product supplied.) - */ - public Coding getService() { - if (this.service == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AddedItemsDetailComponent.service"); - else if (Configuration.doAutoCreate()) - this.service = new Coding(); - return this.service; - } - - public boolean hasService() { - return this.service != null && !this.service.isEmpty(); - } - - /** - * @param value {@link #service} (A code to indicate the Professional Service or Product supplied.) - */ - public AddedItemsDetailComponent setService(Coding value) { - this.service = value; - return this; - } - - /** - * @return {@link #fee} (The fee charged for the professional service or product..) - */ - public Money getFee() { - if (this.fee == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AddedItemsDetailComponent.fee"); - else if (Configuration.doAutoCreate()) - this.fee = new Money(); - return this.fee; - } - - public boolean hasFee() { - return this.fee != null && !this.fee.isEmpty(); - } - - /** - * @param value {@link #fee} (The fee charged for the professional service or product..) - */ - public AddedItemsDetailComponent setFee(Money value) { - this.fee = value; - return this; - } - - /** - * @return {@link #adjudication} (The adjudications results.) - */ - public List getAdjudication() { - if (this.adjudication == null) - this.adjudication = new ArrayList(); - return this.adjudication; - } - - public boolean hasAdjudication() { - if (this.adjudication == null) - return false; - for (AddedItemDetailAdjudicationComponent item : this.adjudication) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #adjudication} (The adjudications results.) - */ - // syntactic sugar - public AddedItemDetailAdjudicationComponent addAdjudication() { //3 - AddedItemDetailAdjudicationComponent t = new AddedItemDetailAdjudicationComponent(); - if (this.adjudication == null) - this.adjudication = new ArrayList(); - this.adjudication.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("service", "Coding", "A code to indicate the Professional Service or Product supplied.", 0, java.lang.Integer.MAX_VALUE, service)); - childrenList.add(new Property("fee", "Money", "The fee charged for the professional service or product..", 0, java.lang.Integer.MAX_VALUE, fee)); - childrenList.add(new Property("adjudication", "", "The adjudications results.", 0, java.lang.Integer.MAX_VALUE, adjudication)); - } - - public AddedItemsDetailComponent copy() { - AddedItemsDetailComponent dst = new AddedItemsDetailComponent(); - copyValues(dst); - dst.service = service == null ? null : service.copy(); - dst.fee = fee == null ? null : fee.copy(); - if (adjudication != null) { - dst.adjudication = new ArrayList(); - for (AddedItemDetailAdjudicationComponent i : adjudication) - dst.adjudication.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (service == null || service.isEmpty()) && (fee == null || fee.isEmpty()) - && (adjudication == null || adjudication.isEmpty()); - } - - } - - @Block() - public static class AddedItemDetailAdjudicationComponent extends BackboneElement { - /** - * Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. - */ - @Child(name="code", type={Coding.class}, order=1, min=1, max=1) - @Description(shortDefinition="Adjudication category such as co-pay, eligible, benefit, etc.", formalDefinition="Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc." ) - protected Coding code; - - /** - * Monitory amount associated with the code. - */ - @Child(name="amount", type={Money.class}, order=2, min=0, max=1) - @Description(shortDefinition="Monitary amount", formalDefinition="Monitory amount associated with the code." ) - protected Money amount; - - /** - * A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - @Child(name="value", type={DecimalType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Non-monitory value", formalDefinition="A non-monitary value for example a percentage. Mutually exclusive to the amount element above." ) - protected DecimalType value; - - private static final long serialVersionUID = -949880587L; - - public AddedItemDetailAdjudicationComponent() { - super(); - } - - public AddedItemDetailAdjudicationComponent(Coding code) { - super(); - this.code = code; - } - - /** - * @return {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) - */ - public Coding getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AddedItemDetailAdjudicationComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new Coding(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) - */ - public AddedItemDetailAdjudicationComponent setCode(Coding value) { - this.code = value; - return this; - } - - /** - * @return {@link #amount} (Monitory amount associated with the code.) - */ - public Money getAmount() { - if (this.amount == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AddedItemDetailAdjudicationComponent.amount"); - else if (Configuration.doAutoCreate()) - this.amount = new Money(); - return this.amount; - } - - public boolean hasAmount() { - return this.amount != null && !this.amount.isEmpty(); - } - - /** - * @param value {@link #amount} (Monitory amount associated with the code.) - */ - public AddedItemDetailAdjudicationComponent setAmount(Money value) { - this.amount = value; - return this; - } - - /** - * @return {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public DecimalType getValueElement() { - if (this.value == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create AddedItemDetailAdjudicationComponent.value"); - else if (Configuration.doAutoCreate()) - this.value = new DecimalType(); - return this.value; - } - - public boolean hasValueElement() { - return this.value != null && !this.value.isEmpty(); - } - - public boolean hasValue() { - return this.value != null && !this.value.isEmpty(); - } - - /** - * @param value {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public AddedItemDetailAdjudicationComponent setValueElement(DecimalType value) { - this.value = value; - return this; - } - - /** - * @return A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - public BigDecimal getValue() { - return this.value == null ? null : this.value.getValue(); - } - - /** - * @param value A non-monitary value for example a percentage. Mutually exclusive to the amount element above. - */ - public AddedItemDetailAdjudicationComponent setValue(BigDecimal value) { - if (value == null) - this.value = null; - else { - if (this.value == null) - this.value = new DecimalType(); - this.value.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "Coding", "Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("amount", "Money", "Monitory amount associated with the code.", 0, java.lang.Integer.MAX_VALUE, amount)); - childrenList.add(new Property("value", "decimal", "A non-monitary value for example a percentage. Mutually exclusive to the amount element above.", 0, java.lang.Integer.MAX_VALUE, value)); - } - - public AddedItemDetailAdjudicationComponent copy() { - AddedItemDetailAdjudicationComponent dst = new AddedItemDetailAdjudicationComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.amount = amount == null ? null : amount.copy(); - dst.value = value == null ? null : value.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (amount == null || amount.isEmpty()) - && (value == null || value.isEmpty()); - } - - } - - @Block() - public static class ErrorsComponent extends BackboneElement { - /** - * The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere. - */ - @Child(name="sequenceLinkId", type={IntegerType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Item sequence number", formalDefinition="The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere." ) - protected IntegerType sequenceLinkId; - - /** - * The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. - */ - @Child(name="detailSequenceLinkId", type={IntegerType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Detail sequence number", formalDefinition="The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition." ) - protected IntegerType detailSequenceLinkId; - - /** - * The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. - */ - @Child(name="subdetailSequenceLinkId", type={IntegerType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Subdetail sequence number", formalDefinition="The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition." ) - protected IntegerType subdetailSequenceLinkId; - - /** - * An error code,froma specified code system, which details why the claim could not be adjudicated. - */ - @Child(name="code", type={Coding.class}, order=4, min=1, max=1) - @Description(shortDefinition="Error code detailing processing issues", formalDefinition="An error code,froma specified code system, which details why the claim could not be adjudicated." ) - protected Coding code; - - private static final long serialVersionUID = 878850209L; - - public ErrorsComponent() { - super(); - } - - public ErrorsComponent(Coding code) { - super(); - this.code = code; - } - - /** - * @return {@link #sequenceLinkId} (The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value - */ - public IntegerType getSequenceLinkIdElement() { - if (this.sequenceLinkId == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ErrorsComponent.sequenceLinkId"); - else if (Configuration.doAutoCreate()) - this.sequenceLinkId = new IntegerType(); - return this.sequenceLinkId; - } - - public boolean hasSequenceLinkIdElement() { - return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); - } - - public boolean hasSequenceLinkId() { - return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); - } - - /** - * @param value {@link #sequenceLinkId} (The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value - */ - public ErrorsComponent setSequenceLinkIdElement(IntegerType value) { - this.sequenceLinkId = value; - return this; - } - - /** - * @return The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere. - */ - public int getSequenceLinkId() { - return this.sequenceLinkId == null ? null : this.sequenceLinkId.getValue(); - } - - /** - * @param value The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere. - */ - public ErrorsComponent setSequenceLinkId(int value) { - if (value == -1) - this.sequenceLinkId = null; - else { - if (this.sequenceLinkId == null) - this.sequenceLinkId = new IntegerType(); - this.sequenceLinkId.setValue(value); - } - return this; - } - - /** - * @return {@link #detailSequenceLinkId} (The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition.). This is the underlying object with id, value and extensions. The accessor "getDetailSequenceLinkId" gives direct access to the value - */ - public IntegerType getDetailSequenceLinkIdElement() { - if (this.detailSequenceLinkId == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ErrorsComponent.detailSequenceLinkId"); - else if (Configuration.doAutoCreate()) - this.detailSequenceLinkId = new IntegerType(); - return this.detailSequenceLinkId; - } - - public boolean hasDetailSequenceLinkIdElement() { - return this.detailSequenceLinkId != null && !this.detailSequenceLinkId.isEmpty(); - } - - public boolean hasDetailSequenceLinkId() { - return this.detailSequenceLinkId != null && !this.detailSequenceLinkId.isEmpty(); - } - - /** - * @param value {@link #detailSequenceLinkId} (The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition.). This is the underlying object with id, value and extensions. The accessor "getDetailSequenceLinkId" gives direct access to the value - */ - public ErrorsComponent setDetailSequenceLinkIdElement(IntegerType value) { - this.detailSequenceLinkId = value; - return this; - } - - /** - * @return The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. - */ - public int getDetailSequenceLinkId() { - return this.detailSequenceLinkId == null ? null : this.detailSequenceLinkId.getValue(); - } - - /** - * @param value The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. - */ - public ErrorsComponent setDetailSequenceLinkId(int value) { - if (value == -1) - this.detailSequenceLinkId = null; - else { - if (this.detailSequenceLinkId == null) - this.detailSequenceLinkId = new IntegerType(); - this.detailSequenceLinkId.setValue(value); - } - return this; - } - - /** - * @return {@link #subdetailSequenceLinkId} (The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition.). This is the underlying object with id, value and extensions. The accessor "getSubdetailSequenceLinkId" gives direct access to the value - */ - public IntegerType getSubdetailSequenceLinkIdElement() { - if (this.subdetailSequenceLinkId == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ErrorsComponent.subdetailSequenceLinkId"); - else if (Configuration.doAutoCreate()) - this.subdetailSequenceLinkId = new IntegerType(); - return this.subdetailSequenceLinkId; - } - - public boolean hasSubdetailSequenceLinkIdElement() { - return this.subdetailSequenceLinkId != null && !this.subdetailSequenceLinkId.isEmpty(); - } - - public boolean hasSubdetailSequenceLinkId() { - return this.subdetailSequenceLinkId != null && !this.subdetailSequenceLinkId.isEmpty(); - } - - /** - * @param value {@link #subdetailSequenceLinkId} (The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition.). This is the underlying object with id, value and extensions. The accessor "getSubdetailSequenceLinkId" gives direct access to the value - */ - public ErrorsComponent setSubdetailSequenceLinkIdElement(IntegerType value) { - this.subdetailSequenceLinkId = value; - return this; - } - - /** - * @return The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. - */ - public int getSubdetailSequenceLinkId() { - return this.subdetailSequenceLinkId == null ? null : this.subdetailSequenceLinkId.getValue(); - } - - /** - * @param value The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. - */ - public ErrorsComponent setSubdetailSequenceLinkId(int value) { - if (value == -1) - this.subdetailSequenceLinkId = null; - else { - if (this.subdetailSequenceLinkId == null) - this.subdetailSequenceLinkId = new IntegerType(); - this.subdetailSequenceLinkId.setValue(value); - } - return this; - } - - /** - * @return {@link #code} (An error code,froma specified code system, which details why the claim could not be adjudicated.) - */ - public Coding getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ErrorsComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new Coding(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (An error code,froma specified code system, which details why the claim could not be adjudicated.) - */ - public ErrorsComponent setCode(Coding value) { - this.code = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("sequenceLinkId", "integer", "The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere.", 0, java.lang.Integer.MAX_VALUE, sequenceLinkId)); - childrenList.add(new Property("detailSequenceLinkId", "integer", "The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition.", 0, java.lang.Integer.MAX_VALUE, detailSequenceLinkId)); - childrenList.add(new Property("subdetailSequenceLinkId", "integer", "The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition.", 0, java.lang.Integer.MAX_VALUE, subdetailSequenceLinkId)); - childrenList.add(new Property("code", "Coding", "An error code,froma specified code system, which details why the claim could not be adjudicated.", 0, java.lang.Integer.MAX_VALUE, code)); - } - - public ErrorsComponent copy() { - ErrorsComponent dst = new ErrorsComponent(); - copyValues(dst); - dst.sequenceLinkId = sequenceLinkId == null ? null : sequenceLinkId.copy(); - dst.detailSequenceLinkId = detailSequenceLinkId == null ? null : detailSequenceLinkId.copy(); - dst.subdetailSequenceLinkId = subdetailSequenceLinkId == null ? null : subdetailSequenceLinkId.copy(); - dst.code = code == null ? null : code.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (sequenceLinkId == null || sequenceLinkId.isEmpty()) && (detailSequenceLinkId == null || detailSequenceLinkId.isEmpty()) - && (subdetailSequenceLinkId == null || subdetailSequenceLinkId.isEmpty()) && (code == null || code.isEmpty()) - ; - } - - } - - @Block() - public static class NotesComponent extends BackboneElement { - /** - * An integer associated with each note which may be referred to from each service line item. - */ - @Child(name="number", type={IntegerType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Note Number for this note", formalDefinition="An integer associated with each note which may be referred to from each service line item." ) - protected IntegerType number; - - /** - * The note purpose: Print/Display. - */ - @Child(name="type", type={Coding.class}, order=2, min=0, max=1) - @Description(shortDefinition="display | print | printoper", formalDefinition="The note purpose: Print/Display." ) - protected Coding type; - - /** - * The note text. - */ - @Child(name="text", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Note explanitory text", formalDefinition="The note text." ) - protected StringType text; - - private static final long serialVersionUID = -1837694409L; - - public NotesComponent() { - super(); - } - - /** - * @return {@link #number} (An integer associated with each note which may be referred to from each service line item.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value - */ - public IntegerType getNumberElement() { - if (this.number == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create NotesComponent.number"); - else if (Configuration.doAutoCreate()) - this.number = new IntegerType(); - return this.number; - } - - public boolean hasNumberElement() { - return this.number != null && !this.number.isEmpty(); - } - - public boolean hasNumber() { - return this.number != null && !this.number.isEmpty(); - } - - /** - * @param value {@link #number} (An integer associated with each note which may be referred to from each service line item.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value - */ - public NotesComponent setNumberElement(IntegerType value) { - this.number = value; - return this; - } - - /** - * @return An integer associated with each note which may be referred to from each service line item. - */ - public int getNumber() { - return this.number == null ? null : this.number.getValue(); - } - - /** - * @param value An integer associated with each note which may be referred to from each service line item. - */ - public NotesComponent setNumber(int value) { - if (value == -1) - this.number = null; - else { - if (this.number == null) - this.number = new IntegerType(); - this.number.setValue(value); - } - return this; - } - - /** - * @return {@link #type} (The note purpose: Print/Display.) - */ - public Coding getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create NotesComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new Coding(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The note purpose: Print/Display.) - */ - public NotesComponent setType(Coding value) { - this.type = value; - return this; - } - - /** - * @return {@link #text} (The note text.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value - */ - public StringType getTextElement() { - if (this.text == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create NotesComponent.text"); - else if (Configuration.doAutoCreate()) - this.text = new StringType(); - return this.text; - } - - public boolean hasTextElement() { - return this.text != null && !this.text.isEmpty(); - } - - public boolean hasText() { - return this.text != null && !this.text.isEmpty(); - } - - /** - * @param value {@link #text} (The note text.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value - */ - public NotesComponent setTextElement(StringType value) { - this.text = value; - return this; - } - - /** - * @return The note text. - */ - public String getText() { - return this.text == null ? null : this.text.getValue(); - } - - /** - * @param value The note text. - */ - public NotesComponent setText(String value) { - if (Utilities.noString(value)) - this.text = null; - else { - if (this.text == null) - this.text = new StringType(); - this.text.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("number", "integer", "An integer associated with each note which may be referred to from each service line item.", 0, java.lang.Integer.MAX_VALUE, number)); - childrenList.add(new Property("type", "Coding", "The note purpose: Print/Display.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("text", "string", "The note text.", 0, java.lang.Integer.MAX_VALUE, text)); - } - - public NotesComponent copy() { - NotesComponent dst = new NotesComponent(); - copyValues(dst); - dst.number = number == null ? null : number.copy(); - dst.type = type == null ? null : type.copy(); - dst.text = text == null ? null : text.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (number == null || number.isEmpty()) && (type == null || type.isEmpty()) - && (text == null || text.isEmpty()); - } - - } - - /** - * The Response Business Identifier. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Response number", formalDefinition="The Response Business Identifier." ) - protected List identifier; - - /** - * Original request resource referrence. - */ - @Child(name="request", type={OralHealthClaim.class}, order=0, min=0, max=1) - @Description(shortDefinition="Id of resource triggering adjudication", formalDefinition="Original request resource referrence." ) - protected Reference request; - - /** - * The actual object that is the target of the reference (Original request resource referrence.) - */ - protected OralHealthClaim requestTarget; - - /** - * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. - */ - @Child(name="ruleset", type={Coding.class}, order=1, min=0, max=1) - @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." ) - protected Coding ruleset; - - /** - * The style (standard) and version of the original material which was converted into this resource. - */ - @Child(name="originalRuleset", type={Coding.class}, order=2, min=0, max=1) - @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) - protected Coding originalRuleset; - - /** - * The date when the enclosed suite of services were performed or completed. - */ - @Child(name="created", type={DateTimeType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Creation date", formalDefinition="The date when the enclosed suite of services were performed or completed." ) - protected DateTimeType created; - - /** - * The Insurer who produced this adjudicated response. - */ - @Child(name="organization", type={Organization.class}, order=4, min=0, max=1) - @Description(shortDefinition="Insurer", formalDefinition="The Insurer who produced this adjudicated response." ) - protected Reference organization; - - /** - * The actual object that is the target of the reference (The Insurer who produced this adjudicated response.) - */ - protected Organization organizationTarget; - - /** - * The practitioner who is responsible for the services rendered to the patient. - */ - @Child(name="requestProvider", type={Practitioner.class}, order=5, min=0, max=1) - @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) - protected Reference requestProvider; - - /** - * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) - */ - protected Practitioner requestProviderTarget; - - /** - * The organization which is responsible for the services rendered to the patient. - */ - @Child(name="requestOrganization", type={Organization.class}, order=6, min=0, max=1) - @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) - protected Reference requestOrganization; - - /** - * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) - */ - protected Organization requestOrganizationTarget; - - /** - * Transaction status: error, complete. - */ - @Child(name="outcome", type={CodeType.class}, order=7, min=0, max=1) - @Description(shortDefinition="complete | error", formalDefinition="Transaction status: error, complete." ) - protected Enumeration outcome; - - /** - * A description of the status of the adjudication. - */ - @Child(name="disposition", type={StringType.class}, order=8, min=0, max=1) - @Description(shortDefinition="Disposition Message", formalDefinition="A description of the status of the adjudication." ) - protected StringType disposition; - - /** - * Party to be reimbursed: Subscriber, provider, other. - */ - @Child(name="payeeType", type={Coding.class}, order=9, min=0, max=1) - @Description(shortDefinition="Party to be paid any benefits payable", formalDefinition="Party to be reimbursed: Subscriber, provider, other." ) - protected Coding payeeType; - - /** - * The first tier service adjudications for submitted services. - */ - @Child(name="item", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Line items", formalDefinition="The first tier service adjudications for submitted services." ) - protected List item; - - /** - * The first tier service adjudications for payor added services. - */ - @Child(name="additem", type={}, order=11, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Insurer added line items", formalDefinition="The first tier service adjudications for payor added services." ) - protected List additem; - - /** - * Mutually exclusive with Services Provided (Item). - */ - @Child(name="error", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Processing errors", formalDefinition="Mutually exclusive with Services Provided (Item)." ) - protected List error; - - /** - * The total cost of the services reported. - */ - @Child(name="totalCost", type={Money.class}, order=13, min=0, max=1) - @Description(shortDefinition="Total Cost of service from the Claim", formalDefinition="The total cost of the services reported." ) - protected Money totalCost; - - /** - * The amount of deductable applied which was not allocated to any particular service line. - */ - @Child(name="unallocDeductable", type={Money.class}, order=14, min=0, max=1) - @Description(shortDefinition="Unallocated deductable", formalDefinition="The amount of deductable applied which was not allocated to any particular service line." ) - protected Money unallocDeductable; - - /** - * Total amount of benefit payable (Equal to sum of the Benefit amounts from all detail lines and additions less the Unallocated Deductable). - */ - @Child(name="totalBenefit", type={Money.class}, order=15, min=0, max=1) - @Description(shortDefinition="Total benefit payable for the Claim", formalDefinition="Total amount of benefit payable (Equal to sum of the Benefit amounts from all detail lines and additions less the Unallocated Deductable)." ) - protected Money totalBenefit; - - /** - * Adjustment to the payment of this transaction which is not related to adjudication of this transaction. - */ - @Child(name="paymentAdjustment", type={Money.class}, order=16, min=0, max=1) - @Description(shortDefinition="Payment adjustment for non-Claim issues", formalDefinition="Adjustment to the payment of this transaction which is not related to adjudication of this transaction." ) - protected Money paymentAdjustment; - - /** - * Reason for the payment adjustment. - */ - @Child(name="paymentAdjustmentReason", type={Coding.class}, order=17, min=0, max=1) - @Description(shortDefinition="Reason for Payment adjustment", formalDefinition="Reason for the payment adjustment." ) - protected Coding paymentAdjustmentReason; - - /** - * Estimated payment data. - */ - @Child(name="paymentDate", type={DateType.class}, order=18, min=0, max=1) - @Description(shortDefinition="Expected data of Payment", formalDefinition="Estimated payment data." ) - protected DateType paymentDate; - - /** - * Payable less any payment adjustment. - */ - @Child(name="paymentAmount", type={Money.class}, order=19, min=0, max=1) - @Description(shortDefinition="Payment amount", formalDefinition="Payable less any payment adjustment." ) - protected Money paymentAmount; - - /** - * Payment identifer. - */ - @Child(name="paymentRef", type={Identifier.class}, order=20, min=0, max=1) - @Description(shortDefinition="Payment identifier", formalDefinition="Payment identifer." ) - protected Identifier paymentRef; - - /** - * Status of funds reservation (For provider, for Patient, None). - */ - @Child(name="reserved", type={Coding.class}, order=21, min=0, max=1) - @Description(shortDefinition="Funds reserved status", formalDefinition="Status of funds reservation (For provider, for Patient, None)." ) - protected Coding reserved; - - /** - * The form to be used for printing the content. - */ - @Child(name="form", type={Coding.class}, order=22, min=0, max=1) - @Description(shortDefinition="Printed Form Identifier", formalDefinition="The form to be used for printing the content." ) - protected Coding form; - - /** - * Note text. - */ - @Child(name="note", type={}, order=23, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Processing notes", formalDefinition="Note text." ) - protected List note; - - private static final long serialVersionUID = -1199888229L; - - public ClaimResponse() { - super(); - } - - /** - * @return {@link #identifier} (The Response Business Identifier.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (The Response Business Identifier.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #request} (Original request resource referrence.) - */ - public Reference getRequest() { - if (this.request == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.request"); - else if (Configuration.doAutoCreate()) - this.request = new Reference(); - return this.request; - } - - public boolean hasRequest() { - return this.request != null && !this.request.isEmpty(); - } - - /** - * @param value {@link #request} (Original request resource referrence.) - */ - public ClaimResponse setRequest(Reference value) { - this.request = value; - return this; - } - - /** - * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Original request resource referrence.) - */ - public OralHealthClaim getRequestTarget() { - if (this.requestTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.request"); - else if (Configuration.doAutoCreate()) - this.requestTarget = new OralHealthClaim(); - return this.requestTarget; - } - - /** - * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Original request resource referrence.) - */ - public ClaimResponse setRequestTarget(OralHealthClaim value) { - this.requestTarget = value; - return this; - } - - /** - * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) - */ - public Coding getRuleset() { - if (this.ruleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.ruleset"); - else if (Configuration.doAutoCreate()) - this.ruleset = new Coding(); - return this.ruleset; - } - - public boolean hasRuleset() { - return this.ruleset != null && !this.ruleset.isEmpty(); - } - - /** - * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) - */ - public ClaimResponse setRuleset(Coding value) { - this.ruleset = value; - return this; - } - - /** - * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public Coding getOriginalRuleset() { - if (this.originalRuleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.originalRuleset"); - else if (Configuration.doAutoCreate()) - this.originalRuleset = new Coding(); - return this.originalRuleset; - } - - public boolean hasOriginalRuleset() { - return this.originalRuleset != null && !this.originalRuleset.isEmpty(); - } - - /** - * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public ClaimResponse setOriginalRuleset(Coding value) { - this.originalRuleset = value; - return this; - } - - /** - * @return {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DateTimeType getCreatedElement() { - if (this.created == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.created"); - else if (Configuration.doAutoCreate()) - this.created = new DateTimeType(); - return this.created; - } - - public boolean hasCreatedElement() { - return this.created != null && !this.created.isEmpty(); - } - - public boolean hasCreated() { - return this.created != null && !this.created.isEmpty(); - } - - /** - * @param value {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public ClaimResponse setCreatedElement(DateTimeType value) { - this.created = value; - return this; - } - - /** - * @return The date when the enclosed suite of services were performed or completed. - */ - public Date getCreated() { - return this.created == null ? null : this.created.getValue(); - } - - /** - * @param value The date when the enclosed suite of services were performed or completed. - */ - public ClaimResponse setCreated(Date value) { - if (value == null) - this.created = null; - else { - if (this.created == null) - this.created = new DateTimeType(); - this.created.setValue(value); - } - return this; - } - - /** - * @return {@link #organization} (The Insurer who produced this adjudicated response.) - */ - public Reference getOrganization() { - if (this.organization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.organization"); - else if (Configuration.doAutoCreate()) - this.organization = new Reference(); - return this.organization; - } - - public boolean hasOrganization() { - return this.organization != null && !this.organization.isEmpty(); - } - - /** - * @param value {@link #organization} (The Insurer who produced this adjudicated response.) - */ - public ClaimResponse setOrganization(Reference value) { - this.organization = value; - return this; - } - - /** - * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) - */ - public Organization getOrganizationTarget() { - if (this.organizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.organization"); - else if (Configuration.doAutoCreate()) - this.organizationTarget = new Organization(); - return this.organizationTarget; - } - - /** - * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) - */ - public ClaimResponse setOrganizationTarget(Organization value) { - this.organizationTarget = value; - return this; - } - - /** - * @return {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public Reference getRequestProvider() { - if (this.requestProvider == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.requestProvider"); - else if (Configuration.doAutoCreate()) - this.requestProvider = new Reference(); - return this.requestProvider; - } - - public boolean hasRequestProvider() { - return this.requestProvider != null && !this.requestProvider.isEmpty(); - } - - /** - * @param value {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public ClaimResponse setRequestProvider(Reference value) { - this.requestProvider = value; - return this; - } - - /** - * @return {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public Practitioner getRequestProviderTarget() { - if (this.requestProviderTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.requestProvider"); - else if (Configuration.doAutoCreate()) - this.requestProviderTarget = new Practitioner(); - return this.requestProviderTarget; - } - - /** - * @param value {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public ClaimResponse setRequestProviderTarget(Practitioner value) { - this.requestProviderTarget = value; - return this; - } - - /** - * @return {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) - */ - public Reference getRequestOrganization() { - if (this.requestOrganization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.requestOrganization"); - else if (Configuration.doAutoCreate()) - this.requestOrganization = new Reference(); - return this.requestOrganization; - } - - public boolean hasRequestOrganization() { - return this.requestOrganization != null && !this.requestOrganization.isEmpty(); - } - - /** - * @param value {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) - */ - public ClaimResponse setRequestOrganization(Reference value) { - this.requestOrganization = value; - return this; - } - - /** - * @return {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) - */ - public Organization getRequestOrganizationTarget() { - if (this.requestOrganizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.requestOrganization"); - else if (Configuration.doAutoCreate()) - this.requestOrganizationTarget = new Organization(); - return this.requestOrganizationTarget; - } - - /** - * @param value {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) - */ - public ClaimResponse setRequestOrganizationTarget(Organization value) { - this.requestOrganizationTarget = value; - return this; - } - - /** - * @return {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value - */ - public Enumeration getOutcomeElement() { - if (this.outcome == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.outcome"); - else if (Configuration.doAutoCreate()) - this.outcome = new Enumeration(); - return this.outcome; - } - - public boolean hasOutcomeElement() { - return this.outcome != null && !this.outcome.isEmpty(); - } - - public boolean hasOutcome() { - return this.outcome != null && !this.outcome.isEmpty(); - } - - /** - * @param value {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value - */ - public ClaimResponse setOutcomeElement(Enumeration value) { - this.outcome = value; - return this; - } - - /** - * @return Transaction status: error, complete. - */ - public RSLink getOutcome() { - return this.outcome == null ? null : this.outcome.getValue(); - } - - /** - * @param value Transaction status: error, complete. - */ - public ClaimResponse setOutcome(RSLink value) { - if (value == null) - this.outcome = null; - else { - if (this.outcome == null) - this.outcome = new Enumeration(RSLink.ENUM_FACTORY); - this.outcome.setValue(value); - } - return this; - } - - /** - * @return {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value - */ - public StringType getDispositionElement() { - if (this.disposition == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.disposition"); - else if (Configuration.doAutoCreate()) - this.disposition = new StringType(); - return this.disposition; - } - - public boolean hasDispositionElement() { - return this.disposition != null && !this.disposition.isEmpty(); - } - - public boolean hasDisposition() { - return this.disposition != null && !this.disposition.isEmpty(); - } - - /** - * @param value {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value - */ - public ClaimResponse setDispositionElement(StringType value) { - this.disposition = value; - return this; - } - - /** - * @return A description of the status of the adjudication. - */ - public String getDisposition() { - return this.disposition == null ? null : this.disposition.getValue(); - } - - /** - * @param value A description of the status of the adjudication. - */ - public ClaimResponse setDisposition(String value) { - if (Utilities.noString(value)) - this.disposition = null; - else { - if (this.disposition == null) - this.disposition = new StringType(); - this.disposition.setValue(value); - } - return this; - } - - /** - * @return {@link #payeeType} (Party to be reimbursed: Subscriber, provider, other.) - */ - public Coding getPayeeType() { - if (this.payeeType == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.payeeType"); - else if (Configuration.doAutoCreate()) - this.payeeType = new Coding(); - return this.payeeType; - } - - public boolean hasPayeeType() { - return this.payeeType != null && !this.payeeType.isEmpty(); - } - - /** - * @param value {@link #payeeType} (Party to be reimbursed: Subscriber, provider, other.) - */ - public ClaimResponse setPayeeType(Coding value) { - this.payeeType = value; - return this; - } - - /** - * @return {@link #item} (The first tier service adjudications for submitted services.) - */ - public List getItem() { - if (this.item == null) - this.item = new ArrayList(); - return this.item; - } - - public boolean hasItem() { - if (this.item == null) - return false; - for (ItemsComponent item : this.item) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #item} (The first tier service adjudications for submitted services.) - */ - // syntactic sugar - public ItemsComponent addItem() { //3 - ItemsComponent t = new ItemsComponent(); - if (this.item == null) - this.item = new ArrayList(); - this.item.add(t); - return t; - } - - /** - * @return {@link #additem} (The first tier service adjudications for payor added services.) - */ - public List getAdditem() { - if (this.additem == null) - this.additem = new ArrayList(); - return this.additem; - } - - public boolean hasAdditem() { - if (this.additem == null) - return false; - for (AddedItemComponent item : this.additem) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #additem} (The first tier service adjudications for payor added services.) - */ - // syntactic sugar - public AddedItemComponent addAdditem() { //3 - AddedItemComponent t = new AddedItemComponent(); - if (this.additem == null) - this.additem = new ArrayList(); - this.additem.add(t); - return t; - } - - /** - * @return {@link #error} (Mutually exclusive with Services Provided (Item).) - */ - public List getError() { - if (this.error == null) - this.error = new ArrayList(); - return this.error; - } - - public boolean hasError() { - if (this.error == null) - return false; - for (ErrorsComponent item : this.error) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #error} (Mutually exclusive with Services Provided (Item).) - */ - // syntactic sugar - public ErrorsComponent addError() { //3 - ErrorsComponent t = new ErrorsComponent(); - if (this.error == null) - this.error = new ArrayList(); - this.error.add(t); - return t; - } - - /** - * @return {@link #totalCost} (The total cost of the services reported.) - */ - public Money getTotalCost() { - if (this.totalCost == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.totalCost"); - else if (Configuration.doAutoCreate()) - this.totalCost = new Money(); - return this.totalCost; - } - - public boolean hasTotalCost() { - return this.totalCost != null && !this.totalCost.isEmpty(); - } - - /** - * @param value {@link #totalCost} (The total cost of the services reported.) - */ - public ClaimResponse setTotalCost(Money value) { - this.totalCost = value; - return this; - } - - /** - * @return {@link #unallocDeductable} (The amount of deductable applied which was not allocated to any particular service line.) - */ - public Money getUnallocDeductable() { - if (this.unallocDeductable == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.unallocDeductable"); - else if (Configuration.doAutoCreate()) - this.unallocDeductable = new Money(); - return this.unallocDeductable; - } - - public boolean hasUnallocDeductable() { - return this.unallocDeductable != null && !this.unallocDeductable.isEmpty(); - } - - /** - * @param value {@link #unallocDeductable} (The amount of deductable applied which was not allocated to any particular service line.) - */ - public ClaimResponse setUnallocDeductable(Money value) { - this.unallocDeductable = value; - return this; - } - - /** - * @return {@link #totalBenefit} (Total amount of benefit payable (Equal to sum of the Benefit amounts from all detail lines and additions less the Unallocated Deductable).) - */ - public Money getTotalBenefit() { - if (this.totalBenefit == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.totalBenefit"); - else if (Configuration.doAutoCreate()) - this.totalBenefit = new Money(); - return this.totalBenefit; - } - - public boolean hasTotalBenefit() { - return this.totalBenefit != null && !this.totalBenefit.isEmpty(); - } - - /** - * @param value {@link #totalBenefit} (Total amount of benefit payable (Equal to sum of the Benefit amounts from all detail lines and additions less the Unallocated Deductable).) - */ - public ClaimResponse setTotalBenefit(Money value) { - this.totalBenefit = value; - return this; - } - - /** - * @return {@link #paymentAdjustment} (Adjustment to the payment of this transaction which is not related to adjudication of this transaction.) - */ - public Money getPaymentAdjustment() { - if (this.paymentAdjustment == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.paymentAdjustment"); - else if (Configuration.doAutoCreate()) - this.paymentAdjustment = new Money(); - return this.paymentAdjustment; - } - - public boolean hasPaymentAdjustment() { - return this.paymentAdjustment != null && !this.paymentAdjustment.isEmpty(); - } - - /** - * @param value {@link #paymentAdjustment} (Adjustment to the payment of this transaction which is not related to adjudication of this transaction.) - */ - public ClaimResponse setPaymentAdjustment(Money value) { - this.paymentAdjustment = value; - return this; - } - - /** - * @return {@link #paymentAdjustmentReason} (Reason for the payment adjustment.) - */ - public Coding getPaymentAdjustmentReason() { - if (this.paymentAdjustmentReason == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.paymentAdjustmentReason"); - else if (Configuration.doAutoCreate()) - this.paymentAdjustmentReason = new Coding(); - return this.paymentAdjustmentReason; - } - - public boolean hasPaymentAdjustmentReason() { - return this.paymentAdjustmentReason != null && !this.paymentAdjustmentReason.isEmpty(); - } - - /** - * @param value {@link #paymentAdjustmentReason} (Reason for the payment adjustment.) - */ - public ClaimResponse setPaymentAdjustmentReason(Coding value) { - this.paymentAdjustmentReason = value; - return this; - } - - /** - * @return {@link #paymentDate} (Estimated payment data.). This is the underlying object with id, value and extensions. The accessor "getPaymentDate" gives direct access to the value - */ - public DateType getPaymentDateElement() { - if (this.paymentDate == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.paymentDate"); - else if (Configuration.doAutoCreate()) - this.paymentDate = new DateType(); - return this.paymentDate; - } - - public boolean hasPaymentDateElement() { - return this.paymentDate != null && !this.paymentDate.isEmpty(); - } - - public boolean hasPaymentDate() { - return this.paymentDate != null && !this.paymentDate.isEmpty(); - } - - /** - * @param value {@link #paymentDate} (Estimated payment data.). This is the underlying object with id, value and extensions. The accessor "getPaymentDate" gives direct access to the value - */ - public ClaimResponse setPaymentDateElement(DateType value) { - this.paymentDate = value; - return this; - } - - /** - * @return Estimated payment data. - */ - public Date getPaymentDate() { - return this.paymentDate == null ? null : this.paymentDate.getValue(); - } - - /** - * @param value Estimated payment data. - */ - public ClaimResponse setPaymentDate(Date value) { - if (value == null) - this.paymentDate = null; - else { - if (this.paymentDate == null) - this.paymentDate = new DateType(); - this.paymentDate.setValue(value); - } - return this; - } - - /** - * @return {@link #paymentAmount} (Payable less any payment adjustment.) - */ - public Money getPaymentAmount() { - if (this.paymentAmount == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.paymentAmount"); - else if (Configuration.doAutoCreate()) - this.paymentAmount = new Money(); - return this.paymentAmount; - } - - public boolean hasPaymentAmount() { - return this.paymentAmount != null && !this.paymentAmount.isEmpty(); - } - - /** - * @param value {@link #paymentAmount} (Payable less any payment adjustment.) - */ - public ClaimResponse setPaymentAmount(Money value) { - this.paymentAmount = value; - return this; - } - - /** - * @return {@link #paymentRef} (Payment identifer.) - */ - public Identifier getPaymentRef() { - if (this.paymentRef == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.paymentRef"); - else if (Configuration.doAutoCreate()) - this.paymentRef = new Identifier(); - return this.paymentRef; - } - - public boolean hasPaymentRef() { - return this.paymentRef != null && !this.paymentRef.isEmpty(); - } - - /** - * @param value {@link #paymentRef} (Payment identifer.) - */ - public ClaimResponse setPaymentRef(Identifier value) { - this.paymentRef = value; - return this; - } - - /** - * @return {@link #reserved} (Status of funds reservation (For provider, for Patient, None).) - */ - public Coding getReserved() { - if (this.reserved == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.reserved"); - else if (Configuration.doAutoCreate()) - this.reserved = new Coding(); - return this.reserved; - } - - public boolean hasReserved() { - return this.reserved != null && !this.reserved.isEmpty(); - } - - /** - * @param value {@link #reserved} (Status of funds reservation (For provider, for Patient, None).) - */ - public ClaimResponse setReserved(Coding value) { - this.reserved = value; - return this; - } - - /** - * @return {@link #form} (The form to be used for printing the content.) - */ - public Coding getForm() { - if (this.form == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClaimResponse.form"); - else if (Configuration.doAutoCreate()) - this.form = new Coding(); - return this.form; - } - - public boolean hasForm() { - return this.form != null && !this.form.isEmpty(); - } - - /** - * @param value {@link #form} (The form to be used for printing the content.) - */ - public ClaimResponse setForm(Coding value) { - this.form = value; - return this; - } - - /** - * @return {@link #note} (Note text.) - */ - public List getNote() { - if (this.note == null) - this.note = new ArrayList(); - return this.note; - } - - public boolean hasNote() { - if (this.note == null) - return false; - for (NotesComponent item : this.note) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #note} (Note text.) - */ - // syntactic sugar - public NotesComponent addNote() { //3 - NotesComponent t = new NotesComponent(); - if (this.note == null) - this.note = new ArrayList(); - this.note.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "The Response Business Identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("request", "Reference(OralHealthClaim)", "Original request resource referrence.", 0, java.lang.Integer.MAX_VALUE, request)); - childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset)); - childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); - childrenList.add(new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, created)); - childrenList.add(new Property("organization", "Reference(Organization)", "The Insurer who produced this adjudicated response.", 0, java.lang.Integer.MAX_VALUE, organization)); - childrenList.add(new Property("requestProvider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestProvider)); - childrenList.add(new Property("requestOrganization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestOrganization)); - childrenList.add(new Property("outcome", "code", "Transaction status: error, complete.", 0, java.lang.Integer.MAX_VALUE, outcome)); - childrenList.add(new Property("disposition", "string", "A description of the status of the adjudication.", 0, java.lang.Integer.MAX_VALUE, disposition)); - childrenList.add(new Property("payeeType", "Coding", "Party to be reimbursed: Subscriber, provider, other.", 0, java.lang.Integer.MAX_VALUE, payeeType)); - childrenList.add(new Property("item", "", "The first tier service adjudications for submitted services.", 0, java.lang.Integer.MAX_VALUE, item)); - childrenList.add(new Property("additem", "", "The first tier service adjudications for payor added services.", 0, java.lang.Integer.MAX_VALUE, additem)); - childrenList.add(new Property("error", "", "Mutually exclusive with Services Provided (Item).", 0, java.lang.Integer.MAX_VALUE, error)); - childrenList.add(new Property("totalCost", "Money", "The total cost of the services reported.", 0, java.lang.Integer.MAX_VALUE, totalCost)); - childrenList.add(new Property("unallocDeductable", "Money", "The amount of deductable applied which was not allocated to any particular service line.", 0, java.lang.Integer.MAX_VALUE, unallocDeductable)); - childrenList.add(new Property("totalBenefit", "Money", "Total amount of benefit payable (Equal to sum of the Benefit amounts from all detail lines and additions less the Unallocated Deductable).", 0, java.lang.Integer.MAX_VALUE, totalBenefit)); - childrenList.add(new Property("paymentAdjustment", "Money", "Adjustment to the payment of this transaction which is not related to adjudication of this transaction.", 0, java.lang.Integer.MAX_VALUE, paymentAdjustment)); - childrenList.add(new Property("paymentAdjustmentReason", "Coding", "Reason for the payment adjustment.", 0, java.lang.Integer.MAX_VALUE, paymentAdjustmentReason)); - childrenList.add(new Property("paymentDate", "date", "Estimated payment data.", 0, java.lang.Integer.MAX_VALUE, paymentDate)); - childrenList.add(new Property("paymentAmount", "Money", "Payable less any payment adjustment.", 0, java.lang.Integer.MAX_VALUE, paymentAmount)); - childrenList.add(new Property("paymentRef", "Identifier", "Payment identifer.", 0, java.lang.Integer.MAX_VALUE, paymentRef)); - childrenList.add(new Property("reserved", "Coding", "Status of funds reservation (For provider, for Patient, None).", 0, java.lang.Integer.MAX_VALUE, reserved)); - childrenList.add(new Property("form", "Coding", "The form to be used for printing the content.", 0, java.lang.Integer.MAX_VALUE, form)); - childrenList.add(new Property("note", "", "Note text.", 0, java.lang.Integer.MAX_VALUE, note)); - } - - public ClaimResponse copy() { - ClaimResponse dst = new ClaimResponse(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.request = request == null ? null : request.copy(); - dst.ruleset = ruleset == null ? null : ruleset.copy(); - dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); - dst.created = created == null ? null : created.copy(); - dst.organization = organization == null ? null : organization.copy(); - dst.requestProvider = requestProvider == null ? null : requestProvider.copy(); - dst.requestOrganization = requestOrganization == null ? null : requestOrganization.copy(); - dst.outcome = outcome == null ? null : outcome.copy(); - dst.disposition = disposition == null ? null : disposition.copy(); - dst.payeeType = payeeType == null ? null : payeeType.copy(); - if (item != null) { - dst.item = new ArrayList(); - for (ItemsComponent i : item) - dst.item.add(i.copy()); - }; - if (additem != null) { - dst.additem = new ArrayList(); - for (AddedItemComponent i : additem) - dst.additem.add(i.copy()); - }; - if (error != null) { - dst.error = new ArrayList(); - for (ErrorsComponent i : error) - dst.error.add(i.copy()); - }; - dst.totalCost = totalCost == null ? null : totalCost.copy(); - dst.unallocDeductable = unallocDeductable == null ? null : unallocDeductable.copy(); - dst.totalBenefit = totalBenefit == null ? null : totalBenefit.copy(); - dst.paymentAdjustment = paymentAdjustment == null ? null : paymentAdjustment.copy(); - dst.paymentAdjustmentReason = paymentAdjustmentReason == null ? null : paymentAdjustmentReason.copy(); - dst.paymentDate = paymentDate == null ? null : paymentDate.copy(); - dst.paymentAmount = paymentAmount == null ? null : paymentAmount.copy(); - dst.paymentRef = paymentRef == null ? null : paymentRef.copy(); - dst.reserved = reserved == null ? null : reserved.copy(); - dst.form = form == null ? null : form.copy(); - if (note != null) { - dst.note = new ArrayList(); - for (NotesComponent i : note) - dst.note.add(i.copy()); - }; - return dst; - } - - protected ClaimResponse typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (request == null || request.isEmpty()) - && (ruleset == null || ruleset.isEmpty()) && (originalRuleset == null || originalRuleset.isEmpty()) - && (created == null || created.isEmpty()) && (organization == null || organization.isEmpty()) - && (requestProvider == null || requestProvider.isEmpty()) && (requestOrganization == null || requestOrganization.isEmpty()) - && (outcome == null || outcome.isEmpty()) && (disposition == null || disposition.isEmpty()) - && (payeeType == null || payeeType.isEmpty()) && (item == null || item.isEmpty()) && (additem == null || additem.isEmpty()) - && (error == null || error.isEmpty()) && (totalCost == null || totalCost.isEmpty()) && (unallocDeductable == null || unallocDeductable.isEmpty()) - && (totalBenefit == null || totalBenefit.isEmpty()) && (paymentAdjustment == null || paymentAdjustment.isEmpty()) - && (paymentAdjustmentReason == null || paymentAdjustmentReason.isEmpty()) && (paymentDate == null || paymentDate.isEmpty()) - && (paymentAmount == null || paymentAmount.isEmpty()) && (paymentRef == null || paymentRef.isEmpty()) - && (reserved == null || reserved.isEmpty()) && (form == null || form.isEmpty()) && (note == null || note.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.ClaimResponse; - } - - @SearchParamDefinition(name="identifier", path="ClaimResponse.identifier", description="The identity of the insurer", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import java.math.*; +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * This resource provides the adjudication details from the processing of a Claim resource. + */ +@ResourceDef(name="ClaimResponse", profile="http://hl7.org/fhir/Profile/ClaimResponse") +public class ClaimResponse extends DomainResource { + + public enum RSLink { + /** + * The processing completed without errors. + */ + COMPLETE, + /** + * The processing identified with errors. + */ + ERROR, + /** + * added to help the parsers + */ + NULL; + public static RSLink fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("complete".equals(codeString)) + return COMPLETE; + if ("error".equals(codeString)) + return ERROR; + throw new Exception("Unknown RSLink code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case COMPLETE: return "complete"; + case ERROR: return "error"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case COMPLETE: return ""; + case ERROR: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case COMPLETE: return "The processing completed without errors."; + case ERROR: return "The processing identified with errors."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case COMPLETE: return "complete"; + case ERROR: return "error"; + default: return "?"; + } + } + } + + public static class RSLinkEnumFactory implements EnumFactory { + public RSLink fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("complete".equals(codeString)) + return RSLink.COMPLETE; + if ("error".equals(codeString)) + return RSLink.ERROR; + throw new IllegalArgumentException("Unknown RSLink code '"+codeString+"'"); + } + public String toCode(RSLink code) { + if (code == RSLink.COMPLETE) + return "complete"; + if (code == RSLink.ERROR) + return "error"; + return "?"; + } + } + + @Block() + public static class ItemsComponent extends BackboneElement { + /** + * A service line number. + */ + @Child(name="sequenceLinkId", type={IntegerType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Service instance", formalDefinition="A service line number." ) + protected IntegerType sequenceLinkId; + + /** + * A list of note references to the notes provided below. + */ + @Child(name="noteNumber", type={IntegerType.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="List of note numbers which apply", formalDefinition="A list of note references to the notes provided below." ) + protected List noteNumber; + + /** + * The adjudications results. + */ + @Child(name="adjudication", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Adjudication details", formalDefinition="The adjudications results." ) + protected List adjudication; + + /** + * The second tier service adjudications for submitted services. + */ + @Child(name="detail", type={}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Detail line items", formalDefinition="The second tier service adjudications for submitted services." ) + protected List detail; + + private static final long serialVersionUID = -1140851161L; + + public ItemsComponent() { + super(); + } + + public ItemsComponent(IntegerType sequenceLinkId) { + super(); + this.sequenceLinkId = sequenceLinkId; + } + + /** + * @return {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value + */ + public IntegerType getSequenceLinkIdElement() { + if (this.sequenceLinkId == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.sequenceLinkId"); + else if (Configuration.doAutoCreate()) + this.sequenceLinkId = new IntegerType(); // bb + return this.sequenceLinkId; + } + + public boolean hasSequenceLinkIdElement() { + return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); + } + + public boolean hasSequenceLinkId() { + return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); + } + + /** + * @param value {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value + */ + public ItemsComponent setSequenceLinkIdElement(IntegerType value) { + this.sequenceLinkId = value; + return this; + } + + /** + * @return A service line number. + */ + public int getSequenceLinkId() { + return this.sequenceLinkId == null ? 0 : this.sequenceLinkId.getValue(); + } + + /** + * @param value A service line number. + */ + public ItemsComponent setSequenceLinkId(int value) { + if (this.sequenceLinkId == null) + this.sequenceLinkId = new IntegerType(); + this.sequenceLinkId.setValue(value); + return this; + } + + /** + * @return {@link #noteNumber} (A list of note references to the notes provided below.) + */ + public List getNoteNumber() { + if (this.noteNumber == null) + this.noteNumber = new ArrayList(); + return this.noteNumber; + } + + public boolean hasNoteNumber() { + if (this.noteNumber == null) + return false; + for (IntegerType item : this.noteNumber) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #noteNumber} (A list of note references to the notes provided below.) + */ + // syntactic sugar + public IntegerType addNoteNumberElement() {//2 + IntegerType t = new IntegerType(); + if (this.noteNumber == null) + this.noteNumber = new ArrayList(); + this.noteNumber.add(t); + return t; + } + + /** + * @param value {@link #noteNumber} (A list of note references to the notes provided below.) + */ + public ItemsComponent addNoteNumber(int value) { //1 + IntegerType t = new IntegerType(); + t.setValue(value); + if (this.noteNumber == null) + this.noteNumber = new ArrayList(); + this.noteNumber.add(t); + return this; + } + + /** + * @param value {@link #noteNumber} (A list of note references to the notes provided below.) + */ + public boolean hasNoteNumber(int value) { + if (this.noteNumber == null) + return false; + for (IntegerType v : this.noteNumber) + if (v.equals(value)) // integer + return true; + return false; + } + + /** + * @return {@link #adjudication} (The adjudications results.) + */ + public List getAdjudication() { + if (this.adjudication == null) + this.adjudication = new ArrayList(); + return this.adjudication; + } + + public boolean hasAdjudication() { + if (this.adjudication == null) + return false; + for (ItemAdjudicationComponent item : this.adjudication) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #adjudication} (The adjudications results.) + */ + // syntactic sugar + public ItemAdjudicationComponent addAdjudication() { //3 + ItemAdjudicationComponent t = new ItemAdjudicationComponent(); + if (this.adjudication == null) + this.adjudication = new ArrayList(); + this.adjudication.add(t); + return t; + } + + /** + * @return {@link #detail} (The second tier service adjudications for submitted services.) + */ + public List getDetail() { + if (this.detail == null) + this.detail = new ArrayList(); + return this.detail; + } + + public boolean hasDetail() { + if (this.detail == null) + return false; + for (ItemDetailComponent item : this.detail) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #detail} (The second tier service adjudications for submitted services.) + */ + // syntactic sugar + public ItemDetailComponent addDetail() { //3 + ItemDetailComponent t = new ItemDetailComponent(); + if (this.detail == null) + this.detail = new ArrayList(); + this.detail.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("sequenceLinkId", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequenceLinkId)); + childrenList.add(new Property("noteNumber", "integer", "A list of note references to the notes provided below.", 0, java.lang.Integer.MAX_VALUE, noteNumber)); + childrenList.add(new Property("adjudication", "", "The adjudications results.", 0, java.lang.Integer.MAX_VALUE, adjudication)); + childrenList.add(new Property("detail", "", "The second tier service adjudications for submitted services.", 0, java.lang.Integer.MAX_VALUE, detail)); + } + + public ItemsComponent copy() { + ItemsComponent dst = new ItemsComponent(); + copyValues(dst); + dst.sequenceLinkId = sequenceLinkId == null ? null : sequenceLinkId.copy(); + if (noteNumber != null) { + dst.noteNumber = new ArrayList(); + for (IntegerType i : noteNumber) + dst.noteNumber.add(i.copy()); + }; + if (adjudication != null) { + dst.adjudication = new ArrayList(); + for (ItemAdjudicationComponent i : adjudication) + dst.adjudication.add(i.copy()); + }; + if (detail != null) { + dst.detail = new ArrayList(); + for (ItemDetailComponent i : detail) + dst.detail.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ItemsComponent)) + return false; + ItemsComponent o = (ItemsComponent) other; + return compareDeep(sequenceLinkId, o.sequenceLinkId, true) && compareDeep(noteNumber, o.noteNumber, true) + && compareDeep(adjudication, o.adjudication, true) && compareDeep(detail, o.detail, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ItemsComponent)) + return false; + ItemsComponent o = (ItemsComponent) other; + return compareValues(sequenceLinkId, o.sequenceLinkId, true) && compareValues(noteNumber, o.noteNumber, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (sequenceLinkId == null || sequenceLinkId.isEmpty()) && (noteNumber == null || noteNumber.isEmpty()) + && (adjudication == null || adjudication.isEmpty()) && (detail == null || detail.isEmpty()) + ; + } + + } + + @Block() + public static class ItemAdjudicationComponent extends BackboneElement { + /** + * Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. + */ + @Child(name="code", type={Coding.class}, order=1, min=1, max=1) + @Description(shortDefinition="Adjudication category such as co-pay, eligible, benefit, etc.", formalDefinition="Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc." ) + protected Coding code; + + /** + * Monitory amount associated with the code. + */ + @Child(name="amount", type={Money.class}, order=2, min=0, max=1) + @Description(shortDefinition="Monitary amount", formalDefinition="Monitory amount associated with the code." ) + protected Money amount; + + /** + * A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + @Child(name="value", type={DecimalType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Non-monitory value", formalDefinition="A non-monitary value for example a percentage. Mutually exclusive to the amount element above." ) + protected DecimalType value; + + private static final long serialVersionUID = -949880587L; + + public ItemAdjudicationComponent() { + super(); + } + + public ItemAdjudicationComponent(Coding code) { + super(); + this.code = code; + } + + /** + * @return {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) + */ + public Coding getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemAdjudicationComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new Coding(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) + */ + public ItemAdjudicationComponent setCode(Coding value) { + this.code = value; + return this; + } + + /** + * @return {@link #amount} (Monitory amount associated with the code.) + */ + public Money getAmount() { + if (this.amount == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemAdjudicationComponent.amount"); + else if (Configuration.doAutoCreate()) + this.amount = new Money(); // cc + return this.amount; + } + + public boolean hasAmount() { + return this.amount != null && !this.amount.isEmpty(); + } + + /** + * @param value {@link #amount} (Monitory amount associated with the code.) + */ + public ItemAdjudicationComponent setAmount(Money value) { + this.amount = value; + return this; + } + + /** + * @return {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public DecimalType getValueElement() { + if (this.value == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemAdjudicationComponent.value"); + else if (Configuration.doAutoCreate()) + this.value = new DecimalType(); // bb + return this.value; + } + + public boolean hasValueElement() { + return this.value != null && !this.value.isEmpty(); + } + + public boolean hasValue() { + return this.value != null && !this.value.isEmpty(); + } + + /** + * @param value {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public ItemAdjudicationComponent setValueElement(DecimalType value) { + this.value = value; + return this; + } + + /** + * @return A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + public BigDecimal getValue() { + return this.value == null ? null : this.value.getValue(); + } + + /** + * @param value A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + public ItemAdjudicationComponent setValue(BigDecimal value) { + if (value == null) + this.value = null; + else { + if (this.value == null) + this.value = new DecimalType(); + this.value.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "Coding", "Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("amount", "Money", "Monitory amount associated with the code.", 0, java.lang.Integer.MAX_VALUE, amount)); + childrenList.add(new Property("value", "decimal", "A non-monitary value for example a percentage. Mutually exclusive to the amount element above.", 0, java.lang.Integer.MAX_VALUE, value)); + } + + public ItemAdjudicationComponent copy() { + ItemAdjudicationComponent dst = new ItemAdjudicationComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.amount = amount == null ? null : amount.copy(); + dst.value = value == null ? null : value.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ItemAdjudicationComponent)) + return false; + ItemAdjudicationComponent o = (ItemAdjudicationComponent) other; + return compareDeep(code, o.code, true) && compareDeep(amount, o.amount, true) && compareDeep(value, o.value, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ItemAdjudicationComponent)) + return false; + ItemAdjudicationComponent o = (ItemAdjudicationComponent) other; + return compareValues(value, o.value, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (amount == null || amount.isEmpty()) + && (value == null || value.isEmpty()); + } + + } + + @Block() + public static class ItemDetailComponent extends BackboneElement { + /** + * A service line number. + */ + @Child(name="sequenceLinkId", type={IntegerType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Service instance", formalDefinition="A service line number." ) + protected IntegerType sequenceLinkId; + + /** + * The adjudications results. + */ + @Child(name="adjudication", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Detail adjudication", formalDefinition="The adjudications results." ) + protected List adjudication; + + /** + * The third tier service adjudications for submitted services. + */ + @Child(name="subdetail", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Subdetail line items", formalDefinition="The third tier service adjudications for submitted services." ) + protected List subdetail; + + private static final long serialVersionUID = -812538L; + + public ItemDetailComponent() { + super(); + } + + public ItemDetailComponent(IntegerType sequenceLinkId) { + super(); + this.sequenceLinkId = sequenceLinkId; + } + + /** + * @return {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value + */ + public IntegerType getSequenceLinkIdElement() { + if (this.sequenceLinkId == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemDetailComponent.sequenceLinkId"); + else if (Configuration.doAutoCreate()) + this.sequenceLinkId = new IntegerType(); // bb + return this.sequenceLinkId; + } + + public boolean hasSequenceLinkIdElement() { + return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); + } + + public boolean hasSequenceLinkId() { + return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); + } + + /** + * @param value {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value + */ + public ItemDetailComponent setSequenceLinkIdElement(IntegerType value) { + this.sequenceLinkId = value; + return this; + } + + /** + * @return A service line number. + */ + public int getSequenceLinkId() { + return this.sequenceLinkId == null ? 0 : this.sequenceLinkId.getValue(); + } + + /** + * @param value A service line number. + */ + public ItemDetailComponent setSequenceLinkId(int value) { + if (this.sequenceLinkId == null) + this.sequenceLinkId = new IntegerType(); + this.sequenceLinkId.setValue(value); + return this; + } + + /** + * @return {@link #adjudication} (The adjudications results.) + */ + public List getAdjudication() { + if (this.adjudication == null) + this.adjudication = new ArrayList(); + return this.adjudication; + } + + public boolean hasAdjudication() { + if (this.adjudication == null) + return false; + for (DetailAdjudicationComponent item : this.adjudication) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #adjudication} (The adjudications results.) + */ + // syntactic sugar + public DetailAdjudicationComponent addAdjudication() { //3 + DetailAdjudicationComponent t = new DetailAdjudicationComponent(); + if (this.adjudication == null) + this.adjudication = new ArrayList(); + this.adjudication.add(t); + return t; + } + + /** + * @return {@link #subdetail} (The third tier service adjudications for submitted services.) + */ + public List getSubdetail() { + if (this.subdetail == null) + this.subdetail = new ArrayList(); + return this.subdetail; + } + + public boolean hasSubdetail() { + if (this.subdetail == null) + return false; + for (ItemSubdetailComponent item : this.subdetail) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #subdetail} (The third tier service adjudications for submitted services.) + */ + // syntactic sugar + public ItemSubdetailComponent addSubdetail() { //3 + ItemSubdetailComponent t = new ItemSubdetailComponent(); + if (this.subdetail == null) + this.subdetail = new ArrayList(); + this.subdetail.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("sequenceLinkId", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequenceLinkId)); + childrenList.add(new Property("adjudication", "", "The adjudications results.", 0, java.lang.Integer.MAX_VALUE, adjudication)); + childrenList.add(new Property("subdetail", "", "The third tier service adjudications for submitted services.", 0, java.lang.Integer.MAX_VALUE, subdetail)); + } + + public ItemDetailComponent copy() { + ItemDetailComponent dst = new ItemDetailComponent(); + copyValues(dst); + dst.sequenceLinkId = sequenceLinkId == null ? null : sequenceLinkId.copy(); + if (adjudication != null) { + dst.adjudication = new ArrayList(); + for (DetailAdjudicationComponent i : adjudication) + dst.adjudication.add(i.copy()); + }; + if (subdetail != null) { + dst.subdetail = new ArrayList(); + for (ItemSubdetailComponent i : subdetail) + dst.subdetail.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ItemDetailComponent)) + return false; + ItemDetailComponent o = (ItemDetailComponent) other; + return compareDeep(sequenceLinkId, o.sequenceLinkId, true) && compareDeep(adjudication, o.adjudication, true) + && compareDeep(subdetail, o.subdetail, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ItemDetailComponent)) + return false; + ItemDetailComponent o = (ItemDetailComponent) other; + return compareValues(sequenceLinkId, o.sequenceLinkId, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (sequenceLinkId == null || sequenceLinkId.isEmpty()) && (adjudication == null || adjudication.isEmpty()) + && (subdetail == null || subdetail.isEmpty()); + } + + } + + @Block() + public static class DetailAdjudicationComponent extends BackboneElement { + /** + * Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. + */ + @Child(name="code", type={Coding.class}, order=1, min=1, max=1) + @Description(shortDefinition="Adjudication category such as co-pay, eligible, benefit, etc.", formalDefinition="Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc." ) + protected Coding code; + + /** + * Monitory amount associated with the code. + */ + @Child(name="amount", type={Money.class}, order=2, min=0, max=1) + @Description(shortDefinition="Monitary amount", formalDefinition="Monitory amount associated with the code." ) + protected Money amount; + + /** + * A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + @Child(name="value", type={DecimalType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Non-monitory value", formalDefinition="A non-monitary value for example a percentage. Mutually exclusive to the amount element above." ) + protected DecimalType value; + + private static final long serialVersionUID = -949880587L; + + public DetailAdjudicationComponent() { + super(); + } + + public DetailAdjudicationComponent(Coding code) { + super(); + this.code = code; + } + + /** + * @return {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) + */ + public Coding getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DetailAdjudicationComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new Coding(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) + */ + public DetailAdjudicationComponent setCode(Coding value) { + this.code = value; + return this; + } + + /** + * @return {@link #amount} (Monitory amount associated with the code.) + */ + public Money getAmount() { + if (this.amount == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DetailAdjudicationComponent.amount"); + else if (Configuration.doAutoCreate()) + this.amount = new Money(); // cc + return this.amount; + } + + public boolean hasAmount() { + return this.amount != null && !this.amount.isEmpty(); + } + + /** + * @param value {@link #amount} (Monitory amount associated with the code.) + */ + public DetailAdjudicationComponent setAmount(Money value) { + this.amount = value; + return this; + } + + /** + * @return {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public DecimalType getValueElement() { + if (this.value == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DetailAdjudicationComponent.value"); + else if (Configuration.doAutoCreate()) + this.value = new DecimalType(); // bb + return this.value; + } + + public boolean hasValueElement() { + return this.value != null && !this.value.isEmpty(); + } + + public boolean hasValue() { + return this.value != null && !this.value.isEmpty(); + } + + /** + * @param value {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public DetailAdjudicationComponent setValueElement(DecimalType value) { + this.value = value; + return this; + } + + /** + * @return A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + public BigDecimal getValue() { + return this.value == null ? null : this.value.getValue(); + } + + /** + * @param value A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + public DetailAdjudicationComponent setValue(BigDecimal value) { + if (value == null) + this.value = null; + else { + if (this.value == null) + this.value = new DecimalType(); + this.value.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "Coding", "Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("amount", "Money", "Monitory amount associated with the code.", 0, java.lang.Integer.MAX_VALUE, amount)); + childrenList.add(new Property("value", "decimal", "A non-monitary value for example a percentage. Mutually exclusive to the amount element above.", 0, java.lang.Integer.MAX_VALUE, value)); + } + + public DetailAdjudicationComponent copy() { + DetailAdjudicationComponent dst = new DetailAdjudicationComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.amount = amount == null ? null : amount.copy(); + dst.value = value == null ? null : value.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DetailAdjudicationComponent)) + return false; + DetailAdjudicationComponent o = (DetailAdjudicationComponent) other; + return compareDeep(code, o.code, true) && compareDeep(amount, o.amount, true) && compareDeep(value, o.value, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DetailAdjudicationComponent)) + return false; + DetailAdjudicationComponent o = (DetailAdjudicationComponent) other; + return compareValues(value, o.value, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (amount == null || amount.isEmpty()) + && (value == null || value.isEmpty()); + } + + } + + @Block() + public static class ItemSubdetailComponent extends BackboneElement { + /** + * A service line number. + */ + @Child(name="sequenceLinkId", type={IntegerType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Service instance", formalDefinition="A service line number." ) + protected IntegerType sequenceLinkId; + + /** + * The adjudications results. + */ + @Child(name="adjudication", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Subdetail adjudication", formalDefinition="The adjudications results." ) + protected List adjudication; + + private static final long serialVersionUID = -1143083130L; + + public ItemSubdetailComponent() { + super(); + } + + public ItemSubdetailComponent(IntegerType sequenceLinkId) { + super(); + this.sequenceLinkId = sequenceLinkId; + } + + /** + * @return {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value + */ + public IntegerType getSequenceLinkIdElement() { + if (this.sequenceLinkId == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemSubdetailComponent.sequenceLinkId"); + else if (Configuration.doAutoCreate()) + this.sequenceLinkId = new IntegerType(); // bb + return this.sequenceLinkId; + } + + public boolean hasSequenceLinkIdElement() { + return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); + } + + public boolean hasSequenceLinkId() { + return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); + } + + /** + * @param value {@link #sequenceLinkId} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value + */ + public ItemSubdetailComponent setSequenceLinkIdElement(IntegerType value) { + this.sequenceLinkId = value; + return this; + } + + /** + * @return A service line number. + */ + public int getSequenceLinkId() { + return this.sequenceLinkId == null ? 0 : this.sequenceLinkId.getValue(); + } + + /** + * @param value A service line number. + */ + public ItemSubdetailComponent setSequenceLinkId(int value) { + if (this.sequenceLinkId == null) + this.sequenceLinkId = new IntegerType(); + this.sequenceLinkId.setValue(value); + return this; + } + + /** + * @return {@link #adjudication} (The adjudications results.) + */ + public List getAdjudication() { + if (this.adjudication == null) + this.adjudication = new ArrayList(); + return this.adjudication; + } + + public boolean hasAdjudication() { + if (this.adjudication == null) + return false; + for (SubdetailAdjudicationComponent item : this.adjudication) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #adjudication} (The adjudications results.) + */ + // syntactic sugar + public SubdetailAdjudicationComponent addAdjudication() { //3 + SubdetailAdjudicationComponent t = new SubdetailAdjudicationComponent(); + if (this.adjudication == null) + this.adjudication = new ArrayList(); + this.adjudication.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("sequenceLinkId", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequenceLinkId)); + childrenList.add(new Property("adjudication", "", "The adjudications results.", 0, java.lang.Integer.MAX_VALUE, adjudication)); + } + + public ItemSubdetailComponent copy() { + ItemSubdetailComponent dst = new ItemSubdetailComponent(); + copyValues(dst); + dst.sequenceLinkId = sequenceLinkId == null ? null : sequenceLinkId.copy(); + if (adjudication != null) { + dst.adjudication = new ArrayList(); + for (SubdetailAdjudicationComponent i : adjudication) + dst.adjudication.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ItemSubdetailComponent)) + return false; + ItemSubdetailComponent o = (ItemSubdetailComponent) other; + return compareDeep(sequenceLinkId, o.sequenceLinkId, true) && compareDeep(adjudication, o.adjudication, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ItemSubdetailComponent)) + return false; + ItemSubdetailComponent o = (ItemSubdetailComponent) other; + return compareValues(sequenceLinkId, o.sequenceLinkId, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (sequenceLinkId == null || sequenceLinkId.isEmpty()) && (adjudication == null || adjudication.isEmpty()) + ; + } + + } + + @Block() + public static class SubdetailAdjudicationComponent extends BackboneElement { + /** + * Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. + */ + @Child(name="code", type={Coding.class}, order=1, min=1, max=1) + @Description(shortDefinition="Adjudication category such as co-pay, eligible, benefit, etc.", formalDefinition="Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc." ) + protected Coding code; + + /** + * Monitory amount associated with the code. + */ + @Child(name="amount", type={Money.class}, order=2, min=0, max=1) + @Description(shortDefinition="Monitary amount", formalDefinition="Monitory amount associated with the code." ) + protected Money amount; + + /** + * A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + @Child(name="value", type={DecimalType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Non-monitory value", formalDefinition="A non-monitary value for example a percentage. Mutually exclusive to the amount element above." ) + protected DecimalType value; + + private static final long serialVersionUID = -949880587L; + + public SubdetailAdjudicationComponent() { + super(); + } + + public SubdetailAdjudicationComponent(Coding code) { + super(); + this.code = code; + } + + /** + * @return {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) + */ + public Coding getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SubdetailAdjudicationComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new Coding(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) + */ + public SubdetailAdjudicationComponent setCode(Coding value) { + this.code = value; + return this; + } + + /** + * @return {@link #amount} (Monitory amount associated with the code.) + */ + public Money getAmount() { + if (this.amount == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SubdetailAdjudicationComponent.amount"); + else if (Configuration.doAutoCreate()) + this.amount = new Money(); // cc + return this.amount; + } + + public boolean hasAmount() { + return this.amount != null && !this.amount.isEmpty(); + } + + /** + * @param value {@link #amount} (Monitory amount associated with the code.) + */ + public SubdetailAdjudicationComponent setAmount(Money value) { + this.amount = value; + return this; + } + + /** + * @return {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public DecimalType getValueElement() { + if (this.value == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SubdetailAdjudicationComponent.value"); + else if (Configuration.doAutoCreate()) + this.value = new DecimalType(); // bb + return this.value; + } + + public boolean hasValueElement() { + return this.value != null && !this.value.isEmpty(); + } + + public boolean hasValue() { + return this.value != null && !this.value.isEmpty(); + } + + /** + * @param value {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public SubdetailAdjudicationComponent setValueElement(DecimalType value) { + this.value = value; + return this; + } + + /** + * @return A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + public BigDecimal getValue() { + return this.value == null ? null : this.value.getValue(); + } + + /** + * @param value A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + public SubdetailAdjudicationComponent setValue(BigDecimal value) { + if (value == null) + this.value = null; + else { + if (this.value == null) + this.value = new DecimalType(); + this.value.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "Coding", "Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("amount", "Money", "Monitory amount associated with the code.", 0, java.lang.Integer.MAX_VALUE, amount)); + childrenList.add(new Property("value", "decimal", "A non-monitary value for example a percentage. Mutually exclusive to the amount element above.", 0, java.lang.Integer.MAX_VALUE, value)); + } + + public SubdetailAdjudicationComponent copy() { + SubdetailAdjudicationComponent dst = new SubdetailAdjudicationComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.amount = amount == null ? null : amount.copy(); + dst.value = value == null ? null : value.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof SubdetailAdjudicationComponent)) + return false; + SubdetailAdjudicationComponent o = (SubdetailAdjudicationComponent) other; + return compareDeep(code, o.code, true) && compareDeep(amount, o.amount, true) && compareDeep(value, o.value, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof SubdetailAdjudicationComponent)) + return false; + SubdetailAdjudicationComponent o = (SubdetailAdjudicationComponent) other; + return compareValues(value, o.value, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (amount == null || amount.isEmpty()) + && (value == null || value.isEmpty()); + } + + } + + @Block() + public static class AddedItemComponent extends BackboneElement { + /** + * List of input service items which this service line is intended to replace. + */ + @Child(name="sequenceLinkId", type={IntegerType.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Service instances", formalDefinition="List of input service items which this service line is intended to replace." ) + protected List sequenceLinkId; + + /** + * A code to indicate the Professional Service or Product supplied. + */ + @Child(name="service", type={Coding.class}, order=2, min=1, max=1) + @Description(shortDefinition="Group, Service or Product", formalDefinition="A code to indicate the Professional Service or Product supplied." ) + protected Coding service; + + /** + * The fee charged for the professional service or product.. + */ + @Child(name="fee", type={Money.class}, order=3, min=0, max=1) + @Description(shortDefinition="Professional fee or Product charge", formalDefinition="The fee charged for the professional service or product.." ) + protected Money fee; + + /** + * A list of note references to the notes provided below. + */ + @Child(name="noteNumberLinkId", type={IntegerType.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="List of note numbers which apply", formalDefinition="A list of note references to the notes provided below." ) + protected List noteNumberLinkId; + + /** + * The adjudications results. + */ + @Child(name="adjudication", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Added items adjudication", formalDefinition="The adjudications results." ) + protected List adjudication; + + /** + * The second tier service adjudications for payor added services. + */ + @Child(name="detail", type={}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Added items details", formalDefinition="The second tier service adjudications for payor added services." ) + protected List detail; + + private static final long serialVersionUID = -1703432926L; + + public AddedItemComponent() { + super(); + } + + public AddedItemComponent(Coding service) { + super(); + this.service = service; + } + + /** + * @return {@link #sequenceLinkId} (List of input service items which this service line is intended to replace.) + */ + public List getSequenceLinkId() { + if (this.sequenceLinkId == null) + this.sequenceLinkId = new ArrayList(); + return this.sequenceLinkId; + } + + public boolean hasSequenceLinkId() { + if (this.sequenceLinkId == null) + return false; + for (IntegerType item : this.sequenceLinkId) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #sequenceLinkId} (List of input service items which this service line is intended to replace.) + */ + // syntactic sugar + public IntegerType addSequenceLinkIdElement() {//2 + IntegerType t = new IntegerType(); + if (this.sequenceLinkId == null) + this.sequenceLinkId = new ArrayList(); + this.sequenceLinkId.add(t); + return t; + } + + /** + * @param value {@link #sequenceLinkId} (List of input service items which this service line is intended to replace.) + */ + public AddedItemComponent addSequenceLinkId(int value) { //1 + IntegerType t = new IntegerType(); + t.setValue(value); + if (this.sequenceLinkId == null) + this.sequenceLinkId = new ArrayList(); + this.sequenceLinkId.add(t); + return this; + } + + /** + * @param value {@link #sequenceLinkId} (List of input service items which this service line is intended to replace.) + */ + public boolean hasSequenceLinkId(int value) { + if (this.sequenceLinkId == null) + return false; + for (IntegerType v : this.sequenceLinkId) + if (v.equals(value)) // integer + return true; + return false; + } + + /** + * @return {@link #service} (A code to indicate the Professional Service or Product supplied.) + */ + public Coding getService() { + if (this.service == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AddedItemComponent.service"); + else if (Configuration.doAutoCreate()) + this.service = new Coding(); // cc + return this.service; + } + + public boolean hasService() { + return this.service != null && !this.service.isEmpty(); + } + + /** + * @param value {@link #service} (A code to indicate the Professional Service or Product supplied.) + */ + public AddedItemComponent setService(Coding value) { + this.service = value; + return this; + } + + /** + * @return {@link #fee} (The fee charged for the professional service or product..) + */ + public Money getFee() { + if (this.fee == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AddedItemComponent.fee"); + else if (Configuration.doAutoCreate()) + this.fee = new Money(); // cc + return this.fee; + } + + public boolean hasFee() { + return this.fee != null && !this.fee.isEmpty(); + } + + /** + * @param value {@link #fee} (The fee charged for the professional service or product..) + */ + public AddedItemComponent setFee(Money value) { + this.fee = value; + return this; + } + + /** + * @return {@link #noteNumberLinkId} (A list of note references to the notes provided below.) + */ + public List getNoteNumberLinkId() { + if (this.noteNumberLinkId == null) + this.noteNumberLinkId = new ArrayList(); + return this.noteNumberLinkId; + } + + public boolean hasNoteNumberLinkId() { + if (this.noteNumberLinkId == null) + return false; + for (IntegerType item : this.noteNumberLinkId) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #noteNumberLinkId} (A list of note references to the notes provided below.) + */ + // syntactic sugar + public IntegerType addNoteNumberLinkIdElement() {//2 + IntegerType t = new IntegerType(); + if (this.noteNumberLinkId == null) + this.noteNumberLinkId = new ArrayList(); + this.noteNumberLinkId.add(t); + return t; + } + + /** + * @param value {@link #noteNumberLinkId} (A list of note references to the notes provided below.) + */ + public AddedItemComponent addNoteNumberLinkId(int value) { //1 + IntegerType t = new IntegerType(); + t.setValue(value); + if (this.noteNumberLinkId == null) + this.noteNumberLinkId = new ArrayList(); + this.noteNumberLinkId.add(t); + return this; + } + + /** + * @param value {@link #noteNumberLinkId} (A list of note references to the notes provided below.) + */ + public boolean hasNoteNumberLinkId(int value) { + if (this.noteNumberLinkId == null) + return false; + for (IntegerType v : this.noteNumberLinkId) + if (v.equals(value)) // integer + return true; + return false; + } + + /** + * @return {@link #adjudication} (The adjudications results.) + */ + public List getAdjudication() { + if (this.adjudication == null) + this.adjudication = new ArrayList(); + return this.adjudication; + } + + public boolean hasAdjudication() { + if (this.adjudication == null) + return false; + for (AddedItemAdjudicationComponent item : this.adjudication) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #adjudication} (The adjudications results.) + */ + // syntactic sugar + public AddedItemAdjudicationComponent addAdjudication() { //3 + AddedItemAdjudicationComponent t = new AddedItemAdjudicationComponent(); + if (this.adjudication == null) + this.adjudication = new ArrayList(); + this.adjudication.add(t); + return t; + } + + /** + * @return {@link #detail} (The second tier service adjudications for payor added services.) + */ + public List getDetail() { + if (this.detail == null) + this.detail = new ArrayList(); + return this.detail; + } + + public boolean hasDetail() { + if (this.detail == null) + return false; + for (AddedItemsDetailComponent item : this.detail) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #detail} (The second tier service adjudications for payor added services.) + */ + // syntactic sugar + public AddedItemsDetailComponent addDetail() { //3 + AddedItemsDetailComponent t = new AddedItemsDetailComponent(); + if (this.detail == null) + this.detail = new ArrayList(); + this.detail.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("sequenceLinkId", "integer", "List of input service items which this service line is intended to replace.", 0, java.lang.Integer.MAX_VALUE, sequenceLinkId)); + childrenList.add(new Property("service", "Coding", "A code to indicate the Professional Service or Product supplied.", 0, java.lang.Integer.MAX_VALUE, service)); + childrenList.add(new Property("fee", "Money", "The fee charged for the professional service or product..", 0, java.lang.Integer.MAX_VALUE, fee)); + childrenList.add(new Property("noteNumberLinkId", "integer", "A list of note references to the notes provided below.", 0, java.lang.Integer.MAX_VALUE, noteNumberLinkId)); + childrenList.add(new Property("adjudication", "", "The adjudications results.", 0, java.lang.Integer.MAX_VALUE, adjudication)); + childrenList.add(new Property("detail", "", "The second tier service adjudications for payor added services.", 0, java.lang.Integer.MAX_VALUE, detail)); + } + + public AddedItemComponent copy() { + AddedItemComponent dst = new AddedItemComponent(); + copyValues(dst); + if (sequenceLinkId != null) { + dst.sequenceLinkId = new ArrayList(); + for (IntegerType i : sequenceLinkId) + dst.sequenceLinkId.add(i.copy()); + }; + dst.service = service == null ? null : service.copy(); + dst.fee = fee == null ? null : fee.copy(); + if (noteNumberLinkId != null) { + dst.noteNumberLinkId = new ArrayList(); + for (IntegerType i : noteNumberLinkId) + dst.noteNumberLinkId.add(i.copy()); + }; + if (adjudication != null) { + dst.adjudication = new ArrayList(); + for (AddedItemAdjudicationComponent i : adjudication) + dst.adjudication.add(i.copy()); + }; + if (detail != null) { + dst.detail = new ArrayList(); + for (AddedItemsDetailComponent i : detail) + dst.detail.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof AddedItemComponent)) + return false; + AddedItemComponent o = (AddedItemComponent) other; + return compareDeep(sequenceLinkId, o.sequenceLinkId, true) && compareDeep(service, o.service, true) + && compareDeep(fee, o.fee, true) && compareDeep(noteNumberLinkId, o.noteNumberLinkId, true) && compareDeep(adjudication, o.adjudication, true) + && compareDeep(detail, o.detail, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof AddedItemComponent)) + return false; + AddedItemComponent o = (AddedItemComponent) other; + return compareValues(sequenceLinkId, o.sequenceLinkId, true) && compareValues(noteNumberLinkId, o.noteNumberLinkId, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (sequenceLinkId == null || sequenceLinkId.isEmpty()) && (service == null || service.isEmpty()) + && (fee == null || fee.isEmpty()) && (noteNumberLinkId == null || noteNumberLinkId.isEmpty()) + && (adjudication == null || adjudication.isEmpty()) && (detail == null || detail.isEmpty()) + ; + } + + } + + @Block() + public static class AddedItemAdjudicationComponent extends BackboneElement { + /** + * Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. + */ + @Child(name="code", type={Coding.class}, order=1, min=1, max=1) + @Description(shortDefinition="Adjudication category such as co-pay, eligible, benefit, etc.", formalDefinition="Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc." ) + protected Coding code; + + /** + * Monitory amount associated with the code. + */ + @Child(name="amount", type={Money.class}, order=2, min=0, max=1) + @Description(shortDefinition="Monitary amount", formalDefinition="Monitory amount associated with the code." ) + protected Money amount; + + /** + * A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + @Child(name="value", type={DecimalType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Non-monitory value", formalDefinition="A non-monitary value for example a percentage. Mutually exclusive to the amount element above." ) + protected DecimalType value; + + private static final long serialVersionUID = -949880587L; + + public AddedItemAdjudicationComponent() { + super(); + } + + public AddedItemAdjudicationComponent(Coding code) { + super(); + this.code = code; + } + + /** + * @return {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) + */ + public Coding getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AddedItemAdjudicationComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new Coding(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) + */ + public AddedItemAdjudicationComponent setCode(Coding value) { + this.code = value; + return this; + } + + /** + * @return {@link #amount} (Monitory amount associated with the code.) + */ + public Money getAmount() { + if (this.amount == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AddedItemAdjudicationComponent.amount"); + else if (Configuration.doAutoCreate()) + this.amount = new Money(); // cc + return this.amount; + } + + public boolean hasAmount() { + return this.amount != null && !this.amount.isEmpty(); + } + + /** + * @param value {@link #amount} (Monitory amount associated with the code.) + */ + public AddedItemAdjudicationComponent setAmount(Money value) { + this.amount = value; + return this; + } + + /** + * @return {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public DecimalType getValueElement() { + if (this.value == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AddedItemAdjudicationComponent.value"); + else if (Configuration.doAutoCreate()) + this.value = new DecimalType(); // bb + return this.value; + } + + public boolean hasValueElement() { + return this.value != null && !this.value.isEmpty(); + } + + public boolean hasValue() { + return this.value != null && !this.value.isEmpty(); + } + + /** + * @param value {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public AddedItemAdjudicationComponent setValueElement(DecimalType value) { + this.value = value; + return this; + } + + /** + * @return A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + public BigDecimal getValue() { + return this.value == null ? null : this.value.getValue(); + } + + /** + * @param value A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + public AddedItemAdjudicationComponent setValue(BigDecimal value) { + if (value == null) + this.value = null; + else { + if (this.value == null) + this.value = new DecimalType(); + this.value.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "Coding", "Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("amount", "Money", "Monitory amount associated with the code.", 0, java.lang.Integer.MAX_VALUE, amount)); + childrenList.add(new Property("value", "decimal", "A non-monitary value for example a percentage. Mutually exclusive to the amount element above.", 0, java.lang.Integer.MAX_VALUE, value)); + } + + public AddedItemAdjudicationComponent copy() { + AddedItemAdjudicationComponent dst = new AddedItemAdjudicationComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.amount = amount == null ? null : amount.copy(); + dst.value = value == null ? null : value.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof AddedItemAdjudicationComponent)) + return false; + AddedItemAdjudicationComponent o = (AddedItemAdjudicationComponent) other; + return compareDeep(code, o.code, true) && compareDeep(amount, o.amount, true) && compareDeep(value, o.value, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof AddedItemAdjudicationComponent)) + return false; + AddedItemAdjudicationComponent o = (AddedItemAdjudicationComponent) other; + return compareValues(value, o.value, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (amount == null || amount.isEmpty()) + && (value == null || value.isEmpty()); + } + + } + + @Block() + public static class AddedItemsDetailComponent extends BackboneElement { + /** + * A code to indicate the Professional Service or Product supplied. + */ + @Child(name="service", type={Coding.class}, order=1, min=1, max=1) + @Description(shortDefinition="Service or Product", formalDefinition="A code to indicate the Professional Service or Product supplied." ) + protected Coding service; + + /** + * The fee charged for the professional service or product.. + */ + @Child(name="fee", type={Money.class}, order=2, min=0, max=1) + @Description(shortDefinition="Professional fee or Product charge", formalDefinition="The fee charged for the professional service or product.." ) + protected Money fee; + + /** + * The adjudications results. + */ + @Child(name="adjudication", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Added items detail adjudication", formalDefinition="The adjudications results." ) + protected List adjudication; + + private static final long serialVersionUID = -2104242020L; + + public AddedItemsDetailComponent() { + super(); + } + + public AddedItemsDetailComponent(Coding service) { + super(); + this.service = service; + } + + /** + * @return {@link #service} (A code to indicate the Professional Service or Product supplied.) + */ + public Coding getService() { + if (this.service == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AddedItemsDetailComponent.service"); + else if (Configuration.doAutoCreate()) + this.service = new Coding(); // cc + return this.service; + } + + public boolean hasService() { + return this.service != null && !this.service.isEmpty(); + } + + /** + * @param value {@link #service} (A code to indicate the Professional Service or Product supplied.) + */ + public AddedItemsDetailComponent setService(Coding value) { + this.service = value; + return this; + } + + /** + * @return {@link #fee} (The fee charged for the professional service or product..) + */ + public Money getFee() { + if (this.fee == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AddedItemsDetailComponent.fee"); + else if (Configuration.doAutoCreate()) + this.fee = new Money(); // cc + return this.fee; + } + + public boolean hasFee() { + return this.fee != null && !this.fee.isEmpty(); + } + + /** + * @param value {@link #fee} (The fee charged for the professional service or product..) + */ + public AddedItemsDetailComponent setFee(Money value) { + this.fee = value; + return this; + } + + /** + * @return {@link #adjudication} (The adjudications results.) + */ + public List getAdjudication() { + if (this.adjudication == null) + this.adjudication = new ArrayList(); + return this.adjudication; + } + + public boolean hasAdjudication() { + if (this.adjudication == null) + return false; + for (AddedItemDetailAdjudicationComponent item : this.adjudication) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #adjudication} (The adjudications results.) + */ + // syntactic sugar + public AddedItemDetailAdjudicationComponent addAdjudication() { //3 + AddedItemDetailAdjudicationComponent t = new AddedItemDetailAdjudicationComponent(); + if (this.adjudication == null) + this.adjudication = new ArrayList(); + this.adjudication.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("service", "Coding", "A code to indicate the Professional Service or Product supplied.", 0, java.lang.Integer.MAX_VALUE, service)); + childrenList.add(new Property("fee", "Money", "The fee charged for the professional service or product..", 0, java.lang.Integer.MAX_VALUE, fee)); + childrenList.add(new Property("adjudication", "", "The adjudications results.", 0, java.lang.Integer.MAX_VALUE, adjudication)); + } + + public AddedItemsDetailComponent copy() { + AddedItemsDetailComponent dst = new AddedItemsDetailComponent(); + copyValues(dst); + dst.service = service == null ? null : service.copy(); + dst.fee = fee == null ? null : fee.copy(); + if (adjudication != null) { + dst.adjudication = new ArrayList(); + for (AddedItemDetailAdjudicationComponent i : adjudication) + dst.adjudication.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof AddedItemsDetailComponent)) + return false; + AddedItemsDetailComponent o = (AddedItemsDetailComponent) other; + return compareDeep(service, o.service, true) && compareDeep(fee, o.fee, true) && compareDeep(adjudication, o.adjudication, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof AddedItemsDetailComponent)) + return false; + AddedItemsDetailComponent o = (AddedItemsDetailComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (service == null || service.isEmpty()) && (fee == null || fee.isEmpty()) + && (adjudication == null || adjudication.isEmpty()); + } + + } + + @Block() + public static class AddedItemDetailAdjudicationComponent extends BackboneElement { + /** + * Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc. + */ + @Child(name="code", type={Coding.class}, order=1, min=1, max=1) + @Description(shortDefinition="Adjudication category such as co-pay, eligible, benefit, etc.", formalDefinition="Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc." ) + protected Coding code; + + /** + * Monitory amount associated with the code. + */ + @Child(name="amount", type={Money.class}, order=2, min=0, max=1) + @Description(shortDefinition="Monitary amount", formalDefinition="Monitory amount associated with the code." ) + protected Money amount; + + /** + * A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + @Child(name="value", type={DecimalType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Non-monitory value", formalDefinition="A non-monitary value for example a percentage. Mutually exclusive to the amount element above." ) + protected DecimalType value; + + private static final long serialVersionUID = -949880587L; + + public AddedItemDetailAdjudicationComponent() { + super(); + } + + public AddedItemDetailAdjudicationComponent(Coding code) { + super(); + this.code = code; + } + + /** + * @return {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) + */ + public Coding getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AddedItemDetailAdjudicationComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new Coding(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.) + */ + public AddedItemDetailAdjudicationComponent setCode(Coding value) { + this.code = value; + return this; + } + + /** + * @return {@link #amount} (Monitory amount associated with the code.) + */ + public Money getAmount() { + if (this.amount == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AddedItemDetailAdjudicationComponent.amount"); + else if (Configuration.doAutoCreate()) + this.amount = new Money(); // cc + return this.amount; + } + + public boolean hasAmount() { + return this.amount != null && !this.amount.isEmpty(); + } + + /** + * @param value {@link #amount} (Monitory amount associated with the code.) + */ + public AddedItemDetailAdjudicationComponent setAmount(Money value) { + this.amount = value; + return this; + } + + /** + * @return {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public DecimalType getValueElement() { + if (this.value == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create AddedItemDetailAdjudicationComponent.value"); + else if (Configuration.doAutoCreate()) + this.value = new DecimalType(); // bb + return this.value; + } + + public boolean hasValueElement() { + return this.value != null && !this.value.isEmpty(); + } + + public boolean hasValue() { + return this.value != null && !this.value.isEmpty(); + } + + /** + * @param value {@link #value} (A non-monitary value for example a percentage. Mutually exclusive to the amount element above.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public AddedItemDetailAdjudicationComponent setValueElement(DecimalType value) { + this.value = value; + return this; + } + + /** + * @return A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + public BigDecimal getValue() { + return this.value == null ? null : this.value.getValue(); + } + + /** + * @param value A non-monitary value for example a percentage. Mutually exclusive to the amount element above. + */ + public AddedItemDetailAdjudicationComponent setValue(BigDecimal value) { + if (value == null) + this.value = null; + else { + if (this.value == null) + this.value = new DecimalType(); + this.value.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "Coding", "Code indicating: Co-Pay, deductable, elegible, benefit, tax, etc.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("amount", "Money", "Monitory amount associated with the code.", 0, java.lang.Integer.MAX_VALUE, amount)); + childrenList.add(new Property("value", "decimal", "A non-monitary value for example a percentage. Mutually exclusive to the amount element above.", 0, java.lang.Integer.MAX_VALUE, value)); + } + + public AddedItemDetailAdjudicationComponent copy() { + AddedItemDetailAdjudicationComponent dst = new AddedItemDetailAdjudicationComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.amount = amount == null ? null : amount.copy(); + dst.value = value == null ? null : value.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof AddedItemDetailAdjudicationComponent)) + return false; + AddedItemDetailAdjudicationComponent o = (AddedItemDetailAdjudicationComponent) other; + return compareDeep(code, o.code, true) && compareDeep(amount, o.amount, true) && compareDeep(value, o.value, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof AddedItemDetailAdjudicationComponent)) + return false; + AddedItemDetailAdjudicationComponent o = (AddedItemDetailAdjudicationComponent) other; + return compareValues(value, o.value, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (amount == null || amount.isEmpty()) + && (value == null || value.isEmpty()); + } + + } + + @Block() + public static class ErrorsComponent extends BackboneElement { + /** + * The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere. + */ + @Child(name="sequenceLinkId", type={IntegerType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Item sequence number", formalDefinition="The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere." ) + protected IntegerType sequenceLinkId; + + /** + * The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. + */ + @Child(name="detailSequenceLinkId", type={IntegerType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Detail sequence number", formalDefinition="The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition." ) + protected IntegerType detailSequenceLinkId; + + /** + * The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. + */ + @Child(name="subdetailSequenceLinkId", type={IntegerType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Subdetail sequence number", formalDefinition="The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition." ) + protected IntegerType subdetailSequenceLinkId; + + /** + * An error code,froma specified code system, which details why the claim could not be adjudicated. + */ + @Child(name="code", type={Coding.class}, order=4, min=1, max=1) + @Description(shortDefinition="Error code detailing processing issues", formalDefinition="An error code,froma specified code system, which details why the claim could not be adjudicated." ) + protected Coding code; + + private static final long serialVersionUID = 878850209L; + + public ErrorsComponent() { + super(); + } + + public ErrorsComponent(Coding code) { + super(); + this.code = code; + } + + /** + * @return {@link #sequenceLinkId} (The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value + */ + public IntegerType getSequenceLinkIdElement() { + if (this.sequenceLinkId == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ErrorsComponent.sequenceLinkId"); + else if (Configuration.doAutoCreate()) + this.sequenceLinkId = new IntegerType(); // bb + return this.sequenceLinkId; + } + + public boolean hasSequenceLinkIdElement() { + return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); + } + + public boolean hasSequenceLinkId() { + return this.sequenceLinkId != null && !this.sequenceLinkId.isEmpty(); + } + + /** + * @param value {@link #sequenceLinkId} (The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere.). This is the underlying object with id, value and extensions. The accessor "getSequenceLinkId" gives direct access to the value + */ + public ErrorsComponent setSequenceLinkIdElement(IntegerType value) { + this.sequenceLinkId = value; + return this; + } + + /** + * @return The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere. + */ + public int getSequenceLinkId() { + return this.sequenceLinkId == null ? 0 : this.sequenceLinkId.getValue(); + } + + /** + * @param value The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere. + */ + public ErrorsComponent setSequenceLinkId(int value) { + if (this.sequenceLinkId == null) + this.sequenceLinkId = new IntegerType(); + this.sequenceLinkId.setValue(value); + return this; + } + + /** + * @return {@link #detailSequenceLinkId} (The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition.). This is the underlying object with id, value and extensions. The accessor "getDetailSequenceLinkId" gives direct access to the value + */ + public IntegerType getDetailSequenceLinkIdElement() { + if (this.detailSequenceLinkId == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ErrorsComponent.detailSequenceLinkId"); + else if (Configuration.doAutoCreate()) + this.detailSequenceLinkId = new IntegerType(); // bb + return this.detailSequenceLinkId; + } + + public boolean hasDetailSequenceLinkIdElement() { + return this.detailSequenceLinkId != null && !this.detailSequenceLinkId.isEmpty(); + } + + public boolean hasDetailSequenceLinkId() { + return this.detailSequenceLinkId != null && !this.detailSequenceLinkId.isEmpty(); + } + + /** + * @param value {@link #detailSequenceLinkId} (The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition.). This is the underlying object with id, value and extensions. The accessor "getDetailSequenceLinkId" gives direct access to the value + */ + public ErrorsComponent setDetailSequenceLinkIdElement(IntegerType value) { + this.detailSequenceLinkId = value; + return this; + } + + /** + * @return The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. + */ + public int getDetailSequenceLinkId() { + return this.detailSequenceLinkId == null ? 0 : this.detailSequenceLinkId.getValue(); + } + + /** + * @param value The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. + */ + public ErrorsComponent setDetailSequenceLinkId(int value) { + if (this.detailSequenceLinkId == null) + this.detailSequenceLinkId = new IntegerType(); + this.detailSequenceLinkId.setValue(value); + return this; + } + + /** + * @return {@link #subdetailSequenceLinkId} (The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition.). This is the underlying object with id, value and extensions. The accessor "getSubdetailSequenceLinkId" gives direct access to the value + */ + public IntegerType getSubdetailSequenceLinkIdElement() { + if (this.subdetailSequenceLinkId == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ErrorsComponent.subdetailSequenceLinkId"); + else if (Configuration.doAutoCreate()) + this.subdetailSequenceLinkId = new IntegerType(); // bb + return this.subdetailSequenceLinkId; + } + + public boolean hasSubdetailSequenceLinkIdElement() { + return this.subdetailSequenceLinkId != null && !this.subdetailSequenceLinkId.isEmpty(); + } + + public boolean hasSubdetailSequenceLinkId() { + return this.subdetailSequenceLinkId != null && !this.subdetailSequenceLinkId.isEmpty(); + } + + /** + * @param value {@link #subdetailSequenceLinkId} (The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition.). This is the underlying object with id, value and extensions. The accessor "getSubdetailSequenceLinkId" gives direct access to the value + */ + public ErrorsComponent setSubdetailSequenceLinkIdElement(IntegerType value) { + this.subdetailSequenceLinkId = value; + return this; + } + + /** + * @return The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. + */ + public int getSubdetailSequenceLinkId() { + return this.subdetailSequenceLinkId == null ? 0 : this.subdetailSequenceLinkId.getValue(); + } + + /** + * @param value The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition. + */ + public ErrorsComponent setSubdetailSequenceLinkId(int value) { + if (this.subdetailSequenceLinkId == null) + this.subdetailSequenceLinkId = new IntegerType(); + this.subdetailSequenceLinkId.setValue(value); + return this; + } + + /** + * @return {@link #code} (An error code,froma specified code system, which details why the claim could not be adjudicated.) + */ + public Coding getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ErrorsComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new Coding(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (An error code,froma specified code system, which details why the claim could not be adjudicated.) + */ + public ErrorsComponent setCode(Coding value) { + this.code = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("sequenceLinkId", "integer", "The sequence number of the line item submitted which contains the error. This value is ommitted when the error is elsewhere.", 0, java.lang.Integer.MAX_VALUE, sequenceLinkId)); + childrenList.add(new Property("detailSequenceLinkId", "integer", "The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition.", 0, java.lang.Integer.MAX_VALUE, detailSequenceLinkId)); + childrenList.add(new Property("subdetailSequenceLinkId", "integer", "The sequence number of the addition within the line item submitted which contains the error. This value is ommitted when the error is not related to an Addition.", 0, java.lang.Integer.MAX_VALUE, subdetailSequenceLinkId)); + childrenList.add(new Property("code", "Coding", "An error code,froma specified code system, which details why the claim could not be adjudicated.", 0, java.lang.Integer.MAX_VALUE, code)); + } + + public ErrorsComponent copy() { + ErrorsComponent dst = new ErrorsComponent(); + copyValues(dst); + dst.sequenceLinkId = sequenceLinkId == null ? null : sequenceLinkId.copy(); + dst.detailSequenceLinkId = detailSequenceLinkId == null ? null : detailSequenceLinkId.copy(); + dst.subdetailSequenceLinkId = subdetailSequenceLinkId == null ? null : subdetailSequenceLinkId.copy(); + dst.code = code == null ? null : code.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ErrorsComponent)) + return false; + ErrorsComponent o = (ErrorsComponent) other; + return compareDeep(sequenceLinkId, o.sequenceLinkId, true) && compareDeep(detailSequenceLinkId, o.detailSequenceLinkId, true) + && compareDeep(subdetailSequenceLinkId, o.subdetailSequenceLinkId, true) && compareDeep(code, o.code, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ErrorsComponent)) + return false; + ErrorsComponent o = (ErrorsComponent) other; + return compareValues(sequenceLinkId, o.sequenceLinkId, true) && compareValues(detailSequenceLinkId, o.detailSequenceLinkId, true) + && compareValues(subdetailSequenceLinkId, o.subdetailSequenceLinkId, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (sequenceLinkId == null || sequenceLinkId.isEmpty()) && (detailSequenceLinkId == null || detailSequenceLinkId.isEmpty()) + && (subdetailSequenceLinkId == null || subdetailSequenceLinkId.isEmpty()) && (code == null || code.isEmpty()) + ; + } + + } + + @Block() + public static class NotesComponent extends BackboneElement { + /** + * An integer associated with each note which may be referred to from each service line item. + */ + @Child(name="number", type={IntegerType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Note Number for this note", formalDefinition="An integer associated with each note which may be referred to from each service line item." ) + protected IntegerType number; + + /** + * The note purpose: Print/Display. + */ + @Child(name="type", type={Coding.class}, order=2, min=0, max=1) + @Description(shortDefinition="display | print | printoper", formalDefinition="The note purpose: Print/Display." ) + protected Coding type; + + /** + * The note text. + */ + @Child(name="text", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Note explanitory text", formalDefinition="The note text." ) + protected StringType text; + + private static final long serialVersionUID = -1837694409L; + + public NotesComponent() { + super(); + } + + /** + * @return {@link #number} (An integer associated with each note which may be referred to from each service line item.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value + */ + public IntegerType getNumberElement() { + if (this.number == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create NotesComponent.number"); + else if (Configuration.doAutoCreate()) + this.number = new IntegerType(); // bb + return this.number; + } + + public boolean hasNumberElement() { + return this.number != null && !this.number.isEmpty(); + } + + public boolean hasNumber() { + return this.number != null && !this.number.isEmpty(); + } + + /** + * @param value {@link #number} (An integer associated with each note which may be referred to from each service line item.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value + */ + public NotesComponent setNumberElement(IntegerType value) { + this.number = value; + return this; + } + + /** + * @return An integer associated with each note which may be referred to from each service line item. + */ + public int getNumber() { + return this.number == null ? 0 : this.number.getValue(); + } + + /** + * @param value An integer associated with each note which may be referred to from each service line item. + */ + public NotesComponent setNumber(int value) { + if (this.number == null) + this.number = new IntegerType(); + this.number.setValue(value); + return this; + } + + /** + * @return {@link #type} (The note purpose: Print/Display.) + */ + public Coding getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create NotesComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new Coding(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The note purpose: Print/Display.) + */ + public NotesComponent setType(Coding value) { + this.type = value; + return this; + } + + /** + * @return {@link #text} (The note text.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value + */ + public StringType getTextElement() { + if (this.text == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create NotesComponent.text"); + else if (Configuration.doAutoCreate()) + this.text = new StringType(); // bb + return this.text; + } + + public boolean hasTextElement() { + return this.text != null && !this.text.isEmpty(); + } + + public boolean hasText() { + return this.text != null && !this.text.isEmpty(); + } + + /** + * @param value {@link #text} (The note text.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value + */ + public NotesComponent setTextElement(StringType value) { + this.text = value; + return this; + } + + /** + * @return The note text. + */ + public String getText() { + return this.text == null ? null : this.text.getValue(); + } + + /** + * @param value The note text. + */ + public NotesComponent setText(String value) { + if (Utilities.noString(value)) + this.text = null; + else { + if (this.text == null) + this.text = new StringType(); + this.text.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("number", "integer", "An integer associated with each note which may be referred to from each service line item.", 0, java.lang.Integer.MAX_VALUE, number)); + childrenList.add(new Property("type", "Coding", "The note purpose: Print/Display.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("text", "string", "The note text.", 0, java.lang.Integer.MAX_VALUE, text)); + } + + public NotesComponent copy() { + NotesComponent dst = new NotesComponent(); + copyValues(dst); + dst.number = number == null ? null : number.copy(); + dst.type = type == null ? null : type.copy(); + dst.text = text == null ? null : text.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof NotesComponent)) + return false; + NotesComponent o = (NotesComponent) other; + return compareDeep(number, o.number, true) && compareDeep(type, o.type, true) && compareDeep(text, o.text, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof NotesComponent)) + return false; + NotesComponent o = (NotesComponent) other; + return compareValues(number, o.number, true) && compareValues(text, o.text, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (number == null || number.isEmpty()) && (type == null || type.isEmpty()) + && (text == null || text.isEmpty()); + } + + } + + /** + * The Response Business Identifier. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Response number", formalDefinition="The Response Business Identifier." ) + protected List identifier; + + /** + * Original request resource referrence. + */ + @Child(name="request", type={OralHealthClaim.class, PharmacyClaim.class, VisionClaim.class, ProfessionalClaim.class, InstitutionalClaim.class}, order=0, min=0, max=1) + @Description(shortDefinition="Id of resource triggering adjudication", formalDefinition="Original request resource referrence." ) + protected Reference request; + + /** + * The actual object that is the target of the reference (Original request resource referrence.) + */ + protected Resource requestTarget; + + /** + * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. + */ + @Child(name="ruleset", type={Coding.class}, order=1, min=0, max=1) + @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." ) + protected Coding ruleset; + + /** + * The style (standard) and version of the original material which was converted into this resource. + */ + @Child(name="originalRuleset", type={Coding.class}, order=2, min=0, max=1) + @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) + protected Coding originalRuleset; + + /** + * The date when the enclosed suite of services were performed or completed. + */ + @Child(name="created", type={DateTimeType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Creation date", formalDefinition="The date when the enclosed suite of services were performed or completed." ) + protected DateTimeType created; + + /** + * The Insurer who produced this adjudicated response. + */ + @Child(name="organization", type={Organization.class}, order=4, min=0, max=1) + @Description(shortDefinition="Insurer", formalDefinition="The Insurer who produced this adjudicated response." ) + protected Reference organization; + + /** + * The actual object that is the target of the reference (The Insurer who produced this adjudicated response.) + */ + protected Organization organizationTarget; + + /** + * The practitioner who is responsible for the services rendered to the patient. + */ + @Child(name="requestProvider", type={Practitioner.class}, order=5, min=0, max=1) + @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) + protected Reference requestProvider; + + /** + * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) + */ + protected Practitioner requestProviderTarget; + + /** + * The organization which is responsible for the services rendered to the patient. + */ + @Child(name="requestOrganization", type={Organization.class}, order=6, min=0, max=1) + @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) + protected Reference requestOrganization; + + /** + * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) + */ + protected Organization requestOrganizationTarget; + + /** + * Transaction status: error, complete. + */ + @Child(name="outcome", type={CodeType.class}, order=7, min=0, max=1) + @Description(shortDefinition="complete | error", formalDefinition="Transaction status: error, complete." ) + protected Enumeration outcome; + + /** + * A description of the status of the adjudication. + */ + @Child(name="disposition", type={StringType.class}, order=8, min=0, max=1) + @Description(shortDefinition="Disposition Message", formalDefinition="A description of the status of the adjudication." ) + protected StringType disposition; + + /** + * Party to be reimbursed: Subscriber, provider, other. + */ + @Child(name="payeeType", type={Coding.class}, order=9, min=0, max=1) + @Description(shortDefinition="Party to be paid any benefits payable", formalDefinition="Party to be reimbursed: Subscriber, provider, other." ) + protected Coding payeeType; + + /** + * The first tier service adjudications for submitted services. + */ + @Child(name="item", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Line items", formalDefinition="The first tier service adjudications for submitted services." ) + protected List item; + + /** + * The first tier service adjudications for payor added services. + */ + @Child(name="additem", type={}, order=11, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Insurer added line items", formalDefinition="The first tier service adjudications for payor added services." ) + protected List additem; + + /** + * Mutually exclusive with Services Provided (Item). + */ + @Child(name="error", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Processing errors", formalDefinition="Mutually exclusive with Services Provided (Item)." ) + protected List error; + + /** + * The total cost of the services reported. + */ + @Child(name="totalCost", type={Money.class}, order=13, min=0, max=1) + @Description(shortDefinition="Total Cost of service from the Claim", formalDefinition="The total cost of the services reported." ) + protected Money totalCost; + + /** + * The amount of deductable applied which was not allocated to any particular service line. + */ + @Child(name="unallocDeductable", type={Money.class}, order=14, min=0, max=1) + @Description(shortDefinition="Unallocated deductable", formalDefinition="The amount of deductable applied which was not allocated to any particular service line." ) + protected Money unallocDeductable; + + /** + * Total amount of benefit payable (Equal to sum of the Benefit amounts from all detail lines and additions less the Unallocated Deductable). + */ + @Child(name="totalBenefit", type={Money.class}, order=15, min=0, max=1) + @Description(shortDefinition="Total benefit payable for the Claim", formalDefinition="Total amount of benefit payable (Equal to sum of the Benefit amounts from all detail lines and additions less the Unallocated Deductable)." ) + protected Money totalBenefit; + + /** + * Adjustment to the payment of this transaction which is not related to adjudication of this transaction. + */ + @Child(name="paymentAdjustment", type={Money.class}, order=16, min=0, max=1) + @Description(shortDefinition="Payment adjustment for non-Claim issues", formalDefinition="Adjustment to the payment of this transaction which is not related to adjudication of this transaction." ) + protected Money paymentAdjustment; + + /** + * Reason for the payment adjustment. + */ + @Child(name="paymentAdjustmentReason", type={Coding.class}, order=17, min=0, max=1) + @Description(shortDefinition="Reason for Payment adjustment", formalDefinition="Reason for the payment adjustment." ) + protected Coding paymentAdjustmentReason; + + /** + * Estimated payment data. + */ + @Child(name="paymentDate", type={DateType.class}, order=18, min=0, max=1) + @Description(shortDefinition="Expected data of Payment", formalDefinition="Estimated payment data." ) + protected DateType paymentDate; + + /** + * Payable less any payment adjustment. + */ + @Child(name="paymentAmount", type={Money.class}, order=19, min=0, max=1) + @Description(shortDefinition="Payment amount", formalDefinition="Payable less any payment adjustment." ) + protected Money paymentAmount; + + /** + * Payment identifer. + */ + @Child(name="paymentRef", type={Identifier.class}, order=20, min=0, max=1) + @Description(shortDefinition="Payment identifier", formalDefinition="Payment identifer." ) + protected Identifier paymentRef; + + /** + * Status of funds reservation (For provider, for Patient, None). + */ + @Child(name="reserved", type={Coding.class}, order=21, min=0, max=1) + @Description(shortDefinition="Funds reserved status", formalDefinition="Status of funds reservation (For provider, for Patient, None)." ) + protected Coding reserved; + + /** + * The form to be used for printing the content. + */ + @Child(name="form", type={Coding.class}, order=22, min=0, max=1) + @Description(shortDefinition="Printed Form Identifier", formalDefinition="The form to be used for printing the content." ) + protected Coding form; + + /** + * Note text. + */ + @Child(name="note", type={}, order=23, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Processing notes", formalDefinition="Note text." ) + protected List note; + + private static final long serialVersionUID = -2105513621L; + + public ClaimResponse() { + super(); + } + + /** + * @return {@link #identifier} (The Response Business Identifier.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (The Response Business Identifier.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #request} (Original request resource referrence.) + */ + public Reference getRequest() { + if (this.request == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.request"); + else if (Configuration.doAutoCreate()) + this.request = new Reference(); // cc + return this.request; + } + + public boolean hasRequest() { + return this.request != null && !this.request.isEmpty(); + } + + /** + * @param value {@link #request} (Original request resource referrence.) + */ + public ClaimResponse setRequest(Reference value) { + this.request = value; + return this; + } + + /** + * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Original request resource referrence.) + */ + public Resource getRequestTarget() { + return this.requestTarget; + } + + /** + * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Original request resource referrence.) + */ + public ClaimResponse setRequestTarget(Resource value) { + this.requestTarget = value; + return this; + } + + /** + * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) + */ + public Coding getRuleset() { + if (this.ruleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.ruleset"); + else if (Configuration.doAutoCreate()) + this.ruleset = new Coding(); // cc + return this.ruleset; + } + + public boolean hasRuleset() { + return this.ruleset != null && !this.ruleset.isEmpty(); + } + + /** + * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) + */ + public ClaimResponse setRuleset(Coding value) { + this.ruleset = value; + return this; + } + + /** + * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public Coding getOriginalRuleset() { + if (this.originalRuleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.originalRuleset"); + else if (Configuration.doAutoCreate()) + this.originalRuleset = new Coding(); // cc + return this.originalRuleset; + } + + public boolean hasOriginalRuleset() { + return this.originalRuleset != null && !this.originalRuleset.isEmpty(); + } + + /** + * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public ClaimResponse setOriginalRuleset(Coding value) { + this.originalRuleset = value; + return this; + } + + /** + * @return {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DateTimeType getCreatedElement() { + if (this.created == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.created"); + else if (Configuration.doAutoCreate()) + this.created = new DateTimeType(); // bb + return this.created; + } + + public boolean hasCreatedElement() { + return this.created != null && !this.created.isEmpty(); + } + + public boolean hasCreated() { + return this.created != null && !this.created.isEmpty(); + } + + /** + * @param value {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public ClaimResponse setCreatedElement(DateTimeType value) { + this.created = value; + return this; + } + + /** + * @return The date when the enclosed suite of services were performed or completed. + */ + public Date getCreated() { + return this.created == null ? null : this.created.getValue(); + } + + /** + * @param value The date when the enclosed suite of services were performed or completed. + */ + public ClaimResponse setCreated(Date value) { + if (value == null) + this.created = null; + else { + if (this.created == null) + this.created = new DateTimeType(); + this.created.setValue(value); + } + return this; + } + + /** + * @return {@link #organization} (The Insurer who produced this adjudicated response.) + */ + public Reference getOrganization() { + if (this.organization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.organization"); + else if (Configuration.doAutoCreate()) + this.organization = new Reference(); // cc + return this.organization; + } + + public boolean hasOrganization() { + return this.organization != null && !this.organization.isEmpty(); + } + + /** + * @param value {@link #organization} (The Insurer who produced this adjudicated response.) + */ + public ClaimResponse setOrganization(Reference value) { + this.organization = value; + return this; + } + + /** + * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) + */ + public Organization getOrganizationTarget() { + if (this.organizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.organization"); + else if (Configuration.doAutoCreate()) + this.organizationTarget = new Organization(); // aa + return this.organizationTarget; + } + + /** + * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) + */ + public ClaimResponse setOrganizationTarget(Organization value) { + this.organizationTarget = value; + return this; + } + + /** + * @return {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public Reference getRequestProvider() { + if (this.requestProvider == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.requestProvider"); + else if (Configuration.doAutoCreate()) + this.requestProvider = new Reference(); // cc + return this.requestProvider; + } + + public boolean hasRequestProvider() { + return this.requestProvider != null && !this.requestProvider.isEmpty(); + } + + /** + * @param value {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public ClaimResponse setRequestProvider(Reference value) { + this.requestProvider = value; + return this; + } + + /** + * @return {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public Practitioner getRequestProviderTarget() { + if (this.requestProviderTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.requestProvider"); + else if (Configuration.doAutoCreate()) + this.requestProviderTarget = new Practitioner(); // aa + return this.requestProviderTarget; + } + + /** + * @param value {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public ClaimResponse setRequestProviderTarget(Practitioner value) { + this.requestProviderTarget = value; + return this; + } + + /** + * @return {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) + */ + public Reference getRequestOrganization() { + if (this.requestOrganization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.requestOrganization"); + else if (Configuration.doAutoCreate()) + this.requestOrganization = new Reference(); // cc + return this.requestOrganization; + } + + public boolean hasRequestOrganization() { + return this.requestOrganization != null && !this.requestOrganization.isEmpty(); + } + + /** + * @param value {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) + */ + public ClaimResponse setRequestOrganization(Reference value) { + this.requestOrganization = value; + return this; + } + + /** + * @return {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) + */ + public Organization getRequestOrganizationTarget() { + if (this.requestOrganizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.requestOrganization"); + else if (Configuration.doAutoCreate()) + this.requestOrganizationTarget = new Organization(); // aa + return this.requestOrganizationTarget; + } + + /** + * @param value {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) + */ + public ClaimResponse setRequestOrganizationTarget(Organization value) { + this.requestOrganizationTarget = value; + return this; + } + + /** + * @return {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value + */ + public Enumeration getOutcomeElement() { + if (this.outcome == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.outcome"); + else if (Configuration.doAutoCreate()) + this.outcome = new Enumeration(new RSLinkEnumFactory()); // bb + return this.outcome; + } + + public boolean hasOutcomeElement() { + return this.outcome != null && !this.outcome.isEmpty(); + } + + public boolean hasOutcome() { + return this.outcome != null && !this.outcome.isEmpty(); + } + + /** + * @param value {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value + */ + public ClaimResponse setOutcomeElement(Enumeration value) { + this.outcome = value; + return this; + } + + /** + * @return Transaction status: error, complete. + */ + public RSLink getOutcome() { + return this.outcome == null ? null : this.outcome.getValue(); + } + + /** + * @param value Transaction status: error, complete. + */ + public ClaimResponse setOutcome(RSLink value) { + if (value == null) + this.outcome = null; + else { + if (this.outcome == null) + this.outcome = new Enumeration(new RSLinkEnumFactory()); + this.outcome.setValue(value); + } + return this; + } + + /** + * @return {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value + */ + public StringType getDispositionElement() { + if (this.disposition == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.disposition"); + else if (Configuration.doAutoCreate()) + this.disposition = new StringType(); // bb + return this.disposition; + } + + public boolean hasDispositionElement() { + return this.disposition != null && !this.disposition.isEmpty(); + } + + public boolean hasDisposition() { + return this.disposition != null && !this.disposition.isEmpty(); + } + + /** + * @param value {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value + */ + public ClaimResponse setDispositionElement(StringType value) { + this.disposition = value; + return this; + } + + /** + * @return A description of the status of the adjudication. + */ + public String getDisposition() { + return this.disposition == null ? null : this.disposition.getValue(); + } + + /** + * @param value A description of the status of the adjudication. + */ + public ClaimResponse setDisposition(String value) { + if (Utilities.noString(value)) + this.disposition = null; + else { + if (this.disposition == null) + this.disposition = new StringType(); + this.disposition.setValue(value); + } + return this; + } + + /** + * @return {@link #payeeType} (Party to be reimbursed: Subscriber, provider, other.) + */ + public Coding getPayeeType() { + if (this.payeeType == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.payeeType"); + else if (Configuration.doAutoCreate()) + this.payeeType = new Coding(); // cc + return this.payeeType; + } + + public boolean hasPayeeType() { + return this.payeeType != null && !this.payeeType.isEmpty(); + } + + /** + * @param value {@link #payeeType} (Party to be reimbursed: Subscriber, provider, other.) + */ + public ClaimResponse setPayeeType(Coding value) { + this.payeeType = value; + return this; + } + + /** + * @return {@link #item} (The first tier service adjudications for submitted services.) + */ + public List getItem() { + if (this.item == null) + this.item = new ArrayList(); + return this.item; + } + + public boolean hasItem() { + if (this.item == null) + return false; + for (ItemsComponent item : this.item) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #item} (The first tier service adjudications for submitted services.) + */ + // syntactic sugar + public ItemsComponent addItem() { //3 + ItemsComponent t = new ItemsComponent(); + if (this.item == null) + this.item = new ArrayList(); + this.item.add(t); + return t; + } + + /** + * @return {@link #additem} (The first tier service adjudications for payor added services.) + */ + public List getAdditem() { + if (this.additem == null) + this.additem = new ArrayList(); + return this.additem; + } + + public boolean hasAdditem() { + if (this.additem == null) + return false; + for (AddedItemComponent item : this.additem) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #additem} (The first tier service adjudications for payor added services.) + */ + // syntactic sugar + public AddedItemComponent addAdditem() { //3 + AddedItemComponent t = new AddedItemComponent(); + if (this.additem == null) + this.additem = new ArrayList(); + this.additem.add(t); + return t; + } + + /** + * @return {@link #error} (Mutually exclusive with Services Provided (Item).) + */ + public List getError() { + if (this.error == null) + this.error = new ArrayList(); + return this.error; + } + + public boolean hasError() { + if (this.error == null) + return false; + for (ErrorsComponent item : this.error) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #error} (Mutually exclusive with Services Provided (Item).) + */ + // syntactic sugar + public ErrorsComponent addError() { //3 + ErrorsComponent t = new ErrorsComponent(); + if (this.error == null) + this.error = new ArrayList(); + this.error.add(t); + return t; + } + + /** + * @return {@link #totalCost} (The total cost of the services reported.) + */ + public Money getTotalCost() { + if (this.totalCost == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.totalCost"); + else if (Configuration.doAutoCreate()) + this.totalCost = new Money(); // cc + return this.totalCost; + } + + public boolean hasTotalCost() { + return this.totalCost != null && !this.totalCost.isEmpty(); + } + + /** + * @param value {@link #totalCost} (The total cost of the services reported.) + */ + public ClaimResponse setTotalCost(Money value) { + this.totalCost = value; + return this; + } + + /** + * @return {@link #unallocDeductable} (The amount of deductable applied which was not allocated to any particular service line.) + */ + public Money getUnallocDeductable() { + if (this.unallocDeductable == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.unallocDeductable"); + else if (Configuration.doAutoCreate()) + this.unallocDeductable = new Money(); // cc + return this.unallocDeductable; + } + + public boolean hasUnallocDeductable() { + return this.unallocDeductable != null && !this.unallocDeductable.isEmpty(); + } + + /** + * @param value {@link #unallocDeductable} (The amount of deductable applied which was not allocated to any particular service line.) + */ + public ClaimResponse setUnallocDeductable(Money value) { + this.unallocDeductable = value; + return this; + } + + /** + * @return {@link #totalBenefit} (Total amount of benefit payable (Equal to sum of the Benefit amounts from all detail lines and additions less the Unallocated Deductable).) + */ + public Money getTotalBenefit() { + if (this.totalBenefit == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.totalBenefit"); + else if (Configuration.doAutoCreate()) + this.totalBenefit = new Money(); // cc + return this.totalBenefit; + } + + public boolean hasTotalBenefit() { + return this.totalBenefit != null && !this.totalBenefit.isEmpty(); + } + + /** + * @param value {@link #totalBenefit} (Total amount of benefit payable (Equal to sum of the Benefit amounts from all detail lines and additions less the Unallocated Deductable).) + */ + public ClaimResponse setTotalBenefit(Money value) { + this.totalBenefit = value; + return this; + } + + /** + * @return {@link #paymentAdjustment} (Adjustment to the payment of this transaction which is not related to adjudication of this transaction.) + */ + public Money getPaymentAdjustment() { + if (this.paymentAdjustment == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.paymentAdjustment"); + else if (Configuration.doAutoCreate()) + this.paymentAdjustment = new Money(); // cc + return this.paymentAdjustment; + } + + public boolean hasPaymentAdjustment() { + return this.paymentAdjustment != null && !this.paymentAdjustment.isEmpty(); + } + + /** + * @param value {@link #paymentAdjustment} (Adjustment to the payment of this transaction which is not related to adjudication of this transaction.) + */ + public ClaimResponse setPaymentAdjustment(Money value) { + this.paymentAdjustment = value; + return this; + } + + /** + * @return {@link #paymentAdjustmentReason} (Reason for the payment adjustment.) + */ + public Coding getPaymentAdjustmentReason() { + if (this.paymentAdjustmentReason == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.paymentAdjustmentReason"); + else if (Configuration.doAutoCreate()) + this.paymentAdjustmentReason = new Coding(); // cc + return this.paymentAdjustmentReason; + } + + public boolean hasPaymentAdjustmentReason() { + return this.paymentAdjustmentReason != null && !this.paymentAdjustmentReason.isEmpty(); + } + + /** + * @param value {@link #paymentAdjustmentReason} (Reason for the payment adjustment.) + */ + public ClaimResponse setPaymentAdjustmentReason(Coding value) { + this.paymentAdjustmentReason = value; + return this; + } + + /** + * @return {@link #paymentDate} (Estimated payment data.). This is the underlying object with id, value and extensions. The accessor "getPaymentDate" gives direct access to the value + */ + public DateType getPaymentDateElement() { + if (this.paymentDate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.paymentDate"); + else if (Configuration.doAutoCreate()) + this.paymentDate = new DateType(); // bb + return this.paymentDate; + } + + public boolean hasPaymentDateElement() { + return this.paymentDate != null && !this.paymentDate.isEmpty(); + } + + public boolean hasPaymentDate() { + return this.paymentDate != null && !this.paymentDate.isEmpty(); + } + + /** + * @param value {@link #paymentDate} (Estimated payment data.). This is the underlying object with id, value and extensions. The accessor "getPaymentDate" gives direct access to the value + */ + public ClaimResponse setPaymentDateElement(DateType value) { + this.paymentDate = value; + return this; + } + + /** + * @return Estimated payment data. + */ + public Date getPaymentDate() { + return this.paymentDate == null ? null : this.paymentDate.getValue(); + } + + /** + * @param value Estimated payment data. + */ + public ClaimResponse setPaymentDate(Date value) { + if (value == null) + this.paymentDate = null; + else { + if (this.paymentDate == null) + this.paymentDate = new DateType(); + this.paymentDate.setValue(value); + } + return this; + } + + /** + * @return {@link #paymentAmount} (Payable less any payment adjustment.) + */ + public Money getPaymentAmount() { + if (this.paymentAmount == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.paymentAmount"); + else if (Configuration.doAutoCreate()) + this.paymentAmount = new Money(); // cc + return this.paymentAmount; + } + + public boolean hasPaymentAmount() { + return this.paymentAmount != null && !this.paymentAmount.isEmpty(); + } + + /** + * @param value {@link #paymentAmount} (Payable less any payment adjustment.) + */ + public ClaimResponse setPaymentAmount(Money value) { + this.paymentAmount = value; + return this; + } + + /** + * @return {@link #paymentRef} (Payment identifer.) + */ + public Identifier getPaymentRef() { + if (this.paymentRef == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.paymentRef"); + else if (Configuration.doAutoCreate()) + this.paymentRef = new Identifier(); // cc + return this.paymentRef; + } + + public boolean hasPaymentRef() { + return this.paymentRef != null && !this.paymentRef.isEmpty(); + } + + /** + * @param value {@link #paymentRef} (Payment identifer.) + */ + public ClaimResponse setPaymentRef(Identifier value) { + this.paymentRef = value; + return this; + } + + /** + * @return {@link #reserved} (Status of funds reservation (For provider, for Patient, None).) + */ + public Coding getReserved() { + if (this.reserved == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.reserved"); + else if (Configuration.doAutoCreate()) + this.reserved = new Coding(); // cc + return this.reserved; + } + + public boolean hasReserved() { + return this.reserved != null && !this.reserved.isEmpty(); + } + + /** + * @param value {@link #reserved} (Status of funds reservation (For provider, for Patient, None).) + */ + public ClaimResponse setReserved(Coding value) { + this.reserved = value; + return this; + } + + /** + * @return {@link #form} (The form to be used for printing the content.) + */ + public Coding getForm() { + if (this.form == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClaimResponse.form"); + else if (Configuration.doAutoCreate()) + this.form = new Coding(); // cc + return this.form; + } + + public boolean hasForm() { + return this.form != null && !this.form.isEmpty(); + } + + /** + * @param value {@link #form} (The form to be used for printing the content.) + */ + public ClaimResponse setForm(Coding value) { + this.form = value; + return this; + } + + /** + * @return {@link #note} (Note text.) + */ + public List getNote() { + if (this.note == null) + this.note = new ArrayList(); + return this.note; + } + + public boolean hasNote() { + if (this.note == null) + return false; + for (NotesComponent item : this.note) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #note} (Note text.) + */ + // syntactic sugar + public NotesComponent addNote() { //3 + NotesComponent t = new NotesComponent(); + if (this.note == null) + this.note = new ArrayList(); + this.note.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "The Response Business Identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("request", "Reference(OralHealthClaim|PharmacyClaim|VisionClaim|ProfessionalClaim|InstitutionalClaim)", "Original request resource referrence.", 0, java.lang.Integer.MAX_VALUE, request)); + childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset)); + childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); + childrenList.add(new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, created)); + childrenList.add(new Property("organization", "Reference(Organization)", "The Insurer who produced this adjudicated response.", 0, java.lang.Integer.MAX_VALUE, organization)); + childrenList.add(new Property("requestProvider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestProvider)); + childrenList.add(new Property("requestOrganization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestOrganization)); + childrenList.add(new Property("outcome", "code", "Transaction status: error, complete.", 0, java.lang.Integer.MAX_VALUE, outcome)); + childrenList.add(new Property("disposition", "string", "A description of the status of the adjudication.", 0, java.lang.Integer.MAX_VALUE, disposition)); + childrenList.add(new Property("payeeType", "Coding", "Party to be reimbursed: Subscriber, provider, other.", 0, java.lang.Integer.MAX_VALUE, payeeType)); + childrenList.add(new Property("item", "", "The first tier service adjudications for submitted services.", 0, java.lang.Integer.MAX_VALUE, item)); + childrenList.add(new Property("additem", "", "The first tier service adjudications for payor added services.", 0, java.lang.Integer.MAX_VALUE, additem)); + childrenList.add(new Property("error", "", "Mutually exclusive with Services Provided (Item).", 0, java.lang.Integer.MAX_VALUE, error)); + childrenList.add(new Property("totalCost", "Money", "The total cost of the services reported.", 0, java.lang.Integer.MAX_VALUE, totalCost)); + childrenList.add(new Property("unallocDeductable", "Money", "The amount of deductable applied which was not allocated to any particular service line.", 0, java.lang.Integer.MAX_VALUE, unallocDeductable)); + childrenList.add(new Property("totalBenefit", "Money", "Total amount of benefit payable (Equal to sum of the Benefit amounts from all detail lines and additions less the Unallocated Deductable).", 0, java.lang.Integer.MAX_VALUE, totalBenefit)); + childrenList.add(new Property("paymentAdjustment", "Money", "Adjustment to the payment of this transaction which is not related to adjudication of this transaction.", 0, java.lang.Integer.MAX_VALUE, paymentAdjustment)); + childrenList.add(new Property("paymentAdjustmentReason", "Coding", "Reason for the payment adjustment.", 0, java.lang.Integer.MAX_VALUE, paymentAdjustmentReason)); + childrenList.add(new Property("paymentDate", "date", "Estimated payment data.", 0, java.lang.Integer.MAX_VALUE, paymentDate)); + childrenList.add(new Property("paymentAmount", "Money", "Payable less any payment adjustment.", 0, java.lang.Integer.MAX_VALUE, paymentAmount)); + childrenList.add(new Property("paymentRef", "Identifier", "Payment identifer.", 0, java.lang.Integer.MAX_VALUE, paymentRef)); + childrenList.add(new Property("reserved", "Coding", "Status of funds reservation (For provider, for Patient, None).", 0, java.lang.Integer.MAX_VALUE, reserved)); + childrenList.add(new Property("form", "Coding", "The form to be used for printing the content.", 0, java.lang.Integer.MAX_VALUE, form)); + childrenList.add(new Property("note", "", "Note text.", 0, java.lang.Integer.MAX_VALUE, note)); + } + + public ClaimResponse copy() { + ClaimResponse dst = new ClaimResponse(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.request = request == null ? null : request.copy(); + dst.ruleset = ruleset == null ? null : ruleset.copy(); + dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); + dst.created = created == null ? null : created.copy(); + dst.organization = organization == null ? null : organization.copy(); + dst.requestProvider = requestProvider == null ? null : requestProvider.copy(); + dst.requestOrganization = requestOrganization == null ? null : requestOrganization.copy(); + dst.outcome = outcome == null ? null : outcome.copy(); + dst.disposition = disposition == null ? null : disposition.copy(); + dst.payeeType = payeeType == null ? null : payeeType.copy(); + if (item != null) { + dst.item = new ArrayList(); + for (ItemsComponent i : item) + dst.item.add(i.copy()); + }; + if (additem != null) { + dst.additem = new ArrayList(); + for (AddedItemComponent i : additem) + dst.additem.add(i.copy()); + }; + if (error != null) { + dst.error = new ArrayList(); + for (ErrorsComponent i : error) + dst.error.add(i.copy()); + }; + dst.totalCost = totalCost == null ? null : totalCost.copy(); + dst.unallocDeductable = unallocDeductable == null ? null : unallocDeductable.copy(); + dst.totalBenefit = totalBenefit == null ? null : totalBenefit.copy(); + dst.paymentAdjustment = paymentAdjustment == null ? null : paymentAdjustment.copy(); + dst.paymentAdjustmentReason = paymentAdjustmentReason == null ? null : paymentAdjustmentReason.copy(); + dst.paymentDate = paymentDate == null ? null : paymentDate.copy(); + dst.paymentAmount = paymentAmount == null ? null : paymentAmount.copy(); + dst.paymentRef = paymentRef == null ? null : paymentRef.copy(); + dst.reserved = reserved == null ? null : reserved.copy(); + dst.form = form == null ? null : form.copy(); + if (note != null) { + dst.note = new ArrayList(); + for (NotesComponent i : note) + dst.note.add(i.copy()); + }; + return dst; + } + + protected ClaimResponse typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ClaimResponse)) + return false; + ClaimResponse o = (ClaimResponse) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(request, o.request, true) && compareDeep(ruleset, o.ruleset, true) + && compareDeep(originalRuleset, o.originalRuleset, true) && compareDeep(created, o.created, true) + && compareDeep(organization, o.organization, true) && compareDeep(requestProvider, o.requestProvider, true) + && compareDeep(requestOrganization, o.requestOrganization, true) && compareDeep(outcome, o.outcome, true) + && compareDeep(disposition, o.disposition, true) && compareDeep(payeeType, o.payeeType, true) && compareDeep(item, o.item, true) + && compareDeep(additem, o.additem, true) && compareDeep(error, o.error, true) && compareDeep(totalCost, o.totalCost, true) + && compareDeep(unallocDeductable, o.unallocDeductable, true) && compareDeep(totalBenefit, o.totalBenefit, true) + && compareDeep(paymentAdjustment, o.paymentAdjustment, true) && compareDeep(paymentAdjustmentReason, o.paymentAdjustmentReason, true) + && compareDeep(paymentDate, o.paymentDate, true) && compareDeep(paymentAmount, o.paymentAmount, true) + && compareDeep(paymentRef, o.paymentRef, true) && compareDeep(reserved, o.reserved, true) && compareDeep(form, o.form, true) + && compareDeep(note, o.note, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ClaimResponse)) + return false; + ClaimResponse o = (ClaimResponse) other; + return compareValues(created, o.created, true) && compareValues(outcome, o.outcome, true) && compareValues(disposition, o.disposition, true) + && compareValues(paymentDate, o.paymentDate, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (request == null || request.isEmpty()) + && (ruleset == null || ruleset.isEmpty()) && (originalRuleset == null || originalRuleset.isEmpty()) + && (created == null || created.isEmpty()) && (organization == null || organization.isEmpty()) + && (requestProvider == null || requestProvider.isEmpty()) && (requestOrganization == null || requestOrganization.isEmpty()) + && (outcome == null || outcome.isEmpty()) && (disposition == null || disposition.isEmpty()) + && (payeeType == null || payeeType.isEmpty()) && (item == null || item.isEmpty()) && (additem == null || additem.isEmpty()) + && (error == null || error.isEmpty()) && (totalCost == null || totalCost.isEmpty()) && (unallocDeductable == null || unallocDeductable.isEmpty()) + && (totalBenefit == null || totalBenefit.isEmpty()) && (paymentAdjustment == null || paymentAdjustment.isEmpty()) + && (paymentAdjustmentReason == null || paymentAdjustmentReason.isEmpty()) && (paymentDate == null || paymentDate.isEmpty()) + && (paymentAmount == null || paymentAmount.isEmpty()) && (paymentRef == null || paymentRef.isEmpty()) + && (reserved == null || reserved.isEmpty()) && (form == null || form.isEmpty()) && (note == null || note.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.ClaimResponse; + } + + @SearchParamDefinition(name="identifier", path="ClaimResponse.identifier", description="The identity of the insurer", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment$ClinicalAssessmentDiagnosisComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment$ClinicalAssessmentDiagnosisComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..89460e9084ed317b8b2d9f1f0aba84ef73828517 GIT binary patch literal 5032 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment$ClinicalAssessmentInvestigationsComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment$ClinicalAssessmentInvestigationsComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..688a45f5cbedc55c6acb21f1012a876945f24848 GIT binary patch literal 5366 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment$ClinicalAssessmentRuledOutComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment$ClinicalAssessmentRuledOutComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..8665fd2f751dcfa5e5b9f2c890b97d9c3cbaa57b GIT binary patch literal 5002 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment.java similarity index 90% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment.java index 50c011977e5..b7f8a897038 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ClinicalAssessment.java @@ -1,1421 +1,1486 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter, but this varies greatly depending on the clinical workflow. - */ -@ResourceDef(name="ClinicalAssessment", profile="http://hl7.org/fhir/Profile/ClinicalAssessment") -public class ClinicalAssessment extends DomainResource { - - @Block() - public static class ClinicalAssessmentInvestigationsComponent extends BackboneElement { - /** - * A name/code for the group ("set") of investigations. Typically, this will be something like "signs", "symptoms", "clinical", "diagnostic", but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used. - */ - @Child(name="code", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="A name/code for the set", formalDefinition="A name/code for the group ('set') of investigations. Typically, this will be something like 'signs', 'symptoms', 'clinical', 'diagnostic', but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used." ) - protected CodeableConcept code; - - /** - * A record of a specific investigation that was undertaken. - */ - @Child(name="item", type={Observation.class, QuestionnaireAnswers.class, FamilyHistory.class, DiagnosticReport.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Record of a specific investigation", formalDefinition="A record of a specific investigation that was undertaken." ) - protected List item; - /** - * The actual objects that are the target of the reference (A record of a specific investigation that was undertaken.) - */ - protected List itemTarget; - - - private static final long serialVersionUID = -301363326L; - - public ClinicalAssessmentInvestigationsComponent() { - super(); - } - - public ClinicalAssessmentInvestigationsComponent(CodeableConcept code) { - super(); - this.code = code; - } - - /** - * @return {@link #code} (A name/code for the group ("set") of investigations. Typically, this will be something like "signs", "symptoms", "clinical", "diagnostic", but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessmentInvestigationsComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (A name/code for the group ("set") of investigations. Typically, this will be something like "signs", "symptoms", "clinical", "diagnostic", but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used.) - */ - public ClinicalAssessmentInvestigationsComponent setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #item} (A record of a specific investigation that was undertaken.) - */ - public List getItem() { - if (this.item == null) - this.item = new ArrayList(); - return this.item; - } - - public boolean hasItem() { - if (this.item == null) - return false; - for (Reference item : this.item) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #item} (A record of a specific investigation that was undertaken.) - */ - // syntactic sugar - public Reference addItem() { //3 - Reference t = new Reference(); - if (this.item == null) - this.item = new ArrayList(); - this.item.add(t); - return t; - } - - /** - * @return {@link #item} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A record of a specific investigation that was undertaken.) - */ - public List getItemTarget() { - if (this.itemTarget == null) - this.itemTarget = new ArrayList(); - return this.itemTarget; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "CodeableConcept", "A name/code for the group ('set') of investigations. Typically, this will be something like 'signs', 'symptoms', 'clinical', 'diagnostic', but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("item", "Reference(Observation|QuestionnaireAnswers|FamilyHistory|DiagnosticReport)", "A record of a specific investigation that was undertaken.", 0, java.lang.Integer.MAX_VALUE, item)); - } - - public ClinicalAssessmentInvestigationsComponent copy() { - ClinicalAssessmentInvestigationsComponent dst = new ClinicalAssessmentInvestigationsComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - if (item != null) { - dst.item = new ArrayList(); - for (Reference i : item) - dst.item.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (item == null || item.isEmpty()) - ; - } - - } - - @Block() - public static class ClinicalAssessmentDiagnosisComponent extends BackboneElement { - /** - * Specific text of code for diagnosis. - */ - @Child(name="item", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="Specific text or code for diagnosis", formalDefinition="Specific text of code for diagnosis." ) - protected CodeableConcept item; - - /** - * Which investigations support diagnosis. - */ - @Child(name="cause", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Which investigations support diagnosis", formalDefinition="Which investigations support diagnosis." ) - protected StringType cause; - - private static final long serialVersionUID = -888590978L; - - public ClinicalAssessmentDiagnosisComponent() { - super(); - } - - public ClinicalAssessmentDiagnosisComponent(CodeableConcept item) { - super(); - this.item = item; - } - - /** - * @return {@link #item} (Specific text of code for diagnosis.) - */ - public CodeableConcept getItem() { - if (this.item == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessmentDiagnosisComponent.item"); - else if (Configuration.doAutoCreate()) - this.item = new CodeableConcept(); - return this.item; - } - - public boolean hasItem() { - return this.item != null && !this.item.isEmpty(); - } - - /** - * @param value {@link #item} (Specific text of code for diagnosis.) - */ - public ClinicalAssessmentDiagnosisComponent setItem(CodeableConcept value) { - this.item = value; - return this; - } - - /** - * @return {@link #cause} (Which investigations support diagnosis.). This is the underlying object with id, value and extensions. The accessor "getCause" gives direct access to the value - */ - public StringType getCauseElement() { - if (this.cause == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessmentDiagnosisComponent.cause"); - else if (Configuration.doAutoCreate()) - this.cause = new StringType(); - return this.cause; - } - - public boolean hasCauseElement() { - return this.cause != null && !this.cause.isEmpty(); - } - - public boolean hasCause() { - return this.cause != null && !this.cause.isEmpty(); - } - - /** - * @param value {@link #cause} (Which investigations support diagnosis.). This is the underlying object with id, value and extensions. The accessor "getCause" gives direct access to the value - */ - public ClinicalAssessmentDiagnosisComponent setCauseElement(StringType value) { - this.cause = value; - return this; - } - - /** - * @return Which investigations support diagnosis. - */ - public String getCause() { - return this.cause == null ? null : this.cause.getValue(); - } - - /** - * @param value Which investigations support diagnosis. - */ - public ClinicalAssessmentDiagnosisComponent setCause(String value) { - if (Utilities.noString(value)) - this.cause = null; - else { - if (this.cause == null) - this.cause = new StringType(); - this.cause.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("item", "CodeableConcept", "Specific text of code for diagnosis.", 0, java.lang.Integer.MAX_VALUE, item)); - childrenList.add(new Property("cause", "string", "Which investigations support diagnosis.", 0, java.lang.Integer.MAX_VALUE, cause)); - } - - public ClinicalAssessmentDiagnosisComponent copy() { - ClinicalAssessmentDiagnosisComponent dst = new ClinicalAssessmentDiagnosisComponent(); - copyValues(dst); - dst.item = item == null ? null : item.copy(); - dst.cause = cause == null ? null : cause.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (item == null || item.isEmpty()) && (cause == null || cause.isEmpty()) - ; - } - - } - - @Block() - public static class ClinicalAssessmentRuledOutComponent extends BackboneElement { - /** - * Specific text of code for diagnosis. - */ - @Child(name="item", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="Specific text of code for diagnosis", formalDefinition="Specific text of code for diagnosis." ) - protected CodeableConcept item; - - /** - * Grounds for elimination. - */ - @Child(name="reason", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Grounds for elimination", formalDefinition="Grounds for elimination." ) - protected StringType reason; - - private static final long serialVersionUID = -1001661243L; - - public ClinicalAssessmentRuledOutComponent() { - super(); - } - - public ClinicalAssessmentRuledOutComponent(CodeableConcept item) { - super(); - this.item = item; - } - - /** - * @return {@link #item} (Specific text of code for diagnosis.) - */ - public CodeableConcept getItem() { - if (this.item == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessmentRuledOutComponent.item"); - else if (Configuration.doAutoCreate()) - this.item = new CodeableConcept(); - return this.item; - } - - public boolean hasItem() { - return this.item != null && !this.item.isEmpty(); - } - - /** - * @param value {@link #item} (Specific text of code for diagnosis.) - */ - public ClinicalAssessmentRuledOutComponent setItem(CodeableConcept value) { - this.item = value; - return this; - } - - /** - * @return {@link #reason} (Grounds for elimination.). This is the underlying object with id, value and extensions. The accessor "getReason" gives direct access to the value - */ - public StringType getReasonElement() { - if (this.reason == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessmentRuledOutComponent.reason"); - else if (Configuration.doAutoCreate()) - this.reason = new StringType(); - return this.reason; - } - - public boolean hasReasonElement() { - return this.reason != null && !this.reason.isEmpty(); - } - - public boolean hasReason() { - return this.reason != null && !this.reason.isEmpty(); - } - - /** - * @param value {@link #reason} (Grounds for elimination.). This is the underlying object with id, value and extensions. The accessor "getReason" gives direct access to the value - */ - public ClinicalAssessmentRuledOutComponent setReasonElement(StringType value) { - this.reason = value; - return this; - } - - /** - * @return Grounds for elimination. - */ - public String getReason() { - return this.reason == null ? null : this.reason.getValue(); - } - - /** - * @param value Grounds for elimination. - */ - public ClinicalAssessmentRuledOutComponent setReason(String value) { - if (Utilities.noString(value)) - this.reason = null; - else { - if (this.reason == null) - this.reason = new StringType(); - this.reason.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("item", "CodeableConcept", "Specific text of code for diagnosis.", 0, java.lang.Integer.MAX_VALUE, item)); - childrenList.add(new Property("reason", "string", "Grounds for elimination.", 0, java.lang.Integer.MAX_VALUE, reason)); - } - - public ClinicalAssessmentRuledOutComponent copy() { - ClinicalAssessmentRuledOutComponent dst = new ClinicalAssessmentRuledOutComponent(); - copyValues(dst); - dst.item = item == null ? null : item.copy(); - dst.reason = reason == null ? null : reason.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (item == null || item.isEmpty()) && (reason == null || reason.isEmpty()) - ; - } - - } - - /** - * The patient being asssesed. - */ - @Child(name="patient", type={Patient.class}, order=-1, min=1, max=1) - @Description(shortDefinition="The patient being asssesed", formalDefinition="The patient being asssesed." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (The patient being asssesed.) - */ - protected Patient patientTarget; - - /** - * The clinicial performing the assessment. - */ - @Child(name="assessor", type={Practitioner.class}, order=0, min=1, max=1) - @Description(shortDefinition="The clinicial performing the assessment", formalDefinition="The clinicial performing the assessment." ) - protected Reference assessor; - - /** - * The actual object that is the target of the reference (The clinicial performing the assessment.) - */ - protected Practitioner assessorTarget; - - /** - * The point in time at which the assessment was concluded (not when it was recorded). - */ - @Child(name="date", type={DateTimeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="When the assessment occurred", formalDefinition="The point in time at which the assessment was concluded (not when it was recorded)." ) - protected DateTimeType date; - - /** - * A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it. - */ - @Child(name="description", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Why/how the assessment was performed", formalDefinition="A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it." ) - protected StringType description; - - /** - * A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes. - */ - @Child(name="previous", type={ClinicalAssessment.class}, order=3, min=0, max=1) - @Description(shortDefinition="Reference to last assessment", formalDefinition="A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes." ) - protected Reference previous; - - /** - * The actual object that is the target of the reference (A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.) - */ - protected ClinicalAssessment previousTarget; - - /** - * This a list of the general problems/conditions for a patient. - */ - @Child(name="problem", type={Condition.class, AllergyIntolerance.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="General assessment of patient state", formalDefinition="This a list of the general problems/conditions for a patient." ) - protected List problem; - /** - * The actual objects that are the target of the reference (This a list of the general problems/conditions for a patient.) - */ - protected List problemTarget; - - - /** - * A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment. - */ - @Child(name="careplan", type={CarePlan.class}, order=5, min=0, max=1) - @Description(shortDefinition="A specific careplan that prompted this assessment", formalDefinition="A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment." ) - protected Reference careplan; - - /** - * The actual object that is the target of the reference (A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment.) - */ - protected CarePlan careplanTarget; - - /** - * A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment. - */ - @Child(name="referral", type={ReferralRequest.class}, order=6, min=0, max=1) - @Description(shortDefinition="A specific referral that lead to this assessment", formalDefinition="A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment." ) - protected Reference referral; - - /** - * The actual object that is the target of the reference (A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment.) - */ - protected ReferralRequest referralTarget; - - /** - * One or more sets of investigations (signs, symptions, etc). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes. - */ - @Child(name="investigations", type={}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="One or more sets of investigations (signs, symptions, etc)", formalDefinition="One or more sets of investigations (signs, symptions, etc). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes." ) - protected List investigations; - - /** - * Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis. - */ - @Child(name="protocol", type={UriType.class}, order=8, min=0, max=1) - @Description(shortDefinition="Clinical Protocol followed", formalDefinition="Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis." ) - protected UriType protocol; - - /** - * A text summary of the investigations and the diagnosis. - */ - @Child(name="summary", type={StringType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Summary of the assessment", formalDefinition="A text summary of the investigations and the diagnosis." ) - protected StringType summary; - - /** - * An specific diagnosis that was considered likely or relevant to ongoing treatment. - */ - @Child(name="diagnosis", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Possible or likely diagnosis", formalDefinition="An specific diagnosis that was considered likely or relevant to ongoing treatment." ) - protected List diagnosis; - - /** - * Diagnoses/conditions resolved since the last assessment. - */ - @Child(name="resolved", type={CodeableConcept.class}, order=11, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Diagnosies/conditions resolved since previous assessment", formalDefinition="Diagnoses/conditions resolved since the last assessment." ) - protected List resolved; - - /** - * Diagnosis considered not possible. - */ - @Child(name="ruledOut", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Diagnosis considered not possible", formalDefinition="Diagnosis considered not possible." ) - protected List ruledOut; - - /** - * Estimate of likely outcome. - */ - @Child(name="prognosis", type={StringType.class}, order=13, min=0, max=1) - @Description(shortDefinition="Estimate of likely outcome", formalDefinition="Estimate of likely outcome." ) - protected StringType prognosis; - - /** - * Plan of action after assessment. - */ - @Child(name="plan", type={CarePlan.class}, order=14, min=0, max=1) - @Description(shortDefinition="Plan of action after assessment", formalDefinition="Plan of action after assessment." ) - protected Reference plan; - - /** - * The actual object that is the target of the reference (Plan of action after assessment.) - */ - protected CarePlan planTarget; - - /** - * Actions taken during assessment. - */ - @Child(name="action", type={ReferralRequest.class, ProcedureRequest.class, Procedure.class, MedicationPrescription.class, DiagnosticOrder.class, NutritionOrder.class, Supply.class, Appointment.class}, order=15, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Actions taken during assessment", formalDefinition="Actions taken during assessment." ) - protected List action; - /** - * The actual objects that are the target of the reference (Actions taken during assessment.) - */ - protected List actionTarget; - - - private static final long serialVersionUID = 1041335013L; - - public ClinicalAssessment() { - super(); - } - - public ClinicalAssessment(Reference patient, Reference assessor, DateTimeType date) { - super(); - this.patient = patient; - this.assessor = assessor; - this.date = date; - } - - /** - * @return {@link #patient} (The patient being asssesed.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (The patient being asssesed.) - */ - public ClinicalAssessment setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient being asssesed.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient being asssesed.) - */ - public ClinicalAssessment setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #assessor} (The clinicial performing the assessment.) - */ - public Reference getAssessor() { - if (this.assessor == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.assessor"); - else if (Configuration.doAutoCreate()) - this.assessor = new Reference(); - return this.assessor; - } - - public boolean hasAssessor() { - return this.assessor != null && !this.assessor.isEmpty(); - } - - /** - * @param value {@link #assessor} (The clinicial performing the assessment.) - */ - public ClinicalAssessment setAssessor(Reference value) { - this.assessor = value; - return this; - } - - /** - * @return {@link #assessor} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The clinicial performing the assessment.) - */ - public Practitioner getAssessorTarget() { - if (this.assessorTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.assessor"); - else if (Configuration.doAutoCreate()) - this.assessorTarget = new Practitioner(); - return this.assessorTarget; - } - - /** - * @param value {@link #assessor} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The clinicial performing the assessment.) - */ - public ClinicalAssessment setAssessorTarget(Practitioner value) { - this.assessorTarget = value; - return this; - } - - /** - * @return {@link #date} (The point in time at which the assessment was concluded (not when it was recorded).). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (The point in time at which the assessment was concluded (not when it was recorded).). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public ClinicalAssessment setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return The point in time at which the assessment was concluded (not when it was recorded). - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value The point in time at which the assessment was concluded (not when it was recorded). - */ - public ClinicalAssessment setDate(Date value) { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - return this; - } - - /** - * @return {@link #description} (A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public ClinicalAssessment setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it. - */ - public ClinicalAssessment setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #previous} (A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.) - */ - public Reference getPrevious() { - if (this.previous == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.previous"); - else if (Configuration.doAutoCreate()) - this.previous = new Reference(); - return this.previous; - } - - public boolean hasPrevious() { - return this.previous != null && !this.previous.isEmpty(); - } - - /** - * @param value {@link #previous} (A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.) - */ - public ClinicalAssessment setPrevious(Reference value) { - this.previous = value; - return this; - } - - /** - * @return {@link #previous} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.) - */ - public ClinicalAssessment getPreviousTarget() { - if (this.previousTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.previous"); - else if (Configuration.doAutoCreate()) - this.previousTarget = new ClinicalAssessment(); - return this.previousTarget; - } - - /** - * @param value {@link #previous} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.) - */ - public ClinicalAssessment setPreviousTarget(ClinicalAssessment value) { - this.previousTarget = value; - return this; - } - - /** - * @return {@link #problem} (This a list of the general problems/conditions for a patient.) - */ - public List getProblem() { - if (this.problem == null) - this.problem = new ArrayList(); - return this.problem; - } - - public boolean hasProblem() { - if (this.problem == null) - return false; - for (Reference item : this.problem) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #problem} (This a list of the general problems/conditions for a patient.) - */ - // syntactic sugar - public Reference addProblem() { //3 - Reference t = new Reference(); - if (this.problem == null) - this.problem = new ArrayList(); - this.problem.add(t); - return t; - } - - /** - * @return {@link #problem} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. This a list of the general problems/conditions for a patient.) - */ - public List getProblemTarget() { - if (this.problemTarget == null) - this.problemTarget = new ArrayList(); - return this.problemTarget; - } - - /** - * @return {@link #careplan} (A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment.) - */ - public Reference getCareplan() { - if (this.careplan == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.careplan"); - else if (Configuration.doAutoCreate()) - this.careplan = new Reference(); - return this.careplan; - } - - public boolean hasCareplan() { - return this.careplan != null && !this.careplan.isEmpty(); - } - - /** - * @param value {@link #careplan} (A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment.) - */ - public ClinicalAssessment setCareplan(Reference value) { - this.careplan = value; - return this; - } - - /** - * @return {@link #careplan} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment.) - */ - public CarePlan getCareplanTarget() { - if (this.careplanTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.careplan"); - else if (Configuration.doAutoCreate()) - this.careplanTarget = new CarePlan(); - return this.careplanTarget; - } - - /** - * @param value {@link #careplan} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment.) - */ - public ClinicalAssessment setCareplanTarget(CarePlan value) { - this.careplanTarget = value; - return this; - } - - /** - * @return {@link #referral} (A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment.) - */ - public Reference getReferral() { - if (this.referral == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.referral"); - else if (Configuration.doAutoCreate()) - this.referral = new Reference(); - return this.referral; - } - - public boolean hasReferral() { - return this.referral != null && !this.referral.isEmpty(); - } - - /** - * @param value {@link #referral} (A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment.) - */ - public ClinicalAssessment setReferral(Reference value) { - this.referral = value; - return this; - } - - /** - * @return {@link #referral} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment.) - */ - public ReferralRequest getReferralTarget() { - if (this.referralTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.referral"); - else if (Configuration.doAutoCreate()) - this.referralTarget = new ReferralRequest(); - return this.referralTarget; - } - - /** - * @param value {@link #referral} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment.) - */ - public ClinicalAssessment setReferralTarget(ReferralRequest value) { - this.referralTarget = value; - return this; - } - - /** - * @return {@link #investigations} (One or more sets of investigations (signs, symptions, etc). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes.) - */ - public List getInvestigations() { - if (this.investigations == null) - this.investigations = new ArrayList(); - return this.investigations; - } - - public boolean hasInvestigations() { - if (this.investigations == null) - return false; - for (ClinicalAssessmentInvestigationsComponent item : this.investigations) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #investigations} (One or more sets of investigations (signs, symptions, etc). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes.) - */ - // syntactic sugar - public ClinicalAssessmentInvestigationsComponent addInvestigations() { //3 - ClinicalAssessmentInvestigationsComponent t = new ClinicalAssessmentInvestigationsComponent(); - if (this.investigations == null) - this.investigations = new ArrayList(); - this.investigations.add(t); - return t; - } - - /** - * @return {@link #protocol} (Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis.). This is the underlying object with id, value and extensions. The accessor "getProtocol" gives direct access to the value - */ - public UriType getProtocolElement() { - if (this.protocol == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.protocol"); - else if (Configuration.doAutoCreate()) - this.protocol = new UriType(); - return this.protocol; - } - - public boolean hasProtocolElement() { - return this.protocol != null && !this.protocol.isEmpty(); - } - - public boolean hasProtocol() { - return this.protocol != null && !this.protocol.isEmpty(); - } - - /** - * @param value {@link #protocol} (Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis.). This is the underlying object with id, value and extensions. The accessor "getProtocol" gives direct access to the value - */ - public ClinicalAssessment setProtocolElement(UriType value) { - this.protocol = value; - return this; - } - - /** - * @return Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis. - */ - public String getProtocol() { - return this.protocol == null ? null : this.protocol.getValue(); - } - - /** - * @param value Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis. - */ - public ClinicalAssessment setProtocol(String value) { - if (Utilities.noString(value)) - this.protocol = null; - else { - if (this.protocol == null) - this.protocol = new UriType(); - this.protocol.setValue(value); - } - return this; - } - - /** - * @return {@link #summary} (A text summary of the investigations and the diagnosis.). This is the underlying object with id, value and extensions. The accessor "getSummary" gives direct access to the value - */ - public StringType getSummaryElement() { - if (this.summary == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.summary"); - else if (Configuration.doAutoCreate()) - this.summary = new StringType(); - return this.summary; - } - - public boolean hasSummaryElement() { - return this.summary != null && !this.summary.isEmpty(); - } - - public boolean hasSummary() { - return this.summary != null && !this.summary.isEmpty(); - } - - /** - * @param value {@link #summary} (A text summary of the investigations and the diagnosis.). This is the underlying object with id, value and extensions. The accessor "getSummary" gives direct access to the value - */ - public ClinicalAssessment setSummaryElement(StringType value) { - this.summary = value; - return this; - } - - /** - * @return A text summary of the investigations and the diagnosis. - */ - public String getSummary() { - return this.summary == null ? null : this.summary.getValue(); - } - - /** - * @param value A text summary of the investigations and the diagnosis. - */ - public ClinicalAssessment setSummary(String value) { - if (Utilities.noString(value)) - this.summary = null; - else { - if (this.summary == null) - this.summary = new StringType(); - this.summary.setValue(value); - } - return this; - } - - /** - * @return {@link #diagnosis} (An specific diagnosis that was considered likely or relevant to ongoing treatment.) - */ - public List getDiagnosis() { - if (this.diagnosis == null) - this.diagnosis = new ArrayList(); - return this.diagnosis; - } - - public boolean hasDiagnosis() { - if (this.diagnosis == null) - return false; - for (ClinicalAssessmentDiagnosisComponent item : this.diagnosis) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #diagnosis} (An specific diagnosis that was considered likely or relevant to ongoing treatment.) - */ - // syntactic sugar - public ClinicalAssessmentDiagnosisComponent addDiagnosis() { //3 - ClinicalAssessmentDiagnosisComponent t = new ClinicalAssessmentDiagnosisComponent(); - if (this.diagnosis == null) - this.diagnosis = new ArrayList(); - this.diagnosis.add(t); - return t; - } - - /** - * @return {@link #resolved} (Diagnoses/conditions resolved since the last assessment.) - */ - public List getResolved() { - if (this.resolved == null) - this.resolved = new ArrayList(); - return this.resolved; - } - - public boolean hasResolved() { - if (this.resolved == null) - return false; - for (CodeableConcept item : this.resolved) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #resolved} (Diagnoses/conditions resolved since the last assessment.) - */ - // syntactic sugar - public CodeableConcept addResolved() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.resolved == null) - this.resolved = new ArrayList(); - this.resolved.add(t); - return t; - } - - /** - * @return {@link #ruledOut} (Diagnosis considered not possible.) - */ - public List getRuledOut() { - if (this.ruledOut == null) - this.ruledOut = new ArrayList(); - return this.ruledOut; - } - - public boolean hasRuledOut() { - if (this.ruledOut == null) - return false; - for (ClinicalAssessmentRuledOutComponent item : this.ruledOut) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #ruledOut} (Diagnosis considered not possible.) - */ - // syntactic sugar - public ClinicalAssessmentRuledOutComponent addRuledOut() { //3 - ClinicalAssessmentRuledOutComponent t = new ClinicalAssessmentRuledOutComponent(); - if (this.ruledOut == null) - this.ruledOut = new ArrayList(); - this.ruledOut.add(t); - return t; - } - - /** - * @return {@link #prognosis} (Estimate of likely outcome.). This is the underlying object with id, value and extensions. The accessor "getPrognosis" gives direct access to the value - */ - public StringType getPrognosisElement() { - if (this.prognosis == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.prognosis"); - else if (Configuration.doAutoCreate()) - this.prognosis = new StringType(); - return this.prognosis; - } - - public boolean hasPrognosisElement() { - return this.prognosis != null && !this.prognosis.isEmpty(); - } - - public boolean hasPrognosis() { - return this.prognosis != null && !this.prognosis.isEmpty(); - } - - /** - * @param value {@link #prognosis} (Estimate of likely outcome.). This is the underlying object with id, value and extensions. The accessor "getPrognosis" gives direct access to the value - */ - public ClinicalAssessment setPrognosisElement(StringType value) { - this.prognosis = value; - return this; - } - - /** - * @return Estimate of likely outcome. - */ - public String getPrognosis() { - return this.prognosis == null ? null : this.prognosis.getValue(); - } - - /** - * @param value Estimate of likely outcome. - */ - public ClinicalAssessment setPrognosis(String value) { - if (Utilities.noString(value)) - this.prognosis = null; - else { - if (this.prognosis == null) - this.prognosis = new StringType(); - this.prognosis.setValue(value); - } - return this; - } - - /** - * @return {@link #plan} (Plan of action after assessment.) - */ - public Reference getPlan() { - if (this.plan == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.plan"); - else if (Configuration.doAutoCreate()) - this.plan = new Reference(); - return this.plan; - } - - public boolean hasPlan() { - return this.plan != null && !this.plan.isEmpty(); - } - - /** - * @param value {@link #plan} (Plan of action after assessment.) - */ - public ClinicalAssessment setPlan(Reference value) { - this.plan = value; - return this; - } - - /** - * @return {@link #plan} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Plan of action after assessment.) - */ - public CarePlan getPlanTarget() { - if (this.planTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ClinicalAssessment.plan"); - else if (Configuration.doAutoCreate()) - this.planTarget = new CarePlan(); - return this.planTarget; - } - - /** - * @param value {@link #plan} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Plan of action after assessment.) - */ - public ClinicalAssessment setPlanTarget(CarePlan value) { - this.planTarget = value; - return this; - } - - /** - * @return {@link #action} (Actions taken during assessment.) - */ - public List getAction() { - if (this.action == null) - this.action = new ArrayList(); - return this.action; - } - - public boolean hasAction() { - if (this.action == null) - return false; - for (Reference item : this.action) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #action} (Actions taken during assessment.) - */ - // syntactic sugar - public Reference addAction() { //3 - Reference t = new Reference(); - if (this.action == null) - this.action = new ArrayList(); - this.action.add(t); - return t; - } - - /** - * @return {@link #action} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Actions taken during assessment.) - */ - public List getActionTarget() { - if (this.actionTarget == null) - this.actionTarget = new ArrayList(); - return this.actionTarget; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("patient", "Reference(Patient)", "The patient being asssesed.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("assessor", "Reference(Practitioner)", "The clinicial performing the assessment.", 0, java.lang.Integer.MAX_VALUE, assessor)); - childrenList.add(new Property("date", "dateTime", "The point in time at which the assessment was concluded (not when it was recorded).", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("description", "string", "A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("previous", "Reference(ClinicalAssessment)", "A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.", 0, java.lang.Integer.MAX_VALUE, previous)); - childrenList.add(new Property("problem", "Reference(Condition|AllergyIntolerance)", "This a list of the general problems/conditions for a patient.", 0, java.lang.Integer.MAX_VALUE, problem)); - childrenList.add(new Property("careplan", "Reference(CarePlan)", "A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment.", 0, java.lang.Integer.MAX_VALUE, careplan)); - childrenList.add(new Property("referral", "Reference(ReferralRequest)", "A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment.", 0, java.lang.Integer.MAX_VALUE, referral)); - childrenList.add(new Property("investigations", "", "One or more sets of investigations (signs, symptions, etc). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes.", 0, java.lang.Integer.MAX_VALUE, investigations)); - childrenList.add(new Property("protocol", "uri", "Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis.", 0, java.lang.Integer.MAX_VALUE, protocol)); - childrenList.add(new Property("summary", "string", "A text summary of the investigations and the diagnosis.", 0, java.lang.Integer.MAX_VALUE, summary)); - childrenList.add(new Property("diagnosis", "", "An specific diagnosis that was considered likely or relevant to ongoing treatment.", 0, java.lang.Integer.MAX_VALUE, diagnosis)); - childrenList.add(new Property("resolved", "CodeableConcept", "Diagnoses/conditions resolved since the last assessment.", 0, java.lang.Integer.MAX_VALUE, resolved)); - childrenList.add(new Property("ruledOut", "", "Diagnosis considered not possible.", 0, java.lang.Integer.MAX_VALUE, ruledOut)); - childrenList.add(new Property("prognosis", "string", "Estimate of likely outcome.", 0, java.lang.Integer.MAX_VALUE, prognosis)); - childrenList.add(new Property("plan", "Reference(CarePlan)", "Plan of action after assessment.", 0, java.lang.Integer.MAX_VALUE, plan)); - childrenList.add(new Property("action", "Reference(ReferralRequest|ProcedureRequest|Procedure|MedicationPrescription|DiagnosticOrder|NutritionOrder|Supply|Appointment)", "Actions taken during assessment.", 0, java.lang.Integer.MAX_VALUE, action)); - } - - public ClinicalAssessment copy() { - ClinicalAssessment dst = new ClinicalAssessment(); - copyValues(dst); - dst.patient = patient == null ? null : patient.copy(); - dst.assessor = assessor == null ? null : assessor.copy(); - dst.date = date == null ? null : date.copy(); - dst.description = description == null ? null : description.copy(); - dst.previous = previous == null ? null : previous.copy(); - if (problem != null) { - dst.problem = new ArrayList(); - for (Reference i : problem) - dst.problem.add(i.copy()); - }; - dst.careplan = careplan == null ? null : careplan.copy(); - dst.referral = referral == null ? null : referral.copy(); - if (investigations != null) { - dst.investigations = new ArrayList(); - for (ClinicalAssessmentInvestigationsComponent i : investigations) - dst.investigations.add(i.copy()); - }; - dst.protocol = protocol == null ? null : protocol.copy(); - dst.summary = summary == null ? null : summary.copy(); - if (diagnosis != null) { - dst.diagnosis = new ArrayList(); - for (ClinicalAssessmentDiagnosisComponent i : diagnosis) - dst.diagnosis.add(i.copy()); - }; - if (resolved != null) { - dst.resolved = new ArrayList(); - for (CodeableConcept i : resolved) - dst.resolved.add(i.copy()); - }; - if (ruledOut != null) { - dst.ruledOut = new ArrayList(); - for (ClinicalAssessmentRuledOutComponent i : ruledOut) - dst.ruledOut.add(i.copy()); - }; - dst.prognosis = prognosis == null ? null : prognosis.copy(); - dst.plan = plan == null ? null : plan.copy(); - if (action != null) { - dst.action = new ArrayList(); - for (Reference i : action) - dst.action.add(i.copy()); - }; - return dst; - } - - protected ClinicalAssessment typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (patient == null || patient.isEmpty()) && (assessor == null || assessor.isEmpty()) - && (date == null || date.isEmpty()) && (description == null || description.isEmpty()) && (previous == null || previous.isEmpty()) - && (problem == null || problem.isEmpty()) && (careplan == null || careplan.isEmpty()) && (referral == null || referral.isEmpty()) - && (investigations == null || investigations.isEmpty()) && (protocol == null || protocol.isEmpty()) - && (summary == null || summary.isEmpty()) && (diagnosis == null || diagnosis.isEmpty()) && (resolved == null || resolved.isEmpty()) - && (ruledOut == null || ruledOut.isEmpty()) && (prognosis == null || prognosis.isEmpty()) - && (plan == null || plan.isEmpty()) && (action == null || action.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.ClinicalAssessment; - } - - @SearchParamDefinition(name="previous", path="ClinicalAssessment.previous", description="Reference to last assessment", type="reference" ) - public static final String SP_PREVIOUS = "previous"; - @SearchParamDefinition(name="referral", path="ClinicalAssessment.referral", description="A specific referral that lead to this assessment", type="reference" ) - public static final String SP_REFERRAL = "referral"; - @SearchParamDefinition(name="diagnosis", path="ClinicalAssessment.diagnosis.item", description="Specific text or code for diagnosis", type="token" ) - public static final String SP_DIAGNOSIS = "diagnosis"; - @SearchParamDefinition(name="problem", path="ClinicalAssessment.problem", description="General assessment of patient state", type="reference" ) - public static final String SP_PROBLEM = "problem"; - @SearchParamDefinition(name="date", path="ClinicalAssessment.date", description="When the assessment occurred", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="careplan", path="ClinicalAssessment.careplan", description="A specific careplan that prompted this assessment", type="reference" ) - public static final String SP_CAREPLAN = "careplan"; - @SearchParamDefinition(name="ruledout", path="ClinicalAssessment.ruledOut.item", description="Specific text of code for diagnosis", type="token" ) - public static final String SP_RULEDOUT = "ruledout"; - @SearchParamDefinition(name="assessor", path="ClinicalAssessment.assessor", description="The clinicial performing the assessment", type="reference" ) - public static final String SP_ASSESSOR = "assessor"; - @SearchParamDefinition(name="patient", path="ClinicalAssessment.patient", description="The patient being asssesed", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="resolved", path="ClinicalAssessment.resolved", description="Diagnosies/conditions resolved since previous assessment", type="token" ) - public static final String SP_RESOLVED = "resolved"; - @SearchParamDefinition(name="plan", path="ClinicalAssessment.plan", description="Plan of action after assessment", type="reference" ) - public static final String SP_PLAN = "plan"; - @SearchParamDefinition(name="action", path="ClinicalAssessment.action", description="Actions taken during assessment", type="reference" ) - public static final String SP_ACTION = "action"; - @SearchParamDefinition(name="investigation", path="ClinicalAssessment.investigations.item", description="Record of a specific investigation", type="reference" ) - public static final String SP_INVESTIGATION = "investigation"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter, but this varies greatly depending on the clinical workflow. + */ +@ResourceDef(name="ClinicalAssessment", profile="http://hl7.org/fhir/Profile/ClinicalAssessment") +public class ClinicalAssessment extends DomainResource { + + @Block() + public static class ClinicalAssessmentInvestigationsComponent extends BackboneElement { + /** + * A name/code for the group ("set") of investigations. Typically, this will be something like "signs", "symptoms", "clinical", "diagnostic", but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used. + */ + @Child(name="code", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="A name/code for the set", formalDefinition="A name/code for the group ('set') of investigations. Typically, this will be something like 'signs', 'symptoms', 'clinical', 'diagnostic', but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used." ) + protected CodeableConcept code; + + /** + * A record of a specific investigation that was undertaken. + */ + @Child(name="item", type={Observation.class, QuestionnaireAnswers.class, FamilyHistory.class, DiagnosticReport.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Record of a specific investigation", formalDefinition="A record of a specific investigation that was undertaken." ) + protected List item; + /** + * The actual objects that are the target of the reference (A record of a specific investigation that was undertaken.) + */ + protected List itemTarget; + + + private static final long serialVersionUID = -301363326L; + + public ClinicalAssessmentInvestigationsComponent() { + super(); + } + + public ClinicalAssessmentInvestigationsComponent(CodeableConcept code) { + super(); + this.code = code; + } + + /** + * @return {@link #code} (A name/code for the group ("set") of investigations. Typically, this will be something like "signs", "symptoms", "clinical", "diagnostic", but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessmentInvestigationsComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (A name/code for the group ("set") of investigations. Typically, this will be something like "signs", "symptoms", "clinical", "diagnostic", but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used.) + */ + public ClinicalAssessmentInvestigationsComponent setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #item} (A record of a specific investigation that was undertaken.) + */ + public List getItem() { + if (this.item == null) + this.item = new ArrayList(); + return this.item; + } + + public boolean hasItem() { + if (this.item == null) + return false; + for (Reference item : this.item) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #item} (A record of a specific investigation that was undertaken.) + */ + // syntactic sugar + public Reference addItem() { //3 + Reference t = new Reference(); + if (this.item == null) + this.item = new ArrayList(); + this.item.add(t); + return t; + } + + /** + * @return {@link #item} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A record of a specific investigation that was undertaken.) + */ + public List getItemTarget() { + if (this.itemTarget == null) + this.itemTarget = new ArrayList(); + return this.itemTarget; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "CodeableConcept", "A name/code for the group ('set') of investigations. Typically, this will be something like 'signs', 'symptoms', 'clinical', 'diagnostic', but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("item", "Reference(Observation|QuestionnaireAnswers|FamilyHistory|DiagnosticReport)", "A record of a specific investigation that was undertaken.", 0, java.lang.Integer.MAX_VALUE, item)); + } + + public ClinicalAssessmentInvestigationsComponent copy() { + ClinicalAssessmentInvestigationsComponent dst = new ClinicalAssessmentInvestigationsComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + if (item != null) { + dst.item = new ArrayList(); + for (Reference i : item) + dst.item.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ClinicalAssessmentInvestigationsComponent)) + return false; + ClinicalAssessmentInvestigationsComponent o = (ClinicalAssessmentInvestigationsComponent) other; + return compareDeep(code, o.code, true) && compareDeep(item, o.item, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ClinicalAssessmentInvestigationsComponent)) + return false; + ClinicalAssessmentInvestigationsComponent o = (ClinicalAssessmentInvestigationsComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (item == null || item.isEmpty()) + ; + } + + } + + @Block() + public static class ClinicalAssessmentDiagnosisComponent extends BackboneElement { + /** + * Specific text of code for diagnosis. + */ + @Child(name="item", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="Specific text or code for diagnosis", formalDefinition="Specific text of code for diagnosis." ) + protected CodeableConcept item; + + /** + * Which investigations support diagnosis. + */ + @Child(name="cause", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Which investigations support diagnosis", formalDefinition="Which investigations support diagnosis." ) + protected StringType cause; + + private static final long serialVersionUID = -888590978L; + + public ClinicalAssessmentDiagnosisComponent() { + super(); + } + + public ClinicalAssessmentDiagnosisComponent(CodeableConcept item) { + super(); + this.item = item; + } + + /** + * @return {@link #item} (Specific text of code for diagnosis.) + */ + public CodeableConcept getItem() { + if (this.item == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessmentDiagnosisComponent.item"); + else if (Configuration.doAutoCreate()) + this.item = new CodeableConcept(); // cc + return this.item; + } + + public boolean hasItem() { + return this.item != null && !this.item.isEmpty(); + } + + /** + * @param value {@link #item} (Specific text of code for diagnosis.) + */ + public ClinicalAssessmentDiagnosisComponent setItem(CodeableConcept value) { + this.item = value; + return this; + } + + /** + * @return {@link #cause} (Which investigations support diagnosis.). This is the underlying object with id, value and extensions. The accessor "getCause" gives direct access to the value + */ + public StringType getCauseElement() { + if (this.cause == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessmentDiagnosisComponent.cause"); + else if (Configuration.doAutoCreate()) + this.cause = new StringType(); // bb + return this.cause; + } + + public boolean hasCauseElement() { + return this.cause != null && !this.cause.isEmpty(); + } + + public boolean hasCause() { + return this.cause != null && !this.cause.isEmpty(); + } + + /** + * @param value {@link #cause} (Which investigations support diagnosis.). This is the underlying object with id, value and extensions. The accessor "getCause" gives direct access to the value + */ + public ClinicalAssessmentDiagnosisComponent setCauseElement(StringType value) { + this.cause = value; + return this; + } + + /** + * @return Which investigations support diagnosis. + */ + public String getCause() { + return this.cause == null ? null : this.cause.getValue(); + } + + /** + * @param value Which investigations support diagnosis. + */ + public ClinicalAssessmentDiagnosisComponent setCause(String value) { + if (Utilities.noString(value)) + this.cause = null; + else { + if (this.cause == null) + this.cause = new StringType(); + this.cause.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("item", "CodeableConcept", "Specific text of code for diagnosis.", 0, java.lang.Integer.MAX_VALUE, item)); + childrenList.add(new Property("cause", "string", "Which investigations support diagnosis.", 0, java.lang.Integer.MAX_VALUE, cause)); + } + + public ClinicalAssessmentDiagnosisComponent copy() { + ClinicalAssessmentDiagnosisComponent dst = new ClinicalAssessmentDiagnosisComponent(); + copyValues(dst); + dst.item = item == null ? null : item.copy(); + dst.cause = cause == null ? null : cause.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ClinicalAssessmentDiagnosisComponent)) + return false; + ClinicalAssessmentDiagnosisComponent o = (ClinicalAssessmentDiagnosisComponent) other; + return compareDeep(item, o.item, true) && compareDeep(cause, o.cause, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ClinicalAssessmentDiagnosisComponent)) + return false; + ClinicalAssessmentDiagnosisComponent o = (ClinicalAssessmentDiagnosisComponent) other; + return compareValues(cause, o.cause, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (item == null || item.isEmpty()) && (cause == null || cause.isEmpty()) + ; + } + + } + + @Block() + public static class ClinicalAssessmentRuledOutComponent extends BackboneElement { + /** + * Specific text of code for diagnosis. + */ + @Child(name="item", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="Specific text of code for diagnosis", formalDefinition="Specific text of code for diagnosis." ) + protected CodeableConcept item; + + /** + * Grounds for elimination. + */ + @Child(name="reason", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Grounds for elimination", formalDefinition="Grounds for elimination." ) + protected StringType reason; + + private static final long serialVersionUID = -1001661243L; + + public ClinicalAssessmentRuledOutComponent() { + super(); + } + + public ClinicalAssessmentRuledOutComponent(CodeableConcept item) { + super(); + this.item = item; + } + + /** + * @return {@link #item} (Specific text of code for diagnosis.) + */ + public CodeableConcept getItem() { + if (this.item == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessmentRuledOutComponent.item"); + else if (Configuration.doAutoCreate()) + this.item = new CodeableConcept(); // cc + return this.item; + } + + public boolean hasItem() { + return this.item != null && !this.item.isEmpty(); + } + + /** + * @param value {@link #item} (Specific text of code for diagnosis.) + */ + public ClinicalAssessmentRuledOutComponent setItem(CodeableConcept value) { + this.item = value; + return this; + } + + /** + * @return {@link #reason} (Grounds for elimination.). This is the underlying object with id, value and extensions. The accessor "getReason" gives direct access to the value + */ + public StringType getReasonElement() { + if (this.reason == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessmentRuledOutComponent.reason"); + else if (Configuration.doAutoCreate()) + this.reason = new StringType(); // bb + return this.reason; + } + + public boolean hasReasonElement() { + return this.reason != null && !this.reason.isEmpty(); + } + + public boolean hasReason() { + return this.reason != null && !this.reason.isEmpty(); + } + + /** + * @param value {@link #reason} (Grounds for elimination.). This is the underlying object with id, value and extensions. The accessor "getReason" gives direct access to the value + */ + public ClinicalAssessmentRuledOutComponent setReasonElement(StringType value) { + this.reason = value; + return this; + } + + /** + * @return Grounds for elimination. + */ + public String getReason() { + return this.reason == null ? null : this.reason.getValue(); + } + + /** + * @param value Grounds for elimination. + */ + public ClinicalAssessmentRuledOutComponent setReason(String value) { + if (Utilities.noString(value)) + this.reason = null; + else { + if (this.reason == null) + this.reason = new StringType(); + this.reason.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("item", "CodeableConcept", "Specific text of code for diagnosis.", 0, java.lang.Integer.MAX_VALUE, item)); + childrenList.add(new Property("reason", "string", "Grounds for elimination.", 0, java.lang.Integer.MAX_VALUE, reason)); + } + + public ClinicalAssessmentRuledOutComponent copy() { + ClinicalAssessmentRuledOutComponent dst = new ClinicalAssessmentRuledOutComponent(); + copyValues(dst); + dst.item = item == null ? null : item.copy(); + dst.reason = reason == null ? null : reason.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ClinicalAssessmentRuledOutComponent)) + return false; + ClinicalAssessmentRuledOutComponent o = (ClinicalAssessmentRuledOutComponent) other; + return compareDeep(item, o.item, true) && compareDeep(reason, o.reason, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ClinicalAssessmentRuledOutComponent)) + return false; + ClinicalAssessmentRuledOutComponent o = (ClinicalAssessmentRuledOutComponent) other; + return compareValues(reason, o.reason, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (item == null || item.isEmpty()) && (reason == null || reason.isEmpty()) + ; + } + + } + + /** + * The patient being asssesed. + */ + @Child(name="patient", type={Patient.class}, order=-1, min=1, max=1) + @Description(shortDefinition="The patient being asssesed", formalDefinition="The patient being asssesed." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (The patient being asssesed.) + */ + protected Patient patientTarget; + + /** + * The clinicial performing the assessment. + */ + @Child(name="assessor", type={Practitioner.class}, order=0, min=1, max=1) + @Description(shortDefinition="The clinicial performing the assessment", formalDefinition="The clinicial performing the assessment." ) + protected Reference assessor; + + /** + * The actual object that is the target of the reference (The clinicial performing the assessment.) + */ + protected Practitioner assessorTarget; + + /** + * The point in time at which the assessment was concluded (not when it was recorded). + */ + @Child(name="date", type={DateTimeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="When the assessment occurred", formalDefinition="The point in time at which the assessment was concluded (not when it was recorded)." ) + protected DateTimeType date; + + /** + * A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it. + */ + @Child(name="description", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Why/how the assessment was performed", formalDefinition="A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it." ) + protected StringType description; + + /** + * A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes. + */ + @Child(name="previous", type={ClinicalAssessment.class}, order=3, min=0, max=1) + @Description(shortDefinition="Reference to last assessment", formalDefinition="A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes." ) + protected Reference previous; + + /** + * The actual object that is the target of the reference (A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.) + */ + protected ClinicalAssessment previousTarget; + + /** + * This a list of the general problems/conditions for a patient. + */ + @Child(name="problem", type={Condition.class, AllergyIntolerance.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="General assessment of patient state", formalDefinition="This a list of the general problems/conditions for a patient." ) + protected List problem; + /** + * The actual objects that are the target of the reference (This a list of the general problems/conditions for a patient.) + */ + protected List problemTarget; + + + /** + * A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment. + */ + @Child(name="careplan", type={CarePlan.class}, order=5, min=0, max=1) + @Description(shortDefinition="A specific careplan that prompted this assessment", formalDefinition="A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment." ) + protected Reference careplan; + + /** + * The actual object that is the target of the reference (A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment.) + */ + protected CarePlan careplanTarget; + + /** + * A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment. + */ + @Child(name="referral", type={ReferralRequest.class}, order=6, min=0, max=1) + @Description(shortDefinition="A specific referral that lead to this assessment", formalDefinition="A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment." ) + protected Reference referral; + + /** + * The actual object that is the target of the reference (A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment.) + */ + protected ReferralRequest referralTarget; + + /** + * One or more sets of investigations (signs, symptions, etc). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes. + */ + @Child(name="investigations", type={}, order=7, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="One or more sets of investigations (signs, symptions, etc)", formalDefinition="One or more sets of investigations (signs, symptions, etc). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes." ) + protected List investigations; + + /** + * Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis. + */ + @Child(name="protocol", type={UriType.class}, order=8, min=0, max=1) + @Description(shortDefinition="Clinical Protocol followed", formalDefinition="Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis." ) + protected UriType protocol; + + /** + * A text summary of the investigations and the diagnosis. + */ + @Child(name="summary", type={StringType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Summary of the assessment", formalDefinition="A text summary of the investigations and the diagnosis." ) + protected StringType summary; + + /** + * An specific diagnosis that was considered likely or relevant to ongoing treatment. + */ + @Child(name="diagnosis", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Possible or likely diagnosis", formalDefinition="An specific diagnosis that was considered likely or relevant to ongoing treatment." ) + protected List diagnosis; + + /** + * Diagnoses/conditions resolved since the last assessment. + */ + @Child(name="resolved", type={CodeableConcept.class}, order=11, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Diagnosies/conditions resolved since previous assessment", formalDefinition="Diagnoses/conditions resolved since the last assessment." ) + protected List resolved; + + /** + * Diagnosis considered not possible. + */ + @Child(name="ruledOut", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Diagnosis considered not possible", formalDefinition="Diagnosis considered not possible." ) + protected List ruledOut; + + /** + * Estimate of likely outcome. + */ + @Child(name="prognosis", type={StringType.class}, order=13, min=0, max=1) + @Description(shortDefinition="Estimate of likely outcome", formalDefinition="Estimate of likely outcome." ) + protected StringType prognosis; + + /** + * Plan of action after assessment. + */ + @Child(name="plan", type={CarePlan.class}, order=14, min=0, max=1) + @Description(shortDefinition="Plan of action after assessment", formalDefinition="Plan of action after assessment." ) + protected Reference plan; + + /** + * The actual object that is the target of the reference (Plan of action after assessment.) + */ + protected CarePlan planTarget; + + /** + * Actions taken during assessment. + */ + @Child(name="action", type={ReferralRequest.class, ProcedureRequest.class, Procedure.class, MedicationPrescription.class, DiagnosticOrder.class, NutritionOrder.class, Supply.class, Appointment.class}, order=15, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Actions taken during assessment", formalDefinition="Actions taken during assessment." ) + protected List action; + /** + * The actual objects that are the target of the reference (Actions taken during assessment.) + */ + protected List actionTarget; + + + private static final long serialVersionUID = 1041335013L; + + public ClinicalAssessment() { + super(); + } + + public ClinicalAssessment(Reference patient, Reference assessor, DateTimeType date) { + super(); + this.patient = patient; + this.assessor = assessor; + this.date = date; + } + + /** + * @return {@link #patient} (The patient being asssesed.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (The patient being asssesed.) + */ + public ClinicalAssessment setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient being asssesed.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient being asssesed.) + */ + public ClinicalAssessment setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #assessor} (The clinicial performing the assessment.) + */ + public Reference getAssessor() { + if (this.assessor == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.assessor"); + else if (Configuration.doAutoCreate()) + this.assessor = new Reference(); // cc + return this.assessor; + } + + public boolean hasAssessor() { + return this.assessor != null && !this.assessor.isEmpty(); + } + + /** + * @param value {@link #assessor} (The clinicial performing the assessment.) + */ + public ClinicalAssessment setAssessor(Reference value) { + this.assessor = value; + return this; + } + + /** + * @return {@link #assessor} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The clinicial performing the assessment.) + */ + public Practitioner getAssessorTarget() { + if (this.assessorTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.assessor"); + else if (Configuration.doAutoCreate()) + this.assessorTarget = new Practitioner(); // aa + return this.assessorTarget; + } + + /** + * @param value {@link #assessor} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The clinicial performing the assessment.) + */ + public ClinicalAssessment setAssessorTarget(Practitioner value) { + this.assessorTarget = value; + return this; + } + + /** + * @return {@link #date} (The point in time at which the assessment was concluded (not when it was recorded).). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (The point in time at which the assessment was concluded (not when it was recorded).). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public ClinicalAssessment setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return The point in time at which the assessment was concluded (not when it was recorded). + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value The point in time at which the assessment was concluded (not when it was recorded). + */ + public ClinicalAssessment setDate(Date value) { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + return this; + } + + /** + * @return {@link #description} (A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public ClinicalAssessment setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it. + */ + public ClinicalAssessment setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #previous} (A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.) + */ + public Reference getPrevious() { + if (this.previous == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.previous"); + else if (Configuration.doAutoCreate()) + this.previous = new Reference(); // cc + return this.previous; + } + + public boolean hasPrevious() { + return this.previous != null && !this.previous.isEmpty(); + } + + /** + * @param value {@link #previous} (A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.) + */ + public ClinicalAssessment setPrevious(Reference value) { + this.previous = value; + return this; + } + + /** + * @return {@link #previous} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.) + */ + public ClinicalAssessment getPreviousTarget() { + if (this.previousTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.previous"); + else if (Configuration.doAutoCreate()) + this.previousTarget = new ClinicalAssessment(); // aa + return this.previousTarget; + } + + /** + * @param value {@link #previous} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.) + */ + public ClinicalAssessment setPreviousTarget(ClinicalAssessment value) { + this.previousTarget = value; + return this; + } + + /** + * @return {@link #problem} (This a list of the general problems/conditions for a patient.) + */ + public List getProblem() { + if (this.problem == null) + this.problem = new ArrayList(); + return this.problem; + } + + public boolean hasProblem() { + if (this.problem == null) + return false; + for (Reference item : this.problem) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #problem} (This a list of the general problems/conditions for a patient.) + */ + // syntactic sugar + public Reference addProblem() { //3 + Reference t = new Reference(); + if (this.problem == null) + this.problem = new ArrayList(); + this.problem.add(t); + return t; + } + + /** + * @return {@link #problem} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. This a list of the general problems/conditions for a patient.) + */ + public List getProblemTarget() { + if (this.problemTarget == null) + this.problemTarget = new ArrayList(); + return this.problemTarget; + } + + /** + * @return {@link #careplan} (A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment.) + */ + public Reference getCareplan() { + if (this.careplan == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.careplan"); + else if (Configuration.doAutoCreate()) + this.careplan = new Reference(); // cc + return this.careplan; + } + + public boolean hasCareplan() { + return this.careplan != null && !this.careplan.isEmpty(); + } + + /** + * @param value {@link #careplan} (A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment.) + */ + public ClinicalAssessment setCareplan(Reference value) { + this.careplan = value; + return this; + } + + /** + * @return {@link #careplan} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment.) + */ + public CarePlan getCareplanTarget() { + if (this.careplanTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.careplan"); + else if (Configuration.doAutoCreate()) + this.careplanTarget = new CarePlan(); // aa + return this.careplanTarget; + } + + /** + * @param value {@link #careplan} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment.) + */ + public ClinicalAssessment setCareplanTarget(CarePlan value) { + this.careplanTarget = value; + return this; + } + + /** + * @return {@link #referral} (A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment.) + */ + public Reference getReferral() { + if (this.referral == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.referral"); + else if (Configuration.doAutoCreate()) + this.referral = new Reference(); // cc + return this.referral; + } + + public boolean hasReferral() { + return this.referral != null && !this.referral.isEmpty(); + } + + /** + * @param value {@link #referral} (A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment.) + */ + public ClinicalAssessment setReferral(Reference value) { + this.referral = value; + return this; + } + + /** + * @return {@link #referral} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment.) + */ + public ReferralRequest getReferralTarget() { + if (this.referralTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.referral"); + else if (Configuration.doAutoCreate()) + this.referralTarget = new ReferralRequest(); // aa + return this.referralTarget; + } + + /** + * @param value {@link #referral} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment.) + */ + public ClinicalAssessment setReferralTarget(ReferralRequest value) { + this.referralTarget = value; + return this; + } + + /** + * @return {@link #investigations} (One or more sets of investigations (signs, symptions, etc). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes.) + */ + public List getInvestigations() { + if (this.investigations == null) + this.investigations = new ArrayList(); + return this.investigations; + } + + public boolean hasInvestigations() { + if (this.investigations == null) + return false; + for (ClinicalAssessmentInvestigationsComponent item : this.investigations) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #investigations} (One or more sets of investigations (signs, symptions, etc). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes.) + */ + // syntactic sugar + public ClinicalAssessmentInvestigationsComponent addInvestigations() { //3 + ClinicalAssessmentInvestigationsComponent t = new ClinicalAssessmentInvestigationsComponent(); + if (this.investigations == null) + this.investigations = new ArrayList(); + this.investigations.add(t); + return t; + } + + /** + * @return {@link #protocol} (Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis.). This is the underlying object with id, value and extensions. The accessor "getProtocol" gives direct access to the value + */ + public UriType getProtocolElement() { + if (this.protocol == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.protocol"); + else if (Configuration.doAutoCreate()) + this.protocol = new UriType(); // bb + return this.protocol; + } + + public boolean hasProtocolElement() { + return this.protocol != null && !this.protocol.isEmpty(); + } + + public boolean hasProtocol() { + return this.protocol != null && !this.protocol.isEmpty(); + } + + /** + * @param value {@link #protocol} (Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis.). This is the underlying object with id, value and extensions. The accessor "getProtocol" gives direct access to the value + */ + public ClinicalAssessment setProtocolElement(UriType value) { + this.protocol = value; + return this; + } + + /** + * @return Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis. + */ + public String getProtocol() { + return this.protocol == null ? null : this.protocol.getValue(); + } + + /** + * @param value Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis. + */ + public ClinicalAssessment setProtocol(String value) { + if (Utilities.noString(value)) + this.protocol = null; + else { + if (this.protocol == null) + this.protocol = new UriType(); + this.protocol.setValue(value); + } + return this; + } + + /** + * @return {@link #summary} (A text summary of the investigations and the diagnosis.). This is the underlying object with id, value and extensions. The accessor "getSummary" gives direct access to the value + */ + public StringType getSummaryElement() { + if (this.summary == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.summary"); + else if (Configuration.doAutoCreate()) + this.summary = new StringType(); // bb + return this.summary; + } + + public boolean hasSummaryElement() { + return this.summary != null && !this.summary.isEmpty(); + } + + public boolean hasSummary() { + return this.summary != null && !this.summary.isEmpty(); + } + + /** + * @param value {@link #summary} (A text summary of the investigations and the diagnosis.). This is the underlying object with id, value and extensions. The accessor "getSummary" gives direct access to the value + */ + public ClinicalAssessment setSummaryElement(StringType value) { + this.summary = value; + return this; + } + + /** + * @return A text summary of the investigations and the diagnosis. + */ + public String getSummary() { + return this.summary == null ? null : this.summary.getValue(); + } + + /** + * @param value A text summary of the investigations and the diagnosis. + */ + public ClinicalAssessment setSummary(String value) { + if (Utilities.noString(value)) + this.summary = null; + else { + if (this.summary == null) + this.summary = new StringType(); + this.summary.setValue(value); + } + return this; + } + + /** + * @return {@link #diagnosis} (An specific diagnosis that was considered likely or relevant to ongoing treatment.) + */ + public List getDiagnosis() { + if (this.diagnosis == null) + this.diagnosis = new ArrayList(); + return this.diagnosis; + } + + public boolean hasDiagnosis() { + if (this.diagnosis == null) + return false; + for (ClinicalAssessmentDiagnosisComponent item : this.diagnosis) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #diagnosis} (An specific diagnosis that was considered likely or relevant to ongoing treatment.) + */ + // syntactic sugar + public ClinicalAssessmentDiagnosisComponent addDiagnosis() { //3 + ClinicalAssessmentDiagnosisComponent t = new ClinicalAssessmentDiagnosisComponent(); + if (this.diagnosis == null) + this.diagnosis = new ArrayList(); + this.diagnosis.add(t); + return t; + } + + /** + * @return {@link #resolved} (Diagnoses/conditions resolved since the last assessment.) + */ + public List getResolved() { + if (this.resolved == null) + this.resolved = new ArrayList(); + return this.resolved; + } + + public boolean hasResolved() { + if (this.resolved == null) + return false; + for (CodeableConcept item : this.resolved) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #resolved} (Diagnoses/conditions resolved since the last assessment.) + */ + // syntactic sugar + public CodeableConcept addResolved() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.resolved == null) + this.resolved = new ArrayList(); + this.resolved.add(t); + return t; + } + + /** + * @return {@link #ruledOut} (Diagnosis considered not possible.) + */ + public List getRuledOut() { + if (this.ruledOut == null) + this.ruledOut = new ArrayList(); + return this.ruledOut; + } + + public boolean hasRuledOut() { + if (this.ruledOut == null) + return false; + for (ClinicalAssessmentRuledOutComponent item : this.ruledOut) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #ruledOut} (Diagnosis considered not possible.) + */ + // syntactic sugar + public ClinicalAssessmentRuledOutComponent addRuledOut() { //3 + ClinicalAssessmentRuledOutComponent t = new ClinicalAssessmentRuledOutComponent(); + if (this.ruledOut == null) + this.ruledOut = new ArrayList(); + this.ruledOut.add(t); + return t; + } + + /** + * @return {@link #prognosis} (Estimate of likely outcome.). This is the underlying object with id, value and extensions. The accessor "getPrognosis" gives direct access to the value + */ + public StringType getPrognosisElement() { + if (this.prognosis == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.prognosis"); + else if (Configuration.doAutoCreate()) + this.prognosis = new StringType(); // bb + return this.prognosis; + } + + public boolean hasPrognosisElement() { + return this.prognosis != null && !this.prognosis.isEmpty(); + } + + public boolean hasPrognosis() { + return this.prognosis != null && !this.prognosis.isEmpty(); + } + + /** + * @param value {@link #prognosis} (Estimate of likely outcome.). This is the underlying object with id, value and extensions. The accessor "getPrognosis" gives direct access to the value + */ + public ClinicalAssessment setPrognosisElement(StringType value) { + this.prognosis = value; + return this; + } + + /** + * @return Estimate of likely outcome. + */ + public String getPrognosis() { + return this.prognosis == null ? null : this.prognosis.getValue(); + } + + /** + * @param value Estimate of likely outcome. + */ + public ClinicalAssessment setPrognosis(String value) { + if (Utilities.noString(value)) + this.prognosis = null; + else { + if (this.prognosis == null) + this.prognosis = new StringType(); + this.prognosis.setValue(value); + } + return this; + } + + /** + * @return {@link #plan} (Plan of action after assessment.) + */ + public Reference getPlan() { + if (this.plan == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.plan"); + else if (Configuration.doAutoCreate()) + this.plan = new Reference(); // cc + return this.plan; + } + + public boolean hasPlan() { + return this.plan != null && !this.plan.isEmpty(); + } + + /** + * @param value {@link #plan} (Plan of action after assessment.) + */ + public ClinicalAssessment setPlan(Reference value) { + this.plan = value; + return this; + } + + /** + * @return {@link #plan} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Plan of action after assessment.) + */ + public CarePlan getPlanTarget() { + if (this.planTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ClinicalAssessment.plan"); + else if (Configuration.doAutoCreate()) + this.planTarget = new CarePlan(); // aa + return this.planTarget; + } + + /** + * @param value {@link #plan} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Plan of action after assessment.) + */ + public ClinicalAssessment setPlanTarget(CarePlan value) { + this.planTarget = value; + return this; + } + + /** + * @return {@link #action} (Actions taken during assessment.) + */ + public List getAction() { + if (this.action == null) + this.action = new ArrayList(); + return this.action; + } + + public boolean hasAction() { + if (this.action == null) + return false; + for (Reference item : this.action) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #action} (Actions taken during assessment.) + */ + // syntactic sugar + public Reference addAction() { //3 + Reference t = new Reference(); + if (this.action == null) + this.action = new ArrayList(); + this.action.add(t); + return t; + } + + /** + * @return {@link #action} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Actions taken during assessment.) + */ + public List getActionTarget() { + if (this.actionTarget == null) + this.actionTarget = new ArrayList(); + return this.actionTarget; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("patient", "Reference(Patient)", "The patient being asssesed.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("assessor", "Reference(Practitioner)", "The clinicial performing the assessment.", 0, java.lang.Integer.MAX_VALUE, assessor)); + childrenList.add(new Property("date", "dateTime", "The point in time at which the assessment was concluded (not when it was recorded).", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("description", "string", "A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("previous", "Reference(ClinicalAssessment)", "A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes.", 0, java.lang.Integer.MAX_VALUE, previous)); + childrenList.add(new Property("problem", "Reference(Condition|AllergyIntolerance)", "This a list of the general problems/conditions for a patient.", 0, java.lang.Integer.MAX_VALUE, problem)); + childrenList.add(new Property("careplan", "Reference(CarePlan)", "A reference to a specific care plan that prompted this assessment. The care plan provides further context for the assessment.", 0, java.lang.Integer.MAX_VALUE, careplan)); + childrenList.add(new Property("referral", "Reference(ReferralRequest)", "A reference to a specific care plan that prompted this assessment. The referral request may provide further context for the assessment.", 0, java.lang.Integer.MAX_VALUE, referral)); + childrenList.add(new Property("investigations", "", "One or more sets of investigations (signs, symptions, etc). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes.", 0, java.lang.Integer.MAX_VALUE, investigations)); + childrenList.add(new Property("protocol", "uri", "Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis.", 0, java.lang.Integer.MAX_VALUE, protocol)); + childrenList.add(new Property("summary", "string", "A text summary of the investigations and the diagnosis.", 0, java.lang.Integer.MAX_VALUE, summary)); + childrenList.add(new Property("diagnosis", "", "An specific diagnosis that was considered likely or relevant to ongoing treatment.", 0, java.lang.Integer.MAX_VALUE, diagnosis)); + childrenList.add(new Property("resolved", "CodeableConcept", "Diagnoses/conditions resolved since the last assessment.", 0, java.lang.Integer.MAX_VALUE, resolved)); + childrenList.add(new Property("ruledOut", "", "Diagnosis considered not possible.", 0, java.lang.Integer.MAX_VALUE, ruledOut)); + childrenList.add(new Property("prognosis", "string", "Estimate of likely outcome.", 0, java.lang.Integer.MAX_VALUE, prognosis)); + childrenList.add(new Property("plan", "Reference(CarePlan)", "Plan of action after assessment.", 0, java.lang.Integer.MAX_VALUE, plan)); + childrenList.add(new Property("action", "Reference(ReferralRequest|ProcedureRequest|Procedure|MedicationPrescription|DiagnosticOrder|NutritionOrder|Supply|Appointment)", "Actions taken during assessment.", 0, java.lang.Integer.MAX_VALUE, action)); + } + + public ClinicalAssessment copy() { + ClinicalAssessment dst = new ClinicalAssessment(); + copyValues(dst); + dst.patient = patient == null ? null : patient.copy(); + dst.assessor = assessor == null ? null : assessor.copy(); + dst.date = date == null ? null : date.copy(); + dst.description = description == null ? null : description.copy(); + dst.previous = previous == null ? null : previous.copy(); + if (problem != null) { + dst.problem = new ArrayList(); + for (Reference i : problem) + dst.problem.add(i.copy()); + }; + dst.careplan = careplan == null ? null : careplan.copy(); + dst.referral = referral == null ? null : referral.copy(); + if (investigations != null) { + dst.investigations = new ArrayList(); + for (ClinicalAssessmentInvestigationsComponent i : investigations) + dst.investigations.add(i.copy()); + }; + dst.protocol = protocol == null ? null : protocol.copy(); + dst.summary = summary == null ? null : summary.copy(); + if (diagnosis != null) { + dst.diagnosis = new ArrayList(); + for (ClinicalAssessmentDiagnosisComponent i : diagnosis) + dst.diagnosis.add(i.copy()); + }; + if (resolved != null) { + dst.resolved = new ArrayList(); + for (CodeableConcept i : resolved) + dst.resolved.add(i.copy()); + }; + if (ruledOut != null) { + dst.ruledOut = new ArrayList(); + for (ClinicalAssessmentRuledOutComponent i : ruledOut) + dst.ruledOut.add(i.copy()); + }; + dst.prognosis = prognosis == null ? null : prognosis.copy(); + dst.plan = plan == null ? null : plan.copy(); + if (action != null) { + dst.action = new ArrayList(); + for (Reference i : action) + dst.action.add(i.copy()); + }; + return dst; + } + + protected ClinicalAssessment typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ClinicalAssessment)) + return false; + ClinicalAssessment o = (ClinicalAssessment) other; + return compareDeep(patient, o.patient, true) && compareDeep(assessor, o.assessor, true) && compareDeep(date, o.date, true) + && compareDeep(description, o.description, true) && compareDeep(previous, o.previous, true) && compareDeep(problem, o.problem, true) + && compareDeep(careplan, o.careplan, true) && compareDeep(referral, o.referral, true) && compareDeep(investigations, o.investigations, true) + && compareDeep(protocol, o.protocol, true) && compareDeep(summary, o.summary, true) && compareDeep(diagnosis, o.diagnosis, true) + && compareDeep(resolved, o.resolved, true) && compareDeep(ruledOut, o.ruledOut, true) && compareDeep(prognosis, o.prognosis, true) + && compareDeep(plan, o.plan, true) && compareDeep(action, o.action, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ClinicalAssessment)) + return false; + ClinicalAssessment o = (ClinicalAssessment) other; + return compareValues(date, o.date, true) && compareValues(description, o.description, true) && compareValues(protocol, o.protocol, true) + && compareValues(summary, o.summary, true) && compareValues(prognosis, o.prognosis, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (patient == null || patient.isEmpty()) && (assessor == null || assessor.isEmpty()) + && (date == null || date.isEmpty()) && (description == null || description.isEmpty()) && (previous == null || previous.isEmpty()) + && (problem == null || problem.isEmpty()) && (careplan == null || careplan.isEmpty()) && (referral == null || referral.isEmpty()) + && (investigations == null || investigations.isEmpty()) && (protocol == null || protocol.isEmpty()) + && (summary == null || summary.isEmpty()) && (diagnosis == null || diagnosis.isEmpty()) && (resolved == null || resolved.isEmpty()) + && (ruledOut == null || ruledOut.isEmpty()) && (prognosis == null || prognosis.isEmpty()) + && (plan == null || plan.isEmpty()) && (action == null || action.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.ClinicalAssessment; + } + + @SearchParamDefinition(name="previous", path="ClinicalAssessment.previous", description="Reference to last assessment", type="reference" ) + public static final String SP_PREVIOUS = "previous"; + @SearchParamDefinition(name="referral", path="ClinicalAssessment.referral", description="A specific referral that lead to this assessment", type="reference" ) + public static final String SP_REFERRAL = "referral"; + @SearchParamDefinition(name="diagnosis", path="ClinicalAssessment.diagnosis.item", description="Specific text or code for diagnosis", type="token" ) + public static final String SP_DIAGNOSIS = "diagnosis"; + @SearchParamDefinition(name="problem", path="ClinicalAssessment.problem", description="General assessment of patient state", type="reference" ) + public static final String SP_PROBLEM = "problem"; + @SearchParamDefinition(name="date", path="ClinicalAssessment.date", description="When the assessment occurred", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="careplan", path="ClinicalAssessment.careplan", description="A specific careplan that prompted this assessment", type="reference" ) + public static final String SP_CAREPLAN = "careplan"; + @SearchParamDefinition(name="ruledout", path="ClinicalAssessment.ruledOut.item", description="Specific text of code for diagnosis", type="token" ) + public static final String SP_RULEDOUT = "ruledout"; + @SearchParamDefinition(name="assessor", path="ClinicalAssessment.assessor", description="The clinicial performing the assessment", type="reference" ) + public static final String SP_ASSESSOR = "assessor"; + @SearchParamDefinition(name="patient", path="ClinicalAssessment.patient", description="The patient being asssesed", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="resolved", path="ClinicalAssessment.resolved", description="Diagnosies/conditions resolved since previous assessment", type="token" ) + public static final String SP_RESOLVED = "resolved"; + @SearchParamDefinition(name="plan", path="ClinicalAssessment.plan", description="Plan of action after assessment", type="reference" ) + public static final String SP_PLAN = "plan"; + @SearchParamDefinition(name="action", path="ClinicalAssessment.action", description="Actions taken during assessment", type="reference" ) + public static final String SP_ACTION = "action"; + @SearchParamDefinition(name="investigation", path="ClinicalAssessment.investigations.item", description="Record of a specific investigation", type="reference" ) + public static final String SP_INVESTIGATION = "investigation"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CodeType.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CodeType.class new file mode 100644 index 0000000000000000000000000000000000000000..d13ad7f6b36714b6d2b0d75f631411ed914e34e0 GIT binary patch literal 1725 zcma)6TTc@~7(LTFWreEX1q4MAdI44hMJ$3?)L`(Ea4|kEWhjf=ZL{5y@Zdk0+(_nx8hr_zh*gA8D>EB z3kpPLY}fW@1%k=cnm{O5+K>XBOSUWDRg3G=Td~$1?sO-Ywyhn@bS$@EF8iMC7P5-a zmM;~{mM2$A0;%Lu$t##!&Xl>iWqYPw51E%{kxm^`xn9{V%WP_qf|h+N|M{&|*8anE zQem8-v*Mf%P2tkb*R_W7rSh&oGMTzqbb-MZ(7MPbDeu>}W!}%G&XUqfv*rp6w+Q^w zkwxkH*`{MmQAI#Wa7;}NL?K^~2eG)f0!r1YRy6JKj$f94Oup}lks!QTjdN0>hJR}GOp z@&k1N4PWExDMSR5xW$toM1&h`0`0Vqt5Tz!M8EQ*AwI$tm?o4>qoF+-8pt%`W_iL6 z)3{+3h3w9sh<(y3_tDl&$|dGWx~oY_ha!bZh&MwA6ARRFPeTWE9@^3w-oJ+Sv*3Lg u)bM@{kEmQ5r?E=KeT{9QVxH9)I!i^YhD$2($CEe6xWn8FAjvLJYx+OqYI(%~ literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CodeType.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CodeType.java similarity index 72% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CodeType.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CodeType.java index bf8f1d074fa..35b934a792b 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CodeType.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CodeType.java @@ -1,101 +1,73 @@ -/* -Copyright (c) 2011+, HL7, Inc -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -import org.hl7.fhir.instance.model.annotations.DatatypeDef; - -import static org.apache.commons.lang3.StringUtils.defaultString; - -/** - * Primitive type "code" in FHIR, when not bound to an enumerated list of codes - */ -@DatatypeDef(name = "code") -public class CodeType extends PrimitiveType implements Comparable { - - private static final long serialVersionUID = 1L; - - /** - * Constructor - */ - public CodeType() { - super(); - } - - /** - * Constructor which accepts a string code - */ - public CodeType(String theCode) { - setValue(theCode); - } - - @Override - public int compareTo(CodeType theCode) { - if (theCode == null) { - return 1; - } - return defaultString(getValue()).compareTo(defaultString(theCode.getValue())); - } - - @Override - protected String parse(String theValue) { - return theValue.trim(); - } - - @Override - protected String encode(String theValue) { - return theValue; - } - - @Override - public CodeType copy() { - return new CodeType(getValue()); - } - -} +/* +Copyright (c) 2011+, HL7, Inc +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + */ +package org.hl7.fhir.instance.model; + +import static org.apache.commons.lang3.StringUtils.defaultString; + +import org.hl7.fhir.instance.model.annotations.DatatypeDef; + +/** + * Primitive type "code" in FHIR, when not bound to an enumerated list of codes + */ +@DatatypeDef(name="Code") +public class CodeType extends PrimitiveType implements Comparable { + + private static final long serialVersionUID = 3L; + + public CodeType() { + super(); + } + + public CodeType(String theCode) { + setValue(theCode); + } + + public int compareTo(CodeType theCode) { + if (theCode == null) { + return 1; + } + return defaultString(getValue()).compareTo(defaultString(theCode.getValue())); + } + + @Override + protected String parse(String theValue) { + return theValue.trim(); + } + + @Override + protected String encode(String theValue) { + return theValue; + } + + @Override + public CodeType copy() { + return new CodeType(getValue()); + } + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CodeableConcept.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CodeableConcept.class new file mode 100644 index 0000000000000000000000000000000000000000..4beb8ca169128947580ad840040709fe9ea9dff5 GIT binary patch literal 5200 zcmbVP`*#%O8GdGW!)!K_kSteY!36>&S;8tRT9ZN|0SSalxr8Q2b=aL`2lo-)B4?Z?KI~zeW zeiO!yFn$}xE?K>zVmv}6l+%K9qWD$ee@&LJi;&;R><#(6Da+r>>@Ar+Dd4HO1%FWS zwt@x8e9Fv?C}`|Ip`X$d1;@-J`c2#ER8V`+9LecU!7>zVt~l=M&s!sjbmpGKaN4vI zX3lo>T+&En^C=^f*yalD+(IF@94O=*GiwZ(ws|~b^yG4RM|aG8&Q_49Dnu`lCbp%` zOp4M%IXz1>A!lrqLrYbDAB2LMyp=MnAU!#&Aec3CK}Hrb)z2unyQ+|K5WR+-w9HWf zPbdrRbl!4$jbSrq$`;{JqY+EVj**HTAB*WR$FQg`pUIDm#q2TLF|zdZaNf%5nR3p} zJu%A|HY|fKj5&ESGA#3o+9-}N&NvEMtJ-kTu^8e*bXliZu8@9zMmKXrcgCUOQOmH6 zoEMc?emLf&4eBS9QHp-6CzdW`^;|5Y=SB+ph*6y(rrR;wFmego$QVh-NHL@61kWEL zxL_Mr>~uOGqegdMHdDHz$Mjq(k(VZZ z%Vs1F_w_1Jb}6Xe#x!GIIsqDw~#$< zSci1xDl1^baJ)295N&O%r~xKH{Xs`hKC(w2^%?G+Lv+)HQk&N8qAtQ3Qt?Lu&{L`6 z<~qv0iK1gWQqVx)hZx=M86!(aD`=mGxhzM>O(@rKtNsR$>xy@AkNy7yG%%alp4hA*6i}w_) zp1+z%3iSi=Qe)G&!D4JJ-7nAJoUQ<8m<(AZ4{%rsZF zdr`>h60NBwqQWE%pI}Bq1`o>TA^BuAoP?#}Q~XUnpJ}jV`8h6Y7zMAvST*^QY;3uu zNcQov&>it|LupeYs~~J%J6l?86mH2Dd8C)Hf$ep#%23W7u5T&(j-TLVMY1M94Qc``xt04Bq{dgdYA~?+&rj|>$fp!3R)^(P8Me4b8oClCy7;j zYZ!LoaB)WSb9qnH|B+AJVRlJh;MNvxnNk$&si&i7_(^(I+tU4pAFna_^u7Tb+<*A^dT=_aVOWk~X4XLb25 zsH(npDO^$YzWyTgq3WWq4^mYf*OO8iR`K7!Ccce=2uTM;0C#g0z-HXT@pjJcMGd}f z^YFf-P?G3GS0BEEEq&OEZkhFv=6)O7&}(BmrLa-*eOfLxVK*8-dW`C6YgF7 zce5M)pi*?wC z4w{f zcTzOaW9Z~41}ybFrYaMt_l#I_8B0s9@$f(H>Qxb_>r?3;h5kwVg2eTrc|&{}%f?aH zt`NWkR(f(JpUZt7pTzPbE<7*AJkLKx&p*vjKZB)smKF3I+VQ+^YH(pwm;vCUfojCm zhnb6_u&X^j#U!3V^I-JW=(nOPf>BW#n8Iy-M!83^=&I;y??{`%8tiG-lAk99rAoPE*#2zANY=i1MO!>uk>kzs^>2;?>#S zILSLEvEBnQG5fE$=OyueM5dEyrT5B8VKs{Yc!gi)GtOZ#Ud3&A4PAJhMfnEf|EBAw zwFvzOZ7Oms#ILYsH)pd<>VUhG^T#|b;LFChXaz^ffSUG6w3QOZ3;5eS;_JvKeU!#a zJ8@m!&Q1|LAO8X^-sCb`_J|)g@E4j!eB8?^E;TMUjL#_vFXr#irgzyE-$N7Mu8Z(K zmg58077d|D_$t;Bd$&O3v&_eF)W@+_Lf>&?9Gb6qW2ujM3O}a83siWK3MZ*>iVCM) zg)Hv~`-;4yeMJKt#W#1bi6_P(VPc#Y%5Vv{OZQwZ;kr_+nZ^uf4s4W$#)~tIid1MPu)Q3Tv8U!X_^(l8Tan1Ba^fR-kgvA4_vS; ACIA2c literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CodeableConcept.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CodeableConcept.java similarity index 87% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CodeableConcept.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CodeableConcept.java index 69a4e5c44a7..8348cc4e7f8 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CodeableConcept.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CodeableConcept.java @@ -1,195 +1,194 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -import org.hl7.fhir.instance.model.annotations.DatatypeDef; -/** - * A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text. - */ -@DatatypeDef(name="CodeableConcept") -public class CodeableConcept extends Type implements ICompositeType{ - - /** - * A reference to a code defined by a terminology system. - */ - @Child(name="coding", type={Coding.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Code defined by a terminology system", formalDefinition="A reference to a code defined by a terminology system." ) - protected List coding; - - /** - * A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user. - */ - @Child(name="text", type={StringType.class}, order=0, min=0, max=1) - @Description(shortDefinition="Plain text representation of the concept", formalDefinition="A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user." ) - protected StringType text; - - private static final long serialVersionUID = 760353246L; - - public CodeableConcept() { - super(); - } - - /** - * @return {@link #coding} (A reference to a code defined by a terminology system.) - */ - public List getCoding() { - if (this.coding == null) - this.coding = new ArrayList(); - return this.coding; - } - - public boolean hasCoding() { - if (this.coding == null) - return false; - for (Coding item : this.coding) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #coding} (A reference to a code defined by a terminology system.) - */ - // syntactic sugar - public Coding addCoding() { //3 - Coding t = new Coding(); - if (this.coding == null) - this.coding = new ArrayList(); - this.coding.add(t); - return t; - } - - /** - * @return {@link #text} (A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value - */ - public StringType getTextElement() { - if (this.text == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CodeableConcept.text"); - else if (Configuration.doAutoCreate()) - this.text = new StringType(); - return this.text; - } - - public boolean hasTextElement() { - return this.text != null && !this.text.isEmpty(); - } - - public boolean hasText() { - return this.text != null && !this.text.isEmpty(); - } - - /** - * @param value {@link #text} (A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value - */ - public CodeableConcept setTextElement(StringType value) { - this.text = value; - return this; - } - - /** - * @return A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user. - */ - public String getText() { - return this.text == null ? null : this.text.getValue(); - } - - /** - * @param value A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user. - */ - public CodeableConcept setText(String value) { - if (Utilities.noString(value)) - this.text = null; - else { - if (this.text == null) - this.text = new StringType(); - this.text.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("coding", "Coding", "A reference to a code defined by a terminology system.", 0, java.lang.Integer.MAX_VALUE, coding)); - childrenList.add(new Property("text", "string", "A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.", 0, java.lang.Integer.MAX_VALUE, text)); - } - - public CodeableConcept copy() { - CodeableConcept dst = new CodeableConcept(); - copyValues(dst); - if (coding != null) { - dst.coding = new ArrayList(); - for (Coding i : coding) - dst.coding.add(i.copy()); - }; - dst.text = text == null ? null : text.copy(); - return dst; - } - - protected CodeableConcept typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (coding == null || coding.isEmpty()) && (text == null || text.isEmpty()) - ; - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +/** + * A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text. + */ +@DatatypeDef(name="CodeableConcept") +public class CodeableConcept extends Type implements ICompositeType { + + /** + * A reference to a code defined by a terminology system. + */ + @Child(name="coding", type={Coding.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Code defined by a terminology system", formalDefinition="A reference to a code defined by a terminology system." ) + protected List coding; + + /** + * A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user. + */ + @Child(name="text", type={StringType.class}, order=0, min=0, max=1) + @Description(shortDefinition="Plain text representation of the concept", formalDefinition="A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user." ) + protected StringType text; + + private static final long serialVersionUID = 760353246L; + + public CodeableConcept() { + super(); + } + + /** + * @return {@link #coding} (A reference to a code defined by a terminology system.) + */ + public List getCoding() { + if (this.coding == null) + this.coding = new ArrayList(); + return this.coding; + } + + public boolean hasCoding() { + if (this.coding == null) + return false; + for (Coding item : this.coding) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #coding} (A reference to a code defined by a terminology system.) + */ + // syntactic sugar + public Coding addCoding() { //3 + Coding t = new Coding(); + if (this.coding == null) + this.coding = new ArrayList(); + this.coding.add(t); + return t; + } + + /** + * @return {@link #text} (A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value + */ + public StringType getTextElement() { + if (this.text == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CodeableConcept.text"); + else if (Configuration.doAutoCreate()) + this.text = new StringType(); // bb + return this.text; + } + + public boolean hasTextElement() { + return this.text != null && !this.text.isEmpty(); + } + + public boolean hasText() { + return this.text != null && !this.text.isEmpty(); + } + + /** + * @param value {@link #text} (A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value + */ + public CodeableConcept setTextElement(StringType value) { + this.text = value; + return this; + } + + /** + * @return A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user. + */ + public String getText() { + return this.text == null ? null : this.text.getValue(); + } + + /** + * @param value A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user. + */ + public CodeableConcept setText(String value) { + if (Utilities.noString(value)) + this.text = null; + else { + if (this.text == null) + this.text = new StringType(); + this.text.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("coding", "Coding", "A reference to a code defined by a terminology system.", 0, java.lang.Integer.MAX_VALUE, coding)); + childrenList.add(new Property("text", "string", "A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.", 0, java.lang.Integer.MAX_VALUE, text)); + } + + public CodeableConcept copy() { + CodeableConcept dst = new CodeableConcept(); + copyValues(dst); + if (coding != null) { + dst.coding = new ArrayList(); + for (Coding i : coding) + dst.coding.add(i.copy()); + }; + dst.text = text == null ? null : text.copy(); + return dst; + } + + protected CodeableConcept typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CodeableConcept)) + return false; + CodeableConcept o = (CodeableConcept) other; + return compareDeep(coding, o.coding, true) && compareDeep(text, o.text, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CodeableConcept)) + return false; + CodeableConcept o = (CodeableConcept) other; + return compareValues(text, o.text, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (coding == null || coding.isEmpty()) && (text == null || text.isEmpty()) + ; + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Coding.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Coding.class new file mode 100644 index 0000000000000000000000000000000000000000..de6314019474cd32f116277d244c01555941ce67 GIT binary patch literal 10278 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 DOXx97 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Coding.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Coding.java similarity index 91% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Coding.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Coding.java index e6a479a5390..b1be31af2ed 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Coding.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Coding.java @@ -1,443 +1,442 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -import org.hl7.fhir.instance.model.annotations.DatatypeDef; -/** - * A reference to a code defined by a terminology system. - */ -@DatatypeDef(name="Coding") -public class Coding extends Type implements ICompositeType{ - - /** - * The identification of the code system that defines the meaning of the symbol in the code. - */ - @Child(name="system", type={UriType.class}, order=-1, min=0, max=1) - @Description(shortDefinition="Identity of the terminology system", formalDefinition="The identification of the code system that defines the meaning of the symbol in the code." ) - protected UriType system; - - /** - * The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. - */ - @Child(name="version", type={StringType.class}, order=0, min=0, max=1) - @Description(shortDefinition="Version of the system - if relevant", formalDefinition="The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged." ) - protected StringType version; - - /** - * A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). - */ - @Child(name="code", type={CodeType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Symbol in syntax defined by the system", formalDefinition="A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination)." ) - protected CodeType code; - - /** - * A representation of the meaning of the code in the system, following the rules of the system. - */ - @Child(name="display", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Representation defined by the system", formalDefinition="A representation of the meaning of the code in the system, following the rules of the system." ) - protected StringType display; - - /** - * Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays). - */ - @Child(name="primary", type={BooleanType.class}, order=3, min=0, max=1) - @Description(shortDefinition="If this code was chosen directly by the user", formalDefinition="Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays)." ) - protected BooleanType primary; - - /** - * The set of possible coded values this coding was chosen from or constrained by. - */ - @Child(name="valueSet", type={ValueSet.class}, order=4, min=0, max=1) - @Description(shortDefinition="Set this coding was chosen from", formalDefinition="The set of possible coded values this coding was chosen from or constrained by." ) - protected Reference valueSet; - - /** - * The actual object that is the target of the reference (The set of possible coded values this coding was chosen from or constrained by.) - */ - protected ValueSet valueSetTarget; - - private static final long serialVersionUID = -1529268796L; - - public Coding() { - super(); - } - - /** - * @return {@link #system} (The identification of the code system that defines the meaning of the symbol in the code.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value - */ - public UriType getSystemElement() { - if (this.system == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coding.system"); - else if (Configuration.doAutoCreate()) - this.system = new UriType(); - return this.system; - } - - public boolean hasSystemElement() { - return this.system != null && !this.system.isEmpty(); - } - - public boolean hasSystem() { - return this.system != null && !this.system.isEmpty(); - } - - /** - * @param value {@link #system} (The identification of the code system that defines the meaning of the symbol in the code.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value - */ - public Coding setSystemElement(UriType value) { - this.system = value; - return this; - } - - /** - * @return The identification of the code system that defines the meaning of the symbol in the code. - */ - public String getSystem() { - return this.system == null ? null : this.system.getValue(); - } - - /** - * @param value The identification of the code system that defines the meaning of the symbol in the code. - */ - public Coding setSystem(String value) { - if (Utilities.noString(value)) - this.system = null; - else { - if (this.system == null) - this.system = new UriType(); - this.system.setValue(value); - } - return this; - } - - /** - * @return {@link #version} (The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value - */ - public StringType getVersionElement() { - if (this.version == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coding.version"); - else if (Configuration.doAutoCreate()) - this.version = new StringType(); - return this.version; - } - - public boolean hasVersionElement() { - return this.version != null && !this.version.isEmpty(); - } - - public boolean hasVersion() { - return this.version != null && !this.version.isEmpty(); - } - - /** - * @param value {@link #version} (The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value - */ - public Coding setVersionElement(StringType value) { - this.version = value; - return this; - } - - /** - * @return The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. - */ - public String getVersion() { - return this.version == null ? null : this.version.getValue(); - } - - /** - * @param value The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. - */ - public Coding setVersion(String value) { - if (Utilities.noString(value)) - this.version = null; - else { - if (this.version == null) - this.version = new StringType(); - this.version.setValue(value); - } - return this; - } - - /** - * @return {@link #code} (A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public CodeType getCodeElement() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coding.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeType(); - return this.code; - } - - public boolean hasCodeElement() { - return this.code != null && !this.code.isEmpty(); - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public Coding setCodeElement(CodeType value) { - this.code = value; - return this; - } - - /** - * @return A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). - */ - public String getCode() { - return this.code == null ? null : this.code.getValue(); - } - - /** - * @param value A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). - */ - public Coding setCode(String value) { - if (Utilities.noString(value)) - this.code = null; - else { - if (this.code == null) - this.code = new CodeType(); - this.code.setValue(value); - } - return this; - } - - /** - * @return {@link #display} (A representation of the meaning of the code in the system, following the rules of the system.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value - */ - public StringType getDisplayElement() { - if (this.display == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coding.display"); - else if (Configuration.doAutoCreate()) - this.display = new StringType(); - return this.display; - } - - public boolean hasDisplayElement() { - return this.display != null && !this.display.isEmpty(); - } - - public boolean hasDisplay() { - return this.display != null && !this.display.isEmpty(); - } - - /** - * @param value {@link #display} (A representation of the meaning of the code in the system, following the rules of the system.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value - */ - public Coding setDisplayElement(StringType value) { - this.display = value; - return this; - } - - /** - * @return A representation of the meaning of the code in the system, following the rules of the system. - */ - public String getDisplay() { - return this.display == null ? null : this.display.getValue(); - } - - /** - * @param value A representation of the meaning of the code in the system, following the rules of the system. - */ - public Coding setDisplay(String value) { - if (Utilities.noString(value)) - this.display = null; - else { - if (this.display == null) - this.display = new StringType(); - this.display.setValue(value); - } - return this; - } - - /** - * @return {@link #primary} (Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays).). This is the underlying object with id, value and extensions. The accessor "getPrimary" gives direct access to the value - */ - public BooleanType getPrimaryElement() { - if (this.primary == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coding.primary"); - else if (Configuration.doAutoCreate()) - this.primary = new BooleanType(); - return this.primary; - } - - public boolean hasPrimaryElement() { - return this.primary != null && !this.primary.isEmpty(); - } - - public boolean hasPrimary() { - return this.primary != null && !this.primary.isEmpty(); - } - - /** - * @param value {@link #primary} (Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays).). This is the underlying object with id, value and extensions. The accessor "getPrimary" gives direct access to the value - */ - public Coding setPrimaryElement(BooleanType value) { - this.primary = value; - return this; - } - - /** - * @return Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays). - */ - public boolean getPrimary() { - return this.primary == null ? false : this.primary.getValue(); - } - - /** - * @param value Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays). - */ - public Coding setPrimary(boolean value) { - if (value == false) - this.primary = null; - else { - if (this.primary == null) - this.primary = new BooleanType(); - this.primary.setValue(value); - } - return this; - } - - /** - * @return {@link #valueSet} (The set of possible coded values this coding was chosen from or constrained by.) - */ - public Reference getValueSet() { - if (this.valueSet == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coding.valueSet"); - else if (Configuration.doAutoCreate()) - this.valueSet = new Reference(); - return this.valueSet; - } - - public boolean hasValueSet() { - return this.valueSet != null && !this.valueSet.isEmpty(); - } - - /** - * @param value {@link #valueSet} (The set of possible coded values this coding was chosen from or constrained by.) - */ - public Coding setValueSet(Reference value) { - this.valueSet = value; - return this; - } - - /** - * @return {@link #valueSet} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The set of possible coded values this coding was chosen from or constrained by.) - */ - public ValueSet getValueSetTarget() { - if (this.valueSetTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coding.valueSet"); - else if (Configuration.doAutoCreate()) - this.valueSetTarget = new ValueSet(); - return this.valueSetTarget; - } - - /** - * @param value {@link #valueSet} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The set of possible coded values this coding was chosen from or constrained by.) - */ - public Coding setValueSetTarget(ValueSet value) { - this.valueSetTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("system", "uri", "The identification of the code system that defines the meaning of the symbol in the code.", 0, java.lang.Integer.MAX_VALUE, system)); - childrenList.add(new Property("version", "string", "The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.", 0, java.lang.Integer.MAX_VALUE, version)); - childrenList.add(new Property("code", "code", "A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("display", "string", "A representation of the meaning of the code in the system, following the rules of the system.", 0, java.lang.Integer.MAX_VALUE, display)); - childrenList.add(new Property("primary", "boolean", "Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays).", 0, java.lang.Integer.MAX_VALUE, primary)); - childrenList.add(new Property("valueSet", "Reference(ValueSet)", "The set of possible coded values this coding was chosen from or constrained by.", 0, java.lang.Integer.MAX_VALUE, valueSet)); - } - - public Coding copy() { - Coding dst = new Coding(); - copyValues(dst); - dst.system = system == null ? null : system.copy(); - dst.version = version == null ? null : version.copy(); - dst.code = code == null ? null : code.copy(); - dst.display = display == null ? null : display.copy(); - dst.primary = primary == null ? null : primary.copy(); - dst.valueSet = valueSet == null ? null : valueSet.copy(); - return dst; - } - - protected Coding typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (system == null || system.isEmpty()) && (version == null || version.isEmpty()) - && (code == null || code.isEmpty()) && (display == null || display.isEmpty()) && (primary == null || primary.isEmpty()) - && (valueSet == null || valueSet.isEmpty()); - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +import org.hl7.fhir.instance.model.api.ICoding; +/** + * A reference to a code defined by a terminology system. + */ +@DatatypeDef(name="Coding") +public class Coding extends Type implements ICoding, ICompositeType { + + /** + * The identification of the code system that defines the meaning of the symbol in the code. + */ + @Child(name="system", type={UriType.class}, order=-1, min=0, max=1) + @Description(shortDefinition="Identity of the terminology system", formalDefinition="The identification of the code system that defines the meaning of the symbol in the code." ) + protected UriType system; + + /** + * The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. + */ + @Child(name="version", type={StringType.class}, order=0, min=0, max=1) + @Description(shortDefinition="Version of the system - if relevant", formalDefinition="The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged." ) + protected StringType version; + + /** + * A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). + */ + @Child(name="code", type={CodeType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Symbol in syntax defined by the system", formalDefinition="A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination)." ) + protected CodeType code; + + /** + * A representation of the meaning of the code in the system, following the rules of the system. + */ + @Child(name="display", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Representation defined by the system", formalDefinition="A representation of the meaning of the code in the system, following the rules of the system." ) + protected StringType display; + + /** + * Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays). + */ + @Child(name="primary", type={BooleanType.class}, order=3, min=0, max=1) + @Description(shortDefinition="If this code was chosen directly by the user", formalDefinition="Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays)." ) + protected BooleanType primary; + + /** + * The set of possible coded values this coding was chosen from or constrained by. + */ + @Child(name="valueSet", type={ValueSet.class}, order=4, min=0, max=1) + @Description(shortDefinition="Set this coding was chosen from", formalDefinition="The set of possible coded values this coding was chosen from or constrained by." ) + protected Reference valueSet; + + /** + * The actual object that is the target of the reference (The set of possible coded values this coding was chosen from or constrained by.) + */ + protected ValueSet valueSetTarget; + + private static final long serialVersionUID = -1529268796L; + + public Coding() { + super(); + } + + /** + * @return {@link #system} (The identification of the code system that defines the meaning of the symbol in the code.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value + */ + public UriType getSystemElement() { + if (this.system == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coding.system"); + else if (Configuration.doAutoCreate()) + this.system = new UriType(); // bb + return this.system; + } + + public boolean hasSystemElement() { + return this.system != null && !this.system.isEmpty(); + } + + public boolean hasSystem() { + return this.system != null && !this.system.isEmpty(); + } + + /** + * @param value {@link #system} (The identification of the code system that defines the meaning of the symbol in the code.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value + */ + public Coding setSystemElement(UriType value) { + this.system = value; + return this; + } + + /** + * @return The identification of the code system that defines the meaning of the symbol in the code. + */ + public String getSystem() { + return this.system == null ? null : this.system.getValue(); + } + + /** + * @param value The identification of the code system that defines the meaning of the symbol in the code. + */ + public Coding setSystem(String value) { + if (Utilities.noString(value)) + this.system = null; + else { + if (this.system == null) + this.system = new UriType(); + this.system.setValue(value); + } + return this; + } + + /** + * @return {@link #version} (The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value + */ + public StringType getVersionElement() { + if (this.version == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coding.version"); + else if (Configuration.doAutoCreate()) + this.version = new StringType(); // bb + return this.version; + } + + public boolean hasVersionElement() { + return this.version != null && !this.version.isEmpty(); + } + + public boolean hasVersion() { + return this.version != null && !this.version.isEmpty(); + } + + /** + * @param value {@link #version} (The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value + */ + public Coding setVersionElement(StringType value) { + this.version = value; + return this; + } + + /** + * @return The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. + */ + public String getVersion() { + return this.version == null ? null : this.version.getValue(); + } + + /** + * @param value The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. + */ + public Coding setVersion(String value) { + if (Utilities.noString(value)) + this.version = null; + else { + if (this.version == null) + this.version = new StringType(); + this.version.setValue(value); + } + return this; + } + + /** + * @return {@link #code} (A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public CodeType getCodeElement() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coding.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeType(); // bb + return this.code; + } + + public boolean hasCodeElement() { + return this.code != null && !this.code.isEmpty(); + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public Coding setCodeElement(CodeType value) { + this.code = value; + return this; + } + + /** + * @return A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). + */ + public String getCode() { + return this.code == null ? null : this.code.getValue(); + } + + /** + * @param value A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). + */ + public Coding setCode(String value) { + if (Utilities.noString(value)) + this.code = null; + else { + if (this.code == null) + this.code = new CodeType(); + this.code.setValue(value); + } + return this; + } + + /** + * @return {@link #display} (A representation of the meaning of the code in the system, following the rules of the system.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value + */ + public StringType getDisplayElement() { + if (this.display == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coding.display"); + else if (Configuration.doAutoCreate()) + this.display = new StringType(); // bb + return this.display; + } + + public boolean hasDisplayElement() { + return this.display != null && !this.display.isEmpty(); + } + + public boolean hasDisplay() { + return this.display != null && !this.display.isEmpty(); + } + + /** + * @param value {@link #display} (A representation of the meaning of the code in the system, following the rules of the system.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value + */ + public Coding setDisplayElement(StringType value) { + this.display = value; + return this; + } + + /** + * @return A representation of the meaning of the code in the system, following the rules of the system. + */ + public String getDisplay() { + return this.display == null ? null : this.display.getValue(); + } + + /** + * @param value A representation of the meaning of the code in the system, following the rules of the system. + */ + public Coding setDisplay(String value) { + if (Utilities.noString(value)) + this.display = null; + else { + if (this.display == null) + this.display = new StringType(); + this.display.setValue(value); + } + return this; + } + + /** + * @return {@link #primary} (Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays).). This is the underlying object with id, value and extensions. The accessor "getPrimary" gives direct access to the value + */ + public BooleanType getPrimaryElement() { + if (this.primary == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coding.primary"); + else if (Configuration.doAutoCreate()) + this.primary = new BooleanType(); // bb + return this.primary; + } + + public boolean hasPrimaryElement() { + return this.primary != null && !this.primary.isEmpty(); + } + + public boolean hasPrimary() { + return this.primary != null && !this.primary.isEmpty(); + } + + /** + * @param value {@link #primary} (Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays).). This is the underlying object with id, value and extensions. The accessor "getPrimary" gives direct access to the value + */ + public Coding setPrimaryElement(BooleanType value) { + this.primary = value; + return this; + } + + /** + * @return Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays). + */ + public boolean getPrimary() { + return this.primary == null ? false : this.primary.getValue(); + } + + /** + * @param value Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays). + */ + public Coding setPrimary(boolean value) { + if (this.primary == null) + this.primary = new BooleanType(); + this.primary.setValue(value); + return this; + } + + /** + * @return {@link #valueSet} (The set of possible coded values this coding was chosen from or constrained by.) + */ + public Reference getValueSet() { + if (this.valueSet == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coding.valueSet"); + else if (Configuration.doAutoCreate()) + this.valueSet = new Reference(); // cc + return this.valueSet; + } + + public boolean hasValueSet() { + return this.valueSet != null && !this.valueSet.isEmpty(); + } + + /** + * @param value {@link #valueSet} (The set of possible coded values this coding was chosen from or constrained by.) + */ + public Coding setValueSet(Reference value) { + this.valueSet = value; + return this; + } + + /** + * @return {@link #valueSet} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The set of possible coded values this coding was chosen from or constrained by.) + */ + public ValueSet getValueSetTarget() { + if (this.valueSetTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coding.valueSet"); + else if (Configuration.doAutoCreate()) + this.valueSetTarget = new ValueSet(); // aa + return this.valueSetTarget; + } + + /** + * @param value {@link #valueSet} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The set of possible coded values this coding was chosen from or constrained by.) + */ + public Coding setValueSetTarget(ValueSet value) { + this.valueSetTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("system", "uri", "The identification of the code system that defines the meaning of the symbol in the code.", 0, java.lang.Integer.MAX_VALUE, system)); + childrenList.add(new Property("version", "string", "The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured. and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.", 0, java.lang.Integer.MAX_VALUE, version)); + childrenList.add(new Property("code", "code", "A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("display", "string", "A representation of the meaning of the code in the system, following the rules of the system.", 0, java.lang.Integer.MAX_VALUE, display)); + childrenList.add(new Property("primary", "boolean", "Indicates that this code was chosen by a user directly - i.e. off a pick list of available items (codes or displays).", 0, java.lang.Integer.MAX_VALUE, primary)); + childrenList.add(new Property("valueSet", "Reference(ValueSet)", "The set of possible coded values this coding was chosen from or constrained by.", 0, java.lang.Integer.MAX_VALUE, valueSet)); + } + + public Coding copy() { + Coding dst = new Coding(); + copyValues(dst); + dst.system = system == null ? null : system.copy(); + dst.version = version == null ? null : version.copy(); + dst.code = code == null ? null : code.copy(); + dst.display = display == null ? null : display.copy(); + dst.primary = primary == null ? null : primary.copy(); + dst.valueSet = valueSet == null ? null : valueSet.copy(); + return dst; + } + + protected Coding typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Coding)) + return false; + Coding o = (Coding) other; + return compareDeep(system, o.system, true) && compareDeep(version, o.version, true) && compareDeep(code, o.code, true) + && compareDeep(display, o.display, true) && compareDeep(primary, o.primary, true) && compareDeep(valueSet, o.valueSet, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Coding)) + return false; + Coding o = (Coding) other; + return compareValues(system, o.system, true) && compareValues(version, o.version, true) && compareValues(code, o.code, true) + && compareValues(display, o.display, true) && compareValues(primary, o.primary, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (system == null || system.isEmpty()) && (version == null || version.isEmpty()) + && (code == null || code.isEmpty()) && (display == null || display.isEmpty()) && (primary == null || primary.isEmpty()) + && (valueSet == null || valueSet.isEmpty()); + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Communication$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Communication$1.class new file mode 100644 index 0000000000000000000000000000000000000000..f1b25eb214ed912a030b18dcf5b813ca24d41dcd GIT binary patch literal 1017 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 WHf9>#q&nXsoQy7>Q#L7@)&Bry^ZKCx literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Communication$CommunicationStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Communication$CommunicationStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..14b8e61f300e3281bf8789de7ba7a29b7d3ab7f6 GIT binary patch literal 2056 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 z%0DGNOEb=`%0;FXtj##6YOPA$`)XD2cQ0PWLj{UL^OZcRRPw1B*G0-0$wF2$zRI;# z$syt}t%@?9e98oxpcK*!Wg^W}f^t8j8Ru4Ib8?iy9^baSN)rdtR} z*NV0r6=12Gq{~nNmLH&{kaVe2(i%v*2$C*_q-R6Yb0F!tHc3Ay+H+;xrCA)F4-S{& zUI4MAEJixBXq&WU}LZ;*sKIsfEmvrx==s#kV`9rEy0VlrNALt zWnEewYz?l_mWmupYlCgU4{A#@9R%Bh9l=g*so1f!4tuTFmS#JaHUuvYZq%0MIQH5U zyd?M`ZK=Ysv^jWb@G@L$?VZup&y`?;6^(@TT>43%7e63 zGu_@(@0NoA4x%^(`}y`DU4io*p2eY!F^hAQn07)l)3%p9gBWJ7sl3-r>=iTj0?}d{ zzI;v|2ET;yi-F%~#h-1%mrsbp;0GChHt?@7@mVT792rufr;np8=UMd1#w^-b$Xda( zdJn>SK@XBZi^j8h!QxpIEX;Cwsk8AV%YhqTby<8N6B-;KIe~+E%Q@p!R03CON0RM8 zCg`Ne$~rnjSx@!K25MC{QbgHAgUTgzo$?{NRoP5WD3{V<<#IZzgz0r<3;jxo(BBk% zRG@T=u}Y69ReD9OvQ?~At`Mpc6CYOk#NA3 z4W0`8&wHMdL$nXW0EPh!Q$zF!hD8__X~R1(oQdH~4ft9Ni!m(LhW!}M#&EVa3}ZM4 z!#NsmJBAe)R%pXU3~Ml~(T02wP>W%$HsmMIIt=SD1XuiYTaRJAw(5LX(`xM1@V9Ho zuUtzLmFsAday?B`Zjk;Epgh0tB)tfOFXv-od^4hHhi=ievx>Eo&aE9ohJhjZKx{CL zA+u#LjbU!KZUtMnfvwxY)*WE$POx>Cm929Ow(z~5ZnPk-{8axlyzAILL_fqn$eI)Q za+vT<<`A90J-y9gdNCf{&4h=n32*{V@`bN+r^LxJO3gDV)&BsT**Q zB*jxWZjw_8+~Z6{KSn4WqDwJ>hh?7Nhvgw^#T}m5c!HnUhKPF}boM;Ko&6AT;z5pK zvS%J@mmWOy~s@|e00>461}t&t8-BC duEG}sROmwr?4hgCugt^s8eA9RdhPP*{|87Z`uzX^ literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Communication.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Communication.java similarity index 83% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Communication.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Communication.java index 95b87b2d916..076dcc402d8 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Communication.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Communication.java @@ -1,938 +1,953 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * An occurrence of information being transmitted. E.g., an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition. - */ -@ResourceDef(name="Communication", profile="http://hl7.org/fhir/Profile/Communication") -public class Communication extends DomainResource { - - public enum CommunicationStatus implements FhirEnum { - /** - * The communication transmission is ongoing. - */ - INPROGRESS, - /** - * The message transmission is complete, i.e., delivered to the recipient's destination. - */ - COMPLETED, - /** - * The communication transmission has been held by originating system/user request. - */ - SUSPENDED, - /** - * The receiving system has declined to accept the message. - */ - REJECTED, - /** - * There was a failure in transmitting the message out. - */ - FAILED, - /** - * added to help the parsers - */ - NULL; - - public static final CommunicationStatusEnumFactory ENUM_FACTORY = new CommunicationStatusEnumFactory(); - - public static CommunicationStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("in progress".equals(codeString)) - return INPROGRESS; - if ("completed".equals(codeString)) - return COMPLETED; - if ("suspended".equals(codeString)) - return SUSPENDED; - if ("rejected".equals(codeString)) - return REJECTED; - if ("failed".equals(codeString)) - return FAILED; - throw new IllegalArgumentException("Unknown CommunicationStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case INPROGRESS: return "in progress"; - case COMPLETED: return "completed"; - case SUSPENDED: return "suspended"; - case REJECTED: return "rejected"; - case FAILED: return "failed"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case INPROGRESS: return ""; - case COMPLETED: return ""; - case SUSPENDED: return ""; - case REJECTED: return ""; - case FAILED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case INPROGRESS: return "The communication transmission is ongoing."; - case COMPLETED: return "The message transmission is complete, i.e., delivered to the recipient's destination."; - case SUSPENDED: return "The communication transmission has been held by originating system/user request."; - case REJECTED: return "The receiving system has declined to accept the message."; - case FAILED: return "There was a failure in transmitting the message out."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case INPROGRESS: return "in progress"; - case COMPLETED: return "completed"; - case SUSPENDED: return "suspended"; - case REJECTED: return "rejected"; - case FAILED: return "failed"; - default: return "?"; - } - } - } - - public static class CommunicationStatusEnumFactory implements EnumFactory { - public CommunicationStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("in progress".equals(codeString)) - return CommunicationStatus.INPROGRESS; - if ("completed".equals(codeString)) - return CommunicationStatus.COMPLETED; - if ("suspended".equals(codeString)) - return CommunicationStatus.SUSPENDED; - if ("rejected".equals(codeString)) - return CommunicationStatus.REJECTED; - if ("failed".equals(codeString)) - return CommunicationStatus.FAILED; - throw new IllegalArgumentException("Unknown CommunicationStatus code '"+codeString+"'"); - } - public String toCode(CommunicationStatus code) throws IllegalArgumentException { - if (code == CommunicationStatus.INPROGRESS) - return "in progress"; - if (code == CommunicationStatus.COMPLETED) - return "completed"; - if (code == CommunicationStatus.SUSPENDED) - return "suspended"; - if (code == CommunicationStatus.REJECTED) - return "rejected"; - if (code == CommunicationStatus.FAILED) - return "failed"; - return "?"; - } - } - - @Block() - public static class CommunicationMessagePartComponent extends BackboneElement { - /** - * An individual message part for multi-part messages. - */ - @Child(name="content", type={StringType.class, Attachment.class}, order=1, min=1, max=1) - @Description(shortDefinition="Message part content", formalDefinition="An individual message part for multi-part messages." ) - protected Type content; - - private static final long serialVersionUID = -1763459053L; - - public CommunicationMessagePartComponent() { - super(); - } - - public CommunicationMessagePartComponent(Type content) { - super(); - this.content = content; - } - - /** - * @return {@link #content} (An individual message part for multi-part messages.) - */ - public Type getContent() { - return this.content; - } - - /** - * @return {@link #content} (An individual message part for multi-part messages.) - */ - public StringType getContentStringType() throws Exception { - if (!(this.content instanceof StringType)) - throw new Exception("Type mismatch: the type StringType was expected, but "+this.content.getClass().getName()+" was encountered"); - return (StringType) this.content; - } - - /** - * @return {@link #content} (An individual message part for multi-part messages.) - */ - public Attachment getContentAttachment() throws Exception { - if (!(this.content instanceof Attachment)) - throw new Exception("Type mismatch: the type Attachment was expected, but "+this.content.getClass().getName()+" was encountered"); - return (Attachment) this.content; - } - - /** - * @return {@link #content} (An individual message part for multi-part messages.) - */ - public Reference getContentReference() throws Exception { - if (!(this.content instanceof Reference)) - throw new Exception("Type mismatch: the type Reference was expected, but "+this.content.getClass().getName()+" was encountered"); - return (Reference) this.content; - } - - public boolean hasContent() { - return this.content != null && !this.content.isEmpty(); - } - - /** - * @param value {@link #content} (An individual message part for multi-part messages.) - */ - public CommunicationMessagePartComponent setContent(Type value) { - this.content = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("content[x]", "string|Attachment|Reference(Any)", "An individual message part for multi-part messages.", 0, java.lang.Integer.MAX_VALUE, content)); - } - - public CommunicationMessagePartComponent copy() { - CommunicationMessagePartComponent dst = new CommunicationMessagePartComponent(); - copyValues(dst); - dst.content = content == null ? null : content.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (content == null || content.isEmpty()); - } - - } - - /** - * Identifiers associated with this Communication that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Unique identifier", formalDefinition="Identifiers associated with this Communication that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) - protected List identifier; - - /** - * The type of message such as alert, notification, reminder, instruction, etc. - */ - @Child(name="category", type={CodeableConcept.class}, order=0, min=0, max=1) - @Description(shortDefinition="Message category", formalDefinition="The type of message such as alert, notification, reminder, instruction, etc." ) - protected CodeableConcept category; - - /** - * The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication. - */ - @Child(name="sender", type={Patient.class, Practitioner.class, Device.class, RelatedPerson.class, Organization.class}, order=1, min=0, max=1) - @Description(shortDefinition="Message sender", formalDefinition="The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication." ) - protected Reference sender; - - /** - * The actual object that is the target of the reference (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) - */ - protected Resource senderTarget; - - /** - * The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication. - */ - @Child(name="recipient", type={Patient.class, Device.class, RelatedPerson.class, Practitioner.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Message recipient", formalDefinition="The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication." ) - protected List recipient; - /** - * The actual objects that are the target of the reference (The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication.) - */ - protected List recipientTarget; - - - /** - * Text, attachment(s), or resource(s) to be communicated to the recipient. - */ - @Child(name="messagePart", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Message payload", formalDefinition="Text, attachment(s), or resource(s) to be communicated to the recipient." ) - protected List messagePart; - - /** - * The communication medium, e.g., email, fax. - */ - @Child(name="medium", type={CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Communication medium", formalDefinition="The communication medium, e.g., email, fax." ) - protected List medium; - - /** - * The status of the transmission. - */ - @Child(name="status", type={CodeType.class}, order=5, min=0, max=1) - @Description(shortDefinition="in progress | completed | suspended | rejected | failed", formalDefinition="The status of the transmission." ) - protected Enumeration status; - - /** - * The encounter within which the communication was sent. - */ - @Child(name="encounter", type={Encounter.class}, order=6, min=0, max=1) - @Description(shortDefinition="Encounter leading to message", formalDefinition="The encounter within which the communication was sent." ) - protected Reference encounter; - - /** - * The actual object that is the target of the reference (The encounter within which the communication was sent.) - */ - protected Encounter encounterTarget; - - /** - * The time when this communication was sent. - */ - @Child(name="sent", type={DateTimeType.class}, order=7, min=0, max=1) - @Description(shortDefinition="When sent", formalDefinition="The time when this communication was sent." ) - protected DateTimeType sent; - - /** - * The time when this communication arrived at the destination. - */ - @Child(name="received", type={DateTimeType.class}, order=8, min=0, max=1) - @Description(shortDefinition="When received", formalDefinition="The time when this communication arrived at the destination." ) - protected DateTimeType received; - - /** - * The reason or justification for the communication. - */ - @Child(name="indication", type={CodeableConcept.class}, order=9, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Indication for message", formalDefinition="The reason or justification for the communication." ) - protected List indication; - - /** - * The patient who is the focus of this communication. - */ - @Child(name="subject", type={Patient.class}, order=10, min=1, max=1) - @Description(shortDefinition="Focus of message", formalDefinition="The patient who is the focus of this communication." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (The patient who is the focus of this communication.) - */ - protected Patient subjectTarget; - - private static final long serialVersionUID = -817648825L; - - public Communication() { - super(); - } - - public Communication(Reference subject) { - super(); - this.subject = subject; - } - - /** - * @return {@link #identifier} (Identifiers associated with this Communication that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Identifiers associated with this Communication that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #category} (The type of message such as alert, notification, reminder, instruction, etc.) - */ - public CodeableConcept getCategory() { - if (this.category == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Communication.category"); - else if (Configuration.doAutoCreate()) - this.category = new CodeableConcept(); - return this.category; - } - - public boolean hasCategory() { - return this.category != null && !this.category.isEmpty(); - } - - /** - * @param value {@link #category} (The type of message such as alert, notification, reminder, instruction, etc.) - */ - public Communication setCategory(CodeableConcept value) { - this.category = value; - return this; - } - - /** - * @return {@link #sender} (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) - */ - public Reference getSender() { - if (this.sender == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Communication.sender"); - else if (Configuration.doAutoCreate()) - this.sender = new Reference(); - return this.sender; - } - - public boolean hasSender() { - return this.sender != null && !this.sender.isEmpty(); - } - - /** - * @param value {@link #sender} (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) - */ - public Communication setSender(Reference value) { - this.sender = value; - return this; - } - - /** - * @return {@link #sender} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) - */ - public Resource getSenderTarget() { - return this.senderTarget; - } - - /** - * @param value {@link #sender} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) - */ - public Communication setSenderTarget(Resource value) { - this.senderTarget = value; - return this; - } - - /** - * @return {@link #recipient} (The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication.) - */ - public List getRecipient() { - if (this.recipient == null) - this.recipient = new ArrayList(); - return this.recipient; - } - - public boolean hasRecipient() { - if (this.recipient == null) - return false; - for (Reference item : this.recipient) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #recipient} (The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication.) - */ - // syntactic sugar - public Reference addRecipient() { //3 - Reference t = new Reference(); - if (this.recipient == null) - this.recipient = new ArrayList(); - this.recipient.add(t); - return t; - } - - /** - * @return {@link #recipient} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication.) - */ - public List getRecipientTarget() { - if (this.recipientTarget == null) - this.recipientTarget = new ArrayList(); - return this.recipientTarget; - } - - /** - * @return {@link #messagePart} (Text, attachment(s), or resource(s) to be communicated to the recipient.) - */ - public List getMessagePart() { - if (this.messagePart == null) - this.messagePart = new ArrayList(); - return this.messagePart; - } - - public boolean hasMessagePart() { - if (this.messagePart == null) - return false; - for (CommunicationMessagePartComponent item : this.messagePart) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #messagePart} (Text, attachment(s), or resource(s) to be communicated to the recipient.) - */ - // syntactic sugar - public CommunicationMessagePartComponent addMessagePart() { //3 - CommunicationMessagePartComponent t = new CommunicationMessagePartComponent(); - if (this.messagePart == null) - this.messagePart = new ArrayList(); - this.messagePart.add(t); - return t; - } - - /** - * @return {@link #medium} (The communication medium, e.g., email, fax.) - */ - public List getMedium() { - if (this.medium == null) - this.medium = new ArrayList(); - return this.medium; - } - - public boolean hasMedium() { - if (this.medium == null) - return false; - for (CodeableConcept item : this.medium) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #medium} (The communication medium, e.g., email, fax.) - */ - // syntactic sugar - public CodeableConcept addMedium() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.medium == null) - this.medium = new ArrayList(); - this.medium.add(t); - return t; - } - - /** - * @return {@link #status} (The status of the transmission.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Communication.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of the transmission.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Communication setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of the transmission. - */ - public CommunicationStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of the transmission. - */ - public Communication setStatus(CommunicationStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(CommunicationStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #encounter} (The encounter within which the communication was sent.) - */ - public Reference getEncounter() { - if (this.encounter == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Communication.encounter"); - else if (Configuration.doAutoCreate()) - this.encounter = new Reference(); - return this.encounter; - } - - public boolean hasEncounter() { - return this.encounter != null && !this.encounter.isEmpty(); - } - - /** - * @param value {@link #encounter} (The encounter within which the communication was sent.) - */ - public Communication setEncounter(Reference value) { - this.encounter = value; - return this; - } - - /** - * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The encounter within which the communication was sent.) - */ - public Encounter getEncounterTarget() { - if (this.encounterTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Communication.encounter"); - else if (Configuration.doAutoCreate()) - this.encounterTarget = new Encounter(); - return this.encounterTarget; - } - - /** - * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The encounter within which the communication was sent.) - */ - public Communication setEncounterTarget(Encounter value) { - this.encounterTarget = value; - return this; - } - - /** - * @return {@link #sent} (The time when this communication was sent.). This is the underlying object with id, value and extensions. The accessor "getSent" gives direct access to the value - */ - public DateTimeType getSentElement() { - if (this.sent == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Communication.sent"); - else if (Configuration.doAutoCreate()) - this.sent = new DateTimeType(); - return this.sent; - } - - public boolean hasSentElement() { - return this.sent != null && !this.sent.isEmpty(); - } - - public boolean hasSent() { - return this.sent != null && !this.sent.isEmpty(); - } - - /** - * @param value {@link #sent} (The time when this communication was sent.). This is the underlying object with id, value and extensions. The accessor "getSent" gives direct access to the value - */ - public Communication setSentElement(DateTimeType value) { - this.sent = value; - return this; - } - - /** - * @return The time when this communication was sent. - */ - public Date getSent() { - return this.sent == null ? null : this.sent.getValue(); - } - - /** - * @param value The time when this communication was sent. - */ - public Communication setSent(Date value) { - if (value == null) - this.sent = null; - else { - if (this.sent == null) - this.sent = new DateTimeType(); - this.sent.setValue(value); - } - return this; - } - - /** - * @return {@link #received} (The time when this communication arrived at the destination.). This is the underlying object with id, value and extensions. The accessor "getReceived" gives direct access to the value - */ - public DateTimeType getReceivedElement() { - if (this.received == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Communication.received"); - else if (Configuration.doAutoCreate()) - this.received = new DateTimeType(); - return this.received; - } - - public boolean hasReceivedElement() { - return this.received != null && !this.received.isEmpty(); - } - - public boolean hasReceived() { - return this.received != null && !this.received.isEmpty(); - } - - /** - * @param value {@link #received} (The time when this communication arrived at the destination.). This is the underlying object with id, value and extensions. The accessor "getReceived" gives direct access to the value - */ - public Communication setReceivedElement(DateTimeType value) { - this.received = value; - return this; - } - - /** - * @return The time when this communication arrived at the destination. - */ - public Date getReceived() { - return this.received == null ? null : this.received.getValue(); - } - - /** - * @param value The time when this communication arrived at the destination. - */ - public Communication setReceived(Date value) { - if (value == null) - this.received = null; - else { - if (this.received == null) - this.received = new DateTimeType(); - this.received.setValue(value); - } - return this; - } - - /** - * @return {@link #indication} (The reason or justification for the communication.) - */ - public List getIndication() { - if (this.indication == null) - this.indication = new ArrayList(); - return this.indication; - } - - public boolean hasIndication() { - if (this.indication == null) - return false; - for (CodeableConcept item : this.indication) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #indication} (The reason or justification for the communication.) - */ - // syntactic sugar - public CodeableConcept addIndication() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.indication == null) - this.indication = new ArrayList(); - this.indication.add(t); - return t; - } - - /** - * @return {@link #subject} (The patient who is the focus of this communication.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Communication.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (The patient who is the focus of this communication.) - */ - public Communication setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient who is the focus of this communication.) - */ - public Patient getSubjectTarget() { - if (this.subjectTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Communication.subject"); - else if (Configuration.doAutoCreate()) - this.subjectTarget = new Patient(); - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient who is the focus of this communication.) - */ - public Communication setSubjectTarget(Patient value) { - this.subjectTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "Identifiers associated with this Communication that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("category", "CodeableConcept", "The type of message such as alert, notification, reminder, instruction, etc.", 0, java.lang.Integer.MAX_VALUE, category)); - childrenList.add(new Property("sender", "Reference(Patient|Practitioner|Device|RelatedPerson|Organization)", "The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.", 0, java.lang.Integer.MAX_VALUE, sender)); - childrenList.add(new Property("recipient", "Reference(Patient|Device|RelatedPerson|Practitioner)", "The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication.", 0, java.lang.Integer.MAX_VALUE, recipient)); - childrenList.add(new Property("messagePart", "", "Text, attachment(s), or resource(s) to be communicated to the recipient.", 0, java.lang.Integer.MAX_VALUE, messagePart)); - childrenList.add(new Property("medium", "CodeableConcept", "The communication medium, e.g., email, fax.", 0, java.lang.Integer.MAX_VALUE, medium)); - childrenList.add(new Property("status", "code", "The status of the transmission.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("encounter", "Reference(Encounter)", "The encounter within which the communication was sent.", 0, java.lang.Integer.MAX_VALUE, encounter)); - childrenList.add(new Property("sent", "dateTime", "The time when this communication was sent.", 0, java.lang.Integer.MAX_VALUE, sent)); - childrenList.add(new Property("received", "dateTime", "The time when this communication arrived at the destination.", 0, java.lang.Integer.MAX_VALUE, received)); - childrenList.add(new Property("indication", "CodeableConcept", "The reason or justification for the communication.", 0, java.lang.Integer.MAX_VALUE, indication)); - childrenList.add(new Property("subject", "Reference(Patient)", "The patient who is the focus of this communication.", 0, java.lang.Integer.MAX_VALUE, subject)); - } - - public Communication copy() { - Communication dst = new Communication(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.category = category == null ? null : category.copy(); - dst.sender = sender == null ? null : sender.copy(); - if (recipient != null) { - dst.recipient = new ArrayList(); - for (Reference i : recipient) - dst.recipient.add(i.copy()); - }; - if (messagePart != null) { - dst.messagePart = new ArrayList(); - for (CommunicationMessagePartComponent i : messagePart) - dst.messagePart.add(i.copy()); - }; - if (medium != null) { - dst.medium = new ArrayList(); - for (CodeableConcept i : medium) - dst.medium.add(i.copy()); - }; - dst.status = status == null ? null : status.copy(); - dst.encounter = encounter == null ? null : encounter.copy(); - dst.sent = sent == null ? null : sent.copy(); - dst.received = received == null ? null : received.copy(); - if (indication != null) { - dst.indication = new ArrayList(); - for (CodeableConcept i : indication) - dst.indication.add(i.copy()); - }; - dst.subject = subject == null ? null : subject.copy(); - return dst; - } - - protected Communication typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (category == null || category.isEmpty()) - && (sender == null || sender.isEmpty()) && (recipient == null || recipient.isEmpty()) && (messagePart == null || messagePart.isEmpty()) - && (medium == null || medium.isEmpty()) && (status == null || status.isEmpty()) && (encounter == null || encounter.isEmpty()) - && (sent == null || sent.isEmpty()) && (received == null || received.isEmpty()) && (indication == null || indication.isEmpty()) - && (subject == null || subject.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Communication; - } - - @SearchParamDefinition(name="sender", path="Communication.sender", description="Message sender", type="reference" ) - public static final String SP_SENDER = "sender"; - @SearchParamDefinition(name="sent", path="Communication.sent", description="When sent", type="date" ) - public static final String SP_SENT = "sent"; - @SearchParamDefinition(name="category", path="Communication.category", description="Message category", type="token" ) - public static final String SP_CATEGORY = "category"; - @SearchParamDefinition(name="patient", path="Communication.subject", description="Focus of message", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="status", path="Communication.status", description="in progress | completed | suspended | rejected | failed", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="subject", path="Communication.subject", description="Focus of message", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="received", path="Communication.received", description="When received", type="date" ) - public static final String SP_RECEIVED = "received"; - @SearchParamDefinition(name="encounter", path="Communication.encounter", description="Encounter leading to message", type="reference" ) - public static final String SP_ENCOUNTER = "encounter"; - @SearchParamDefinition(name="identifier", path="Communication.identifier", description="Unique identifier", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - @SearchParamDefinition(name="medium", path="Communication.medium", description="Communication medium", type="token" ) - public static final String SP_MEDIUM = "medium"; - @SearchParamDefinition(name="recipient", path="Communication.recipient", description="Message recipient", type="reference" ) - public static final String SP_RECIPIENT = "recipient"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * An occurrence of information being transmitted. E.g., an alert that was sent to a responsible provider, a public health agency was notified about a reportable condition. + */ +@ResourceDef(name="Communication", profile="http://hl7.org/fhir/Profile/Communication") +public class Communication extends DomainResource { + + public enum CommunicationStatus { + /** + * The communication transmission is ongoing. + */ + INPROGRESS, + /** + * The message transmission is complete, i.e., delivered to the recipient's destination. + */ + COMPLETED, + /** + * The communication transmission has been held by originating system/user request. + */ + SUSPENDED, + /** + * The receiving system has declined to accept the message. + */ + REJECTED, + /** + * There was a failure in transmitting the message out. + */ + FAILED, + /** + * added to help the parsers + */ + NULL; + public static CommunicationStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("in-progress".equals(codeString)) + return INPROGRESS; + if ("completed".equals(codeString)) + return COMPLETED; + if ("suspended".equals(codeString)) + return SUSPENDED; + if ("rejected".equals(codeString)) + return REJECTED; + if ("failed".equals(codeString)) + return FAILED; + throw new Exception("Unknown CommunicationStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case INPROGRESS: return "in-progress"; + case COMPLETED: return "completed"; + case SUSPENDED: return "suspended"; + case REJECTED: return "rejected"; + case FAILED: return "failed"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case INPROGRESS: return ""; + case COMPLETED: return ""; + case SUSPENDED: return ""; + case REJECTED: return ""; + case FAILED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case INPROGRESS: return "The communication transmission is ongoing."; + case COMPLETED: return "The message transmission is complete, i.e., delivered to the recipient's destination."; + case SUSPENDED: return "The communication transmission has been held by originating system/user request."; + case REJECTED: return "The receiving system has declined to accept the message."; + case FAILED: return "There was a failure in transmitting the message out."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case INPROGRESS: return "in-progress"; + case COMPLETED: return "completed"; + case SUSPENDED: return "suspended"; + case REJECTED: return "rejected"; + case FAILED: return "failed"; + default: return "?"; + } + } + } + + public static class CommunicationStatusEnumFactory implements EnumFactory { + public CommunicationStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("in-progress".equals(codeString)) + return CommunicationStatus.INPROGRESS; + if ("completed".equals(codeString)) + return CommunicationStatus.COMPLETED; + if ("suspended".equals(codeString)) + return CommunicationStatus.SUSPENDED; + if ("rejected".equals(codeString)) + return CommunicationStatus.REJECTED; + if ("failed".equals(codeString)) + return CommunicationStatus.FAILED; + throw new IllegalArgumentException("Unknown CommunicationStatus code '"+codeString+"'"); + } + public String toCode(CommunicationStatus code) { + if (code == CommunicationStatus.INPROGRESS) + return "in-progress"; + if (code == CommunicationStatus.COMPLETED) + return "completed"; + if (code == CommunicationStatus.SUSPENDED) + return "suspended"; + if (code == CommunicationStatus.REJECTED) + return "rejected"; + if (code == CommunicationStatus.FAILED) + return "failed"; + return "?"; + } + } + + @Block() + public static class CommunicationPayloadComponent extends BackboneElement { + /** + * An individual message part for multi-part messages. + */ + @Child(name="content", type={StringType.class, Attachment.class}, order=1, min=1, max=1) + @Description(shortDefinition="Message part content", formalDefinition="An individual message part for multi-part messages." ) + protected Type content; + + private static final long serialVersionUID = -1763459053L; + + public CommunicationPayloadComponent() { + super(); + } + + public CommunicationPayloadComponent(Type content) { + super(); + this.content = content; + } + + /** + * @return {@link #content} (An individual message part for multi-part messages.) + */ + public Type getContent() { + return this.content; + } + + /** + * @return {@link #content} (An individual message part for multi-part messages.) + */ + public StringType getContentStringType() throws Exception { + if (!(this.content instanceof StringType)) + throw new Exception("Type mismatch: the type StringType was expected, but "+this.content.getClass().getName()+" was encountered"); + return (StringType) this.content; + } + + /** + * @return {@link #content} (An individual message part for multi-part messages.) + */ + public Attachment getContentAttachment() throws Exception { + if (!(this.content instanceof Attachment)) + throw new Exception("Type mismatch: the type Attachment was expected, but "+this.content.getClass().getName()+" was encountered"); + return (Attachment) this.content; + } + + /** + * @return {@link #content} (An individual message part for multi-part messages.) + */ + public Reference getContentReference() throws Exception { + if (!(this.content instanceof Reference)) + throw new Exception("Type mismatch: the type Reference was expected, but "+this.content.getClass().getName()+" was encountered"); + return (Reference) this.content; + } + + public boolean hasContent() { + return this.content != null && !this.content.isEmpty(); + } + + /** + * @param value {@link #content} (An individual message part for multi-part messages.) + */ + public CommunicationPayloadComponent setContent(Type value) { + this.content = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("content[x]", "string|Attachment|Reference(Any)", "An individual message part for multi-part messages.", 0, java.lang.Integer.MAX_VALUE, content)); + } + + public CommunicationPayloadComponent copy() { + CommunicationPayloadComponent dst = new CommunicationPayloadComponent(); + copyValues(dst); + dst.content = content == null ? null : content.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CommunicationPayloadComponent)) + return false; + CommunicationPayloadComponent o = (CommunicationPayloadComponent) other; + return compareDeep(content, o.content, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CommunicationPayloadComponent)) + return false; + CommunicationPayloadComponent o = (CommunicationPayloadComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (content == null || content.isEmpty()); + } + + } + + /** + * Identifiers associated with this Communication that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Unique identifier", formalDefinition="Identifiers associated with this Communication that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) + protected List identifier; + + /** + * The type of message such as alert, notification, reminder, instruction, etc. + */ + @Child(name="category", type={CodeableConcept.class}, order=0, min=0, max=1) + @Description(shortDefinition="Message category", formalDefinition="The type of message such as alert, notification, reminder, instruction, etc." ) + protected CodeableConcept category; + + /** + * The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication. + */ + @Child(name="sender", type={Patient.class, Practitioner.class, Device.class, RelatedPerson.class, Organization.class}, order=1, min=0, max=1) + @Description(shortDefinition="Message sender", formalDefinition="The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication." ) + protected Reference sender; + + /** + * The actual object that is the target of the reference (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) + */ + protected Resource senderTarget; + + /** + * The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication. + */ + @Child(name="recipient", type={Patient.class, Device.class, RelatedPerson.class, Practitioner.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Message recipient", formalDefinition="The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication." ) + protected List recipient; + /** + * The actual objects that are the target of the reference (The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication.) + */ + protected List recipientTarget; + + + /** + * Text, attachment(s), or resource(s) to be communicated to the recipient. + */ + @Child(name="payload", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Message payload", formalDefinition="Text, attachment(s), or resource(s) to be communicated to the recipient." ) + protected List payload; + + /** + * The communication medium, e.g., email, fax. + */ + @Child(name="medium", type={CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Communication medium", formalDefinition="The communication medium, e.g., email, fax." ) + protected List medium; + + /** + * The status of the transmission. + */ + @Child(name="status", type={CodeType.class}, order=5, min=0, max=1) + @Description(shortDefinition="in-progress | completed | suspended | rejected | failed", formalDefinition="The status of the transmission." ) + protected Enumeration status; + + /** + * The encounter within which the communication was sent. + */ + @Child(name="encounter", type={Encounter.class}, order=6, min=0, max=1) + @Description(shortDefinition="Encounter leading to message", formalDefinition="The encounter within which the communication was sent." ) + protected Reference encounter; + + /** + * The actual object that is the target of the reference (The encounter within which the communication was sent.) + */ + protected Encounter encounterTarget; + + /** + * The time when this communication was sent. + */ + @Child(name="sent", type={DateTimeType.class}, order=7, min=0, max=1) + @Description(shortDefinition="When sent", formalDefinition="The time when this communication was sent." ) + protected DateTimeType sent; + + /** + * The time when this communication arrived at the destination. + */ + @Child(name="received", type={DateTimeType.class}, order=8, min=0, max=1) + @Description(shortDefinition="When received", formalDefinition="The time when this communication arrived at the destination." ) + protected DateTimeType received; + + /** + * The reason or justification for the communication. + */ + @Child(name="reason", type={CodeableConcept.class}, order=9, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Indication for message", formalDefinition="The reason or justification for the communication." ) + protected List reason; + + /** + * The patient who is the focus of this communication. + */ + @Child(name="subject", type={Patient.class}, order=10, min=0, max=1) + @Description(shortDefinition="Focus of message", formalDefinition="The patient who is the focus of this communication." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (The patient who is the focus of this communication.) + */ + protected Patient subjectTarget; + + private static final long serialVersionUID = -744574729L; + + public Communication() { + super(); + } + + /** + * @return {@link #identifier} (Identifiers associated with this Communication that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Identifiers associated with this Communication that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #category} (The type of message such as alert, notification, reminder, instruction, etc.) + */ + public CodeableConcept getCategory() { + if (this.category == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Communication.category"); + else if (Configuration.doAutoCreate()) + this.category = new CodeableConcept(); // cc + return this.category; + } + + public boolean hasCategory() { + return this.category != null && !this.category.isEmpty(); + } + + /** + * @param value {@link #category} (The type of message such as alert, notification, reminder, instruction, etc.) + */ + public Communication setCategory(CodeableConcept value) { + this.category = value; + return this; + } + + /** + * @return {@link #sender} (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) + */ + public Reference getSender() { + if (this.sender == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Communication.sender"); + else if (Configuration.doAutoCreate()) + this.sender = new Reference(); // cc + return this.sender; + } + + public boolean hasSender() { + return this.sender != null && !this.sender.isEmpty(); + } + + /** + * @param value {@link #sender} (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) + */ + public Communication setSender(Reference value) { + this.sender = value; + return this; + } + + /** + * @return {@link #sender} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) + */ + public Resource getSenderTarget() { + return this.senderTarget; + } + + /** + * @param value {@link #sender} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) + */ + public Communication setSenderTarget(Resource value) { + this.senderTarget = value; + return this; + } + + /** + * @return {@link #recipient} (The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication.) + */ + public List getRecipient() { + if (this.recipient == null) + this.recipient = new ArrayList(); + return this.recipient; + } + + public boolean hasRecipient() { + if (this.recipient == null) + return false; + for (Reference item : this.recipient) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #recipient} (The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication.) + */ + // syntactic sugar + public Reference addRecipient() { //3 + Reference t = new Reference(); + if (this.recipient == null) + this.recipient = new ArrayList(); + this.recipient.add(t); + return t; + } + + /** + * @return {@link #recipient} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication.) + */ + public List getRecipientTarget() { + if (this.recipientTarget == null) + this.recipientTarget = new ArrayList(); + return this.recipientTarget; + } + + /** + * @return {@link #payload} (Text, attachment(s), or resource(s) to be communicated to the recipient.) + */ + public List getPayload() { + if (this.payload == null) + this.payload = new ArrayList(); + return this.payload; + } + + public boolean hasPayload() { + if (this.payload == null) + return false; + for (CommunicationPayloadComponent item : this.payload) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #payload} (Text, attachment(s), or resource(s) to be communicated to the recipient.) + */ + // syntactic sugar + public CommunicationPayloadComponent addPayload() { //3 + CommunicationPayloadComponent t = new CommunicationPayloadComponent(); + if (this.payload == null) + this.payload = new ArrayList(); + this.payload.add(t); + return t; + } + + /** + * @return {@link #medium} (The communication medium, e.g., email, fax.) + */ + public List getMedium() { + if (this.medium == null) + this.medium = new ArrayList(); + return this.medium; + } + + public boolean hasMedium() { + if (this.medium == null) + return false; + for (CodeableConcept item : this.medium) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #medium} (The communication medium, e.g., email, fax.) + */ + // syntactic sugar + public CodeableConcept addMedium() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.medium == null) + this.medium = new ArrayList(); + this.medium.add(t); + return t; + } + + /** + * @return {@link #status} (The status of the transmission.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Communication.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new CommunicationStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of the transmission.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Communication setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of the transmission. + */ + public CommunicationStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of the transmission. + */ + public Communication setStatus(CommunicationStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new CommunicationStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #encounter} (The encounter within which the communication was sent.) + */ + public Reference getEncounter() { + if (this.encounter == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Communication.encounter"); + else if (Configuration.doAutoCreate()) + this.encounter = new Reference(); // cc + return this.encounter; + } + + public boolean hasEncounter() { + return this.encounter != null && !this.encounter.isEmpty(); + } + + /** + * @param value {@link #encounter} (The encounter within which the communication was sent.) + */ + public Communication setEncounter(Reference value) { + this.encounter = value; + return this; + } + + /** + * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The encounter within which the communication was sent.) + */ + public Encounter getEncounterTarget() { + if (this.encounterTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Communication.encounter"); + else if (Configuration.doAutoCreate()) + this.encounterTarget = new Encounter(); // aa + return this.encounterTarget; + } + + /** + * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The encounter within which the communication was sent.) + */ + public Communication setEncounterTarget(Encounter value) { + this.encounterTarget = value; + return this; + } + + /** + * @return {@link #sent} (The time when this communication was sent.). This is the underlying object with id, value and extensions. The accessor "getSent" gives direct access to the value + */ + public DateTimeType getSentElement() { + if (this.sent == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Communication.sent"); + else if (Configuration.doAutoCreate()) + this.sent = new DateTimeType(); // bb + return this.sent; + } + + public boolean hasSentElement() { + return this.sent != null && !this.sent.isEmpty(); + } + + public boolean hasSent() { + return this.sent != null && !this.sent.isEmpty(); + } + + /** + * @param value {@link #sent} (The time when this communication was sent.). This is the underlying object with id, value and extensions. The accessor "getSent" gives direct access to the value + */ + public Communication setSentElement(DateTimeType value) { + this.sent = value; + return this; + } + + /** + * @return The time when this communication was sent. + */ + public Date getSent() { + return this.sent == null ? null : this.sent.getValue(); + } + + /** + * @param value The time when this communication was sent. + */ + public Communication setSent(Date value) { + if (value == null) + this.sent = null; + else { + if (this.sent == null) + this.sent = new DateTimeType(); + this.sent.setValue(value); + } + return this; + } + + /** + * @return {@link #received} (The time when this communication arrived at the destination.). This is the underlying object with id, value and extensions. The accessor "getReceived" gives direct access to the value + */ + public DateTimeType getReceivedElement() { + if (this.received == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Communication.received"); + else if (Configuration.doAutoCreate()) + this.received = new DateTimeType(); // bb + return this.received; + } + + public boolean hasReceivedElement() { + return this.received != null && !this.received.isEmpty(); + } + + public boolean hasReceived() { + return this.received != null && !this.received.isEmpty(); + } + + /** + * @param value {@link #received} (The time when this communication arrived at the destination.). This is the underlying object with id, value and extensions. The accessor "getReceived" gives direct access to the value + */ + public Communication setReceivedElement(DateTimeType value) { + this.received = value; + return this; + } + + /** + * @return The time when this communication arrived at the destination. + */ + public Date getReceived() { + return this.received == null ? null : this.received.getValue(); + } + + /** + * @param value The time when this communication arrived at the destination. + */ + public Communication setReceived(Date value) { + if (value == null) + this.received = null; + else { + if (this.received == null) + this.received = new DateTimeType(); + this.received.setValue(value); + } + return this; + } + + /** + * @return {@link #reason} (The reason or justification for the communication.) + */ + public List getReason() { + if (this.reason == null) + this.reason = new ArrayList(); + return this.reason; + } + + public boolean hasReason() { + if (this.reason == null) + return false; + for (CodeableConcept item : this.reason) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #reason} (The reason or justification for the communication.) + */ + // syntactic sugar + public CodeableConcept addReason() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.reason == null) + this.reason = new ArrayList(); + this.reason.add(t); + return t; + } + + /** + * @return {@link #subject} (The patient who is the focus of this communication.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Communication.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (The patient who is the focus of this communication.) + */ + public Communication setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient who is the focus of this communication.) + */ + public Patient getSubjectTarget() { + if (this.subjectTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Communication.subject"); + else if (Configuration.doAutoCreate()) + this.subjectTarget = new Patient(); // aa + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient who is the focus of this communication.) + */ + public Communication setSubjectTarget(Patient value) { + this.subjectTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Identifiers associated with this Communication that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("category", "CodeableConcept", "The type of message such as alert, notification, reminder, instruction, etc.", 0, java.lang.Integer.MAX_VALUE, category)); + childrenList.add(new Property("sender", "Reference(Patient|Practitioner|Device|RelatedPerson|Organization)", "The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.", 0, java.lang.Integer.MAX_VALUE, sender)); + childrenList.add(new Property("recipient", "Reference(Patient|Device|RelatedPerson|Practitioner)", "The entity (e.g., person, organization, clinical information system, or device) which is the target of the communication.", 0, java.lang.Integer.MAX_VALUE, recipient)); + childrenList.add(new Property("payload", "", "Text, attachment(s), or resource(s) to be communicated to the recipient.", 0, java.lang.Integer.MAX_VALUE, payload)); + childrenList.add(new Property("medium", "CodeableConcept", "The communication medium, e.g., email, fax.", 0, java.lang.Integer.MAX_VALUE, medium)); + childrenList.add(new Property("status", "code", "The status of the transmission.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("encounter", "Reference(Encounter)", "The encounter within which the communication was sent.", 0, java.lang.Integer.MAX_VALUE, encounter)); + childrenList.add(new Property("sent", "dateTime", "The time when this communication was sent.", 0, java.lang.Integer.MAX_VALUE, sent)); + childrenList.add(new Property("received", "dateTime", "The time when this communication arrived at the destination.", 0, java.lang.Integer.MAX_VALUE, received)); + childrenList.add(new Property("reason", "CodeableConcept", "The reason or justification for the communication.", 0, java.lang.Integer.MAX_VALUE, reason)); + childrenList.add(new Property("subject", "Reference(Patient)", "The patient who is the focus of this communication.", 0, java.lang.Integer.MAX_VALUE, subject)); + } + + public Communication copy() { + Communication dst = new Communication(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.category = category == null ? null : category.copy(); + dst.sender = sender == null ? null : sender.copy(); + if (recipient != null) { + dst.recipient = new ArrayList(); + for (Reference i : recipient) + dst.recipient.add(i.copy()); + }; + if (payload != null) { + dst.payload = new ArrayList(); + for (CommunicationPayloadComponent i : payload) + dst.payload.add(i.copy()); + }; + if (medium != null) { + dst.medium = new ArrayList(); + for (CodeableConcept i : medium) + dst.medium.add(i.copy()); + }; + dst.status = status == null ? null : status.copy(); + dst.encounter = encounter == null ? null : encounter.copy(); + dst.sent = sent == null ? null : sent.copy(); + dst.received = received == null ? null : received.copy(); + if (reason != null) { + dst.reason = new ArrayList(); + for (CodeableConcept i : reason) + dst.reason.add(i.copy()); + }; + dst.subject = subject == null ? null : subject.copy(); + return dst; + } + + protected Communication typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Communication)) + return false; + Communication o = (Communication) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(category, o.category, true) && compareDeep(sender, o.sender, true) + && compareDeep(recipient, o.recipient, true) && compareDeep(payload, o.payload, true) && compareDeep(medium, o.medium, true) + && compareDeep(status, o.status, true) && compareDeep(encounter, o.encounter, true) && compareDeep(sent, o.sent, true) + && compareDeep(received, o.received, true) && compareDeep(reason, o.reason, true) && compareDeep(subject, o.subject, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Communication)) + return false; + Communication o = (Communication) other; + return compareValues(status, o.status, true) && compareValues(sent, o.sent, true) && compareValues(received, o.received, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (category == null || category.isEmpty()) + && (sender == null || sender.isEmpty()) && (recipient == null || recipient.isEmpty()) && (payload == null || payload.isEmpty()) + && (medium == null || medium.isEmpty()) && (status == null || status.isEmpty()) && (encounter == null || encounter.isEmpty()) + && (sent == null || sent.isEmpty()) && (received == null || received.isEmpty()) && (reason == null || reason.isEmpty()) + && (subject == null || subject.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Communication; + } + + @SearchParamDefinition(name="sender", path="Communication.sender", description="Message sender", type="reference" ) + public static final String SP_SENDER = "sender"; + @SearchParamDefinition(name="sent", path="Communication.sent", description="When sent", type="date" ) + public static final String SP_SENT = "sent"; + @SearchParamDefinition(name="category", path="Communication.category", description="Message category", type="token" ) + public static final String SP_CATEGORY = "category"; + @SearchParamDefinition(name="patient", path="Communication.subject", description="Focus of message", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="status", path="Communication.status", description="in-progress | completed | suspended | rejected | failed", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="subject", path="Communication.subject", description="Focus of message", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="received", path="Communication.received", description="When received", type="date" ) + public static final String SP_RECEIVED = "received"; + @SearchParamDefinition(name="encounter", path="Communication.encounter", description="Encounter leading to message", type="reference" ) + public static final String SP_ENCOUNTER = "encounter"; + @SearchParamDefinition(name="identifier", path="Communication.identifier", description="Unique identifier", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + @SearchParamDefinition(name="medium", path="Communication.medium", description="Communication medium", type="token" ) + public static final String SP_MEDIUM = "medium"; + @SearchParamDefinition(name="recipient", path="Communication.recipient", description="Message recipient", type="reference" ) + public static final String SP_RECIPIENT = "recipient"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b0623c60fd1dc813e340626ae3078ef25136aef5 GIT binary patch literal 1351 zcmb_cT~E_s6n@?@)@=@%hzf{`Qu$Cr0TEOXnOz~1eYpZ&aAWBzD|Rh*9o(Ae4=~Xm zU}B8dYGRBr`~ZKH@tj67E*29KlJ3QF`zyJI^0B{?RlDLG+33TI1f~+By zS0!9yG0Y${TxS?z7-bk^7-zV_a8tr935vjmtnb@_St}U3vgdEhHD^wKUbB7Kb{m1= znwDJms+J?GUcKIQZPN&B&#hQ5n^q%e>(m1yXf^~Qn>m5_g6Y_<9V`lTjE!#yL{+LL z(4DtktJth>S^k=_<&dX~^2`_1MX2d(1d_Vf^i6Bo=I8zG8kpEI_6(|~xu)YaYcA_MTUnAOAHyz3QW_u6dISp<5CXCrG(>B+I1^W2|yr~b6v|<9i!2(Xin)?L#3@9 z%M1i2k6T$_^|&ejUAuvH?H?{|Y|n6L^##gfCB3BAMZo95XV{c5}zZnf)28PPd^|IekH#l z@|CZS?}$cApAlURWsGEJOG+eTEg2^%wPb>1yd{$)(?_CDu|5)>VtpjOi*=%vf0}hN z)L)Q9f?B_TPV`|IBgCVarnA+FSvnF~Vhv^J#A|p4lemgqG>8Md!fWC;c#C($@9_a2 zi6b~qpC1c{uuqkN8T3AtsD7ah6xr7fXpH@o8^HiB5=SveI6-$0`MO!9LNPcsl(uW>*jiZaD!VJN z8`|`KOVTF2q=i3_FZs~Uw02u&TJj~G>EGy={(yF-?T5P0+1+Z5qDXW`I(zo)`##Tm zJMTGv`OhEz2;eyG>KKO6gCQ(yC}}8bkUF|xq_Lu&t2!z$b=<(sG%U4J)scd&!AYa0 z;k7he9UgpzQ`c}SjoWFgrEwzp#@5!Bj()7~z*q3PhOg>mG1TxirSXQ+__})ihMIj- z4MZ8jw={fPKr1=6FKu7o$$7_JEmW*$3o8}VEtt0F8+J(+s!my2h0E(TSriz!RJVPz zDi=-9T(;z-Z9BfW!-f3o#cF&u( zyil($OZT$D+zE`d4`UE(1)#4=pIl*?43Cbr4P2C={#Yl@oWOVo?O2wP?p4pOXop)ZHrqm< zGM4H2!4_pe7^Knp8^$f8Q1?x%Fwaj#RTDi6=BjP@b(aAvHcOmpYuiQFsY%ygFP;vN zQYELhF0j-g>aC1_G>_O4HGGGOVe}2ln~}2CvG%77PZm`+dqbs#ieXvKZT3sko2}M- z8eHgL@DyuznfaZyWYmfdchHC>^#!NymgHGeZPS5Pt{+u7`G0!ul;xCe7BeW~R0bnB zBygx*zmGQ}D9Vt`9+0b=Ue)kRm6JKYB6Gf4ia~R? z4KF9xYO>_Z@mVG_%vU5pxyK;W5Aa=9VX0-jZw!8M%A;37UJFx-yof18G7933#%)~*ZW zyx>^86T5Mz!8kf;uaBufy`$mX41R*2YWSJJm3B0(O6`$$Sq4AHdl_8DWCowdQU<@k zFEhBRW|whAAm5I)X{*q!cG4=;Jmid8P1NBjc;#k|^$=Bv8hcHLl+I=f<>NKT{5h2Zwm|Byyx05N?hoD1x2Wg&a$^%m>+c)5CpC6Si7LNDvY2OYwN-FgP}Xt{?uwpa?tyC zlz0Xjt_*wfOPv7NlRJBUb?hn*@P0eYD_??lX!be?91gDG35@b;J?3$7{2CG^q zkvSYiK@G>$@D$aa_IPQ3#={8=;xl-b0M7+*&tn(o?4cZA;K~6$1)p8xn-IU|MBp?> zoe;p^$^H+n6!BS(N_?E_>Wi+#$Me5MBG%anbxHjvb^e7O{F@qQFd6AR#%D3 zv5=-)Ee5|SOcPj9lnJ0ji{lji5XpO(xR2D*eRM5tqC2Z?Ag#V^pl1U*U$Q$mY#_6V z-an}i50F#@iNKG*CZRzWX&e_lnBkWs#Bt1WqIlH*EM9EQy|amXS7+{>&D?$D-c9ao zYwnjY*P6SpiFhbNHJ9&T2LC}aiW8I5{J+w4m0FDEh48USt&~4z<7QW zd-C_uzm(mZ{Zw{eGP_?Hv5A4-V=#eNo61b&2{nP7ID$)oaSOD7eLAwkkL(z^k0Dmg zr{~A>8+a_Q5dREKywCdObOVpGfb((Gva}827}DY?^opl(kcFZuW(0{X3?QLlkw37W z7Prvdcn{ZKB{vU_$bxGuGqoK?lw(iaLs#;H{D&9{Cl4@mUKudKf9iM0#qk{^EW~rP z;CbfmBzB7;_J~v1FJ1^NNg<)9Nx^d|BDzRd715v~I?#eB)r>wx^l75c5Pg>DXNmse zL+CuxBlIagRbf2N{r==#1UdN#ybPi==DburO#iaT?u?C=!^>B%Y47Uzs~s(?%+In{tLQhU^4&! literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest$CommunicationRequestStatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest$CommunicationRequestStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..ebdc7db18e78913bce5a3786d69c9bf811caafc9 GIT binary patch literal 4372 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..01e90ddc27a8feb75b52845f18a01bc046b3704c GIT binary patch literal 20604 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 WQ}O#9RAd$S{VslM@O$BcN&g34wO5}2 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest.java similarity index 78% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest.java index f09f4c8eddd..b14bd7bfbc2 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/CommunicationRequest.java @@ -1,1235 +1,1114 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A request to convey information. E.g., the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition. - */ -@ResourceDef(name="CommunicationRequest", profile="http://hl7.org/fhir/Profile/CommunicationRequest") -public class CommunicationRequest extends DomainResource { - - public enum CommunicationRequestStatus implements FhirEnum { - /** - * The request has been placed. - */ - REQUESTED, - /** - * The receiving system has received the request but not yet decided whether it will be performed. - */ - RECEIVED, - /** - * The receiving system has accepted the order, but work has not yet commenced. - */ - ACCEPTED, - /** - * The work to fulfill the order is happening. - */ - INPROGRESS, - /** - * The work is complete, and the outcomes are being reviewed for approval. - */ - REVIEW, - /** - * The work has been complete, the report(s) released, and no further work is planned. - */ - COMPLETED, - /** - * The request has been held by originating system/user request. - */ - SUSPENDED, - /** - * The receiving system has declined to fulfill the request. - */ - REJECTED, - /** - * The diagnostic investigation was attempted, but due to some procedural error, it could not be completed. - */ - FAILED, - /** - * added to help the parsers - */ - NULL; - - public static final CommunicationRequestStatusEnumFactory ENUM_FACTORY = new CommunicationRequestStatusEnumFactory(); - - public static CommunicationRequestStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("requested".equals(codeString)) - return REQUESTED; - if ("received".equals(codeString)) - return RECEIVED; - if ("accepted".equals(codeString)) - return ACCEPTED; - if ("in progress".equals(codeString)) - return INPROGRESS; - if ("review".equals(codeString)) - return REVIEW; - if ("completed".equals(codeString)) - return COMPLETED; - if ("suspended".equals(codeString)) - return SUSPENDED; - if ("rejected".equals(codeString)) - return REJECTED; - if ("failed".equals(codeString)) - return FAILED; - throw new IllegalArgumentException("Unknown CommunicationRequestStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case REQUESTED: return "requested"; - case RECEIVED: return "received"; - case ACCEPTED: return "accepted"; - case INPROGRESS: return "in progress"; - case REVIEW: return "review"; - case COMPLETED: return "completed"; - case SUSPENDED: return "suspended"; - case REJECTED: return "rejected"; - case FAILED: return "failed"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case REQUESTED: return ""; - case RECEIVED: return ""; - case ACCEPTED: return ""; - case INPROGRESS: return ""; - case REVIEW: return ""; - case COMPLETED: return ""; - case SUSPENDED: return ""; - case REJECTED: return ""; - case FAILED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case REQUESTED: return "The request has been placed."; - case RECEIVED: return "The receiving system has received the request but not yet decided whether it will be performed."; - case ACCEPTED: return "The receiving system has accepted the order, but work has not yet commenced."; - case INPROGRESS: return "The work to fulfill the order is happening."; - case REVIEW: return "The work is complete, and the outcomes are being reviewed for approval."; - case COMPLETED: return "The work has been complete, the report(s) released, and no further work is planned."; - case SUSPENDED: return "The request has been held by originating system/user request."; - case REJECTED: return "The receiving system has declined to fulfill the request."; - case FAILED: return "The diagnostic investigation was attempted, but due to some procedural error, it could not be completed."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case REQUESTED: return "requested"; - case RECEIVED: return "received"; - case ACCEPTED: return "accepted"; - case INPROGRESS: return "in progress"; - case REVIEW: return "review"; - case COMPLETED: return "completed"; - case SUSPENDED: return "suspended"; - case REJECTED: return "rejected"; - case FAILED: return "failed"; - default: return "?"; - } - } - } - - public static class CommunicationRequestStatusEnumFactory implements EnumFactory { - public CommunicationRequestStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("requested".equals(codeString)) - return CommunicationRequestStatus.REQUESTED; - if ("received".equals(codeString)) - return CommunicationRequestStatus.RECEIVED; - if ("accepted".equals(codeString)) - return CommunicationRequestStatus.ACCEPTED; - if ("in progress".equals(codeString)) - return CommunicationRequestStatus.INPROGRESS; - if ("review".equals(codeString)) - return CommunicationRequestStatus.REVIEW; - if ("completed".equals(codeString)) - return CommunicationRequestStatus.COMPLETED; - if ("suspended".equals(codeString)) - return CommunicationRequestStatus.SUSPENDED; - if ("rejected".equals(codeString)) - return CommunicationRequestStatus.REJECTED; - if ("failed".equals(codeString)) - return CommunicationRequestStatus.FAILED; - throw new IllegalArgumentException("Unknown CommunicationRequestStatus code '"+codeString+"'"); - } - public String toCode(CommunicationRequestStatus code) throws IllegalArgumentException { - if (code == CommunicationRequestStatus.REQUESTED) - return "requested"; - if (code == CommunicationRequestStatus.RECEIVED) - return "received"; - if (code == CommunicationRequestStatus.ACCEPTED) - return "accepted"; - if (code == CommunicationRequestStatus.INPROGRESS) - return "in progress"; - if (code == CommunicationRequestStatus.REVIEW) - return "review"; - if (code == CommunicationRequestStatus.COMPLETED) - return "completed"; - if (code == CommunicationRequestStatus.SUSPENDED) - return "suspended"; - if (code == CommunicationRequestStatus.REJECTED) - return "rejected"; - if (code == CommunicationRequestStatus.FAILED) - return "failed"; - return "?"; - } - } - - public enum CommunicationRequestMode implements FhirEnum { - /** - * planned. - */ - PLANNED, - /** - * proposed. - */ - PROPOSED, - /** - * ordered. - */ - ORDERED, - /** - * added to help the parsers - */ - NULL; - - public static final CommunicationRequestModeEnumFactory ENUM_FACTORY = new CommunicationRequestModeEnumFactory(); - - public static CommunicationRequestMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("planned".equals(codeString)) - return PLANNED; - if ("proposed".equals(codeString)) - return PROPOSED; - if ("ordered".equals(codeString)) - return ORDERED; - throw new IllegalArgumentException("Unknown CommunicationRequestMode code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case PLANNED: return "planned"; - case PROPOSED: return "proposed"; - case ORDERED: return "ordered"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case PLANNED: return ""; - case PROPOSED: return ""; - case ORDERED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case PLANNED: return "planned."; - case PROPOSED: return "proposed."; - case ORDERED: return "ordered."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case PLANNED: return "planned"; - case PROPOSED: return "proposed"; - case ORDERED: return "ordered"; - default: return "?"; - } - } - } - - public static class CommunicationRequestModeEnumFactory implements EnumFactory { - public CommunicationRequestMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("planned".equals(codeString)) - return CommunicationRequestMode.PLANNED; - if ("proposed".equals(codeString)) - return CommunicationRequestMode.PROPOSED; - if ("ordered".equals(codeString)) - return CommunicationRequestMode.ORDERED; - throw new IllegalArgumentException("Unknown CommunicationRequestMode code '"+codeString+"'"); - } - public String toCode(CommunicationRequestMode code) throws IllegalArgumentException { - if (code == CommunicationRequestMode.PLANNED) - return "planned"; - if (code == CommunicationRequestMode.PROPOSED) - return "proposed"; - if (code == CommunicationRequestMode.ORDERED) - return "ordered"; - return "?"; - } - } - - @Block() - public static class CommunicationRequestMessagePartComponent extends BackboneElement { - /** - * An individual message part for multi-part messages. - */ - @Child(name="content", type={StringType.class, Attachment.class}, order=1, min=1, max=1) - @Description(shortDefinition="Message part content", formalDefinition="An individual message part for multi-part messages." ) - protected Type content; - - private static final long serialVersionUID = -1763459053L; - - public CommunicationRequestMessagePartComponent() { - super(); - } - - public CommunicationRequestMessagePartComponent(Type content) { - super(); - this.content = content; - } - - /** - * @return {@link #content} (An individual message part for multi-part messages.) - */ - public Type getContent() { - return this.content; - } - - /** - * @return {@link #content} (An individual message part for multi-part messages.) - */ - public StringType getContentStringType() throws Exception { - if (!(this.content instanceof StringType)) - throw new Exception("Type mismatch: the type StringType was expected, but "+this.content.getClass().getName()+" was encountered"); - return (StringType) this.content; - } - - /** - * @return {@link #content} (An individual message part for multi-part messages.) - */ - public Attachment getContentAttachment() throws Exception { - if (!(this.content instanceof Attachment)) - throw new Exception("Type mismatch: the type Attachment was expected, but "+this.content.getClass().getName()+" was encountered"); - return (Attachment) this.content; - } - - /** - * @return {@link #content} (An individual message part for multi-part messages.) - */ - public Reference getContentReference() throws Exception { - if (!(this.content instanceof Reference)) - throw new Exception("Type mismatch: the type Reference was expected, but "+this.content.getClass().getName()+" was encountered"); - return (Reference) this.content; - } - - public boolean hasContent() { - return this.content != null && !this.content.isEmpty(); - } - - /** - * @param value {@link #content} (An individual message part for multi-part messages.) - */ - public CommunicationRequestMessagePartComponent setContent(Type value) { - this.content = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("content[x]", "string|Attachment|Reference(Any)", "An individual message part for multi-part messages.", 0, java.lang.Integer.MAX_VALUE, content)); - } - - public CommunicationRequestMessagePartComponent copy() { - CommunicationRequestMessagePartComponent dst = new CommunicationRequestMessagePartComponent(); - copyValues(dst); - dst.content = content == null ? null : content.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (content == null || content.isEmpty()); - } - - } - - /** - * A unique ID of this request for reference purposes. It must be provided if user wants it returned as part of any output, otherwise it will be auto-generated, if needed, by CDS system. Does not need to be the actual ID of the source system. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Unique identifier", formalDefinition="A unique ID of this request for reference purposes. It must be provided if user wants it returned as part of any output, otherwise it will be auto-generated, if needed, by CDS system. Does not need to be the actual ID of the source system." ) - protected List identifier; - - /** - * The type of message such as alert, notification, reminder, instruction, etc. - */ - @Child(name="category", type={CodeableConcept.class}, order=0, min=0, max=1) - @Description(shortDefinition="Message category", formalDefinition="The type of message such as alert, notification, reminder, instruction, etc." ) - protected CodeableConcept category; - - /** - * The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication. - */ - @Child(name="sender", type={Patient.class, Practitioner.class, Device.class, RelatedPerson.class, Organization.class}, order=1, min=0, max=1) - @Description(shortDefinition="Message sender", formalDefinition="The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication." ) - protected Reference sender; - - /** - * The actual object that is the target of the reference (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) - */ - protected Resource senderTarget; - - /** - * The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication. - */ - @Child(name="recipient", type={Patient.class, Device.class, RelatedPerson.class, Practitioner.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Message recipient", formalDefinition="The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication." ) - protected List recipient; - /** - * The actual objects that are the target of the reference (The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication.) - */ - protected List recipientTarget; - - - /** - * Text, attachment(s), or resource(s) to be communicated to the recipient. - */ - @Child(name="messagePart", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Message payload", formalDefinition="Text, attachment(s), or resource(s) to be communicated to the recipient." ) - protected List messagePart; - - /** - * The communication medium, e.g., email, fax. - */ - @Child(name="medium", type={CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Communication medium", formalDefinition="The communication medium, e.g., email, fax." ) - protected List medium; - - /** - * The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application. - */ - @Child(name="requester", type={Practitioner.class, Patient.class, RelatedPerson.class}, order=5, min=0, max=1) - @Description(shortDefinition="Requester of communication", formalDefinition="The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application." ) - protected Reference requester; - - /** - * The actual object that is the target of the reference (The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application.) - */ - protected Resource requesterTarget; - - /** - * The status of the proposal or order. - */ - @Child(name="status", type={CodeType.class}, order=6, min=0, max=1) - @Description(shortDefinition="requested | received | accepted | in progress | review | completed | suspended | rejected | failed", formalDefinition="The status of the proposal or order." ) - protected Enumeration status; - - /** - * Whether the communication is proposed, ordered, or planned. - */ - @Child(name="mode", type={CodeType.class}, order=7, min=0, max=1) - @Description(shortDefinition="planned | proposed | ordered", formalDefinition="Whether the communication is proposed, ordered, or planned." ) - protected Enumeration mode; - - /** - * The encounter within which the communication request was created. - */ - @Child(name="encounter", type={Encounter.class}, order=8, min=0, max=1) - @Description(shortDefinition="Encounter leading to message", formalDefinition="The encounter within which the communication request was created." ) - protected Reference encounter; - - /** - * The actual object that is the target of the reference (The encounter within which the communication request was created.) - */ - protected Encounter encounterTarget; - - /** - * The time when this communication is to occur. - */ - @Child(name="scheduledTime", type={DateTimeType.class}, order=9, min=0, max=1) - @Description(shortDefinition="When scheduled", formalDefinition="The time when this communication is to occur." ) - protected DateTimeType scheduledTime; - - /** - * The reason or justification for the communication request. - */ - @Child(name="indication", type={CodeableConcept.class}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Indication for message", formalDefinition="The reason or justification for the communication request." ) - protected List indication; - - /** - * The time when the request was made. - */ - @Child(name="orderedOn", type={DateTimeType.class}, order=11, min=0, max=1) - @Description(shortDefinition="When ordered or proposed", formalDefinition="The time when the request was made." ) - protected DateTimeType orderedOn; - - /** - * The patient who is the focus of this communication request. - */ - @Child(name="subject", type={Patient.class}, order=12, min=1, max=1) - @Description(shortDefinition="Focus of message", formalDefinition="The patient who is the focus of this communication request." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (The patient who is the focus of this communication request.) - */ - protected Patient subjectTarget; - - /** - * Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine. - */ - @Child(name="priority", type={CodeableConcept.class}, order=13, min=0, max=1) - @Description(shortDefinition="Message urgency", formalDefinition="Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine." ) - protected CodeableConcept priority; - - private static final long serialVersionUID = -515307355L; - - public CommunicationRequest() { - super(); - } - - public CommunicationRequest(Reference subject) { - super(); - this.subject = subject; - } - - /** - * @return {@link #identifier} (A unique ID of this request for reference purposes. It must be provided if user wants it returned as part of any output, otherwise it will be auto-generated, if needed, by CDS system. Does not need to be the actual ID of the source system.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (A unique ID of this request for reference purposes. It must be provided if user wants it returned as part of any output, otherwise it will be auto-generated, if needed, by CDS system. Does not need to be the actual ID of the source system.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #category} (The type of message such as alert, notification, reminder, instruction, etc.) - */ - public CodeableConcept getCategory() { - if (this.category == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CommunicationRequest.category"); - else if (Configuration.doAutoCreate()) - this.category = new CodeableConcept(); - return this.category; - } - - public boolean hasCategory() { - return this.category != null && !this.category.isEmpty(); - } - - /** - * @param value {@link #category} (The type of message such as alert, notification, reminder, instruction, etc.) - */ - public CommunicationRequest setCategory(CodeableConcept value) { - this.category = value; - return this; - } - - /** - * @return {@link #sender} (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) - */ - public Reference getSender() { - if (this.sender == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CommunicationRequest.sender"); - else if (Configuration.doAutoCreate()) - this.sender = new Reference(); - return this.sender; - } - - public boolean hasSender() { - return this.sender != null && !this.sender.isEmpty(); - } - - /** - * @param value {@link #sender} (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) - */ - public CommunicationRequest setSender(Reference value) { - this.sender = value; - return this; - } - - /** - * @return {@link #sender} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) - */ - public Resource getSenderTarget() { - return this.senderTarget; - } - - /** - * @param value {@link #sender} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) - */ - public CommunicationRequest setSenderTarget(Resource value) { - this.senderTarget = value; - return this; - } - - /** - * @return {@link #recipient} (The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication.) - */ - public List getRecipient() { - if (this.recipient == null) - this.recipient = new ArrayList(); - return this.recipient; - } - - public boolean hasRecipient() { - if (this.recipient == null) - return false; - for (Reference item : this.recipient) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #recipient} (The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication.) - */ - // syntactic sugar - public Reference addRecipient() { //3 - Reference t = new Reference(); - if (this.recipient == null) - this.recipient = new ArrayList(); - this.recipient.add(t); - return t; - } - - /** - * @return {@link #recipient} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication.) - */ - public List getRecipientTarget() { - if (this.recipientTarget == null) - this.recipientTarget = new ArrayList(); - return this.recipientTarget; - } - - /** - * @return {@link #messagePart} (Text, attachment(s), or resource(s) to be communicated to the recipient.) - */ - public List getMessagePart() { - if (this.messagePart == null) - this.messagePart = new ArrayList(); - return this.messagePart; - } - - public boolean hasMessagePart() { - if (this.messagePart == null) - return false; - for (CommunicationRequestMessagePartComponent item : this.messagePart) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #messagePart} (Text, attachment(s), or resource(s) to be communicated to the recipient.) - */ - // syntactic sugar - public CommunicationRequestMessagePartComponent addMessagePart() { //3 - CommunicationRequestMessagePartComponent t = new CommunicationRequestMessagePartComponent(); - if (this.messagePart == null) - this.messagePart = new ArrayList(); - this.messagePart.add(t); - return t; - } - - /** - * @return {@link #medium} (The communication medium, e.g., email, fax.) - */ - public List getMedium() { - if (this.medium == null) - this.medium = new ArrayList(); - return this.medium; - } - - public boolean hasMedium() { - if (this.medium == null) - return false; - for (CodeableConcept item : this.medium) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #medium} (The communication medium, e.g., email, fax.) - */ - // syntactic sugar - public CodeableConcept addMedium() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.medium == null) - this.medium = new ArrayList(); - this.medium.add(t); - return t; - } - - /** - * @return {@link #requester} (The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application.) - */ - public Reference getRequester() { - if (this.requester == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CommunicationRequest.requester"); - else if (Configuration.doAutoCreate()) - this.requester = new Reference(); - return this.requester; - } - - public boolean hasRequester() { - return this.requester != null && !this.requester.isEmpty(); - } - - /** - * @param value {@link #requester} (The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application.) - */ - public CommunicationRequest setRequester(Reference value) { - this.requester = value; - return this; - } - - /** - * @return {@link #requester} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application.) - */ - public Resource getRequesterTarget() { - return this.requesterTarget; - } - - /** - * @param value {@link #requester} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application.) - */ - public CommunicationRequest setRequesterTarget(Resource value) { - this.requesterTarget = value; - return this; - } - - /** - * @return {@link #status} (The status of the proposal or order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CommunicationRequest.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of the proposal or order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public CommunicationRequest setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of the proposal or order. - */ - public CommunicationRequestStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of the proposal or order. - */ - public CommunicationRequest setStatus(CommunicationRequestStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(CommunicationRequestStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #mode} (Whether the communication is proposed, ordered, or planned.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public Enumeration getModeElement() { - if (this.mode == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CommunicationRequest.mode"); - else if (Configuration.doAutoCreate()) - this.mode = new Enumeration(); - return this.mode; - } - - public boolean hasModeElement() { - return this.mode != null && !this.mode.isEmpty(); - } - - public boolean hasMode() { - return this.mode != null && !this.mode.isEmpty(); - } - - /** - * @param value {@link #mode} (Whether the communication is proposed, ordered, or planned.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public CommunicationRequest setModeElement(Enumeration value) { - this.mode = value; - return this; - } - - /** - * @return Whether the communication is proposed, ordered, or planned. - */ - public CommunicationRequestMode getMode() { - return this.mode == null ? null : this.mode.getValue(); - } - - /** - * @param value Whether the communication is proposed, ordered, or planned. - */ - public CommunicationRequest setMode(CommunicationRequestMode value) { - if (value == null) - this.mode = null; - else { - if (this.mode == null) - this.mode = new Enumeration(CommunicationRequestMode.ENUM_FACTORY); - this.mode.setValue(value); - } - return this; - } - - /** - * @return {@link #encounter} (The encounter within which the communication request was created.) - */ - public Reference getEncounter() { - if (this.encounter == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CommunicationRequest.encounter"); - else if (Configuration.doAutoCreate()) - this.encounter = new Reference(); - return this.encounter; - } - - public boolean hasEncounter() { - return this.encounter != null && !this.encounter.isEmpty(); - } - - /** - * @param value {@link #encounter} (The encounter within which the communication request was created.) - */ - public CommunicationRequest setEncounter(Reference value) { - this.encounter = value; - return this; - } - - /** - * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The encounter within which the communication request was created.) - */ - public Encounter getEncounterTarget() { - if (this.encounterTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CommunicationRequest.encounter"); - else if (Configuration.doAutoCreate()) - this.encounterTarget = new Encounter(); - return this.encounterTarget; - } - - /** - * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The encounter within which the communication request was created.) - */ - public CommunicationRequest setEncounterTarget(Encounter value) { - this.encounterTarget = value; - return this; - } - - /** - * @return {@link #scheduledTime} (The time when this communication is to occur.). This is the underlying object with id, value and extensions. The accessor "getScheduledTime" gives direct access to the value - */ - public DateTimeType getScheduledTimeElement() { - if (this.scheduledTime == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CommunicationRequest.scheduledTime"); - else if (Configuration.doAutoCreate()) - this.scheduledTime = new DateTimeType(); - return this.scheduledTime; - } - - public boolean hasScheduledTimeElement() { - return this.scheduledTime != null && !this.scheduledTime.isEmpty(); - } - - public boolean hasScheduledTime() { - return this.scheduledTime != null && !this.scheduledTime.isEmpty(); - } - - /** - * @param value {@link #scheduledTime} (The time when this communication is to occur.). This is the underlying object with id, value and extensions. The accessor "getScheduledTime" gives direct access to the value - */ - public CommunicationRequest setScheduledTimeElement(DateTimeType value) { - this.scheduledTime = value; - return this; - } - - /** - * @return The time when this communication is to occur. - */ - public Date getScheduledTime() { - return this.scheduledTime == null ? null : this.scheduledTime.getValue(); - } - - /** - * @param value The time when this communication is to occur. - */ - public CommunicationRequest setScheduledTime(Date value) { - if (value == null) - this.scheduledTime = null; - else { - if (this.scheduledTime == null) - this.scheduledTime = new DateTimeType(); - this.scheduledTime.setValue(value); - } - return this; - } - - /** - * @return {@link #indication} (The reason or justification for the communication request.) - */ - public List getIndication() { - if (this.indication == null) - this.indication = new ArrayList(); - return this.indication; - } - - public boolean hasIndication() { - if (this.indication == null) - return false; - for (CodeableConcept item : this.indication) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #indication} (The reason or justification for the communication request.) - */ - // syntactic sugar - public CodeableConcept addIndication() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.indication == null) - this.indication = new ArrayList(); - this.indication.add(t); - return t; - } - - /** - * @return {@link #orderedOn} (The time when the request was made.). This is the underlying object with id, value and extensions. The accessor "getOrderedOn" gives direct access to the value - */ - public DateTimeType getOrderedOnElement() { - if (this.orderedOn == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CommunicationRequest.orderedOn"); - else if (Configuration.doAutoCreate()) - this.orderedOn = new DateTimeType(); - return this.orderedOn; - } - - public boolean hasOrderedOnElement() { - return this.orderedOn != null && !this.orderedOn.isEmpty(); - } - - public boolean hasOrderedOn() { - return this.orderedOn != null && !this.orderedOn.isEmpty(); - } - - /** - * @param value {@link #orderedOn} (The time when the request was made.). This is the underlying object with id, value and extensions. The accessor "getOrderedOn" gives direct access to the value - */ - public CommunicationRequest setOrderedOnElement(DateTimeType value) { - this.orderedOn = value; - return this; - } - - /** - * @return The time when the request was made. - */ - public Date getOrderedOn() { - return this.orderedOn == null ? null : this.orderedOn.getValue(); - } - - /** - * @param value The time when the request was made. - */ - public CommunicationRequest setOrderedOn(Date value) { - if (value == null) - this.orderedOn = null; - else { - if (this.orderedOn == null) - this.orderedOn = new DateTimeType(); - this.orderedOn.setValue(value); - } - return this; - } - - /** - * @return {@link #subject} (The patient who is the focus of this communication request.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CommunicationRequest.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (The patient who is the focus of this communication request.) - */ - public CommunicationRequest setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient who is the focus of this communication request.) - */ - public Patient getSubjectTarget() { - if (this.subjectTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CommunicationRequest.subject"); - else if (Configuration.doAutoCreate()) - this.subjectTarget = new Patient(); - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient who is the focus of this communication request.) - */ - public CommunicationRequest setSubjectTarget(Patient value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #priority} (Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.) - */ - public CodeableConcept getPriority() { - if (this.priority == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CommunicationRequest.priority"); - else if (Configuration.doAutoCreate()) - this.priority = new CodeableConcept(); - return this.priority; - } - - public boolean hasPriority() { - return this.priority != null && !this.priority.isEmpty(); - } - - /** - * @param value {@link #priority} (Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.) - */ - public CommunicationRequest setPriority(CodeableConcept value) { - this.priority = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "A unique ID of this request for reference purposes. It must be provided if user wants it returned as part of any output, otherwise it will be auto-generated, if needed, by CDS system. Does not need to be the actual ID of the source system.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("category", "CodeableConcept", "The type of message such as alert, notification, reminder, instruction, etc.", 0, java.lang.Integer.MAX_VALUE, category)); - childrenList.add(new Property("sender", "Reference(Patient|Practitioner|Device|RelatedPerson|Organization)", "The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.", 0, java.lang.Integer.MAX_VALUE, sender)); - childrenList.add(new Property("recipient", "Reference(Patient|Device|RelatedPerson|Practitioner)", "The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication.", 0, java.lang.Integer.MAX_VALUE, recipient)); - childrenList.add(new Property("messagePart", "", "Text, attachment(s), or resource(s) to be communicated to the recipient.", 0, java.lang.Integer.MAX_VALUE, messagePart)); - childrenList.add(new Property("medium", "CodeableConcept", "The communication medium, e.g., email, fax.", 0, java.lang.Integer.MAX_VALUE, medium)); - childrenList.add(new Property("requester", "Reference(Practitioner|Patient|RelatedPerson)", "The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application.", 0, java.lang.Integer.MAX_VALUE, requester)); - childrenList.add(new Property("status", "code", "The status of the proposal or order.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("mode", "code", "Whether the communication is proposed, ordered, or planned.", 0, java.lang.Integer.MAX_VALUE, mode)); - childrenList.add(new Property("encounter", "Reference(Encounter)", "The encounter within which the communication request was created.", 0, java.lang.Integer.MAX_VALUE, encounter)); - childrenList.add(new Property("scheduledTime", "dateTime", "The time when this communication is to occur.", 0, java.lang.Integer.MAX_VALUE, scheduledTime)); - childrenList.add(new Property("indication", "CodeableConcept", "The reason or justification for the communication request.", 0, java.lang.Integer.MAX_VALUE, indication)); - childrenList.add(new Property("orderedOn", "dateTime", "The time when the request was made.", 0, java.lang.Integer.MAX_VALUE, orderedOn)); - childrenList.add(new Property("subject", "Reference(Patient)", "The patient who is the focus of this communication request.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("priority", "CodeableConcept", "Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.", 0, java.lang.Integer.MAX_VALUE, priority)); - } - - public CommunicationRequest copy() { - CommunicationRequest dst = new CommunicationRequest(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.category = category == null ? null : category.copy(); - dst.sender = sender == null ? null : sender.copy(); - if (recipient != null) { - dst.recipient = new ArrayList(); - for (Reference i : recipient) - dst.recipient.add(i.copy()); - }; - if (messagePart != null) { - dst.messagePart = new ArrayList(); - for (CommunicationRequestMessagePartComponent i : messagePart) - dst.messagePart.add(i.copy()); - }; - if (medium != null) { - dst.medium = new ArrayList(); - for (CodeableConcept i : medium) - dst.medium.add(i.copy()); - }; - dst.requester = requester == null ? null : requester.copy(); - dst.status = status == null ? null : status.copy(); - dst.mode = mode == null ? null : mode.copy(); - dst.encounter = encounter == null ? null : encounter.copy(); - dst.scheduledTime = scheduledTime == null ? null : scheduledTime.copy(); - if (indication != null) { - dst.indication = new ArrayList(); - for (CodeableConcept i : indication) - dst.indication.add(i.copy()); - }; - dst.orderedOn = orderedOn == null ? null : orderedOn.copy(); - dst.subject = subject == null ? null : subject.copy(); - dst.priority = priority == null ? null : priority.copy(); - return dst; - } - - protected CommunicationRequest typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (category == null || category.isEmpty()) - && (sender == null || sender.isEmpty()) && (recipient == null || recipient.isEmpty()) && (messagePart == null || messagePart.isEmpty()) - && (medium == null || medium.isEmpty()) && (requester == null || requester.isEmpty()) && (status == null || status.isEmpty()) - && (mode == null || mode.isEmpty()) && (encounter == null || encounter.isEmpty()) && (scheduledTime == null || scheduledTime.isEmpty()) - && (indication == null || indication.isEmpty()) && (orderedOn == null || orderedOn.isEmpty()) - && (subject == null || subject.isEmpty()) && (priority == null || priority.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.CommunicationRequest; - } - - @SearchParamDefinition(name="requester", path="CommunicationRequest.requester", description="Requester of communication", type="reference" ) - public static final String SP_REQUESTER = "requester"; - @SearchParamDefinition(name="status", path="CommunicationRequest.status", description="requested | received | accepted | in progress | review | completed | suspended | rejected | failed", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="subject", path="CommunicationRequest.subject", description="Focus of message", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="encounter", path="CommunicationRequest.encounter", description="Encounter leading to message", type="reference" ) - public static final String SP_ENCOUNTER = "encounter"; - @SearchParamDefinition(name="recipient", path="CommunicationRequest.recipient", description="Message recipient", type="reference" ) - public static final String SP_RECIPIENT = "recipient"; - @SearchParamDefinition(name="medium", path="CommunicationRequest.medium", description="Communication medium", type="token" ) - public static final String SP_MEDIUM = "medium"; - @SearchParamDefinition(name="mode", path="CommunicationRequest.mode", description="planned | proposed | ordered", type="token" ) - public static final String SP_MODE = "mode"; - @SearchParamDefinition(name="sender", path="CommunicationRequest.sender", description="Message sender", type="reference" ) - public static final String SP_SENDER = "sender"; - @SearchParamDefinition(name="category", path="CommunicationRequest.category", description="Message category", type="token" ) - public static final String SP_CATEGORY = "category"; - @SearchParamDefinition(name="time", path="CommunicationRequest.scheduledTime", description="When scheduled", type="date" ) - public static final String SP_TIME = "time"; - @SearchParamDefinition(name="patient", path="CommunicationRequest.subject", description="Focus of message", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="priority", path="CommunicationRequest.priority", description="Message urgency", type="token" ) - public static final String SP_PRIORITY = "priority"; - @SearchParamDefinition(name="ordered", path="CommunicationRequest.orderedOn", description="When ordered or proposed", type="date" ) - public static final String SP_ORDERED = "ordered"; - @SearchParamDefinition(name="identifier", path="CommunicationRequest.identifier", description="Unique identifier", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A request to convey information. E.g., the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition. + */ +@ResourceDef(name="CommunicationRequest", profile="http://hl7.org/fhir/Profile/CommunicationRequest") +public class CommunicationRequest extends DomainResource { + + public enum CommunicationRequestStatus { + /** + * The request has been proposed. + */ + PROPOSED, + /** + * The request has been planned. + */ + PLANNED, + /** + * The request has been placed. + */ + REQUESTED, + /** + * The receiving system has received the request but not yet decided whether it will be performed. + */ + RECEIVED, + /** + * The receiving system has accepted the order, but work has not yet commenced. + */ + ACCEPTED, + /** + * The work to fulfill the order is happening. + */ + INPROGRESS, + /** + * The work has been complete, the report(s) released, and no further work is planned. + */ + COMPLETED, + /** + * The request has been held by originating system/user request. + */ + SUSPENDED, + /** + * The receiving system has declined to fulfill the request. + */ + REJECTED, + /** + * The communication was attempted, but due to some procedural error, it could not be completed. + */ + FAILED, + /** + * added to help the parsers + */ + NULL; + public static CommunicationRequestStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("proposed".equals(codeString)) + return PROPOSED; + if ("planned".equals(codeString)) + return PLANNED; + if ("requested".equals(codeString)) + return REQUESTED; + if ("received".equals(codeString)) + return RECEIVED; + if ("accepted".equals(codeString)) + return ACCEPTED; + if ("in-progress".equals(codeString)) + return INPROGRESS; + if ("completed".equals(codeString)) + return COMPLETED; + if ("suspended".equals(codeString)) + return SUSPENDED; + if ("rejected".equals(codeString)) + return REJECTED; + if ("failed".equals(codeString)) + return FAILED; + throw new Exception("Unknown CommunicationRequestStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PROPOSED: return "proposed"; + case PLANNED: return "planned"; + case REQUESTED: return "requested"; + case RECEIVED: return "received"; + case ACCEPTED: return "accepted"; + case INPROGRESS: return "in-progress"; + case COMPLETED: return "completed"; + case SUSPENDED: return "suspended"; + case REJECTED: return "rejected"; + case FAILED: return "failed"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PROPOSED: return ""; + case PLANNED: return ""; + case REQUESTED: return ""; + case RECEIVED: return ""; + case ACCEPTED: return ""; + case INPROGRESS: return ""; + case COMPLETED: return ""; + case SUSPENDED: return ""; + case REJECTED: return ""; + case FAILED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PROPOSED: return "The request has been proposed."; + case PLANNED: return "The request has been planned."; + case REQUESTED: return "The request has been placed."; + case RECEIVED: return "The receiving system has received the request but not yet decided whether it will be performed."; + case ACCEPTED: return "The receiving system has accepted the order, but work has not yet commenced."; + case INPROGRESS: return "The work to fulfill the order is happening."; + case COMPLETED: return "The work has been complete, the report(s) released, and no further work is planned."; + case SUSPENDED: return "The request has been held by originating system/user request."; + case REJECTED: return "The receiving system has declined to fulfill the request."; + case FAILED: return "The communication was attempted, but due to some procedural error, it could not be completed."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PROPOSED: return "proposed"; + case PLANNED: return "planned"; + case REQUESTED: return "requested"; + case RECEIVED: return "received"; + case ACCEPTED: return "accepted"; + case INPROGRESS: return "in-progress"; + case COMPLETED: return "completed"; + case SUSPENDED: return "suspended"; + case REJECTED: return "rejected"; + case FAILED: return "failed"; + default: return "?"; + } + } + } + + public static class CommunicationRequestStatusEnumFactory implements EnumFactory { + public CommunicationRequestStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("proposed".equals(codeString)) + return CommunicationRequestStatus.PROPOSED; + if ("planned".equals(codeString)) + return CommunicationRequestStatus.PLANNED; + if ("requested".equals(codeString)) + return CommunicationRequestStatus.REQUESTED; + if ("received".equals(codeString)) + return CommunicationRequestStatus.RECEIVED; + if ("accepted".equals(codeString)) + return CommunicationRequestStatus.ACCEPTED; + if ("in-progress".equals(codeString)) + return CommunicationRequestStatus.INPROGRESS; + if ("completed".equals(codeString)) + return CommunicationRequestStatus.COMPLETED; + if ("suspended".equals(codeString)) + return CommunicationRequestStatus.SUSPENDED; + if ("rejected".equals(codeString)) + return CommunicationRequestStatus.REJECTED; + if ("failed".equals(codeString)) + return CommunicationRequestStatus.FAILED; + throw new IllegalArgumentException("Unknown CommunicationRequestStatus code '"+codeString+"'"); + } + public String toCode(CommunicationRequestStatus code) { + if (code == CommunicationRequestStatus.PROPOSED) + return "proposed"; + if (code == CommunicationRequestStatus.PLANNED) + return "planned"; + if (code == CommunicationRequestStatus.REQUESTED) + return "requested"; + if (code == CommunicationRequestStatus.RECEIVED) + return "received"; + if (code == CommunicationRequestStatus.ACCEPTED) + return "accepted"; + if (code == CommunicationRequestStatus.INPROGRESS) + return "in-progress"; + if (code == CommunicationRequestStatus.COMPLETED) + return "completed"; + if (code == CommunicationRequestStatus.SUSPENDED) + return "suspended"; + if (code == CommunicationRequestStatus.REJECTED) + return "rejected"; + if (code == CommunicationRequestStatus.FAILED) + return "failed"; + return "?"; + } + } + + @Block() + public static class CommunicationRequestPayloadComponent extends BackboneElement { + /** + * An individual message part for multi-part messages. + */ + @Child(name="content", type={StringType.class, Attachment.class}, order=1, min=1, max=1) + @Description(shortDefinition="Message part content", formalDefinition="An individual message part for multi-part messages." ) + protected Type content; + + private static final long serialVersionUID = -1763459053L; + + public CommunicationRequestPayloadComponent() { + super(); + } + + public CommunicationRequestPayloadComponent(Type content) { + super(); + this.content = content; + } + + /** + * @return {@link #content} (An individual message part for multi-part messages.) + */ + public Type getContent() { + return this.content; + } + + /** + * @return {@link #content} (An individual message part for multi-part messages.) + */ + public StringType getContentStringType() throws Exception { + if (!(this.content instanceof StringType)) + throw new Exception("Type mismatch: the type StringType was expected, but "+this.content.getClass().getName()+" was encountered"); + return (StringType) this.content; + } + + /** + * @return {@link #content} (An individual message part for multi-part messages.) + */ + public Attachment getContentAttachment() throws Exception { + if (!(this.content instanceof Attachment)) + throw new Exception("Type mismatch: the type Attachment was expected, but "+this.content.getClass().getName()+" was encountered"); + return (Attachment) this.content; + } + + /** + * @return {@link #content} (An individual message part for multi-part messages.) + */ + public Reference getContentReference() throws Exception { + if (!(this.content instanceof Reference)) + throw new Exception("Type mismatch: the type Reference was expected, but "+this.content.getClass().getName()+" was encountered"); + return (Reference) this.content; + } + + public boolean hasContent() { + return this.content != null && !this.content.isEmpty(); + } + + /** + * @param value {@link #content} (An individual message part for multi-part messages.) + */ + public CommunicationRequestPayloadComponent setContent(Type value) { + this.content = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("content[x]", "string|Attachment|Reference(Any)", "An individual message part for multi-part messages.", 0, java.lang.Integer.MAX_VALUE, content)); + } + + public CommunicationRequestPayloadComponent copy() { + CommunicationRequestPayloadComponent dst = new CommunicationRequestPayloadComponent(); + copyValues(dst); + dst.content = content == null ? null : content.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CommunicationRequestPayloadComponent)) + return false; + CommunicationRequestPayloadComponent o = (CommunicationRequestPayloadComponent) other; + return compareDeep(content, o.content, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CommunicationRequestPayloadComponent)) + return false; + CommunicationRequestPayloadComponent o = (CommunicationRequestPayloadComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (content == null || content.isEmpty()); + } + + } + + /** + * A unique ID of this request for reference purposes. It must be provided if user wants it returned as part of any output, otherwise it will be auto-generated, if needed, by CDS system. Does not need to be the actual ID of the source system. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Unique identifier", formalDefinition="A unique ID of this request for reference purposes. It must be provided if user wants it returned as part of any output, otherwise it will be auto-generated, if needed, by CDS system. Does not need to be the actual ID of the source system." ) + protected List identifier; + + /** + * The type of message such as alert, notification, reminder, instruction, etc. + */ + @Child(name="category", type={CodeableConcept.class}, order=0, min=0, max=1) + @Description(shortDefinition="Message category", formalDefinition="The type of message such as alert, notification, reminder, instruction, etc." ) + protected CodeableConcept category; + + /** + * The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication. + */ + @Child(name="sender", type={Patient.class, Practitioner.class, Device.class, RelatedPerson.class, Organization.class}, order=1, min=0, max=1) + @Description(shortDefinition="Message sender", formalDefinition="The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication." ) + protected Reference sender; + + /** + * The actual object that is the target of the reference (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) + */ + protected Resource senderTarget; + + /** + * The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication. + */ + @Child(name="recipient", type={Patient.class, Device.class, RelatedPerson.class, Practitioner.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Message recipient", formalDefinition="The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication." ) + protected List recipient; + /** + * The actual objects that are the target of the reference (The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication.) + */ + protected List recipientTarget; + + + /** + * Text, attachment(s), or resource(s) to be communicated to the recipient. + */ + @Child(name="payload", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Message payload", formalDefinition="Text, attachment(s), or resource(s) to be communicated to the recipient." ) + protected List payload; + + /** + * The communication medium, e.g., email, fax. + */ + @Child(name="medium", type={CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Communication medium", formalDefinition="The communication medium, e.g., email, fax." ) + protected List medium; + + /** + * The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application. + */ + @Child(name="requester", type={Practitioner.class, Patient.class, RelatedPerson.class}, order=5, min=0, max=1) + @Description(shortDefinition="Requester of communication", formalDefinition="The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application." ) + protected Reference requester; + + /** + * The actual object that is the target of the reference (The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application.) + */ + protected Resource requesterTarget; + + /** + * The status of the proposal or order. + */ + @Child(name="status", type={CodeType.class}, order=6, min=0, max=1) + @Description(shortDefinition="proposed | planned | requested | received | accepted | in-progress | completed | suspended | rejected | failed", formalDefinition="The status of the proposal or order." ) + protected Enumeration status; + + /** + * The encounter within which the communication request was created. + */ + @Child(name="encounter", type={Encounter.class}, order=7, min=0, max=1) + @Description(shortDefinition="Encounter leading to message", formalDefinition="The encounter within which the communication request was created." ) + protected Reference encounter; + + /** + * The actual object that is the target of the reference (The encounter within which the communication request was created.) + */ + protected Encounter encounterTarget; + + /** + * The time when this communication is to occur. + */ + @Child(name="scheduledTime", type={DateTimeType.class}, order=8, min=0, max=1) + @Description(shortDefinition="When scheduled", formalDefinition="The time when this communication is to occur." ) + protected DateTimeType scheduledTime; + + /** + * The reason or justification for the communication request. + */ + @Child(name="reason", type={CodeableConcept.class}, order=9, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Indication for message", formalDefinition="The reason or justification for the communication request." ) + protected List reason; + + /** + * The time when the request was made. + */ + @Child(name="orderedOn", type={DateTimeType.class}, order=10, min=0, max=1) + @Description(shortDefinition="When ordered or proposed", formalDefinition="The time when the request was made." ) + protected DateTimeType orderedOn; + + /** + * The patient who is the focus of this communication request. + */ + @Child(name="subject", type={Patient.class}, order=11, min=0, max=1) + @Description(shortDefinition="Focus of message", formalDefinition="The patient who is the focus of this communication request." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (The patient who is the focus of this communication request.) + */ + protected Patient subjectTarget; + + /** + * Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine. + */ + @Child(name="priority", type={CodeableConcept.class}, order=12, min=0, max=1) + @Description(shortDefinition="Message urgency", formalDefinition="Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine." ) + protected CodeableConcept priority; + + private static final long serialVersionUID = 431529355L; + + public CommunicationRequest() { + super(); + } + + /** + * @return {@link #identifier} (A unique ID of this request for reference purposes. It must be provided if user wants it returned as part of any output, otherwise it will be auto-generated, if needed, by CDS system. Does not need to be the actual ID of the source system.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (A unique ID of this request for reference purposes. It must be provided if user wants it returned as part of any output, otherwise it will be auto-generated, if needed, by CDS system. Does not need to be the actual ID of the source system.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #category} (The type of message such as alert, notification, reminder, instruction, etc.) + */ + public CodeableConcept getCategory() { + if (this.category == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CommunicationRequest.category"); + else if (Configuration.doAutoCreate()) + this.category = new CodeableConcept(); // cc + return this.category; + } + + public boolean hasCategory() { + return this.category != null && !this.category.isEmpty(); + } + + /** + * @param value {@link #category} (The type of message such as alert, notification, reminder, instruction, etc.) + */ + public CommunicationRequest setCategory(CodeableConcept value) { + this.category = value; + return this; + } + + /** + * @return {@link #sender} (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) + */ + public Reference getSender() { + if (this.sender == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CommunicationRequest.sender"); + else if (Configuration.doAutoCreate()) + this.sender = new Reference(); // cc + return this.sender; + } + + public boolean hasSender() { + return this.sender != null && !this.sender.isEmpty(); + } + + /** + * @param value {@link #sender} (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) + */ + public CommunicationRequest setSender(Reference value) { + this.sender = value; + return this; + } + + /** + * @return {@link #sender} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) + */ + public Resource getSenderTarget() { + return this.senderTarget; + } + + /** + * @param value {@link #sender} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.) + */ + public CommunicationRequest setSenderTarget(Resource value) { + this.senderTarget = value; + return this; + } + + /** + * @return {@link #recipient} (The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication.) + */ + public List getRecipient() { + if (this.recipient == null) + this.recipient = new ArrayList(); + return this.recipient; + } + + public boolean hasRecipient() { + if (this.recipient == null) + return false; + for (Reference item : this.recipient) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #recipient} (The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication.) + */ + // syntactic sugar + public Reference addRecipient() { //3 + Reference t = new Reference(); + if (this.recipient == null) + this.recipient = new ArrayList(); + this.recipient.add(t); + return t; + } + + /** + * @return {@link #recipient} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication.) + */ + public List getRecipientTarget() { + if (this.recipientTarget == null) + this.recipientTarget = new ArrayList(); + return this.recipientTarget; + } + + /** + * @return {@link #payload} (Text, attachment(s), or resource(s) to be communicated to the recipient.) + */ + public List getPayload() { + if (this.payload == null) + this.payload = new ArrayList(); + return this.payload; + } + + public boolean hasPayload() { + if (this.payload == null) + return false; + for (CommunicationRequestPayloadComponent item : this.payload) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #payload} (Text, attachment(s), or resource(s) to be communicated to the recipient.) + */ + // syntactic sugar + public CommunicationRequestPayloadComponent addPayload() { //3 + CommunicationRequestPayloadComponent t = new CommunicationRequestPayloadComponent(); + if (this.payload == null) + this.payload = new ArrayList(); + this.payload.add(t); + return t; + } + + /** + * @return {@link #medium} (The communication medium, e.g., email, fax.) + */ + public List getMedium() { + if (this.medium == null) + this.medium = new ArrayList(); + return this.medium; + } + + public boolean hasMedium() { + if (this.medium == null) + return false; + for (CodeableConcept item : this.medium) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #medium} (The communication medium, e.g., email, fax.) + */ + // syntactic sugar + public CodeableConcept addMedium() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.medium == null) + this.medium = new ArrayList(); + this.medium.add(t); + return t; + } + + /** + * @return {@link #requester} (The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application.) + */ + public Reference getRequester() { + if (this.requester == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CommunicationRequest.requester"); + else if (Configuration.doAutoCreate()) + this.requester = new Reference(); // cc + return this.requester; + } + + public boolean hasRequester() { + return this.requester != null && !this.requester.isEmpty(); + } + + /** + * @param value {@link #requester} (The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application.) + */ + public CommunicationRequest setRequester(Reference value) { + this.requester = value; + return this; + } + + /** + * @return {@link #requester} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application.) + */ + public Resource getRequesterTarget() { + return this.requesterTarget; + } + + /** + * @param value {@link #requester} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application.) + */ + public CommunicationRequest setRequesterTarget(Resource value) { + this.requesterTarget = value; + return this; + } + + /** + * @return {@link #status} (The status of the proposal or order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CommunicationRequest.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new CommunicationRequestStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of the proposal or order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public CommunicationRequest setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of the proposal or order. + */ + public CommunicationRequestStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of the proposal or order. + */ + public CommunicationRequest setStatus(CommunicationRequestStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new CommunicationRequestStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #encounter} (The encounter within which the communication request was created.) + */ + public Reference getEncounter() { + if (this.encounter == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CommunicationRequest.encounter"); + else if (Configuration.doAutoCreate()) + this.encounter = new Reference(); // cc + return this.encounter; + } + + public boolean hasEncounter() { + return this.encounter != null && !this.encounter.isEmpty(); + } + + /** + * @param value {@link #encounter} (The encounter within which the communication request was created.) + */ + public CommunicationRequest setEncounter(Reference value) { + this.encounter = value; + return this; + } + + /** + * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The encounter within which the communication request was created.) + */ + public Encounter getEncounterTarget() { + if (this.encounterTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CommunicationRequest.encounter"); + else if (Configuration.doAutoCreate()) + this.encounterTarget = new Encounter(); // aa + return this.encounterTarget; + } + + /** + * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The encounter within which the communication request was created.) + */ + public CommunicationRequest setEncounterTarget(Encounter value) { + this.encounterTarget = value; + return this; + } + + /** + * @return {@link #scheduledTime} (The time when this communication is to occur.). This is the underlying object with id, value and extensions. The accessor "getScheduledTime" gives direct access to the value + */ + public DateTimeType getScheduledTimeElement() { + if (this.scheduledTime == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CommunicationRequest.scheduledTime"); + else if (Configuration.doAutoCreate()) + this.scheduledTime = new DateTimeType(); // bb + return this.scheduledTime; + } + + public boolean hasScheduledTimeElement() { + return this.scheduledTime != null && !this.scheduledTime.isEmpty(); + } + + public boolean hasScheduledTime() { + return this.scheduledTime != null && !this.scheduledTime.isEmpty(); + } + + /** + * @param value {@link #scheduledTime} (The time when this communication is to occur.). This is the underlying object with id, value and extensions. The accessor "getScheduledTime" gives direct access to the value + */ + public CommunicationRequest setScheduledTimeElement(DateTimeType value) { + this.scheduledTime = value; + return this; + } + + /** + * @return The time when this communication is to occur. + */ + public Date getScheduledTime() { + return this.scheduledTime == null ? null : this.scheduledTime.getValue(); + } + + /** + * @param value The time when this communication is to occur. + */ + public CommunicationRequest setScheduledTime(Date value) { + if (value == null) + this.scheduledTime = null; + else { + if (this.scheduledTime == null) + this.scheduledTime = new DateTimeType(); + this.scheduledTime.setValue(value); + } + return this; + } + + /** + * @return {@link #reason} (The reason or justification for the communication request.) + */ + public List getReason() { + if (this.reason == null) + this.reason = new ArrayList(); + return this.reason; + } + + public boolean hasReason() { + if (this.reason == null) + return false; + for (CodeableConcept item : this.reason) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #reason} (The reason or justification for the communication request.) + */ + // syntactic sugar + public CodeableConcept addReason() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.reason == null) + this.reason = new ArrayList(); + this.reason.add(t); + return t; + } + + /** + * @return {@link #orderedOn} (The time when the request was made.). This is the underlying object with id, value and extensions. The accessor "getOrderedOn" gives direct access to the value + */ + public DateTimeType getOrderedOnElement() { + if (this.orderedOn == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CommunicationRequest.orderedOn"); + else if (Configuration.doAutoCreate()) + this.orderedOn = new DateTimeType(); // bb + return this.orderedOn; + } + + public boolean hasOrderedOnElement() { + return this.orderedOn != null && !this.orderedOn.isEmpty(); + } + + public boolean hasOrderedOn() { + return this.orderedOn != null && !this.orderedOn.isEmpty(); + } + + /** + * @param value {@link #orderedOn} (The time when the request was made.). This is the underlying object with id, value and extensions. The accessor "getOrderedOn" gives direct access to the value + */ + public CommunicationRequest setOrderedOnElement(DateTimeType value) { + this.orderedOn = value; + return this; + } + + /** + * @return The time when the request was made. + */ + public Date getOrderedOn() { + return this.orderedOn == null ? null : this.orderedOn.getValue(); + } + + /** + * @param value The time when the request was made. + */ + public CommunicationRequest setOrderedOn(Date value) { + if (value == null) + this.orderedOn = null; + else { + if (this.orderedOn == null) + this.orderedOn = new DateTimeType(); + this.orderedOn.setValue(value); + } + return this; + } + + /** + * @return {@link #subject} (The patient who is the focus of this communication request.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CommunicationRequest.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (The patient who is the focus of this communication request.) + */ + public CommunicationRequest setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient who is the focus of this communication request.) + */ + public Patient getSubjectTarget() { + if (this.subjectTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CommunicationRequest.subject"); + else if (Configuration.doAutoCreate()) + this.subjectTarget = new Patient(); // aa + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient who is the focus of this communication request.) + */ + public CommunicationRequest setSubjectTarget(Patient value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #priority} (Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.) + */ + public CodeableConcept getPriority() { + if (this.priority == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CommunicationRequest.priority"); + else if (Configuration.doAutoCreate()) + this.priority = new CodeableConcept(); // cc + return this.priority; + } + + public boolean hasPriority() { + return this.priority != null && !this.priority.isEmpty(); + } + + /** + * @param value {@link #priority} (Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.) + */ + public CommunicationRequest setPriority(CodeableConcept value) { + this.priority = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "A unique ID of this request for reference purposes. It must be provided if user wants it returned as part of any output, otherwise it will be auto-generated, if needed, by CDS system. Does not need to be the actual ID of the source system.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("category", "CodeableConcept", "The type of message such as alert, notification, reminder, instruction, etc.", 0, java.lang.Integer.MAX_VALUE, category)); + childrenList.add(new Property("sender", "Reference(Patient|Practitioner|Device|RelatedPerson|Organization)", "The entity (e.g., person, organization, clinical information system, or device) which is the source of the communication.", 0, java.lang.Integer.MAX_VALUE, sender)); + childrenList.add(new Property("recipient", "Reference(Patient|Device|RelatedPerson|Practitioner)", "The entity (e.g., person, organization, clinical information system, or device) which is the intended target of the communication.", 0, java.lang.Integer.MAX_VALUE, recipient)); + childrenList.add(new Property("payload", "", "Text, attachment(s), or resource(s) to be communicated to the recipient.", 0, java.lang.Integer.MAX_VALUE, payload)); + childrenList.add(new Property("medium", "CodeableConcept", "The communication medium, e.g., email, fax.", 0, java.lang.Integer.MAX_VALUE, medium)); + childrenList.add(new Property("requester", "Reference(Practitioner|Patient|RelatedPerson)", "The responsible person who authorizes this order, e.g., physician. This may be different than the author of the order statement, e.g., clerk, who may have entered the statement into the order entry application.", 0, java.lang.Integer.MAX_VALUE, requester)); + childrenList.add(new Property("status", "code", "The status of the proposal or order.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("encounter", "Reference(Encounter)", "The encounter within which the communication request was created.", 0, java.lang.Integer.MAX_VALUE, encounter)); + childrenList.add(new Property("scheduledTime", "dateTime", "The time when this communication is to occur.", 0, java.lang.Integer.MAX_VALUE, scheduledTime)); + childrenList.add(new Property("reason", "CodeableConcept", "The reason or justification for the communication request.", 0, java.lang.Integer.MAX_VALUE, reason)); + childrenList.add(new Property("orderedOn", "dateTime", "The time when the request was made.", 0, java.lang.Integer.MAX_VALUE, orderedOn)); + childrenList.add(new Property("subject", "Reference(Patient)", "The patient who is the focus of this communication request.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("priority", "CodeableConcept", "Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.", 0, java.lang.Integer.MAX_VALUE, priority)); + } + + public CommunicationRequest copy() { + CommunicationRequest dst = new CommunicationRequest(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.category = category == null ? null : category.copy(); + dst.sender = sender == null ? null : sender.copy(); + if (recipient != null) { + dst.recipient = new ArrayList(); + for (Reference i : recipient) + dst.recipient.add(i.copy()); + }; + if (payload != null) { + dst.payload = new ArrayList(); + for (CommunicationRequestPayloadComponent i : payload) + dst.payload.add(i.copy()); + }; + if (medium != null) { + dst.medium = new ArrayList(); + for (CodeableConcept i : medium) + dst.medium.add(i.copy()); + }; + dst.requester = requester == null ? null : requester.copy(); + dst.status = status == null ? null : status.copy(); + dst.encounter = encounter == null ? null : encounter.copy(); + dst.scheduledTime = scheduledTime == null ? null : scheduledTime.copy(); + if (reason != null) { + dst.reason = new ArrayList(); + for (CodeableConcept i : reason) + dst.reason.add(i.copy()); + }; + dst.orderedOn = orderedOn == null ? null : orderedOn.copy(); + dst.subject = subject == null ? null : subject.copy(); + dst.priority = priority == null ? null : priority.copy(); + return dst; + } + + protected CommunicationRequest typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CommunicationRequest)) + return false; + CommunicationRequest o = (CommunicationRequest) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(category, o.category, true) && compareDeep(sender, o.sender, true) + && compareDeep(recipient, o.recipient, true) && compareDeep(payload, o.payload, true) && compareDeep(medium, o.medium, true) + && compareDeep(requester, o.requester, true) && compareDeep(status, o.status, true) && compareDeep(encounter, o.encounter, true) + && compareDeep(scheduledTime, o.scheduledTime, true) && compareDeep(reason, o.reason, true) && compareDeep(orderedOn, o.orderedOn, true) + && compareDeep(subject, o.subject, true) && compareDeep(priority, o.priority, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CommunicationRequest)) + return false; + CommunicationRequest o = (CommunicationRequest) other; + return compareValues(status, o.status, true) && compareValues(scheduledTime, o.scheduledTime, true) + && compareValues(orderedOn, o.orderedOn, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (category == null || category.isEmpty()) + && (sender == null || sender.isEmpty()) && (recipient == null || recipient.isEmpty()) && (payload == null || payload.isEmpty()) + && (medium == null || medium.isEmpty()) && (requester == null || requester.isEmpty()) && (status == null || status.isEmpty()) + && (encounter == null || encounter.isEmpty()) && (scheduledTime == null || scheduledTime.isEmpty()) + && (reason == null || reason.isEmpty()) && (orderedOn == null || orderedOn.isEmpty()) && (subject == null || subject.isEmpty()) + && (priority == null || priority.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.CommunicationRequest; + } + + @SearchParamDefinition(name="sender", path="CommunicationRequest.sender", description="Message sender", type="reference" ) + public static final String SP_SENDER = "sender"; + @SearchParamDefinition(name="time", path="CommunicationRequest.scheduledTime", description="When scheduled", type="date" ) + public static final String SP_TIME = "time"; + @SearchParamDefinition(name="requester", path="CommunicationRequest.requester", description="Requester of communication", type="reference" ) + public static final String SP_REQUESTER = "requester"; + @SearchParamDefinition(name="category", path="CommunicationRequest.category", description="Message category", type="token" ) + public static final String SP_CATEGORY = "category"; + @SearchParamDefinition(name="patient", path="CommunicationRequest.subject", description="Focus of message", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="status", path="CommunicationRequest.status", description="proposed | planned | requested | received | accepted | in-progress | completed | suspended | rejected | failed", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="priority", path="CommunicationRequest.priority", description="Message urgency", type="token" ) + public static final String SP_PRIORITY = "priority"; + @SearchParamDefinition(name="subject", path="CommunicationRequest.subject", description="Focus of message", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="ordered", path="CommunicationRequest.orderedOn", description="When ordered or proposed", type="date" ) + public static final String SP_ORDERED = "ordered"; + @SearchParamDefinition(name="encounter", path="CommunicationRequest.encounter", description="Encounter leading to message", type="reference" ) + public static final String SP_ENCOUNTER = "encounter"; + @SearchParamDefinition(name="identifier", path="CommunicationRequest.identifier", description="Unique identifier", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + @SearchParamDefinition(name="medium", path="CommunicationRequest.medium", description="Communication medium", type="token" ) + public static final String SP_MEDIUM = "medium"; + @SearchParamDefinition(name="recipient", path="CommunicationRequest.recipient", description="Message recipient", type="reference" ) + public static final String SP_RECIPIENT = "recipient"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Comparison$MatchProfile.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Comparison$MatchProfile.class new file mode 100644 index 0000000000000000000000000000000000000000..c42c1adea3ee03f72b786d8f9d60f2125f3ccfad GIT binary patch literal 446 zcma)2O-sW-5Ph4(#Kvgi=UpjMTX2OQJSbiQf>1v|@xF=MW=pauyQ%-ng9sk{0sbg) z(u?3J49x6%J2USw-#?#U0LD1z!Nq0>4_g6}0J{u+Qz+X%V;D?oGvh^h&ZmVkTxr_~ zol9QTFS6umT`h!Bw$>LkbE&jyt{6t0hfbauyp&ck#1p0E-LlH0c@kMkO!!zYO)jrh z3*tYi)46yR5!T>G2(TAmpJCk1W&c(*dGTQC>1t{858h}kOIo_P)C0uyzd_YO NgdM6Ou`aROV834GZtDO5 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Comparison.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Comparison.class new file mode 100644 index 0000000000000000000000000000000000000000..e528b3d06c3b83fb2a1bd83c4857782efa0dc9f1 GIT binary patch literal 5235 zcmcIoX?Gjt6@Fez_Bi9Q9TG>5lQ^-nIJO*6n*gD)aT8nvCXQp`jRX=pw#W7aX(XgE zP3Q)6qm;d?=?b(>+oT`*MI`MxEuX?U{n|g!zflg9K6hp$jY2XKJ#c)^JM&)M<+;zj z?=t@9fB*V-0Eci{#~{XaJcQ#iOz1d)NgXFKrQu;6O_ZA~&S`jD#9tN#Q-%eZF6!8XB^fLo%ks926&Y4#uw^(e!xJ*3Wyr|j z$dJ{M!;|7AFK;x8K|6tt6@#UQyRXaV4N`B#nq{NcG*r_oQ^w=l^;!;g@RR3 zXd1R1+Z|De^$*M`#7DDBRBE5F9cywevtZ?C%mp#iGU7!n9_ybtZ$4$F(x$VLns)QH zvodrONjATdT1_8LEw9@7l%vsA=dDFGC&d{f$7zJ*_w7ue(?pmIVTppe|63SbE3@1m1M(V~pJTo&i zQa9*2w4;!}9t}&%E`=V=vPwBO8r3IMzE!O?T;SqR(8n%FOjeNH)yQhDklnMNAzo?p zCfk{?3$8*sXy-N8PNzgvGk34yqk6JN9lX_34mTXxwWM0Y)o7DItA?jr)j{Eznq=3J zvj_D5hVXnegz+WIaqVT>%14){UcIOiO@Hc8q~YvnuUvTC_uQ$h?bPhRux4c|KDlt- zT6DcVbpA7mC0Xdx*|q$lb-#C%v{zWXLvR>K;d2@;8h9FCHSjfjUBfpFd=t-Tc-Fvk z_?ALj1+eUx3Y$ZM(mp`xWY+B&&*aiphK0A5dQMxexc|0>?-=+lzNg`N1K-CB27Z7S z4W8R~8h8mWb5Akwiils8XuG4AskE$tFXE_y*YLW5AL2*i>OKQM7N%$&a>cTZPnY=}n>8$@-_d!j_vH^>RjU zaI*P~nYN$iM%{NaozS@$+z_e~EBSA-o?J82-1Vyhg&KK(72F$c5uu}>s8=j^&P=Zn zQAhtkD1PAWh8O`VY3aeJ7&jbsOr3H3?UoFe0+l!Op;CjFCA>M=g|SS|z35%BNS;Oy zGu8zjJ=H+VL^a#xawV!Fl*-5`+NxQY^qj;U@6i@`9rIU=LXxIYnfc*nF6Jx&UGOoL zt!wNcA>-&MH}J<$Lg4hpf@^W@3l*YKV|i3IbzTo?GF!09KnH828EO&+Z)Kig>l#~q z*f=`R3PeU}C&meL!Ah4=wli+EqL!%u*%KWce|&tvXgOv7*5 za!F^S5!K&1;YiGTD%x*dC8%Q}# zJ4+6m6%KpB@9`Xe!FQ~7QoD)rKOeY`*1w_o^rj8(K>tUwh?Z+G6xOkW5lZhHDR1Sx zRb55fmH3FS)~;|Q-W9)wjiNswZ?`GDi%mxwyVubn_Fav%*t`xcehKl|$fb||<$JAR zD*iui+FeQZAPj=vO~&?+$$jYK-ysYz=_KY@*bENvi~n}sVD8|}BZbQ>urRzIdfVO) znV^OvA0Vk==&1S+Vjn=S7GRjlaTd9mtlf)|pxnpEo;1Q%0_=DXo0&|&^BEhDL zU%B+rzhe~+{7xFec7okUkoyTUN$--UAvtNxY1jJ%R7u8fg=1bT+{a%8#W|vo9zOW7 zR_J72ol^33B$)A5PPh6~zn&E=e!8Qi>`P4f0S`kHVr{)gRVcc2wsdrK)GmhUszlw! z>9(k-#~F2kQBU47>b*qeFYh-QT?%-X>1_84xIHM~_9Ax7Q{3%~y904|5j#b^%NOqo z#Jh^<5pl0C?hVAfMeGiBK_7_*rU`C_T`> boolean matches(Enumeration e1, Enumeration e2, MatchProfile profile) { - if (e1 == null || e2 == null) - return false; - return e1.getValue().equals(e2.getValue()); - } - - public static boolean matches(CodeableConcept c1, CodeableConcept c2, MatchProfile profile) throws Exception { - if (profile != null) - throw new Exception("Not Implemented Yet"); - - if (c1.getCoding().isEmpty() && c2.getCoding().isEmpty()) { - return matches(c1.getText(), c2.getText(), null); - } else { - // in the absence of specific guidance, we just require that all codes match - boolean ok = true; - for (Coding c : c1.getCoding()) { - ok = ok && inList(c2.getCoding(), c, null); - } - for (Coding c : c2.getCoding()) { - ok = ok && inList(c1.getCoding(), c, null); - } - return ok; - } - } - - public static void merge(CodeableConcept dst, CodeableConcept src) { - if (dst.getTextElement() == null && src.getTextElement() != null) - dst.setTextElement(src.getTextElement()); - } - - - public static boolean inList(List list, Coding c, MatchProfile profile) throws Exception { - for (Coding item : list) { - if (matches(item, c, profile)) - return true; - } - return false; - } - - public static boolean matches(Coding c1, Coding c2, MatchProfile profile) throws Exception { - if (profile != null) - throw new Exception("Not Implemented Yet"); - - // in the absence of a profile, we ignore version - return matches(c1.getSystem(), c2.getSystem(), null) && matches(c1.getCode(), c2.getCode(), null); - } - - public static boolean matches(Identifier i1, Identifier i2, MatchProfile profile) throws Exception { - if (profile != null) - throw new Exception("Not Implemented Yet"); - - // in the absence of a profile, we ignore version - return matches(i1.getSystem(), i2.getSystem(), null) && matches(i1.getValue(), i2.getValue(), null); - } - - public static void merge(Identifier dst, Identifier src) { - if (dst.getUseElement() == null && src.getUseElement() != null) - dst.setUseElement(src.getUseElement()); - if (dst.getLabelElement() == null && src.getLabelElement() != null) - dst.setLabelElement(src.getLabelElement()); - if (dst.getPeriod() == null && src.getPeriod() != null) - dst.setPeriod(src.getPeriod()); - if (dst.getAssigner() == null && src.getAssigner() != null) - dst.setAssigner(src.getAssigner()); - } - - public static boolean matches(ContactPoint c1, ContactPoint c2, Object profile) throws Exception { - if (profile != null) - throw new Exception("Not Implemented Yet"); - - // in the absence of a profile, we insist on system - return matches(c1.getSystemElement(), c2.getSystemElement(), null) && matches(c1.getValue(), c2.getValue(), null); - } - - public static void merge(ContactPoint dst, ContactPoint src) { - if (dst.getUseElement() == null && src.getUseElement() != null) - dst.setUseElement(src.getUseElement()); - if (dst.getPeriod() == null && src.getPeriod() != null) - dst.setPeriod(src.getPeriod()); - } - -} +package org.hl7.fhir.instance.model; + +import java.util.List; + +import org.hl7.fhir.utilities.Utilities; + +/** + * See http://www.healthintersections.com.au/?p=1941 + * + * @author Grahame + * + */ +public class Comparison { + + public class MatchProfile { + + } + + public static boolean matches(String c1, String c2, MatchProfile profile) { + if (Utilities.noString(c1) || Utilities.noString(c2)) + return false; + c1 = Utilities.normalize(c1); + c2 = Utilities.normalize(c2); + return c1.equals(c2); + } + + public static > boolean matches(Enumeration e1, Enumeration e2, MatchProfile profile) { + if (e1 == null || e2 == null) + return false; + return e1.getValue().equals(e2.getValue()); + } + + public static boolean matches(CodeableConcept c1, CodeableConcept c2, MatchProfile profile) throws Exception { + if (profile != null) + throw new Exception("Not Implemented Yet"); + + if (c1.getCoding().isEmpty() && c2.getCoding().isEmpty()) { + return matches(c1.getText(), c2.getText(), null); + } else { + // in the absence of specific guidance, we just require that all codes match + boolean ok = true; + for (Coding c : c1.getCoding()) { + ok = ok && inList(c2.getCoding(), c, null); + } + for (Coding c : c2.getCoding()) { + ok = ok && inList(c1.getCoding(), c, null); + } + return ok; + } + } + + public static void merge(CodeableConcept dst, CodeableConcept src) { + if (dst.getTextElement() == null && src.getTextElement() != null) + dst.setTextElement(src.getTextElement()); + } + + + public static boolean inList(List list, Coding c, MatchProfile profile) throws Exception { + for (Coding item : list) { + if (matches(item, c, profile)) + return true; + } + return false; + } + + public static boolean matches(Coding c1, Coding c2, MatchProfile profile) throws Exception { + if (profile != null) + throw new Exception("Not Implemented Yet"); + + // in the absence of a profile, we ignore version + return matches(c1.getSystem(), c2.getSystem(), null) && matches(c1.getCode(), c2.getCode(), null); + } + + public static boolean matches(Identifier i1, Identifier i2, MatchProfile profile) throws Exception { + if (profile != null) + throw new Exception("Not Implemented Yet"); + + // in the absence of a profile, we ignore version + return matches(i1.getSystem(), i2.getSystem(), null) && matches(i1.getValue(), i2.getValue(), null); + } + + public static void merge(Identifier dst, Identifier src) { + if (dst.getUseElement() == null && src.getUseElement() != null) + dst.setUseElement(src.getUseElement()); + if (dst.getLabelElement() == null && src.getLabelElement() != null) + dst.setLabelElement(src.getLabelElement()); + if (dst.getPeriod() == null && src.getPeriod() != null) + dst.setPeriod(src.getPeriod()); + if (dst.getAssigner() == null && src.getAssigner() != null) + dst.setAssigner(src.getAssigner()); + } + + public static boolean matches(ContactPoint c1, ContactPoint c2, Object profile) throws Exception { + if (profile != null) + throw new Exception("Not Implemented Yet"); + + // in the absence of a profile, we insist on system + return matches(c1.getSystemElement(), c2.getSystemElement(), null) && matches(c1.getValue(), c2.getValue(), null); + } + + public static void merge(ContactPoint dst, ContactPoint src) { + if (dst.getUseElement() == null && src.getUseElement() != null) + dst.setUseElement(src.getUseElement()); + if (dst.getPeriod() == null && src.getPeriod() != null) + dst.setPeriod(src.getPeriod()); + } + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$1.class new file mode 100644 index 0000000000000000000000000000000000000000..1adff1acfaf73730873530a22a93658eb5450467 GIT binary patch literal 1573 zcmb_cT~E_c7=F&!=r)QBL4Eu zy{;IJWLQ;Kvr4+OX_s|VO4yrQcGYkV+iH%BuIARN489eWA#*maxa;balc&f~PKMx2 z$uum(on>eli7qkt6JC2q+OYI&ZF5z37PVEAMz&KOr43qxhe;KNaM7+gB|T;E{zy~# zqwCtX#?YZyC6iWUtz~q#VwVL>2$&S{5Yr+qpj*Tv#6-;CF+(4pBAc4ECTHzptyD=F zx>;5n$96=_@?lT7nL|uKoKqx3oaYotC?ZnaEO7Ib8x;yel(d#fYnf{;*R_^Ct>va- zr7;FDh^l4jPQuixRh`t1H0sH%uInY2VfciE4D%-(+5DT2{hGd}8jp3hZfj|V z0Uz;+ybry!)-ZYCCls31N0E%K7XmILbJQ#yg^ga4>u2tLm(Cb65554}4u6}32C4kFi7YxkovrqQf-@c#w|K7X};2FGE zj}Tstq93nB&=Em8iWUrr&!CK_C9^V2895nw8Dlam8LeXboQ%CP_Q`0MkrW!wM_@~kkEM=l zLxVkO3C+Fkc)=}NzU4YSzHb(NT`ULOtSLe1cO28}we@1rEJ`?%cD;OZ%s!CJjagpO zawzN=W^$aucCt!QylTBfX(zQFJ3iEx(zO1H1$F7vQDKQZ)YsSF+b@=(!QnJXBtFuU z9!_ZzQfF2NI($*LOTv|-t%+4q8R`u}wKi=z=3r@j)bvj1qc(#V39yE85>BNS zq^&#oq~?2;lkZHdl0#jVWBCUqYNg)d<5u7FASpOP*o&St9gJRrS{{La*Q{(SaQb#^FTZN;tgoQdY1Z z1qILJ1qq1Yf&vc=n_MuxqU-3kf>!KdxfeV)XBLZ$i`d&M_UddiFPMFTk=@DKOK_LePYavRXmC5C4bCxe9O>%GaKWYnjD`yG0PFG<;_a!cFfQV zx?%Yf?Hm{XQ$FcUYZz0H|Cke0t?w1wQL#`%eh|6@{4n})4;Pr zGwVQitha-y_YhC@;9${Wxzq1UmOnP%U&zC2Zf;^DKgr)kULTI z%)eo~4hwa0XAO;>GYy}~Y=7o}Ovw$~N z>zuVIahd{pp-E&7dlM;{UalAvqKwM+|jWLd`IFH47 zA;rao6ra10;=zSfeF;^smvn`Mnlt^J)~=Ve*r36X?C@wQ! zK~W=ZQ;JfoD=hIyv3tgfABn#wa+mzjZ@nZ|l`!xT31r;X|+ zex|T_8e8rJ@WS18tl{?t8t^gJ;wH9W2HWrncHtHhxXqy5VIc0}5I#jOKEq3tmJx1{ z6h1geP8hw8?;&*aE4(kvhU>s2wi39x{VF&4?By#Q4DpTe-N|=1--KFEzvvBpD65Z& z(AEUGXl6Em&zb9c%;py~_Dg2-D}vk)42htwwT2J1_N)LsQdZ~xm!W@6^lym%Ez!Rt z`u9ZtVJZ6I6`*e`tB;q}C(7#f2l)OY(SIWP&qV))=)V&Ex25R4D?oo}jI`RVB+C`X$qKK zk$~AP-=cbc#iB eg>6{rwG{e-x;lzBQk4}J!mCJdf{c=)N&XKjssP3S literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$CompositionAttestationModeEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$CompositionAttestationModeEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..a1552c7964f2c7e3cc5b2d034cb396c3fa611f4c GIT binary patch literal 2024 zcmb_dZF3V<6n<`->>FDNYbzF^6l`hI2+^XTw6vrl!D!ml1{Ce@&=5E|TM45aX;hPQN#U`E49Dc{!cj+Cb~oR;!k74NAyV_--gnU!)*!&xck4VYNaa8AXd zfme}{%Xt-96&F;z&!EgX!U^UX2IGm386p{Poipq$ID#)XYir!UXs@}nqg8yb)_Hg! z<+gc1Y3^nlMH&vsR}!2`ULh@p*Y30>%1Jy_U%H3$l2w< z^S_+y>lgyGAGq@buTk=vewpVSdHb=@!4tA{6R+VQ161Tqe1H#$Aa(9HJYl;g3Rq$= z>%LdvjRxI^+*_7=QI}VxQIv+}RVq%|k@kwTk8VMdciWC>zuK&E5%eyWVgHs>2g=2! zovJXGoq(u|jhVdGOKKEf&kBc+6kvXe_>EvO*=FFrq6OibdKiNiR` zu=M=lLU+qB`RwMl`Ng(i>hOnQs$VJ3I^4mS#)*I0v|XC3kuc}G)J$BZ%UsE>mWs>i z0>k+i!9e2A%4#u}EtT?}sL?|9f{d;ebGdvbFIB~^*ST0{I36zQDHFDhDMW28@SZd_ z9DnM}Zfo;NM50Gu5JPu^BlMab1;YV)n@35~w9tBptV1Mea1fo|1pAg0hA~=|_U6yD z5^*rlcD;=VX+S-B2c|WU+`!=1u);=^wX8^IU;PfzmZkIzwPk5NLvL9|&)Czt1@p=+ z3|-m8OV-{E#OP7X+DFR5Jh_i+jj zuz)|1!Jjnsf6*ZSjo0af4t2<6CjBr$W`x=@=}&_}t3<)01hTbclFI%DiWO;*rbYI~$+w5;J4xp%5MM)84%^zwNG1OH$j{>3mJ6UhHzjIf<#3~@Hlu0%n^&~-hQ zrsPxIxpGW51F@A28Sdm5!`u}Ie8#Vv{ literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$CompositionAttesterComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$CompositionAttesterComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..936d3d2624d0a3ed5e0261102ccc323fb71e14b4 GIT binary patch literal 7755 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 K1$h4!vi=JlS7K=Z literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$CompositionEventComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$CompositionEventComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..e54b11484daa288795affddaf6815c690dad9a59 GIT binary patch literal 6102 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 Re+)WKUOY+(*6}Q&{{mL`2+{xm literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$SectionComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition$SectionComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..304ba54fca8b8a97528e74d3a3095b984d284ee4 GIT binary patch literal 7408 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Composition.class new file mode 100644 index 0000000000000000000000000000000000000000..b6f35d4c169ad01b5e3264c5931e4f16e6c4cb28 GIT binary patch literal 22551 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 fKZf6r { - public CompositionStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("preliminary".equals(codeString)) - return CompositionStatus.PRELIMINARY; - if ("final".equals(codeString)) - return CompositionStatus.FINAL; - if ("appended".equals(codeString)) - return CompositionStatus.APPENDED; - if ("amended".equals(codeString)) - return CompositionStatus.AMENDED; - if ("entered in error".equals(codeString)) - return CompositionStatus.ENTEREDINERROR; - throw new IllegalArgumentException("Unknown CompositionStatus code '"+codeString+"'"); - } - public String toCode(CompositionStatus code) throws IllegalArgumentException { - if (code == CompositionStatus.PRELIMINARY) - return "preliminary"; - if (code == CompositionStatus.FINAL) - return "final"; - if (code == CompositionStatus.APPENDED) - return "appended"; - if (code == CompositionStatus.AMENDED) - return "amended"; - if (code == CompositionStatus.ENTEREDINERROR) - return "entered in error"; - return "?"; - } - } - - public enum CompositionAttestationMode implements FhirEnum { - /** - * The person authenticated the content in their personal capacity. - */ - PERSONAL, - /** - * The person authenticated the content in their professional capacity. - */ - PROFESSIONAL, - /** - * The person authenticated the content and accepted legal responsibility for its content. - */ - LEGAL, - /** - * The organization authenticated the content as consistent with their policies and procedures. - */ - OFFICIAL, - /** - * added to help the parsers - */ - NULL; - - public static final CompositionAttestationModeEnumFactory ENUM_FACTORY = new CompositionAttestationModeEnumFactory(); - - public static CompositionAttestationMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("personal".equals(codeString)) - return PERSONAL; - if ("professional".equals(codeString)) - return PROFESSIONAL; - if ("legal".equals(codeString)) - return LEGAL; - if ("official".equals(codeString)) - return OFFICIAL; - throw new IllegalArgumentException("Unknown CompositionAttestationMode code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case PERSONAL: return "personal"; - case PROFESSIONAL: return "professional"; - case LEGAL: return "legal"; - case OFFICIAL: return "official"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case PERSONAL: return ""; - case PROFESSIONAL: return ""; - case LEGAL: return ""; - case OFFICIAL: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case PERSONAL: return "The person authenticated the content in their personal capacity."; - case PROFESSIONAL: return "The person authenticated the content in their professional capacity."; - case LEGAL: return "The person authenticated the content and accepted legal responsibility for its content."; - case OFFICIAL: return "The organization authenticated the content as consistent with their policies and procedures."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case PERSONAL: return "personal"; - case PROFESSIONAL: return "professional"; - case LEGAL: return "legal"; - case OFFICIAL: return "official"; - default: return "?"; - } - } - } - - public static class CompositionAttestationModeEnumFactory implements EnumFactory { - public CompositionAttestationMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("personal".equals(codeString)) - return CompositionAttestationMode.PERSONAL; - if ("professional".equals(codeString)) - return CompositionAttestationMode.PROFESSIONAL; - if ("legal".equals(codeString)) - return CompositionAttestationMode.LEGAL; - if ("official".equals(codeString)) - return CompositionAttestationMode.OFFICIAL; - throw new IllegalArgumentException("Unknown CompositionAttestationMode code '"+codeString+"'"); - } - public String toCode(CompositionAttestationMode code) throws IllegalArgumentException { - if (code == CompositionAttestationMode.PERSONAL) - return "personal"; - if (code == CompositionAttestationMode.PROFESSIONAL) - return "professional"; - if (code == CompositionAttestationMode.LEGAL) - return "legal"; - if (code == CompositionAttestationMode.OFFICIAL) - return "official"; - return "?"; - } - } - - @Block() - public static class CompositionAttesterComponent extends BackboneElement { - /** - * The type of attestation the authenticator offers. - */ - @Child(name="mode", type={CodeType.class}, order=1, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="personal | professional | legal | official", formalDefinition="The type of attestation the authenticator offers." ) - protected List> mode; - - /** - * When composition was attested by the party. - */ - @Child(name="time", type={DateTimeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="When composition attested", formalDefinition="When composition was attested by the party." ) - protected DateTimeType time; - - /** - * Who attested the composition in the specified way. - */ - @Child(name="party", type={Patient.class, Practitioner.class, Organization.class}, order=3, min=0, max=1) - @Description(shortDefinition="Who attested the composition", formalDefinition="Who attested the composition in the specified way." ) - protected Reference party; - - /** - * The actual object that is the target of the reference (Who attested the composition in the specified way.) - */ - protected Resource partyTarget; - - private static final long serialVersionUID = -436604745L; - - public CompositionAttesterComponent() { - super(); - } - - /** - * @return {@link #mode} (The type of attestation the authenticator offers.) - */ - public List> getMode() { - if (this.mode == null) - this.mode = new ArrayList>(); - return this.mode; - } - - public boolean hasMode() { - if (this.mode == null) - return false; - for (Enumeration item : this.mode) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #mode} (The type of attestation the authenticator offers.) - */ - // syntactic sugar - public Enumeration addModeElement() {//2 - Enumeration t = new Enumeration(); - if (this.mode == null) - this.mode = new ArrayList>(); - this.mode.add(t); - return t; - } - - /** - * @param value {@link #mode} (The type of attestation the authenticator offers.) - */ - public CompositionAttesterComponent addMode(CompositionAttestationMode value) { //1 - Enumeration t = new Enumeration(); - t.setValue(value); - if (this.mode == null) - this.mode = new ArrayList>(); - this.mode.add(t); - return this; - } - - /** - * @param value {@link #mode} (The type of attestation the authenticator offers.) - */ - public boolean hasMode(CompositionAttestationMode value) { - if (this.mode == null) - return false; - for (Enumeration v : this.mode) - if (v.equals(value)) // code - return true; - return false; - } - - /** - * @return {@link #time} (When composition was attested by the party.). This is the underlying object with id, value and extensions. The accessor "getTime" gives direct access to the value - */ - public DateTimeType getTimeElement() { - if (this.time == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CompositionAttesterComponent.time"); - else if (Configuration.doAutoCreate()) - this.time = new DateTimeType(); - return this.time; - } - - public boolean hasTimeElement() { - return this.time != null && !this.time.isEmpty(); - } - - public boolean hasTime() { - return this.time != null && !this.time.isEmpty(); - } - - /** - * @param value {@link #time} (When composition was attested by the party.). This is the underlying object with id, value and extensions. The accessor "getTime" gives direct access to the value - */ - public CompositionAttesterComponent setTimeElement(DateTimeType value) { - this.time = value; - return this; - } - - /** - * @return When composition was attested by the party. - */ - public Date getTime() { - return this.time == null ? null : this.time.getValue(); - } - - /** - * @param value When composition was attested by the party. - */ - public CompositionAttesterComponent setTime(Date value) { - if (value == null) - this.time = null; - else { - if (this.time == null) - this.time = new DateTimeType(); - this.time.setValue(value); - } - return this; - } - - /** - * @return {@link #party} (Who attested the composition in the specified way.) - */ - public Reference getParty() { - if (this.party == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CompositionAttesterComponent.party"); - else if (Configuration.doAutoCreate()) - this.party = new Reference(); - return this.party; - } - - public boolean hasParty() { - return this.party != null && !this.party.isEmpty(); - } - - /** - * @param value {@link #party} (Who attested the composition in the specified way.) - */ - public CompositionAttesterComponent setParty(Reference value) { - this.party = value; - return this; - } - - /** - * @return {@link #party} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who attested the composition in the specified way.) - */ - public Resource getPartyTarget() { - return this.partyTarget; - } - - /** - * @param value {@link #party} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who attested the composition in the specified way.) - */ - public CompositionAttesterComponent setPartyTarget(Resource value) { - this.partyTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("mode", "code", "The type of attestation the authenticator offers.", 0, java.lang.Integer.MAX_VALUE, mode)); - childrenList.add(new Property("time", "dateTime", "When composition was attested by the party.", 0, java.lang.Integer.MAX_VALUE, time)); - childrenList.add(new Property("party", "Reference(Patient|Practitioner|Organization)", "Who attested the composition in the specified way.", 0, java.lang.Integer.MAX_VALUE, party)); - } - - public CompositionAttesterComponent copy() { - CompositionAttesterComponent dst = new CompositionAttesterComponent(); - copyValues(dst); - if (mode != null) { - dst.mode = new ArrayList>(); - for (Enumeration i : mode) - dst.mode.add(i.copy()); - }; - dst.time = time == null ? null : time.copy(); - dst.party = party == null ? null : party.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (mode == null || mode.isEmpty()) && (time == null || time.isEmpty()) - && (party == null || party.isEmpty()); - } - - } - - @Block() - public static class CompositionEventComponent extends BackboneElement { - /** - * This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act. - */ - @Child(name="code", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Code(s) that apply to the event being documented", formalDefinition="This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a 'History and Physical Report' in which the procedure being documented is necessarily a 'History and Physical' act." ) - protected List code; - - /** - * The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time. - */ - @Child(name="period", type={Period.class}, order=2, min=0, max=1) - @Description(shortDefinition="The period covered by the documentation", formalDefinition="The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time." ) - protected Period period; - - /** - * Full details for the event(s) the composition/documentation consents. - */ - @Child(name="detail", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Full details for the event(s) the composition consents", formalDefinition="Full details for the event(s) the composition/documentation consents." ) - protected List detail; - /** - * The actual objects that are the target of the reference (Full details for the event(s) the composition/documentation consents.) - */ - protected List detailTarget; - - - private static final long serialVersionUID = -1581379774L; - - public CompositionEventComponent() { - super(); - } - - /** - * @return {@link #code} (This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.) - */ - public List getCode() { - if (this.code == null) - this.code = new ArrayList(); - return this.code; - } - - public boolean hasCode() { - if (this.code == null) - return false; - for (CodeableConcept item : this.code) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #code} (This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.) - */ - // syntactic sugar - public CodeableConcept addCode() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.code == null) - this.code = new ArrayList(); - this.code.add(t); - return t; - } - - /** - * @return {@link #period} (The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CompositionEventComponent.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.) - */ - public CompositionEventComponent setPeriod(Period value) { - this.period = value; - return this; - } - - /** - * @return {@link #detail} (Full details for the event(s) the composition/documentation consents.) - */ - public List getDetail() { - if (this.detail == null) - this.detail = new ArrayList(); - return this.detail; - } - - public boolean hasDetail() { - if (this.detail == null) - return false; - for (Reference item : this.detail) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #detail} (Full details for the event(s) the composition/documentation consents.) - */ - // syntactic sugar - public Reference addDetail() { //3 - Reference t = new Reference(); - if (this.detail == null) - this.detail = new ArrayList(); - this.detail.add(t); - return t; - } - - /** - * @return {@link #detail} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Full details for the event(s) the composition/documentation consents.) - */ - public List getDetailTarget() { - if (this.detailTarget == null) - this.detailTarget = new ArrayList(); - return this.detailTarget; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "CodeableConcept", "This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a 'History and Physical Report' in which the procedure being documented is necessarily a 'History and Physical' act.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("period", "Period", "The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.", 0, java.lang.Integer.MAX_VALUE, period)); - childrenList.add(new Property("detail", "Reference(Any)", "Full details for the event(s) the composition/documentation consents.", 0, java.lang.Integer.MAX_VALUE, detail)); - } - - public CompositionEventComponent copy() { - CompositionEventComponent dst = new CompositionEventComponent(); - copyValues(dst); - if (code != null) { - dst.code = new ArrayList(); - for (CodeableConcept i : code) - dst.code.add(i.copy()); - }; - dst.period = period == null ? null : period.copy(); - if (detail != null) { - dst.detail = new ArrayList(); - for (Reference i : detail) - dst.detail.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (period == null || period.isEmpty()) - && (detail == null || detail.isEmpty()); - } - - } - - @Block() - public static class SectionComponent extends BackboneElement { - /** - * The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. - */ - @Child(name="title", type={StringType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Label for section (e.g. for ToC)", formalDefinition="The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents." ) - protected StringType title; - - /** - * A code identifying the kind of content contained within the section. This must be consistent with the section title. - */ - @Child(name="code", type={CodeableConcept.class}, order=2, min=0, max=1) - @Description(shortDefinition="Classification of section (recommended)", formalDefinition="A code identifying the kind of content contained within the section. This must be consistent with the section title." ) - protected CodeableConcept code; - - /** - * A nested sub-section within this section. - */ - @Child(name="section", type={SectionComponent.class}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Nested Section", formalDefinition="A nested sub-section within this section." ) - protected List section; - - /** - * The content (narrative and data) associated with the section. - */ - @Child(name="content", type={}, order=4, min=0, max=1) - @Description(shortDefinition="The Content of the section", formalDefinition="The content (narrative and data) associated with the section." ) - protected Reference content; - - /** - * The actual object that is the target of the reference (The content (narrative and data) associated with the section.) - */ - protected Resource contentTarget; - - private static final long serialVersionUID = -666692570L; - - public SectionComponent() { - super(); - } - - /** - * @return {@link #title} (The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value - */ - public StringType getTitleElement() { - if (this.title == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SectionComponent.title"); - else if (Configuration.doAutoCreate()) - this.title = new StringType(); - return this.title; - } - - public boolean hasTitleElement() { - return this.title != null && !this.title.isEmpty(); - } - - public boolean hasTitle() { - return this.title != null && !this.title.isEmpty(); - } - - /** - * @param value {@link #title} (The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value - */ - public SectionComponent setTitleElement(StringType value) { - this.title = value; - return this; - } - - /** - * @return The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. - */ - public String getTitle() { - return this.title == null ? null : this.title.getValue(); - } - - /** - * @param value The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. - */ - public SectionComponent setTitle(String value) { - if (Utilities.noString(value)) - this.title = null; - else { - if (this.title == null) - this.title = new StringType(); - this.title.setValue(value); - } - return this; - } - - /** - * @return {@link #code} (A code identifying the kind of content contained within the section. This must be consistent with the section title.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SectionComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (A code identifying the kind of content contained within the section. This must be consistent with the section title.) - */ - public SectionComponent setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #section} (A nested sub-section within this section.) - */ - public List getSection() { - if (this.section == null) - this.section = new ArrayList(); - return this.section; - } - - public boolean hasSection() { - if (this.section == null) - return false; - for (SectionComponent item : this.section) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #section} (A nested sub-section within this section.) - */ - // syntactic sugar - public SectionComponent addSection() { //3 - SectionComponent t = new SectionComponent(); - if (this.section == null) - this.section = new ArrayList(); - this.section.add(t); - return t; - } - - /** - * @return {@link #content} (The content (narrative and data) associated with the section.) - */ - public Reference getContent() { - if (this.content == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SectionComponent.content"); - else if (Configuration.doAutoCreate()) - this.content = new Reference(); - return this.content; - } - - public boolean hasContent() { - return this.content != null && !this.content.isEmpty(); - } - - /** - * @param value {@link #content} (The content (narrative and data) associated with the section.) - */ - public SectionComponent setContent(Reference value) { - this.content = value; - return this; - } - - /** - * @return {@link #content} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The content (narrative and data) associated with the section.) - */ - public Resource getContentTarget() { - return this.contentTarget; - } - - /** - * @param value {@link #content} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The content (narrative and data) associated with the section.) - */ - public SectionComponent setContentTarget(Resource value) { - this.contentTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("title", "string", "The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.", 0, java.lang.Integer.MAX_VALUE, title)); - childrenList.add(new Property("code", "CodeableConcept", "A code identifying the kind of content contained within the section. This must be consistent with the section title.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("section", "@Composition.section", "A nested sub-section within this section.", 0, java.lang.Integer.MAX_VALUE, section)); - childrenList.add(new Property("content", "Reference(Any)", "The content (narrative and data) associated with the section.", 0, java.lang.Integer.MAX_VALUE, content)); - } - - public SectionComponent copy() { - SectionComponent dst = new SectionComponent(); - copyValues(dst); - dst.title = title == null ? null : title.copy(); - dst.code = code == null ? null : code.copy(); - if (section != null) { - dst.section = new ArrayList(); - for (SectionComponent i : section) - dst.section.add(i.copy()); - }; - dst.content = content == null ? null : content.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (title == null || title.isEmpty()) && (code == null || code.isEmpty()) - && (section == null || section.isEmpty()) && (content == null || content.isEmpty()); - } - - } - - /** - * Logical Identifier for the composition, assigned when created. This identifier stays constant as the composition is changed over time. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=1) - @Description(shortDefinition="Logical identifier of composition (version-independent)", formalDefinition="Logical Identifier for the composition, assigned when created. This identifier stays constant as the composition is changed over time." ) - protected Identifier identifier; - - /** - * The composition editing time, when the composition was last logically changed by the author. - */ - @Child(name="date", type={DateTimeType.class}, order=0, min=1, max=1) - @Description(shortDefinition="Composition editing time", formalDefinition="The composition editing time, when the composition was last logically changed by the author." ) - protected DateTimeType date; - - /** - * Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition. - */ - @Child(name="type", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="Kind of composition (LOINC if possible)", formalDefinition="Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition." ) - protected CodeableConcept type; - - /** - * A categorization for the type of the composition. This may be implied by or derived from the code specified in the Composition Type. - */ - @Child(name="class_", type={CodeableConcept.class}, order=2, min=0, max=1) - @Description(shortDefinition="Categorization of Composition", formalDefinition="A categorization for the type of the composition. This may be implied by or derived from the code specified in the Composition Type." ) - protected CodeableConcept class_; - - /** - * Official human-readable label for the composition. - */ - @Child(name="title", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Human Readable name/title", formalDefinition="Official human-readable label for the composition." ) - protected StringType title; - - /** - * The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document. - */ - @Child(name="status", type={CodeType.class}, order=4, min=1, max=1) - @Description(shortDefinition="preliminary | final | appended | amended | entered in error", formalDefinition="The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document." ) - protected Enumeration status; - - /** - * The code specifying the level of confidentiality of the Composition. - */ - @Child(name="confidentiality", type={Coding.class}, order=5, min=1, max=1) - @Description(shortDefinition="As defined by affinity domain", formalDefinition="The code specifying the level of confidentiality of the Composition." ) - protected Coding confidentiality; - - /** - * Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure). - */ - @Child(name="subject", type={Patient.class, Practitioner.class, Group.class, Device.class, Location.class}, order=6, min=1, max=1) - @Description(shortDefinition="Who and/or what the composition is about", formalDefinition="Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure)." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).) - */ - protected Resource subjectTarget; - - /** - * Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.). - */ - @Child(name="author", type={Practitioner.class, Device.class, Patient.class, RelatedPerson.class}, order=7, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Who and/or what authored the composition", formalDefinition="Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.)." ) - protected List author; - /** - * The actual objects that are the target of the reference (Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.).) - */ - protected List authorTarget; - - - /** - * A participant who has attested to the accuracy of the composition/document. - */ - @Child(name="attester", type={}, order=8, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Attests to accuracy of composition", formalDefinition="A participant who has attested to the accuracy of the composition/document." ) - protected List attester; - - /** - * Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information. - */ - @Child(name="custodian", type={Organization.class}, order=9, min=0, max=1) - @Description(shortDefinition="Org which maintains the composition", formalDefinition="Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information." ) - protected Reference custodian; - - /** - * The actual object that is the target of the reference (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.) - */ - protected Organization custodianTarget; - - /** - * The clinical service, such as a colonoscopy or an appendectomy, being documented. - */ - @Child(name="event", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="The clinical service(s) being documented", formalDefinition="The clinical service, such as a colonoscopy or an appendectomy, being documented." ) - protected List event; - - /** - * Describes the clinical encounter or type of care this documentation is associated with. - */ - @Child(name="encounter", type={Encounter.class}, order=11, min=0, max=1) - @Description(shortDefinition="Context of the conposition", formalDefinition="Describes the clinical encounter or type of care this documentation is associated with." ) - protected Reference encounter; - - /** - * The actual object that is the target of the reference (Describes the clinical encounter or type of care this documentation is associated with.) - */ - protected Encounter encounterTarget; - - /** - * The root of the sections that make up the composition. - */ - @Child(name="section", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Composition is broken into sections", formalDefinition="The root of the sections that make up the composition." ) - protected List section; - - private static final long serialVersionUID = 2112290467L; - - public Composition() { - super(); - } - - public Composition(DateTimeType date, CodeableConcept type, Enumeration status, Coding confidentiality, Reference subject) { - super(); - this.date = date; - this.type = type; - this.status = status; - this.confidentiality = confidentiality; - this.subject = subject; - } - - /** - * @return {@link #identifier} (Logical Identifier for the composition, assigned when created. This identifier stays constant as the composition is changed over time.) - */ - public Identifier getIdentifier() { - if (this.identifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Composition.identifier"); - else if (Configuration.doAutoCreate()) - this.identifier = new Identifier(); - return this.identifier; - } - - public boolean hasIdentifier() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - /** - * @param value {@link #identifier} (Logical Identifier for the composition, assigned when created. This identifier stays constant as the composition is changed over time.) - */ - public Composition setIdentifier(Identifier value) { - this.identifier = value; - return this; - } - - /** - * @return {@link #date} (The composition editing time, when the composition was last logically changed by the author.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Composition.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (The composition editing time, when the composition was last logically changed by the author.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public Composition setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return The composition editing time, when the composition was last logically changed by the author. - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value The composition editing time, when the composition was last logically changed by the author. - */ - public Composition setDate(Date value) { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - return this; - } - - /** - * @return {@link #type} (Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Composition.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.) - */ - public Composition setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #class_} (A categorization for the type of the composition. This may be implied by or derived from the code specified in the Composition Type.) - */ - public CodeableConcept getClass_() { - if (this.class_ == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Composition.class_"); - else if (Configuration.doAutoCreate()) - this.class_ = new CodeableConcept(); - return this.class_; - } - - public boolean hasClass_() { - return this.class_ != null && !this.class_.isEmpty(); - } - - /** - * @param value {@link #class_} (A categorization for the type of the composition. This may be implied by or derived from the code specified in the Composition Type.) - */ - public Composition setClass_(CodeableConcept value) { - this.class_ = value; - return this; - } - - /** - * @return {@link #title} (Official human-readable label for the composition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value - */ - public StringType getTitleElement() { - if (this.title == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Composition.title"); - else if (Configuration.doAutoCreate()) - this.title = new StringType(); - return this.title; - } - - public boolean hasTitleElement() { - return this.title != null && !this.title.isEmpty(); - } - - public boolean hasTitle() { - return this.title != null && !this.title.isEmpty(); - } - - /** - * @param value {@link #title} (Official human-readable label for the composition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value - */ - public Composition setTitleElement(StringType value) { - this.title = value; - return this; - } - - /** - * @return Official human-readable label for the composition. - */ - public String getTitle() { - return this.title == null ? null : this.title.getValue(); - } - - /** - * @param value Official human-readable label for the composition. - */ - public Composition setTitle(String value) { - if (Utilities.noString(value)) - this.title = null; - else { - if (this.title == null) - this.title = new StringType(); - this.title.setValue(value); - } - return this; - } - - /** - * @return {@link #status} (The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Composition.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Composition setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document. - */ - public CompositionStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document. - */ - public Composition setStatus(CompositionStatus value) { - if (this.status == null) - this.status = new Enumeration(CompositionStatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #confidentiality} (The code specifying the level of confidentiality of the Composition.) - */ - public Coding getConfidentiality() { - if (this.confidentiality == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Composition.confidentiality"); - else if (Configuration.doAutoCreate()) - this.confidentiality = new Coding(); - return this.confidentiality; - } - - public boolean hasConfidentiality() { - return this.confidentiality != null && !this.confidentiality.isEmpty(); - } - - /** - * @param value {@link #confidentiality} (The code specifying the level of confidentiality of the Composition.) - */ - public Composition setConfidentiality(Coding value) { - this.confidentiality = value; - return this; - } - - /** - * @return {@link #subject} (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Composition.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).) - */ - public Composition setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).) - */ - public Resource getSubjectTarget() { - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).) - */ - public Composition setSubjectTarget(Resource value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #author} (Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.).) - */ - public List getAuthor() { - if (this.author == null) - this.author = new ArrayList(); - return this.author; - } - - public boolean hasAuthor() { - if (this.author == null) - return false; - for (Reference item : this.author) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #author} (Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.).) - */ - // syntactic sugar - public Reference addAuthor() { //3 - Reference t = new Reference(); - if (this.author == null) - this.author = new ArrayList(); - this.author.add(t); - return t; - } - - /** - * @return {@link #author} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.).) - */ - public List getAuthorTarget() { - if (this.authorTarget == null) - this.authorTarget = new ArrayList(); - return this.authorTarget; - } - - /** - * @return {@link #attester} (A participant who has attested to the accuracy of the composition/document.) - */ - public List getAttester() { - if (this.attester == null) - this.attester = new ArrayList(); - return this.attester; - } - - public boolean hasAttester() { - if (this.attester == null) - return false; - for (CompositionAttesterComponent item : this.attester) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #attester} (A participant who has attested to the accuracy of the composition/document.) - */ - // syntactic sugar - public CompositionAttesterComponent addAttester() { //3 - CompositionAttesterComponent t = new CompositionAttesterComponent(); - if (this.attester == null) - this.attester = new ArrayList(); - this.attester.add(t); - return t; - } - - /** - * @return {@link #custodian} (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.) - */ - public Reference getCustodian() { - if (this.custodian == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Composition.custodian"); - else if (Configuration.doAutoCreate()) - this.custodian = new Reference(); - return this.custodian; - } - - public boolean hasCustodian() { - return this.custodian != null && !this.custodian.isEmpty(); - } - - /** - * @param value {@link #custodian} (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.) - */ - public Composition setCustodian(Reference value) { - this.custodian = value; - return this; - } - - /** - * @return {@link #custodian} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.) - */ - public Organization getCustodianTarget() { - if (this.custodianTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Composition.custodian"); - else if (Configuration.doAutoCreate()) - this.custodianTarget = new Organization(); - return this.custodianTarget; - } - - /** - * @param value {@link #custodian} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.) - */ - public Composition setCustodianTarget(Organization value) { - this.custodianTarget = value; - return this; - } - - /** - * @return {@link #event} (The clinical service, such as a colonoscopy or an appendectomy, being documented.) - */ - public List getEvent() { - if (this.event == null) - this.event = new ArrayList(); - return this.event; - } - - public boolean hasEvent() { - if (this.event == null) - return false; - for (CompositionEventComponent item : this.event) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #event} (The clinical service, such as a colonoscopy or an appendectomy, being documented.) - */ - // syntactic sugar - public CompositionEventComponent addEvent() { //3 - CompositionEventComponent t = new CompositionEventComponent(); - if (this.event == null) - this.event = new ArrayList(); - this.event.add(t); - return t; - } - - /** - * @return {@link #encounter} (Describes the clinical encounter or type of care this documentation is associated with.) - */ - public Reference getEncounter() { - if (this.encounter == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Composition.encounter"); - else if (Configuration.doAutoCreate()) - this.encounter = new Reference(); - return this.encounter; - } - - public boolean hasEncounter() { - return this.encounter != null && !this.encounter.isEmpty(); - } - - /** - * @param value {@link #encounter} (Describes the clinical encounter or type of care this documentation is associated with.) - */ - public Composition setEncounter(Reference value) { - this.encounter = value; - return this; - } - - /** - * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the clinical encounter or type of care this documentation is associated with.) - */ - public Encounter getEncounterTarget() { - if (this.encounterTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Composition.encounter"); - else if (Configuration.doAutoCreate()) - this.encounterTarget = new Encounter(); - return this.encounterTarget; - } - - /** - * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the clinical encounter or type of care this documentation is associated with.) - */ - public Composition setEncounterTarget(Encounter value) { - this.encounterTarget = value; - return this; - } - - /** - * @return {@link #section} (The root of the sections that make up the composition.) - */ - public List getSection() { - if (this.section == null) - this.section = new ArrayList(); - return this.section; - } - - public boolean hasSection() { - if (this.section == null) - return false; - for (SectionComponent item : this.section) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #section} (The root of the sections that make up the composition.) - */ - // syntactic sugar - public SectionComponent addSection() { //3 - SectionComponent t = new SectionComponent(); - if (this.section == null) - this.section = new ArrayList(); - this.section.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "Logical Identifier for the composition, assigned when created. This identifier stays constant as the composition is changed over time.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("date", "dateTime", "The composition editing time, when the composition was last logically changed by the author.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("type", "CodeableConcept", "Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("class", "CodeableConcept", "A categorization for the type of the composition. This may be implied by or derived from the code specified in the Composition Type.", 0, java.lang.Integer.MAX_VALUE, class_)); - childrenList.add(new Property("title", "string", "Official human-readable label for the composition.", 0, java.lang.Integer.MAX_VALUE, title)); - childrenList.add(new Property("status", "code", "The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("confidentiality", "Coding", "The code specifying the level of confidentiality of the Composition.", 0, java.lang.Integer.MAX_VALUE, confidentiality)); - childrenList.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device|Location)", "Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("author", "Reference(Practitioner|Device|Patient|RelatedPerson)", "Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.).", 0, java.lang.Integer.MAX_VALUE, author)); - childrenList.add(new Property("attester", "", "A participant who has attested to the accuracy of the composition/document.", 0, java.lang.Integer.MAX_VALUE, attester)); - childrenList.add(new Property("custodian", "Reference(Organization)", "Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.", 0, java.lang.Integer.MAX_VALUE, custodian)); - childrenList.add(new Property("event", "", "The clinical service, such as a colonoscopy or an appendectomy, being documented.", 0, java.lang.Integer.MAX_VALUE, event)); - childrenList.add(new Property("encounter", "Reference(Encounter)", "Describes the clinical encounter or type of care this documentation is associated with.", 0, java.lang.Integer.MAX_VALUE, encounter)); - childrenList.add(new Property("section", "", "The root of the sections that make up the composition.", 0, java.lang.Integer.MAX_VALUE, section)); - } - - public Composition copy() { - Composition dst = new Composition(); - copyValues(dst); - dst.identifier = identifier == null ? null : identifier.copy(); - dst.date = date == null ? null : date.copy(); - dst.type = type == null ? null : type.copy(); - dst.class_ = class_ == null ? null : class_.copy(); - dst.title = title == null ? null : title.copy(); - dst.status = status == null ? null : status.copy(); - dst.confidentiality = confidentiality == null ? null : confidentiality.copy(); - dst.subject = subject == null ? null : subject.copy(); - if (author != null) { - dst.author = new ArrayList(); - for (Reference i : author) - dst.author.add(i.copy()); - }; - if (attester != null) { - dst.attester = new ArrayList(); - for (CompositionAttesterComponent i : attester) - dst.attester.add(i.copy()); - }; - dst.custodian = custodian == null ? null : custodian.copy(); - if (event != null) { - dst.event = new ArrayList(); - for (CompositionEventComponent i : event) - dst.event.add(i.copy()); - }; - dst.encounter = encounter == null ? null : encounter.copy(); - if (section != null) { - dst.section = new ArrayList(); - for (SectionComponent i : section) - dst.section.add(i.copy()); - }; - return dst; - } - - protected Composition typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (date == null || date.isEmpty()) - && (type == null || type.isEmpty()) && (class_ == null || class_.isEmpty()) && (title == null || title.isEmpty()) - && (status == null || status.isEmpty()) && (confidentiality == null || confidentiality.isEmpty()) - && (subject == null || subject.isEmpty()) && (author == null || author.isEmpty()) && (attester == null || attester.isEmpty()) - && (custodian == null || custodian.isEmpty()) && (event == null || event.isEmpty()) && (encounter == null || encounter.isEmpty()) - && (section == null || section.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Composition; - } - - @SearchParamDefinition(name="section-code", path="Composition.section.code", description="Classification of section (recommended)", type="token" ) - public static final String SP_SECTIONCODE = "section-code"; - @SearchParamDefinition(name="status", path="Composition.status", description="preliminary | final | appended | amended | entered in error", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="subject", path="Composition.subject", description="Who and/or what the composition is about", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="class", path="Composition.class", description="Categorization of Composition", type="token" ) - public static final String SP_CLASS = "class"; - @SearchParamDefinition(name="period", path="Composition.event.period", description="The period covered by the documentation", type="date" ) - public static final String SP_PERIOD = "period"; - @SearchParamDefinition(name="type", path="Composition.type", description="Kind of composition (LOINC if possible)", type="token" ) - public static final String SP_TYPE = "type"; - @SearchParamDefinition(name="date", path="Composition.date", description="Composition editing time", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="section", path="Composition.section.content", description="The Content of the section", type="reference" ) - public static final String SP_SECTION = "section"; - @SearchParamDefinition(name="author", path="Composition.author", description="Who and/or what authored the composition", type="reference" ) - public static final String SP_AUTHOR = "author"; - @SearchParamDefinition(name="title", path="Composition.title", description="Human Readable name/title", type="string" ) - public static final String SP_TITLE = "title"; - @SearchParamDefinition(name="patient", path="Composition.subject", description="Who and/or what the composition is about", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="attester", path="Composition.attester.party", description="Who attested the composition", type="reference" ) - public static final String SP_ATTESTER = "attester"; - @SearchParamDefinition(name="confidentiality", path="Composition.confidentiality", description="As defined by affinity domain", type="token" ) - public static final String SP_CONFIDENTIALITY = "confidentiality"; - @SearchParamDefinition(name="context", path="Composition.event.code", description="Code(s) that apply to the event being documented", type="token" ) - public static final String SP_CONTEXT = "context"; - @SearchParamDefinition(name="identifier", path="Composition.identifier", description="Logical identifier of composition (version-independent)", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. + */ +@ResourceDef(name="Composition", profile="http://hl7.org/fhir/Profile/Composition") +public class Composition extends DomainResource { + + public enum CompositionStatus { + /** + * This is a preliminary composition or document (also known as initial or interim). The content may be incomplete or unverified. + */ + PRELIMINARY, + /** + * The composition or document is complete and verified by an appropriate person, and no further work is planned. + */ + FINAL, + /** + * The composition or document has been modified subsequent to being released as "final", and is complete and verified by an authorized person. The modifications added new information to the composition or document, but did not revise existing content. + */ + APPENDED, + /** + * The composition or document has been modified subsequent to being released as "final", and is complete and verified by an authorized person. + */ + AMENDED, + /** + * The composition or document was originally created/issued in error, and this is an amendment that marks that the entire series should not be considered as valid. + */ + ENTEREDINERROR, + /** + * added to help the parsers + */ + NULL; + public static CompositionStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("preliminary".equals(codeString)) + return PRELIMINARY; + if ("final".equals(codeString)) + return FINAL; + if ("appended".equals(codeString)) + return APPENDED; + if ("amended".equals(codeString)) + return AMENDED; + if ("entered-in-error".equals(codeString)) + return ENTEREDINERROR; + throw new Exception("Unknown CompositionStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PRELIMINARY: return "preliminary"; + case FINAL: return "final"; + case APPENDED: return "appended"; + case AMENDED: return "amended"; + case ENTEREDINERROR: return "entered-in-error"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PRELIMINARY: return ""; + case FINAL: return ""; + case APPENDED: return ""; + case AMENDED: return ""; + case ENTEREDINERROR: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PRELIMINARY: return "This is a preliminary composition or document (also known as initial or interim). The content may be incomplete or unverified."; + case FINAL: return "The composition or document is complete and verified by an appropriate person, and no further work is planned."; + case APPENDED: return "The composition or document has been modified subsequent to being released as 'final', and is complete and verified by an authorized person. The modifications added new information to the composition or document, but did not revise existing content."; + case AMENDED: return "The composition or document has been modified subsequent to being released as 'final', and is complete and verified by an authorized person."; + case ENTEREDINERROR: return "The composition or document was originally created/issued in error, and this is an amendment that marks that the entire series should not be considered as valid."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PRELIMINARY: return "preliminary"; + case FINAL: return "final"; + case APPENDED: return "appended"; + case AMENDED: return "amended"; + case ENTEREDINERROR: return "entered-in-error"; + default: return "?"; + } + } + } + + public static class CompositionStatusEnumFactory implements EnumFactory { + public CompositionStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("preliminary".equals(codeString)) + return CompositionStatus.PRELIMINARY; + if ("final".equals(codeString)) + return CompositionStatus.FINAL; + if ("appended".equals(codeString)) + return CompositionStatus.APPENDED; + if ("amended".equals(codeString)) + return CompositionStatus.AMENDED; + if ("entered-in-error".equals(codeString)) + return CompositionStatus.ENTEREDINERROR; + throw new IllegalArgumentException("Unknown CompositionStatus code '"+codeString+"'"); + } + public String toCode(CompositionStatus code) { + if (code == CompositionStatus.PRELIMINARY) + return "preliminary"; + if (code == CompositionStatus.FINAL) + return "final"; + if (code == CompositionStatus.APPENDED) + return "appended"; + if (code == CompositionStatus.AMENDED) + return "amended"; + if (code == CompositionStatus.ENTEREDINERROR) + return "entered-in-error"; + return "?"; + } + } + + public enum CompositionAttestationMode { + /** + * The person authenticated the content in their personal capacity. + */ + PERSONAL, + /** + * The person authenticated the content in their professional capacity. + */ + PROFESSIONAL, + /** + * The person authenticated the content and accepted legal responsibility for its content. + */ + LEGAL, + /** + * The organization authenticated the content as consistent with their policies and procedures. + */ + OFFICIAL, + /** + * added to help the parsers + */ + NULL; + public static CompositionAttestationMode fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("personal".equals(codeString)) + return PERSONAL; + if ("professional".equals(codeString)) + return PROFESSIONAL; + if ("legal".equals(codeString)) + return LEGAL; + if ("official".equals(codeString)) + return OFFICIAL; + throw new Exception("Unknown CompositionAttestationMode code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PERSONAL: return "personal"; + case PROFESSIONAL: return "professional"; + case LEGAL: return "legal"; + case OFFICIAL: return "official"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PERSONAL: return ""; + case PROFESSIONAL: return ""; + case LEGAL: return ""; + case OFFICIAL: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PERSONAL: return "The person authenticated the content in their personal capacity."; + case PROFESSIONAL: return "The person authenticated the content in their professional capacity."; + case LEGAL: return "The person authenticated the content and accepted legal responsibility for its content."; + case OFFICIAL: return "The organization authenticated the content as consistent with their policies and procedures."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PERSONAL: return "personal"; + case PROFESSIONAL: return "professional"; + case LEGAL: return "legal"; + case OFFICIAL: return "official"; + default: return "?"; + } + } + } + + public static class CompositionAttestationModeEnumFactory implements EnumFactory { + public CompositionAttestationMode fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("personal".equals(codeString)) + return CompositionAttestationMode.PERSONAL; + if ("professional".equals(codeString)) + return CompositionAttestationMode.PROFESSIONAL; + if ("legal".equals(codeString)) + return CompositionAttestationMode.LEGAL; + if ("official".equals(codeString)) + return CompositionAttestationMode.OFFICIAL; + throw new IllegalArgumentException("Unknown CompositionAttestationMode code '"+codeString+"'"); + } + public String toCode(CompositionAttestationMode code) { + if (code == CompositionAttestationMode.PERSONAL) + return "personal"; + if (code == CompositionAttestationMode.PROFESSIONAL) + return "professional"; + if (code == CompositionAttestationMode.LEGAL) + return "legal"; + if (code == CompositionAttestationMode.OFFICIAL) + return "official"; + return "?"; + } + } + + @Block() + public static class CompositionAttesterComponent extends BackboneElement { + /** + * The type of attestation the authenticator offers. + */ + @Child(name="mode", type={CodeType.class}, order=1, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="personal | professional | legal | official", formalDefinition="The type of attestation the authenticator offers." ) + protected List> mode; + + /** + * When composition was attested by the party. + */ + @Child(name="time", type={DateTimeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="When composition attested", formalDefinition="When composition was attested by the party." ) + protected DateTimeType time; + + /** + * Who attested the composition in the specified way. + */ + @Child(name="party", type={Patient.class, Practitioner.class, Organization.class}, order=3, min=0, max=1) + @Description(shortDefinition="Who attested the composition", formalDefinition="Who attested the composition in the specified way." ) + protected Reference party; + + /** + * The actual object that is the target of the reference (Who attested the composition in the specified way.) + */ + protected Resource partyTarget; + + private static final long serialVersionUID = -436604745L; + + public CompositionAttesterComponent() { + super(); + } + + /** + * @return {@link #mode} (The type of attestation the authenticator offers.) + */ + public List> getMode() { + if (this.mode == null) + this.mode = new ArrayList>(); + return this.mode; + } + + public boolean hasMode() { + if (this.mode == null) + return false; + for (Enumeration item : this.mode) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #mode} (The type of attestation the authenticator offers.) + */ + // syntactic sugar + public Enumeration addModeElement() {//2 + Enumeration t = new Enumeration(new CompositionAttestationModeEnumFactory()); + if (this.mode == null) + this.mode = new ArrayList>(); + this.mode.add(t); + return t; + } + + /** + * @param value {@link #mode} (The type of attestation the authenticator offers.) + */ + public CompositionAttesterComponent addMode(CompositionAttestationMode value) { //1 + Enumeration t = new Enumeration(new CompositionAttestationModeEnumFactory()); + t.setValue(value); + if (this.mode == null) + this.mode = new ArrayList>(); + this.mode.add(t); + return this; + } + + /** + * @param value {@link #mode} (The type of attestation the authenticator offers.) + */ + public boolean hasMode(CompositionAttestationMode value) { + if (this.mode == null) + return false; + for (Enumeration v : this.mode) + if (v.equals(value)) // code + return true; + return false; + } + + /** + * @return {@link #time} (When composition was attested by the party.). This is the underlying object with id, value and extensions. The accessor "getTime" gives direct access to the value + */ + public DateTimeType getTimeElement() { + if (this.time == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CompositionAttesterComponent.time"); + else if (Configuration.doAutoCreate()) + this.time = new DateTimeType(); // bb + return this.time; + } + + public boolean hasTimeElement() { + return this.time != null && !this.time.isEmpty(); + } + + public boolean hasTime() { + return this.time != null && !this.time.isEmpty(); + } + + /** + * @param value {@link #time} (When composition was attested by the party.). This is the underlying object with id, value and extensions. The accessor "getTime" gives direct access to the value + */ + public CompositionAttesterComponent setTimeElement(DateTimeType value) { + this.time = value; + return this; + } + + /** + * @return When composition was attested by the party. + */ + public Date getTime() { + return this.time == null ? null : this.time.getValue(); + } + + /** + * @param value When composition was attested by the party. + */ + public CompositionAttesterComponent setTime(Date value) { + if (value == null) + this.time = null; + else { + if (this.time == null) + this.time = new DateTimeType(); + this.time.setValue(value); + } + return this; + } + + /** + * @return {@link #party} (Who attested the composition in the specified way.) + */ + public Reference getParty() { + if (this.party == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CompositionAttesterComponent.party"); + else if (Configuration.doAutoCreate()) + this.party = new Reference(); // cc + return this.party; + } + + public boolean hasParty() { + return this.party != null && !this.party.isEmpty(); + } + + /** + * @param value {@link #party} (Who attested the composition in the specified way.) + */ + public CompositionAttesterComponent setParty(Reference value) { + this.party = value; + return this; + } + + /** + * @return {@link #party} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who attested the composition in the specified way.) + */ + public Resource getPartyTarget() { + return this.partyTarget; + } + + /** + * @param value {@link #party} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who attested the composition in the specified way.) + */ + public CompositionAttesterComponent setPartyTarget(Resource value) { + this.partyTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("mode", "code", "The type of attestation the authenticator offers.", 0, java.lang.Integer.MAX_VALUE, mode)); + childrenList.add(new Property("time", "dateTime", "When composition was attested by the party.", 0, java.lang.Integer.MAX_VALUE, time)); + childrenList.add(new Property("party", "Reference(Patient|Practitioner|Organization)", "Who attested the composition in the specified way.", 0, java.lang.Integer.MAX_VALUE, party)); + } + + public CompositionAttesterComponent copy() { + CompositionAttesterComponent dst = new CompositionAttesterComponent(); + copyValues(dst); + if (mode != null) { + dst.mode = new ArrayList>(); + for (Enumeration i : mode) + dst.mode.add(i.copy()); + }; + dst.time = time == null ? null : time.copy(); + dst.party = party == null ? null : party.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CompositionAttesterComponent)) + return false; + CompositionAttesterComponent o = (CompositionAttesterComponent) other; + return compareDeep(mode, o.mode, true) && compareDeep(time, o.time, true) && compareDeep(party, o.party, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CompositionAttesterComponent)) + return false; + CompositionAttesterComponent o = (CompositionAttesterComponent) other; + return compareValues(mode, o.mode, true) && compareValues(time, o.time, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (mode == null || mode.isEmpty()) && (time == null || time.isEmpty()) + && (party == null || party.isEmpty()); + } + + } + + @Block() + public static class CompositionEventComponent extends BackboneElement { + /** + * This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act. + */ + @Child(name="code", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Code(s) that apply to the event being documented", formalDefinition="This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a 'History and Physical Report' in which the procedure being documented is necessarily a 'History and Physical' act." ) + protected List code; + + /** + * The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time. + */ + @Child(name="period", type={Period.class}, order=2, min=0, max=1) + @Description(shortDefinition="The period covered by the documentation", formalDefinition="The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time." ) + protected Period period; + + /** + * Full details for the event(s) the composition/documentation consents. + */ + @Child(name="detail", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Full details for the event(s) the composition consents", formalDefinition="Full details for the event(s) the composition/documentation consents." ) + protected List detail; + /** + * The actual objects that are the target of the reference (Full details for the event(s) the composition/documentation consents.) + */ + protected List detailTarget; + + + private static final long serialVersionUID = -1581379774L; + + public CompositionEventComponent() { + super(); + } + + /** + * @return {@link #code} (This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.) + */ + public List getCode() { + if (this.code == null) + this.code = new ArrayList(); + return this.code; + } + + public boolean hasCode() { + if (this.code == null) + return false; + for (CodeableConcept item : this.code) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #code} (This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.) + */ + // syntactic sugar + public CodeableConcept addCode() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.code == null) + this.code = new ArrayList(); + this.code.add(t); + return t; + } + + /** + * @return {@link #period} (The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CompositionEventComponent.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.) + */ + public CompositionEventComponent setPeriod(Period value) { + this.period = value; + return this; + } + + /** + * @return {@link #detail} (Full details for the event(s) the composition/documentation consents.) + */ + public List getDetail() { + if (this.detail == null) + this.detail = new ArrayList(); + return this.detail; + } + + public boolean hasDetail() { + if (this.detail == null) + return false; + for (Reference item : this.detail) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #detail} (Full details for the event(s) the composition/documentation consents.) + */ + // syntactic sugar + public Reference addDetail() { //3 + Reference t = new Reference(); + if (this.detail == null) + this.detail = new ArrayList(); + this.detail.add(t); + return t; + } + + /** + * @return {@link #detail} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Full details for the event(s) the composition/documentation consents.) + */ + public List getDetailTarget() { + if (this.detailTarget == null) + this.detailTarget = new ArrayList(); + return this.detailTarget; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "CodeableConcept", "This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a 'History and Physical Report' in which the procedure being documented is necessarily a 'History and Physical' act.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("period", "Period", "The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.", 0, java.lang.Integer.MAX_VALUE, period)); + childrenList.add(new Property("detail", "Reference(Any)", "Full details for the event(s) the composition/documentation consents.", 0, java.lang.Integer.MAX_VALUE, detail)); + } + + public CompositionEventComponent copy() { + CompositionEventComponent dst = new CompositionEventComponent(); + copyValues(dst); + if (code != null) { + dst.code = new ArrayList(); + for (CodeableConcept i : code) + dst.code.add(i.copy()); + }; + dst.period = period == null ? null : period.copy(); + if (detail != null) { + dst.detail = new ArrayList(); + for (Reference i : detail) + dst.detail.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CompositionEventComponent)) + return false; + CompositionEventComponent o = (CompositionEventComponent) other; + return compareDeep(code, o.code, true) && compareDeep(period, o.period, true) && compareDeep(detail, o.detail, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CompositionEventComponent)) + return false; + CompositionEventComponent o = (CompositionEventComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (period == null || period.isEmpty()) + && (detail == null || detail.isEmpty()); + } + + } + + @Block() + public static class SectionComponent extends BackboneElement { + /** + * The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. + */ + @Child(name="title", type={StringType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Label for section (e.g. for ToC)", formalDefinition="The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents." ) + protected StringType title; + + /** + * A code identifying the kind of content contained within the section. This must be consistent with the section title. + */ + @Child(name="code", type={CodeableConcept.class}, order=2, min=0, max=1) + @Description(shortDefinition="Classification of section (recommended)", formalDefinition="A code identifying the kind of content contained within the section. This must be consistent with the section title." ) + protected CodeableConcept code; + + /** + * A nested sub-section within this section. + */ + @Child(name="section", type={SectionComponent.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Nested Section", formalDefinition="A nested sub-section within this section." ) + protected List section; + + /** + * The content (narrative and data) associated with the section. + */ + @Child(name="content", type={}, order=4, min=0, max=1) + @Description(shortDefinition="The Content of the section", formalDefinition="The content (narrative and data) associated with the section." ) + protected Reference content; + + /** + * The actual object that is the target of the reference (The content (narrative and data) associated with the section.) + */ + protected Resource contentTarget; + + private static final long serialVersionUID = -666692570L; + + public SectionComponent() { + super(); + } + + /** + * @return {@link #title} (The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value + */ + public StringType getTitleElement() { + if (this.title == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SectionComponent.title"); + else if (Configuration.doAutoCreate()) + this.title = new StringType(); // bb + return this.title; + } + + public boolean hasTitleElement() { + return this.title != null && !this.title.isEmpty(); + } + + public boolean hasTitle() { + return this.title != null && !this.title.isEmpty(); + } + + /** + * @param value {@link #title} (The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value + */ + public SectionComponent setTitleElement(StringType value) { + this.title = value; + return this; + } + + /** + * @return The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. + */ + public String getTitle() { + return this.title == null ? null : this.title.getValue(); + } + + /** + * @param value The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents. + */ + public SectionComponent setTitle(String value) { + if (Utilities.noString(value)) + this.title = null; + else { + if (this.title == null) + this.title = new StringType(); + this.title.setValue(value); + } + return this; + } + + /** + * @return {@link #code} (A code identifying the kind of content contained within the section. This must be consistent with the section title.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SectionComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (A code identifying the kind of content contained within the section. This must be consistent with the section title.) + */ + public SectionComponent setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #section} (A nested sub-section within this section.) + */ + public List getSection() { + if (this.section == null) + this.section = new ArrayList(); + return this.section; + } + + public boolean hasSection() { + if (this.section == null) + return false; + for (SectionComponent item : this.section) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #section} (A nested sub-section within this section.) + */ + // syntactic sugar + public SectionComponent addSection() { //3 + SectionComponent t = new SectionComponent(); + if (this.section == null) + this.section = new ArrayList(); + this.section.add(t); + return t; + } + + /** + * @return {@link #content} (The content (narrative and data) associated with the section.) + */ + public Reference getContent() { + if (this.content == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SectionComponent.content"); + else if (Configuration.doAutoCreate()) + this.content = new Reference(); // cc + return this.content; + } + + public boolean hasContent() { + return this.content != null && !this.content.isEmpty(); + } + + /** + * @param value {@link #content} (The content (narrative and data) associated with the section.) + */ + public SectionComponent setContent(Reference value) { + this.content = value; + return this; + } + + /** + * @return {@link #content} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The content (narrative and data) associated with the section.) + */ + public Resource getContentTarget() { + return this.contentTarget; + } + + /** + * @param value {@link #content} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The content (narrative and data) associated with the section.) + */ + public SectionComponent setContentTarget(Resource value) { + this.contentTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("title", "string", "The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.", 0, java.lang.Integer.MAX_VALUE, title)); + childrenList.add(new Property("code", "CodeableConcept", "A code identifying the kind of content contained within the section. This must be consistent with the section title.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("section", "@Composition.section", "A nested sub-section within this section.", 0, java.lang.Integer.MAX_VALUE, section)); + childrenList.add(new Property("content", "Reference(Any)", "The content (narrative and data) associated with the section.", 0, java.lang.Integer.MAX_VALUE, content)); + } + + public SectionComponent copy() { + SectionComponent dst = new SectionComponent(); + copyValues(dst); + dst.title = title == null ? null : title.copy(); + dst.code = code == null ? null : code.copy(); + if (section != null) { + dst.section = new ArrayList(); + for (SectionComponent i : section) + dst.section.add(i.copy()); + }; + dst.content = content == null ? null : content.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof SectionComponent)) + return false; + SectionComponent o = (SectionComponent) other; + return compareDeep(title, o.title, true) && compareDeep(code, o.code, true) && compareDeep(section, o.section, true) + && compareDeep(content, o.content, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof SectionComponent)) + return false; + SectionComponent o = (SectionComponent) other; + return compareValues(title, o.title, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (title == null || title.isEmpty()) && (code == null || code.isEmpty()) + && (section == null || section.isEmpty()) && (content == null || content.isEmpty()); + } + + } + + /** + * Logical Identifier for the composition, assigned when created. This identifier stays constant as the composition is changed over time. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=1) + @Description(shortDefinition="Logical identifier of composition (version-independent)", formalDefinition="Logical Identifier for the composition, assigned when created. This identifier stays constant as the composition is changed over time." ) + protected Identifier identifier; + + /** + * The composition editing time, when the composition was last logically changed by the author. + */ + @Child(name="date", type={DateTimeType.class}, order=0, min=1, max=1) + @Description(shortDefinition="Composition editing time", formalDefinition="The composition editing time, when the composition was last logically changed by the author." ) + protected DateTimeType date; + + /** + * Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition. + */ + @Child(name="type", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="Kind of composition (LOINC if possible)", formalDefinition="Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition." ) + protected CodeableConcept type; + + /** + * A categorization for the type of the composition. This may be implied by or derived from the code specified in the Composition Type. + */ + @Child(name="class_", type={CodeableConcept.class}, order=2, min=0, max=1) + @Description(shortDefinition="Categorization of Composition", formalDefinition="A categorization for the type of the composition. This may be implied by or derived from the code specified in the Composition Type." ) + protected CodeableConcept class_; + + /** + * Official human-readable label for the composition. + */ + @Child(name="title", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Human Readable name/title", formalDefinition="Official human-readable label for the composition." ) + protected StringType title; + + /** + * The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document. + */ + @Child(name="status", type={CodeType.class}, order=4, min=1, max=1) + @Description(shortDefinition="preliminary | final | appended | amended | entered-in-error", formalDefinition="The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document." ) + protected Enumeration status; + + /** + * The code specifying the level of confidentiality of the Composition. + */ + @Child(name="confidentiality", type={Coding.class}, order=5, min=1, max=1) + @Description(shortDefinition="As defined by affinity domain", formalDefinition="The code specifying the level of confidentiality of the Composition." ) + protected Coding confidentiality; + + /** + * Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure). + */ + @Child(name="subject", type={Patient.class, Practitioner.class, Group.class, Device.class, Location.class}, order=6, min=1, max=1) + @Description(shortDefinition="Who and/or what the composition is about", formalDefinition="Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure)." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).) + */ + protected Resource subjectTarget; + + /** + * Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.). + */ + @Child(name="author", type={Practitioner.class, Device.class, Patient.class, RelatedPerson.class}, order=7, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Who and/or what authored the composition", formalDefinition="Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.)." ) + protected List author; + /** + * The actual objects that are the target of the reference (Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.).) + */ + protected List authorTarget; + + + /** + * A participant who has attested to the accuracy of the composition/document. + */ + @Child(name="attester", type={}, order=8, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Attests to accuracy of composition", formalDefinition="A participant who has attested to the accuracy of the composition/document." ) + protected List attester; + + /** + * Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information. + */ + @Child(name="custodian", type={Organization.class}, order=9, min=0, max=1) + @Description(shortDefinition="Org which maintains the composition", formalDefinition="Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information." ) + protected Reference custodian; + + /** + * The actual object that is the target of the reference (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.) + */ + protected Organization custodianTarget; + + /** + * The clinical service, such as a colonoscopy or an appendectomy, being documented. + */ + @Child(name="event", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="The clinical service(s) being documented", formalDefinition="The clinical service, such as a colonoscopy or an appendectomy, being documented." ) + protected List event; + + /** + * Describes the clinical encounter or type of care this documentation is associated with. + */ + @Child(name="encounter", type={Encounter.class}, order=11, min=0, max=1) + @Description(shortDefinition="Context of the conposition", formalDefinition="Describes the clinical encounter or type of care this documentation is associated with." ) + protected Reference encounter; + + /** + * The actual object that is the target of the reference (Describes the clinical encounter or type of care this documentation is associated with.) + */ + protected Encounter encounterTarget; + + /** + * The root of the sections that make up the composition. + */ + @Child(name="section", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Composition is broken into sections", formalDefinition="The root of the sections that make up the composition." ) + protected List section; + + private static final long serialVersionUID = 2112290467L; + + public Composition() { + super(); + } + + public Composition(DateTimeType date, CodeableConcept type, Enumeration status, Coding confidentiality, Reference subject) { + super(); + this.date = date; + this.type = type; + this.status = status; + this.confidentiality = confidentiality; + this.subject = subject; + } + + /** + * @return {@link #identifier} (Logical Identifier for the composition, assigned when created. This identifier stays constant as the composition is changed over time.) + */ + public Identifier getIdentifier() { + if (this.identifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Composition.identifier"); + else if (Configuration.doAutoCreate()) + this.identifier = new Identifier(); // cc + return this.identifier; + } + + public boolean hasIdentifier() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + /** + * @param value {@link #identifier} (Logical Identifier for the composition, assigned when created. This identifier stays constant as the composition is changed over time.) + */ + public Composition setIdentifier(Identifier value) { + this.identifier = value; + return this; + } + + /** + * @return {@link #date} (The composition editing time, when the composition was last logically changed by the author.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Composition.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (The composition editing time, when the composition was last logically changed by the author.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public Composition setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return The composition editing time, when the composition was last logically changed by the author. + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value The composition editing time, when the composition was last logically changed by the author. + */ + public Composition setDate(Date value) { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + return this; + } + + /** + * @return {@link #type} (Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Composition.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.) + */ + public Composition setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #class_} (A categorization for the type of the composition. This may be implied by or derived from the code specified in the Composition Type.) + */ + public CodeableConcept getClass_() { + if (this.class_ == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Composition.class_"); + else if (Configuration.doAutoCreate()) + this.class_ = new CodeableConcept(); // cc + return this.class_; + } + + public boolean hasClass_() { + return this.class_ != null && !this.class_.isEmpty(); + } + + /** + * @param value {@link #class_} (A categorization for the type of the composition. This may be implied by or derived from the code specified in the Composition Type.) + */ + public Composition setClass_(CodeableConcept value) { + this.class_ = value; + return this; + } + + /** + * @return {@link #title} (Official human-readable label for the composition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value + */ + public StringType getTitleElement() { + if (this.title == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Composition.title"); + else if (Configuration.doAutoCreate()) + this.title = new StringType(); // bb + return this.title; + } + + public boolean hasTitleElement() { + return this.title != null && !this.title.isEmpty(); + } + + public boolean hasTitle() { + return this.title != null && !this.title.isEmpty(); + } + + /** + * @param value {@link #title} (Official human-readable label for the composition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value + */ + public Composition setTitleElement(StringType value) { + this.title = value; + return this; + } + + /** + * @return Official human-readable label for the composition. + */ + public String getTitle() { + return this.title == null ? null : this.title.getValue(); + } + + /** + * @param value Official human-readable label for the composition. + */ + public Composition setTitle(String value) { + if (Utilities.noString(value)) + this.title = null; + else { + if (this.title == null) + this.title = new StringType(); + this.title.setValue(value); + } + return this; + } + + /** + * @return {@link #status} (The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Composition.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new CompositionStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Composition setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document. + */ + public CompositionStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document. + */ + public Composition setStatus(CompositionStatus value) { + if (this.status == null) + this.status = new Enumeration(new CompositionStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #confidentiality} (The code specifying the level of confidentiality of the Composition.) + */ + public Coding getConfidentiality() { + if (this.confidentiality == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Composition.confidentiality"); + else if (Configuration.doAutoCreate()) + this.confidentiality = new Coding(); // cc + return this.confidentiality; + } + + public boolean hasConfidentiality() { + return this.confidentiality != null && !this.confidentiality.isEmpty(); + } + + /** + * @param value {@link #confidentiality} (The code specifying the level of confidentiality of the Composition.) + */ + public Composition setConfidentiality(Coding value) { + this.confidentiality = value; + return this; + } + + /** + * @return {@link #subject} (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Composition.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).) + */ + public Composition setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).) + */ + public Resource getSubjectTarget() { + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).) + */ + public Composition setSubjectTarget(Resource value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #author} (Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.).) + */ + public List getAuthor() { + if (this.author == null) + this.author = new ArrayList(); + return this.author; + } + + public boolean hasAuthor() { + if (this.author == null) + return false; + for (Reference item : this.author) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #author} (Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.).) + */ + // syntactic sugar + public Reference addAuthor() { //3 + Reference t = new Reference(); + if (this.author == null) + this.author = new ArrayList(); + this.author.add(t); + return t; + } + + /** + * @return {@link #author} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.).) + */ + public List getAuthorTarget() { + if (this.authorTarget == null) + this.authorTarget = new ArrayList(); + return this.authorTarget; + } + + /** + * @return {@link #attester} (A participant who has attested to the accuracy of the composition/document.) + */ + public List getAttester() { + if (this.attester == null) + this.attester = new ArrayList(); + return this.attester; + } + + public boolean hasAttester() { + if (this.attester == null) + return false; + for (CompositionAttesterComponent item : this.attester) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #attester} (A participant who has attested to the accuracy of the composition/document.) + */ + // syntactic sugar + public CompositionAttesterComponent addAttester() { //3 + CompositionAttesterComponent t = new CompositionAttesterComponent(); + if (this.attester == null) + this.attester = new ArrayList(); + this.attester.add(t); + return t; + } + + /** + * @return {@link #custodian} (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.) + */ + public Reference getCustodian() { + if (this.custodian == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Composition.custodian"); + else if (Configuration.doAutoCreate()) + this.custodian = new Reference(); // cc + return this.custodian; + } + + public boolean hasCustodian() { + return this.custodian != null && !this.custodian.isEmpty(); + } + + /** + * @param value {@link #custodian} (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.) + */ + public Composition setCustodian(Reference value) { + this.custodian = value; + return this; + } + + /** + * @return {@link #custodian} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.) + */ + public Organization getCustodianTarget() { + if (this.custodianTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Composition.custodian"); + else if (Configuration.doAutoCreate()) + this.custodianTarget = new Organization(); // aa + return this.custodianTarget; + } + + /** + * @param value {@link #custodian} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.) + */ + public Composition setCustodianTarget(Organization value) { + this.custodianTarget = value; + return this; + } + + /** + * @return {@link #event} (The clinical service, such as a colonoscopy or an appendectomy, being documented.) + */ + public List getEvent() { + if (this.event == null) + this.event = new ArrayList(); + return this.event; + } + + public boolean hasEvent() { + if (this.event == null) + return false; + for (CompositionEventComponent item : this.event) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #event} (The clinical service, such as a colonoscopy or an appendectomy, being documented.) + */ + // syntactic sugar + public CompositionEventComponent addEvent() { //3 + CompositionEventComponent t = new CompositionEventComponent(); + if (this.event == null) + this.event = new ArrayList(); + this.event.add(t); + return t; + } + + /** + * @return {@link #encounter} (Describes the clinical encounter or type of care this documentation is associated with.) + */ + public Reference getEncounter() { + if (this.encounter == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Composition.encounter"); + else if (Configuration.doAutoCreate()) + this.encounter = new Reference(); // cc + return this.encounter; + } + + public boolean hasEncounter() { + return this.encounter != null && !this.encounter.isEmpty(); + } + + /** + * @param value {@link #encounter} (Describes the clinical encounter or type of care this documentation is associated with.) + */ + public Composition setEncounter(Reference value) { + this.encounter = value; + return this; + } + + /** + * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the clinical encounter or type of care this documentation is associated with.) + */ + public Encounter getEncounterTarget() { + if (this.encounterTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Composition.encounter"); + else if (Configuration.doAutoCreate()) + this.encounterTarget = new Encounter(); // aa + return this.encounterTarget; + } + + /** + * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the clinical encounter or type of care this documentation is associated with.) + */ + public Composition setEncounterTarget(Encounter value) { + this.encounterTarget = value; + return this; + } + + /** + * @return {@link #section} (The root of the sections that make up the composition.) + */ + public List getSection() { + if (this.section == null) + this.section = new ArrayList(); + return this.section; + } + + public boolean hasSection() { + if (this.section == null) + return false; + for (SectionComponent item : this.section) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #section} (The root of the sections that make up the composition.) + */ + // syntactic sugar + public SectionComponent addSection() { //3 + SectionComponent t = new SectionComponent(); + if (this.section == null) + this.section = new ArrayList(); + this.section.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Logical Identifier for the composition, assigned when created. This identifier stays constant as the composition is changed over time.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("date", "dateTime", "The composition editing time, when the composition was last logically changed by the author.", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("type", "CodeableConcept", "Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("class", "CodeableConcept", "A categorization for the type of the composition. This may be implied by or derived from the code specified in the Composition Type.", 0, java.lang.Integer.MAX_VALUE, class_)); + childrenList.add(new Property("title", "string", "Official human-readable label for the composition.", 0, java.lang.Integer.MAX_VALUE, title)); + childrenList.add(new Property("status", "code", "The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("confidentiality", "Coding", "The code specifying the level of confidentiality of the Composition.", 0, java.lang.Integer.MAX_VALUE, confidentiality)); + childrenList.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device|Location)", "Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("author", "Reference(Practitioner|Device|Patient|RelatedPerson)", "Identifies who is responsible for the information in the composition. (Not necessarily who typed it in.).", 0, java.lang.Integer.MAX_VALUE, author)); + childrenList.add(new Property("attester", "", "A participant who has attested to the accuracy of the composition/document.", 0, java.lang.Integer.MAX_VALUE, attester)); + childrenList.add(new Property("custodian", "Reference(Organization)", "Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.", 0, java.lang.Integer.MAX_VALUE, custodian)); + childrenList.add(new Property("event", "", "The clinical service, such as a colonoscopy or an appendectomy, being documented.", 0, java.lang.Integer.MAX_VALUE, event)); + childrenList.add(new Property("encounter", "Reference(Encounter)", "Describes the clinical encounter or type of care this documentation is associated with.", 0, java.lang.Integer.MAX_VALUE, encounter)); + childrenList.add(new Property("section", "", "The root of the sections that make up the composition.", 0, java.lang.Integer.MAX_VALUE, section)); + } + + public Composition copy() { + Composition dst = new Composition(); + copyValues(dst); + dst.identifier = identifier == null ? null : identifier.copy(); + dst.date = date == null ? null : date.copy(); + dst.type = type == null ? null : type.copy(); + dst.class_ = class_ == null ? null : class_.copy(); + dst.title = title == null ? null : title.copy(); + dst.status = status == null ? null : status.copy(); + dst.confidentiality = confidentiality == null ? null : confidentiality.copy(); + dst.subject = subject == null ? null : subject.copy(); + if (author != null) { + dst.author = new ArrayList(); + for (Reference i : author) + dst.author.add(i.copy()); + }; + if (attester != null) { + dst.attester = new ArrayList(); + for (CompositionAttesterComponent i : attester) + dst.attester.add(i.copy()); + }; + dst.custodian = custodian == null ? null : custodian.copy(); + if (event != null) { + dst.event = new ArrayList(); + for (CompositionEventComponent i : event) + dst.event.add(i.copy()); + }; + dst.encounter = encounter == null ? null : encounter.copy(); + if (section != null) { + dst.section = new ArrayList(); + for (SectionComponent i : section) + dst.section.add(i.copy()); + }; + return dst; + } + + protected Composition typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Composition)) + return false; + Composition o = (Composition) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(date, o.date, true) && compareDeep(type, o.type, true) + && compareDeep(class_, o.class_, true) && compareDeep(title, o.title, true) && compareDeep(status, o.status, true) + && compareDeep(confidentiality, o.confidentiality, true) && compareDeep(subject, o.subject, true) + && compareDeep(author, o.author, true) && compareDeep(attester, o.attester, true) && compareDeep(custodian, o.custodian, true) + && compareDeep(event, o.event, true) && compareDeep(encounter, o.encounter, true) && compareDeep(section, o.section, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Composition)) + return false; + Composition o = (Composition) other; + return compareValues(date, o.date, true) && compareValues(title, o.title, true) && compareValues(status, o.status, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (date == null || date.isEmpty()) + && (type == null || type.isEmpty()) && (class_ == null || class_.isEmpty()) && (title == null || title.isEmpty()) + && (status == null || status.isEmpty()) && (confidentiality == null || confidentiality.isEmpty()) + && (subject == null || subject.isEmpty()) && (author == null || author.isEmpty()) && (attester == null || attester.isEmpty()) + && (custodian == null || custodian.isEmpty()) && (event == null || event.isEmpty()) && (encounter == null || encounter.isEmpty()) + && (section == null || section.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Composition; + } + + @SearchParamDefinition(name="section-code", path="Composition.section.code", description="Classification of section (recommended)", type="token" ) + public static final String SP_SECTIONCODE = "section-code"; + @SearchParamDefinition(name="status", path="Composition.status", description="preliminary | final | appended | amended | entered-in-error", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="subject", path="Composition.subject", description="Who and/or what the composition is about", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="class", path="Composition.class", description="Categorization of Composition", type="token" ) + public static final String SP_CLASS = "class"; + @SearchParamDefinition(name="period", path="Composition.event.period", description="The period covered by the documentation", type="date" ) + public static final String SP_PERIOD = "period"; + @SearchParamDefinition(name="type", path="Composition.type", description="Kind of composition (LOINC if possible)", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="date", path="Composition.date", description="Composition editing time", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="section", path="Composition.section.content", description="The Content of the section", type="reference" ) + public static final String SP_SECTION = "section"; + @SearchParamDefinition(name="author", path="Composition.author", description="Who and/or what authored the composition", type="reference" ) + public static final String SP_AUTHOR = "author"; + @SearchParamDefinition(name="title", path="Composition.title", description="Human Readable name/title", type="string" ) + public static final String SP_TITLE = "title"; + @SearchParamDefinition(name="patient", path="Composition.subject", description="Who and/or what the composition is about", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="attester", path="Composition.attester.party", description="Who attested the composition", type="reference" ) + public static final String SP_ATTESTER = "attester"; + @SearchParamDefinition(name="confidentiality", path="Composition.confidentiality", description="As defined by affinity domain", type="token" ) + public static final String SP_CONFIDENTIALITY = "confidentiality"; + @SearchParamDefinition(name="context", path="Composition.event.code", description="Code(s) that apply to the event being documented", type="token" ) + public static final String SP_CONTEXT = "context"; + @SearchParamDefinition(name="identifier", path="Composition.identifier", description="Logical identifier of composition (version-independent)", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$1.class new file mode 100644 index 0000000000000000000000000000000000000000..3d50685b64aaf7016c1da95b92ee5da5d8829f7c GIT binary patch literal 1645 zcmbtV-*XdH6#j0SbepiyfGBPK0oIkas6@chfnx2FY-J%oN;XZI;l=G{Z5Ef^y4m2X zGy3L>Gy3YY&ghFcgA6!4>Ztz{!*`;cw1tPFGn?-_-@WIad+xbE^4H@Bj{uy5Q@|TA z@;Hh&^R!NioY62VVouj+h*0Ow-grtS12t`Izi-y zgJZ(Y9_S+&ZxS+yPM(CoT(!z?qG{93(c zw#rwm3f(KVbG2bhiu3zi?A{A=Xm7*C=cwH7v8-CI(ll3?&BA^Q_EdyXF4AsWTyfKC z*-fibJi%wK_#YIVAB?|`LxY^g?}A_P9u9Bk zM0tdAJ15E)DF2z|XXubu^B8hmGT&YD49;Snd>$q*e~x#56%M(DkKmCz*g}t-;&XgK z{t{o~8}fJf0Y8#|!moHheu&@kCpm*xShNBe_ygafhF57VVPajwYp6W~>e99c+PnR@ m6~`GRgA;h2oW(Tp0)JENIV!3+#`R3&{pCsi15Bf~JoyAYV3wx< literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ConceptEquivalence.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ConceptEquivalence.class new file mode 100644 index 0000000000000000000000000000000000000000..d36932c2babf6a2e12cdc7b70cec8ae4d37dfe9b GIT binary patch literal 4832 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ConceptEquivalenceEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ConceptEquivalenceEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..746936fdf88debeb81c9c00428916b4978546d1e GIT binary patch literal 2320 zcmbVOO;;Ob6n-v{%p^?s7``m!vtJ~nZEV%n3PM8&HZ_EnkW$d9Lm0x)$xNI~3hrFE zb>Y%K(Dl>>oMX>XS1w%mlRVxx2}uylqB-#1=f3Zq`|-T@PV(13zy1c`1C)Zeiu*D? z4&nhmkuev*B<5v&D&&HUMIj%`hzq$SBO&CnjHHk&GCmXXk&Kj(k7ax=WLmn5ay^J)WMynfcoxJJY>MT%ge?hQNcfWApEoSST_ALZBhLt3342#3^rj6< z&s2&#y0f9}n7kwJId-vjs3vSHub159w-w`+X6mdEl$2%ZPQuj6WxY&T3#SjXS6a-} ztU@g7I)+u4i==I*5ZgEJ$M*IOCuUe>SL0`6MGk4k>P}a+(zWyc=Ln&!tL0zvaXq16 z@<=3M*cONLyLK%%j{ELGBIk1^Tx+c)X;q3`$GOt}W7a6RX;^)d5Xc$@OLHp@Q+Cwi zXKm*|&%1MNlNT;lw7hFO-_5r*Y)|C^lNrp~6(_H+7~*PsoA$Rw!V0eA1_2UYDEJCr zv$=kH)vkhXpb>n$qnQeJs>-3Ut2+wvLXpdropPn9mlf<*bxU&``%s+gLhmk@^t_>& z2KR}AJ+UQmvmJ3^3JO9ERIH-r=J)ko1^ZPOyGHrIHY_$Ugnp$-YsxhBf@a2@0*AER zMo$n%nntzjSgIH%r%9O3SuZX7(3(2mXH$9Z#ib$D63(3WHA$#-7-6PenuZ~0w>$eJnMlRc zsjN7VQkmrQc!FaGa+%fmM&eO&na!6|*~e=sk&<64m2_*DaI3X|3+DAq&+x>^u6;_v zVEDo}z!^$TJ@PB{MmxfrBw(7~%vZs068@s_vE(7-b%wQZmOPK}&7OeXFd&3^^^48w zAGZ`bgel!Y7bDiNAwt-KSOO*eB`NJwSDOq_&n9$P$W;48%n@agAJwIQx4W-{x)rKCGDrDKfp(WrWvmt%~bVElJZx}#dw zHh*J*IuN2xj8YfI$cO9XM}#EYB^mc9fJF)-LET7`f+rNh7WLo-^a|VRYYWUq|G?xirbHfRdWy{>xXWgOiix_pf0plT`kZYGft~ydM^yA7KB~%l Vh_Y09XA(KgKD@*&p2Ic*{{qojG@<|i literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ConceptMapElementComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ConceptMapElementComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..333e7c9b7202450daaf32a494e53863b897285cd GIT binary patch literal 7814 zcmb_h33wFc8Gipw!fuugNfr$f0S7q@2@q;Ls-Z{-Sfk;Pa4T&myOU&LFJ~uc)K+Rw z&$ilHL#w@1Y>O4E1T_Z&m9w?okDKvbFTUr)_x&iv4(Z?G#Si@O;U;<9DvzCB+~&s*al3Tx zkd3>181Q1ZAJwv~T9#E~r#$TGJzm`D#{}Fo7I$HAEbhjS(9n<{Gw`qv9X_n}VVw^@_Cc4ipZL(}L$?=? z_$i5-oA6UX`7^=tsOWi2q&_ZEpOD!nd*fClW~_;%BArpA zB_2;$x)n*pQwohmW$4+ZjjcVAXqeJU<9f{C%c5|FvV<8n%o2J}DU`$_acM%D`gsb+ zAGGwvMk-`Rl7fmlDpNfP(^_nFMdA?|BFe&a7Uuo3>jJ^rRlEFtZ1u8&&rP_Ohe;HTua1_Ty3-F zk`B?XFtez^qTcq2kmOM~sx55LGhGp)H=;(29j()d#Jjbao=h5Hg_E2WR-aa9o0l-P zq;B=h(%2C2?yklN10ruLA(e-Xq!ACNmXp4!_D%X0y|LGdL>t>9DT^GJcSO45y47nE z_TkGZ%v|C?XidbDv@mWd1lrbZ^Sgh8vRIH=^r6Q$f@fx6EQj^FC~Xj@gvFe7?&jbWykuB+P?E2z^IDhNu7 zlC?&%wMom+&!oI>`ger4R;=6C((2k}LB}QCM3yeBt|pX`G8GQU^h-Xc=W}^ z^Y%t+qCD^H%Zq97BpmMse%47+fSLnMfL@)kg#D@)b%X`xKVE2i%zo!gPIv z*IZs$}*o&tEcpANwnyqY0 zOfz9B%x|%H@8O}v<6Q5x5_3YPp<9NQRqq1Kusb)DIZQ;wGXeZoL{B@2i*x|rL~j7U z!?Qf@vQV5N>&0^cJdYOwco8oJ(1BG7Cmb3&h3Uo6r0ZG$>#&~TY$LIQxy3Z~KDpd^ z@p1sK;P8`**x0 zv;7JU#Z(t05-(j@FSS{Qsaq1gvx4x#;RS zB^Q~iruZ?u!i>bIbW7$UkR?nan$r1&4rSTCy{y93pEhAbaRm91Qxr=6 zQYz!mFHQWB1t{Y$OgwA&yTuar=D~wgIriZc2TwZ-D#WR_Hk^(#+R%=r(pttf%Tri^ zGgDZ}-K_Y-cXznESIO?x!*{Qd-D|mD7H zC)AlJRVz7i4op5}c?c!;@;UW)!1FMs??FjFDh5%yK3KLJWA5DpZ$HM>55l*8H_CUx zBkOi@qsJCoi!l_t4qmk$6>0+}sIxFxosBxR5h<=Jg=az)6ea=rsU?-wKB~G1TXPf& za`AO#zOSqDd|gdn2X~=T)@2QHe0>QuUP@nIMqgh}Utd9AUukPh`}&h3`l!#rY zAIR5N<@@O3LzQz)zMN0t(=GvdzOEeR>+9(2>$&tZBl?<*rF~5!4jaMOH`;o0eEr#? zzOHn9O}XOhT+Zq1!-xBN2ld}VU*Ae!@1(D9qpxpwO?7?!IeeZWC1JhL&1*@s8b`wf zdi981cHGuvy*iEyq3)vWK?K#^wmg=Epj+fFAs?4!9C0pt@>Ae(j?}V}9n!cH6BXJU z?nJFZKPIwqq{3cIS~`0GleeL)bjS9gS8_6Y3cOUgmn!c=xw;=S)dQHL9z-MG$Et^H z2o)$T-;Z)HE<5ranxt?!uHaKl+vw)aF@u;ylcuzfY$9PC<-yv9tf@6TDxe;PPd!E& zA1B-=Fhf0Q>tm+uN39oEQpp!aWKqjwQKM2VE81c4DVp>&S$w9D#V=ComquifQXLkx z1F$$%SUmcGEIvn-&y&R$$l{A+@g=hOB3XQSWEQW&)x%kwN*1RHizAqLAQoRGi?5Nz z*U91=Wbw^B7Qf8G&rb$77OzJ+TYy>Lup84G1~FrOaAxqBU|mUY7PWeIqu%wEJ=G9w z2+nqo!iJM8%Nm$Sa|ZB1$ENK=&r_0?x8DxA1MHtF`!()ADYHK(@J~Pm z1OGpC*?v~;|6-bY7bmG9ETmV?;D2xQcs%Iylwzx=43~Mv;ARj1^UYIkyL1_RLzoDT zY~w#DK8AScr~A(PYs*F){`!7QVFtg0Y5Q@c(;&V4UUOscT9Pc~WP=38$&B%m9S!%P z$!Y9G(^BDhHvdZZpt;|!I+g5JI^7wZtzox@-TD1?UDMdroNnQD!VUn>IQTr3@O!FI z?Wx9iPY_3V#@luVQ0n*Xm!C1VEtCVEpOG%g^Ieql1?7i|qg>$NNTXzTWE>NTqn0?1 zB#ueMF_}1~l_#=+k*TpV(HkmGwbZ+55jW4VyCFMap$_hSJEc*@FUL{8a$`VSWIX4OS;w%=AseFg{ZsPkql>ZOW CIu-f= literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ConceptMapElementMapComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ConceptMapElementMapComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..21ffa3c81ac2bef82068fe0a8750c9e535e8ba41 GIT binary patch literal 10900 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$OtherElementComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$OtherElementComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..8a4ebb9a8c549f355edfecf95367dc27b40f0c3c GIT binary patch literal 6452 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 b_j0?+Vv`p}so*|7kMSqM_ZFPPQ8fM!YwS?F literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ValuesetStatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ValuesetStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..3620bffd984000d97b391b8ad5c02fe998a5accd GIT binary patch literal 2709 zcmbVOTUQfT6#gb8%n*l52k*t2YPhNdTdfx;f)HvniV{Gh^)e(U$>?MzP9`XA|43K= zL7!4w3%crR>r)^4qq_Q?3AYFju1uIYXP?<;fBW+7GyMDCAAbS(8b5X*jJYVj!z~pF z6}O`pz#aKWYq%T5JSde2z!=fCQR4l7_7)1{rX~@d)v4$sd{630qJng_U zJdaZIg$7f@iiVtqyau76prNQ?P`)f_IH%#fh6~cDrQ)T6$n3)O+@gZ6Wz(*Ss_-+u z>DQ_X^pxWWZ^kyORYCDe+VzTwl6@snC|O>@a;m=RJ|;bjFK z8LQ~979PE58|=j+$-jL%gt!=tt^1$I;>T@?>4j!4-N14nU;$z^IFvx zWd)s_&x(R{hMN^crEFCzwz)>YiJZOVW@?Y2q*E(Tv>5p$84=C6H7_UTEScc$UG9v^ z{OTB$&5_XY3bqQmc)2C!>9_<($2Yj504iJ^6}%?j^PXAobqr#Ji86D(wJLO+lalHQ z-||FW$9XCC?pAvzxeAW$t~NMuvu4?O;Yp-x3QjFKuN?P{6KigRSdR3H4eIc~`Y4?E zn3P*;Dpqy8!CM_`_<^r(C>UNWS=CsB*20f*UiB^8j@2CE#PVWQ*lwjP9Dh{7z&>41 znEAC>!S!N}>y=Gzs|qTnn-xoDHMSyz6MJL%C8mTPb4RsS5iCqzO!N^(yJtt*fQnQ17PX?SUuE>@W}6od_Z{rhLG%9DoTLUXycC^ zJaVpY6Yan4vwoE;AzUNMb)qyj{lciEU&|x^KsVHp4QM|jqSTF!##CKLv~C>Q5%jvz zxg&Jd-=jPG9zEGjd}bIM=;fs8_h=Pa( zA{L2QBBIrVsF4EKw(9s3Yb&qC_XuZ=SlcGPe1~WtoCybl9tdY6fzTBQ@%BLISO4Uu zHj*=w4X;DbWFzb7%4FNu(Vuw-WtaSoT3;gZuHqyaHHaxT*%(>UXone+QSu^58UhAq PVN!93&HaocdbIxmvEOBl literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ValuesetStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap$ValuesetStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..582ed89106148cf593b2f74bf3d229ee7a98922d GIT binary patch literal 1818 zcmbVMT~iZR7=8{U+0D9qxL_%5p+JZogp^f4fP-g7(W=Rflb+a2cyQnk$ z{uliNz3WWs1%~?5=kP;1s8cg&Uy1b&-=0G#mm3`25=GU2F8%l@v(t( zIIkm{#0Wmo@u|`mbX-*WGYywCTsCk*h0ZJexsETC{?dSf1s#hTmJGauWhGWLoVL3?J%kf zm_^T%LEg3NbxHTe+}ZP< zg&h>y32gpTAi3dGJa#Hz8^f+Vx3?e2Qn+v=ag}1#E`@&Zbn(c*x3_SKO*A(AC@9HQ zM~!l*6MJ5fH8GC&1fZc{VijKr#LI!b6PoxMMfRBR&aO0ZU3pp{Lnn}B6E~E5x>Ie@ zb!EkNb3rAlN-sPZlfYOfsMV#bk>i$SATaTb_t5hndsDq*pDJ-Jre;m7;iiC~aSOK< z%{%m#HQW`rbgXfk_y{v5CNL$ia;ywp0}&YSrQLHk+$p*>Xo1wF7`6#ko z?)<6lRS%&+IntvQ(*p>dqRj@ezUk$;E>k~o5l5ldLHarO?qX4bKR(K*!7;l za^v*Sf5m)s?u}nhPaUr^@(DV7RF^udi)p@OV-R?k4`rO1OHBDby$NdWGveueh(Bov zd_b9K9(t6VKl+-Xe;`H+C}sYGY4v6H(El5(ZYM4pR;+cdJwv=vhf_o zz2`V_Z=ab4_Atn+L2HO&55xO7`43_GnncoklYtrr@Q9oPp4D*%AySBN0lT=2$5_S_ z==?%+jFsMag zl3zRUJ>?Hf_9IT>Cye4}ruzkx__YZeN57Fw4(Et;rj0b+MoOkL|6*hhqbg%hcNso` uvkX(jCfnhOG<$LCP;6H@{g`cXn`09c$22~qwrGvu3MN;^IqWOAisb)0+sh6B literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ConceptMap.class new file mode 100644 index 0000000000000000000000000000000000000000..cd54fe8c16aa0318a03e75b0acfa9edeaece9df4 GIT binary patch literal 21909 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 { - public ValuesetStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("draft".equals(codeString)) - return ValuesetStatus.DRAFT; - if ("active".equals(codeString)) - return ValuesetStatus.ACTIVE; - if ("retired".equals(codeString)) - return ValuesetStatus.RETIRED; - throw new IllegalArgumentException("Unknown ValuesetStatus code '"+codeString+"'"); - } - public String toCode(ValuesetStatus code) throws IllegalArgumentException { - if (code == ValuesetStatus.DRAFT) - return "draft"; - if (code == ValuesetStatus.ACTIVE) - return "active"; - if (code == ValuesetStatus.RETIRED) - return "retired"; - return "?"; - } - } - - public enum ConceptEquivalence implements FhirEnum { - /** - * The definitions of the concepts mean the same thing (including when structural implications of meaning are considered) (i.e. extensionally identical). - */ - EQUIVALENT, - /** - * The definitions of the concepts are exactly the same (i.e. only grammatical differences) and structural implications of meaning are identifical or irrelevant (i.e. intensionally identical). - */ - EQUAL, - /** - * The target mapping is wider in meaning than the source concept. - */ - WIDER, - /** - * The target mapping subsumes the meaning of the source concept (e.g. the source is-a target). - */ - SUBSUMES, - /** - * The target mapping is narrower in meaning that the source concept. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when atempting to use these mappings operationally. - */ - NARROWER, - /** - * The target mapping specialises the meaning of the source concept (e.g. the target is-a source). - */ - SPECIALISES, - /** - * The target mapping overlaps with the source concept, but both source and target cover additional meaning, or the definitions are imprecise and it is uncertain whether they have the same boundaries to their meaning. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when atempting to use these mappings operationally. - */ - INEXACT, - /** - * There is no match for this concept in the destination concept system. - */ - UNMATCHED, - /** - * This is an explicit assertion that there is no mapping between the source and target concept. - */ - DISJOINT, - /** - * added to help the parsers - */ - NULL; - - public static final ConceptEquivalenceEnumFactory ENUM_FACTORY = new ConceptEquivalenceEnumFactory(); - - public static ConceptEquivalence fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("equivalent".equals(codeString)) - return EQUIVALENT; - if ("equal".equals(codeString)) - return EQUAL; - if ("wider".equals(codeString)) - return WIDER; - if ("subsumes".equals(codeString)) - return SUBSUMES; - if ("narrower".equals(codeString)) - return NARROWER; - if ("specialises".equals(codeString)) - return SPECIALISES; - if ("inexact".equals(codeString)) - return INEXACT; - if ("unmatched".equals(codeString)) - return UNMATCHED; - if ("disjoint".equals(codeString)) - return DISJOINT; - throw new IllegalArgumentException("Unknown ConceptEquivalence code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case EQUIVALENT: return "equivalent"; - case EQUAL: return "equal"; - case WIDER: return "wider"; - case SUBSUMES: return "subsumes"; - case NARROWER: return "narrower"; - case SPECIALISES: return "specialises"; - case INEXACT: return "inexact"; - case UNMATCHED: return "unmatched"; - case DISJOINT: return "disjoint"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case EQUIVALENT: return ""; - case EQUAL: return ""; - case WIDER: return ""; - case SUBSUMES: return ""; - case NARROWER: return ""; - case SPECIALISES: return ""; - case INEXACT: return ""; - case UNMATCHED: return ""; - case DISJOINT: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case EQUIVALENT: return "The definitions of the concepts mean the same thing (including when structural implications of meaning are considered) (i.e. extensionally identical)."; - case EQUAL: return "The definitions of the concepts are exactly the same (i.e. only grammatical differences) and structural implications of meaning are identifical or irrelevant (i.e. intensionally identical)."; - case WIDER: return "The target mapping is wider in meaning than the source concept."; - case SUBSUMES: return "The target mapping subsumes the meaning of the source concept (e.g. the source is-a target)."; - case NARROWER: return "The target mapping is narrower in meaning that the source concept. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when atempting to use these mappings operationally."; - case SPECIALISES: return "The target mapping specialises the meaning of the source concept (e.g. the target is-a source)."; - case INEXACT: return "The target mapping overlaps with the source concept, but both source and target cover additional meaning, or the definitions are imprecise and it is uncertain whether they have the same boundaries to their meaning. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when atempting to use these mappings operationally."; - case UNMATCHED: return "There is no match for this concept in the destination concept system."; - case DISJOINT: return "This is an explicit assertion that there is no mapping between the source and target concept."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case EQUIVALENT: return "equivalent"; - case EQUAL: return "equal"; - case WIDER: return "wider"; - case SUBSUMES: return "subsumes"; - case NARROWER: return "narrower"; - case SPECIALISES: return "specialises"; - case INEXACT: return "inexact"; - case UNMATCHED: return "unmatched"; - case DISJOINT: return "disjoint"; - default: return "?"; - } - } - } - - public static class ConceptEquivalenceEnumFactory implements EnumFactory { - public ConceptEquivalence fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("equivalent".equals(codeString)) - return ConceptEquivalence.EQUIVALENT; - if ("equal".equals(codeString)) - return ConceptEquivalence.EQUAL; - if ("wider".equals(codeString)) - return ConceptEquivalence.WIDER; - if ("subsumes".equals(codeString)) - return ConceptEquivalence.SUBSUMES; - if ("narrower".equals(codeString)) - return ConceptEquivalence.NARROWER; - if ("specialises".equals(codeString)) - return ConceptEquivalence.SPECIALISES; - if ("inexact".equals(codeString)) - return ConceptEquivalence.INEXACT; - if ("unmatched".equals(codeString)) - return ConceptEquivalence.UNMATCHED; - if ("disjoint".equals(codeString)) - return ConceptEquivalence.DISJOINT; - throw new IllegalArgumentException("Unknown ConceptEquivalence code '"+codeString+"'"); - } - public String toCode(ConceptEquivalence code) throws IllegalArgumentException { - if (code == ConceptEquivalence.EQUIVALENT) - return "equivalent"; - if (code == ConceptEquivalence.EQUAL) - return "equal"; - if (code == ConceptEquivalence.WIDER) - return "wider"; - if (code == ConceptEquivalence.SUBSUMES) - return "subsumes"; - if (code == ConceptEquivalence.NARROWER) - return "narrower"; - if (code == ConceptEquivalence.SPECIALISES) - return "specialises"; - if (code == ConceptEquivalence.INEXACT) - return "inexact"; - if (code == ConceptEquivalence.UNMATCHED) - return "unmatched"; - if (code == ConceptEquivalence.DISJOINT) - return "disjoint"; - return "?"; - } - } - - @Block() - public static class ConceptMapElementComponent extends BackboneElement { - /** - * Code System (if the source is a value value set that crosses more than one code system). - */ - @Child(name="codeSystem", type={UriType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Code System (if value set crosses code systems)", formalDefinition="Code System (if the source is a value value set that crosses more than one code system)." ) - protected UriType codeSystem; - - /** - * Identity (code or path) or the element/item being mapped. - */ - @Child(name="code", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Identifies element being mapped", formalDefinition="Identity (code or path) or the element/item being mapped." ) - protected CodeType code; - - /** - * A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value. - */ - @Child(name="dependsOn", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Other elements required for this mapping (from context)", formalDefinition="A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value." ) - protected List dependsOn; - - /** - * A concept from the target value set that this concept maps to. - */ - @Child(name="map", type={}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Target of this map", formalDefinition="A concept from the target value set that this concept maps to." ) - protected List map; - - private static final long serialVersionUID = 2079040744L; - - public ConceptMapElementComponent() { - super(); - } - - /** - * @return {@link #codeSystem} (Code System (if the source is a value value set that crosses more than one code system).). This is the underlying object with id, value and extensions. The accessor "getCodeSystem" gives direct access to the value - */ - public UriType getCodeSystemElement() { - if (this.codeSystem == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMapElementComponent.codeSystem"); - else if (Configuration.doAutoCreate()) - this.codeSystem = new UriType(); - return this.codeSystem; - } - - public boolean hasCodeSystemElement() { - return this.codeSystem != null && !this.codeSystem.isEmpty(); - } - - public boolean hasCodeSystem() { - return this.codeSystem != null && !this.codeSystem.isEmpty(); - } - - /** - * @param value {@link #codeSystem} (Code System (if the source is a value value set that crosses more than one code system).). This is the underlying object with id, value and extensions. The accessor "getCodeSystem" gives direct access to the value - */ - public ConceptMapElementComponent setCodeSystemElement(UriType value) { - this.codeSystem = value; - return this; - } - - /** - * @return Code System (if the source is a value value set that crosses more than one code system). - */ - public String getCodeSystem() { - return this.codeSystem == null ? null : this.codeSystem.getValue(); - } - - /** - * @param value Code System (if the source is a value value set that crosses more than one code system). - */ - public ConceptMapElementComponent setCodeSystem(String value) { - if (Utilities.noString(value)) - this.codeSystem = null; - else { - if (this.codeSystem == null) - this.codeSystem = new UriType(); - this.codeSystem.setValue(value); - } - return this; - } - - /** - * @return {@link #code} (Identity (code or path) or the element/item being mapped.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public CodeType getCodeElement() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMapElementComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeType(); - return this.code; - } - - public boolean hasCodeElement() { - return this.code != null && !this.code.isEmpty(); - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Identity (code or path) or the element/item being mapped.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public ConceptMapElementComponent setCodeElement(CodeType value) { - this.code = value; - return this; - } - - /** - * @return Identity (code or path) or the element/item being mapped. - */ - public String getCode() { - return this.code == null ? null : this.code.getValue(); - } - - /** - * @param value Identity (code or path) or the element/item being mapped. - */ - public ConceptMapElementComponent setCode(String value) { - if (Utilities.noString(value)) - this.code = null; - else { - if (this.code == null) - this.code = new CodeType(); - this.code.setValue(value); - } - return this; - } - - /** - * @return {@link #dependsOn} (A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value.) - */ - public List getDependsOn() { - if (this.dependsOn == null) - this.dependsOn = new ArrayList(); - return this.dependsOn; - } - - public boolean hasDependsOn() { - if (this.dependsOn == null) - return false; - for (OtherElementComponent item : this.dependsOn) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #dependsOn} (A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value.) - */ - // syntactic sugar - public OtherElementComponent addDependsOn() { //3 - OtherElementComponent t = new OtherElementComponent(); - if (this.dependsOn == null) - this.dependsOn = new ArrayList(); - this.dependsOn.add(t); - return t; - } - - /** - * @return {@link #map} (A concept from the target value set that this concept maps to.) - */ - public List getMap() { - if (this.map == null) - this.map = new ArrayList(); - return this.map; - } - - public boolean hasMap() { - if (this.map == null) - return false; - for (ConceptMapElementMapComponent item : this.map) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #map} (A concept from the target value set that this concept maps to.) - */ - // syntactic sugar - public ConceptMapElementMapComponent addMap() { //3 - ConceptMapElementMapComponent t = new ConceptMapElementMapComponent(); - if (this.map == null) - this.map = new ArrayList(); - this.map.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("codeSystem", "uri", "Code System (if the source is a value value set that crosses more than one code system).", 0, java.lang.Integer.MAX_VALUE, codeSystem)); - childrenList.add(new Property("code", "code", "Identity (code or path) or the element/item being mapped.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("dependsOn", "", "A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value.", 0, java.lang.Integer.MAX_VALUE, dependsOn)); - childrenList.add(new Property("map", "", "A concept from the target value set that this concept maps to.", 0, java.lang.Integer.MAX_VALUE, map)); - } - - public ConceptMapElementComponent copy() { - ConceptMapElementComponent dst = new ConceptMapElementComponent(); - copyValues(dst); - dst.codeSystem = codeSystem == null ? null : codeSystem.copy(); - dst.code = code == null ? null : code.copy(); - if (dependsOn != null) { - dst.dependsOn = new ArrayList(); - for (OtherElementComponent i : dependsOn) - dst.dependsOn.add(i.copy()); - }; - if (map != null) { - dst.map = new ArrayList(); - for (ConceptMapElementMapComponent i : map) - dst.map.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (codeSystem == null || codeSystem.isEmpty()) && (code == null || code.isEmpty()) - && (dependsOn == null || dependsOn.isEmpty()) && (map == null || map.isEmpty()); - } - - } - - @Block() - public static class OtherElementComponent extends BackboneElement { - /** - * A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition. - */ - @Child(name="element", type={UriType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Reference to element/field/valueset mapping depends on", formalDefinition="A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition." ) - protected UriType element; - - /** - * The code system of the dependency code (if the source/dependency is a value set that cross code systems). - */ - @Child(name="codeSystem", type={UriType.class}, order=2, min=1, max=1) - @Description(shortDefinition="Code System (if necessary)", formalDefinition="The code system of the dependency code (if the source/dependency is a value set that cross code systems)." ) - protected UriType codeSystem; - - /** - * Identity (code or path) or the element/item that the map depends on / refers to. - */ - @Child(name="code", type={StringType.class}, order=3, min=1, max=1) - @Description(shortDefinition="Value of the referenced element", formalDefinition="Identity (code or path) or the element/item that the map depends on / refers to." ) - protected StringType code; - - private static final long serialVersionUID = 1488522448L; - - public OtherElementComponent() { - super(); - } - - public OtherElementComponent(UriType element, UriType codeSystem, StringType code) { - super(); - this.element = element; - this.codeSystem = codeSystem; - this.code = code; - } - - /** - * @return {@link #element} (A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition.). This is the underlying object with id, value and extensions. The accessor "getElement" gives direct access to the value - */ - public UriType getElementElement() { - if (this.element == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create OtherElementComponent.element"); - else if (Configuration.doAutoCreate()) - this.element = new UriType(); - return this.element; - } - - public boolean hasElementElement() { - return this.element != null && !this.element.isEmpty(); - } - - public boolean hasElement() { - return this.element != null && !this.element.isEmpty(); - } - - /** - * @param value {@link #element} (A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition.). This is the underlying object with id, value and extensions. The accessor "getElement" gives direct access to the value - */ - public OtherElementComponent setElementElement(UriType value) { - this.element = value; - return this; - } - - /** - * @return A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition. - */ - public String getElement() { - return this.element == null ? null : this.element.getValue(); - } - - /** - * @param value A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition. - */ - public OtherElementComponent setElement(String value) { - if (this.element == null) - this.element = new UriType(); - this.element.setValue(value); - return this; - } - - /** - * @return {@link #codeSystem} (The code system of the dependency code (if the source/dependency is a value set that cross code systems).). This is the underlying object with id, value and extensions. The accessor "getCodeSystem" gives direct access to the value - */ - public UriType getCodeSystemElement() { - if (this.codeSystem == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create OtherElementComponent.codeSystem"); - else if (Configuration.doAutoCreate()) - this.codeSystem = new UriType(); - return this.codeSystem; - } - - public boolean hasCodeSystemElement() { - return this.codeSystem != null && !this.codeSystem.isEmpty(); - } - - public boolean hasCodeSystem() { - return this.codeSystem != null && !this.codeSystem.isEmpty(); - } - - /** - * @param value {@link #codeSystem} (The code system of the dependency code (if the source/dependency is a value set that cross code systems).). This is the underlying object with id, value and extensions. The accessor "getCodeSystem" gives direct access to the value - */ - public OtherElementComponent setCodeSystemElement(UriType value) { - this.codeSystem = value; - return this; - } - - /** - * @return The code system of the dependency code (if the source/dependency is a value set that cross code systems). - */ - public String getCodeSystem() { - return this.codeSystem == null ? null : this.codeSystem.getValue(); - } - - /** - * @param value The code system of the dependency code (if the source/dependency is a value set that cross code systems). - */ - public OtherElementComponent setCodeSystem(String value) { - if (this.codeSystem == null) - this.codeSystem = new UriType(); - this.codeSystem.setValue(value); - return this; - } - - /** - * @return {@link #code} (Identity (code or path) or the element/item that the map depends on / refers to.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public StringType getCodeElement() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create OtherElementComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new StringType(); - return this.code; - } - - public boolean hasCodeElement() { - return this.code != null && !this.code.isEmpty(); - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Identity (code or path) or the element/item that the map depends on / refers to.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public OtherElementComponent setCodeElement(StringType value) { - this.code = value; - return this; - } - - /** - * @return Identity (code or path) or the element/item that the map depends on / refers to. - */ - public String getCode() { - return this.code == null ? null : this.code.getValue(); - } - - /** - * @param value Identity (code or path) or the element/item that the map depends on / refers to. - */ - public OtherElementComponent setCode(String value) { - if (this.code == null) - this.code = new StringType(); - this.code.setValue(value); - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("element", "uri", "A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition.", 0, java.lang.Integer.MAX_VALUE, element)); - childrenList.add(new Property("codeSystem", "uri", "The code system of the dependency code (if the source/dependency is a value set that cross code systems).", 0, java.lang.Integer.MAX_VALUE, codeSystem)); - childrenList.add(new Property("code", "string", "Identity (code or path) or the element/item that the map depends on / refers to.", 0, java.lang.Integer.MAX_VALUE, code)); - } - - public OtherElementComponent copy() { - OtherElementComponent dst = new OtherElementComponent(); - copyValues(dst); - dst.element = element == null ? null : element.copy(); - dst.codeSystem = codeSystem == null ? null : codeSystem.copy(); - dst.code = code == null ? null : code.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (element == null || element.isEmpty()) && (codeSystem == null || codeSystem.isEmpty()) - && (code == null || code.isEmpty()); - } - - } - - @Block() - public static class ConceptMapElementMapComponent extends BackboneElement { - /** - * The code system of the target code (if the target is a value set that cross code systems). - */ - @Child(name="codeSystem", type={UriType.class}, order=1, min=0, max=1) - @Description(shortDefinition="System of the target (if necessary)", formalDefinition="The code system of the target code (if the target is a value set that cross code systems)." ) - protected UriType codeSystem; - - /** - * Identity (code or path) or the element/item that the map refers to. - */ - @Child(name="code", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Code that identifies the target element", formalDefinition="Identity (code or path) or the element/item that the map refers to." ) - protected CodeType code; - - /** - * The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target. - */ - @Child(name="equivalence", type={CodeType.class}, order=3, min=1, max=1) - @Description(shortDefinition="equivalent | equal | wider | subsumes | narrower | specialises | inexact | unmatched | disjoint", formalDefinition="The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target." ) - protected Enumeration equivalence; - - /** - * A description of status/issues in mapping that conveys additional information not represented in the structured data. - */ - @Child(name="comments", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Description of status/issues in mapping", formalDefinition="A description of status/issues in mapping that conveys additional information not represented in the structured data." ) - protected StringType comments; - - /** - * A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on. - */ - @Child(name="product", type={OtherElementComponent.class}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Other concepts that this mapping also produces", formalDefinition="A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on." ) - protected List product; - - private static final long serialVersionUID = 606421694L; - - public ConceptMapElementMapComponent() { - super(); - } - - public ConceptMapElementMapComponent(Enumeration equivalence) { - super(); - this.equivalence = equivalence; - } - - /** - * @return {@link #codeSystem} (The code system of the target code (if the target is a value set that cross code systems).). This is the underlying object with id, value and extensions. The accessor "getCodeSystem" gives direct access to the value - */ - public UriType getCodeSystemElement() { - if (this.codeSystem == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMapElementMapComponent.codeSystem"); - else if (Configuration.doAutoCreate()) - this.codeSystem = new UriType(); - return this.codeSystem; - } - - public boolean hasCodeSystemElement() { - return this.codeSystem != null && !this.codeSystem.isEmpty(); - } - - public boolean hasCodeSystem() { - return this.codeSystem != null && !this.codeSystem.isEmpty(); - } - - /** - * @param value {@link #codeSystem} (The code system of the target code (if the target is a value set that cross code systems).). This is the underlying object with id, value and extensions. The accessor "getCodeSystem" gives direct access to the value - */ - public ConceptMapElementMapComponent setCodeSystemElement(UriType value) { - this.codeSystem = value; - return this; - } - - /** - * @return The code system of the target code (if the target is a value set that cross code systems). - */ - public String getCodeSystem() { - return this.codeSystem == null ? null : this.codeSystem.getValue(); - } - - /** - * @param value The code system of the target code (if the target is a value set that cross code systems). - */ - public ConceptMapElementMapComponent setCodeSystem(String value) { - if (Utilities.noString(value)) - this.codeSystem = null; - else { - if (this.codeSystem == null) - this.codeSystem = new UriType(); - this.codeSystem.setValue(value); - } - return this; - } - - /** - * @return {@link #code} (Identity (code or path) or the element/item that the map refers to.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public CodeType getCodeElement() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMapElementMapComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeType(); - return this.code; - } - - public boolean hasCodeElement() { - return this.code != null && !this.code.isEmpty(); - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Identity (code or path) or the element/item that the map refers to.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public ConceptMapElementMapComponent setCodeElement(CodeType value) { - this.code = value; - return this; - } - - /** - * @return Identity (code or path) or the element/item that the map refers to. - */ - public String getCode() { - return this.code == null ? null : this.code.getValue(); - } - - /** - * @param value Identity (code or path) or the element/item that the map refers to. - */ - public ConceptMapElementMapComponent setCode(String value) { - if (Utilities.noString(value)) - this.code = null; - else { - if (this.code == null) - this.code = new CodeType(); - this.code.setValue(value); - } - return this; - } - - /** - * @return {@link #equivalence} (The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target.). This is the underlying object with id, value and extensions. The accessor "getEquivalence" gives direct access to the value - */ - public Enumeration getEquivalenceElement() { - if (this.equivalence == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMapElementMapComponent.equivalence"); - else if (Configuration.doAutoCreate()) - this.equivalence = new Enumeration(); - return this.equivalence; - } - - public boolean hasEquivalenceElement() { - return this.equivalence != null && !this.equivalence.isEmpty(); - } - - public boolean hasEquivalence() { - return this.equivalence != null && !this.equivalence.isEmpty(); - } - - /** - * @param value {@link #equivalence} (The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target.). This is the underlying object with id, value and extensions. The accessor "getEquivalence" gives direct access to the value - */ - public ConceptMapElementMapComponent setEquivalenceElement(Enumeration value) { - this.equivalence = value; - return this; - } - - /** - * @return The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target. - */ - public ConceptEquivalence getEquivalence() { - return this.equivalence == null ? null : this.equivalence.getValue(); - } - - /** - * @param value The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target. - */ - public ConceptMapElementMapComponent setEquivalence(ConceptEquivalence value) { - if (this.equivalence == null) - this.equivalence = new Enumeration(ConceptEquivalence.ENUM_FACTORY); - this.equivalence.setValue(value); - return this; - } - - /** - * @return {@link #comments} (A description of status/issues in mapping that conveys additional information not represented in the structured data.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value - */ - public StringType getCommentsElement() { - if (this.comments == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMapElementMapComponent.comments"); - else if (Configuration.doAutoCreate()) - this.comments = new StringType(); - return this.comments; - } - - public boolean hasCommentsElement() { - return this.comments != null && !this.comments.isEmpty(); - } - - public boolean hasComments() { - return this.comments != null && !this.comments.isEmpty(); - } - - /** - * @param value {@link #comments} (A description of status/issues in mapping that conveys additional information not represented in the structured data.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value - */ - public ConceptMapElementMapComponent setCommentsElement(StringType value) { - this.comments = value; - return this; - } - - /** - * @return A description of status/issues in mapping that conveys additional information not represented in the structured data. - */ - public String getComments() { - return this.comments == null ? null : this.comments.getValue(); - } - - /** - * @param value A description of status/issues in mapping that conveys additional information not represented in the structured data. - */ - public ConceptMapElementMapComponent setComments(String value) { - if (Utilities.noString(value)) - this.comments = null; - else { - if (this.comments == null) - this.comments = new StringType(); - this.comments.setValue(value); - } - return this; - } - - /** - * @return {@link #product} (A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on.) - */ - public List getProduct() { - if (this.product == null) - this.product = new ArrayList(); - return this.product; - } - - public boolean hasProduct() { - if (this.product == null) - return false; - for (OtherElementComponent item : this.product) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #product} (A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on.) - */ - // syntactic sugar - public OtherElementComponent addProduct() { //3 - OtherElementComponent t = new OtherElementComponent(); - if (this.product == null) - this.product = new ArrayList(); - this.product.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("codeSystem", "uri", "The code system of the target code (if the target is a value set that cross code systems).", 0, java.lang.Integer.MAX_VALUE, codeSystem)); - childrenList.add(new Property("code", "code", "Identity (code or path) or the element/item that the map refers to.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("equivalence", "code", "The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target.", 0, java.lang.Integer.MAX_VALUE, equivalence)); - childrenList.add(new Property("comments", "string", "A description of status/issues in mapping that conveys additional information not represented in the structured data.", 0, java.lang.Integer.MAX_VALUE, comments)); - childrenList.add(new Property("product", "@ConceptMap.element.dependsOn", "A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on.", 0, java.lang.Integer.MAX_VALUE, product)); - } - - public ConceptMapElementMapComponent copy() { - ConceptMapElementMapComponent dst = new ConceptMapElementMapComponent(); - copyValues(dst); - dst.codeSystem = codeSystem == null ? null : codeSystem.copy(); - dst.code = code == null ? null : code.copy(); - dst.equivalence = equivalence == null ? null : equivalence.copy(); - dst.comments = comments == null ? null : comments.copy(); - if (product != null) { - dst.product = new ArrayList(); - for (OtherElementComponent i : product) - dst.product.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (codeSystem == null || codeSystem.isEmpty()) && (code == null || code.isEmpty()) - && (equivalence == null || equivalence.isEmpty()) && (comments == null || comments.isEmpty()) - && (product == null || product.isEmpty()); - } - - } - - /** - * The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI). - */ - @Child(name="identifier", type={StringType.class}, order=-1, min=0, max=1) - @Description(shortDefinition="Logical id to reference this concept map", formalDefinition="The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI)." ) - protected StringType identifier; - - /** - * The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. - */ - @Child(name="version", type={StringType.class}, order=0, min=0, max=1) - @Description(shortDefinition="Logical id for this version of the concept map", formalDefinition="The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp." ) - protected StringType version; - - /** - * A free text natural language name describing the concept map. - */ - @Child(name="name", type={StringType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Informal name for this concept map", formalDefinition="A free text natural language name describing the concept map." ) - protected StringType name; - - /** - * The name of the individual or organization that published the concept map. - */ - @Child(name="publisher", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Name of the publisher (Organization or individual)", formalDefinition="The name of the individual or organization that published the concept map." ) - protected StringType publisher; - - /** - * Contacts of the publisher to assist a user in finding and communicating with the publisher. - */ - @Child(name="telecom", type={ContactPoint.class}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Contact information of the publisher", formalDefinition="Contacts of the publisher to assist a user in finding and communicating with the publisher." ) - protected List telecom; - - /** - * A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc. - */ - @Child(name="description", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Human language description of the concept map", formalDefinition="A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc." ) - protected StringType description; - - /** - * A copyright statement relating to the concept map and/or its contents. - */ - @Child(name="copyright", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="About the concept map or its content", formalDefinition="A copyright statement relating to the concept map and/or its contents." ) - protected StringType copyright; - - /** - * The status of the concept map. - */ - @Child(name="status", type={CodeType.class}, order=6, min=1, max=1) - @Description(shortDefinition="draft | active | retired", formalDefinition="The status of the concept map." ) - protected Enumeration status; - - /** - * This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. - */ - @Child(name="experimental", type={BooleanType.class}, order=7, min=0, max=1) - @Description(shortDefinition="If for testing purposes, not real usage", formalDefinition="This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage." ) - protected BooleanType experimental; - - /** - * The date that the concept map status was last changed. - */ - @Child(name="date", type={DateTimeType.class}, order=8, min=0, max=1) - @Description(shortDefinition="Date for given status", formalDefinition="The date that the concept map status was last changed." ) - protected DateTimeType date; - - /** - * The source value set that specifies the concepts that are being mapped. - */ - @Child(name="source", type={UriType.class, ValueSet.class, Profile.class}, order=9, min=1, max=1) - @Description(shortDefinition="Identifies the source of the concepts which are being mapped", formalDefinition="The source value set that specifies the concepts that are being mapped." ) - protected Type source; - - /** - * The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made. - */ - @Child(name="target", type={UriType.class, ValueSet.class, Profile.class}, order=10, min=1, max=1) - @Description(shortDefinition="Provides context to the mappings", formalDefinition="The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made." ) - protected Type target; - - /** - * Mappings for an individual concept in the source to one or more concepts in the target. - */ - @Child(name="element", type={}, order=11, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Mappings for a concept from the source set", formalDefinition="Mappings for an individual concept in the source to one or more concepts in the target." ) - protected List element; - - private static final long serialVersionUID = 1130142902L; - - public ConceptMap() { - super(); - } - - public ConceptMap(Enumeration status, Type source, Type target) { - super(); - this.status = status; - this.source = source; - this.target = target; - } - - /** - * @return {@link #identifier} (The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).). This is the underlying object with id, value and extensions. The accessor "getIdentifier" gives direct access to the value - */ - public StringType getIdentifierElement() { - if (this.identifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMap.identifier"); - else if (Configuration.doAutoCreate()) - this.identifier = new StringType(); - return this.identifier; - } - - public boolean hasIdentifierElement() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - public boolean hasIdentifier() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - /** - * @param value {@link #identifier} (The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).). This is the underlying object with id, value and extensions. The accessor "getIdentifier" gives direct access to the value - */ - public ConceptMap setIdentifierElement(StringType value) { - this.identifier = value; - return this; - } - - /** - * @return The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI). - */ - public String getIdentifier() { - return this.identifier == null ? null : this.identifier.getValue(); - } - - /** - * @param value The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI). - */ - public ConceptMap setIdentifier(String value) { - if (Utilities.noString(value)) - this.identifier = null; - else { - if (this.identifier == null) - this.identifier = new StringType(); - this.identifier.setValue(value); - } - return this; - } - - /** - * @return {@link #version} (The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value - */ - public StringType getVersionElement() { - if (this.version == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMap.version"); - else if (Configuration.doAutoCreate()) - this.version = new StringType(); - return this.version; - } - - public boolean hasVersionElement() { - return this.version != null && !this.version.isEmpty(); - } - - public boolean hasVersion() { - return this.version != null && !this.version.isEmpty(); - } - - /** - * @param value {@link #version} (The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value - */ - public ConceptMap setVersionElement(StringType value) { - this.version = value; - return this; - } - - /** - * @return The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. - */ - public String getVersion() { - return this.version == null ? null : this.version.getValue(); - } - - /** - * @param value The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. - */ - public ConceptMap setVersion(String value) { - if (Utilities.noString(value)) - this.version = null; - else { - if (this.version == null) - this.version = new StringType(); - this.version.setValue(value); - } - return this; - } - - /** - * @return {@link #name} (A free text natural language name describing the concept map.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMap.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (A free text natural language name describing the concept map.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public ConceptMap setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return A free text natural language name describing the concept map. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value A free text natural language name describing the concept map. - */ - public ConceptMap setName(String value) { - if (Utilities.noString(value)) - this.name = null; - else { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - } - return this; - } - - /** - * @return {@link #publisher} (The name of the individual or organization that published the concept map.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value - */ - public StringType getPublisherElement() { - if (this.publisher == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMap.publisher"); - else if (Configuration.doAutoCreate()) - this.publisher = new StringType(); - return this.publisher; - } - - public boolean hasPublisherElement() { - return this.publisher != null && !this.publisher.isEmpty(); - } - - public boolean hasPublisher() { - return this.publisher != null && !this.publisher.isEmpty(); - } - - /** - * @param value {@link #publisher} (The name of the individual or organization that published the concept map.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value - */ - public ConceptMap setPublisherElement(StringType value) { - this.publisher = value; - return this; - } - - /** - * @return The name of the individual or organization that published the concept map. - */ - public String getPublisher() { - return this.publisher == null ? null : this.publisher.getValue(); - } - - /** - * @param value The name of the individual or organization that published the concept map. - */ - public ConceptMap setPublisher(String value) { - if (Utilities.noString(value)) - this.publisher = null; - else { - if (this.publisher == null) - this.publisher = new StringType(); - this.publisher.setValue(value); - } - return this; - } - - /** - * @return {@link #telecom} (Contacts of the publisher to assist a user in finding and communicating with the publisher.) - */ - public List getTelecom() { - if (this.telecom == null) - this.telecom = new ArrayList(); - return this.telecom; - } - - public boolean hasTelecom() { - if (this.telecom == null) - return false; - for (ContactPoint item : this.telecom) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #telecom} (Contacts of the publisher to assist a user in finding and communicating with the publisher.) - */ - // syntactic sugar - public ContactPoint addTelecom() { //3 - ContactPoint t = new ContactPoint(); - if (this.telecom == null) - this.telecom = new ArrayList(); - this.telecom.add(t); - return t; - } - - /** - * @return {@link #description} (A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMap.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public ConceptMap setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc. - */ - public ConceptMap setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #copyright} (A copyright statement relating to the concept map and/or its contents.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value - */ - public StringType getCopyrightElement() { - if (this.copyright == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMap.copyright"); - else if (Configuration.doAutoCreate()) - this.copyright = new StringType(); - return this.copyright; - } - - public boolean hasCopyrightElement() { - return this.copyright != null && !this.copyright.isEmpty(); - } - - public boolean hasCopyright() { - return this.copyright != null && !this.copyright.isEmpty(); - } - - /** - * @param value {@link #copyright} (A copyright statement relating to the concept map and/or its contents.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value - */ - public ConceptMap setCopyrightElement(StringType value) { - this.copyright = value; - return this; - } - - /** - * @return A copyright statement relating to the concept map and/or its contents. - */ - public String getCopyright() { - return this.copyright == null ? null : this.copyright.getValue(); - } - - /** - * @param value A copyright statement relating to the concept map and/or its contents. - */ - public ConceptMap setCopyright(String value) { - if (Utilities.noString(value)) - this.copyright = null; - else { - if (this.copyright == null) - this.copyright = new StringType(); - this.copyright.setValue(value); - } - return this; - } - - /** - * @return {@link #status} (The status of the concept map.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMap.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of the concept map.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public ConceptMap setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of the concept map. - */ - public ValuesetStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of the concept map. - */ - public ConceptMap setStatus(ValuesetStatus value) { - if (this.status == null) - this.status = new Enumeration(ValuesetStatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #experimental} (This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value - */ - public BooleanType getExperimentalElement() { - if (this.experimental == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMap.experimental"); - else if (Configuration.doAutoCreate()) - this.experimental = new BooleanType(); - return this.experimental; - } - - public boolean hasExperimentalElement() { - return this.experimental != null && !this.experimental.isEmpty(); - } - - public boolean hasExperimental() { - return this.experimental != null && !this.experimental.isEmpty(); - } - - /** - * @param value {@link #experimental} (This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value - */ - public ConceptMap setExperimentalElement(BooleanType value) { - this.experimental = value; - return this; - } - - /** - * @return This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. - */ - public boolean getExperimental() { - return this.experimental == null ? false : this.experimental.getValue(); - } - - /** - * @param value This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. - */ - public ConceptMap setExperimental(boolean value) { - if (value == false) - this.experimental = null; - else { - if (this.experimental == null) - this.experimental = new BooleanType(); - this.experimental.setValue(value); - } - return this; - } - - /** - * @return {@link #date} (The date that the concept map status was last changed.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConceptMap.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (The date that the concept map status was last changed.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public ConceptMap setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return The date that the concept map status was last changed. - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value The date that the concept map status was last changed. - */ - public ConceptMap setDate(Date value) { - if (value == null) - this.date = null; - else { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - } - return this; - } - - /** - * @return {@link #source} (The source value set that specifies the concepts that are being mapped.) - */ - public Type getSource() { - return this.source; - } - - /** - * @return {@link #source} (The source value set that specifies the concepts that are being mapped.) - */ - public UriType getSourceUriType() throws Exception { - if (!(this.source instanceof UriType)) - throw new Exception("Type mismatch: the type UriType was expected, but "+this.source.getClass().getName()+" was encountered"); - return (UriType) this.source; - } - - /** - * @return {@link #source} (The source value set that specifies the concepts that are being mapped.) - */ - public Reference getSourceReference() throws Exception { - if (!(this.source instanceof Reference)) - throw new Exception("Type mismatch: the type Reference was expected, but "+this.source.getClass().getName()+" was encountered"); - return (Reference) this.source; - } - - public boolean hasSource() { - return this.source != null && !this.source.isEmpty(); - } - - /** - * @param value {@link #source} (The source value set that specifies the concepts that are being mapped.) - */ - public ConceptMap setSource(Type value) { - this.source = value; - return this; - } - - /** - * @return {@link #target} (The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.) - */ - public Type getTarget() { - return this.target; - } - - /** - * @return {@link #target} (The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.) - */ - public UriType getTargetUriType() throws Exception { - if (!(this.target instanceof UriType)) - throw new Exception("Type mismatch: the type UriType was expected, but "+this.target.getClass().getName()+" was encountered"); - return (UriType) this.target; - } - - /** - * @return {@link #target} (The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.) - */ - public Reference getTargetReference() throws Exception { - if (!(this.target instanceof Reference)) - throw new Exception("Type mismatch: the type Reference was expected, but "+this.target.getClass().getName()+" was encountered"); - return (Reference) this.target; - } - - public boolean hasTarget() { - return this.target != null && !this.target.isEmpty(); - } - - /** - * @param value {@link #target} (The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.) - */ - public ConceptMap setTarget(Type value) { - this.target = value; - return this; - } - - /** - * @return {@link #element} (Mappings for an individual concept in the source to one or more concepts in the target.) - */ - public List getElement() { - if (this.element == null) - this.element = new ArrayList(); - return this.element; - } - - public boolean hasElement() { - if (this.element == null) - return false; - for (ConceptMapElementComponent item : this.element) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #element} (Mappings for an individual concept in the source to one or more concepts in the target.) - */ - // syntactic sugar - public ConceptMapElementComponent addElement() { //3 - ConceptMapElementComponent t = new ConceptMapElementComponent(); - if (this.element == null) - this.element = new ArrayList(); - this.element.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "string", "The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("version", "string", "The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.", 0, java.lang.Integer.MAX_VALUE, version)); - childrenList.add(new Property("name", "string", "A free text natural language name describing the concept map.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("publisher", "string", "The name of the individual or organization that published the concept map.", 0, java.lang.Integer.MAX_VALUE, publisher)); - childrenList.add(new Property("telecom", "ContactPoint", "Contacts of the publisher to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, telecom)); - childrenList.add(new Property("description", "string", "A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("copyright", "string", "A copyright statement relating to the concept map and/or its contents.", 0, java.lang.Integer.MAX_VALUE, copyright)); - childrenList.add(new Property("status", "code", "The status of the concept map.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("experimental", "boolean", "This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.", 0, java.lang.Integer.MAX_VALUE, experimental)); - childrenList.add(new Property("date", "dateTime", "The date that the concept map status was last changed.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("source[x]", "uri|Reference(ValueSet|Profile)", "The source value set that specifies the concepts that are being mapped.", 0, java.lang.Integer.MAX_VALUE, source)); - childrenList.add(new Property("target[x]", "uri|Reference(ValueSet|Profile)", "The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.", 0, java.lang.Integer.MAX_VALUE, target)); - childrenList.add(new Property("element", "", "Mappings for an individual concept in the source to one or more concepts in the target.", 0, java.lang.Integer.MAX_VALUE, element)); - } - - public ConceptMap copy() { - ConceptMap dst = new ConceptMap(); - copyValues(dst); - dst.identifier = identifier == null ? null : identifier.copy(); - dst.version = version == null ? null : version.copy(); - dst.name = name == null ? null : name.copy(); - dst.publisher = publisher == null ? null : publisher.copy(); - if (telecom != null) { - dst.telecom = new ArrayList(); - for (ContactPoint i : telecom) - dst.telecom.add(i.copy()); - }; - dst.description = description == null ? null : description.copy(); - dst.copyright = copyright == null ? null : copyright.copy(); - dst.status = status == null ? null : status.copy(); - dst.experimental = experimental == null ? null : experimental.copy(); - dst.date = date == null ? null : date.copy(); - dst.source = source == null ? null : source.copy(); - dst.target = target == null ? null : target.copy(); - if (element != null) { - dst.element = new ArrayList(); - for (ConceptMapElementComponent i : element) - dst.element.add(i.copy()); - }; - return dst; - } - - protected ConceptMap typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (version == null || version.isEmpty()) - && (name == null || name.isEmpty()) && (publisher == null || publisher.isEmpty()) && (telecom == null || telecom.isEmpty()) - && (description == null || description.isEmpty()) && (copyright == null || copyright.isEmpty()) - && (status == null || status.isEmpty()) && (experimental == null || experimental.isEmpty()) - && (date == null || date.isEmpty()) && (source == null || source.isEmpty()) && (target == null || target.isEmpty()) - && (element == null || element.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.ConceptMap; - } - - @SearchParamDefinition(name="product", path="ConceptMap.element.map.product.element", description="Reference to element/field/valueset mapping depends on", type="token" ) - public static final String SP_PRODUCT = "product"; - @SearchParamDefinition(name="dependson", path="ConceptMap.element.dependsOn.element", description="Reference to element/field/valueset mapping depends on", type="token" ) - public static final String SP_DEPENDSON = "dependson"; - @SearchParamDefinition(name="system", path="ConceptMap.element.map.codeSystem", description="The system for any destination concepts mapped by this map", type="token" ) - public static final String SP_SYSTEM = "system"; - @SearchParamDefinition(name="source", path="ConceptMap.source[x]", description="The system for any concepts mapped by this concept map", type="reference" ) - public static final String SP_SOURCE = "source"; - @SearchParamDefinition(name="status", path="ConceptMap.status", description="Status of the concept map", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="description", path="ConceptMap.description", description="Text search in the description of the concept map", type="string" ) - public static final String SP_DESCRIPTION = "description"; - @SearchParamDefinition(name="name", path="ConceptMap.name", description="Name of the concept map", type="string" ) - public static final String SP_NAME = "name"; - @SearchParamDefinition(name="target", path="ConceptMap.target[x]", description="Provides context to the mappings", type="reference" ) - public static final String SP_TARGET = "target"; - @SearchParamDefinition(name="date", path="ConceptMap.date", description="The concept map publication date", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="identifier", path="ConceptMap.identifier", description="The identifier of the concept map", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - @SearchParamDefinition(name="publisher", path="ConceptMap.publisher", description="Name of the publisher of the concept map", type="string" ) - public static final String SP_PUBLISHER = "publisher"; - @SearchParamDefinition(name="version", path="ConceptMap.version", description="The version identifier of the concept map", type="token" ) - public static final String SP_VERSION = "version"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models. + */ +@ResourceDef(name="ConceptMap", profile="http://hl7.org/fhir/Profile/ConceptMap") +public class ConceptMap extends DomainResource { + + public enum ValuesetStatus { + /** + * This valueset is still under development. + */ + DRAFT, + /** + * This valueset is ready for normal use. + */ + ACTIVE, + /** + * This valueset has been withdrawn or superceded and should no longer be used. + */ + RETIRED, + /** + * added to help the parsers + */ + NULL; + public static ValuesetStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("draft".equals(codeString)) + return DRAFT; + if ("active".equals(codeString)) + return ACTIVE; + if ("retired".equals(codeString)) + return RETIRED; + throw new Exception("Unknown ValuesetStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case DRAFT: return "draft"; + case ACTIVE: return "active"; + case RETIRED: return "retired"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case DRAFT: return ""; + case ACTIVE: return ""; + case RETIRED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case DRAFT: return "This valueset is still under development."; + case ACTIVE: return "This valueset is ready for normal use."; + case RETIRED: return "This valueset has been withdrawn or superceded and should no longer be used."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case DRAFT: return "Draft"; + case ACTIVE: return "Active"; + case RETIRED: return "Retired"; + default: return "?"; + } + } + } + + public static class ValuesetStatusEnumFactory implements EnumFactory { + public ValuesetStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("draft".equals(codeString)) + return ValuesetStatus.DRAFT; + if ("active".equals(codeString)) + return ValuesetStatus.ACTIVE; + if ("retired".equals(codeString)) + return ValuesetStatus.RETIRED; + throw new IllegalArgumentException("Unknown ValuesetStatus code '"+codeString+"'"); + } + public String toCode(ValuesetStatus code) { + if (code == ValuesetStatus.DRAFT) + return "draft"; + if (code == ValuesetStatus.ACTIVE) + return "active"; + if (code == ValuesetStatus.RETIRED) + return "retired"; + return "?"; + } + } + + public enum ConceptEquivalence { + /** + * The definitions of the concepts mean the same thing (including when structural implications of meaning are considered) (i.e. extensionally identical). + */ + EQUIVALENT, + /** + * The definitions of the concepts are exactly the same (i.e. only grammatical differences) and structural implications of meaning are identifical or irrelevant (i.e. intensionally identical). + */ + EQUAL, + /** + * The target mapping is wider in meaning than the source concept. + */ + WIDER, + /** + * The target mapping subsumes the meaning of the source concept (e.g. the source is-a target). + */ + SUBSUMES, + /** + * The target mapping is narrower in meaning that the source concept. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when atempting to use these mappings operationally. + */ + NARROWER, + /** + * The target mapping specialises the meaning of the source concept (e.g. the target is-a source). + */ + SPECIALISES, + /** + * The target mapping overlaps with the source concept, but both source and target cover additional meaning, or the definitions are imprecise and it is uncertain whether they have the same boundaries to their meaning. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when atempting to use these mappings operationally. + */ + INEXACT, + /** + * There is no match for this concept in the destination concept system. + */ + UNMATCHED, + /** + * This is an explicit assertion that there is no mapping between the source and target concept. + */ + DISJOINT, + /** + * added to help the parsers + */ + NULL; + public static ConceptEquivalence fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("equivalent".equals(codeString)) + return EQUIVALENT; + if ("equal".equals(codeString)) + return EQUAL; + if ("wider".equals(codeString)) + return WIDER; + if ("subsumes".equals(codeString)) + return SUBSUMES; + if ("narrower".equals(codeString)) + return NARROWER; + if ("specialises".equals(codeString)) + return SPECIALISES; + if ("inexact".equals(codeString)) + return INEXACT; + if ("unmatched".equals(codeString)) + return UNMATCHED; + if ("disjoint".equals(codeString)) + return DISJOINT; + throw new Exception("Unknown ConceptEquivalence code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case EQUIVALENT: return "equivalent"; + case EQUAL: return "equal"; + case WIDER: return "wider"; + case SUBSUMES: return "subsumes"; + case NARROWER: return "narrower"; + case SPECIALISES: return "specialises"; + case INEXACT: return "inexact"; + case UNMATCHED: return "unmatched"; + case DISJOINT: return "disjoint"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case EQUIVALENT: return ""; + case EQUAL: return ""; + case WIDER: return ""; + case SUBSUMES: return ""; + case NARROWER: return ""; + case SPECIALISES: return ""; + case INEXACT: return ""; + case UNMATCHED: return ""; + case DISJOINT: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case EQUIVALENT: return "The definitions of the concepts mean the same thing (including when structural implications of meaning are considered) (i.e. extensionally identical)."; + case EQUAL: return "The definitions of the concepts are exactly the same (i.e. only grammatical differences) and structural implications of meaning are identifical or irrelevant (i.e. intensionally identical)."; + case WIDER: return "The target mapping is wider in meaning than the source concept."; + case SUBSUMES: return "The target mapping subsumes the meaning of the source concept (e.g. the source is-a target)."; + case NARROWER: return "The target mapping is narrower in meaning that the source concept. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when atempting to use these mappings operationally."; + case SPECIALISES: return "The target mapping specialises the meaning of the source concept (e.g. the target is-a source)."; + case INEXACT: return "The target mapping overlaps with the source concept, but both source and target cover additional meaning, or the definitions are imprecise and it is uncertain whether they have the same boundaries to their meaning. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when atempting to use these mappings operationally."; + case UNMATCHED: return "There is no match for this concept in the destination concept system."; + case DISJOINT: return "This is an explicit assertion that there is no mapping between the source and target concept."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case EQUIVALENT: return "equivalent"; + case EQUAL: return "equal"; + case WIDER: return "wider"; + case SUBSUMES: return "subsumes"; + case NARROWER: return "narrower"; + case SPECIALISES: return "specialises"; + case INEXACT: return "inexact"; + case UNMATCHED: return "unmatched"; + case DISJOINT: return "disjoint"; + default: return "?"; + } + } + } + + public static class ConceptEquivalenceEnumFactory implements EnumFactory { + public ConceptEquivalence fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("equivalent".equals(codeString)) + return ConceptEquivalence.EQUIVALENT; + if ("equal".equals(codeString)) + return ConceptEquivalence.EQUAL; + if ("wider".equals(codeString)) + return ConceptEquivalence.WIDER; + if ("subsumes".equals(codeString)) + return ConceptEquivalence.SUBSUMES; + if ("narrower".equals(codeString)) + return ConceptEquivalence.NARROWER; + if ("specialises".equals(codeString)) + return ConceptEquivalence.SPECIALISES; + if ("inexact".equals(codeString)) + return ConceptEquivalence.INEXACT; + if ("unmatched".equals(codeString)) + return ConceptEquivalence.UNMATCHED; + if ("disjoint".equals(codeString)) + return ConceptEquivalence.DISJOINT; + throw new IllegalArgumentException("Unknown ConceptEquivalence code '"+codeString+"'"); + } + public String toCode(ConceptEquivalence code) { + if (code == ConceptEquivalence.EQUIVALENT) + return "equivalent"; + if (code == ConceptEquivalence.EQUAL) + return "equal"; + if (code == ConceptEquivalence.WIDER) + return "wider"; + if (code == ConceptEquivalence.SUBSUMES) + return "subsumes"; + if (code == ConceptEquivalence.NARROWER) + return "narrower"; + if (code == ConceptEquivalence.SPECIALISES) + return "specialises"; + if (code == ConceptEquivalence.INEXACT) + return "inexact"; + if (code == ConceptEquivalence.UNMATCHED) + return "unmatched"; + if (code == ConceptEquivalence.DISJOINT) + return "disjoint"; + return "?"; + } + } + + @Block() + public static class ConceptMapElementComponent extends BackboneElement { + /** + * Code System (if the source is a value value set that crosses more than one code system). + */ + @Child(name="codeSystem", type={UriType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Code System (if value set crosses code systems)", formalDefinition="Code System (if the source is a value value set that crosses more than one code system)." ) + protected UriType codeSystem; + + /** + * Identity (code or path) or the element/item being mapped. + */ + @Child(name="code", type={CodeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Identifies element being mapped", formalDefinition="Identity (code or path) or the element/item being mapped." ) + protected CodeType code; + + /** + * A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value. + */ + @Child(name="dependsOn", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Other elements required for this mapping (from context)", formalDefinition="A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value." ) + protected List dependsOn; + + /** + * A concept from the target value set that this concept maps to. + */ + @Child(name="map", type={}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Target of this map", formalDefinition="A concept from the target value set that this concept maps to." ) + protected List map; + + private static final long serialVersionUID = 2079040744L; + + public ConceptMapElementComponent() { + super(); + } + + /** + * @return {@link #codeSystem} (Code System (if the source is a value value set that crosses more than one code system).). This is the underlying object with id, value and extensions. The accessor "getCodeSystem" gives direct access to the value + */ + public UriType getCodeSystemElement() { + if (this.codeSystem == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMapElementComponent.codeSystem"); + else if (Configuration.doAutoCreate()) + this.codeSystem = new UriType(); // bb + return this.codeSystem; + } + + public boolean hasCodeSystemElement() { + return this.codeSystem != null && !this.codeSystem.isEmpty(); + } + + public boolean hasCodeSystem() { + return this.codeSystem != null && !this.codeSystem.isEmpty(); + } + + /** + * @param value {@link #codeSystem} (Code System (if the source is a value value set that crosses more than one code system).). This is the underlying object with id, value and extensions. The accessor "getCodeSystem" gives direct access to the value + */ + public ConceptMapElementComponent setCodeSystemElement(UriType value) { + this.codeSystem = value; + return this; + } + + /** + * @return Code System (if the source is a value value set that crosses more than one code system). + */ + public String getCodeSystem() { + return this.codeSystem == null ? null : this.codeSystem.getValue(); + } + + /** + * @param value Code System (if the source is a value value set that crosses more than one code system). + */ + public ConceptMapElementComponent setCodeSystem(String value) { + if (Utilities.noString(value)) + this.codeSystem = null; + else { + if (this.codeSystem == null) + this.codeSystem = new UriType(); + this.codeSystem.setValue(value); + } + return this; + } + + /** + * @return {@link #code} (Identity (code or path) or the element/item being mapped.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public CodeType getCodeElement() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMapElementComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeType(); // bb + return this.code; + } + + public boolean hasCodeElement() { + return this.code != null && !this.code.isEmpty(); + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Identity (code or path) or the element/item being mapped.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public ConceptMapElementComponent setCodeElement(CodeType value) { + this.code = value; + return this; + } + + /** + * @return Identity (code or path) or the element/item being mapped. + */ + public String getCode() { + return this.code == null ? null : this.code.getValue(); + } + + /** + * @param value Identity (code or path) or the element/item being mapped. + */ + public ConceptMapElementComponent setCode(String value) { + if (Utilities.noString(value)) + this.code = null; + else { + if (this.code == null) + this.code = new CodeType(); + this.code.setValue(value); + } + return this; + } + + /** + * @return {@link #dependsOn} (A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value.) + */ + public List getDependsOn() { + if (this.dependsOn == null) + this.dependsOn = new ArrayList(); + return this.dependsOn; + } + + public boolean hasDependsOn() { + if (this.dependsOn == null) + return false; + for (OtherElementComponent item : this.dependsOn) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #dependsOn} (A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value.) + */ + // syntactic sugar + public OtherElementComponent addDependsOn() { //3 + OtherElementComponent t = new OtherElementComponent(); + if (this.dependsOn == null) + this.dependsOn = new ArrayList(); + this.dependsOn.add(t); + return t; + } + + /** + * @return {@link #map} (A concept from the target value set that this concept maps to.) + */ + public List getMap() { + if (this.map == null) + this.map = new ArrayList(); + return this.map; + } + + public boolean hasMap() { + if (this.map == null) + return false; + for (ConceptMapElementMapComponent item : this.map) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #map} (A concept from the target value set that this concept maps to.) + */ + // syntactic sugar + public ConceptMapElementMapComponent addMap() { //3 + ConceptMapElementMapComponent t = new ConceptMapElementMapComponent(); + if (this.map == null) + this.map = new ArrayList(); + this.map.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("codeSystem", "uri", "Code System (if the source is a value value set that crosses more than one code system).", 0, java.lang.Integer.MAX_VALUE, codeSystem)); + childrenList.add(new Property("code", "code", "Identity (code or path) or the element/item being mapped.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("dependsOn", "", "A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value.", 0, java.lang.Integer.MAX_VALUE, dependsOn)); + childrenList.add(new Property("map", "", "A concept from the target value set that this concept maps to.", 0, java.lang.Integer.MAX_VALUE, map)); + } + + public ConceptMapElementComponent copy() { + ConceptMapElementComponent dst = new ConceptMapElementComponent(); + copyValues(dst); + dst.codeSystem = codeSystem == null ? null : codeSystem.copy(); + dst.code = code == null ? null : code.copy(); + if (dependsOn != null) { + dst.dependsOn = new ArrayList(); + for (OtherElementComponent i : dependsOn) + dst.dependsOn.add(i.copy()); + }; + if (map != null) { + dst.map = new ArrayList(); + for (ConceptMapElementMapComponent i : map) + dst.map.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConceptMapElementComponent)) + return false; + ConceptMapElementComponent o = (ConceptMapElementComponent) other; + return compareDeep(codeSystem, o.codeSystem, true) && compareDeep(code, o.code, true) && compareDeep(dependsOn, o.dependsOn, true) + && compareDeep(map, o.map, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConceptMapElementComponent)) + return false; + ConceptMapElementComponent o = (ConceptMapElementComponent) other; + return compareValues(codeSystem, o.codeSystem, true) && compareValues(code, o.code, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (codeSystem == null || codeSystem.isEmpty()) && (code == null || code.isEmpty()) + && (dependsOn == null || dependsOn.isEmpty()) && (map == null || map.isEmpty()); + } + + } + + @Block() + public static class OtherElementComponent extends BackboneElement { + /** + * A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition. + */ + @Child(name="element", type={UriType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Reference to element/field/valueset mapping depends on", formalDefinition="A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition." ) + protected UriType element; + + /** + * The code system of the dependency code (if the source/dependency is a value set that cross code systems). + */ + @Child(name="codeSystem", type={UriType.class}, order=2, min=1, max=1) + @Description(shortDefinition="Code System (if necessary)", formalDefinition="The code system of the dependency code (if the source/dependency is a value set that cross code systems)." ) + protected UriType codeSystem; + + /** + * Identity (code or path) or the element/item that the map depends on / refers to. + */ + @Child(name="code", type={StringType.class}, order=3, min=1, max=1) + @Description(shortDefinition="Value of the referenced element", formalDefinition="Identity (code or path) or the element/item that the map depends on / refers to." ) + protected StringType code; + + private static final long serialVersionUID = 1488522448L; + + public OtherElementComponent() { + super(); + } + + public OtherElementComponent(UriType element, UriType codeSystem, StringType code) { + super(); + this.element = element; + this.codeSystem = codeSystem; + this.code = code; + } + + /** + * @return {@link #element} (A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition.). This is the underlying object with id, value and extensions. The accessor "getElement" gives direct access to the value + */ + public UriType getElementElement() { + if (this.element == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create OtherElementComponent.element"); + else if (Configuration.doAutoCreate()) + this.element = new UriType(); // bb + return this.element; + } + + public boolean hasElementElement() { + return this.element != null && !this.element.isEmpty(); + } + + public boolean hasElement() { + return this.element != null && !this.element.isEmpty(); + } + + /** + * @param value {@link #element} (A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition.). This is the underlying object with id, value and extensions. The accessor "getElement" gives direct access to the value + */ + public OtherElementComponent setElementElement(UriType value) { + this.element = value; + return this; + } + + /** + * @return A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition. + */ + public String getElement() { + return this.element == null ? null : this.element.getValue(); + } + + /** + * @param value A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition. + */ + public OtherElementComponent setElement(String value) { + if (this.element == null) + this.element = new UriType(); + this.element.setValue(value); + return this; + } + + /** + * @return {@link #codeSystem} (The code system of the dependency code (if the source/dependency is a value set that cross code systems).). This is the underlying object with id, value and extensions. The accessor "getCodeSystem" gives direct access to the value + */ + public UriType getCodeSystemElement() { + if (this.codeSystem == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create OtherElementComponent.codeSystem"); + else if (Configuration.doAutoCreate()) + this.codeSystem = new UriType(); // bb + return this.codeSystem; + } + + public boolean hasCodeSystemElement() { + return this.codeSystem != null && !this.codeSystem.isEmpty(); + } + + public boolean hasCodeSystem() { + return this.codeSystem != null && !this.codeSystem.isEmpty(); + } + + /** + * @param value {@link #codeSystem} (The code system of the dependency code (if the source/dependency is a value set that cross code systems).). This is the underlying object with id, value and extensions. The accessor "getCodeSystem" gives direct access to the value + */ + public OtherElementComponent setCodeSystemElement(UriType value) { + this.codeSystem = value; + return this; + } + + /** + * @return The code system of the dependency code (if the source/dependency is a value set that cross code systems). + */ + public String getCodeSystem() { + return this.codeSystem == null ? null : this.codeSystem.getValue(); + } + + /** + * @param value The code system of the dependency code (if the source/dependency is a value set that cross code systems). + */ + public OtherElementComponent setCodeSystem(String value) { + if (this.codeSystem == null) + this.codeSystem = new UriType(); + this.codeSystem.setValue(value); + return this; + } + + /** + * @return {@link #code} (Identity (code or path) or the element/item that the map depends on / refers to.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public StringType getCodeElement() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create OtherElementComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new StringType(); // bb + return this.code; + } + + public boolean hasCodeElement() { + return this.code != null && !this.code.isEmpty(); + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Identity (code or path) or the element/item that the map depends on / refers to.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public OtherElementComponent setCodeElement(StringType value) { + this.code = value; + return this; + } + + /** + * @return Identity (code or path) or the element/item that the map depends on / refers to. + */ + public String getCode() { + return this.code == null ? null : this.code.getValue(); + } + + /** + * @param value Identity (code or path) or the element/item that the map depends on / refers to. + */ + public OtherElementComponent setCode(String value) { + if (this.code == null) + this.code = new StringType(); + this.code.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("element", "uri", "A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition.", 0, java.lang.Integer.MAX_VALUE, element)); + childrenList.add(new Property("codeSystem", "uri", "The code system of the dependency code (if the source/dependency is a value set that cross code systems).", 0, java.lang.Integer.MAX_VALUE, codeSystem)); + childrenList.add(new Property("code", "string", "Identity (code or path) or the element/item that the map depends on / refers to.", 0, java.lang.Integer.MAX_VALUE, code)); + } + + public OtherElementComponent copy() { + OtherElementComponent dst = new OtherElementComponent(); + copyValues(dst); + dst.element = element == null ? null : element.copy(); + dst.codeSystem = codeSystem == null ? null : codeSystem.copy(); + dst.code = code == null ? null : code.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof OtherElementComponent)) + return false; + OtherElementComponent o = (OtherElementComponent) other; + return compareDeep(element, o.element, true) && compareDeep(codeSystem, o.codeSystem, true) && compareDeep(code, o.code, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof OtherElementComponent)) + return false; + OtherElementComponent o = (OtherElementComponent) other; + return compareValues(element, o.element, true) && compareValues(codeSystem, o.codeSystem, true) && compareValues(code, o.code, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (element == null || element.isEmpty()) && (codeSystem == null || codeSystem.isEmpty()) + && (code == null || code.isEmpty()); + } + + } + + @Block() + public static class ConceptMapElementMapComponent extends BackboneElement { + /** + * The code system of the target code (if the target is a value set that cross code systems). + */ + @Child(name="codeSystem", type={UriType.class}, order=1, min=0, max=1) + @Description(shortDefinition="System of the target (if necessary)", formalDefinition="The code system of the target code (if the target is a value set that cross code systems)." ) + protected UriType codeSystem; + + /** + * Identity (code or path) or the element/item that the map refers to. + */ + @Child(name="code", type={CodeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Code that identifies the target element", formalDefinition="Identity (code or path) or the element/item that the map refers to." ) + protected CodeType code; + + /** + * The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target. + */ + @Child(name="equivalence", type={CodeType.class}, order=3, min=1, max=1) + @Description(shortDefinition="equivalent | equal | wider | subsumes | narrower | specialises | inexact | unmatched | disjoint", formalDefinition="The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target." ) + protected Enumeration equivalence; + + /** + * A description of status/issues in mapping that conveys additional information not represented in the structured data. + */ + @Child(name="comments", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Description of status/issues in mapping", formalDefinition="A description of status/issues in mapping that conveys additional information not represented in the structured data." ) + protected StringType comments; + + /** + * A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on. + */ + @Child(name="product", type={OtherElementComponent.class}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Other concepts that this mapping also produces", formalDefinition="A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on." ) + protected List product; + + private static final long serialVersionUID = 606421694L; + + public ConceptMapElementMapComponent() { + super(); + } + + public ConceptMapElementMapComponent(Enumeration equivalence) { + super(); + this.equivalence = equivalence; + } + + /** + * @return {@link #codeSystem} (The code system of the target code (if the target is a value set that cross code systems).). This is the underlying object with id, value and extensions. The accessor "getCodeSystem" gives direct access to the value + */ + public UriType getCodeSystemElement() { + if (this.codeSystem == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMapElementMapComponent.codeSystem"); + else if (Configuration.doAutoCreate()) + this.codeSystem = new UriType(); // bb + return this.codeSystem; + } + + public boolean hasCodeSystemElement() { + return this.codeSystem != null && !this.codeSystem.isEmpty(); + } + + public boolean hasCodeSystem() { + return this.codeSystem != null && !this.codeSystem.isEmpty(); + } + + /** + * @param value {@link #codeSystem} (The code system of the target code (if the target is a value set that cross code systems).). This is the underlying object with id, value and extensions. The accessor "getCodeSystem" gives direct access to the value + */ + public ConceptMapElementMapComponent setCodeSystemElement(UriType value) { + this.codeSystem = value; + return this; + } + + /** + * @return The code system of the target code (if the target is a value set that cross code systems). + */ + public String getCodeSystem() { + return this.codeSystem == null ? null : this.codeSystem.getValue(); + } + + /** + * @param value The code system of the target code (if the target is a value set that cross code systems). + */ + public ConceptMapElementMapComponent setCodeSystem(String value) { + if (Utilities.noString(value)) + this.codeSystem = null; + else { + if (this.codeSystem == null) + this.codeSystem = new UriType(); + this.codeSystem.setValue(value); + } + return this; + } + + /** + * @return {@link #code} (Identity (code or path) or the element/item that the map refers to.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public CodeType getCodeElement() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMapElementMapComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeType(); // bb + return this.code; + } + + public boolean hasCodeElement() { + return this.code != null && !this.code.isEmpty(); + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Identity (code or path) or the element/item that the map refers to.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public ConceptMapElementMapComponent setCodeElement(CodeType value) { + this.code = value; + return this; + } + + /** + * @return Identity (code or path) or the element/item that the map refers to. + */ + public String getCode() { + return this.code == null ? null : this.code.getValue(); + } + + /** + * @param value Identity (code or path) or the element/item that the map refers to. + */ + public ConceptMapElementMapComponent setCode(String value) { + if (Utilities.noString(value)) + this.code = null; + else { + if (this.code == null) + this.code = new CodeType(); + this.code.setValue(value); + } + return this; + } + + /** + * @return {@link #equivalence} (The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target.). This is the underlying object with id, value and extensions. The accessor "getEquivalence" gives direct access to the value + */ + public Enumeration getEquivalenceElement() { + if (this.equivalence == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMapElementMapComponent.equivalence"); + else if (Configuration.doAutoCreate()) + this.equivalence = new Enumeration(new ConceptEquivalenceEnumFactory()); // bb + return this.equivalence; + } + + public boolean hasEquivalenceElement() { + return this.equivalence != null && !this.equivalence.isEmpty(); + } + + public boolean hasEquivalence() { + return this.equivalence != null && !this.equivalence.isEmpty(); + } + + /** + * @param value {@link #equivalence} (The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target.). This is the underlying object with id, value and extensions. The accessor "getEquivalence" gives direct access to the value + */ + public ConceptMapElementMapComponent setEquivalenceElement(Enumeration value) { + this.equivalence = value; + return this; + } + + /** + * @return The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target. + */ + public ConceptEquivalence getEquivalence() { + return this.equivalence == null ? null : this.equivalence.getValue(); + } + + /** + * @param value The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target. + */ + public ConceptMapElementMapComponent setEquivalence(ConceptEquivalence value) { + if (this.equivalence == null) + this.equivalence = new Enumeration(new ConceptEquivalenceEnumFactory()); + this.equivalence.setValue(value); + return this; + } + + /** + * @return {@link #comments} (A description of status/issues in mapping that conveys additional information not represented in the structured data.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value + */ + public StringType getCommentsElement() { + if (this.comments == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMapElementMapComponent.comments"); + else if (Configuration.doAutoCreate()) + this.comments = new StringType(); // bb + return this.comments; + } + + public boolean hasCommentsElement() { + return this.comments != null && !this.comments.isEmpty(); + } + + public boolean hasComments() { + return this.comments != null && !this.comments.isEmpty(); + } + + /** + * @param value {@link #comments} (A description of status/issues in mapping that conveys additional information not represented in the structured data.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value + */ + public ConceptMapElementMapComponent setCommentsElement(StringType value) { + this.comments = value; + return this; + } + + /** + * @return A description of status/issues in mapping that conveys additional information not represented in the structured data. + */ + public String getComments() { + return this.comments == null ? null : this.comments.getValue(); + } + + /** + * @param value A description of status/issues in mapping that conveys additional information not represented in the structured data. + */ + public ConceptMapElementMapComponent setComments(String value) { + if (Utilities.noString(value)) + this.comments = null; + else { + if (this.comments == null) + this.comments = new StringType(); + this.comments.setValue(value); + } + return this; + } + + /** + * @return {@link #product} (A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on.) + */ + public List getProduct() { + if (this.product == null) + this.product = new ArrayList(); + return this.product; + } + + public boolean hasProduct() { + if (this.product == null) + return false; + for (OtherElementComponent item : this.product) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #product} (A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on.) + */ + // syntactic sugar + public OtherElementComponent addProduct() { //3 + OtherElementComponent t = new OtherElementComponent(); + if (this.product == null) + this.product = new ArrayList(); + this.product.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("codeSystem", "uri", "The code system of the target code (if the target is a value set that cross code systems).", 0, java.lang.Integer.MAX_VALUE, codeSystem)); + childrenList.add(new Property("code", "code", "Identity (code or path) or the element/item that the map refers to.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("equivalence", "code", "The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from source to target (e.g. the source is 'wider' than the target.", 0, java.lang.Integer.MAX_VALUE, equivalence)); + childrenList.add(new Property("comments", "string", "A description of status/issues in mapping that conveys additional information not represented in the structured data.", 0, java.lang.Integer.MAX_VALUE, comments)); + childrenList.add(new Property("product", "@ConceptMap.element.dependsOn", "A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on.", 0, java.lang.Integer.MAX_VALUE, product)); + } + + public ConceptMapElementMapComponent copy() { + ConceptMapElementMapComponent dst = new ConceptMapElementMapComponent(); + copyValues(dst); + dst.codeSystem = codeSystem == null ? null : codeSystem.copy(); + dst.code = code == null ? null : code.copy(); + dst.equivalence = equivalence == null ? null : equivalence.copy(); + dst.comments = comments == null ? null : comments.copy(); + if (product != null) { + dst.product = new ArrayList(); + for (OtherElementComponent i : product) + dst.product.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConceptMapElementMapComponent)) + return false; + ConceptMapElementMapComponent o = (ConceptMapElementMapComponent) other; + return compareDeep(codeSystem, o.codeSystem, true) && compareDeep(code, o.code, true) && compareDeep(equivalence, o.equivalence, true) + && compareDeep(comments, o.comments, true) && compareDeep(product, o.product, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConceptMapElementMapComponent)) + return false; + ConceptMapElementMapComponent o = (ConceptMapElementMapComponent) other; + return compareValues(codeSystem, o.codeSystem, true) && compareValues(code, o.code, true) && compareValues(equivalence, o.equivalence, true) + && compareValues(comments, o.comments, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (codeSystem == null || codeSystem.isEmpty()) && (code == null || code.isEmpty()) + && (equivalence == null || equivalence.isEmpty()) && (comments == null || comments.isEmpty()) + && (product == null || product.isEmpty()); + } + + } + + /** + * The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI). + */ + @Child(name="identifier", type={StringType.class}, order=-1, min=0, max=1) + @Description(shortDefinition="Logical id to reference this concept map", formalDefinition="The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI)." ) + protected StringType identifier; + + /** + * The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. + */ + @Child(name="version", type={StringType.class}, order=0, min=0, max=1) + @Description(shortDefinition="Logical id for this version of the concept map", formalDefinition="The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp." ) + protected StringType version; + + /** + * A free text natural language name describing the concept map. + */ + @Child(name="name", type={StringType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Informal name for this concept map", formalDefinition="A free text natural language name describing the concept map." ) + protected StringType name; + + /** + * The name of the individual or organization that published the concept map. + */ + @Child(name="publisher", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Name of the publisher (Organization or individual)", formalDefinition="The name of the individual or organization that published the concept map." ) + protected StringType publisher; + + /** + * Contacts of the publisher to assist a user in finding and communicating with the publisher. + */ + @Child(name="telecom", type={ContactPoint.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Contact information of the publisher", formalDefinition="Contacts of the publisher to assist a user in finding and communicating with the publisher." ) + protected List telecom; + + /** + * A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc. + */ + @Child(name="description", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Human language description of the concept map", formalDefinition="A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc." ) + protected StringType description; + + /** + * A copyright statement relating to the concept map and/or its contents. + */ + @Child(name="copyright", type={StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="About the concept map or its content", formalDefinition="A copyright statement relating to the concept map and/or its contents." ) + protected StringType copyright; + + /** + * The status of the concept map. + */ + @Child(name="status", type={CodeType.class}, order=6, min=1, max=1) + @Description(shortDefinition="draft | active | retired", formalDefinition="The status of the concept map." ) + protected Enumeration status; + + /** + * This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. + */ + @Child(name="experimental", type={BooleanType.class}, order=7, min=0, max=1) + @Description(shortDefinition="If for testing purposes, not real usage", formalDefinition="This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage." ) + protected BooleanType experimental; + + /** + * The date that the concept map status was last changed. + */ + @Child(name="date", type={DateTimeType.class}, order=8, min=0, max=1) + @Description(shortDefinition="Date for given status", formalDefinition="The date that the concept map status was last changed." ) + protected DateTimeType date; + + /** + * The source value set that specifies the concepts that are being mapped. + */ + @Child(name="source", type={UriType.class, ValueSet.class, Profile.class}, order=9, min=1, max=1) + @Description(shortDefinition="Identifies the source of the concepts which are being mapped", formalDefinition="The source value set that specifies the concepts that are being mapped." ) + protected Type source; + + /** + * The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made. + */ + @Child(name="target", type={UriType.class, ValueSet.class, Profile.class}, order=10, min=1, max=1) + @Description(shortDefinition="Provides context to the mappings", formalDefinition="The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made." ) + protected Type target; + + /** + * Mappings for an individual concept in the source to one or more concepts in the target. + */ + @Child(name="element", type={}, order=11, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Mappings for a concept from the source set", formalDefinition="Mappings for an individual concept in the source to one or more concepts in the target." ) + protected List element; + + private static final long serialVersionUID = 1130142902L; + + public ConceptMap() { + super(); + } + + public ConceptMap(Enumeration status, Type source, Type target) { + super(); + this.status = status; + this.source = source; + this.target = target; + } + + /** + * @return {@link #identifier} (The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).). This is the underlying object with id, value and extensions. The accessor "getIdentifier" gives direct access to the value + */ + public StringType getIdentifierElement() { + if (this.identifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMap.identifier"); + else if (Configuration.doAutoCreate()) + this.identifier = new StringType(); // bb + return this.identifier; + } + + public boolean hasIdentifierElement() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + public boolean hasIdentifier() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + /** + * @param value {@link #identifier} (The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).). This is the underlying object with id, value and extensions. The accessor "getIdentifier" gives direct access to the value + */ + public ConceptMap setIdentifierElement(StringType value) { + this.identifier = value; + return this; + } + + /** + * @return The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI). + */ + public String getIdentifier() { + return this.identifier == null ? null : this.identifier.getValue(); + } + + /** + * @param value The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI). + */ + public ConceptMap setIdentifier(String value) { + if (Utilities.noString(value)) + this.identifier = null; + else { + if (this.identifier == null) + this.identifier = new StringType(); + this.identifier.setValue(value); + } + return this; + } + + /** + * @return {@link #version} (The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value + */ + public StringType getVersionElement() { + if (this.version == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMap.version"); + else if (Configuration.doAutoCreate()) + this.version = new StringType(); // bb + return this.version; + } + + public boolean hasVersionElement() { + return this.version != null && !this.version.isEmpty(); + } + + public boolean hasVersion() { + return this.version != null && !this.version.isEmpty(); + } + + /** + * @param value {@link #version} (The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value + */ + public ConceptMap setVersionElement(StringType value) { + this.version = value; + return this; + } + + /** + * @return The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. + */ + public String getVersion() { + return this.version == null ? null : this.version.getValue(); + } + + /** + * @param value The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. + */ + public ConceptMap setVersion(String value) { + if (Utilities.noString(value)) + this.version = null; + else { + if (this.version == null) + this.version = new StringType(); + this.version.setValue(value); + } + return this; + } + + /** + * @return {@link #name} (A free text natural language name describing the concept map.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMap.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (A free text natural language name describing the concept map.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public ConceptMap setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return A free text natural language name describing the concept map. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value A free text natural language name describing the concept map. + */ + public ConceptMap setName(String value) { + if (Utilities.noString(value)) + this.name = null; + else { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + } + return this; + } + + /** + * @return {@link #publisher} (The name of the individual or organization that published the concept map.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value + */ + public StringType getPublisherElement() { + if (this.publisher == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMap.publisher"); + else if (Configuration.doAutoCreate()) + this.publisher = new StringType(); // bb + return this.publisher; + } + + public boolean hasPublisherElement() { + return this.publisher != null && !this.publisher.isEmpty(); + } + + public boolean hasPublisher() { + return this.publisher != null && !this.publisher.isEmpty(); + } + + /** + * @param value {@link #publisher} (The name of the individual or organization that published the concept map.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value + */ + public ConceptMap setPublisherElement(StringType value) { + this.publisher = value; + return this; + } + + /** + * @return The name of the individual or organization that published the concept map. + */ + public String getPublisher() { + return this.publisher == null ? null : this.publisher.getValue(); + } + + /** + * @param value The name of the individual or organization that published the concept map. + */ + public ConceptMap setPublisher(String value) { + if (Utilities.noString(value)) + this.publisher = null; + else { + if (this.publisher == null) + this.publisher = new StringType(); + this.publisher.setValue(value); + } + return this; + } + + /** + * @return {@link #telecom} (Contacts of the publisher to assist a user in finding and communicating with the publisher.) + */ + public List getTelecom() { + if (this.telecom == null) + this.telecom = new ArrayList(); + return this.telecom; + } + + public boolean hasTelecom() { + if (this.telecom == null) + return false; + for (ContactPoint item : this.telecom) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #telecom} (Contacts of the publisher to assist a user in finding and communicating with the publisher.) + */ + // syntactic sugar + public ContactPoint addTelecom() { //3 + ContactPoint t = new ContactPoint(); + if (this.telecom == null) + this.telecom = new ArrayList(); + this.telecom.add(t); + return t; + } + + /** + * @return {@link #description} (A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMap.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public ConceptMap setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc. + */ + public ConceptMap setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #copyright} (A copyright statement relating to the concept map and/or its contents.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value + */ + public StringType getCopyrightElement() { + if (this.copyright == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMap.copyright"); + else if (Configuration.doAutoCreate()) + this.copyright = new StringType(); // bb + return this.copyright; + } + + public boolean hasCopyrightElement() { + return this.copyright != null && !this.copyright.isEmpty(); + } + + public boolean hasCopyright() { + return this.copyright != null && !this.copyright.isEmpty(); + } + + /** + * @param value {@link #copyright} (A copyright statement relating to the concept map and/or its contents.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value + */ + public ConceptMap setCopyrightElement(StringType value) { + this.copyright = value; + return this; + } + + /** + * @return A copyright statement relating to the concept map and/or its contents. + */ + public String getCopyright() { + return this.copyright == null ? null : this.copyright.getValue(); + } + + /** + * @param value A copyright statement relating to the concept map and/or its contents. + */ + public ConceptMap setCopyright(String value) { + if (Utilities.noString(value)) + this.copyright = null; + else { + if (this.copyright == null) + this.copyright = new StringType(); + this.copyright.setValue(value); + } + return this; + } + + /** + * @return {@link #status} (The status of the concept map.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMap.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new ValuesetStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of the concept map.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public ConceptMap setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of the concept map. + */ + public ValuesetStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of the concept map. + */ + public ConceptMap setStatus(ValuesetStatus value) { + if (this.status == null) + this.status = new Enumeration(new ValuesetStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #experimental} (This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value + */ + public BooleanType getExperimentalElement() { + if (this.experimental == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMap.experimental"); + else if (Configuration.doAutoCreate()) + this.experimental = new BooleanType(); // bb + return this.experimental; + } + + public boolean hasExperimentalElement() { + return this.experimental != null && !this.experimental.isEmpty(); + } + + public boolean hasExperimental() { + return this.experimental != null && !this.experimental.isEmpty(); + } + + /** + * @param value {@link #experimental} (This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value + */ + public ConceptMap setExperimentalElement(BooleanType value) { + this.experimental = value; + return this; + } + + /** + * @return This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. + */ + public boolean getExperimental() { + return this.experimental == null ? false : this.experimental.getValue(); + } + + /** + * @param value This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. + */ + public ConceptMap setExperimental(boolean value) { + if (this.experimental == null) + this.experimental = new BooleanType(); + this.experimental.setValue(value); + return this; + } + + /** + * @return {@link #date} (The date that the concept map status was last changed.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConceptMap.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (The date that the concept map status was last changed.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public ConceptMap setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return The date that the concept map status was last changed. + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value The date that the concept map status was last changed. + */ + public ConceptMap setDate(Date value) { + if (value == null) + this.date = null; + else { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + } + return this; + } + + /** + * @return {@link #source} (The source value set that specifies the concepts that are being mapped.) + */ + public Type getSource() { + return this.source; + } + + /** + * @return {@link #source} (The source value set that specifies the concepts that are being mapped.) + */ + public UriType getSourceUriType() throws Exception { + if (!(this.source instanceof UriType)) + throw new Exception("Type mismatch: the type UriType was expected, but "+this.source.getClass().getName()+" was encountered"); + return (UriType) this.source; + } + + /** + * @return {@link #source} (The source value set that specifies the concepts that are being mapped.) + */ + public Reference getSourceReference() throws Exception { + if (!(this.source instanceof Reference)) + throw new Exception("Type mismatch: the type Reference was expected, but "+this.source.getClass().getName()+" was encountered"); + return (Reference) this.source; + } + + public boolean hasSource() { + return this.source != null && !this.source.isEmpty(); + } + + /** + * @param value {@link #source} (The source value set that specifies the concepts that are being mapped.) + */ + public ConceptMap setSource(Type value) { + this.source = value; + return this; + } + + /** + * @return {@link #target} (The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.) + */ + public Type getTarget() { + return this.target; + } + + /** + * @return {@link #target} (The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.) + */ + public UriType getTargetUriType() throws Exception { + if (!(this.target instanceof UriType)) + throw new Exception("Type mismatch: the type UriType was expected, but "+this.target.getClass().getName()+" was encountered"); + return (UriType) this.target; + } + + /** + * @return {@link #target} (The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.) + */ + public Reference getTargetReference() throws Exception { + if (!(this.target instanceof Reference)) + throw new Exception("Type mismatch: the type Reference was expected, but "+this.target.getClass().getName()+" was encountered"); + return (Reference) this.target; + } + + public boolean hasTarget() { + return this.target != null && !this.target.isEmpty(); + } + + /** + * @param value {@link #target} (The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.) + */ + public ConceptMap setTarget(Type value) { + this.target = value; + return this; + } + + /** + * @return {@link #element} (Mappings for an individual concept in the source to one or more concepts in the target.) + */ + public List getElement() { + if (this.element == null) + this.element = new ArrayList(); + return this.element; + } + + public boolean hasElement() { + if (this.element == null) + return false; + for (ConceptMapElementComponent item : this.element) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #element} (Mappings for an individual concept in the source to one or more concepts in the target.) + */ + // syntactic sugar + public ConceptMapElementComponent addElement() { //3 + ConceptMapElementComponent t = new ConceptMapElementComponent(); + if (this.element == null) + this.element = new ArrayList(); + this.element.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "string", "The identifier that is used to identify this concept map when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("version", "string", "The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.", 0, java.lang.Integer.MAX_VALUE, version)); + childrenList.add(new Property("name", "string", "A free text natural language name describing the concept map.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("publisher", "string", "The name of the individual or organization that published the concept map.", 0, java.lang.Integer.MAX_VALUE, publisher)); + childrenList.add(new Property("telecom", "ContactPoint", "Contacts of the publisher to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, telecom)); + childrenList.add(new Property("description", "string", "A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("copyright", "string", "A copyright statement relating to the concept map and/or its contents.", 0, java.lang.Integer.MAX_VALUE, copyright)); + childrenList.add(new Property("status", "code", "The status of the concept map.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("experimental", "boolean", "This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.", 0, java.lang.Integer.MAX_VALUE, experimental)); + childrenList.add(new Property("date", "dateTime", "The date that the concept map status was last changed.", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("source[x]", "uri|Reference(ValueSet|Profile)", "The source value set that specifies the concepts that are being mapped.", 0, java.lang.Integer.MAX_VALUE, source)); + childrenList.add(new Property("target[x]", "uri|Reference(ValueSet|Profile)", "The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made.", 0, java.lang.Integer.MAX_VALUE, target)); + childrenList.add(new Property("element", "", "Mappings for an individual concept in the source to one or more concepts in the target.", 0, java.lang.Integer.MAX_VALUE, element)); + } + + public ConceptMap copy() { + ConceptMap dst = new ConceptMap(); + copyValues(dst); + dst.identifier = identifier == null ? null : identifier.copy(); + dst.version = version == null ? null : version.copy(); + dst.name = name == null ? null : name.copy(); + dst.publisher = publisher == null ? null : publisher.copy(); + if (telecom != null) { + dst.telecom = new ArrayList(); + for (ContactPoint i : telecom) + dst.telecom.add(i.copy()); + }; + dst.description = description == null ? null : description.copy(); + dst.copyright = copyright == null ? null : copyright.copy(); + dst.status = status == null ? null : status.copy(); + dst.experimental = experimental == null ? null : experimental.copy(); + dst.date = date == null ? null : date.copy(); + dst.source = source == null ? null : source.copy(); + dst.target = target == null ? null : target.copy(); + if (element != null) { + dst.element = new ArrayList(); + for (ConceptMapElementComponent i : element) + dst.element.add(i.copy()); + }; + return dst; + } + + protected ConceptMap typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConceptMap)) + return false; + ConceptMap o = (ConceptMap) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true) && compareDeep(name, o.name, true) + && compareDeep(publisher, o.publisher, true) && compareDeep(telecom, o.telecom, true) && compareDeep(description, o.description, true) + && compareDeep(copyright, o.copyright, true) && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true) + && compareDeep(date, o.date, true) && compareDeep(source, o.source, true) && compareDeep(target, o.target, true) + && compareDeep(element, o.element, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConceptMap)) + return false; + ConceptMap o = (ConceptMap) other; + return compareValues(identifier, o.identifier, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true) + && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true) && compareValues(copyright, o.copyright, true) + && compareValues(status, o.status, true) && compareValues(experimental, o.experimental, true) && compareValues(date, o.date, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (version == null || version.isEmpty()) + && (name == null || name.isEmpty()) && (publisher == null || publisher.isEmpty()) && (telecom == null || telecom.isEmpty()) + && (description == null || description.isEmpty()) && (copyright == null || copyright.isEmpty()) + && (status == null || status.isEmpty()) && (experimental == null || experimental.isEmpty()) + && (date == null || date.isEmpty()) && (source == null || source.isEmpty()) && (target == null || target.isEmpty()) + && (element == null || element.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.ConceptMap; + } + + @SearchParamDefinition(name="product", path="ConceptMap.element.map.product.element", description="Reference to element/field/valueset mapping depends on", type="token" ) + public static final String SP_PRODUCT = "product"; + @SearchParamDefinition(name="dependson", path="ConceptMap.element.dependsOn.element", description="Reference to element/field/valueset mapping depends on", type="token" ) + public static final String SP_DEPENDSON = "dependson"; + @SearchParamDefinition(name="system", path="ConceptMap.element.map.codeSystem", description="The system for any destination concepts mapped by this map", type="token" ) + public static final String SP_SYSTEM = "system"; + @SearchParamDefinition(name="source", path="ConceptMap.source[x]", description="The system for any concepts mapped by this concept map", type="reference" ) + public static final String SP_SOURCE = "source"; + @SearchParamDefinition(name="status", path="ConceptMap.status", description="Status of the concept map", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="description", path="ConceptMap.description", description="Text search in the description of the concept map", type="string" ) + public static final String SP_DESCRIPTION = "description"; + @SearchParamDefinition(name="name", path="ConceptMap.name", description="Name of the concept map", type="string" ) + public static final String SP_NAME = "name"; + @SearchParamDefinition(name="target", path="ConceptMap.target[x]", description="Provides context to the mappings", type="reference" ) + public static final String SP_TARGET = "target"; + @SearchParamDefinition(name="date", path="ConceptMap.date", description="The concept map publication date", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="identifier", path="ConceptMap.identifier", description="The identifier of the concept map", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + @SearchParamDefinition(name="publisher", path="ConceptMap.publisher", description="Name of the publisher of the concept map", type="string" ) + public static final String SP_PUBLISHER = "publisher"; + @SearchParamDefinition(name="version", path="ConceptMap.version", description="The version identifier of the concept map", type="token" ) + public static final String SP_VERSION = "version"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$1.class new file mode 100644 index 0000000000000000000000000000000000000000..5554a9bcd6dc711fba36b3aea86463634d1d4e5e GIT binary patch literal 920 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 EA3(qJL;wH) literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionEvidenceComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionEvidenceComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..08e88539797d842d6229a611785289c947b6df5c GIT binary patch literal 4707 zcmbVP`*Rc575=UyBUxSp7BLS~s2pB?V2cDu2zJ26Hi^LoYJ(FXq%6|fUXXUh?h0@k zLXxJBJp0JgG<`qlgLc}P#)dM}roX^UXZknvm;MzQrtWukWy#o7hR#@b@4b8OIp;g) zJLj(d@t?o^6~K1oKa%0Hn5VHud>q9m3X!y(F%;ScY-cPr zo_#VkI&L~C({erCN*k#h-)2)i9Q89yn#?5So+9H;oqZ1KtBF{&a?PLrm%rGm3aL%-33YqGc6m~wa_FltHJ7!+I zqK#$lxb1ko#;9qTvZYWzs9WZ!L8P)yxf8j(XXg}_kJ?U7&(0NnraPINE1a~QWKllp zjq6@AYh;q1&AE|uj5Gn5)>zUW<%a1d)3%lIZMG{c$rzq)W@%;MtbRdH6+APW8Zcc6 zYW1)=X6atRVGy30_qwwp>>*>+a117=V^4=fD-?;$0b;kqjtf{ zB#o?VTpZ^?h3)~UBhk4;cg47h}*1<;P_ z&Y0mT?0QH9u3d0^0E~@mIHsN*F&vlP9_#N_PzMxh$v@$xH=<_?MwPH)*NgT08PrZm z>K;<0sdrU(mA* zsgYOMRGBaPbl2z*Hr57*hR5}6*1kw~nrKE?mQc0}!ye{d*q61_=Q=bD;*f@Rq@uX0;RiTIO88{W>eg7Q&v9%=;fZd~ zGYCz3mtOGfwzOmDo{=nBUr>bYX|@MZ{;7r^iqh7Hxcf9%IHq9__L4#6%IS6-eL~uJ z6hG4NWBi2N*YHyj{TY7Fyj3z$qP>P+;FlWqW3Pq`7{iT~j?Hq9QJL4S1l+Hffs*2; zZfl}hcCSV8YlW^#YDWx zA{An0$%U2o^qpDPSQ}9`yFEofMWbYZshke_(dO)9>fpOZCq_b2#=u(kGtI5eiACp zS3CN#6HoNxN$ir@Qg zYzcHAQ1J{J@GSbdKH#f7h-I9!S8_beokl(tpH(f>P=De?;Rwe#Z9;8FMD5_tS1`m; z#M21-;%zN|M(7SU-avQ~wYLyCo~W9}lE2+RbP`KjZXtGj8r7d6ByxY`!H}=E0ZXWM zH=?QowW<@V)YDj}_Ml1a#W1BJ2(4O914nVJXmB^5;@>J!bQ^W@m_qz2qLFKegs+!W zFA*`-&(aeMHa{?zRCI`BTNX2l?9UqfM zOtqh(Ms~`WmQoOEh?s_vP)B_S7^Flo0WVPNsS=!vT*){0jzDWw__|DPVyVJF>rE_E zn8X@RmMeUYy1}heNL)o#)A&-+cmLJ8#QMaSgI6`vNCvOUTu)Fp)CDr&B9iJ7I@Cll zcca9@i>Vm4e==;8gmDXv4BMjvEv-}7&?*M+(C=%A%XA7G1KQWzMkigHOBz4VgIkMv zUe8I8=R>U|LE98I1+HD2`PZDFKgxg8p~$@Z@H2NCwL#Y6le9`mx3NqfH_gZ*sc#^P$m&G6OD*pvN$jGHbwwLhEmPQ9 m?lM7lTI-AEA4rsOI8R?gaQsU^6u4YJ&tIJLM!bjTQ2k$>F0>^8 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionLocationComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionLocationComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..e66f5b7b28b5dd2ecb955524895ec30c32fffa48 GIT binary patch literal 4785 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 XLc#CkvKnl@FYzzNeLtSZB0B#EVDub6 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionStageComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition$ConditionStageComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..b7eeef46ce87f9099db77c2c90603c4f19ac5f2d GIT binary patch literal 4782 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Condition.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition.java similarity index 89% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Condition.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition.java index 74c3c7dbdd8..ea8c34d3be4 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Condition.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Condition.java @@ -1,1640 +1,1744 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Use to record detailed information about conditions, problems or diagnoses recognized by a clinician. There are many uses including: recording a Diagnosis during an Encounter; populating a problem List or a Summary Statement, such as a Discharge Summary. - */ -@ResourceDef(name="Condition", profile="http://hl7.org/fhir/Profile/Condition") -public class Condition extends DomainResource { - - public enum ConditionStatus implements FhirEnum { - /** - * This is a tentative diagnosis - still a candidate that is under consideration. - */ - PROVISIONAL, - /** - * The patient is being treated on the basis that this is the condition, but it is still not confirmed. - */ - WORKING, - /** - * There is sufficient diagnostic and/or clinical evidence to treat this as a confirmed condition. - */ - CONFIRMED, - /** - * This condition has been ruled out by diagnostic and clinical evidence. - */ - REFUTED, - /** - * added to help the parsers - */ - NULL; - - public static final ConditionStatusEnumFactory ENUM_FACTORY = new ConditionStatusEnumFactory(); - - public static ConditionStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("provisional".equals(codeString)) - return PROVISIONAL; - if ("working".equals(codeString)) - return WORKING; - if ("confirmed".equals(codeString)) - return CONFIRMED; - if ("refuted".equals(codeString)) - return REFUTED; - throw new IllegalArgumentException("Unknown ConditionStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case PROVISIONAL: return "provisional"; - case WORKING: return "working"; - case CONFIRMED: return "confirmed"; - case REFUTED: return "refuted"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case PROVISIONAL: return ""; - case WORKING: return ""; - case CONFIRMED: return ""; - case REFUTED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case PROVISIONAL: return "This is a tentative diagnosis - still a candidate that is under consideration."; - case WORKING: return "The patient is being treated on the basis that this is the condition, but it is still not confirmed."; - case CONFIRMED: return "There is sufficient diagnostic and/or clinical evidence to treat this as a confirmed condition."; - case REFUTED: return "This condition has been ruled out by diagnostic and clinical evidence."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case PROVISIONAL: return "provisional"; - case WORKING: return "working"; - case CONFIRMED: return "confirmed"; - case REFUTED: return "refuted"; - default: return "?"; - } - } - } - - public static class ConditionStatusEnumFactory implements EnumFactory { - public ConditionStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("provisional".equals(codeString)) - return ConditionStatus.PROVISIONAL; - if ("working".equals(codeString)) - return ConditionStatus.WORKING; - if ("confirmed".equals(codeString)) - return ConditionStatus.CONFIRMED; - if ("refuted".equals(codeString)) - return ConditionStatus.REFUTED; - throw new IllegalArgumentException("Unknown ConditionStatus code '"+codeString+"'"); - } - public String toCode(ConditionStatus code) throws IllegalArgumentException { - if (code == ConditionStatus.PROVISIONAL) - return "provisional"; - if (code == ConditionStatus.WORKING) - return "working"; - if (code == ConditionStatus.CONFIRMED) - return "confirmed"; - if (code == ConditionStatus.REFUTED) - return "refuted"; - return "?"; - } - } - - @Block() - public static class ConditionStageComponent extends BackboneElement { - /** - * A simple summary of the stage such as "Stage 3". The determination of the stage is disease-specific. - */ - @Child(name="summary", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="Simple summary (disease specific)", formalDefinition="A simple summary of the stage such as 'Stage 3'. The determination of the stage is disease-specific." ) - protected CodeableConcept summary; - - /** - * Reference to a formal record of the evidence on which the staging assessment is based. - */ - @Child(name="assessment", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Formal record of assessment", formalDefinition="Reference to a formal record of the evidence on which the staging assessment is based." ) - protected List assessment; - /** - * The actual objects that are the target of the reference (Reference to a formal record of the evidence on which the staging assessment is based.) - */ - protected List assessmentTarget; - - - private static final long serialVersionUID = -1961530405L; - - public ConditionStageComponent() { - super(); - } - - /** - * @return {@link #summary} (A simple summary of the stage such as "Stage 3". The determination of the stage is disease-specific.) - */ - public CodeableConcept getSummary() { - if (this.summary == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConditionStageComponent.summary"); - else if (Configuration.doAutoCreate()) - this.summary = new CodeableConcept(); - return this.summary; - } - - public boolean hasSummary() { - return this.summary != null && !this.summary.isEmpty(); - } - - /** - * @param value {@link #summary} (A simple summary of the stage such as "Stage 3". The determination of the stage is disease-specific.) - */ - public ConditionStageComponent setSummary(CodeableConcept value) { - this.summary = value; - return this; - } - - /** - * @return {@link #assessment} (Reference to a formal record of the evidence on which the staging assessment is based.) - */ - public List getAssessment() { - if (this.assessment == null) - this.assessment = new ArrayList(); - return this.assessment; - } - - public boolean hasAssessment() { - if (this.assessment == null) - return false; - for (Reference item : this.assessment) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #assessment} (Reference to a formal record of the evidence on which the staging assessment is based.) - */ - // syntactic sugar - public Reference addAssessment() { //3 - Reference t = new Reference(); - if (this.assessment == null) - this.assessment = new ArrayList(); - this.assessment.add(t); - return t; - } - - /** - * @return {@link #assessment} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Reference to a formal record of the evidence on which the staging assessment is based.) - */ - public List getAssessmentTarget() { - if (this.assessmentTarget == null) - this.assessmentTarget = new ArrayList(); - return this.assessmentTarget; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("summary", "CodeableConcept", "A simple summary of the stage such as 'Stage 3'. The determination of the stage is disease-specific.", 0, java.lang.Integer.MAX_VALUE, summary)); - childrenList.add(new Property("assessment", "Reference(Any)", "Reference to a formal record of the evidence on which the staging assessment is based.", 0, java.lang.Integer.MAX_VALUE, assessment)); - } - - public ConditionStageComponent copy() { - ConditionStageComponent dst = new ConditionStageComponent(); - copyValues(dst); - dst.summary = summary == null ? null : summary.copy(); - if (assessment != null) { - dst.assessment = new ArrayList(); - for (Reference i : assessment) - dst.assessment.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (summary == null || summary.isEmpty()) && (assessment == null || assessment.isEmpty()) - ; - } - - } - - @Block() - public static class ConditionEvidenceComponent extends BackboneElement { - /** - * A manifestation or symptom that led to the recording of this condition. - */ - @Child(name="code", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="Manifestation/symptom", formalDefinition="A manifestation or symptom that led to the recording of this condition." ) - protected CodeableConcept code; - - /** - * Links to other relevant information, including pathology reports. - */ - @Child(name="detail", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Supporting information found elsewhere", formalDefinition="Links to other relevant information, including pathology reports." ) - protected List detail; - /** - * The actual objects that are the target of the reference (Links to other relevant information, including pathology reports.) - */ - protected List detailTarget; - - - private static final long serialVersionUID = 945689926L; - - public ConditionEvidenceComponent() { - super(); - } - - /** - * @return {@link #code} (A manifestation or symptom that led to the recording of this condition.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConditionEvidenceComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (A manifestation or symptom that led to the recording of this condition.) - */ - public ConditionEvidenceComponent setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #detail} (Links to other relevant information, including pathology reports.) - */ - public List getDetail() { - if (this.detail == null) - this.detail = new ArrayList(); - return this.detail; - } - - public boolean hasDetail() { - if (this.detail == null) - return false; - for (Reference item : this.detail) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #detail} (Links to other relevant information, including pathology reports.) - */ - // syntactic sugar - public Reference addDetail() { //3 - Reference t = new Reference(); - if (this.detail == null) - this.detail = new ArrayList(); - this.detail.add(t); - return t; - } - - /** - * @return {@link #detail} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Links to other relevant information, including pathology reports.) - */ - public List getDetailTarget() { - if (this.detailTarget == null) - this.detailTarget = new ArrayList(); - return this.detailTarget; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "CodeableConcept", "A manifestation or symptom that led to the recording of this condition.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("detail", "Reference(Any)", "Links to other relevant information, including pathology reports.", 0, java.lang.Integer.MAX_VALUE, detail)); - } - - public ConditionEvidenceComponent copy() { - ConditionEvidenceComponent dst = new ConditionEvidenceComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - if (detail != null) { - dst.detail = new ArrayList(); - for (Reference i : detail) - dst.detail.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (detail == null || detail.isEmpty()) - ; - } - - } - - @Block() - public static class ConditionLocationComponent extends BackboneElement { - /** - * Code that identifies the structural location. - */ - @Child(name="code", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="Location - may include laterality", formalDefinition="Code that identifies the structural location." ) - protected CodeableConcept code; - - /** - * Detailed anatomical location information. - */ - @Child(name="detail", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Precise location details", formalDefinition="Detailed anatomical location information." ) - protected StringType detail; - - private static final long serialVersionUID = -406205954L; - - public ConditionLocationComponent() { - super(); - } - - /** - * @return {@link #code} (Code that identifies the structural location.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConditionLocationComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Code that identifies the structural location.) - */ - public ConditionLocationComponent setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #detail} (Detailed anatomical location information.). This is the underlying object with id, value and extensions. The accessor "getDetail" gives direct access to the value - */ - public StringType getDetailElement() { - if (this.detail == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConditionLocationComponent.detail"); - else if (Configuration.doAutoCreate()) - this.detail = new StringType(); - return this.detail; - } - - public boolean hasDetailElement() { - return this.detail != null && !this.detail.isEmpty(); - } - - public boolean hasDetail() { - return this.detail != null && !this.detail.isEmpty(); - } - - /** - * @param value {@link #detail} (Detailed anatomical location information.). This is the underlying object with id, value and extensions. The accessor "getDetail" gives direct access to the value - */ - public ConditionLocationComponent setDetailElement(StringType value) { - this.detail = value; - return this; - } - - /** - * @return Detailed anatomical location information. - */ - public String getDetail() { - return this.detail == null ? null : this.detail.getValue(); - } - - /** - * @param value Detailed anatomical location information. - */ - public ConditionLocationComponent setDetail(String value) { - if (Utilities.noString(value)) - this.detail = null; - else { - if (this.detail == null) - this.detail = new StringType(); - this.detail.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "CodeableConcept", "Code that identifies the structural location.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("detail", "string", "Detailed anatomical location information.", 0, java.lang.Integer.MAX_VALUE, detail)); - } - - public ConditionLocationComponent copy() { - ConditionLocationComponent dst = new ConditionLocationComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.detail = detail == null ? null : detail.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (detail == null || detail.isEmpty()) - ; - } - - } - - @Block() - public static class ConditionDueToComponent extends BackboneElement { - /** - * Code that identifies the target of this relationship. The code takes the place of a detailed instance target. - */ - @Child(name="codeableConcept", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="Relationship target by means of a predefined code", formalDefinition="Code that identifies the target of this relationship. The code takes the place of a detailed instance target." ) - protected CodeableConcept codeableConcept; - - /** - * Target of the relationship. - */ - @Child(name="target", type={Condition.class, Procedure.class, MedicationAdministration.class, Immunization.class, MedicationStatement.class}, order=2, min=0, max=1) - @Description(shortDefinition="Relationship target resource", formalDefinition="Target of the relationship." ) - protected Reference target; - - /** - * The actual object that is the target of the reference (Target of the relationship.) - */ - protected Resource targetTarget; - - private static final long serialVersionUID = -864422450L; - - public ConditionDueToComponent() { - super(); - } - - /** - * @return {@link #codeableConcept} (Code that identifies the target of this relationship. The code takes the place of a detailed instance target.) - */ - public CodeableConcept getCodeableConcept() { - if (this.codeableConcept == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConditionDueToComponent.codeableConcept"); - else if (Configuration.doAutoCreate()) - this.codeableConcept = new CodeableConcept(); - return this.codeableConcept; - } - - public boolean hasCodeableConcept() { - return this.codeableConcept != null && !this.codeableConcept.isEmpty(); - } - - /** - * @param value {@link #codeableConcept} (Code that identifies the target of this relationship. The code takes the place of a detailed instance target.) - */ - public ConditionDueToComponent setCodeableConcept(CodeableConcept value) { - this.codeableConcept = value; - return this; - } - - /** - * @return {@link #target} (Target of the relationship.) - */ - public Reference getTarget() { - if (this.target == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConditionDueToComponent.target"); - else if (Configuration.doAutoCreate()) - this.target = new Reference(); - return this.target; - } - - public boolean hasTarget() { - return this.target != null && !this.target.isEmpty(); - } - - /** - * @param value {@link #target} (Target of the relationship.) - */ - public ConditionDueToComponent setTarget(Reference value) { - this.target = value; - return this; - } - - /** - * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Target of the relationship.) - */ - public Resource getTargetTarget() { - return this.targetTarget; - } - - /** - * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Target of the relationship.) - */ - public ConditionDueToComponent setTargetTarget(Resource value) { - this.targetTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("codeableConcept", "CodeableConcept", "Code that identifies the target of this relationship. The code takes the place of a detailed instance target.", 0, java.lang.Integer.MAX_VALUE, codeableConcept)); - childrenList.add(new Property("target", "Reference(Condition|Procedure|MedicationAdministration|Immunization|MedicationStatement)", "Target of the relationship.", 0, java.lang.Integer.MAX_VALUE, target)); - } - - public ConditionDueToComponent copy() { - ConditionDueToComponent dst = new ConditionDueToComponent(); - copyValues(dst); - dst.codeableConcept = codeableConcept == null ? null : codeableConcept.copy(); - dst.target = target == null ? null : target.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (codeableConcept == null || codeableConcept.isEmpty()) && (target == null || target.isEmpty()) - ; - } - - } - - @Block() - public static class ConditionOccurredFollowingComponent extends BackboneElement { - /** - * Code that identifies the target of this relationship. The code takes the place of a detailed instance target. - */ - @Child(name="codeableConcept", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="Relationship target by means of a predefined code", formalDefinition="Code that identifies the target of this relationship. The code takes the place of a detailed instance target." ) - protected CodeableConcept codeableConcept; - - /** - * Target of the relationship. - */ - @Child(name="target", type={Condition.class, Procedure.class, MedicationAdministration.class, Immunization.class, MedicationStatement.class}, order=2, min=0, max=1) - @Description(shortDefinition="Relationship target resource", formalDefinition="Target of the relationship." ) - protected Reference target; - - /** - * The actual object that is the target of the reference (Target of the relationship.) - */ - protected Resource targetTarget; - - private static final long serialVersionUID = -864422450L; - - public ConditionOccurredFollowingComponent() { - super(); - } - - /** - * @return {@link #codeableConcept} (Code that identifies the target of this relationship. The code takes the place of a detailed instance target.) - */ - public CodeableConcept getCodeableConcept() { - if (this.codeableConcept == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConditionOccurredFollowingComponent.codeableConcept"); - else if (Configuration.doAutoCreate()) - this.codeableConcept = new CodeableConcept(); - return this.codeableConcept; - } - - public boolean hasCodeableConcept() { - return this.codeableConcept != null && !this.codeableConcept.isEmpty(); - } - - /** - * @param value {@link #codeableConcept} (Code that identifies the target of this relationship. The code takes the place of a detailed instance target.) - */ - public ConditionOccurredFollowingComponent setCodeableConcept(CodeableConcept value) { - this.codeableConcept = value; - return this; - } - - /** - * @return {@link #target} (Target of the relationship.) - */ - public Reference getTarget() { - if (this.target == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConditionOccurredFollowingComponent.target"); - else if (Configuration.doAutoCreate()) - this.target = new Reference(); - return this.target; - } - - public boolean hasTarget() { - return this.target != null && !this.target.isEmpty(); - } - - /** - * @param value {@link #target} (Target of the relationship.) - */ - public ConditionOccurredFollowingComponent setTarget(Reference value) { - this.target = value; - return this; - } - - /** - * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Target of the relationship.) - */ - public Resource getTargetTarget() { - return this.targetTarget; - } - - /** - * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Target of the relationship.) - */ - public ConditionOccurredFollowingComponent setTargetTarget(Resource value) { - this.targetTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("codeableConcept", "CodeableConcept", "Code that identifies the target of this relationship. The code takes the place of a detailed instance target.", 0, java.lang.Integer.MAX_VALUE, codeableConcept)); - childrenList.add(new Property("target", "Reference(Condition|Procedure|MedicationAdministration|Immunization|MedicationStatement)", "Target of the relationship.", 0, java.lang.Integer.MAX_VALUE, target)); - } - - public ConditionOccurredFollowingComponent copy() { - ConditionOccurredFollowingComponent dst = new ConditionOccurredFollowingComponent(); - copyValues(dst); - dst.codeableConcept = codeableConcept == null ? null : codeableConcept.copy(); - dst.target = target == null ? null : target.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (codeableConcept == null || codeableConcept.isEmpty()) && (target == null || target.isEmpty()) - ; - } - - } - - /** - * This records identifiers associated with this condition that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External Ids for this condition", formalDefinition="This records identifiers associated with this condition that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) - protected List identifier; - - /** - * Indicates the patient who the condition record is associated with. - */ - @Child(name="subject", type={Patient.class}, order=0, min=1, max=1) - @Description(shortDefinition="Who has the condition?", formalDefinition="Indicates the patient who the condition record is associated with." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (Indicates the patient who the condition record is associated with.) - */ - protected Patient subjectTarget; - - /** - * Encounter during which the condition was first asserted. - */ - @Child(name="encounter", type={Encounter.class}, order=1, min=0, max=1) - @Description(shortDefinition="Encounter when condition first asserted", formalDefinition="Encounter during which the condition was first asserted." ) - protected Reference encounter; - - /** - * The actual object that is the target of the reference (Encounter during which the condition was first asserted.) - */ - protected Encounter encounterTarget; - - /** - * Person who takes responsibility for asserting the existence of the condition as part of the electronic record. - */ - @Child(name="asserter", type={Practitioner.class, Patient.class}, order=2, min=0, max=1) - @Description(shortDefinition="Person who asserts this condition", formalDefinition="Person who takes responsibility for asserting the existence of the condition as part of the electronic record." ) - protected Reference asserter; - - /** - * The actual object that is the target of the reference (Person who takes responsibility for asserting the existence of the condition as part of the electronic record.) - */ - protected Resource asserterTarget; - - /** - * Estimated or actual date the condition/problem/diagnosis was first detected/suspected. - */ - @Child(name="dateAsserted", type={DateType.class}, order=3, min=0, max=1) - @Description(shortDefinition="When first detected/suspected/entered", formalDefinition="Estimated or actual date the condition/problem/diagnosis was first detected/suspected." ) - protected DateType dateAsserted; - - /** - * Identification of the condition, problem or diagnosis. - */ - @Child(name="code", type={CodeableConcept.class}, order=4, min=1, max=1) - @Description(shortDefinition="Identification of the condition, problem or diagnosis", formalDefinition="Identification of the condition, problem or diagnosis." ) - protected CodeableConcept code; - - /** - * A category assigned to the condition. E.g. complaint | symptom | finding | diagnosis. - */ - @Child(name="category", type={CodeableConcept.class}, order=5, min=0, max=1) - @Description(shortDefinition="E.g. complaint | symptom | finding | diagnosis", formalDefinition="A category assigned to the condition. E.g. complaint | symptom | finding | diagnosis." ) - protected CodeableConcept category; - - /** - * The clinical status of the condition. - */ - @Child(name="status", type={CodeType.class}, order=6, min=1, max=1) - @Description(shortDefinition="provisional | working | confirmed | refuted", formalDefinition="The clinical status of the condition." ) - protected Enumeration status; - - /** - * The degree of confidence that this condition is correct. - */ - @Child(name="certainty", type={CodeableConcept.class}, order=7, min=0, max=1) - @Description(shortDefinition="Degree of confidence", formalDefinition="The degree of confidence that this condition is correct." ) - protected CodeableConcept certainty; - - /** - * A subjective assessment of the severity of the condition as evaluated by the clinician. - */ - @Child(name="severity", type={CodeableConcept.class}, order=8, min=0, max=1) - @Description(shortDefinition="Subjective severity of condition", formalDefinition="A subjective assessment of the severity of the condition as evaluated by the clinician." ) - protected CodeableConcept severity; - - /** - * Estimated or actual date or date-time the condition began, in the opinion of the clinician. - */ - @Child(name="onset", type={DateTimeType.class, Age.class}, order=9, min=0, max=1) - @Description(shortDefinition="Estimated or actual date, date-time, or age", formalDefinition="Estimated or actual date or date-time the condition began, in the opinion of the clinician." ) - protected Type onset; - - /** - * The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate. - */ - @Child(name="abatement", type={DateType.class, Age.class, BooleanType.class}, order=10, min=0, max=1) - @Description(shortDefinition="If/when in resolution/remission", formalDefinition="The date or estimated date that the condition resolved or went into remission. This is called 'abatement' because of the many overloaded connotations associated with 'remission' or 'resolution' - Conditions are never really resolved, but they can abate." ) - protected Type abatement; - - /** - * Clinical stage or grade of a condition. May include formal severity assessments. - */ - @Child(name="stage", type={}, order=11, min=0, max=1) - @Description(shortDefinition="Stage/grade, usually assessed formally", formalDefinition="Clinical stage or grade of a condition. May include formal severity assessments." ) - protected ConditionStageComponent stage; - - /** - * Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed. - */ - @Child(name="evidence", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Supporting evidence", formalDefinition="Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed." ) - protected List evidence; - - /** - * The anatomical location where this condition manifests itself. - */ - @Child(name="location", type={}, order=13, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Anatomical location, if relevant", formalDefinition="The anatomical location where this condition manifests itself." ) - protected List location; - - /** - * Further conditions, problems, diagnoses, procedures or events or the substance that caused/triggered this Condition. - */ - @Child(name="dueTo", type={}, order=14, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Causes for this Condition", formalDefinition="Further conditions, problems, diagnoses, procedures or events or the substance that caused/triggered this Condition." ) - protected List dueTo; - - /** - * Further conditions, problems, diagnoses, procedures or events or the substance that preceded this Condition. - */ - @Child(name="occurredFollowing", type={}, order=15, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Precedent for this Condition", formalDefinition="Further conditions, problems, diagnoses, procedures or events or the substance that preceded this Condition." ) - protected List occurredFollowing; - - /** - * Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis. - */ - @Child(name="notes", type={StringType.class}, order=16, min=0, max=1) - @Description(shortDefinition="Additional information about the Condition", formalDefinition="Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis." ) - protected StringType notes; - - private static final long serialVersionUID = -771013294L; - - public Condition() { - super(); - } - - public Condition(Reference subject, CodeableConcept code, Enumeration status) { - super(); - this.subject = subject; - this.code = code; - this.status = status; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this condition that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this condition that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #subject} (Indicates the patient who the condition record is associated with.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (Indicates the patient who the condition record is associated with.) - */ - public Condition setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates the patient who the condition record is associated with.) - */ - public Patient getSubjectTarget() { - if (this.subjectTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.subject"); - else if (Configuration.doAutoCreate()) - this.subjectTarget = new Patient(); - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates the patient who the condition record is associated with.) - */ - public Condition setSubjectTarget(Patient value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #encounter} (Encounter during which the condition was first asserted.) - */ - public Reference getEncounter() { - if (this.encounter == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.encounter"); - else if (Configuration.doAutoCreate()) - this.encounter = new Reference(); - return this.encounter; - } - - public boolean hasEncounter() { - return this.encounter != null && !this.encounter.isEmpty(); - } - - /** - * @param value {@link #encounter} (Encounter during which the condition was first asserted.) - */ - public Condition setEncounter(Reference value) { - this.encounter = value; - return this; - } - - /** - * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Encounter during which the condition was first asserted.) - */ - public Encounter getEncounterTarget() { - if (this.encounterTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.encounter"); - else if (Configuration.doAutoCreate()) - this.encounterTarget = new Encounter(); - return this.encounterTarget; - } - - /** - * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Encounter during which the condition was first asserted.) - */ - public Condition setEncounterTarget(Encounter value) { - this.encounterTarget = value; - return this; - } - - /** - * @return {@link #asserter} (Person who takes responsibility for asserting the existence of the condition as part of the electronic record.) - */ - public Reference getAsserter() { - if (this.asserter == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.asserter"); - else if (Configuration.doAutoCreate()) - this.asserter = new Reference(); - return this.asserter; - } - - public boolean hasAsserter() { - return this.asserter != null && !this.asserter.isEmpty(); - } - - /** - * @param value {@link #asserter} (Person who takes responsibility for asserting the existence of the condition as part of the electronic record.) - */ - public Condition setAsserter(Reference value) { - this.asserter = value; - return this; - } - - /** - * @return {@link #asserter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Person who takes responsibility for asserting the existence of the condition as part of the electronic record.) - */ - public Resource getAsserterTarget() { - return this.asserterTarget; - } - - /** - * @param value {@link #asserter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Person who takes responsibility for asserting the existence of the condition as part of the electronic record.) - */ - public Condition setAsserterTarget(Resource value) { - this.asserterTarget = value; - return this; - } - - /** - * @return {@link #dateAsserted} (Estimated or actual date the condition/problem/diagnosis was first detected/suspected.). This is the underlying object with id, value and extensions. The accessor "getDateAsserted" gives direct access to the value - */ - public DateType getDateAssertedElement() { - if (this.dateAsserted == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.dateAsserted"); - else if (Configuration.doAutoCreate()) - this.dateAsserted = new DateType(); - return this.dateAsserted; - } - - public boolean hasDateAssertedElement() { - return this.dateAsserted != null && !this.dateAsserted.isEmpty(); - } - - public boolean hasDateAsserted() { - return this.dateAsserted != null && !this.dateAsserted.isEmpty(); - } - - /** - * @param value {@link #dateAsserted} (Estimated or actual date the condition/problem/diagnosis was first detected/suspected.). This is the underlying object with id, value and extensions. The accessor "getDateAsserted" gives direct access to the value - */ - public Condition setDateAssertedElement(DateType value) { - this.dateAsserted = value; - return this; - } - - /** - * @return Estimated or actual date the condition/problem/diagnosis was first detected/suspected. - */ - public Date getDateAsserted() { - return this.dateAsserted == null ? null : this.dateAsserted.getValue(); - } - - /** - * @param value Estimated or actual date the condition/problem/diagnosis was first detected/suspected. - */ - public Condition setDateAsserted(Date value) { - if (value == null) - this.dateAsserted = null; - else { - if (this.dateAsserted == null) - this.dateAsserted = new DateType(); - this.dateAsserted.setValue(value); - } - return this; - } - - /** - * @return {@link #code} (Identification of the condition, problem or diagnosis.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Identification of the condition, problem or diagnosis.) - */ - public Condition setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #category} (A category assigned to the condition. E.g. complaint | symptom | finding | diagnosis.) - */ - public CodeableConcept getCategory() { - if (this.category == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.category"); - else if (Configuration.doAutoCreate()) - this.category = new CodeableConcept(); - return this.category; - } - - public boolean hasCategory() { - return this.category != null && !this.category.isEmpty(); - } - - /** - * @param value {@link #category} (A category assigned to the condition. E.g. complaint | symptom | finding | diagnosis.) - */ - public Condition setCategory(CodeableConcept value) { - this.category = value; - return this; - } - - /** - * @return {@link #status} (The clinical status of the condition.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The clinical status of the condition.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Condition setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The clinical status of the condition. - */ - public ConditionStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The clinical status of the condition. - */ - public Condition setStatus(ConditionStatus value) { - if (this.status == null) - this.status = new Enumeration(ConditionStatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #certainty} (The degree of confidence that this condition is correct.) - */ - public CodeableConcept getCertainty() { - if (this.certainty == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.certainty"); - else if (Configuration.doAutoCreate()) - this.certainty = new CodeableConcept(); - return this.certainty; - } - - public boolean hasCertainty() { - return this.certainty != null && !this.certainty.isEmpty(); - } - - /** - * @param value {@link #certainty} (The degree of confidence that this condition is correct.) - */ - public Condition setCertainty(CodeableConcept value) { - this.certainty = value; - return this; - } - - /** - * @return {@link #severity} (A subjective assessment of the severity of the condition as evaluated by the clinician.) - */ - public CodeableConcept getSeverity() { - if (this.severity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.severity"); - else if (Configuration.doAutoCreate()) - this.severity = new CodeableConcept(); - return this.severity; - } - - public boolean hasSeverity() { - return this.severity != null && !this.severity.isEmpty(); - } - - /** - * @param value {@link #severity} (A subjective assessment of the severity of the condition as evaluated by the clinician.) - */ - public Condition setSeverity(CodeableConcept value) { - this.severity = value; - return this; - } - - /** - * @return {@link #onset} (Estimated or actual date or date-time the condition began, in the opinion of the clinician.) - */ - public Type getOnset() { - return this.onset; - } - - /** - * @return {@link #onset} (Estimated or actual date or date-time the condition began, in the opinion of the clinician.) - */ - public DateTimeType getOnsetDateTimeType() throws Exception { - if (!(this.onset instanceof DateTimeType)) - throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.onset.getClass().getName()+" was encountered"); - return (DateTimeType) this.onset; - } - - /** - * @return {@link #onset} (Estimated or actual date or date-time the condition began, in the opinion of the clinician.) - */ - public Age getOnsetAge() throws Exception { - if (!(this.onset instanceof Age)) - throw new Exception("Type mismatch: the type Age was expected, but "+this.onset.getClass().getName()+" was encountered"); - return (Age) this.onset; - } - - public boolean hasOnset() { - return this.onset != null && !this.onset.isEmpty(); - } - - /** - * @param value {@link #onset} (Estimated or actual date or date-time the condition began, in the opinion of the clinician.) - */ - public Condition setOnset(Type value) { - this.onset = value; - return this; - } - - /** - * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.) - */ - public Type getAbatement() { - return this.abatement; - } - - /** - * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.) - */ - public DateType getAbatementDateType() throws Exception { - if (!(this.abatement instanceof DateType)) - throw new Exception("Type mismatch: the type DateType was expected, but "+this.abatement.getClass().getName()+" was encountered"); - return (DateType) this.abatement; - } - - /** - * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.) - */ - public Age getAbatementAge() throws Exception { - if (!(this.abatement instanceof Age)) - throw new Exception("Type mismatch: the type Age was expected, but "+this.abatement.getClass().getName()+" was encountered"); - return (Age) this.abatement; - } - - /** - * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.) - */ - public BooleanType getAbatementBooleanType() throws Exception { - if (!(this.abatement instanceof BooleanType)) - throw new Exception("Type mismatch: the type BooleanType was expected, but "+this.abatement.getClass().getName()+" was encountered"); - return (BooleanType) this.abatement; - } - - public boolean hasAbatement() { - return this.abatement != null && !this.abatement.isEmpty(); - } - - /** - * @param value {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.) - */ - public Condition setAbatement(Type value) { - this.abatement = value; - return this; - } - - /** - * @return {@link #stage} (Clinical stage or grade of a condition. May include formal severity assessments.) - */ - public ConditionStageComponent getStage() { - if (this.stage == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.stage"); - else if (Configuration.doAutoCreate()) - this.stage = new ConditionStageComponent(); - return this.stage; - } - - public boolean hasStage() { - return this.stage != null && !this.stage.isEmpty(); - } - - /** - * @param value {@link #stage} (Clinical stage or grade of a condition. May include formal severity assessments.) - */ - public Condition setStage(ConditionStageComponent value) { - this.stage = value; - return this; - } - - /** - * @return {@link #evidence} (Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed.) - */ - public List getEvidence() { - if (this.evidence == null) - this.evidence = new ArrayList(); - return this.evidence; - } - - public boolean hasEvidence() { - if (this.evidence == null) - return false; - for (ConditionEvidenceComponent item : this.evidence) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #evidence} (Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed.) - */ - // syntactic sugar - public ConditionEvidenceComponent addEvidence() { //3 - ConditionEvidenceComponent t = new ConditionEvidenceComponent(); - if (this.evidence == null) - this.evidence = new ArrayList(); - this.evidence.add(t); - return t; - } - - /** - * @return {@link #location} (The anatomical location where this condition manifests itself.) - */ - public List getLocation() { - if (this.location == null) - this.location = new ArrayList(); - return this.location; - } - - public boolean hasLocation() { - if (this.location == null) - return false; - for (ConditionLocationComponent item : this.location) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #location} (The anatomical location where this condition manifests itself.) - */ - // syntactic sugar - public ConditionLocationComponent addLocation() { //3 - ConditionLocationComponent t = new ConditionLocationComponent(); - if (this.location == null) - this.location = new ArrayList(); - this.location.add(t); - return t; - } - - /** - * @return {@link #dueTo} (Further conditions, problems, diagnoses, procedures or events or the substance that caused/triggered this Condition.) - */ - public List getDueTo() { - if (this.dueTo == null) - this.dueTo = new ArrayList(); - return this.dueTo; - } - - public boolean hasDueTo() { - if (this.dueTo == null) - return false; - for (ConditionDueToComponent item : this.dueTo) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #dueTo} (Further conditions, problems, diagnoses, procedures or events or the substance that caused/triggered this Condition.) - */ - // syntactic sugar - public ConditionDueToComponent addDueTo() { //3 - ConditionDueToComponent t = new ConditionDueToComponent(); - if (this.dueTo == null) - this.dueTo = new ArrayList(); - this.dueTo.add(t); - return t; - } - - /** - * @return {@link #occurredFollowing} (Further conditions, problems, diagnoses, procedures or events or the substance that preceded this Condition.) - */ - public List getOccurredFollowing() { - if (this.occurredFollowing == null) - this.occurredFollowing = new ArrayList(); - return this.occurredFollowing; - } - - public boolean hasOccurredFollowing() { - if (this.occurredFollowing == null) - return false; - for (ConditionOccurredFollowingComponent item : this.occurredFollowing) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #occurredFollowing} (Further conditions, problems, diagnoses, procedures or events or the substance that preceded this Condition.) - */ - // syntactic sugar - public ConditionOccurredFollowingComponent addOccurredFollowing() { //3 - ConditionOccurredFollowingComponent t = new ConditionOccurredFollowingComponent(); - if (this.occurredFollowing == null) - this.occurredFollowing = new ArrayList(); - this.occurredFollowing.add(t); - return t; - } - - /** - * @return {@link #notes} (Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public StringType getNotesElement() { - if (this.notes == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Condition.notes"); - else if (Configuration.doAutoCreate()) - this.notes = new StringType(); - return this.notes; - } - - public boolean hasNotesElement() { - return this.notes != null && !this.notes.isEmpty(); - } - - public boolean hasNotes() { - return this.notes != null && !this.notes.isEmpty(); - } - - /** - * @param value {@link #notes} (Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public Condition setNotesElement(StringType value) { - this.notes = value; - return this; - } - - /** - * @return Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis. - */ - public String getNotes() { - return this.notes == null ? null : this.notes.getValue(); - } - - /** - * @param value Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis. - */ - public Condition setNotes(String value) { - if (Utilities.noString(value)) - this.notes = null; - else { - if (this.notes == null) - this.notes = new StringType(); - this.notes.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this condition that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("subject", "Reference(Patient)", "Indicates the patient who the condition record is associated with.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("encounter", "Reference(Encounter)", "Encounter during which the condition was first asserted.", 0, java.lang.Integer.MAX_VALUE, encounter)); - childrenList.add(new Property("asserter", "Reference(Practitioner|Patient)", "Person who takes responsibility for asserting the existence of the condition as part of the electronic record.", 0, java.lang.Integer.MAX_VALUE, asserter)); - childrenList.add(new Property("dateAsserted", "date", "Estimated or actual date the condition/problem/diagnosis was first detected/suspected.", 0, java.lang.Integer.MAX_VALUE, dateAsserted)); - childrenList.add(new Property("code", "CodeableConcept", "Identification of the condition, problem or diagnosis.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("category", "CodeableConcept", "A category assigned to the condition. E.g. complaint | symptom | finding | diagnosis.", 0, java.lang.Integer.MAX_VALUE, category)); - childrenList.add(new Property("status", "code", "The clinical status of the condition.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("certainty", "CodeableConcept", "The degree of confidence that this condition is correct.", 0, java.lang.Integer.MAX_VALUE, certainty)); - childrenList.add(new Property("severity", "CodeableConcept", "A subjective assessment of the severity of the condition as evaluated by the clinician.", 0, java.lang.Integer.MAX_VALUE, severity)); - childrenList.add(new Property("onset[x]", "dateTime|Age", "Estimated or actual date or date-time the condition began, in the opinion of the clinician.", 0, java.lang.Integer.MAX_VALUE, onset)); - childrenList.add(new Property("abatement[x]", "date|Age|boolean", "The date or estimated date that the condition resolved or went into remission. This is called 'abatement' because of the many overloaded connotations associated with 'remission' or 'resolution' - Conditions are never really resolved, but they can abate.", 0, java.lang.Integer.MAX_VALUE, abatement)); - childrenList.add(new Property("stage", "", "Clinical stage or grade of a condition. May include formal severity assessments.", 0, java.lang.Integer.MAX_VALUE, stage)); - childrenList.add(new Property("evidence", "", "Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed.", 0, java.lang.Integer.MAX_VALUE, evidence)); - childrenList.add(new Property("location", "", "The anatomical location where this condition manifests itself.", 0, java.lang.Integer.MAX_VALUE, location)); - childrenList.add(new Property("dueTo", "", "Further conditions, problems, diagnoses, procedures or events or the substance that caused/triggered this Condition.", 0, java.lang.Integer.MAX_VALUE, dueTo)); - childrenList.add(new Property("occurredFollowing", "", "Further conditions, problems, diagnoses, procedures or events or the substance that preceded this Condition.", 0, java.lang.Integer.MAX_VALUE, occurredFollowing)); - childrenList.add(new Property("notes", "string", "Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis.", 0, java.lang.Integer.MAX_VALUE, notes)); - } - - public Condition copy() { - Condition dst = new Condition(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.subject = subject == null ? null : subject.copy(); - dst.encounter = encounter == null ? null : encounter.copy(); - dst.asserter = asserter == null ? null : asserter.copy(); - dst.dateAsserted = dateAsserted == null ? null : dateAsserted.copy(); - dst.code = code == null ? null : code.copy(); - dst.category = category == null ? null : category.copy(); - dst.status = status == null ? null : status.copy(); - dst.certainty = certainty == null ? null : certainty.copy(); - dst.severity = severity == null ? null : severity.copy(); - dst.onset = onset == null ? null : onset.copy(); - dst.abatement = abatement == null ? null : abatement.copy(); - dst.stage = stage == null ? null : stage.copy(); - if (evidence != null) { - dst.evidence = new ArrayList(); - for (ConditionEvidenceComponent i : evidence) - dst.evidence.add(i.copy()); - }; - if (location != null) { - dst.location = new ArrayList(); - for (ConditionLocationComponent i : location) - dst.location.add(i.copy()); - }; - if (dueTo != null) { - dst.dueTo = new ArrayList(); - for (ConditionDueToComponent i : dueTo) - dst.dueTo.add(i.copy()); - }; - if (occurredFollowing != null) { - dst.occurredFollowing = new ArrayList(); - for (ConditionOccurredFollowingComponent i : occurredFollowing) - dst.occurredFollowing.add(i.copy()); - }; - dst.notes = notes == null ? null : notes.copy(); - return dst; - } - - protected Condition typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (subject == null || subject.isEmpty()) - && (encounter == null || encounter.isEmpty()) && (asserter == null || asserter.isEmpty()) - && (dateAsserted == null || dateAsserted.isEmpty()) && (code == null || code.isEmpty()) && (category == null || category.isEmpty()) - && (status == null || status.isEmpty()) && (certainty == null || certainty.isEmpty()) && (severity == null || severity.isEmpty()) - && (onset == null || onset.isEmpty()) && (abatement == null || abatement.isEmpty()) && (stage == null || stage.isEmpty()) - && (evidence == null || evidence.isEmpty()) && (location == null || location.isEmpty()) && (dueTo == null || dueTo.isEmpty()) - && (occurredFollowing == null || occurredFollowing.isEmpty()) && (notes == null || notes.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Condition; - } - - @SearchParamDefinition(name="asserter", path="Condition.asserter", description="Person who asserts this condition", type="reference" ) - public static final String SP_ASSERTER = "asserter"; - @SearchParamDefinition(name="following-code", path="Condition.occurredFollowing.codeableConcept", description="Relationship target by means of a predefined code", type="token" ) - public static final String SP_FOLLOWINGCODE = "following-code"; - @SearchParamDefinition(name="dueto-code", path="Condition.dueTo.codeableConcept", description="Relationship target by means of a predefined code", type="token" ) - public static final String SP_DUETOCODE = "dueto-code"; - @SearchParamDefinition(name="status", path="Condition.status", description="The status of the condition", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="location", path="Condition.location.code", description="Location - may include laterality", type="token" ) - public static final String SP_LOCATION = "location"; - @SearchParamDefinition(name="subject", path="Condition.subject", description="Who has the condition?", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="onset", path="Condition.onset[x]", description="When the Condition started (if started on a date)", type="date" ) - public static final String SP_ONSET = "onset"; - @SearchParamDefinition(name="evidence", path="Condition.evidence.code", description="Manifestation/symptom", type="token" ) - public static final String SP_EVIDENCE = "evidence"; - @SearchParamDefinition(name="following-item", path="Condition.occurredFollowing.target", description="Relationship target resource", type="reference" ) - public static final String SP_FOLLOWINGITEM = "following-item"; - @SearchParamDefinition(name="severity", path="Condition.severity", description="The severity of the condition", type="token" ) - public static final String SP_SEVERITY = "severity"; - @SearchParamDefinition(name="code", path="Condition.code", description="Code for the condition", type="token" ) - public static final String SP_CODE = "code"; - @SearchParamDefinition(name="encounter", path="Condition.encounter", description="Encounter when condition first asserted", type="reference" ) - public static final String SP_ENCOUNTER = "encounter"; - @SearchParamDefinition(name="date-asserted", path="Condition.dateAsserted", description="When first detected/suspected/entered", type="date" ) - public static final String SP_DATEASSERTED = "date-asserted"; - @SearchParamDefinition(name="stage", path="Condition.stage.summary", description="Simple summary (disease specific)", type="token" ) - public static final String SP_STAGE = "stage"; - @SearchParamDefinition(name="category", path="Condition.category", description="The category of the condition", type="token" ) - public static final String SP_CATEGORY = "category"; - @SearchParamDefinition(name="patient", path="Condition.subject", description="Who has the condition?", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="dueto-item", path="Condition.dueTo.target", description="Relationship target resource", type="reference" ) - public static final String SP_DUETOITEM = "dueto-item"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Use to record detailed information about conditions, problems or diagnoses recognized by a clinician. There are many uses including: recording a Diagnosis during an Encounter; populating a problem List or a Summary Statement, such as a Discharge Summary. + */ +@ResourceDef(name="Condition", profile="http://hl7.org/fhir/Profile/Condition") +public class Condition extends DomainResource { + + public enum ConditionStatus { + /** + * This is a tentative diagnosis - still a candidate that is under consideration. + */ + PROVISIONAL, + /** + * The patient is being treated on the basis that this is the condition, but it is still not confirmed. + */ + WORKING, + /** + * There is sufficient diagnostic and/or clinical evidence to treat this as a confirmed condition. + */ + CONFIRMED, + /** + * This condition has been ruled out by diagnostic and clinical evidence. + */ + REFUTED, + /** + * added to help the parsers + */ + NULL; + public static ConditionStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("provisional".equals(codeString)) + return PROVISIONAL; + if ("working".equals(codeString)) + return WORKING; + if ("confirmed".equals(codeString)) + return CONFIRMED; + if ("refuted".equals(codeString)) + return REFUTED; + throw new Exception("Unknown ConditionStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PROVISIONAL: return "provisional"; + case WORKING: return "working"; + case CONFIRMED: return "confirmed"; + case REFUTED: return "refuted"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PROVISIONAL: return ""; + case WORKING: return ""; + case CONFIRMED: return ""; + case REFUTED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PROVISIONAL: return "This is a tentative diagnosis - still a candidate that is under consideration."; + case WORKING: return "The patient is being treated on the basis that this is the condition, but it is still not confirmed."; + case CONFIRMED: return "There is sufficient diagnostic and/or clinical evidence to treat this as a confirmed condition."; + case REFUTED: return "This condition has been ruled out by diagnostic and clinical evidence."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PROVISIONAL: return "provisional"; + case WORKING: return "working"; + case CONFIRMED: return "confirmed"; + case REFUTED: return "refuted"; + default: return "?"; + } + } + } + + public static class ConditionStatusEnumFactory implements EnumFactory { + public ConditionStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("provisional".equals(codeString)) + return ConditionStatus.PROVISIONAL; + if ("working".equals(codeString)) + return ConditionStatus.WORKING; + if ("confirmed".equals(codeString)) + return ConditionStatus.CONFIRMED; + if ("refuted".equals(codeString)) + return ConditionStatus.REFUTED; + throw new IllegalArgumentException("Unknown ConditionStatus code '"+codeString+"'"); + } + public String toCode(ConditionStatus code) { + if (code == ConditionStatus.PROVISIONAL) + return "provisional"; + if (code == ConditionStatus.WORKING) + return "working"; + if (code == ConditionStatus.CONFIRMED) + return "confirmed"; + if (code == ConditionStatus.REFUTED) + return "refuted"; + return "?"; + } + } + + @Block() + public static class ConditionStageComponent extends BackboneElement { + /** + * A simple summary of the stage such as "Stage 3". The determination of the stage is disease-specific. + */ + @Child(name="summary", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Simple summary (disease specific)", formalDefinition="A simple summary of the stage such as 'Stage 3'. The determination of the stage is disease-specific." ) + protected CodeableConcept summary; + + /** + * Reference to a formal record of the evidence on which the staging assessment is based. + */ + @Child(name="assessment", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Formal record of assessment", formalDefinition="Reference to a formal record of the evidence on which the staging assessment is based." ) + protected List assessment; + /** + * The actual objects that are the target of the reference (Reference to a formal record of the evidence on which the staging assessment is based.) + */ + protected List assessmentTarget; + + + private static final long serialVersionUID = -1961530405L; + + public ConditionStageComponent() { + super(); + } + + /** + * @return {@link #summary} (A simple summary of the stage such as "Stage 3". The determination of the stage is disease-specific.) + */ + public CodeableConcept getSummary() { + if (this.summary == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConditionStageComponent.summary"); + else if (Configuration.doAutoCreate()) + this.summary = new CodeableConcept(); // cc + return this.summary; + } + + public boolean hasSummary() { + return this.summary != null && !this.summary.isEmpty(); + } + + /** + * @param value {@link #summary} (A simple summary of the stage such as "Stage 3". The determination of the stage is disease-specific.) + */ + public ConditionStageComponent setSummary(CodeableConcept value) { + this.summary = value; + return this; + } + + /** + * @return {@link #assessment} (Reference to a formal record of the evidence on which the staging assessment is based.) + */ + public List getAssessment() { + if (this.assessment == null) + this.assessment = new ArrayList(); + return this.assessment; + } + + public boolean hasAssessment() { + if (this.assessment == null) + return false; + for (Reference item : this.assessment) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #assessment} (Reference to a formal record of the evidence on which the staging assessment is based.) + */ + // syntactic sugar + public Reference addAssessment() { //3 + Reference t = new Reference(); + if (this.assessment == null) + this.assessment = new ArrayList(); + this.assessment.add(t); + return t; + } + + /** + * @return {@link #assessment} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Reference to a formal record of the evidence on which the staging assessment is based.) + */ + public List getAssessmentTarget() { + if (this.assessmentTarget == null) + this.assessmentTarget = new ArrayList(); + return this.assessmentTarget; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("summary", "CodeableConcept", "A simple summary of the stage such as 'Stage 3'. The determination of the stage is disease-specific.", 0, java.lang.Integer.MAX_VALUE, summary)); + childrenList.add(new Property("assessment", "Reference(Any)", "Reference to a formal record of the evidence on which the staging assessment is based.", 0, java.lang.Integer.MAX_VALUE, assessment)); + } + + public ConditionStageComponent copy() { + ConditionStageComponent dst = new ConditionStageComponent(); + copyValues(dst); + dst.summary = summary == null ? null : summary.copy(); + if (assessment != null) { + dst.assessment = new ArrayList(); + for (Reference i : assessment) + dst.assessment.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConditionStageComponent)) + return false; + ConditionStageComponent o = (ConditionStageComponent) other; + return compareDeep(summary, o.summary, true) && compareDeep(assessment, o.assessment, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConditionStageComponent)) + return false; + ConditionStageComponent o = (ConditionStageComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (summary == null || summary.isEmpty()) && (assessment == null || assessment.isEmpty()) + ; + } + + } + + @Block() + public static class ConditionEvidenceComponent extends BackboneElement { + /** + * A manifestation or symptom that led to the recording of this condition. + */ + @Child(name="code", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Manifestation/symptom", formalDefinition="A manifestation or symptom that led to the recording of this condition." ) + protected CodeableConcept code; + + /** + * Links to other relevant information, including pathology reports. + */ + @Child(name="detail", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Supporting information found elsewhere", formalDefinition="Links to other relevant information, including pathology reports." ) + protected List detail; + /** + * The actual objects that are the target of the reference (Links to other relevant information, including pathology reports.) + */ + protected List detailTarget; + + + private static final long serialVersionUID = 945689926L; + + public ConditionEvidenceComponent() { + super(); + } + + /** + * @return {@link #code} (A manifestation or symptom that led to the recording of this condition.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConditionEvidenceComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (A manifestation or symptom that led to the recording of this condition.) + */ + public ConditionEvidenceComponent setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #detail} (Links to other relevant information, including pathology reports.) + */ + public List getDetail() { + if (this.detail == null) + this.detail = new ArrayList(); + return this.detail; + } + + public boolean hasDetail() { + if (this.detail == null) + return false; + for (Reference item : this.detail) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #detail} (Links to other relevant information, including pathology reports.) + */ + // syntactic sugar + public Reference addDetail() { //3 + Reference t = new Reference(); + if (this.detail == null) + this.detail = new ArrayList(); + this.detail.add(t); + return t; + } + + /** + * @return {@link #detail} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Links to other relevant information, including pathology reports.) + */ + public List getDetailTarget() { + if (this.detailTarget == null) + this.detailTarget = new ArrayList(); + return this.detailTarget; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "CodeableConcept", "A manifestation or symptom that led to the recording of this condition.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("detail", "Reference(Any)", "Links to other relevant information, including pathology reports.", 0, java.lang.Integer.MAX_VALUE, detail)); + } + + public ConditionEvidenceComponent copy() { + ConditionEvidenceComponent dst = new ConditionEvidenceComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + if (detail != null) { + dst.detail = new ArrayList(); + for (Reference i : detail) + dst.detail.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConditionEvidenceComponent)) + return false; + ConditionEvidenceComponent o = (ConditionEvidenceComponent) other; + return compareDeep(code, o.code, true) && compareDeep(detail, o.detail, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConditionEvidenceComponent)) + return false; + ConditionEvidenceComponent o = (ConditionEvidenceComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (detail == null || detail.isEmpty()) + ; + } + + } + + @Block() + public static class ConditionLocationComponent extends BackboneElement { + /** + * Code that identifies the structural location. + */ + @Child(name="code", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Location - may include laterality", formalDefinition="Code that identifies the structural location." ) + protected CodeableConcept code; + + /** + * Detailed anatomical location information. + */ + @Child(name="detail", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Precise location details", formalDefinition="Detailed anatomical location information." ) + protected StringType detail; + + private static final long serialVersionUID = -406205954L; + + public ConditionLocationComponent() { + super(); + } + + /** + * @return {@link #code} (Code that identifies the structural location.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConditionLocationComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Code that identifies the structural location.) + */ + public ConditionLocationComponent setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #detail} (Detailed anatomical location information.). This is the underlying object with id, value and extensions. The accessor "getDetail" gives direct access to the value + */ + public StringType getDetailElement() { + if (this.detail == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConditionLocationComponent.detail"); + else if (Configuration.doAutoCreate()) + this.detail = new StringType(); // bb + return this.detail; + } + + public boolean hasDetailElement() { + return this.detail != null && !this.detail.isEmpty(); + } + + public boolean hasDetail() { + return this.detail != null && !this.detail.isEmpty(); + } + + /** + * @param value {@link #detail} (Detailed anatomical location information.). This is the underlying object with id, value and extensions. The accessor "getDetail" gives direct access to the value + */ + public ConditionLocationComponent setDetailElement(StringType value) { + this.detail = value; + return this; + } + + /** + * @return Detailed anatomical location information. + */ + public String getDetail() { + return this.detail == null ? null : this.detail.getValue(); + } + + /** + * @param value Detailed anatomical location information. + */ + public ConditionLocationComponent setDetail(String value) { + if (Utilities.noString(value)) + this.detail = null; + else { + if (this.detail == null) + this.detail = new StringType(); + this.detail.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "CodeableConcept", "Code that identifies the structural location.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("detail", "string", "Detailed anatomical location information.", 0, java.lang.Integer.MAX_VALUE, detail)); + } + + public ConditionLocationComponent copy() { + ConditionLocationComponent dst = new ConditionLocationComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.detail = detail == null ? null : detail.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConditionLocationComponent)) + return false; + ConditionLocationComponent o = (ConditionLocationComponent) other; + return compareDeep(code, o.code, true) && compareDeep(detail, o.detail, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConditionLocationComponent)) + return false; + ConditionLocationComponent o = (ConditionLocationComponent) other; + return compareValues(detail, o.detail, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (detail == null || detail.isEmpty()) + ; + } + + } + + @Block() + public static class ConditionDueToComponent extends BackboneElement { + /** + * Code that identifies the target of this relationship. The code takes the place of a detailed instance target. + */ + @Child(name="codeableConcept", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Relationship target by means of a predefined code", formalDefinition="Code that identifies the target of this relationship. The code takes the place of a detailed instance target." ) + protected CodeableConcept codeableConcept; + + /** + * Target of the relationship. + */ + @Child(name="target", type={Condition.class, Procedure.class, MedicationAdministration.class, Immunization.class, MedicationStatement.class}, order=2, min=0, max=1) + @Description(shortDefinition="Relationship target resource", formalDefinition="Target of the relationship." ) + protected Reference target; + + /** + * The actual object that is the target of the reference (Target of the relationship.) + */ + protected Resource targetTarget; + + private static final long serialVersionUID = -864422450L; + + public ConditionDueToComponent() { + super(); + } + + /** + * @return {@link #codeableConcept} (Code that identifies the target of this relationship. The code takes the place of a detailed instance target.) + */ + public CodeableConcept getCodeableConcept() { + if (this.codeableConcept == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConditionDueToComponent.codeableConcept"); + else if (Configuration.doAutoCreate()) + this.codeableConcept = new CodeableConcept(); // cc + return this.codeableConcept; + } + + public boolean hasCodeableConcept() { + return this.codeableConcept != null && !this.codeableConcept.isEmpty(); + } + + /** + * @param value {@link #codeableConcept} (Code that identifies the target of this relationship. The code takes the place of a detailed instance target.) + */ + public ConditionDueToComponent setCodeableConcept(CodeableConcept value) { + this.codeableConcept = value; + return this; + } + + /** + * @return {@link #target} (Target of the relationship.) + */ + public Reference getTarget() { + if (this.target == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConditionDueToComponent.target"); + else if (Configuration.doAutoCreate()) + this.target = new Reference(); // cc + return this.target; + } + + public boolean hasTarget() { + return this.target != null && !this.target.isEmpty(); + } + + /** + * @param value {@link #target} (Target of the relationship.) + */ + public ConditionDueToComponent setTarget(Reference value) { + this.target = value; + return this; + } + + /** + * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Target of the relationship.) + */ + public Resource getTargetTarget() { + return this.targetTarget; + } + + /** + * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Target of the relationship.) + */ + public ConditionDueToComponent setTargetTarget(Resource value) { + this.targetTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("codeableConcept", "CodeableConcept", "Code that identifies the target of this relationship. The code takes the place of a detailed instance target.", 0, java.lang.Integer.MAX_VALUE, codeableConcept)); + childrenList.add(new Property("target", "Reference(Condition|Procedure|MedicationAdministration|Immunization|MedicationStatement)", "Target of the relationship.", 0, java.lang.Integer.MAX_VALUE, target)); + } + + public ConditionDueToComponent copy() { + ConditionDueToComponent dst = new ConditionDueToComponent(); + copyValues(dst); + dst.codeableConcept = codeableConcept == null ? null : codeableConcept.copy(); + dst.target = target == null ? null : target.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConditionDueToComponent)) + return false; + ConditionDueToComponent o = (ConditionDueToComponent) other; + return compareDeep(codeableConcept, o.codeableConcept, true) && compareDeep(target, o.target, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConditionDueToComponent)) + return false; + ConditionDueToComponent o = (ConditionDueToComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (codeableConcept == null || codeableConcept.isEmpty()) && (target == null || target.isEmpty()) + ; + } + + } + + @Block() + public static class ConditionOccurredFollowingComponent extends BackboneElement { + /** + * Code that identifies the target of this relationship. The code takes the place of a detailed instance target. + */ + @Child(name="codeableConcept", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Relationship target by means of a predefined code", formalDefinition="Code that identifies the target of this relationship. The code takes the place of a detailed instance target." ) + protected CodeableConcept codeableConcept; + + /** + * Target of the relationship. + */ + @Child(name="target", type={Condition.class, Procedure.class, MedicationAdministration.class, Immunization.class, MedicationStatement.class}, order=2, min=0, max=1) + @Description(shortDefinition="Relationship target resource", formalDefinition="Target of the relationship." ) + protected Reference target; + + /** + * The actual object that is the target of the reference (Target of the relationship.) + */ + protected Resource targetTarget; + + private static final long serialVersionUID = -864422450L; + + public ConditionOccurredFollowingComponent() { + super(); + } + + /** + * @return {@link #codeableConcept} (Code that identifies the target of this relationship. The code takes the place of a detailed instance target.) + */ + public CodeableConcept getCodeableConcept() { + if (this.codeableConcept == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConditionOccurredFollowingComponent.codeableConcept"); + else if (Configuration.doAutoCreate()) + this.codeableConcept = new CodeableConcept(); // cc + return this.codeableConcept; + } + + public boolean hasCodeableConcept() { + return this.codeableConcept != null && !this.codeableConcept.isEmpty(); + } + + /** + * @param value {@link #codeableConcept} (Code that identifies the target of this relationship. The code takes the place of a detailed instance target.) + */ + public ConditionOccurredFollowingComponent setCodeableConcept(CodeableConcept value) { + this.codeableConcept = value; + return this; + } + + /** + * @return {@link #target} (Target of the relationship.) + */ + public Reference getTarget() { + if (this.target == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConditionOccurredFollowingComponent.target"); + else if (Configuration.doAutoCreate()) + this.target = new Reference(); // cc + return this.target; + } + + public boolean hasTarget() { + return this.target != null && !this.target.isEmpty(); + } + + /** + * @param value {@link #target} (Target of the relationship.) + */ + public ConditionOccurredFollowingComponent setTarget(Reference value) { + this.target = value; + return this; + } + + /** + * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Target of the relationship.) + */ + public Resource getTargetTarget() { + return this.targetTarget; + } + + /** + * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Target of the relationship.) + */ + public ConditionOccurredFollowingComponent setTargetTarget(Resource value) { + this.targetTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("codeableConcept", "CodeableConcept", "Code that identifies the target of this relationship. The code takes the place of a detailed instance target.", 0, java.lang.Integer.MAX_VALUE, codeableConcept)); + childrenList.add(new Property("target", "Reference(Condition|Procedure|MedicationAdministration|Immunization|MedicationStatement)", "Target of the relationship.", 0, java.lang.Integer.MAX_VALUE, target)); + } + + public ConditionOccurredFollowingComponent copy() { + ConditionOccurredFollowingComponent dst = new ConditionOccurredFollowingComponent(); + copyValues(dst); + dst.codeableConcept = codeableConcept == null ? null : codeableConcept.copy(); + dst.target = target == null ? null : target.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConditionOccurredFollowingComponent)) + return false; + ConditionOccurredFollowingComponent o = (ConditionOccurredFollowingComponent) other; + return compareDeep(codeableConcept, o.codeableConcept, true) && compareDeep(target, o.target, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConditionOccurredFollowingComponent)) + return false; + ConditionOccurredFollowingComponent o = (ConditionOccurredFollowingComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (codeableConcept == null || codeableConcept.isEmpty()) && (target == null || target.isEmpty()) + ; + } + + } + + /** + * This records identifiers associated with this condition that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="External Ids for this condition", formalDefinition="This records identifiers associated with this condition that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) + protected List identifier; + + /** + * Indicates the patient who the condition record is associated with. + */ + @Child(name="subject", type={Patient.class}, order=0, min=1, max=1) + @Description(shortDefinition="Who has the condition?", formalDefinition="Indicates the patient who the condition record is associated with." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (Indicates the patient who the condition record is associated with.) + */ + protected Patient subjectTarget; + + /** + * Encounter during which the condition was first asserted. + */ + @Child(name="encounter", type={Encounter.class}, order=1, min=0, max=1) + @Description(shortDefinition="Encounter when condition first asserted", formalDefinition="Encounter during which the condition was first asserted." ) + protected Reference encounter; + + /** + * The actual object that is the target of the reference (Encounter during which the condition was first asserted.) + */ + protected Encounter encounterTarget; + + /** + * Person who takes responsibility for asserting the existence of the condition as part of the electronic record. + */ + @Child(name="asserter", type={Practitioner.class, Patient.class}, order=2, min=0, max=1) + @Description(shortDefinition="Person who asserts this condition", formalDefinition="Person who takes responsibility for asserting the existence of the condition as part of the electronic record." ) + protected Reference asserter; + + /** + * The actual object that is the target of the reference (Person who takes responsibility for asserting the existence of the condition as part of the electronic record.) + */ + protected Resource asserterTarget; + + /** + * Estimated or actual date the condition/problem/diagnosis was first detected/suspected. + */ + @Child(name="dateAsserted", type={DateType.class}, order=3, min=0, max=1) + @Description(shortDefinition="When first detected/suspected/entered", formalDefinition="Estimated or actual date the condition/problem/diagnosis was first detected/suspected." ) + protected DateType dateAsserted; + + /** + * Identification of the condition, problem or diagnosis. + */ + @Child(name="code", type={CodeableConcept.class}, order=4, min=1, max=1) + @Description(shortDefinition="Identification of the condition, problem or diagnosis", formalDefinition="Identification of the condition, problem or diagnosis." ) + protected CodeableConcept code; + + /** + * A category assigned to the condition. E.g. complaint | symptom | finding | diagnosis. + */ + @Child(name="category", type={CodeableConcept.class}, order=5, min=0, max=1) + @Description(shortDefinition="E.g. complaint | symptom | finding | diagnosis", formalDefinition="A category assigned to the condition. E.g. complaint | symptom | finding | diagnosis." ) + protected CodeableConcept category; + + /** + * The clinical status of the condition. + */ + @Child(name="status", type={CodeType.class}, order=6, min=1, max=1) + @Description(shortDefinition="provisional | working | confirmed | refuted", formalDefinition="The clinical status of the condition." ) + protected Enumeration status; + + /** + * The degree of confidence that this condition is correct. + */ + @Child(name="certainty", type={CodeableConcept.class}, order=7, min=0, max=1) + @Description(shortDefinition="Degree of confidence", formalDefinition="The degree of confidence that this condition is correct." ) + protected CodeableConcept certainty; + + /** + * A subjective assessment of the severity of the condition as evaluated by the clinician. + */ + @Child(name="severity", type={CodeableConcept.class}, order=8, min=0, max=1) + @Description(shortDefinition="Subjective severity of condition", formalDefinition="A subjective assessment of the severity of the condition as evaluated by the clinician." ) + protected CodeableConcept severity; + + /** + * Estimated or actual date or date-time the condition began, in the opinion of the clinician. + */ + @Child(name="onset", type={DateTimeType.class, Age.class}, order=9, min=0, max=1) + @Description(shortDefinition="Estimated or actual date, date-time, or age", formalDefinition="Estimated or actual date or date-time the condition began, in the opinion of the clinician." ) + protected Type onset; + + /** + * The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate. + */ + @Child(name="abatement", type={DateType.class, Age.class, BooleanType.class}, order=10, min=0, max=1) + @Description(shortDefinition="If/when in resolution/remission", formalDefinition="The date or estimated date that the condition resolved or went into remission. This is called 'abatement' because of the many overloaded connotations associated with 'remission' or 'resolution' - Conditions are never really resolved, but they can abate." ) + protected Type abatement; + + /** + * Clinical stage or grade of a condition. May include formal severity assessments. + */ + @Child(name="stage", type={}, order=11, min=0, max=1) + @Description(shortDefinition="Stage/grade, usually assessed formally", formalDefinition="Clinical stage or grade of a condition. May include formal severity assessments." ) + protected ConditionStageComponent stage; + + /** + * Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed. + */ + @Child(name="evidence", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Supporting evidence", formalDefinition="Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed." ) + protected List evidence; + + /** + * The anatomical location where this condition manifests itself. + */ + @Child(name="location", type={}, order=13, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Anatomical location, if relevant", formalDefinition="The anatomical location where this condition manifests itself." ) + protected List location; + + /** + * Further conditions, problems, diagnoses, procedures or events or the substance that caused/triggered this Condition. + */ + @Child(name="dueTo", type={}, order=14, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Causes for this Condition", formalDefinition="Further conditions, problems, diagnoses, procedures or events or the substance that caused/triggered this Condition." ) + protected List dueTo; + + /** + * Further conditions, problems, diagnoses, procedures or events or the substance that preceded this Condition. + */ + @Child(name="occurredFollowing", type={}, order=15, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Precedent for this Condition", formalDefinition="Further conditions, problems, diagnoses, procedures or events or the substance that preceded this Condition." ) + protected List occurredFollowing; + + /** + * Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis. + */ + @Child(name="notes", type={StringType.class}, order=16, min=0, max=1) + @Description(shortDefinition="Additional information about the Condition", formalDefinition="Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis." ) + protected StringType notes; + + private static final long serialVersionUID = -771013294L; + + public Condition() { + super(); + } + + public Condition(Reference subject, CodeableConcept code, Enumeration status) { + super(); + this.subject = subject; + this.code = code; + this.status = status; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this condition that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this condition that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #subject} (Indicates the patient who the condition record is associated with.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (Indicates the patient who the condition record is associated with.) + */ + public Condition setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates the patient who the condition record is associated with.) + */ + public Patient getSubjectTarget() { + if (this.subjectTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.subject"); + else if (Configuration.doAutoCreate()) + this.subjectTarget = new Patient(); // aa + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates the patient who the condition record is associated with.) + */ + public Condition setSubjectTarget(Patient value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #encounter} (Encounter during which the condition was first asserted.) + */ + public Reference getEncounter() { + if (this.encounter == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.encounter"); + else if (Configuration.doAutoCreate()) + this.encounter = new Reference(); // cc + return this.encounter; + } + + public boolean hasEncounter() { + return this.encounter != null && !this.encounter.isEmpty(); + } + + /** + * @param value {@link #encounter} (Encounter during which the condition was first asserted.) + */ + public Condition setEncounter(Reference value) { + this.encounter = value; + return this; + } + + /** + * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Encounter during which the condition was first asserted.) + */ + public Encounter getEncounterTarget() { + if (this.encounterTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.encounter"); + else if (Configuration.doAutoCreate()) + this.encounterTarget = new Encounter(); // aa + return this.encounterTarget; + } + + /** + * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Encounter during which the condition was first asserted.) + */ + public Condition setEncounterTarget(Encounter value) { + this.encounterTarget = value; + return this; + } + + /** + * @return {@link #asserter} (Person who takes responsibility for asserting the existence of the condition as part of the electronic record.) + */ + public Reference getAsserter() { + if (this.asserter == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.asserter"); + else if (Configuration.doAutoCreate()) + this.asserter = new Reference(); // cc + return this.asserter; + } + + public boolean hasAsserter() { + return this.asserter != null && !this.asserter.isEmpty(); + } + + /** + * @param value {@link #asserter} (Person who takes responsibility for asserting the existence of the condition as part of the electronic record.) + */ + public Condition setAsserter(Reference value) { + this.asserter = value; + return this; + } + + /** + * @return {@link #asserter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Person who takes responsibility for asserting the existence of the condition as part of the electronic record.) + */ + public Resource getAsserterTarget() { + return this.asserterTarget; + } + + /** + * @param value {@link #asserter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Person who takes responsibility for asserting the existence of the condition as part of the electronic record.) + */ + public Condition setAsserterTarget(Resource value) { + this.asserterTarget = value; + return this; + } + + /** + * @return {@link #dateAsserted} (Estimated or actual date the condition/problem/diagnosis was first detected/suspected.). This is the underlying object with id, value and extensions. The accessor "getDateAsserted" gives direct access to the value + */ + public DateType getDateAssertedElement() { + if (this.dateAsserted == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.dateAsserted"); + else if (Configuration.doAutoCreate()) + this.dateAsserted = new DateType(); // bb + return this.dateAsserted; + } + + public boolean hasDateAssertedElement() { + return this.dateAsserted != null && !this.dateAsserted.isEmpty(); + } + + public boolean hasDateAsserted() { + return this.dateAsserted != null && !this.dateAsserted.isEmpty(); + } + + /** + * @param value {@link #dateAsserted} (Estimated or actual date the condition/problem/diagnosis was first detected/suspected.). This is the underlying object with id, value and extensions. The accessor "getDateAsserted" gives direct access to the value + */ + public Condition setDateAssertedElement(DateType value) { + this.dateAsserted = value; + return this; + } + + /** + * @return Estimated or actual date the condition/problem/diagnosis was first detected/suspected. + */ + public Date getDateAsserted() { + return this.dateAsserted == null ? null : this.dateAsserted.getValue(); + } + + /** + * @param value Estimated or actual date the condition/problem/diagnosis was first detected/suspected. + */ + public Condition setDateAsserted(Date value) { + if (value == null) + this.dateAsserted = null; + else { + if (this.dateAsserted == null) + this.dateAsserted = new DateType(); + this.dateAsserted.setValue(value); + } + return this; + } + + /** + * @return {@link #code} (Identification of the condition, problem or diagnosis.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Identification of the condition, problem or diagnosis.) + */ + public Condition setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #category} (A category assigned to the condition. E.g. complaint | symptom | finding | diagnosis.) + */ + public CodeableConcept getCategory() { + if (this.category == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.category"); + else if (Configuration.doAutoCreate()) + this.category = new CodeableConcept(); // cc + return this.category; + } + + public boolean hasCategory() { + return this.category != null && !this.category.isEmpty(); + } + + /** + * @param value {@link #category} (A category assigned to the condition. E.g. complaint | symptom | finding | diagnosis.) + */ + public Condition setCategory(CodeableConcept value) { + this.category = value; + return this; + } + + /** + * @return {@link #status} (The clinical status of the condition.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new ConditionStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The clinical status of the condition.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Condition setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The clinical status of the condition. + */ + public ConditionStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The clinical status of the condition. + */ + public Condition setStatus(ConditionStatus value) { + if (this.status == null) + this.status = new Enumeration(new ConditionStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #certainty} (The degree of confidence that this condition is correct.) + */ + public CodeableConcept getCertainty() { + if (this.certainty == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.certainty"); + else if (Configuration.doAutoCreate()) + this.certainty = new CodeableConcept(); // cc + return this.certainty; + } + + public boolean hasCertainty() { + return this.certainty != null && !this.certainty.isEmpty(); + } + + /** + * @param value {@link #certainty} (The degree of confidence that this condition is correct.) + */ + public Condition setCertainty(CodeableConcept value) { + this.certainty = value; + return this; + } + + /** + * @return {@link #severity} (A subjective assessment of the severity of the condition as evaluated by the clinician.) + */ + public CodeableConcept getSeverity() { + if (this.severity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.severity"); + else if (Configuration.doAutoCreate()) + this.severity = new CodeableConcept(); // cc + return this.severity; + } + + public boolean hasSeverity() { + return this.severity != null && !this.severity.isEmpty(); + } + + /** + * @param value {@link #severity} (A subjective assessment of the severity of the condition as evaluated by the clinician.) + */ + public Condition setSeverity(CodeableConcept value) { + this.severity = value; + return this; + } + + /** + * @return {@link #onset} (Estimated or actual date or date-time the condition began, in the opinion of the clinician.) + */ + public Type getOnset() { + return this.onset; + } + + /** + * @return {@link #onset} (Estimated or actual date or date-time the condition began, in the opinion of the clinician.) + */ + public DateTimeType getOnsetDateTimeType() throws Exception { + if (!(this.onset instanceof DateTimeType)) + throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.onset.getClass().getName()+" was encountered"); + return (DateTimeType) this.onset; + } + + /** + * @return {@link #onset} (Estimated or actual date or date-time the condition began, in the opinion of the clinician.) + */ + public Age getOnsetAge() throws Exception { + if (!(this.onset instanceof Age)) + throw new Exception("Type mismatch: the type Age was expected, but "+this.onset.getClass().getName()+" was encountered"); + return (Age) this.onset; + } + + public boolean hasOnset() { + return this.onset != null && !this.onset.isEmpty(); + } + + /** + * @param value {@link #onset} (Estimated or actual date or date-time the condition began, in the opinion of the clinician.) + */ + public Condition setOnset(Type value) { + this.onset = value; + return this; + } + + /** + * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.) + */ + public Type getAbatement() { + return this.abatement; + } + + /** + * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.) + */ + public DateType getAbatementDateType() throws Exception { + if (!(this.abatement instanceof DateType)) + throw new Exception("Type mismatch: the type DateType was expected, but "+this.abatement.getClass().getName()+" was encountered"); + return (DateType) this.abatement; + } + + /** + * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.) + */ + public Age getAbatementAge() throws Exception { + if (!(this.abatement instanceof Age)) + throw new Exception("Type mismatch: the type Age was expected, but "+this.abatement.getClass().getName()+" was encountered"); + return (Age) this.abatement; + } + + /** + * @return {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.) + */ + public BooleanType getAbatementBooleanType() throws Exception { + if (!(this.abatement instanceof BooleanType)) + throw new Exception("Type mismatch: the type BooleanType was expected, but "+this.abatement.getClass().getName()+" was encountered"); + return (BooleanType) this.abatement; + } + + public boolean hasAbatement() { + return this.abatement != null && !this.abatement.isEmpty(); + } + + /** + * @param value {@link #abatement} (The date or estimated date that the condition resolved or went into remission. This is called "abatement" because of the many overloaded connotations associated with "remission" or "resolution" - Conditions are never really resolved, but they can abate.) + */ + public Condition setAbatement(Type value) { + this.abatement = value; + return this; + } + + /** + * @return {@link #stage} (Clinical stage or grade of a condition. May include formal severity assessments.) + */ + public ConditionStageComponent getStage() { + if (this.stage == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.stage"); + else if (Configuration.doAutoCreate()) + this.stage = new ConditionStageComponent(); // cc + return this.stage; + } + + public boolean hasStage() { + return this.stage != null && !this.stage.isEmpty(); + } + + /** + * @param value {@link #stage} (Clinical stage or grade of a condition. May include formal severity assessments.) + */ + public Condition setStage(ConditionStageComponent value) { + this.stage = value; + return this; + } + + /** + * @return {@link #evidence} (Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed.) + */ + public List getEvidence() { + if (this.evidence == null) + this.evidence = new ArrayList(); + return this.evidence; + } + + public boolean hasEvidence() { + if (this.evidence == null) + return false; + for (ConditionEvidenceComponent item : this.evidence) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #evidence} (Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed.) + */ + // syntactic sugar + public ConditionEvidenceComponent addEvidence() { //3 + ConditionEvidenceComponent t = new ConditionEvidenceComponent(); + if (this.evidence == null) + this.evidence = new ArrayList(); + this.evidence.add(t); + return t; + } + + /** + * @return {@link #location} (The anatomical location where this condition manifests itself.) + */ + public List getLocation() { + if (this.location == null) + this.location = new ArrayList(); + return this.location; + } + + public boolean hasLocation() { + if (this.location == null) + return false; + for (ConditionLocationComponent item : this.location) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #location} (The anatomical location where this condition manifests itself.) + */ + // syntactic sugar + public ConditionLocationComponent addLocation() { //3 + ConditionLocationComponent t = new ConditionLocationComponent(); + if (this.location == null) + this.location = new ArrayList(); + this.location.add(t); + return t; + } + + /** + * @return {@link #dueTo} (Further conditions, problems, diagnoses, procedures or events or the substance that caused/triggered this Condition.) + */ + public List getDueTo() { + if (this.dueTo == null) + this.dueTo = new ArrayList(); + return this.dueTo; + } + + public boolean hasDueTo() { + if (this.dueTo == null) + return false; + for (ConditionDueToComponent item : this.dueTo) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #dueTo} (Further conditions, problems, diagnoses, procedures or events or the substance that caused/triggered this Condition.) + */ + // syntactic sugar + public ConditionDueToComponent addDueTo() { //3 + ConditionDueToComponent t = new ConditionDueToComponent(); + if (this.dueTo == null) + this.dueTo = new ArrayList(); + this.dueTo.add(t); + return t; + } + + /** + * @return {@link #occurredFollowing} (Further conditions, problems, diagnoses, procedures or events or the substance that preceded this Condition.) + */ + public List getOccurredFollowing() { + if (this.occurredFollowing == null) + this.occurredFollowing = new ArrayList(); + return this.occurredFollowing; + } + + public boolean hasOccurredFollowing() { + if (this.occurredFollowing == null) + return false; + for (ConditionOccurredFollowingComponent item : this.occurredFollowing) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #occurredFollowing} (Further conditions, problems, diagnoses, procedures or events or the substance that preceded this Condition.) + */ + // syntactic sugar + public ConditionOccurredFollowingComponent addOccurredFollowing() { //3 + ConditionOccurredFollowingComponent t = new ConditionOccurredFollowingComponent(); + if (this.occurredFollowing == null) + this.occurredFollowing = new ArrayList(); + this.occurredFollowing.add(t); + return t; + } + + /** + * @return {@link #notes} (Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value + */ + public StringType getNotesElement() { + if (this.notes == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Condition.notes"); + else if (Configuration.doAutoCreate()) + this.notes = new StringType(); // bb + return this.notes; + } + + public boolean hasNotesElement() { + return this.notes != null && !this.notes.isEmpty(); + } + + public boolean hasNotes() { + return this.notes != null && !this.notes.isEmpty(); + } + + /** + * @param value {@link #notes} (Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value + */ + public Condition setNotesElement(StringType value) { + this.notes = value; + return this; + } + + /** + * @return Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis. + */ + public String getNotes() { + return this.notes == null ? null : this.notes.getValue(); + } + + /** + * @param value Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis. + */ + public Condition setNotes(String value) { + if (Utilities.noString(value)) + this.notes = null; + else { + if (this.notes == null) + this.notes = new StringType(); + this.notes.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this condition that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("subject", "Reference(Patient)", "Indicates the patient who the condition record is associated with.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("encounter", "Reference(Encounter)", "Encounter during which the condition was first asserted.", 0, java.lang.Integer.MAX_VALUE, encounter)); + childrenList.add(new Property("asserter", "Reference(Practitioner|Patient)", "Person who takes responsibility for asserting the existence of the condition as part of the electronic record.", 0, java.lang.Integer.MAX_VALUE, asserter)); + childrenList.add(new Property("dateAsserted", "date", "Estimated or actual date the condition/problem/diagnosis was first detected/suspected.", 0, java.lang.Integer.MAX_VALUE, dateAsserted)); + childrenList.add(new Property("code", "CodeableConcept", "Identification of the condition, problem or diagnosis.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("category", "CodeableConcept", "A category assigned to the condition. E.g. complaint | symptom | finding | diagnosis.", 0, java.lang.Integer.MAX_VALUE, category)); + childrenList.add(new Property("status", "code", "The clinical status of the condition.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("certainty", "CodeableConcept", "The degree of confidence that this condition is correct.", 0, java.lang.Integer.MAX_VALUE, certainty)); + childrenList.add(new Property("severity", "CodeableConcept", "A subjective assessment of the severity of the condition as evaluated by the clinician.", 0, java.lang.Integer.MAX_VALUE, severity)); + childrenList.add(new Property("onset[x]", "dateTime|Age", "Estimated or actual date or date-time the condition began, in the opinion of the clinician.", 0, java.lang.Integer.MAX_VALUE, onset)); + childrenList.add(new Property("abatement[x]", "date|Age|boolean", "The date or estimated date that the condition resolved or went into remission. This is called 'abatement' because of the many overloaded connotations associated with 'remission' or 'resolution' - Conditions are never really resolved, but they can abate.", 0, java.lang.Integer.MAX_VALUE, abatement)); + childrenList.add(new Property("stage", "", "Clinical stage or grade of a condition. May include formal severity assessments.", 0, java.lang.Integer.MAX_VALUE, stage)); + childrenList.add(new Property("evidence", "", "Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed.", 0, java.lang.Integer.MAX_VALUE, evidence)); + childrenList.add(new Property("location", "", "The anatomical location where this condition manifests itself.", 0, java.lang.Integer.MAX_VALUE, location)); + childrenList.add(new Property("dueTo", "", "Further conditions, problems, diagnoses, procedures or events or the substance that caused/triggered this Condition.", 0, java.lang.Integer.MAX_VALUE, dueTo)); + childrenList.add(new Property("occurredFollowing", "", "Further conditions, problems, diagnoses, procedures or events or the substance that preceded this Condition.", 0, java.lang.Integer.MAX_VALUE, occurredFollowing)); + childrenList.add(new Property("notes", "string", "Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis.", 0, java.lang.Integer.MAX_VALUE, notes)); + } + + public Condition copy() { + Condition dst = new Condition(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.subject = subject == null ? null : subject.copy(); + dst.encounter = encounter == null ? null : encounter.copy(); + dst.asserter = asserter == null ? null : asserter.copy(); + dst.dateAsserted = dateAsserted == null ? null : dateAsserted.copy(); + dst.code = code == null ? null : code.copy(); + dst.category = category == null ? null : category.copy(); + dst.status = status == null ? null : status.copy(); + dst.certainty = certainty == null ? null : certainty.copy(); + dst.severity = severity == null ? null : severity.copy(); + dst.onset = onset == null ? null : onset.copy(); + dst.abatement = abatement == null ? null : abatement.copy(); + dst.stage = stage == null ? null : stage.copy(); + if (evidence != null) { + dst.evidence = new ArrayList(); + for (ConditionEvidenceComponent i : evidence) + dst.evidence.add(i.copy()); + }; + if (location != null) { + dst.location = new ArrayList(); + for (ConditionLocationComponent i : location) + dst.location.add(i.copy()); + }; + if (dueTo != null) { + dst.dueTo = new ArrayList(); + for (ConditionDueToComponent i : dueTo) + dst.dueTo.add(i.copy()); + }; + if (occurredFollowing != null) { + dst.occurredFollowing = new ArrayList(); + for (ConditionOccurredFollowingComponent i : occurredFollowing) + dst.occurredFollowing.add(i.copy()); + }; + dst.notes = notes == null ? null : notes.copy(); + return dst; + } + + protected Condition typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Condition)) + return false; + Condition o = (Condition) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(subject, o.subject, true) && compareDeep(encounter, o.encounter, true) + && compareDeep(asserter, o.asserter, true) && compareDeep(dateAsserted, o.dateAsserted, true) && compareDeep(code, o.code, true) + && compareDeep(category, o.category, true) && compareDeep(status, o.status, true) && compareDeep(certainty, o.certainty, true) + && compareDeep(severity, o.severity, true) && compareDeep(onset, o.onset, true) && compareDeep(abatement, o.abatement, true) + && compareDeep(stage, o.stage, true) && compareDeep(evidence, o.evidence, true) && compareDeep(location, o.location, true) + && compareDeep(dueTo, o.dueTo, true) && compareDeep(occurredFollowing, o.occurredFollowing, true) + && compareDeep(notes, o.notes, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Condition)) + return false; + Condition o = (Condition) other; + return compareValues(dateAsserted, o.dateAsserted, true) && compareValues(status, o.status, true) && compareValues(notes, o.notes, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (subject == null || subject.isEmpty()) + && (encounter == null || encounter.isEmpty()) && (asserter == null || asserter.isEmpty()) + && (dateAsserted == null || dateAsserted.isEmpty()) && (code == null || code.isEmpty()) && (category == null || category.isEmpty()) + && (status == null || status.isEmpty()) && (certainty == null || certainty.isEmpty()) && (severity == null || severity.isEmpty()) + && (onset == null || onset.isEmpty()) && (abatement == null || abatement.isEmpty()) && (stage == null || stage.isEmpty()) + && (evidence == null || evidence.isEmpty()) && (location == null || location.isEmpty()) && (dueTo == null || dueTo.isEmpty()) + && (occurredFollowing == null || occurredFollowing.isEmpty()) && (notes == null || notes.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Condition; + } + + @SearchParamDefinition(name="asserter", path="Condition.asserter", description="Person who asserts this condition", type="reference" ) + public static final String SP_ASSERTER = "asserter"; + @SearchParamDefinition(name="following-code", path="Condition.occurredFollowing.codeableConcept", description="Relationship target by means of a predefined code", type="token" ) + public static final String SP_FOLLOWINGCODE = "following-code"; + @SearchParamDefinition(name="dueto-code", path="Condition.dueTo.codeableConcept", description="Relationship target by means of a predefined code", type="token" ) + public static final String SP_DUETOCODE = "dueto-code"; + @SearchParamDefinition(name="status", path="Condition.status", description="The status of the condition", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="location", path="Condition.location.code", description="Location - may include laterality", type="token" ) + public static final String SP_LOCATION = "location"; + @SearchParamDefinition(name="subject", path="Condition.subject", description="Who has the condition?", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="onset", path="Condition.onset[x]", description="When the Condition started (if started on a date)", type="date" ) + public static final String SP_ONSET = "onset"; + @SearchParamDefinition(name="evidence", path="Condition.evidence.code", description="Manifestation/symptom", type="token" ) + public static final String SP_EVIDENCE = "evidence"; + @SearchParamDefinition(name="following-item", path="Condition.occurredFollowing.target", description="Relationship target resource", type="reference" ) + public static final String SP_FOLLOWINGITEM = "following-item"; + @SearchParamDefinition(name="severity", path="Condition.severity", description="The severity of the condition", type="token" ) + public static final String SP_SEVERITY = "severity"; + @SearchParamDefinition(name="code", path="Condition.code", description="Code for the condition", type="token" ) + public static final String SP_CODE = "code"; + @SearchParamDefinition(name="encounter", path="Condition.encounter", description="Encounter when condition first asserted", type="reference" ) + public static final String SP_ENCOUNTER = "encounter"; + @SearchParamDefinition(name="date-asserted", path="Condition.dateAsserted", description="When first detected/suspected/entered", type="date" ) + public static final String SP_DATEASSERTED = "date-asserted"; + @SearchParamDefinition(name="stage", path="Condition.stage.summary", description="Simple summary (disease specific)", type="token" ) + public static final String SP_STAGE = "stage"; + @SearchParamDefinition(name="category", path="Condition.category", description="The category of the condition", type="token" ) + public static final String SP_CATEGORY = "category"; + @SearchParamDefinition(name="patient", path="Condition.subject", description="Who has the condition?", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="dueto-item", path="Condition.dueTo.target", description="Relationship target resource", type="reference" ) + public static final String SP_DUETOITEM = "dueto-item"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Configuration.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Configuration.class new file mode 100644 index 0000000000000000000000000000000000000000..499ef7286890cb83e5426e14259c1bcdc640f069 GIT binary patch literal 493 zcmZ{fJ5R$f6orrTplzDc2ak<`jWS>)29^qeDj^{O9f}w#7AJL6mo!Fh!jEBMV_^XX zBnEx}KMHY!Qbdthe6NqscYN>1=i57gJ*<0h(5k@3N(rkatT8OjQjume26jT1j!IN| zz+i8+FBzP!9!iG#sY>K|HVve?5J5~zQyQa9FFDFm-8E9Aq!BV;sP$73UZ07Z!s!q7 zZ&SGw#>E$2UuPzi$0`qOb#*dQQD#J{bh0xMx57sWWgjk<7~0xId>rrd(O4O-5}G*) zC7;rGF<(F#8ad2kkwm-~Ok|j1llFCJe+Dm)qt2n8(&?TbV+JrzcfF&779 zslqR;yRb+DYR|Bodz739IQAn67G=+o05$4eSk=S)gXJHZe@~ literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Configuration.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Configuration.java similarity index 86% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Configuration.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Configuration.java index d0c5b4a1d82..40f69c6884b 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Configuration.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Configuration.java @@ -1,127 +1,106 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* -Copyright (c) 2011+, HL7, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -/** - * This class is created to help implementers deal with a change to - * the API that was made between versions 0.81 and 0.9 - * - * The change is the behaviour of the .getX() where the cardinality of - * x is 0..1 or 1..1. Before the change, these routines would return - * null if the object had not previously been assigned, and after the ' - * change, they will automatically create the object if it had not - * been assigned (unless the object is polymorphic, in which case, - * only the type specific getters create the object) - * - * When making the transition from the old style to the new style, - * the main change is that when testing for presence or abssense - * of the element, instead of doing one of these two: - * - * if (obj.getProperty() == null) - * if (obj.getProperty() != null) - * - * you instead do - * - * if (!obj.hasProperty()) - * if (obj.hasProperty()) - * - * or else one of these two: - * - * if (obj.getProperty().isEmpty()) - * if (!obj.getProperty().isEmpty()) - * - * The only way to sort this out is by finding all these things - * in the code, and changing them. - * - * To help with that, you can set the status field of this class - * to change how this API behaves. Note: the status value is tied - * to the way that you program. The intent of this class is to - * help make developers the transiition to status = 0. The old - * behaviour is status = 2. To make the transition, set the - * status code to 1. This way, any time a .getX routine needs - * to automatically create an object, an exception will be - * raised instead. The expected use of this is: - * - set status = 1 - * - test your code (all paths) - * - when an exception happens, change the code to use .hasX() or .isEmpty() - * - when all execution paths don't raise an exception, set status = 0 - * - start programming to the new style. - * - * You can set status = 2 and leave it like that, but this is not - * compatible with the utilities and validation code, nor with the - * HAPI code. So everyone shoul make this transition - * - * This is a difficult change to make to an API. Most users should engage with it - * as they migrate from DSTU1 to DSTU2, at the same time as they encounter - * other changes. This change was made in order to align the two java reference - * implementations on a common object model, which is an important outcome that - * justifies making this change to implementers (sorry for any pain caused) - * - * @author Grahame - * - */ -public class Configuration { - - private static int status = 0; - // 0: auto-create - // 1: error - // 2: return null - - public static boolean errorOnAutoCreate() { - return status == 1; - } - - - public static boolean doAutoCreate() { - return status == 0; - } - -} +package org.hl7.fhir.instance.model; + +/* +Copyright (c) 2011+, HL7, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +*/ + +/** + * This class is created to help implementers deal with a change to + * the API that was made between versions 0.81 and 0.9 + * + * The change is the behaviour of the .getX() where the cardinality of + * x is 0..1 or 1..1. Before the change, these routines would return + * null if the object had not previously been assigned, and after the ' + * change, they will automatically create the object if it had not + * been assigned (unless the object is polymorphic, in which case, + * only the type specific getters create the object) + * + * When making the transition from the old style to the new style, + * the main change is that when testing for presence or abssense + * of the element, instead of doing one of these two: + * + * if (obj.getProperty() == null) + * if (obj.getProperty() != null) + * + * you instead do + * + * if (!obj.hasProperty()) + * if (obj.hasProperty()) + * + * or else one of these two: + * + * if (obj.getProperty().isEmpty()) + * if (!obj.getProperty().isEmpty()) + * + * The only way to sort this out is by finding all these things + * in the code, and changing them. + * + * To help with that, you can set the status field of this class + * to change how this API behaves. Note: the status value is tied + * to the way that you program. The intent of this class is to + * help make developers the transiition to status = 0. The old + * behaviour is status = 2. To make the transition, set the + * status code to 1. This way, any time a .getX routine needs + * to automatically create an object, an exception will be + * raised instead. The expected use of this is: + * - set status = 1 + * - test your code (all paths) + * - when an exception happens, change the code to use .hasX() or .isEmpty() + * - when all execution paths don't raise an exception, set status = 0 + * - start programming to the new style. + * + * You can set status = 2 and leave it like that, but this is not + * compatible with the utilities and validation code, nor with the + * HAPI code. So everyone shoul make this transition + * + * This is a difficult change to make to an API. Most users should engage with it + * as they migrate from DSTU1 to DSTU2, at the same time as they encounter + * other changes. This change was made in order to align the two java reference + * implementations on a common object model, which is an important outcome that + * justifies making this change to implementers (sorry for any pain caused) + * + * @author Grahame + * + */ +public class Configuration { + + private static int status = 0; + // 0: auto-create + // 1: error + // 2: return null + + public static boolean errorOnAutoCreate() { + return status == 1; + } + + + public static boolean doAutoCreate() { + return status == 0; + } + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$1.class new file mode 100644 index 0000000000000000000000000000000000000000..59ff2c7fb82255da83bc8137988a3fccf3509492 GIT binary patch literal 5294 zcmbtYYm{4675>hh$>h;nW>hSFNQ)5rK?lXrcPVi+sd2Ox+jf+(OO>T)gp;ad8`wRA1lLce`8m!_R$Rwk}> zv%mA*efGZl?z7Li=j5qZj~xfF0e|vg7$aV6!!9pd?-Dxd#=C{=_TfEvujt2`B;vy&t`%{eh>wW) zsEF%De9VVKxIt`h^s@DFp|m}On|wHoPl)1^Uba3Zl#0Xnw205R@mV)MuMqJk_Ge0| z$w+dqKVL}uC$l~NiOEdCpUD+V$z00vPvyt0tUs8~P2>wx_MMt`qLeIIQ&z4djp?F- zwmYm4Zoz5XDwZauvo*dWd~j>N%maI^S%2YN$tomMrA$7j5Nsi?5vx$7aVD1@%x5#H z0}6dDcu82vLTYj_Sx8Pva0)wHadM!@WY>GKXbavVRKUj7w*<^5AJs3Ub%h0jvaFQ0UXisbrIjd5jVamx(9V^7hM@gbvz{E+c@e*MRYSd z`bGC09Mkb#5s!%Yo`~ZjzAxejIOfI=rT?Qk4C((E9@p_>5l`T8H=Y#TQ#wMT`zfB* z@iP%W7x9dUUx;{C#B(BkDdKrN?Z&Uf@&z41v3wCP>G%y^a^tsh`(+&gx&3>*qT>%D z{)kr;)^SDY=8DoSD@wPsqIBCUN_Wj5_%Bd^f*#K0tU@rGEEX*;C0!@-92?tXrAi8G znslgeVUs=mCl{H1GVR!x%uY)zo7S$|J*uNa8k{&c*x=J#iywghyIQ zMg6tUNkx5aE2*gGiK$p5gJ=v58_}TALOvRJ^#q6Gak?Dkgo?(@aDO-$FvGE^LT|H` zl4$s$S=v}-ETl#nxsj}x@jx^Y2v%e6Yr0D2aj7SaKs>l3F`6)q2)_?I!U;1LA9Z+7 z(|I}dE8aQhyS`;XSvc9B%#P@Aq)$qDQ}gdV$4PrAV6vb(5@tLc-LBv=V>=Cwzc+65 z8&VondV{gZU@Q@qj-H|6K-3JIteA_MO~u@8QPTI$;;@#Z4!q zo}*beMu?yK*V@B_)kJM=_N5!`E0;7<1Q(Kk`c9aJ_P7yX;Jr;}prI$%NYzz`^XeTT zW5AFa=$xGs;b_7P*cIX#2@Hg*30gF(G)D)eu7Y$THooe#s@`oniH$b;OByK_l*IZ@ zWM%~i!ba3wNE#daN*HnbgVWb+<m?f2ip)n%7;2 ztk5H@0(aan!*L_jbr#Q>y*!b7yOzps5Fm21Xd}0qHgZd9Be$|Pa=U9Ix5PGb$800F z-1Nky2|F=Bi~#L}Xk!c7$PCo+M|?-2mE~%ypuIhI588Lyw1d=T(;2w!Zk{rDc`NWa z-AEUaI^A@;+u|~KomN4o(~Y!?wA#(qzK*nG*7@sgt2dOv>+}lV=va|1A$6=s&meWI zmfBX!%HXxUf)$Px>6=I$E7CJbt5$aBm89<3*Q9n8spkYei?pkz_nU=RyU*Zk`dHod8E#>N!OD)k&Hc=%HT^dT_s-`0LOZ5+l)-Cb1wBqoq!*D^W17JxyW7QO@Y-C#7N;BO zC8SR1q+3a=p+AVT;l=4V11>DZIap0RADgk2xQ$1^2yqw2U=b&9IZDK7T!U+gH{li@ zf?T+r=e+xg51_(xnhTHeT=gvRIlRnMk&B0-zv1u1f8alOmH1!fQ;XqJr>W)YOyWv) zt~!s{qxzIV>{mm|Bo3=fRf;&Ju25GJuTs~m8;Ccmo7Jtv+tgj^UgCY~A@wkEMm?sU zAU>&{S1%A>RDV`~A^uhUQ~e7rO=-H;N$k>AXe)_pwGG-vVvp9R@wr;RHl*>n&=BP; zT+O_oEsZs8s}R+m!FAdJ9Mjs=di6Oqt~%Afafh~w`H8Xb5rlTRF^GtWkvgqY6!oZm z&lXW}V2cy3nzg8Bdx{sXCqs-`LmUZWJ50)(`HREHF(>Qt@IOQoxAiXLUxp^WN=y>( gBc_SpB2Ez>ChjNxhk-@+MFYMe@81k#PZ$qG5yibxjK+g< z*(;ZChw+fy9~Rw5B6u{6eNl`TvGF1?UL?K~#beknFAqo1AI5L z636$%%lF0f^J47<8Tf%by(mvF$rGbW;)h}UNI`wBkkJ*)T~RQ%C3~`GCcAqKGil^4 zTg#{Qq>N^h%ksTB-PCNOkWVQX-DzygYj&?my;yr8&9S__(lHb3$mex)X;!l=-BO?p z*Xp7`!KH)!Xvlqo-?1YvUzy%Fk+dwd3r_0Ph$u(}^DZwqIU_Ph6Wt*Cjw-by@OPIP<=rz;2 zWS>bGc?W87D&yL8hc6dO9)6(|=_%!x$H+g)0= zS8otnr^MTe3PvrGX?iXv{hYa7Ts^Wf6pUM8j(xvjdnUgOeK&>1{&{ADH(p$eAb z?$%*j9dVgChG@nTL0N&zvbxko1+8}d*+r1jIw2&(n@=nrM44acwFgiXrGknhjTyj-CFl?VAM(Vi58un(1 zg0qGo*q3y5^W(OI40*gLxHdTZqnbHxDK#^t5-m=jD6fE)AyV`;3_ zrCxd=Pua>pib)8**W-xk7G)qrO7in~rI(xKiwy={m%dnQ^iZ-K6 z4iV)Nw!*FKC|)HYi9^v{k&Jdao22F30+M@QjtgW#9?RKaNw$#Qk&0m}(lIQ;2V>~M z#xQ;y!%vXoHm9<{mzidPoAR^TY+GlB3A>QcdhNn|cY~Sm1u+2V1v%~+#K%u#_?eiU zJzKC25ui`ZYr;o%{46oyj z7}j8|g0_*Mlkv6~-T`D*P!N^cPU0)%xSzxLc?`e6FS*V}5=YV9n{)C9MNlq%FYpxDvV#p@Eg3zUAW~OycERC{^xkc=PGCqGVGrs zzUR`MD3^m6-okHV_!JDe?2^lkG2DsI$M8G+K87#I)7yAQ20qQLZ;;QL#m%l1BrQ=H z+j`vttO8Y+rM5cX#^trtIld{FFj)U&L5*b!ezCxXv$5f%DNJmkZ=_A!SxrScz2@R?`X#FMoll z(O%*PfJ<;Gtz710ayj1> zX{fwr_+=XJ3hxaq2cSI42L(E>QKkWP73$U1{IV6@d>8T4c$Z&C#))`K>weU=%-fGp zMKMmlP}fnh6QkAj7^`mZFx*B%Juo~&+liz2J-y{I)V+Y#gQ)LA;~_L`ijO*g@G}Py z>BEGULm0j35Tct7V9Wu;#2v*Sp(7o$ zKViCw4z3=Q8P#Q2?ZfgGanwQoja@TT!W8z08}xoIuQC9zMBl+L(yxo+f(o} zOTrgewT=kzAj|`oTy-m4sZ6 zkJIB5cejS$CQx2v8D9@rnMfzshi@{<1^wjL-AR%(hp$vU6|1?ft`O2v!i$cDV?bA7rT5F;G6C&!L3GH7n zUHvQ0R{w_8>faq`J2C1ACZjHlJNOR@FGtu-O7HIdGph#u{Mo@je~#I4NABf#GgqCo z$_oYfGwwn|Xm9JYNV*S)kzC2J>*n#V{vbZkhnbQaUsd;2%6W*dA@{YmE4fSLAI$Eb zh^qgBs{R|})&F3U`d=rz80w>u|KSXVzgYSMj|W~@S9@VClCaJU4(qHwr>&I2;_KjX zyvI0>AQ~tCasIdxufwEx$REe7QXD+ZdU15~E;V8?cM@m!;T%EZ`BLj@?898a!~Gy- zyAP8D5%+_v?SZj4bub=w{6^3)si`TnSZQkGwCnSHp6vN-Xz9l}GF99H>=w|ZBYM}c qM2X>-s9uM=ovoc1xJPo~-xQ9G!~HmK@nmi$??;jAFUtG3F#7*sdyA+5 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceImplementationComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceImplementationComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..527ed45c6f447aac9c0f2b75fb2bebda3c6507b7 GIT binary patch literal 5406 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 G&Hn=&3vgBd literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceMessagingComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceMessagingComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..3c70a8e052a7bc9f21f91c9734d588c6a325de98 GIT binary patch literal 8442 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceMessagingEventComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceMessagingEventComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..664ff7e4c94b041e93931002428138864c6599ac GIT binary patch literal 14352 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⪙`HE|K>685OJWaq|R{irdQDBRifR{;v4$|aR4Z}2LH5cxjR!Ur@34Xt zY3JGDJNp1lhDlRb<~I>)oKQlW>NBR+V9%ytkhGvqV}cblF&Ltm!AdDlBXNi(2IxN^ zh+lv>1f|nfIYrIVLo+LHRjp%VmQYUUcK+~bjjQuoo9~nG7BUc7?@Hh$t$5Cal zhQ3(Jj%~=FVaR{e|KQ1(d2<&W>EtdLGy5RbW?Ut6S8$$`Z|AQ61&hDX zUu{M`K!kJGy!w}^qE5iqdugUZrvMH}XLG#iOrdcq;;WfL!4?`DY(*5b(cIu7+w9WN z@dyX{8@+1_^(MBu?B!nXh5@J1282N4KB|L4o&>5SE(89{f&Ur6e+BUGq}t$_QlgXC z-ph+uox;6tnC2G3eRVcoe;+NMb=iCl(fhUovT(1#4pY-Xnm0@z^KG|5(-B>;+ivSHWJm zJ4)f;g)}vIkz}s+D1g@v%H~s+AJ+LfuwD&Vufe~TQSJ)%!U~T$u)>G}u-@#5 zmaq!^*>4_L!N~)w^m0L1?}EGU2CVl0)_Wy$8`eNxSQli&dTKsc7Xa1;epnxXoCg8x zLxA;R!1{T>`iPY0z^b`k@xr=5!MdObtdBW9QLqL_%jd~#K6-vw7v#YD3}Ag0uvWN& zy|BV#4y-Vu0IUZb(F)d3URc4&1FQ6ML0DgeyI%sV-vF%Nl+0~dEAztIoDJ(~`Cx4Z ztj&H{zXv(50M=Il>-PccYk>82DbInm%JqsD)@B83a}ij7!ukie`;UP2Pk{B$lDQ4* z*u1c|WW(B;57rjI+Tw@xUC4P4u>Kve9s;cI1J)0uJO|d}T(5XxZBekc6oyqVaeSg+ z9XDD&$7J)V$q#FbA6C7R%JnM1I^GrRg%uuiV1*I+Vb#Yuq7|&i=Y_nT<&VS5>)_?}G*{n1^YDAJezwocljSK- zOv@WU?O6fT4!zp_0rUyTIS&DJzT_*zQ3cS6aOm{B0R*nfw)O%6)WHF?v|s>jg~$j@ z>w;+(0;n4SWFdfhe5R=bte7EY<_1s)0%#crP#zNt1yBNb_9K9{A%Kzypi~CSi2*SS z|JpV_*{K7Y*g-))E{Uc(98{LqAD}ZfhgXCr|x2{p99H*_9` z&R0XtzM%^+^hq_;;u|u4)%+;?_hhQ-W!H3U?3ipy9V=ZH0iCqV% z8@TtZti#gjt!EsN#>HOTp~^eSC~iBs7k6k*FRryNR2OD7-=a3)=)KI5;p;BVsm{`z zyt*EjGmXP^kpgS);a@OU`}obWaQu$p1kJsCNV7G-A*~N*SnlN--|j_?kKXy*%O#@S zixLsN3%Hjn47(Q<26~&hmp3T87aJ6Md1q**S*)UT!K`gL@gemyPLZ=kdE8>v^ni3ass=obA}dQ`uS z4(PYj>-rt^wtgqQuiqug^t;6v{T|Vv-zygCyTwxdvto^YAO1@M_v2sGe?YFwH>lGtSvC1o*@9+^YVws)8=7rsLJ(i6 zx1-svn*J{W@}#dnf;f4UbbSvUtM8?;`eSsw{eWD6aG(PRr9gVAIQ9fQ$i3mt<8hH}1nC<~u~ zh0nsmeXwvC7UI5Gf6i;+<&K5;Q#RYeL-<8ONv|TmZy%y>Lk_;K*dHeJA=-})+|6?b z-^~xv9=sumjp3i?X$M~!-+^~rZ}J?z-W;MU@rHXZ?%;c`A=-vF+?a3&-d+y-+en@_4Lgrz?C>f>TiFijc;Vu*bvdfRXyphzu zF1=7qmB&|ytL6W~;nKyTdI{3|DYhrLK4ednL*<=ZpQz6{>T^tsoVwtMrc$Xm733wN zS$^FE192MKcjEtbxc;0h*3%u>*K6^6-{J}QZ-1<(e?+?*zdyk5bg^D+q2T`ky3_2C literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceRestResourceSearchParamComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceRestResourceSearchParamComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..d0a7e56c7e2ac1d8cd880c42380f63777cb00e60 GIT binary patch literal 11675 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceRestSecurityCertificateComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceRestSecurityCertificateComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..1986e5b268118153d77ac57580073d83edbb4a8b GIT binary patch literal 5302 zcmcIoS#TUz6+JyOa<@h;k2LZkE3uK}P10BzL!5+UY{!yp5(Rm|vSn-&aBI|(+MelA zx_g``B!nd)Vc!>-eFJsLiyp;yHx;?zbJ?f9f9|CH?iwCw+ktbJBSpOew&Wkf6Om{xH?LCl+) zG!<+cEI8xoiQK*Eu?fpbTej;NcGgVi3!`Q(-OuMS%4HO6I9jwlD{l^4t~HV~du_Ym z8J<P0GZRBaarr?a4PLx4a6h!luEknrAcwE8VH?4NR>1G{k zQs7W|!ks8M-hOk;vMpI6_=7~=Djv6v6`a3G(dl{GwKXy8iT$d!t>+)%uS&_{BG z5d}R}!SxxgdC#ss%Ql=TKY-#`L_xAQ>lKY$IfACjMcQd_O~*2F!=~fXhvNhL6(|oY zsPAXU$&oi~dqBNtw>OEMb^r62#vB3&{+2A z+3HMGXun;43nKx_!UW=A$f6 z?taspRIqhrk~4DL>w`^06Gkpqc#Ira?t%QIN5ttB5cjc~jPR_7Y0D$FeT5y1lJTKJ z(aD-`vZSarl=$8w2lG~%67wZ{E~Dc?Jfx!sX%%14@kJbF^;|sT2OOv1D0r~f^GrI| z>J?gzqF3n7IwsplYl;1p%36=~A+h!)9bXnJTW+QW>zKr09bds$>Fpw{p!BHtnvSpI z8#=y;7j*0a+ra+=>4<;&cT~f-^r$O{obJ;x3bInwvH2WltID!fNkG1(;-Zdk<2wrU zk&+Io;=2lls-Y+e|E;9Hj_=`;jtLCPnS4Poc3Y?PHN z0|Qk{rsSbtELZ!7W1$rDK4grJF7a(1IDOk*7NLs!@4{7qwNa|D9|m4UcCJ(#%L|+I zgSsp)Hilyc#r2_;6wsZO9X{pP-%#;9wo}zrmlIOeM!6`Bp^bk)bo0&`8=6n!rcS72lvY8jg-01#r?>**v;K6QkA>+guD03?guJ& z?~~oVXh9$PxqCltM{odZIA-`V|CXRXeVb;dl?atdx;w&zS!ibi?OAbtUA>>^^(OAD%3 ziJ1BmUrh}nYxl{%Bd=A@)p9*=!7*x+0Boiw3=Pz-lz1nul}79uYSdqF@0 zfptN|ROKS-11IXPLSGC`fd5y%T@{hK0Tm~>@vS%+Dw5EPhI8|{vKWGA3|57iAIg4PJt;|!F8gX>xMF}8_9L@ zG7?0RSac}h`j52uCvyE~a{U)_{a14RH{aqs*Kb>vqeQ@UVg^k&;`;C996j<{_58D3 z&)e~iFaTv-Cn~u97rFj7MbE$pHA(3Yt$QHzZqDNz`af zXw}vrqpigltwbQmlCrFF@bHWeQ_6w+qUP}EO?ZMzG+7Ali9sG^Wp<~)V@(E58!E|ZG@(+mCM$GMq zYn#!iZ6RA*(X4IraqEc1wf|rnf$ftT!dupII6AB2=qks->GC*I#Ib`ox{0HQIMT$i zb6Fg`TZcHLC`xThvw5VZ(JAh~I$z%6(`Xj1f(1Fqm8OG(u*)~Ylx=Q^?o%3inIw;f w7B+?!YPx2yL+B2QZBQ(yeNpG8M9G`W?Gbo>6BY$U&WHFL=eQjo$5GV&55@RJwg3PC literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceRestSecurityComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceRestSecurityComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..e4df4e7c6ddbcfea4dff100f144998c2cac55b0b GIT binary patch literal 8050 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 DYOOwX literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceStatementStatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceStatementStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..6a298d047b40e1379a0d6210ba11f30de71ad585 GIT binary patch literal 2845 zcmb_eYg5}s6g@IF5{`J(#3_#i1BpZP5cb+uA|ywWX*1J5 z(&<0wCzs4Xr7)UdjG&0ieUERIsKF(e7_dmb=0pJVN+7QKL98<`s zIH%%f9H($gKC&8a$MFrOHOxq*Sq*b?yrbc+9OqT!R4l~Ng+&cZa=fSEz8v#$bmBo9 zmho+znh!NR((qWr6Ah+@q+DCkFrXo&VNlvCs3y^_L`*ONevAne9_<`J(UUiGYPB$4!HqG}L9aYde zF}aXk$|z9hGYi@I%#?!Y?Bet^7m`a8(~Fs$g3R&E5chaS8T4RA=X?;!To{hr{*vv>mI1kjSt78NeosE1!0aREzp5hr>spy%dKt~e&%%NEbtTmxy zKuW470?QLc9Vsbx@3LYi?+T9Xt~R)Gy=K`(;Yp-R3Q~*CGspeTF`8oB*HlJ!&3Mx!0W2QB~ zRuwFCQ4|f+DH?vot=UDxaShvb%5-u?NWkJySQs6HGSMBoDV3ySjSAEzQT8%>Zsn;c z1SC`cJCZ}e#pbpPPsY(EhVS(HUVI{S?XEPGNEPwCX4>q#Bh5Cqd`dl#T&h-u!^8S~ zv%(uN_Rxl4THtPj?6JMQm1jcg9V1STD40p+Sdl`7$3~LdlKcWBXEHY%{Knd zV+ab;l=?WzE4~h81CiHgsZ&xg%x7!(ZkYNb_9M6e?{yyq6arbWUo_E z0-Qt(f9(6gv%Q;W{pEo5i(HA|5>YM_rLpNJMkW1P8vF}-LLJ{d86wIE&kz;3j&@A)zkw+n zM+UvPfz!Cjljj!w$hIjtLUQKv(RJv#d~6*ZxqRz7`f@L!?2^Ax>kA~_74)#C{TOG*43i~|b{NM5eTa~n SXE-J}i%MFuxtBSjOZykD7okr8 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceStatementStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ConformanceStatementStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..a74639a15175619ec0f2b3236a12c7da20833d03 GIT binary patch literal 1934 zcmb_dOH&g;5dH>|>}FjQ7Z6_{C*UPQiH%yQJ#{xn5LpNv@YQXc$s4tYAdLK8#9nRY5{QQo%SwXxI{# zH^R`^AGyyENIF^0uxHW|{8lMH$K6?T&ZZr8-gWZTj|Y>En0MT~DKdP^wz=~U%xtYq0)?lMH~iKoI@5?ww_+oq!{L!;Eyr(+UR42+ap zxGf>yA!}5@U52rLp9&qv(4(URT?|wI9?sW9hTgvyx5ck{lcwsRF!a@f^0&iPj;V3{ zS;@5N0=4;vyEcQ7N7Ux=>BPh=!}$N0Gs>4p&Zh6DXhx<}v+3!Se38sTfr~7|fFHsi zF3y&@povvI=XV*c{eQfQTZ;M}kzT#Jl=(V=ZhAf2!LXkm=OC?g2}m9ytAkd$4+uur z!9I|}aF}GMvMET?n4qEJ`W^w&fK2Q=bfY1*hQ_xr{6>(KjX-r@`G{cI2yGZj*-$r( zaQQQ|ho73;wypb5_ivrBtL^uj{~C7i}0 z&SMFqSVj^nR3)Gy)TA?A*Kw4r02QFoj|QHktoJd+l|^*N2;e(}j6j(*MQS0bg{7vJ z4Wmp>RS2E*S^&>UzMx<)u@|qI2!wgmNm4> zh+Eht_YNE<{pX?7i~LyedRQwuY#?gNRSw#I6|vIS_`hA^XdU=_7#jF{0l>I B`xyWL literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$DocumentMode.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$DocumentMode.class new file mode 100644 index 0000000000000000000000000000000000000000..494967e45e59be785f2773e717d7f34f5121a4e8 GIT binary patch literal 2507 zcmbVNTT|Oc6#mw-k?hEXh+GK;HxUJsfJ>V|Qz(}h(l|AjBA_AABtn*rK$aX^hA`91 zQ-4H$Ltk7n1D!H$^VEm_s7}wy2JC@OGnOswp4B<$JC|=)fB*B_9{@f@K8zs7BbdOX zh+Yv7Bj`qwKc*$jMDPe-N_fnbQWBo<@hcH&5wj7rVot(59~UHi&Bw(EqR_%v!g7Q( zS0sER;i-gG2{FF#OoA$*hkIEQvCbeZEY43aCubHJ=oaYi*y zH@0W>LM_V3%xl9ec$Vu>9a=oMs&%<9el}$CoHIRbujH9|hA7Ra%`6Xwj2R+awn_zC z-y^^=!>)z-xX#gxQ_hbym-slbAfmbDqG3L=czN6E=rYL5E8`2UVs19(kyfc-8dlaaGcj+kU=E&RTTAKxZT<4d=;4XCo~Fp#%Mdbb z*P+N8IW)hqWf~qevG+Zj!f?Ny;QkphTF0f6ebk6g2yLe;RV5;}`Kqkj#PBQiK5H?> zpOFI9&~!2k1N92$U^KLmpG=;64AS8H*pzl({5>;Pi4ha3wrhFDCT&oa%v3rnRen~g z$7iMLpOtDI`5VqkhQL~i&K|dzu^gR9LI*%! zLmFZF^&t+1ev)p{$gjvg*Z~6XAXG?VxI@nt{!UmR{ks^b>EA}cx46)bVE?ZOy+iP< zL4fZqQse;L5a>tytp85uAzFSpw=C>VFNvafw+*NFD*|z7-h1Ido<^PMCrbdVS4h6)+tCH+`vAr5X{xVpGlzW7Tp25 z`Mb{AyjuxVoE7C7FH*p-szNRy^@?)i9HcTK?GVx~A-!%yde9`&e^l=~Li(PNejubD>yadUPE@M)$>fEm zYw8HWRi#5X#Lc&e_(EsU7i3@fAmj^OEx(hVK+MusgZq%R)zCh=w6|cVoUQh5iOBO5 j9l|t5z)4JL*olOSE)7W>R&gYb zIviDzlJhYI#}%B=5SJ+@<=m~}l$?7ss5q_SjDm9->d`BQJ_Y9$3@8|6i1j(b3Hlj$ zXW}|TB<;=F3^kLEurC*Lv$lWDoONkOo%g+5-4*ae1( z&dJ;6Ju~H+BAdztz9X`|iAm4Trf#{XQ}eeRKjnx*U<%7luT4MQ2 zhIq!w3NtAB)WSjtXL|OwZ3VrX@|F-|rWJVp!@f-u|J%TRYN3|#ioRu!Ia0;iQ0h@h zR!0MNGeE(Rj$x!p=)CXE6)oG>F@jNwEowH&P4SqFTi0qFcU?Pcx2C7#h}+ zD!mylI_{k9Gc?VJJHop!n!`#rTV#ah4jmV8k%7@-921h-C5p(WlMLNkQCLR{T6HvG zKf}OQ074Q_QDMsKPHNZ6tq9A|vDtP1`?%68a<+Z9Xu4$aonbRBdnR#{M7eTxdSoU& zdX=GPYt|r)^z`M-%#_54nfbge<`|BI@B4?V*NI8yQUh;=bA9JO|0nAzSV5$RX4C$J zTuKVo)6>VWi{8N~&E!`a_fWKtX0k4#U5j9!X~ED)V@z)HM>LY|s4Ay^K!jGn_2f_J zMpbeF{3DET5M?DJQrTC&AX+kFtASElf_h^K@f(ZKjBN|h=}0%KX;{GaMbvyJMh z5b-pEUd-{wyo6K)3;0~ZGp>}D@C6^g6p<0J7(pYJBrNmsD+yooaV3H%v<9qVEkc^> z5}r%=MnYCXoG-kPpi1cHUN%I$WT@9tOY^A}hOR}^^YolKS8%oqZeDi`GqrCz{$gRv zWRTO2W4d#;?s=xikjfO?Tyn>rNN(>~Zqjl*pBp6eq--Z^T&P!gon(+!Qgf;FI>!$$ ztz|L{qPjktSxadQ3mZ2CQopa;B_8#&!Ng7Z49^8=Y06lRxm3z;n(nH;X;Y%a0Bm`i zAv>7a)%W$Jtvk7-=DU`Yn@rr)mZmJn@~0VEF9As>))^W!E9dBb$)%WtLB1kwyM=ru z?5O7J#@?b{tOgxP{bZO$-zqqirFy?m(P|k?T-*V9&Y8aU+VjmkLzL$8<~9$8j2R+a zw!EUPzb3#b!>)$;yv9+=DdnebBoEWXpomr|xrVu5@#M#9m^Z?cFXKKhsR0?^;yV%F zGtAupab-Nj4>CrOWPk`l*@Quf^Gs*UbY;YGk9O~xhH33{S>6uabPV~}ODm>G{Sq;!gYz{^` zQy|vKD~vQ6=r@Q2h_fX1(a5jJ0oWlz?;w;(Vt7E$dj3w3NdF;*tNQm43M_6lBRupL zb?*?qXb|ERM~WPv7XtmL`i35KAEExY3*H~mN(iHb@*$yAjDDuw@VL@Le?wNpp+iW& zppKQ5hRRetK%}hPIu+#dF{0UHG-i*`q{I$!n_k^k6nY$@`3Nn41t5G=J=6yvv?40B zp-E^*yU>Adp%eW=7ZO4@edhVb!%-&7cuaF1NR;j|jMJ0v=w&qp!w0xSFs&oM(jr}b zbcg8Xfp=Huy-EYcSytM3l0rdN6>LSFz{2SE+-Ts1t#H9ZKdF@|E literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$MessageConformanceEventModeEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$MessageConformanceEventModeEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..630ce5963b2b35485178f7e5b97fa5111c87357d GIT binary patch literal 1875 zcmb_c%Tg0T6g^ERnaMaPj3_ET0C^=*zYL3|v_rO%?p0oPF-y$Syy3gRCp7p#sTP2*ArmU_@uP?m8F-qSe{5R-xKgz>e)!H5I}z+=|S_y<@~C(i0tthugzM!aq%wj8bg75d^=Bp26VSO?Z%(l66$C$olw>p1kCklPx$ z`{}_4A4faCixYeTC;21>`4mz-hs%5#*SU=|6s;lNZZgwEFF7%ys?$fZCaWsT6P%*k zogpe8k+5QQnrUj5s9PO%`qj*Llv)Bl3ytSt@cZcG575O6jT}_5k?fcx*s~k3eH*aJ zbmj*-*I+529ZjR~9t=>JVxgL+SR~R^@8Mms5$+s=4N5~8Zj2*zHh@LDJ8=sqCyvt@ J-oiMNe*ky`>ox!Y literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$MessageSignificanceCategory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$MessageSignificanceCategory.class new file mode 100644 index 0000000000000000000000000000000000000000..b8709ac8c3b168fcc40515151f75c49dbe67ee01 GIT binary patch literal 3073 zcmb_eS##S|6#lN_#EPpdINcklNL>=Usoj(=Kteayp@zhvagySOO_8r{HL~PNazbX9 z;dd|$e}E^G&Lm7blnw(03NvgEY!7S?Z2y7bTsdnKI-O4BNLT0T-1D7t?sv}3oqw<2 z1n@Yj%?KbF!g-{E=ndkT5Dwsic%)@K8^UuKk})ilGBQTQ_`HmZVjK-38^l-$?HHFa zA;wEGUJzq0gf?7m#w1=0k>*P>UY7BSj8|o7G9qGbN=A>2sEnAfr3aB`*p?j0WK$Q% zQ<-FnVc#%!U9HHoM$s|~hOSvUPih`7+Rhwf`##CeaC~ha@wBb;Urs)8%oxEXbrr&ncXZq;$JwX2nG@jW5Y6$?1)C&BO%HJPpZ-Mr` zqF0e-GyM)D4u%9tT{Ma-G!M1_=@uGlBrzPJXOs9Q&69o~jxOmRfaI^()`39mJv81z zVB-Qw^e$2q0Q=EEKk8$#L!FCgdUu2M<1{1T1fiTHl=`B#C@SICMC>+{a4@z2`Asyk zTDZCX8k|R{7T&fZD7A3QiqKlSfwtTYwC5J_P&mAR4*Jv)-cFAN>{!Ik4}3%s;bVjf z=_9mAAEQmWjos2G=#)OiLFqF@r8_t(eU1~-7kGkngJ^7FilX325`=qgbU%fDdWtyn zONlu$k6nbfJN^z$(sht-5sJt`C*Aw$?g}@P_vCXeyhmhD^3%N&jr95@BGOmrmcB+z z`UZ!kZ+-A41R|0oQa|v3h{0O8{8bZFXKi~_BFQ|>a(CQ11Hu*wV@O@g;K;+Ek0`pL^xyE_4W^+yR=*nILTP1&e tuNR1T*RfZ+NuGU(V^nGlsF%YTob`EejwlL*i6H?D;vg0GB#mg7{{y1p14Q*OTDuK?>>C3WQ;_Buu-E7+W z>VM%s;9F;+4=|%M+NVDBuW{7=p0PbQiLex#=>reB=bpRgo^!r)zH{^Q%ZHBvT)?t{ zA>?$tW8f^#>By%sfOmDgC*^q^7o>b&!v`8J8t9Rxm!$kq$7Lx$GGJg@$Bc$q18-nX zE>|_oYp^wZ%#fP#gcr>+s8g9Q84`A|!5NM&dV-f4wRIk@IO{&0=$m0sYkxes#OrmZ z$}3(~c$=Q<2$$PV#H&Ggo53s!!9&}3>UCacSeshB>3r+teMeODl_>N?bvm;cgw^~F z|5ASQh8N~NQIDjLe2rrJc{>oBL0FR~<6R<6GxSy>$Gx@WY;|%p3g5eYEAj$Cfm2b? zPM0z`jBuHQI2gv`=nA4yBWwrY{>yB)2z!RDn+$1LQ73AIRPQ@6KjrnC+>NHY!jLW& z95v2{7SK0qJ*5SEiN_~&c+jZ&0y_g3K3e5f>)phr(Qd%`yjsZ zNDpJz0>&l-WAwldf#FShzmp_sMrb`r+Av8P7bLSgVE1XmaEjKHJXD_2O0KR@fv|Bc1M>r$`f>NMoHy>1^&t3~XaidfZoCG9ShnGLwmo qbj(v(s>QJbwlO#=CR@2pA=8psyhYNY`vbUwk*mk4*;jB4>3;z4H45+m literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ResourceInteractionComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$ResourceInteractionComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..fe1bec98bd4d372f8a8918fdd79a4ee5816d6dc7 GIT binary patch literal 6625 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 bZwcq-;#s_BODh|IXYnYvLnH5>LgW7cl|dml literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$RestfulConformanceMode.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$RestfulConformanceMode.class new file mode 100644 index 0000000000000000000000000000000000000000..066d4fca5fa2beb98b3b667f76d503a22f7095b0 GIT binary patch literal 2577 zcmb_dTUQ%Z6#h;Um?0eso!${4wu2?KC1P!>f)tvj8VyuQKxyk`2oo5XOmH%3?GLaI zKKS6Om%5gh2QLp*SELFqS!$nr@JG4)&V)-?P*+z=CNt;kGyCjsU%q|jpMQV<6Tm4H zn-IZZ6z4Fc;FyB*QFJ0H9~V@lqPU0`RlFpX(kfn-<0}d>3Pz&XjZqbs7kaxU9lZ(Iu^1QE*kDF_}rHMsorO#;mems5r@zTPS%& z)6H8WrD;n*OS`V+B^|R|w#ouSnUXh?n03x33bVGCu-&pRbrVG@JBhm8#`XsLiJ47} zO{B&IBBSG(jDTWH3}?nuS%KjzJ7E2q=~Ser$?o_Ln2RKXEVN{7*BY%9rz|gLPC3kr z65w1a2;{mmbLKTO;h64BBI|p$JJTQEfj|aq*Y*clnr-Z-;}Zf+S$oDc{fb9-!rgL3 zEqJA3&Ew{*Z|3Jm%!O5dqpA1u)`D-BT;`_HFV(d6b;q|lPs=lwpS@A`t)f6P=NGJk zbcUM+qEfcY3yyh%fCG7F)y=UwLn*gX9C*|e43aC+Y^mbqt&6ryd21cLdS%KrJSkh| zn1(m;mV&nh1|N-`8cyIH4ZTPRKmh@!kY~CWq~-b=VmL~vY&R1+_T5jq^pFr2RJMWgRyRq$?B$g-XVhn2<3|nwgz!|x9M!~EG8*>`w;qcWt zfm69zD`qY%ICkEY6^fa8zZ^69kJTKFv7uxBtX+q>)TOC8EAO+A#~!dS0;lWg9-KSvzh+hi+Iqls5H;t=SebcCb)MHeBK5W0tOm6E`5J{yB~H>rODCs*~4A{4Cd+KWif zZ)muO$kq)Z*(8-)2%i=l5C$9%&YuhG#gJjx_T=jWc}8h_0@t;N&9q6Xrng9WL^B zgm;Lybi93a-l;dy&#HbKh!4?*kLbZolDo#>ehdUPejy-&&T2<6j3?NKIgV&m{{wYtS7ZPH literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$RestfulConformanceModeEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$RestfulConformanceModeEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..cfdadbd234e9a4f90a3e316a01dfa0f1c7d3cf86 GIT binary patch literal 1826 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$SystemInteractionComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$SystemInteractionComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..c0c581e7d727c3a09c71e5987672682071b84e06 GIT binary patch literal 6532 zcmb_g`+pSG75`4MVK>VTEI|mNLKlJ%Hi6YDTHPRdfkd7XUcqXe>`t-+yEDtoED*(_ z^-=NBT0w27&$g7d(pIYwl-AN;^z-T8)KBU6%uKSI2b*B?f!sTD?|FXDx#ynQfB*NZ zuL0bPucO$A=jzdn=cD*3UI^pG2wsXJgqP+0XJNb&#;Z}(8|6g}^T@v8_@5p>m_xq0(u6w5I(9~bcJ2)ZM9 zFM{o1ydR}J3Teg%BK|{R{z#ZVmbKr=({JVJck)C%&A1rG?-hhHR#sQAey3#*rE>WP zQiD0eP8p`-YGy`H6}X#EZ8b{;-PT;gGSdp``-~w|b4xb)mh}xgu3p%uJMLg9-)p)g z%LtucMRbf+Jtl}-CfrfU@RgN9=aO| zv|P^v+LEfOLMxM|x^qT8OKBlfE70ALJ6zi7uGyK~2FD8v-*blJ zTJ~_Tpdjv{m#>ttxicY2kWCm_osbP0x}C5F6K+mVSj8ahZ3(ATEK)Ve28O*oU&TfR zYSzjyKTIE91ua#5>vL_x9P;oHTxw(h6R^`9c5~cGI7K~UX!(RTV3pjm1&IMYr=2h? zTfrxfl#HxofKNMUWD>6B*<=)od41dz-wVSj3lTRmxrF8<@b6711HC;8lt+mg zGg%Iqdr-@l^g2OdWwG~=f_d!{+lQGcE$a_52Ne6srr?x5dCwG&z@ubD$BUnK*0-YcUM?N)HOWh(6)nHJ0Q-t;biTj!;{ zIM7sbjeKe+x6)GI(vw%KAELdsT&M0Z+Y_&_XRP9|f^9QIdTKsSd)CsfLV)z?AkHG@ddrdV#V+T&q_#%ueFCRmY*YITwHV(+Z z6gi1gF?@yVF$~Mo-|-LG;5SEWHD!~|5ZmEu)MA=3RPsN_6fDvut@oInOyzDblNBtP zt~9b_#j;i-b(< z+IQo`*moAY^NO!msnXoloz#J`C+agTKZ9-o4r|~Om3H{V>8Ur&)Ro@es$V>Qjg@}b zOXl%AgdM(?%}z3B%zc^@l?%dyi0O0pOm%!>5ta*Peuk~5X6yb%uze;0ya;A?= z2k}rZ(rA}qvkVWDW{ZOkbUNsw6qYc4Z%*Rw4!C=Sd#iA7o51~uaBt@iFTHq_+&erQ zc47&idE;>0%av7}70z|ZQ7E7BLBV4jqci~Ood~HbxUw7j_%7s0&fGy%$dj#CP*dhv zK!>3w$g>Ld>gvGhKJxF!fq?%g9T#=?CBHz;w`jeF+7YPN5$bQK8^yeTUPE{UOOn?S z>A#Np{!v6nF`rt5{8RGPc-Ae)JZfq|SX~cQO`=h4#R|0zDRl!5k}8Cn#>PPZA?iDf zevV@QL!3o_qX_&4i)6Zr*ad_`mk_GGJg#D%kg4~0;_6Vdq(k_Qd{;S}CdzpnPXu^0 za~3?q9+pXQu`&Sds8crwjy%boALA*G;z*jaII`3SGOS#J>N}&}z=ASVz8^iF{xE9h z_lBX7aR8Y>&|{2Z;4Jh& ze1=IOc5a~f__tV75%5Lh0bjs?H!#?XuOKdTW%K<=AE2ItjPxN!`YG}I-pVuOU+ud+U0y+?X_ sR-}yEvt+NqPrU0`1f1dfz5H9wy#+XnA9OUa0XT~v@i^3Tehu~i1CY%7w*UYD literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$SystemRestfulInteraction.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$SystemRestfulInteraction.class new file mode 100644 index 0000000000000000000000000000000000000000..c807e4dad65e185b92304b9cb62f62a660f0486f GIT binary patch literal 2683 zcmb_eTXWk~5dMy0Te7QMP)a_T;Rcrz5+=EPQ^Z>$ref%TCLzb=w1gQh z-;SXj??jQu%@}#!l5ktXyAt}i_MU`e68a?!@LAp$afe|~Zfbl&8&BmjlM@UFwWXS8 zRHlrYSE^eX+cR9f;F*riAZKjba8s6Es~I(h%UQ>rOO~zk$x_*Llcrtsbh}_AD^Ag{ zk}1b7Ic|kp)Sadrra86r_*Ckeme+FW8w{=2GFonOD!;CWCZ@Al22q_E&rYW`hSaUy zK#eTwR-LaQJrLiO2}3DbG(&sVw2g^+W!7+W`m9A3(MOsrG0Y5P@9K+s($ej@q~^J% zJvSWRmBoyhw&{&B?0*76CO*Ru)yz3t_v$VM)H1*=Qpt5HLCme1rx)gL=+(7|W9bhH zMwM5b@)Pl#z-#Y7e0%sb^PJ%Y)ur0e^A)4SgYoGSJ+PTS*jXE$K*t7=Bxm-7` zqTzD%GYtLH_Pp)fvwL@HwB7>Iv$tPH872dxhr77I2hWSJWK>|wa8RXJmuR-K=T$Ez zd1nvt9Qobt2K&LFxw#?uOP4X=FJ?19UQ&i|!E$UW#8%!+&fYZ&9u=$qDU;7|wwcua z-ZR|9pN&4+icbg~o0haglsYc{lq*(GGF(@+d!|-;&II+{(-EBi4{mcBg`5~Gzp&a7b6Z~}VN0=U$pb8(NU-$?K;XVe1kA3h6LaHF})L(o?#IA-C{I(%}LWrLd z;%9{TIU#=W7~=3VB8m+q_-#Y{k`TWl#IFhQ8$$f{F~pH)MBF*6-x1>Xg!ls?{z!;F zZ9$aq8WAw4<9(_vKXMNd$}2CntfKn?V!rZH$X8@vc{%JWZNAbI@s(cjPa4!hcs5^1#6R)qo~28pGh+1MEzUzV_hZ8vvuccb>n zzeC4wt>agn=mX5y8TH8r|0u_ElMoguj59pso{v5Eobx*$H-G>0+wTCbqpV>FSryM} zn8H;Rxg-YgoQmfqy{6*2q%SCVQNaxjz0&liq%Wy>S<+WDXqZ+pqhMCUQ<#&-yn?)f zf`V5W5;Kl)!dZr%$@E=@Si#${8BQ%b!d_|A*KNOIt-GXAH+`?({&?1W5QKKUYzN_H z!!3!>_N{8@c!EJM31RyM*9rnVV7NQEe9wB%%DI-P<;>7`L~S~~?D@6amU}a|x#jpd zM+BiIs&=kUf!$oe6Puo2mzwdT!b~%y%+RXdzhiB8veSwmRPAk<14T`QUOQ0=f8to_ z!w4A0qqvHqQ72S~fd0p<3xD6Rb(0}!IyGU14WG*VVZ_hs`aQcEP9KXwx>%&@d;Wu& zV-5dTVP~ndn&~zCs=esQuJ=c-U6qOJIEV8LP*Bvdh}Rf;L*EiXdjNDSp+wyYY|F21 zO$Dtv(eb)e_H8+VOtY)KEwz{St5I@YyJoq0zt*VRBJ6gQVQAl|UB!il<8IhK!^B(S zzVO}`qesokXqColbVA26?l3T7REf4@BKk)gUAm&Q?-+qI?rvEOZ2E-liT=$Ln=G5t2Ryi(4unE67bw7SBuaPqmM zhr=x9%Y`L#&8!ruQK_YpSy?Tw?a2vid)pQp3{%mRp0H8}=7XkL4ZS^BgOg8O(gPs( zJkm>eYzZT4fiZefhrn=_9_%<#S`a!fkTgt`b_MawF4!-`FkGZFA(i}NI%#CUTc(c? zBMzu$|AKDt><)T9f)N$stZBsBdgWKdn?|B5C{07{3d!bUXlswryS7W7Qak9QPkqKI zI(E>%i_?El7~V=GL;nrnpCH9Q#d-c2F7nTDg@1uG{}R{uSGd8y#vK0!1^$pw0xA+I zo$0!cOC-ezfJQ$WemW)IcgU{c!tbm rVj~^%M22c{=8$a!P7fwpxlJP7q8U6*)S&wVxP_7VbJXlxSU~b$LdFJM literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$TypeRestfulInteraction.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$TypeRestfulInteraction.class new file mode 100644 index 0000000000000000000000000000000000000000..34899d3472888c34d2376a57e6706ec76cb784d1 GIT binary patch literal 3483 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 L@`$fs4WWMkkIPk$ literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$VersioningPolicy.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$VersioningPolicy.class new file mode 100644 index 0000000000000000000000000000000000000000..8259bfa7c909a55764c6af3285c3c1703bade7f0 GIT binary patch literal 2890 zcmbtV+fy556#so8$u8*vap_%@wGD;PhP1VJD5Zr|qiLvJK+|elihF6+4G&>xqtus`}>~&p2Tad z@Z)?4PvL0+aRJYSun*7jM@qzn5YiYIaghr>C*l%cRS^?>ofI%7;Q0{3ctJ#lua`w! z;p>Ybbl{~{T*b>Fl6*ykCSqDdRzyyOE+Q{tMno_FI4femhyx;GT&W@88bfP(d@6BC zO^&A-!c)3aGHlDRW-i*MkzHVrl9r`Aqo!6W=_Q6!DchNe&zi^M`B}q>8&=8HtgId{ z*g4&dkJ?t=b_$#mS*vQ0plU#gF@}!S_sNT6XD1R2{`6!j#UMnc&ZZ_4D#PHFhXD)D zX=a(5e7Z0CP>TGc})HQ8Ri<_D?6IWe_;x`z5 zDC36=%W#Jowr`+08J(h7s>Y0^xn+k8Y3bt}G4I%gs;zCRt7WfW(26xnLy4PNz35VA zDIP)Bu1am~i>^1DG|%X+x=?cU0z(_UkLh`C3~gozaoQ*qO^r%J9LkzCGgA$U5>~k| zw0Y-;sZc_yU3Rkid4q>J+)z~mJj@aXc=yC5T!$%u%sjE#qLgq1mV{$C&Hw?ngd%Pb zzGcVes;wZQ7yT5J8mZ?b?B|T|DkD}d<}_EAaDekW>xHlybcP*uZnZqll?^keI~@8X zL-(Y0-LmH`Wo^?aS*ksySAqk|9HSQ(!+cX&z?_76+?23@SLxFkhOyf2WKJpQt`;jg zc2RfS1;r>SmhCE~amB#J!|9*ZdEcLD`;+ZR+-f`3RkpwZ{6mtX?rDh zhopOT=23lA;y!}UQZLRVunE0v@NQ^=2jV>zD9mf zo%TLp-7y?(>|<}54mPyR>d0uuCxmdFQx&5A)o+wFlgeRRqt2R5(aR*D6^pt>F2@=L zHo#~qMFJCDdj+IP_sUipGSLV0IC6+#G@{NMlsuY45!x1^QzODpjmXNW5%ErqNJD?G zJ2e=5SCTYpZ6{|~n(58D<^8L@_#|fgu0JZj$^F9IeUkh0oiur4#=C-w?PD|N0F+K1N88 z19YQ>el$}0_jfHLcxRpV6U6c1B%z!ll$t!NxRR7G#Nmf9hjY*P(AtJbW9dw_@Fg>}SxmsWjE@B7a?Hu@t zm~{2f&0XO!=%Txu?mcoVSx+`s^J}=zc5g^fz5n-R8mwifI_!(mCwg(=BKjQQ8 z(4W~PqEL~m|8c;?IQm3nBhWh!sM-(}XDE92HJeiuhNRJ_#a9XvlRdU literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$VersioningPolicyEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance$VersioningPolicyEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..4e803337bc502b3ad4b72c14833e4d966865bcd2 GIT binary patch literal 1876 zcmbVMTUQfT6#h0OnaMav9I#Xo1dD|v#kAfl2x1H^Ee2|owRHJ1Ooli*Ig?H%UVe&y zz_+fI_93*=dRfa_^+$DepCpC>Y#w-+voG_Vy}!NBKIg-~&tCvIgBu!#kXG@PhH0Eq zk%?mfU#s{=%F`;&NO@MlIR)o69FWipQeIT?t(2EEXqZtkt6)yUXPB4E6$J|lvI?#d zVzZ8Lf;mF(RC0|F$$CYb(7)^mJ6|iW+x|^+-DQuu;d|xQ&%~PTR~=6{qO|I{j`f6~ zF9~7$S=X#q?J6NZwS3=vXl7hflrn|DXXH$B+4D=8d+vqI#y!W+IHDSu!m=}EPUvQ` zp4jmGvh+;s4nITaD+H$X;JR69v(a*oExQsh3C-k` zd(n}nnh3#9Ny0jg;3xqKayl0A9pi;J{jhc5I=;se*U>iZqK+S=Bhhh8*D6Ibuyy<> z{U^3tu;jXS$#fU|Qmt%@pmThLp>0sBbysVSTeN+`@mu17@E(b=-2*XZ@yv`(>R85g z0v6jK9PhPhjm3@rJZ&%m8g$5nt{00tz@Hs!RQI~Kt-%iCtcTZf~^P_pz+5O&a15VF2|KcjHj94GsKKY zoi#;jF{#C+rq&Ik&Y%{BQGOdhZ=lfM(C94=(LWfZcNnJk7^M%*v{CeG@pxi^Go5T_ z8gFNcr_!%5(7>RKxTCuaAHkOllf*{b@K}m_ad;0lR8B7@o7|?5Y|0dlvov`B04`(n M$`L;7%ead8e@l7ijQ{`u literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance.class new file mode 100644 index 0000000000000000000000000000000000000000..0995b7ed08fa4a352aa8892d5454466ae7c23d30 GIT binary patch literal 31157 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Conformance.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance.java similarity index 86% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Conformance.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance.java index 81451b96f42..0f3f1912a9a 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Conformance.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Conformance.java @@ -1,5262 +1,5662 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A conformance statement is a set of requirements for a desired implementation or a description of how a target application fulfills those requirements in a particular implementation. - */ -@ResourceDef(name="Conformance", profile="http://hl7.org/fhir/Profile/Conformance") -public class Conformance extends DomainResource { - - public enum ConformanceStatementStatus implements FhirEnum { - /** - * This conformance statement is still under development. - */ - DRAFT, - /** - * This conformance statement is ready for use in production systems. - */ - ACTIVE, - /** - * This conformance statement has been withdrawn or superceded and should no longer be used. - */ - RETIRED, - /** - * added to help the parsers - */ - NULL; - - public static final ConformanceStatementStatusEnumFactory ENUM_FACTORY = new ConformanceStatementStatusEnumFactory(); - - public static ConformanceStatementStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("draft".equals(codeString)) - return DRAFT; - if ("active".equals(codeString)) - return ACTIVE; - if ("retired".equals(codeString)) - return RETIRED; - throw new IllegalArgumentException("Unknown ConformanceStatementStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case DRAFT: return "draft"; - case ACTIVE: return "active"; - case RETIRED: return "retired"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case DRAFT: return ""; - case ACTIVE: return ""; - case RETIRED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case DRAFT: return "This conformance statement is still under development."; - case ACTIVE: return "This conformance statement is ready for use in production systems."; - case RETIRED: return "This conformance statement has been withdrawn or superceded and should no longer be used."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case DRAFT: return "draft"; - case ACTIVE: return "active"; - case RETIRED: return "retired"; - default: return "?"; - } - } - } - - public static class ConformanceStatementStatusEnumFactory implements EnumFactory { - public ConformanceStatementStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("draft".equals(codeString)) - return ConformanceStatementStatus.DRAFT; - if ("active".equals(codeString)) - return ConformanceStatementStatus.ACTIVE; - if ("retired".equals(codeString)) - return ConformanceStatementStatus.RETIRED; - throw new IllegalArgumentException("Unknown ConformanceStatementStatus code '"+codeString+"'"); - } - public String toCode(ConformanceStatementStatus code) throws IllegalArgumentException { - if (code == ConformanceStatementStatus.DRAFT) - return "draft"; - if (code == ConformanceStatementStatus.ACTIVE) - return "active"; - if (code == ConformanceStatementStatus.RETIRED) - return "retired"; - return "?"; - } - } - - public enum RestfulConformanceMode implements FhirEnum { - /** - * The application acts as a server for this resource. - */ - CLIENT, - /** - * The application acts as a client for this resource. - */ - SERVER, - /** - * added to help the parsers - */ - NULL; - - public static final RestfulConformanceModeEnumFactory ENUM_FACTORY = new RestfulConformanceModeEnumFactory(); - - public static RestfulConformanceMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("client".equals(codeString)) - return CLIENT; - if ("server".equals(codeString)) - return SERVER; - throw new IllegalArgumentException("Unknown RestfulConformanceMode code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case CLIENT: return "client"; - case SERVER: return "server"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case CLIENT: return ""; - case SERVER: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case CLIENT: return "The application acts as a server for this resource."; - case SERVER: return "The application acts as a client for this resource."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case CLIENT: return "client"; - case SERVER: return "server"; - default: return "?"; - } - } - } - - public static class RestfulConformanceModeEnumFactory implements EnumFactory { - public RestfulConformanceMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("client".equals(codeString)) - return RestfulConformanceMode.CLIENT; - if ("server".equals(codeString)) - return RestfulConformanceMode.SERVER; - throw new IllegalArgumentException("Unknown RestfulConformanceMode code '"+codeString+"'"); - } - public String toCode(RestfulConformanceMode code) throws IllegalArgumentException { - if (code == RestfulConformanceMode.CLIENT) - return "client"; - if (code == RestfulConformanceMode.SERVER) - return "server"; - return "?"; - } - } - - public enum TypeRestfulInteraction implements FhirEnum { - /** - * - */ - READ, - /** - * - */ - VREAD, - /** - * - */ - UPDATE, - /** - * - */ - DELETE, - /** - * - */ - HISTORYINSTANCE, - /** - * - */ - VALIDATE, - /** - * - */ - HISTORYTYPE, - /** - * - */ - CREATE, - /** - * - */ - SEARCHTYPE, - /** - * added to help the parsers - */ - NULL; - - public static final TypeRestfulInteractionEnumFactory ENUM_FACTORY = new TypeRestfulInteractionEnumFactory(); - - public static TypeRestfulInteraction fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("read".equals(codeString)) - return READ; - if ("vread".equals(codeString)) - return VREAD; - if ("update".equals(codeString)) - return UPDATE; - if ("delete".equals(codeString)) - return DELETE; - if ("history-instance".equals(codeString)) - return HISTORYINSTANCE; - if ("validate".equals(codeString)) - return VALIDATE; - if ("history-type".equals(codeString)) - return HISTORYTYPE; - if ("create".equals(codeString)) - return CREATE; - if ("search-type".equals(codeString)) - return SEARCHTYPE; - throw new IllegalArgumentException("Unknown TypeRestfulInteraction code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case READ: return "read"; - case VREAD: return "vread"; - case UPDATE: return "update"; - case DELETE: return "delete"; - case HISTORYINSTANCE: return "history-instance"; - case VALIDATE: return "validate"; - case HISTORYTYPE: return "history-type"; - case CREATE: return "create"; - case SEARCHTYPE: return "search-type"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case READ: return "http://hl7.org/fhir/restful-interaction"; - case VREAD: return "http://hl7.org/fhir/restful-interaction"; - case UPDATE: return "http://hl7.org/fhir/restful-interaction"; - case DELETE: return "http://hl7.org/fhir/restful-interaction"; - case HISTORYINSTANCE: return "http://hl7.org/fhir/restful-interaction"; - case VALIDATE: return "http://hl7.org/fhir/restful-interaction"; - case HISTORYTYPE: return "http://hl7.org/fhir/restful-interaction"; - case CREATE: return "http://hl7.org/fhir/restful-interaction"; - case SEARCHTYPE: return "http://hl7.org/fhir/restful-interaction"; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case READ: return ""; - case VREAD: return ""; - case UPDATE: return ""; - case DELETE: return ""; - case HISTORYINSTANCE: return ""; - case VALIDATE: return ""; - case HISTORYTYPE: return ""; - case CREATE: return ""; - case SEARCHTYPE: return ""; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case READ: return "read"; - case VREAD: return "vread"; - case UPDATE: return "update"; - case DELETE: return "delete"; - case HISTORYINSTANCE: return "history-instance"; - case VALIDATE: return "validate"; - case HISTORYTYPE: return "history-type"; - case CREATE: return "create"; - case SEARCHTYPE: return "search-type"; - default: return "?"; - } - } - } - - public static class TypeRestfulInteractionEnumFactory implements EnumFactory { - public TypeRestfulInteraction fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("read".equals(codeString)) - return TypeRestfulInteraction.READ; - if ("vread".equals(codeString)) - return TypeRestfulInteraction.VREAD; - if ("update".equals(codeString)) - return TypeRestfulInteraction.UPDATE; - if ("delete".equals(codeString)) - return TypeRestfulInteraction.DELETE; - if ("history-instance".equals(codeString)) - return TypeRestfulInteraction.HISTORYINSTANCE; - if ("validate".equals(codeString)) - return TypeRestfulInteraction.VALIDATE; - if ("history-type".equals(codeString)) - return TypeRestfulInteraction.HISTORYTYPE; - if ("create".equals(codeString)) - return TypeRestfulInteraction.CREATE; - if ("search-type".equals(codeString)) - return TypeRestfulInteraction.SEARCHTYPE; - throw new IllegalArgumentException("Unknown TypeRestfulInteraction code '"+codeString+"'"); - } - public String toCode(TypeRestfulInteraction code) throws IllegalArgumentException { - if (code == TypeRestfulInteraction.READ) - return "read"; - if (code == TypeRestfulInteraction.VREAD) - return "vread"; - if (code == TypeRestfulInteraction.UPDATE) - return "update"; - if (code == TypeRestfulInteraction.DELETE) - return "delete"; - if (code == TypeRestfulInteraction.HISTORYINSTANCE) - return "history-instance"; - if (code == TypeRestfulInteraction.VALIDATE) - return "validate"; - if (code == TypeRestfulInteraction.HISTORYTYPE) - return "history-type"; - if (code == TypeRestfulInteraction.CREATE) - return "create"; - if (code == TypeRestfulInteraction.SEARCHTYPE) - return "search-type"; - return "?"; - } - } - - public enum VersioningPolicy implements FhirEnum { - /** - * VersionId meta-property is not suppoerted (server) or used (client). - */ - NOVERSION, - /** - * VersionId meta-property is suppoerted (server) or used (client). - */ - VERSIONED, - /** - * VersionId is must be correct for updates (server) or will be specified (If-match header) for updates (client). - */ - VERSIONEDUPDATE, - /** - * added to help the parsers - */ - NULL; - - public static final VersioningPolicyEnumFactory ENUM_FACTORY = new VersioningPolicyEnumFactory(); - - public static VersioningPolicy fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("no-version".equals(codeString)) - return NOVERSION; - if ("versioned".equals(codeString)) - return VERSIONED; - if ("versioned-update".equals(codeString)) - return VERSIONEDUPDATE; - throw new IllegalArgumentException("Unknown VersioningPolicy code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case NOVERSION: return "no-version"; - case VERSIONED: return "versioned"; - case VERSIONEDUPDATE: return "versioned-update"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case NOVERSION: return ""; - case VERSIONED: return ""; - case VERSIONEDUPDATE: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case NOVERSION: return "VersionId meta-property is not suppoerted (server) or used (client)."; - case VERSIONED: return "VersionId meta-property is suppoerted (server) or used (client)."; - case VERSIONEDUPDATE: return "VersionId is must be correct for updates (server) or will be specified (If-match header) for updates (client)."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case NOVERSION: return "No VersionId Support"; - case VERSIONED: return "Versioned"; - case VERSIONEDUPDATE: return "VersionId tracked fully"; - default: return "?"; - } - } - } - - public static class VersioningPolicyEnumFactory implements EnumFactory { - public VersioningPolicy fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("no-version".equals(codeString)) - return VersioningPolicy.NOVERSION; - if ("versioned".equals(codeString)) - return VersioningPolicy.VERSIONED; - if ("versioned-update".equals(codeString)) - return VersioningPolicy.VERSIONEDUPDATE; - throw new IllegalArgumentException("Unknown VersioningPolicy code '"+codeString+"'"); - } - public String toCode(VersioningPolicy code) throws IllegalArgumentException { - if (code == VersioningPolicy.NOVERSION) - return "no-version"; - if (code == VersioningPolicy.VERSIONED) - return "versioned"; - if (code == VersioningPolicy.VERSIONEDUPDATE) - return "versioned-update"; - return "?"; - } - } - - public enum SearchParamType implements FhirEnum { - /** - * Search parameter SHALL be a number (a whole number, or a decimal). - */ - NUMBER, - /** - * Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported. - */ - DATE, - /** - * Search parameter is a simple string, like a name part. Search is case-insensitive and accent-insensitive. May match just the start of a string. String parameters may contain spaces. - */ - STRING, - /** - * Search parameter on a coded element or identifier. May be used to search through the text, displayname, code and code/codesystem (for codes) and label, system and key (for identifier). Its value is either a string or a pair of namespace and value, separated by a "|", depending on the modifier used. - */ - TOKEN, - /** - * A reference to another resource. - */ - REFERENCE, - /** - * A composite search parameter that combines a search on two values together. - */ - COMPOSITE, - /** - * A search parameter that searches on a quantity. - */ - QUANTITY, - /** - * added to help the parsers - */ - NULL; - - public static final SearchParamTypeEnumFactory ENUM_FACTORY = new SearchParamTypeEnumFactory(); - - public static SearchParamType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("number".equals(codeString)) - return NUMBER; - if ("date".equals(codeString)) - return DATE; - if ("string".equals(codeString)) - return STRING; - if ("token".equals(codeString)) - return TOKEN; - if ("reference".equals(codeString)) - return REFERENCE; - if ("composite".equals(codeString)) - return COMPOSITE; - if ("quantity".equals(codeString)) - return QUANTITY; - throw new IllegalArgumentException("Unknown SearchParamType code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case NUMBER: return "number"; - case DATE: return "date"; - case STRING: return "string"; - case TOKEN: return "token"; - case REFERENCE: return "reference"; - case COMPOSITE: return "composite"; - case QUANTITY: return "quantity"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case NUMBER: return ""; - case DATE: return ""; - case STRING: return ""; - case TOKEN: return ""; - case REFERENCE: return ""; - case COMPOSITE: return ""; - case QUANTITY: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case NUMBER: return "Search parameter SHALL be a number (a whole number, or a decimal)."; - case DATE: return "Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported."; - case STRING: return "Search parameter is a simple string, like a name part. Search is case-insensitive and accent-insensitive. May match just the start of a string. String parameters may contain spaces."; - case TOKEN: return "Search parameter on a coded element or identifier. May be used to search through the text, displayname, code and code/codesystem (for codes) and label, system and key (for identifier). Its value is either a string or a pair of namespace and value, separated by a '|', depending on the modifier used."; - case REFERENCE: return "A reference to another resource."; - case COMPOSITE: return "A composite search parameter that combines a search on two values together."; - case QUANTITY: return "A search parameter that searches on a quantity."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case NUMBER: return "number"; - case DATE: return "date"; - case STRING: return "string"; - case TOKEN: return "token"; - case REFERENCE: return "reference"; - case COMPOSITE: return "composite"; - case QUANTITY: return "quantity"; - default: return "?"; - } - } - } - - public static class SearchParamTypeEnumFactory implements EnumFactory { - public SearchParamType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("number".equals(codeString)) - return SearchParamType.NUMBER; - if ("date".equals(codeString)) - return SearchParamType.DATE; - if ("string".equals(codeString)) - return SearchParamType.STRING; - if ("token".equals(codeString)) - return SearchParamType.TOKEN; - if ("reference".equals(codeString)) - return SearchParamType.REFERENCE; - if ("composite".equals(codeString)) - return SearchParamType.COMPOSITE; - if ("quantity".equals(codeString)) - return SearchParamType.QUANTITY; - throw new IllegalArgumentException("Unknown SearchParamType code '"+codeString+"'"); - } - public String toCode(SearchParamType code) throws IllegalArgumentException { - if (code == SearchParamType.NUMBER) - return "number"; - if (code == SearchParamType.DATE) - return "date"; - if (code == SearchParamType.STRING) - return "string"; - if (code == SearchParamType.TOKEN) - return "token"; - if (code == SearchParamType.REFERENCE) - return "reference"; - if (code == SearchParamType.COMPOSITE) - return "composite"; - if (code == SearchParamType.QUANTITY) - return "quantity"; - return "?"; - } - } - - public enum SystemRestfulInteraction implements FhirEnum { - /** - * - */ - TRANSACTION, - /** - * - */ - SEARCHSYSTEM, - /** - * - */ - HISTORYSYSTEM, - /** - * added to help the parsers - */ - NULL; - - public static final SystemRestfulInteractionEnumFactory ENUM_FACTORY = new SystemRestfulInteractionEnumFactory(); - - public static SystemRestfulInteraction fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("transaction".equals(codeString)) - return TRANSACTION; - if ("search-system".equals(codeString)) - return SEARCHSYSTEM; - if ("history-system".equals(codeString)) - return HISTORYSYSTEM; - throw new IllegalArgumentException("Unknown SystemRestfulInteraction code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case TRANSACTION: return "transaction"; - case SEARCHSYSTEM: return "search-system"; - case HISTORYSYSTEM: return "history-system"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case TRANSACTION: return "http://hl7.org/fhir/restful-interaction"; - case SEARCHSYSTEM: return "http://hl7.org/fhir/restful-interaction"; - case HISTORYSYSTEM: return "http://hl7.org/fhir/restful-interaction"; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case TRANSACTION: return ""; - case SEARCHSYSTEM: return ""; - case HISTORYSYSTEM: return ""; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case TRANSACTION: return "transaction"; - case SEARCHSYSTEM: return "search-system"; - case HISTORYSYSTEM: return "history-system"; - default: return "?"; - } - } - } - - public static class SystemRestfulInteractionEnumFactory implements EnumFactory { - public SystemRestfulInteraction fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("transaction".equals(codeString)) - return SystemRestfulInteraction.TRANSACTION; - if ("search-system".equals(codeString)) - return SystemRestfulInteraction.SEARCHSYSTEM; - if ("history-system".equals(codeString)) - return SystemRestfulInteraction.HISTORYSYSTEM; - throw new IllegalArgumentException("Unknown SystemRestfulInteraction code '"+codeString+"'"); - } - public String toCode(SystemRestfulInteraction code) throws IllegalArgumentException { - if (code == SystemRestfulInteraction.TRANSACTION) - return "transaction"; - if (code == SystemRestfulInteraction.SEARCHSYSTEM) - return "search-system"; - if (code == SystemRestfulInteraction.HISTORYSYSTEM) - return "history-system"; - return "?"; - } - } - - public enum MessageSignificanceCategory implements FhirEnum { - /** - * The message represents/requests a change that should not be processed more than once. E.g. Making a booking for an appointment. - */ - CONSEQUENCE, - /** - * The message represents a response to query for current information. Retrospective processing is wrong and/or wasteful. - */ - CURRENCY, - /** - * The content is not necessarily intended to be current, and it can be reprocessed, though there may be version issues created by processing old notifications. - */ - NOTIFICATION, - /** - * added to help the parsers - */ - NULL; - - public static final MessageSignificanceCategoryEnumFactory ENUM_FACTORY = new MessageSignificanceCategoryEnumFactory(); - - public static MessageSignificanceCategory fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("Consequence".equals(codeString)) - return CONSEQUENCE; - if ("Currency".equals(codeString)) - return CURRENCY; - if ("Notification".equals(codeString)) - return NOTIFICATION; - throw new IllegalArgumentException("Unknown MessageSignificanceCategory code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case CONSEQUENCE: return "Consequence"; - case CURRENCY: return "Currency"; - case NOTIFICATION: return "Notification"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case CONSEQUENCE: return ""; - case CURRENCY: return ""; - case NOTIFICATION: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case CONSEQUENCE: return "The message represents/requests a change that should not be processed more than once. E.g. Making a booking for an appointment."; - case CURRENCY: return "The message represents a response to query for current information. Retrospective processing is wrong and/or wasteful."; - case NOTIFICATION: return "The content is not necessarily intended to be current, and it can be reprocessed, though there may be version issues created by processing old notifications."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case CONSEQUENCE: return "Consequence"; - case CURRENCY: return "Currency"; - case NOTIFICATION: return "Notification"; - default: return "?"; - } - } - } - - public static class MessageSignificanceCategoryEnumFactory implements EnumFactory { - public MessageSignificanceCategory fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("Consequence".equals(codeString)) - return MessageSignificanceCategory.CONSEQUENCE; - if ("Currency".equals(codeString)) - return MessageSignificanceCategory.CURRENCY; - if ("Notification".equals(codeString)) - return MessageSignificanceCategory.NOTIFICATION; - throw new IllegalArgumentException("Unknown MessageSignificanceCategory code '"+codeString+"'"); - } - public String toCode(MessageSignificanceCategory code) throws IllegalArgumentException { - if (code == MessageSignificanceCategory.CONSEQUENCE) - return "Consequence"; - if (code == MessageSignificanceCategory.CURRENCY) - return "Currency"; - if (code == MessageSignificanceCategory.NOTIFICATION) - return "Notification"; - return "?"; - } - } - - public enum MessageConformanceEventMode implements FhirEnum { - /** - * The application sends requests and receives responses. - */ - SENDER, - /** - * The application receives requests and sends responses. - */ - RECEIVER, - /** - * added to help the parsers - */ - NULL; - - public static final MessageConformanceEventModeEnumFactory ENUM_FACTORY = new MessageConformanceEventModeEnumFactory(); - - public static MessageConformanceEventMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("sender".equals(codeString)) - return SENDER; - if ("receiver".equals(codeString)) - return RECEIVER; - throw new IllegalArgumentException("Unknown MessageConformanceEventMode code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case SENDER: return "sender"; - case RECEIVER: return "receiver"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case SENDER: return ""; - case RECEIVER: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case SENDER: return "The application sends requests and receives responses."; - case RECEIVER: return "The application receives requests and sends responses."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case SENDER: return "sender"; - case RECEIVER: return "receiver"; - default: return "?"; - } - } - } - - public static class MessageConformanceEventModeEnumFactory implements EnumFactory { - public MessageConformanceEventMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("sender".equals(codeString)) - return MessageConformanceEventMode.SENDER; - if ("receiver".equals(codeString)) - return MessageConformanceEventMode.RECEIVER; - throw new IllegalArgumentException("Unknown MessageConformanceEventMode code '"+codeString+"'"); - } - public String toCode(MessageConformanceEventMode code) throws IllegalArgumentException { - if (code == MessageConformanceEventMode.SENDER) - return "sender"; - if (code == MessageConformanceEventMode.RECEIVER) - return "receiver"; - return "?"; - } - } - - public enum DocumentMode implements FhirEnum { - /** - * The application produces documents of the specified type. - */ - PRODUCER, - /** - * The application consumes documents of the specified type. - */ - CONSUMER, - /** - * added to help the parsers - */ - NULL; - - public static final DocumentModeEnumFactory ENUM_FACTORY = new DocumentModeEnumFactory(); - - public static DocumentMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("producer".equals(codeString)) - return PRODUCER; - if ("consumer".equals(codeString)) - return CONSUMER; - throw new IllegalArgumentException("Unknown DocumentMode code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case PRODUCER: return "producer"; - case CONSUMER: return "consumer"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case PRODUCER: return ""; - case CONSUMER: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case PRODUCER: return "The application produces documents of the specified type."; - case CONSUMER: return "The application consumes documents of the specified type."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case PRODUCER: return "producer"; - case CONSUMER: return "consumer"; - default: return "?"; - } - } - } - - public static class DocumentModeEnumFactory implements EnumFactory { - public DocumentMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("producer".equals(codeString)) - return DocumentMode.PRODUCER; - if ("consumer".equals(codeString)) - return DocumentMode.CONSUMER; - throw new IllegalArgumentException("Unknown DocumentMode code '"+codeString+"'"); - } - public String toCode(DocumentMode code) throws IllegalArgumentException { - if (code == DocumentMode.PRODUCER) - return "producer"; - if (code == DocumentMode.CONSUMER) - return "consumer"; - return "?"; - } - } - - @Block() - public static class ConformanceSoftwareComponent extends BackboneElement { - /** - * Name software is known by. - */ - @Child(name="name", type={StringType.class}, order=1, min=1, max=1) - @Description(shortDefinition="A name the software is known by", formalDefinition="Name software is known by." ) - protected StringType name; - - /** - * The version identifier for the software covered by this statement. - */ - @Child(name="version", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Version covered by this statement", formalDefinition="The version identifier for the software covered by this statement." ) - protected StringType version; - - /** - * Date this version of the software released. - */ - @Child(name="releaseDate", type={DateTimeType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Date this version released", formalDefinition="Date this version of the software released." ) - protected DateTimeType releaseDate; - - private static final long serialVersionUID = 1819769027L; - - public ConformanceSoftwareComponent() { - super(); - } - - public ConformanceSoftwareComponent(StringType name) { - super(); - this.name = name; - } - - /** - * @return {@link #name} (Name software is known by.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceSoftwareComponent.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (Name software is known by.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public ConformanceSoftwareComponent setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return Name software is known by. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value Name software is known by. - */ - public ConformanceSoftwareComponent setName(String value) { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - return this; - } - - /** - * @return {@link #version} (The version identifier for the software covered by this statement.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value - */ - public StringType getVersionElement() { - if (this.version == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceSoftwareComponent.version"); - else if (Configuration.doAutoCreate()) - this.version = new StringType(); - return this.version; - } - - public boolean hasVersionElement() { - return this.version != null && !this.version.isEmpty(); - } - - public boolean hasVersion() { - return this.version != null && !this.version.isEmpty(); - } - - /** - * @param value {@link #version} (The version identifier for the software covered by this statement.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value - */ - public ConformanceSoftwareComponent setVersionElement(StringType value) { - this.version = value; - return this; - } - - /** - * @return The version identifier for the software covered by this statement. - */ - public String getVersion() { - return this.version == null ? null : this.version.getValue(); - } - - /** - * @param value The version identifier for the software covered by this statement. - */ - public ConformanceSoftwareComponent setVersion(String value) { - if (Utilities.noString(value)) - this.version = null; - else { - if (this.version == null) - this.version = new StringType(); - this.version.setValue(value); - } - return this; - } - - /** - * @return {@link #releaseDate} (Date this version of the software released.). This is the underlying object with id, value and extensions. The accessor "getReleaseDate" gives direct access to the value - */ - public DateTimeType getReleaseDateElement() { - if (this.releaseDate == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceSoftwareComponent.releaseDate"); - else if (Configuration.doAutoCreate()) - this.releaseDate = new DateTimeType(); - return this.releaseDate; - } - - public boolean hasReleaseDateElement() { - return this.releaseDate != null && !this.releaseDate.isEmpty(); - } - - public boolean hasReleaseDate() { - return this.releaseDate != null && !this.releaseDate.isEmpty(); - } - - /** - * @param value {@link #releaseDate} (Date this version of the software released.). This is the underlying object with id, value and extensions. The accessor "getReleaseDate" gives direct access to the value - */ - public ConformanceSoftwareComponent setReleaseDateElement(DateTimeType value) { - this.releaseDate = value; - return this; - } - - /** - * @return Date this version of the software released. - */ - public Date getReleaseDate() { - return this.releaseDate == null ? null : this.releaseDate.getValue(); - } - - /** - * @param value Date this version of the software released. - */ - public ConformanceSoftwareComponent setReleaseDate(Date value) { - if (value == null) - this.releaseDate = null; - else { - if (this.releaseDate == null) - this.releaseDate = new DateTimeType(); - this.releaseDate.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("name", "string", "Name software is known by.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("version", "string", "The version identifier for the software covered by this statement.", 0, java.lang.Integer.MAX_VALUE, version)); - childrenList.add(new Property("releaseDate", "dateTime", "Date this version of the software released.", 0, java.lang.Integer.MAX_VALUE, releaseDate)); - } - - public ConformanceSoftwareComponent copy() { - ConformanceSoftwareComponent dst = new ConformanceSoftwareComponent(); - copyValues(dst); - dst.name = name == null ? null : name.copy(); - dst.version = version == null ? null : version.copy(); - dst.releaseDate = releaseDate == null ? null : releaseDate.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (name == null || name.isEmpty()) && (version == null || version.isEmpty()) - && (releaseDate == null || releaseDate.isEmpty()); - } - - } - - @Block() - public static class ConformanceImplementationComponent extends BackboneElement { - /** - * Information about the specific installation that this conformance statement relates to. - */ - @Child(name="description", type={StringType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Describes this specific instance", formalDefinition="Information about the specific installation that this conformance statement relates to." ) - protected StringType description; - - /** - * A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces. - */ - @Child(name="url", type={UriType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Base URL for the installation", formalDefinition="A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces." ) - protected UriType url; - - private static final long serialVersionUID = -289238508L; - - public ConformanceImplementationComponent() { - super(); - } - - public ConformanceImplementationComponent(StringType description) { - super(); - this.description = description; - } - - /** - * @return {@link #description} (Information about the specific installation that this conformance statement relates to.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceImplementationComponent.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Information about the specific installation that this conformance statement relates to.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public ConformanceImplementationComponent setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Information about the specific installation that this conformance statement relates to. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Information about the specific installation that this conformance statement relates to. - */ - public ConformanceImplementationComponent setDescription(String value) { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - return this; - } - - /** - * @return {@link #url} (A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public UriType getUrlElement() { - if (this.url == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceImplementationComponent.url"); - else if (Configuration.doAutoCreate()) - this.url = new UriType(); - return this.url; - } - - public boolean hasUrlElement() { - return this.url != null && !this.url.isEmpty(); - } - - public boolean hasUrl() { - return this.url != null && !this.url.isEmpty(); - } - - /** - * @param value {@link #url} (A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public ConformanceImplementationComponent setUrlElement(UriType value) { - this.url = value; - return this; - } - - /** - * @return A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces. - */ - public String getUrl() { - return this.url == null ? null : this.url.getValue(); - } - - /** - * @param value A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces. - */ - public ConformanceImplementationComponent setUrl(String value) { - if (Utilities.noString(value)) - this.url = null; - else { - if (this.url == null) - this.url = new UriType(); - this.url.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("description", "string", "Information about the specific installation that this conformance statement relates to.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("url", "uri", "A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces.", 0, java.lang.Integer.MAX_VALUE, url)); - } - - public ConformanceImplementationComponent copy() { - ConformanceImplementationComponent dst = new ConformanceImplementationComponent(); - copyValues(dst); - dst.description = description == null ? null : description.copy(); - dst.url = url == null ? null : url.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (description == null || description.isEmpty()) && (url == null || url.isEmpty()) - ; - } - - } - - @Block() - public static class ConformanceRestComponent extends BackboneElement { - /** - * Identifies whether this portion of the statement is describing ability to initiate or receive restful operations. - */ - @Child(name="mode", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="client | server", formalDefinition="Identifies whether this portion of the statement is describing ability to initiate or receive restful operations." ) - protected Enumeration mode; - - /** - * Information about the system's restful capabilities that apply across all applications, such as security. - */ - @Child(name="documentation", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="General description of implementation", formalDefinition="Information about the system's restful capabilities that apply across all applications, such as security." ) - protected StringType documentation; - - /** - * Information about security of implementation. - */ - @Child(name="security", type={}, order=3, min=0, max=1) - @Description(shortDefinition="Information about security of implementation", formalDefinition="Information about security of implementation." ) - protected ConformanceRestSecurityComponent security; - - /** - * A specification of the restful capabilities of the solution for a specific resource type. - */ - @Child(name="resource", type={}, order=4, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Resource served on the REST interface", formalDefinition="A specification of the restful capabilities of the solution for a specific resource type." ) - protected List resource; - - /** - * A specification of restful operations supported by the system. - */ - @Child(name="interaction", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="What operations are supported?", formalDefinition="A specification of restful operations supported by the system." ) - protected List interaction; - - /** - * Definition of an operation or a named query and with its parameters and their meaning and type. - */ - @Child(name="operation", type={}, order=6, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Definition of an operation or a custom query", formalDefinition="Definition of an operation or a named query and with its parameters and their meaning and type." ) - protected List operation; - - /** - * A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purpose. - */ - @Child(name="documentMailbox", type={UriType.class}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="How documents are accepted in /Mailbox", formalDefinition="A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier 'http://hl7.org/fhir/documents/mailbox'. Other specifications can declare their own identifier for this purpose." ) - protected List documentMailbox; - - private static final long serialVersionUID = 777542519L; - - public ConformanceRestComponent() { - super(); - } - - public ConformanceRestComponent(Enumeration mode) { - super(); - this.mode = mode; - } - - /** - * @return {@link #mode} (Identifies whether this portion of the statement is describing ability to initiate or receive restful operations.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public Enumeration getModeElement() { - if (this.mode == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestComponent.mode"); - else if (Configuration.doAutoCreate()) - this.mode = new Enumeration(); - return this.mode; - } - - public boolean hasModeElement() { - return this.mode != null && !this.mode.isEmpty(); - } - - public boolean hasMode() { - return this.mode != null && !this.mode.isEmpty(); - } - - /** - * @param value {@link #mode} (Identifies whether this portion of the statement is describing ability to initiate or receive restful operations.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public ConformanceRestComponent setModeElement(Enumeration value) { - this.mode = value; - return this; - } - - /** - * @return Identifies whether this portion of the statement is describing ability to initiate or receive restful operations. - */ - public RestfulConformanceMode getMode() { - return this.mode == null ? null : this.mode.getValue(); - } - - /** - * @param value Identifies whether this portion of the statement is describing ability to initiate or receive restful operations. - */ - public ConformanceRestComponent setMode(RestfulConformanceMode value) { - if (this.mode == null) - this.mode = new Enumeration(RestfulConformanceMode.ENUM_FACTORY); - this.mode.setValue(value); - return this; - } - - /** - * @return {@link #documentation} (Information about the system's restful capabilities that apply across all applications, such as security.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public StringType getDocumentationElement() { - if (this.documentation == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestComponent.documentation"); - else if (Configuration.doAutoCreate()) - this.documentation = new StringType(); - return this.documentation; - } - - public boolean hasDocumentationElement() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - public boolean hasDocumentation() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - /** - * @param value {@link #documentation} (Information about the system's restful capabilities that apply across all applications, such as security.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public ConformanceRestComponent setDocumentationElement(StringType value) { - this.documentation = value; - return this; - } - - /** - * @return Information about the system's restful capabilities that apply across all applications, such as security. - */ - public String getDocumentation() { - return this.documentation == null ? null : this.documentation.getValue(); - } - - /** - * @param value Information about the system's restful capabilities that apply across all applications, such as security. - */ - public ConformanceRestComponent setDocumentation(String value) { - if (Utilities.noString(value)) - this.documentation = null; - else { - if (this.documentation == null) - this.documentation = new StringType(); - this.documentation.setValue(value); - } - return this; - } - - /** - * @return {@link #security} (Information about security of implementation.) - */ - public ConformanceRestSecurityComponent getSecurity() { - if (this.security == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestComponent.security"); - else if (Configuration.doAutoCreate()) - this.security = new ConformanceRestSecurityComponent(); - return this.security; - } - - public boolean hasSecurity() { - return this.security != null && !this.security.isEmpty(); - } - - /** - * @param value {@link #security} (Information about security of implementation.) - */ - public ConformanceRestComponent setSecurity(ConformanceRestSecurityComponent value) { - this.security = value; - return this; - } - - /** - * @return {@link #resource} (A specification of the restful capabilities of the solution for a specific resource type.) - */ - public List getResource() { - if (this.resource == null) - this.resource = new ArrayList(); - return this.resource; - } - - public boolean hasResource() { - if (this.resource == null) - return false; - for (ConformanceRestResourceComponent item : this.resource) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #resource} (A specification of the restful capabilities of the solution for a specific resource type.) - */ - // syntactic sugar - public ConformanceRestResourceComponent addResource() { //3 - ConformanceRestResourceComponent t = new ConformanceRestResourceComponent(); - if (this.resource == null) - this.resource = new ArrayList(); - this.resource.add(t); - return t; - } - - /** - * @return {@link #interaction} (A specification of restful operations supported by the system.) - */ - public List getInteraction() { - if (this.interaction == null) - this.interaction = new ArrayList(); - return this.interaction; - } - - public boolean hasInteraction() { - if (this.interaction == null) - return false; - for (SystemInteractionComponent item : this.interaction) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #interaction} (A specification of restful operations supported by the system.) - */ - // syntactic sugar - public SystemInteractionComponent addInteraction() { //3 - SystemInteractionComponent t = new SystemInteractionComponent(); - if (this.interaction == null) - this.interaction = new ArrayList(); - this.interaction.add(t); - return t; - } - - /** - * @return {@link #operation} (Definition of an operation or a named query and with its parameters and their meaning and type.) - */ - public List getOperation() { - if (this.operation == null) - this.operation = new ArrayList(); - return this.operation; - } - - public boolean hasOperation() { - if (this.operation == null) - return false; - for (ConformanceRestOperationComponent item : this.operation) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #operation} (Definition of an operation or a named query and with its parameters and their meaning and type.) - */ - // syntactic sugar - public ConformanceRestOperationComponent addOperation() { //3 - ConformanceRestOperationComponent t = new ConformanceRestOperationComponent(); - if (this.operation == null) - this.operation = new ArrayList(); - this.operation.add(t); - return t; - } - - /** - * @return {@link #documentMailbox} (A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purpose.) - */ - public List getDocumentMailbox() { - if (this.documentMailbox == null) - this.documentMailbox = new ArrayList(); - return this.documentMailbox; - } - - public boolean hasDocumentMailbox() { - if (this.documentMailbox == null) - return false; - for (UriType item : this.documentMailbox) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #documentMailbox} (A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purpose.) - */ - // syntactic sugar - public UriType addDocumentMailboxElement() {//2 - UriType t = new UriType(); - if (this.documentMailbox == null) - this.documentMailbox = new ArrayList(); - this.documentMailbox.add(t); - return t; - } - - /** - * @param value {@link #documentMailbox} (A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purpose.) - */ - public ConformanceRestComponent addDocumentMailbox(String value) { //1 - UriType t = new UriType(); - t.setValue(value); - if (this.documentMailbox == null) - this.documentMailbox = new ArrayList(); - this.documentMailbox.add(t); - return this; - } - - /** - * @param value {@link #documentMailbox} (A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purpose.) - */ - public boolean hasDocumentMailbox(String value) { - if (this.documentMailbox == null) - return false; - for (UriType v : this.documentMailbox) - if (v.equals(value)) // uri - return true; - return false; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("mode", "code", "Identifies whether this portion of the statement is describing ability to initiate or receive restful operations.", 0, java.lang.Integer.MAX_VALUE, mode)); - childrenList.add(new Property("documentation", "string", "Information about the system's restful capabilities that apply across all applications, such as security.", 0, java.lang.Integer.MAX_VALUE, documentation)); - childrenList.add(new Property("security", "", "Information about security of implementation.", 0, java.lang.Integer.MAX_VALUE, security)); - childrenList.add(new Property("resource", "", "A specification of the restful capabilities of the solution for a specific resource type.", 0, java.lang.Integer.MAX_VALUE, resource)); - childrenList.add(new Property("interaction", "", "A specification of restful operations supported by the system.", 0, java.lang.Integer.MAX_VALUE, interaction)); - childrenList.add(new Property("operation", "", "Definition of an operation or a named query and with its parameters and their meaning and type.", 0, java.lang.Integer.MAX_VALUE, operation)); - childrenList.add(new Property("documentMailbox", "uri", "A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier 'http://hl7.org/fhir/documents/mailbox'. Other specifications can declare their own identifier for this purpose.", 0, java.lang.Integer.MAX_VALUE, documentMailbox)); - } - - public ConformanceRestComponent copy() { - ConformanceRestComponent dst = new ConformanceRestComponent(); - copyValues(dst); - dst.mode = mode == null ? null : mode.copy(); - dst.documentation = documentation == null ? null : documentation.copy(); - dst.security = security == null ? null : security.copy(); - if (resource != null) { - dst.resource = new ArrayList(); - for (ConformanceRestResourceComponent i : resource) - dst.resource.add(i.copy()); - }; - if (interaction != null) { - dst.interaction = new ArrayList(); - for (SystemInteractionComponent i : interaction) - dst.interaction.add(i.copy()); - }; - if (operation != null) { - dst.operation = new ArrayList(); - for (ConformanceRestOperationComponent i : operation) - dst.operation.add(i.copy()); - }; - if (documentMailbox != null) { - dst.documentMailbox = new ArrayList(); - for (UriType i : documentMailbox) - dst.documentMailbox.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (mode == null || mode.isEmpty()) && (documentation == null || documentation.isEmpty()) - && (security == null || security.isEmpty()) && (resource == null || resource.isEmpty()) && (interaction == null || interaction.isEmpty()) - && (operation == null || operation.isEmpty()) && (documentMailbox == null || documentMailbox.isEmpty()) - ; - } - - } - - @Block() - public static class ConformanceRestSecurityComponent extends BackboneElement { - /** - * Server adds CORS headers when responding to requests - this enables javascript applications to use the server. - */ - @Child(name="cors", type={BooleanType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Adds CORS Headers (http://enable-cors.org/)", formalDefinition="Server adds CORS headers when responding to requests - this enables javascript applications to use the server." ) - protected BooleanType cors; - - /** - * Types of security services are supported/required by the system. - */ - @Child(name="service", type={CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="OAuth | OAuth2 | NTLM | Basic | Kerberos", formalDefinition="Types of security services are supported/required by the system." ) - protected List service; - - /** - * General description of how security works. - */ - @Child(name="description", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="General description of how security works", formalDefinition="General description of how security works." ) - protected StringType description; - - /** - * Certificates associated with security profiles. - */ - @Child(name="certificate", type={}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Certificates associated with security profiles", formalDefinition="Certificates associated with security profiles." ) - protected List certificate; - - private static final long serialVersionUID = 391663952L; - - public ConformanceRestSecurityComponent() { - super(); - } - - /** - * @return {@link #cors} (Server adds CORS headers when responding to requests - this enables javascript applications to use the server.). This is the underlying object with id, value and extensions. The accessor "getCors" gives direct access to the value - */ - public BooleanType getCorsElement() { - if (this.cors == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestSecurityComponent.cors"); - else if (Configuration.doAutoCreate()) - this.cors = new BooleanType(); - return this.cors; - } - - public boolean hasCorsElement() { - return this.cors != null && !this.cors.isEmpty(); - } - - public boolean hasCors() { - return this.cors != null && !this.cors.isEmpty(); - } - - /** - * @param value {@link #cors} (Server adds CORS headers when responding to requests - this enables javascript applications to use the server.). This is the underlying object with id, value and extensions. The accessor "getCors" gives direct access to the value - */ - public ConformanceRestSecurityComponent setCorsElement(BooleanType value) { - this.cors = value; - return this; - } - - /** - * @return Server adds CORS headers when responding to requests - this enables javascript applications to use the server. - */ - public boolean getCors() { - return this.cors == null ? false : this.cors.getValue(); - } - - /** - * @param value Server adds CORS headers when responding to requests - this enables javascript applications to use the server. - */ - public ConformanceRestSecurityComponent setCors(boolean value) { - if (value == false) - this.cors = null; - else { - if (this.cors == null) - this.cors = new BooleanType(); - this.cors.setValue(value); - } - return this; - } - - /** - * @return {@link #service} (Types of security services are supported/required by the system.) - */ - public List getService() { - if (this.service == null) - this.service = new ArrayList(); - return this.service; - } - - public boolean hasService() { - if (this.service == null) - return false; - for (CodeableConcept item : this.service) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #service} (Types of security services are supported/required by the system.) - */ - // syntactic sugar - public CodeableConcept addService() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.service == null) - this.service = new ArrayList(); - this.service.add(t); - return t; - } - - /** - * @return {@link #description} (General description of how security works.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestSecurityComponent.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (General description of how security works.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public ConformanceRestSecurityComponent setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return General description of how security works. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value General description of how security works. - */ - public ConformanceRestSecurityComponent setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #certificate} (Certificates associated with security profiles.) - */ - public List getCertificate() { - if (this.certificate == null) - this.certificate = new ArrayList(); - return this.certificate; - } - - public boolean hasCertificate() { - if (this.certificate == null) - return false; - for (ConformanceRestSecurityCertificateComponent item : this.certificate) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #certificate} (Certificates associated with security profiles.) - */ - // syntactic sugar - public ConformanceRestSecurityCertificateComponent addCertificate() { //3 - ConformanceRestSecurityCertificateComponent t = new ConformanceRestSecurityCertificateComponent(); - if (this.certificate == null) - this.certificate = new ArrayList(); - this.certificate.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("cors", "boolean", "Server adds CORS headers when responding to requests - this enables javascript applications to use the server.", 0, java.lang.Integer.MAX_VALUE, cors)); - childrenList.add(new Property("service", "CodeableConcept", "Types of security services are supported/required by the system.", 0, java.lang.Integer.MAX_VALUE, service)); - childrenList.add(new Property("description", "string", "General description of how security works.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("certificate", "", "Certificates associated with security profiles.", 0, java.lang.Integer.MAX_VALUE, certificate)); - } - - public ConformanceRestSecurityComponent copy() { - ConformanceRestSecurityComponent dst = new ConformanceRestSecurityComponent(); - copyValues(dst); - dst.cors = cors == null ? null : cors.copy(); - if (service != null) { - dst.service = new ArrayList(); - for (CodeableConcept i : service) - dst.service.add(i.copy()); - }; - dst.description = description == null ? null : description.copy(); - if (certificate != null) { - dst.certificate = new ArrayList(); - for (ConformanceRestSecurityCertificateComponent i : certificate) - dst.certificate.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (cors == null || cors.isEmpty()) && (service == null || service.isEmpty()) - && (description == null || description.isEmpty()) && (certificate == null || certificate.isEmpty()) - ; - } - - } - - @Block() - public static class ConformanceRestSecurityCertificateComponent extends BackboneElement { - /** - * Mime type for certificate. - */ - @Child(name="type", type={CodeType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Mime type for certificate", formalDefinition="Mime type for certificate." ) - protected CodeType type; - - /** - * Actual certificate. - */ - @Child(name="blob", type={Base64BinaryType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Actual certificate", formalDefinition="Actual certificate." ) - protected Base64BinaryType blob; - - private static final long serialVersionUID = 2092655854L; - - public ConformanceRestSecurityCertificateComponent() { - super(); - } - - /** - * @return {@link #type} (Mime type for certificate.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public CodeType getTypeElement() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestSecurityCertificateComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeType(); - return this.type; - } - - public boolean hasTypeElement() { - return this.type != null && !this.type.isEmpty(); - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Mime type for certificate.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public ConformanceRestSecurityCertificateComponent setTypeElement(CodeType value) { - this.type = value; - return this; - } - - /** - * @return Mime type for certificate. - */ - public String getType() { - return this.type == null ? null : this.type.getValue(); - } - - /** - * @param value Mime type for certificate. - */ - public ConformanceRestSecurityCertificateComponent setType(String value) { - if (Utilities.noString(value)) - this.type = null; - else { - if (this.type == null) - this.type = new CodeType(); - this.type.setValue(value); - } - return this; - } - - /** - * @return {@link #blob} (Actual certificate.). This is the underlying object with id, value and extensions. The accessor "getBlob" gives direct access to the value - */ - public Base64BinaryType getBlobElement() { - if (this.blob == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestSecurityCertificateComponent.blob"); - else if (Configuration.doAutoCreate()) - this.blob = new Base64BinaryType(); - return this.blob; - } - - public boolean hasBlobElement() { - return this.blob != null && !this.blob.isEmpty(); - } - - public boolean hasBlob() { - return this.blob != null && !this.blob.isEmpty(); - } - - /** - * @param value {@link #blob} (Actual certificate.). This is the underlying object with id, value and extensions. The accessor "getBlob" gives direct access to the value - */ - public ConformanceRestSecurityCertificateComponent setBlobElement(Base64BinaryType value) { - this.blob = value; - return this; - } - - /** - * @return Actual certificate. - */ - public byte[] getBlob() { - return this.blob == null ? null : this.blob.getValue(); - } - - /** - * @param value Actual certificate. - */ - public ConformanceRestSecurityCertificateComponent setBlob(byte[] value) { - if (value == null) - this.blob = null; - else { - if (this.blob == null) - this.blob = new Base64BinaryType(); - this.blob.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "code", "Mime type for certificate.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("blob", "base64Binary", "Actual certificate.", 0, java.lang.Integer.MAX_VALUE, blob)); - } - - public ConformanceRestSecurityCertificateComponent copy() { - ConformanceRestSecurityCertificateComponent dst = new ConformanceRestSecurityCertificateComponent(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - dst.blob = blob == null ? null : blob.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (blob == null || blob.isEmpty()) - ; - } - - } - - @Block() - public static class ConformanceRestResourceComponent extends BackboneElement { - /** - * A type of resource exposed via the restful interface. - */ - @Child(name="type", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="A resource type that is supported", formalDefinition="A type of resource exposed via the restful interface." ) - protected CodeType type; - - /** - * A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations. - */ - @Child(name="profile", type={Profile.class}, order=2, min=0, max=1) - @Description(shortDefinition="What structural features are supported", formalDefinition="A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations." ) - protected Reference profile; - - /** - * The actual object that is the target of the reference (A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.) - */ - protected Profile profileTarget; - - /** - * Identifies a restful operation supported by the solution. - */ - @Child(name="interaction", type={}, order=3, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="What operations are supported?", formalDefinition="Identifies a restful operation supported by the solution." ) - protected List interaction; - - /** - * Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources. - */ - @Child(name="versioning", type={CodeType.class}, order=4, min=0, max=1) - @Description(shortDefinition="no-version | versioned | versioned-update", formalDefinition="Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources." ) - protected Enumeration versioning; - - /** - * A flag for whether the server is able to return past versions as part of the vRead operation. - */ - @Child(name="readHistory", type={BooleanType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Whether vRead can return past versions", formalDefinition="A flag for whether the server is able to return past versions as part of the vRead operation." ) - protected BooleanType readHistory; - - /** - * A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server. - */ - @Child(name="updateCreate", type={BooleanType.class}, order=6, min=0, max=1) - @Description(shortDefinition="If allows/uses update to a new location", formalDefinition="A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server." ) - protected BooleanType updateCreate; - - /** - * A list of _include values supported by the server. - */ - @Child(name="searchInclude", type={StringType.class}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="_include values supported by the server", formalDefinition="A list of _include values supported by the server." ) - protected List searchInclude; - - /** - * Additional search parameters for implementations to support and/or make use of. - */ - @Child(name="searchParam", type={}, order=8, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Additional search params defined", formalDefinition="Additional search parameters for implementations to support and/or make use of." ) - protected List searchParam; - - private static final long serialVersionUID = 120556320L; - - public ConformanceRestResourceComponent() { - super(); - } - - public ConformanceRestResourceComponent(CodeType type) { - super(); - this.type = type; - } - - /** - * @return {@link #type} (A type of resource exposed via the restful interface.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public CodeType getTypeElement() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestResourceComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeType(); - return this.type; - } - - public boolean hasTypeElement() { - return this.type != null && !this.type.isEmpty(); - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (A type of resource exposed via the restful interface.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public ConformanceRestResourceComponent setTypeElement(CodeType value) { - this.type = value; - return this; - } - - /** - * @return A type of resource exposed via the restful interface. - */ - public String getType() { - return this.type == null ? null : this.type.getValue(); - } - - /** - * @param value A type of resource exposed via the restful interface. - */ - public ConformanceRestResourceComponent setType(String value) { - if (this.type == null) - this.type = new CodeType(); - this.type.setValue(value); - return this; - } - - /** - * @return {@link #profile} (A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.) - */ - public Reference getProfile() { - if (this.profile == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestResourceComponent.profile"); - else if (Configuration.doAutoCreate()) - this.profile = new Reference(); - return this.profile; - } - - public boolean hasProfile() { - return this.profile != null && !this.profile.isEmpty(); - } - - /** - * @param value {@link #profile} (A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.) - */ - public ConformanceRestResourceComponent setProfile(Reference value) { - this.profile = value; - return this; - } - - /** - * @return {@link #profile} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.) - */ - public Profile getProfileTarget() { - if (this.profileTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestResourceComponent.profile"); - else if (Configuration.doAutoCreate()) - this.profileTarget = new Profile(); - return this.profileTarget; - } - - /** - * @param value {@link #profile} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.) - */ - public ConformanceRestResourceComponent setProfileTarget(Profile value) { - this.profileTarget = value; - return this; - } - - /** - * @return {@link #interaction} (Identifies a restful operation supported by the solution.) - */ - public List getInteraction() { - if (this.interaction == null) - this.interaction = new ArrayList(); - return this.interaction; - } - - public boolean hasInteraction() { - if (this.interaction == null) - return false; - for (ResourceInteractionComponent item : this.interaction) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #interaction} (Identifies a restful operation supported by the solution.) - */ - // syntactic sugar - public ResourceInteractionComponent addInteraction() { //3 - ResourceInteractionComponent t = new ResourceInteractionComponent(); - if (this.interaction == null) - this.interaction = new ArrayList(); - this.interaction.add(t); - return t; - } - - /** - * @return {@link #versioning} (Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources.). This is the underlying object with id, value and extensions. The accessor "getVersioning" gives direct access to the value - */ - public Enumeration getVersioningElement() { - if (this.versioning == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestResourceComponent.versioning"); - else if (Configuration.doAutoCreate()) - this.versioning = new Enumeration(); - return this.versioning; - } - - public boolean hasVersioningElement() { - return this.versioning != null && !this.versioning.isEmpty(); - } - - public boolean hasVersioning() { - return this.versioning != null && !this.versioning.isEmpty(); - } - - /** - * @param value {@link #versioning} (Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources.). This is the underlying object with id, value and extensions. The accessor "getVersioning" gives direct access to the value - */ - public ConformanceRestResourceComponent setVersioningElement(Enumeration value) { - this.versioning = value; - return this; - } - - /** - * @return Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources. - */ - public VersioningPolicy getVersioning() { - return this.versioning == null ? null : this.versioning.getValue(); - } - - /** - * @param value Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources. - */ - public ConformanceRestResourceComponent setVersioning(VersioningPolicy value) { - if (value == null) - this.versioning = null; - else { - if (this.versioning == null) - this.versioning = new Enumeration(VersioningPolicy.ENUM_FACTORY); - this.versioning.setValue(value); - } - return this; - } - - /** - * @return {@link #readHistory} (A flag for whether the server is able to return past versions as part of the vRead operation.). This is the underlying object with id, value and extensions. The accessor "getReadHistory" gives direct access to the value - */ - public BooleanType getReadHistoryElement() { - if (this.readHistory == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestResourceComponent.readHistory"); - else if (Configuration.doAutoCreate()) - this.readHistory = new BooleanType(); - return this.readHistory; - } - - public boolean hasReadHistoryElement() { - return this.readHistory != null && !this.readHistory.isEmpty(); - } - - public boolean hasReadHistory() { - return this.readHistory != null && !this.readHistory.isEmpty(); - } - - /** - * @param value {@link #readHistory} (A flag for whether the server is able to return past versions as part of the vRead operation.). This is the underlying object with id, value and extensions. The accessor "getReadHistory" gives direct access to the value - */ - public ConformanceRestResourceComponent setReadHistoryElement(BooleanType value) { - this.readHistory = value; - return this; - } - - /** - * @return A flag for whether the server is able to return past versions as part of the vRead operation. - */ - public boolean getReadHistory() { - return this.readHistory == null ? false : this.readHistory.getValue(); - } - - /** - * @param value A flag for whether the server is able to return past versions as part of the vRead operation. - */ - public ConformanceRestResourceComponent setReadHistory(boolean value) { - if (value == false) - this.readHistory = null; - else { - if (this.readHistory == null) - this.readHistory = new BooleanType(); - this.readHistory.setValue(value); - } - return this; - } - - /** - * @return {@link #updateCreate} (A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server.). This is the underlying object with id, value and extensions. The accessor "getUpdateCreate" gives direct access to the value - */ - public BooleanType getUpdateCreateElement() { - if (this.updateCreate == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestResourceComponent.updateCreate"); - else if (Configuration.doAutoCreate()) - this.updateCreate = new BooleanType(); - return this.updateCreate; - } - - public boolean hasUpdateCreateElement() { - return this.updateCreate != null && !this.updateCreate.isEmpty(); - } - - public boolean hasUpdateCreate() { - return this.updateCreate != null && !this.updateCreate.isEmpty(); - } - - /** - * @param value {@link #updateCreate} (A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server.). This is the underlying object with id, value and extensions. The accessor "getUpdateCreate" gives direct access to the value - */ - public ConformanceRestResourceComponent setUpdateCreateElement(BooleanType value) { - this.updateCreate = value; - return this; - } - - /** - * @return A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server. - */ - public boolean getUpdateCreate() { - return this.updateCreate == null ? false : this.updateCreate.getValue(); - } - - /** - * @param value A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server. - */ - public ConformanceRestResourceComponent setUpdateCreate(boolean value) { - if (value == false) - this.updateCreate = null; - else { - if (this.updateCreate == null) - this.updateCreate = new BooleanType(); - this.updateCreate.setValue(value); - } - return this; - } - - /** - * @return {@link #searchInclude} (A list of _include values supported by the server.) - */ - public List getSearchInclude() { - if (this.searchInclude == null) - this.searchInclude = new ArrayList(); - return this.searchInclude; - } - - public boolean hasSearchInclude() { - if (this.searchInclude == null) - return false; - for (StringType item : this.searchInclude) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #searchInclude} (A list of _include values supported by the server.) - */ - // syntactic sugar - public StringType addSearchIncludeElement() {//2 - StringType t = new StringType(); - if (this.searchInclude == null) - this.searchInclude = new ArrayList(); - this.searchInclude.add(t); - return t; - } - - /** - * @param value {@link #searchInclude} (A list of _include values supported by the server.) - */ - public ConformanceRestResourceComponent addSearchInclude(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.searchInclude == null) - this.searchInclude = new ArrayList(); - this.searchInclude.add(t); - return this; - } - - /** - * @param value {@link #searchInclude} (A list of _include values supported by the server.) - */ - public boolean hasSearchInclude(String value) { - if (this.searchInclude == null) - return false; - for (StringType v : this.searchInclude) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #searchParam} (Additional search parameters for implementations to support and/or make use of.) - */ - public List getSearchParam() { - if (this.searchParam == null) - this.searchParam = new ArrayList(); - return this.searchParam; - } - - public boolean hasSearchParam() { - if (this.searchParam == null) - return false; - for (ConformanceRestResourceSearchParamComponent item : this.searchParam) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #searchParam} (Additional search parameters for implementations to support and/or make use of.) - */ - // syntactic sugar - public ConformanceRestResourceSearchParamComponent addSearchParam() { //3 - ConformanceRestResourceSearchParamComponent t = new ConformanceRestResourceSearchParamComponent(); - if (this.searchParam == null) - this.searchParam = new ArrayList(); - this.searchParam.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "code", "A type of resource exposed via the restful interface.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("profile", "Reference(Profile)", "A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.", 0, java.lang.Integer.MAX_VALUE, profile)); - childrenList.add(new Property("interaction", "", "Identifies a restful operation supported by the solution.", 0, java.lang.Integer.MAX_VALUE, interaction)); - childrenList.add(new Property("versioning", "code", "Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources.", 0, java.lang.Integer.MAX_VALUE, versioning)); - childrenList.add(new Property("readHistory", "boolean", "A flag for whether the server is able to return past versions as part of the vRead operation.", 0, java.lang.Integer.MAX_VALUE, readHistory)); - childrenList.add(new Property("updateCreate", "boolean", "A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server.", 0, java.lang.Integer.MAX_VALUE, updateCreate)); - childrenList.add(new Property("searchInclude", "string", "A list of _include values supported by the server.", 0, java.lang.Integer.MAX_VALUE, searchInclude)); - childrenList.add(new Property("searchParam", "", "Additional search parameters for implementations to support and/or make use of.", 0, java.lang.Integer.MAX_VALUE, searchParam)); - } - - public ConformanceRestResourceComponent copy() { - ConformanceRestResourceComponent dst = new ConformanceRestResourceComponent(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - dst.profile = profile == null ? null : profile.copy(); - if (interaction != null) { - dst.interaction = new ArrayList(); - for (ResourceInteractionComponent i : interaction) - dst.interaction.add(i.copy()); - }; - dst.versioning = versioning == null ? null : versioning.copy(); - dst.readHistory = readHistory == null ? null : readHistory.copy(); - dst.updateCreate = updateCreate == null ? null : updateCreate.copy(); - if (searchInclude != null) { - dst.searchInclude = new ArrayList(); - for (StringType i : searchInclude) - dst.searchInclude.add(i.copy()); - }; - if (searchParam != null) { - dst.searchParam = new ArrayList(); - for (ConformanceRestResourceSearchParamComponent i : searchParam) - dst.searchParam.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (profile == null || profile.isEmpty()) - && (interaction == null || interaction.isEmpty()) && (versioning == null || versioning.isEmpty()) - && (readHistory == null || readHistory.isEmpty()) && (updateCreate == null || updateCreate.isEmpty()) - && (searchInclude == null || searchInclude.isEmpty()) && (searchParam == null || searchParam.isEmpty()) - ; - } - - } - - @Block() - public static class ResourceInteractionComponent extends BackboneElement { - /** - * Coded identifier of the operation, supported by the system resource. - */ - @Child(name="code", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="read | vread | update | delete | history-instance | validate | history-type | create | search-type", formalDefinition="Coded identifier of the operation, supported by the system resource." ) - protected Enumeration code; - - /** - * Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'. - */ - @Child(name="documentation", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Anything special about operation behavior", formalDefinition="Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'." ) - protected StringType documentation; - - private static final long serialVersionUID = -437507806L; - - public ResourceInteractionComponent() { - super(); - } - - public ResourceInteractionComponent(Enumeration code) { - super(); - this.code = code; - } - - /** - * @return {@link #code} (Coded identifier of the operation, supported by the system resource.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public Enumeration getCodeElement() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ResourceInteractionComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new Enumeration(); - return this.code; - } - - public boolean hasCodeElement() { - return this.code != null && !this.code.isEmpty(); - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Coded identifier of the operation, supported by the system resource.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public ResourceInteractionComponent setCodeElement(Enumeration value) { - this.code = value; - return this; - } - - /** - * @return Coded identifier of the operation, supported by the system resource. - */ - public TypeRestfulInteraction getCode() { - return this.code == null ? null : this.code.getValue(); - } - - /** - * @param value Coded identifier of the operation, supported by the system resource. - */ - public ResourceInteractionComponent setCode(TypeRestfulInteraction value) { - if (this.code == null) - this.code = new Enumeration(TypeRestfulInteraction.ENUM_FACTORY); - this.code.setValue(value); - return this; - } - - /** - * @return {@link #documentation} (Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public StringType getDocumentationElement() { - if (this.documentation == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ResourceInteractionComponent.documentation"); - else if (Configuration.doAutoCreate()) - this.documentation = new StringType(); - return this.documentation; - } - - public boolean hasDocumentationElement() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - public boolean hasDocumentation() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - /** - * @param value {@link #documentation} (Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public ResourceInteractionComponent setDocumentationElement(StringType value) { - this.documentation = value; - return this; - } - - /** - * @return Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'. - */ - public String getDocumentation() { - return this.documentation == null ? null : this.documentation.getValue(); - } - - /** - * @param value Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'. - */ - public ResourceInteractionComponent setDocumentation(String value) { - if (Utilities.noString(value)) - this.documentation = null; - else { - if (this.documentation == null) - this.documentation = new StringType(); - this.documentation.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "code", "Coded identifier of the operation, supported by the system resource.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("documentation", "string", "Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'.", 0, java.lang.Integer.MAX_VALUE, documentation)); - } - - public ResourceInteractionComponent copy() { - ResourceInteractionComponent dst = new ResourceInteractionComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.documentation = documentation == null ? null : documentation.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (documentation == null || documentation.isEmpty()) - ; - } - - } - - @Block() - public static class ConformanceRestResourceSearchParamComponent extends BackboneElement { - /** - * The name of the search parameter used in the interface. - */ - @Child(name="name", type={StringType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Name of search parameter", formalDefinition="The name of the search parameter used in the interface." ) - protected StringType name; - - /** - * A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter. - */ - @Child(name="definition", type={UriType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Source of definition for parameter", formalDefinition="A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter." ) - protected UriType definition; - - /** - * The type of value a search parameter refers to, and how the content is interpreted. - */ - @Child(name="type", type={CodeType.class}, order=3, min=1, max=1) - @Description(shortDefinition="number | date | string | token | reference | composite | quantity", formalDefinition="The type of value a search parameter refers to, and how the content is interpreted." ) - protected Enumeration type; - - /** - * This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms. - */ - @Child(name="documentation", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Server-specific usage", formalDefinition="This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms." ) - protected StringType documentation; - - /** - * Types of resource (if a resource is referenced). - */ - @Child(name="target", type={CodeType.class}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Types of resource (if a resource reference)", formalDefinition="Types of resource (if a resource is referenced)." ) - protected List target; - - /** - * Chained names supported. - */ - @Child(name="chain", type={StringType.class}, order=6, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Chained names supported", formalDefinition="Chained names supported." ) - protected List chain; - - private static final long serialVersionUID = 938312816L; - - public ConformanceRestResourceSearchParamComponent() { - super(); - } - - public ConformanceRestResourceSearchParamComponent(StringType name, Enumeration type) { - super(); - this.name = name; - this.type = type; - } - - /** - * @return {@link #name} (The name of the search parameter used in the interface.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestResourceSearchParamComponent.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (The name of the search parameter used in the interface.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public ConformanceRestResourceSearchParamComponent setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return The name of the search parameter used in the interface. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value The name of the search parameter used in the interface. - */ - public ConformanceRestResourceSearchParamComponent setName(String value) { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - return this; - } - - /** - * @return {@link #definition} (A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value - */ - public UriType getDefinitionElement() { - if (this.definition == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestResourceSearchParamComponent.definition"); - else if (Configuration.doAutoCreate()) - this.definition = new UriType(); - return this.definition; - } - - public boolean hasDefinitionElement() { - return this.definition != null && !this.definition.isEmpty(); - } - - public boolean hasDefinition() { - return this.definition != null && !this.definition.isEmpty(); - } - - /** - * @param value {@link #definition} (A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value - */ - public ConformanceRestResourceSearchParamComponent setDefinitionElement(UriType value) { - this.definition = value; - return this; - } - - /** - * @return A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter. - */ - public String getDefinition() { - return this.definition == null ? null : this.definition.getValue(); - } - - /** - * @param value A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter. - */ - public ConformanceRestResourceSearchParamComponent setDefinition(String value) { - if (Utilities.noString(value)) - this.definition = null; - else { - if (this.definition == null) - this.definition = new UriType(); - this.definition.setValue(value); - } - return this; - } - - /** - * @return {@link #type} (The type of value a search parameter refers to, and how the content is interpreted.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public Enumeration getTypeElement() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestResourceSearchParamComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new Enumeration(); - return this.type; - } - - public boolean hasTypeElement() { - return this.type != null && !this.type.isEmpty(); - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The type of value a search parameter refers to, and how the content is interpreted.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public ConformanceRestResourceSearchParamComponent setTypeElement(Enumeration value) { - this.type = value; - return this; - } - - /** - * @return The type of value a search parameter refers to, and how the content is interpreted. - */ - public SearchParamType getType() { - return this.type == null ? null : this.type.getValue(); - } - - /** - * @param value The type of value a search parameter refers to, and how the content is interpreted. - */ - public ConformanceRestResourceSearchParamComponent setType(SearchParamType value) { - if (this.type == null) - this.type = new Enumeration(SearchParamType.ENUM_FACTORY); - this.type.setValue(value); - return this; - } - - /** - * @return {@link #documentation} (This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public StringType getDocumentationElement() { - if (this.documentation == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestResourceSearchParamComponent.documentation"); - else if (Configuration.doAutoCreate()) - this.documentation = new StringType(); - return this.documentation; - } - - public boolean hasDocumentationElement() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - public boolean hasDocumentation() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - /** - * @param value {@link #documentation} (This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public ConformanceRestResourceSearchParamComponent setDocumentationElement(StringType value) { - this.documentation = value; - return this; - } - - /** - * @return This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms. - */ - public String getDocumentation() { - return this.documentation == null ? null : this.documentation.getValue(); - } - - /** - * @param value This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms. - */ - public ConformanceRestResourceSearchParamComponent setDocumentation(String value) { - if (Utilities.noString(value)) - this.documentation = null; - else { - if (this.documentation == null) - this.documentation = new StringType(); - this.documentation.setValue(value); - } - return this; - } - - /** - * @return {@link #target} (Types of resource (if a resource is referenced).) - */ - public List getTarget() { - if (this.target == null) - this.target = new ArrayList(); - return this.target; - } - - public boolean hasTarget() { - if (this.target == null) - return false; - for (CodeType item : this.target) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #target} (Types of resource (if a resource is referenced).) - */ - // syntactic sugar - public CodeType addTargetElement() {//2 - CodeType t = new CodeType(); - if (this.target == null) - this.target = new ArrayList(); - this.target.add(t); - return t; - } - - /** - * @param value {@link #target} (Types of resource (if a resource is referenced).) - */ - public ConformanceRestResourceSearchParamComponent addTarget(String value) { //1 - CodeType t = new CodeType(); - t.setValue(value); - if (this.target == null) - this.target = new ArrayList(); - this.target.add(t); - return this; - } - - /** - * @param value {@link #target} (Types of resource (if a resource is referenced).) - */ - public boolean hasTarget(String value) { - if (this.target == null) - return false; - for (CodeType v : this.target) - if (v.equals(value)) // code - return true; - return false; - } - - /** - * @return {@link #chain} (Chained names supported.) - */ - public List getChain() { - if (this.chain == null) - this.chain = new ArrayList(); - return this.chain; - } - - public boolean hasChain() { - if (this.chain == null) - return false; - for (StringType item : this.chain) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #chain} (Chained names supported.) - */ - // syntactic sugar - public StringType addChainElement() {//2 - StringType t = new StringType(); - if (this.chain == null) - this.chain = new ArrayList(); - this.chain.add(t); - return t; - } - - /** - * @param value {@link #chain} (Chained names supported.) - */ - public ConformanceRestResourceSearchParamComponent addChain(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.chain == null) - this.chain = new ArrayList(); - this.chain.add(t); - return this; - } - - /** - * @param value {@link #chain} (Chained names supported.) - */ - public boolean hasChain(String value) { - if (this.chain == null) - return false; - for (StringType v : this.chain) - if (v.equals(value)) // string - return true; - return false; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("name", "string", "The name of the search parameter used in the interface.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("definition", "uri", "A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter.", 0, java.lang.Integer.MAX_VALUE, definition)); - childrenList.add(new Property("type", "code", "The type of value a search parameter refers to, and how the content is interpreted.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("documentation", "string", "This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms.", 0, java.lang.Integer.MAX_VALUE, documentation)); - childrenList.add(new Property("target", "code", "Types of resource (if a resource is referenced).", 0, java.lang.Integer.MAX_VALUE, target)); - childrenList.add(new Property("chain", "string", "Chained names supported.", 0, java.lang.Integer.MAX_VALUE, chain)); - } - - public ConformanceRestResourceSearchParamComponent copy() { - ConformanceRestResourceSearchParamComponent dst = new ConformanceRestResourceSearchParamComponent(); - copyValues(dst); - dst.name = name == null ? null : name.copy(); - dst.definition = definition == null ? null : definition.copy(); - dst.type = type == null ? null : type.copy(); - dst.documentation = documentation == null ? null : documentation.copy(); - if (target != null) { - dst.target = new ArrayList(); - for (CodeType i : target) - dst.target.add(i.copy()); - }; - if (chain != null) { - dst.chain = new ArrayList(); - for (StringType i : chain) - dst.chain.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (name == null || name.isEmpty()) && (definition == null || definition.isEmpty()) - && (type == null || type.isEmpty()) && (documentation == null || documentation.isEmpty()) - && (target == null || target.isEmpty()) && (chain == null || chain.isEmpty()); - } - - } - - @Block() - public static class SystemInteractionComponent extends BackboneElement { - /** - * A coded identifier of the operation, supported by the system. - */ - @Child(name="code", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="transaction | search-system | history-system", formalDefinition="A coded identifier of the operation, supported by the system." ) - protected Enumeration code; - - /** - * Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented. - */ - @Child(name="documentation", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Anything special about operation behavior", formalDefinition="Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented." ) - protected StringType documentation; - - private static final long serialVersionUID = 510675287L; - - public SystemInteractionComponent() { - super(); - } - - public SystemInteractionComponent(Enumeration code) { - super(); - this.code = code; - } - - /** - * @return {@link #code} (A coded identifier of the operation, supported by the system.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public Enumeration getCodeElement() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SystemInteractionComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new Enumeration(); - return this.code; - } - - public boolean hasCodeElement() { - return this.code != null && !this.code.isEmpty(); - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (A coded identifier of the operation, supported by the system.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public SystemInteractionComponent setCodeElement(Enumeration value) { - this.code = value; - return this; - } - - /** - * @return A coded identifier of the operation, supported by the system. - */ - public SystemRestfulInteraction getCode() { - return this.code == null ? null : this.code.getValue(); - } - - /** - * @param value A coded identifier of the operation, supported by the system. - */ - public SystemInteractionComponent setCode(SystemRestfulInteraction value) { - if (this.code == null) - this.code = new Enumeration(SystemRestfulInteraction.ENUM_FACTORY); - this.code.setValue(value); - return this; - } - - /** - * @return {@link #documentation} (Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public StringType getDocumentationElement() { - if (this.documentation == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SystemInteractionComponent.documentation"); - else if (Configuration.doAutoCreate()) - this.documentation = new StringType(); - return this.documentation; - } - - public boolean hasDocumentationElement() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - public boolean hasDocumentation() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - /** - * @param value {@link #documentation} (Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public SystemInteractionComponent setDocumentationElement(StringType value) { - this.documentation = value; - return this; - } - - /** - * @return Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented. - */ - public String getDocumentation() { - return this.documentation == null ? null : this.documentation.getValue(); - } - - /** - * @param value Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented. - */ - public SystemInteractionComponent setDocumentation(String value) { - if (Utilities.noString(value)) - this.documentation = null; - else { - if (this.documentation == null) - this.documentation = new StringType(); - this.documentation.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "code", "A coded identifier of the operation, supported by the system.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("documentation", "string", "Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented.", 0, java.lang.Integer.MAX_VALUE, documentation)); - } - - public SystemInteractionComponent copy() { - SystemInteractionComponent dst = new SystemInteractionComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.documentation = documentation == null ? null : documentation.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (documentation == null || documentation.isEmpty()) - ; - } - - } - - @Block() - public static class ConformanceRestOperationComponent extends BackboneElement { - /** - * The name of a query, which is used in the _query parameter when the query is called. - */ - @Child(name="name", type={StringType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Name by which the operation/query is invoked", formalDefinition="The name of a query, which is used in the _query parameter when the query is called." ) - protected StringType name; - - /** - * Where the formal definition can be found. - */ - @Child(name="definition", type={OperationDefinition.class}, order=2, min=1, max=1) - @Description(shortDefinition="The the operation/query is defined", formalDefinition="Where the formal definition can be found." ) - protected Reference definition; - - /** - * The actual object that is the target of the reference (Where the formal definition can be found.) - */ - protected OperationDefinition definitionTarget; - - private static final long serialVersionUID = 122107272L; - - public ConformanceRestOperationComponent() { - super(); - } - - public ConformanceRestOperationComponent(StringType name, Reference definition) { - super(); - this.name = name; - this.definition = definition; - } - - /** - * @return {@link #name} (The name of a query, which is used in the _query parameter when the query is called.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestOperationComponent.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (The name of a query, which is used in the _query parameter when the query is called.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public ConformanceRestOperationComponent setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return The name of a query, which is used in the _query parameter when the query is called. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value The name of a query, which is used in the _query parameter when the query is called. - */ - public ConformanceRestOperationComponent setName(String value) { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - return this; - } - - /** - * @return {@link #definition} (Where the formal definition can be found.) - */ - public Reference getDefinition() { - if (this.definition == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestOperationComponent.definition"); - else if (Configuration.doAutoCreate()) - this.definition = new Reference(); - return this.definition; - } - - public boolean hasDefinition() { - return this.definition != null && !this.definition.isEmpty(); - } - - /** - * @param value {@link #definition} (Where the formal definition can be found.) - */ - public ConformanceRestOperationComponent setDefinition(Reference value) { - this.definition = value; - return this; - } - - /** - * @return {@link #definition} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Where the formal definition can be found.) - */ - public OperationDefinition getDefinitionTarget() { - if (this.definitionTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceRestOperationComponent.definition"); - else if (Configuration.doAutoCreate()) - this.definitionTarget = new OperationDefinition(); - return this.definitionTarget; - } - - /** - * @param value {@link #definition} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Where the formal definition can be found.) - */ - public ConformanceRestOperationComponent setDefinitionTarget(OperationDefinition value) { - this.definitionTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("name", "string", "The name of a query, which is used in the _query parameter when the query is called.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("definition", "Reference(OperationDefinition)", "Where the formal definition can be found.", 0, java.lang.Integer.MAX_VALUE, definition)); - } - - public ConformanceRestOperationComponent copy() { - ConformanceRestOperationComponent dst = new ConformanceRestOperationComponent(); - copyValues(dst); - dst.name = name == null ? null : name.copy(); - dst.definition = definition == null ? null : definition.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (name == null || name.isEmpty()) && (definition == null || definition.isEmpty()) - ; - } - - } - - @Block() - public static class ConformanceMessagingComponent extends BackboneElement { - /** - * An address to which messages and/or replies are to be sent. - */ - @Child(name="endpoint", type={UriType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Actual endpoint being described", formalDefinition="An address to which messages and/or replies are to be sent." ) - protected UriType endpoint; - - /** - * Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender). - */ - @Child(name="reliableCache", type={IntegerType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Reliable Message Cache Length (min)", formalDefinition="Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender)." ) - protected IntegerType reliableCache; - - /** - * Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner. - */ - @Child(name="documentation", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Messaging interface behavior details", formalDefinition="Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner." ) - protected StringType documentation; - - /** - * A description of the solution's support for an event at this end point. - */ - @Child(name="event", type={}, order=4, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Declare support for this event", formalDefinition="A description of the solution's support for an event at this end point." ) - protected List event; - - private static final long serialVersionUID = -217151442L; - - public ConformanceMessagingComponent() { - super(); - } - - /** - * @return {@link #endpoint} (An address to which messages and/or replies are to be sent.). This is the underlying object with id, value and extensions. The accessor "getEndpoint" gives direct access to the value - */ - public UriType getEndpointElement() { - if (this.endpoint == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceMessagingComponent.endpoint"); - else if (Configuration.doAutoCreate()) - this.endpoint = new UriType(); - return this.endpoint; - } - - public boolean hasEndpointElement() { - return this.endpoint != null && !this.endpoint.isEmpty(); - } - - public boolean hasEndpoint() { - return this.endpoint != null && !this.endpoint.isEmpty(); - } - - /** - * @param value {@link #endpoint} (An address to which messages and/or replies are to be sent.). This is the underlying object with id, value and extensions. The accessor "getEndpoint" gives direct access to the value - */ - public ConformanceMessagingComponent setEndpointElement(UriType value) { - this.endpoint = value; - return this; - } - - /** - * @return An address to which messages and/or replies are to be sent. - */ - public String getEndpoint() { - return this.endpoint == null ? null : this.endpoint.getValue(); - } - - /** - * @param value An address to which messages and/or replies are to be sent. - */ - public ConformanceMessagingComponent setEndpoint(String value) { - if (Utilities.noString(value)) - this.endpoint = null; - else { - if (this.endpoint == null) - this.endpoint = new UriType(); - this.endpoint.setValue(value); - } - return this; - } - - /** - * @return {@link #reliableCache} (Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender).). This is the underlying object with id, value and extensions. The accessor "getReliableCache" gives direct access to the value - */ - public IntegerType getReliableCacheElement() { - if (this.reliableCache == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceMessagingComponent.reliableCache"); - else if (Configuration.doAutoCreate()) - this.reliableCache = new IntegerType(); - return this.reliableCache; - } - - public boolean hasReliableCacheElement() { - return this.reliableCache != null && !this.reliableCache.isEmpty(); - } - - public boolean hasReliableCache() { - return this.reliableCache != null && !this.reliableCache.isEmpty(); - } - - /** - * @param value {@link #reliableCache} (Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender).). This is the underlying object with id, value and extensions. The accessor "getReliableCache" gives direct access to the value - */ - public ConformanceMessagingComponent setReliableCacheElement(IntegerType value) { - this.reliableCache = value; - return this; - } - - /** - * @return Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender). - */ - public int getReliableCache() { - return this.reliableCache == null ? null : this.reliableCache.getValue(); - } - - /** - * @param value Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender). - */ - public ConformanceMessagingComponent setReliableCache(int value) { - if (value == -1) - this.reliableCache = null; - else { - if (this.reliableCache == null) - this.reliableCache = new IntegerType(); - this.reliableCache.setValue(value); - } - return this; - } - - /** - * @return {@link #documentation} (Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public StringType getDocumentationElement() { - if (this.documentation == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceMessagingComponent.documentation"); - else if (Configuration.doAutoCreate()) - this.documentation = new StringType(); - return this.documentation; - } - - public boolean hasDocumentationElement() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - public boolean hasDocumentation() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - /** - * @param value {@link #documentation} (Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public ConformanceMessagingComponent setDocumentationElement(StringType value) { - this.documentation = value; - return this; - } - - /** - * @return Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner. - */ - public String getDocumentation() { - return this.documentation == null ? null : this.documentation.getValue(); - } - - /** - * @param value Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner. - */ - public ConformanceMessagingComponent setDocumentation(String value) { - if (Utilities.noString(value)) - this.documentation = null; - else { - if (this.documentation == null) - this.documentation = new StringType(); - this.documentation.setValue(value); - } - return this; - } - - /** - * @return {@link #event} (A description of the solution's support for an event at this end point.) - */ - public List getEvent() { - if (this.event == null) - this.event = new ArrayList(); - return this.event; - } - - public boolean hasEvent() { - if (this.event == null) - return false; - for (ConformanceMessagingEventComponent item : this.event) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #event} (A description of the solution's support for an event at this end point.) - */ - // syntactic sugar - public ConformanceMessagingEventComponent addEvent() { //3 - ConformanceMessagingEventComponent t = new ConformanceMessagingEventComponent(); - if (this.event == null) - this.event = new ArrayList(); - this.event.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("endpoint", "uri", "An address to which messages and/or replies are to be sent.", 0, java.lang.Integer.MAX_VALUE, endpoint)); - childrenList.add(new Property("reliableCache", "integer", "Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender).", 0, java.lang.Integer.MAX_VALUE, reliableCache)); - childrenList.add(new Property("documentation", "string", "Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner.", 0, java.lang.Integer.MAX_VALUE, documentation)); - childrenList.add(new Property("event", "", "A description of the solution's support for an event at this end point.", 0, java.lang.Integer.MAX_VALUE, event)); - } - - public ConformanceMessagingComponent copy() { - ConformanceMessagingComponent dst = new ConformanceMessagingComponent(); - copyValues(dst); - dst.endpoint = endpoint == null ? null : endpoint.copy(); - dst.reliableCache = reliableCache == null ? null : reliableCache.copy(); - dst.documentation = documentation == null ? null : documentation.copy(); - if (event != null) { - dst.event = new ArrayList(); - for (ConformanceMessagingEventComponent i : event) - dst.event.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (endpoint == null || endpoint.isEmpty()) && (reliableCache == null || reliableCache.isEmpty()) - && (documentation == null || documentation.isEmpty()) && (event == null || event.isEmpty()) - ; - } - - } - - @Block() - public static class ConformanceMessagingEventComponent extends BackboneElement { - /** - * A coded identifier of a supported messaging event. - */ - @Child(name="code", type={Coding.class}, order=1, min=1, max=1) - @Description(shortDefinition="Event type", formalDefinition="A coded identifier of a supported messaging event." ) - protected Coding code; - - /** - * The impact of the content of the message. - */ - @Child(name="category", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Consequence | Currency | Notification", formalDefinition="The impact of the content of the message." ) - protected Enumeration category; - - /** - * The mode of this event declaration - whether application is sender or receiver. - */ - @Child(name="mode", type={CodeType.class}, order=3, min=1, max=1) - @Description(shortDefinition="sender | receiver", formalDefinition="The mode of this event declaration - whether application is sender or receiver." ) - protected Enumeration mode; - - /** - * A list of the messaging transport protocol(s) identifiers, supported by this endpoint. - */ - @Child(name="protocol", type={Coding.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="http | ftp | mllp +", formalDefinition="A list of the messaging transport protocol(s) identifiers, supported by this endpoint." ) - protected List protocol; - - /** - * A resource associated with the event. This is the resource that defines the event. - */ - @Child(name="focus", type={CodeType.class}, order=5, min=1, max=1) - @Description(shortDefinition="Resource that's focus of message", formalDefinition="A resource associated with the event. This is the resource that defines the event." ) - protected CodeType focus; - - /** - * Information about the request for this event. - */ - @Child(name="request", type={Profile.class}, order=6, min=1, max=1) - @Description(shortDefinition="Profile that describes the request", formalDefinition="Information about the request for this event." ) - protected Reference request; - - /** - * The actual object that is the target of the reference (Information about the request for this event.) - */ - protected Profile requestTarget; - - /** - * Information about the response for this event. - */ - @Child(name="response", type={Profile.class}, order=7, min=1, max=1) - @Description(shortDefinition="Profile that describes the response", formalDefinition="Information about the response for this event." ) - protected Reference response; - - /** - * The actual object that is the target of the reference (Information about the response for this event.) - */ - protected Profile responseTarget; - - /** - * Guidance on how this event is handled, such as internal system trigger points, business rules, etc. - */ - @Child(name="documentation", type={StringType.class}, order=8, min=0, max=1) - @Description(shortDefinition="Endpoint-specific event documentation", formalDefinition="Guidance on how this event is handled, such as internal system trigger points, business rules, etc." ) - protected StringType documentation; - - private static final long serialVersionUID = 758007981L; - - public ConformanceMessagingEventComponent() { - super(); - } - - public ConformanceMessagingEventComponent(Coding code, Enumeration mode, CodeType focus, Reference request, Reference response) { - super(); - this.code = code; - this.mode = mode; - this.focus = focus; - this.request = request; - this.response = response; - } - - /** - * @return {@link #code} (A coded identifier of a supported messaging event.) - */ - public Coding getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new Coding(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (A coded identifier of a supported messaging event.) - */ - public ConformanceMessagingEventComponent setCode(Coding value) { - this.code = value; - return this; - } - - /** - * @return {@link #category} (The impact of the content of the message.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value - */ - public Enumeration getCategoryElement() { - if (this.category == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.category"); - else if (Configuration.doAutoCreate()) - this.category = new Enumeration(); - return this.category; - } - - public boolean hasCategoryElement() { - return this.category != null && !this.category.isEmpty(); - } - - public boolean hasCategory() { - return this.category != null && !this.category.isEmpty(); - } - - /** - * @param value {@link #category} (The impact of the content of the message.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value - */ - public ConformanceMessagingEventComponent setCategoryElement(Enumeration value) { - this.category = value; - return this; - } - - /** - * @return The impact of the content of the message. - */ - public MessageSignificanceCategory getCategory() { - return this.category == null ? null : this.category.getValue(); - } - - /** - * @param value The impact of the content of the message. - */ - public ConformanceMessagingEventComponent setCategory(MessageSignificanceCategory value) { - if (value == null) - this.category = null; - else { - if (this.category == null) - this.category = new Enumeration(MessageSignificanceCategory.ENUM_FACTORY); - this.category.setValue(value); - } - return this; - } - - /** - * @return {@link #mode} (The mode of this event declaration - whether application is sender or receiver.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public Enumeration getModeElement() { - if (this.mode == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.mode"); - else if (Configuration.doAutoCreate()) - this.mode = new Enumeration(); - return this.mode; - } - - public boolean hasModeElement() { - return this.mode != null && !this.mode.isEmpty(); - } - - public boolean hasMode() { - return this.mode != null && !this.mode.isEmpty(); - } - - /** - * @param value {@link #mode} (The mode of this event declaration - whether application is sender or receiver.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public ConformanceMessagingEventComponent setModeElement(Enumeration value) { - this.mode = value; - return this; - } - - /** - * @return The mode of this event declaration - whether application is sender or receiver. - */ - public MessageConformanceEventMode getMode() { - return this.mode == null ? null : this.mode.getValue(); - } - - /** - * @param value The mode of this event declaration - whether application is sender or receiver. - */ - public ConformanceMessagingEventComponent setMode(MessageConformanceEventMode value) { - if (this.mode == null) - this.mode = new Enumeration(MessageConformanceEventMode.ENUM_FACTORY); - this.mode.setValue(value); - return this; - } - - /** - * @return {@link #protocol} (A list of the messaging transport protocol(s) identifiers, supported by this endpoint.) - */ - public List getProtocol() { - if (this.protocol == null) - this.protocol = new ArrayList(); - return this.protocol; - } - - public boolean hasProtocol() { - if (this.protocol == null) - return false; - for (Coding item : this.protocol) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #protocol} (A list of the messaging transport protocol(s) identifiers, supported by this endpoint.) - */ - // syntactic sugar - public Coding addProtocol() { //3 - Coding t = new Coding(); - if (this.protocol == null) - this.protocol = new ArrayList(); - this.protocol.add(t); - return t; - } - - /** - * @return {@link #focus} (A resource associated with the event. This is the resource that defines the event.). This is the underlying object with id, value and extensions. The accessor "getFocus" gives direct access to the value - */ - public CodeType getFocusElement() { - if (this.focus == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.focus"); - else if (Configuration.doAutoCreate()) - this.focus = new CodeType(); - return this.focus; - } - - public boolean hasFocusElement() { - return this.focus != null && !this.focus.isEmpty(); - } - - public boolean hasFocus() { - return this.focus != null && !this.focus.isEmpty(); - } - - /** - * @param value {@link #focus} (A resource associated with the event. This is the resource that defines the event.). This is the underlying object with id, value and extensions. The accessor "getFocus" gives direct access to the value - */ - public ConformanceMessagingEventComponent setFocusElement(CodeType value) { - this.focus = value; - return this; - } - - /** - * @return A resource associated with the event. This is the resource that defines the event. - */ - public String getFocus() { - return this.focus == null ? null : this.focus.getValue(); - } - - /** - * @param value A resource associated with the event. This is the resource that defines the event. - */ - public ConformanceMessagingEventComponent setFocus(String value) { - if (this.focus == null) - this.focus = new CodeType(); - this.focus.setValue(value); - return this; - } - - /** - * @return {@link #request} (Information about the request for this event.) - */ - public Reference getRequest() { - if (this.request == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.request"); - else if (Configuration.doAutoCreate()) - this.request = new Reference(); - return this.request; - } - - public boolean hasRequest() { - return this.request != null && !this.request.isEmpty(); - } - - /** - * @param value {@link #request} (Information about the request for this event.) - */ - public ConformanceMessagingEventComponent setRequest(Reference value) { - this.request = value; - return this; - } - - /** - * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Information about the request for this event.) - */ - public Profile getRequestTarget() { - if (this.requestTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.request"); - else if (Configuration.doAutoCreate()) - this.requestTarget = new Profile(); - return this.requestTarget; - } - - /** - * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Information about the request for this event.) - */ - public ConformanceMessagingEventComponent setRequestTarget(Profile value) { - this.requestTarget = value; - return this; - } - - /** - * @return {@link #response} (Information about the response for this event.) - */ - public Reference getResponse() { - if (this.response == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.response"); - else if (Configuration.doAutoCreate()) - this.response = new Reference(); - return this.response; - } - - public boolean hasResponse() { - return this.response != null && !this.response.isEmpty(); - } - - /** - * @param value {@link #response} (Information about the response for this event.) - */ - public ConformanceMessagingEventComponent setResponse(Reference value) { - this.response = value; - return this; - } - - /** - * @return {@link #response} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Information about the response for this event.) - */ - public Profile getResponseTarget() { - if (this.responseTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.response"); - else if (Configuration.doAutoCreate()) - this.responseTarget = new Profile(); - return this.responseTarget; - } - - /** - * @param value {@link #response} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Information about the response for this event.) - */ - public ConformanceMessagingEventComponent setResponseTarget(Profile value) { - this.responseTarget = value; - return this; - } - - /** - * @return {@link #documentation} (Guidance on how this event is handled, such as internal system trigger points, business rules, etc.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public StringType getDocumentationElement() { - if (this.documentation == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.documentation"); - else if (Configuration.doAutoCreate()) - this.documentation = new StringType(); - return this.documentation; - } - - public boolean hasDocumentationElement() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - public boolean hasDocumentation() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - /** - * @param value {@link #documentation} (Guidance on how this event is handled, such as internal system trigger points, business rules, etc.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public ConformanceMessagingEventComponent setDocumentationElement(StringType value) { - this.documentation = value; - return this; - } - - /** - * @return Guidance on how this event is handled, such as internal system trigger points, business rules, etc. - */ - public String getDocumentation() { - return this.documentation == null ? null : this.documentation.getValue(); - } - - /** - * @param value Guidance on how this event is handled, such as internal system trigger points, business rules, etc. - */ - public ConformanceMessagingEventComponent setDocumentation(String value) { - if (Utilities.noString(value)) - this.documentation = null; - else { - if (this.documentation == null) - this.documentation = new StringType(); - this.documentation.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "Coding", "A coded identifier of a supported messaging event.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("category", "code", "The impact of the content of the message.", 0, java.lang.Integer.MAX_VALUE, category)); - childrenList.add(new Property("mode", "code", "The mode of this event declaration - whether application is sender or receiver.", 0, java.lang.Integer.MAX_VALUE, mode)); - childrenList.add(new Property("protocol", "Coding", "A list of the messaging transport protocol(s) identifiers, supported by this endpoint.", 0, java.lang.Integer.MAX_VALUE, protocol)); - childrenList.add(new Property("focus", "code", "A resource associated with the event. This is the resource that defines the event.", 0, java.lang.Integer.MAX_VALUE, focus)); - childrenList.add(new Property("request", "Reference(Profile)", "Information about the request for this event.", 0, java.lang.Integer.MAX_VALUE, request)); - childrenList.add(new Property("response", "Reference(Profile)", "Information about the response for this event.", 0, java.lang.Integer.MAX_VALUE, response)); - childrenList.add(new Property("documentation", "string", "Guidance on how this event is handled, such as internal system trigger points, business rules, etc.", 0, java.lang.Integer.MAX_VALUE, documentation)); - } - - public ConformanceMessagingEventComponent copy() { - ConformanceMessagingEventComponent dst = new ConformanceMessagingEventComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.category = category == null ? null : category.copy(); - dst.mode = mode == null ? null : mode.copy(); - if (protocol != null) { - dst.protocol = new ArrayList(); - for (Coding i : protocol) - dst.protocol.add(i.copy()); - }; - dst.focus = focus == null ? null : focus.copy(); - dst.request = request == null ? null : request.copy(); - dst.response = response == null ? null : response.copy(); - dst.documentation = documentation == null ? null : documentation.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (category == null || category.isEmpty()) - && (mode == null || mode.isEmpty()) && (protocol == null || protocol.isEmpty()) && (focus == null || focus.isEmpty()) - && (request == null || request.isEmpty()) && (response == null || response.isEmpty()) && (documentation == null || documentation.isEmpty()) - ; - } - - } - - @Block() - public static class ConformanceDocumentComponent extends BackboneElement { - /** - * Mode of this document declaration - whether application is producer or consumer. - */ - @Child(name="mode", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="producer | consumer", formalDefinition="Mode of this document declaration - whether application is producer or consumer." ) - protected Enumeration mode; - - /** - * A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc. - */ - @Child(name="documentation", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Description of document support", formalDefinition="A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc." ) - protected StringType documentation; - - /** - * A constraint on a resource used in the document. - */ - @Child(name="profile", type={Profile.class}, order=3, min=1, max=1) - @Description(shortDefinition="Constraint on a resource used in the document", formalDefinition="A constraint on a resource used in the document." ) - protected Reference profile; - - /** - * The actual object that is the target of the reference (A constraint on a resource used in the document.) - */ - protected Profile profileTarget; - - private static final long serialVersionUID = 437404016L; - - public ConformanceDocumentComponent() { - super(); - } - - public ConformanceDocumentComponent(Enumeration mode, Reference profile) { - super(); - this.mode = mode; - this.profile = profile; - } - - /** - * @return {@link #mode} (Mode of this document declaration - whether application is producer or consumer.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public Enumeration getModeElement() { - if (this.mode == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceDocumentComponent.mode"); - else if (Configuration.doAutoCreate()) - this.mode = new Enumeration(); - return this.mode; - } - - public boolean hasModeElement() { - return this.mode != null && !this.mode.isEmpty(); - } - - public boolean hasMode() { - return this.mode != null && !this.mode.isEmpty(); - } - - /** - * @param value {@link #mode} (Mode of this document declaration - whether application is producer or consumer.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public ConformanceDocumentComponent setModeElement(Enumeration value) { - this.mode = value; - return this; - } - - /** - * @return Mode of this document declaration - whether application is producer or consumer. - */ - public DocumentMode getMode() { - return this.mode == null ? null : this.mode.getValue(); - } - - /** - * @param value Mode of this document declaration - whether application is producer or consumer. - */ - public ConformanceDocumentComponent setMode(DocumentMode value) { - if (this.mode == null) - this.mode = new Enumeration(DocumentMode.ENUM_FACTORY); - this.mode.setValue(value); - return this; - } - - /** - * @return {@link #documentation} (A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public StringType getDocumentationElement() { - if (this.documentation == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceDocumentComponent.documentation"); - else if (Configuration.doAutoCreate()) - this.documentation = new StringType(); - return this.documentation; - } - - public boolean hasDocumentationElement() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - public boolean hasDocumentation() { - return this.documentation != null && !this.documentation.isEmpty(); - } - - /** - * @param value {@link #documentation} (A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value - */ - public ConformanceDocumentComponent setDocumentationElement(StringType value) { - this.documentation = value; - return this; - } - - /** - * @return A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc. - */ - public String getDocumentation() { - return this.documentation == null ? null : this.documentation.getValue(); - } - - /** - * @param value A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc. - */ - public ConformanceDocumentComponent setDocumentation(String value) { - if (Utilities.noString(value)) - this.documentation = null; - else { - if (this.documentation == null) - this.documentation = new StringType(); - this.documentation.setValue(value); - } - return this; - } - - /** - * @return {@link #profile} (A constraint on a resource used in the document.) - */ - public Reference getProfile() { - if (this.profile == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceDocumentComponent.profile"); - else if (Configuration.doAutoCreate()) - this.profile = new Reference(); - return this.profile; - } - - public boolean hasProfile() { - return this.profile != null && !this.profile.isEmpty(); - } - - /** - * @param value {@link #profile} (A constraint on a resource used in the document.) - */ - public ConformanceDocumentComponent setProfile(Reference value) { - this.profile = value; - return this; - } - - /** - * @return {@link #profile} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A constraint on a resource used in the document.) - */ - public Profile getProfileTarget() { - if (this.profileTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ConformanceDocumentComponent.profile"); - else if (Configuration.doAutoCreate()) - this.profileTarget = new Profile(); - return this.profileTarget; - } - - /** - * @param value {@link #profile} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A constraint on a resource used in the document.) - */ - public ConformanceDocumentComponent setProfileTarget(Profile value) { - this.profileTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("mode", "code", "Mode of this document declaration - whether application is producer or consumer.", 0, java.lang.Integer.MAX_VALUE, mode)); - childrenList.add(new Property("documentation", "string", "A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc.", 0, java.lang.Integer.MAX_VALUE, documentation)); - childrenList.add(new Property("profile", "Reference(Profile)", "A constraint on a resource used in the document.", 0, java.lang.Integer.MAX_VALUE, profile)); - } - - public ConformanceDocumentComponent copy() { - ConformanceDocumentComponent dst = new ConformanceDocumentComponent(); - copyValues(dst); - dst.mode = mode == null ? null : mode.copy(); - dst.documentation = documentation == null ? null : documentation.copy(); - dst.profile = profile == null ? null : profile.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (mode == null || mode.isEmpty()) && (documentation == null || documentation.isEmpty()) - && (profile == null || profile.isEmpty()); - } - - } - - /** - * The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI). - */ - @Child(name="identifier", type={StringType.class}, order=-1, min=0, max=1) - @Description(shortDefinition="Logical id to reference this statement", formalDefinition="The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI)." ) - protected StringType identifier; - - /** - * The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. - */ - @Child(name="version", type={StringType.class}, order=0, min=0, max=1) - @Description(shortDefinition="Logical id for this version of the statement", formalDefinition="The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp." ) - protected StringType version; - - /** - * A free text natural language name identifying the conformance statement. - */ - @Child(name="name", type={StringType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Informal name for this conformance statement", formalDefinition="A free text natural language name identifying the conformance statement." ) - protected StringType name; - - /** - * Name of Organization publishing this conformance statement. - */ - @Child(name="publisher", type={StringType.class}, order=2, min=1, max=1) - @Description(shortDefinition="Publishing Organization", formalDefinition="Name of Organization publishing this conformance statement." ) - protected StringType publisher; - - /** - * Contacts for Organization relevant to this conformance statement. The contacts may be a website, email, phone numbers, etc. - */ - @Child(name="telecom", type={ContactPoint.class}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Contacts for Organization", formalDefinition="Contacts for Organization relevant to this conformance statement. The contacts may be a website, email, phone numbers, etc." ) - protected List telecom; - - /** - * A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP. - */ - @Child(name="description", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Human description of the conformance statement", formalDefinition="A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP." ) - protected StringType description; - - /** - * The status of this conformance statement. - */ - @Child(name="status", type={CodeType.class}, order=5, min=0, max=1) - @Description(shortDefinition="draft | active | retired", formalDefinition="The status of this conformance statement." ) - protected Enumeration status; - - /** - * A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. - */ - @Child(name="experimental", type={BooleanType.class}, order=6, min=0, max=1) - @Description(shortDefinition="If for testing purposes, not real usage", formalDefinition="A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage." ) - protected BooleanType experimental; - - /** - * The date (and optionally time) when the conformance statement was published. - */ - @Child(name="date", type={DateTimeType.class}, order=7, min=1, max=1) - @Description(shortDefinition="Publication Date(/time)", formalDefinition="The date (and optionally time) when the conformance statement was published." ) - protected DateTimeType date; - - /** - * Software that is covered by this conformance statement. It is used when the profile describes the capabilities of a particular software version, independent of an installation. - */ - @Child(name="software", type={}, order=8, min=0, max=1) - @Description(shortDefinition="Software that is covered by this conformance statement", formalDefinition="Software that is covered by this conformance statement. It is used when the profile describes the capabilities of a particular software version, independent of an installation." ) - protected ConformanceSoftwareComponent software; - - /** - * Identifies a specific implementation instance that is described by the conformance statement - i.e. a particular installation, rather than the capabilities of a software program. - */ - @Child(name="implementation", type={}, order=9, min=0, max=1) - @Description(shortDefinition="If this describes a specific instance", formalDefinition="Identifies a specific implementation instance that is described by the conformance statement - i.e. a particular installation, rather than the capabilities of a software program." ) - protected ConformanceImplementationComponent implementation; - - /** - * The version of the FHIR specification on which this conformance statement is based. - */ - @Child(name="fhirVersion", type={IdType.class}, order=10, min=1, max=1) - @Description(shortDefinition="FHIR Version", formalDefinition="The version of the FHIR specification on which this conformance statement is based." ) - protected IdType fhirVersion; - - /** - * A flag that indicates whether the application accepts unknown elements as part of a resource. - */ - @Child(name="acceptUnknown", type={BooleanType.class}, order=11, min=1, max=1) - @Description(shortDefinition="True if application accepts unknown elements", formalDefinition="A flag that indicates whether the application accepts unknown elements as part of a resource." ) - protected BooleanType acceptUnknown; - - /** - * A list of the formats supported by this implementation. - */ - @Child(name="format", type={CodeType.class}, order=12, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="formats supported (xml | json | mime type)", formalDefinition="A list of the formats supported by this implementation." ) - protected List format; - - /** - * A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile. - */ - @Child(name="profile", type={Profile.class}, order=13, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Profiles supported by the system", formalDefinition="A list of profiles supported by the system. For a server, 'supported by the system' means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile." ) - protected List profile; - /** - * The actual objects that are the target of the reference (A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.) - */ - protected List profileTarget; - - - /** - * A definition of the restful capabilities of the solution, if any. - */ - @Child(name="rest", type={}, order=14, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="If the endpoint is a RESTful one", formalDefinition="A definition of the restful capabilities of the solution, if any." ) - protected List rest; - - /** - * A description of the messaging capabilities of the solution. - */ - @Child(name="messaging", type={}, order=15, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="If messaging is supported", formalDefinition="A description of the messaging capabilities of the solution." ) - protected List messaging; - - /** - * A document definition. - */ - @Child(name="document", type={}, order=16, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Document definition", formalDefinition="A document definition." ) - protected List document; - - private static final long serialVersionUID = 1215207759L; - - public Conformance() { - super(); - } - - public Conformance(StringType publisher, DateTimeType date, IdType fhirVersion, BooleanType acceptUnknown) { - super(); - this.publisher = publisher; - this.date = date; - this.fhirVersion = fhirVersion; - this.acceptUnknown = acceptUnknown; - } - - /** - * @return {@link #identifier} (The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).). This is the underlying object with id, value and extensions. The accessor "getIdentifier" gives direct access to the value - */ - public StringType getIdentifierElement() { - if (this.identifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Conformance.identifier"); - else if (Configuration.doAutoCreate()) - this.identifier = new StringType(); - return this.identifier; - } - - public boolean hasIdentifierElement() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - public boolean hasIdentifier() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - /** - * @param value {@link #identifier} (The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).). This is the underlying object with id, value and extensions. The accessor "getIdentifier" gives direct access to the value - */ - public Conformance setIdentifierElement(StringType value) { - this.identifier = value; - return this; - } - - /** - * @return The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI). - */ - public String getIdentifier() { - return this.identifier == null ? null : this.identifier.getValue(); - } - - /** - * @param value The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI). - */ - public Conformance setIdentifier(String value) { - if (Utilities.noString(value)) - this.identifier = null; - else { - if (this.identifier == null) - this.identifier = new StringType(); - this.identifier.setValue(value); - } - return this; - } - - /** - * @return {@link #version} (The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value - */ - public StringType getVersionElement() { - if (this.version == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Conformance.version"); - else if (Configuration.doAutoCreate()) - this.version = new StringType(); - return this.version; - } - - public boolean hasVersionElement() { - return this.version != null && !this.version.isEmpty(); - } - - public boolean hasVersion() { - return this.version != null && !this.version.isEmpty(); - } - - /** - * @param value {@link #version} (The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value - */ - public Conformance setVersionElement(StringType value) { - this.version = value; - return this; - } - - /** - * @return The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. - */ - public String getVersion() { - return this.version == null ? null : this.version.getValue(); - } - - /** - * @param value The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. - */ - public Conformance setVersion(String value) { - if (Utilities.noString(value)) - this.version = null; - else { - if (this.version == null) - this.version = new StringType(); - this.version.setValue(value); - } - return this; - } - - /** - * @return {@link #name} (A free text natural language name identifying the conformance statement.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Conformance.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (A free text natural language name identifying the conformance statement.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public Conformance setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return A free text natural language name identifying the conformance statement. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value A free text natural language name identifying the conformance statement. - */ - public Conformance setName(String value) { - if (Utilities.noString(value)) - this.name = null; - else { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - } - return this; - } - - /** - * @return {@link #publisher} (Name of Organization publishing this conformance statement.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value - */ - public StringType getPublisherElement() { - if (this.publisher == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Conformance.publisher"); - else if (Configuration.doAutoCreate()) - this.publisher = new StringType(); - return this.publisher; - } - - public boolean hasPublisherElement() { - return this.publisher != null && !this.publisher.isEmpty(); - } - - public boolean hasPublisher() { - return this.publisher != null && !this.publisher.isEmpty(); - } - - /** - * @param value {@link #publisher} (Name of Organization publishing this conformance statement.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value - */ - public Conformance setPublisherElement(StringType value) { - this.publisher = value; - return this; - } - - /** - * @return Name of Organization publishing this conformance statement. - */ - public String getPublisher() { - return this.publisher == null ? null : this.publisher.getValue(); - } - - /** - * @param value Name of Organization publishing this conformance statement. - */ - public Conformance setPublisher(String value) { - if (this.publisher == null) - this.publisher = new StringType(); - this.publisher.setValue(value); - return this; - } - - /** - * @return {@link #telecom} (Contacts for Organization relevant to this conformance statement. The contacts may be a website, email, phone numbers, etc.) - */ - public List getTelecom() { - if (this.telecom == null) - this.telecom = new ArrayList(); - return this.telecom; - } - - public boolean hasTelecom() { - if (this.telecom == null) - return false; - for (ContactPoint item : this.telecom) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #telecom} (Contacts for Organization relevant to this conformance statement. The contacts may be a website, email, phone numbers, etc.) - */ - // syntactic sugar - public ContactPoint addTelecom() { //3 - ContactPoint t = new ContactPoint(); - if (this.telecom == null) - this.telecom = new ArrayList(); - this.telecom.add(t); - return t; - } - - /** - * @return {@link #description} (A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Conformance.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public Conformance setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP. - */ - public Conformance setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #status} (The status of this conformance statement.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Conformance.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of this conformance statement.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Conformance setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of this conformance statement. - */ - public ConformanceStatementStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of this conformance statement. - */ - public Conformance setStatus(ConformanceStatementStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(ConformanceStatementStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #experimental} (A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value - */ - public BooleanType getExperimentalElement() { - if (this.experimental == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Conformance.experimental"); - else if (Configuration.doAutoCreate()) - this.experimental = new BooleanType(); - return this.experimental; - } - - public boolean hasExperimentalElement() { - return this.experimental != null && !this.experimental.isEmpty(); - } - - public boolean hasExperimental() { - return this.experimental != null && !this.experimental.isEmpty(); - } - - /** - * @param value {@link #experimental} (A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value - */ - public Conformance setExperimentalElement(BooleanType value) { - this.experimental = value; - return this; - } - - /** - * @return A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. - */ - public boolean getExperimental() { - return this.experimental == null ? false : this.experimental.getValue(); - } - - /** - * @param value A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. - */ - public Conformance setExperimental(boolean value) { - if (value == false) - this.experimental = null; - else { - if (this.experimental == null) - this.experimental = new BooleanType(); - this.experimental.setValue(value); - } - return this; - } - - /** - * @return {@link #date} (The date (and optionally time) when the conformance statement was published.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Conformance.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (The date (and optionally time) when the conformance statement was published.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public Conformance setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return The date (and optionally time) when the conformance statement was published. - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value The date (and optionally time) when the conformance statement was published. - */ - public Conformance setDate(Date value) { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - return this; - } - - /** - * @return {@link #software} (Software that is covered by this conformance statement. It is used when the profile describes the capabilities of a particular software version, independent of an installation.) - */ - public ConformanceSoftwareComponent getSoftware() { - if (this.software == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Conformance.software"); - else if (Configuration.doAutoCreate()) - this.software = new ConformanceSoftwareComponent(); - return this.software; - } - - public boolean hasSoftware() { - return this.software != null && !this.software.isEmpty(); - } - - /** - * @param value {@link #software} (Software that is covered by this conformance statement. It is used when the profile describes the capabilities of a particular software version, independent of an installation.) - */ - public Conformance setSoftware(ConformanceSoftwareComponent value) { - this.software = value; - return this; - } - - /** - * @return {@link #implementation} (Identifies a specific implementation instance that is described by the conformance statement - i.e. a particular installation, rather than the capabilities of a software program.) - */ - public ConformanceImplementationComponent getImplementation() { - if (this.implementation == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Conformance.implementation"); - else if (Configuration.doAutoCreate()) - this.implementation = new ConformanceImplementationComponent(); - return this.implementation; - } - - public boolean hasImplementation() { - return this.implementation != null && !this.implementation.isEmpty(); - } - - /** - * @param value {@link #implementation} (Identifies a specific implementation instance that is described by the conformance statement - i.e. a particular installation, rather than the capabilities of a software program.) - */ - public Conformance setImplementation(ConformanceImplementationComponent value) { - this.implementation = value; - return this; - } - - /** - * @return {@link #fhirVersion} (The version of the FHIR specification on which this conformance statement is based.). This is the underlying object with id, value and extensions. The accessor "getFhirVersion" gives direct access to the value - */ - public IdType getFhirVersionElement() { - if (this.fhirVersion == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Conformance.fhirVersion"); - else if (Configuration.doAutoCreate()) - this.fhirVersion = new IdType(); - return this.fhirVersion; - } - - public boolean hasFhirVersionElement() { - return this.fhirVersion != null && !this.fhirVersion.isEmpty(); - } - - public boolean hasFhirVersion() { - return this.fhirVersion != null && !this.fhirVersion.isEmpty(); - } - - /** - * @param value {@link #fhirVersion} (The version of the FHIR specification on which this conformance statement is based.). This is the underlying object with id, value and extensions. The accessor "getFhirVersion" gives direct access to the value - */ - public Conformance setFhirVersionElement(IdType value) { - this.fhirVersion = value; - return this; - } - - /** - * @return The version of the FHIR specification on which this conformance statement is based. - */ - public String getFhirVersion() { - return this.fhirVersion == null ? null : this.fhirVersion.getValue(); - } - - /** - * @param value The version of the FHIR specification on which this conformance statement is based. - */ - public Conformance setFhirVersion(String value) { - if (this.fhirVersion == null) - this.fhirVersion = new IdType(); - this.fhirVersion.setValue(value); - return this; - } - - /** - * @return {@link #acceptUnknown} (A flag that indicates whether the application accepts unknown elements as part of a resource.). This is the underlying object with id, value and extensions. The accessor "getAcceptUnknown" gives direct access to the value - */ - public BooleanType getAcceptUnknownElement() { - if (this.acceptUnknown == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Conformance.acceptUnknown"); - else if (Configuration.doAutoCreate()) - this.acceptUnknown = new BooleanType(); - return this.acceptUnknown; - } - - public boolean hasAcceptUnknownElement() { - return this.acceptUnknown != null && !this.acceptUnknown.isEmpty(); - } - - public boolean hasAcceptUnknown() { - return this.acceptUnknown != null && !this.acceptUnknown.isEmpty(); - } - - /** - * @param value {@link #acceptUnknown} (A flag that indicates whether the application accepts unknown elements as part of a resource.). This is the underlying object with id, value and extensions. The accessor "getAcceptUnknown" gives direct access to the value - */ - public Conformance setAcceptUnknownElement(BooleanType value) { - this.acceptUnknown = value; - return this; - } - - /** - * @return A flag that indicates whether the application accepts unknown elements as part of a resource. - */ - public boolean getAcceptUnknown() { - return this.acceptUnknown == null ? false : this.acceptUnknown.getValue(); - } - - /** - * @param value A flag that indicates whether the application accepts unknown elements as part of a resource. - */ - public Conformance setAcceptUnknown(boolean value) { - if (this.acceptUnknown == null) - this.acceptUnknown = new BooleanType(); - this.acceptUnknown.setValue(value); - return this; - } - - /** - * @return {@link #format} (A list of the formats supported by this implementation.) - */ - public List getFormat() { - if (this.format == null) - this.format = new ArrayList(); - return this.format; - } - - public boolean hasFormat() { - if (this.format == null) - return false; - for (CodeType item : this.format) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #format} (A list of the formats supported by this implementation.) - */ - // syntactic sugar - public CodeType addFormatElement() {//2 - CodeType t = new CodeType(); - if (this.format == null) - this.format = new ArrayList(); - this.format.add(t); - return t; - } - - /** - * @param value {@link #format} (A list of the formats supported by this implementation.) - */ - public Conformance addFormat(String value) { //1 - CodeType t = new CodeType(); - t.setValue(value); - if (this.format == null) - this.format = new ArrayList(); - this.format.add(t); - return this; - } - - /** - * @param value {@link #format} (A list of the formats supported by this implementation.) - */ - public boolean hasFormat(String value) { - if (this.format == null) - return false; - for (CodeType v : this.format) - if (v.equals(value)) // code - return true; - return false; - } - - /** - * @return {@link #profile} (A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.) - */ - public List getProfile() { - if (this.profile == null) - this.profile = new ArrayList(); - return this.profile; - } - - public boolean hasProfile() { - if (this.profile == null) - return false; - for (Reference item : this.profile) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #profile} (A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.) - */ - // syntactic sugar - public Reference addProfile() { //3 - Reference t = new Reference(); - if (this.profile == null) - this.profile = new ArrayList(); - this.profile.add(t); - return t; - } - - /** - * @return {@link #profile} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.) - */ - public List getProfileTarget() { - if (this.profileTarget == null) - this.profileTarget = new ArrayList(); - return this.profileTarget; - } - - // syntactic sugar - /** - * @return {@link #profile} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.) - */ - public Profile addProfileTarget() { - Profile r = new Profile(); - if (this.profileTarget == null) - this.profileTarget = new ArrayList(); - this.profileTarget.add(r); - return r; - } - - /** - * @return {@link #rest} (A definition of the restful capabilities of the solution, if any.) - */ - public List getRest() { - if (this.rest == null) - this.rest = new ArrayList(); - return this.rest; - } - - public boolean hasRest() { - if (this.rest == null) - return false; - for (ConformanceRestComponent item : this.rest) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #rest} (A definition of the restful capabilities of the solution, if any.) - */ - // syntactic sugar - public ConformanceRestComponent addRest() { //3 - ConformanceRestComponent t = new ConformanceRestComponent(); - if (this.rest == null) - this.rest = new ArrayList(); - this.rest.add(t); - return t; - } - - /** - * @return {@link #messaging} (A description of the messaging capabilities of the solution.) - */ - public List getMessaging() { - if (this.messaging == null) - this.messaging = new ArrayList(); - return this.messaging; - } - - public boolean hasMessaging() { - if (this.messaging == null) - return false; - for (ConformanceMessagingComponent item : this.messaging) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #messaging} (A description of the messaging capabilities of the solution.) - */ - // syntactic sugar - public ConformanceMessagingComponent addMessaging() { //3 - ConformanceMessagingComponent t = new ConformanceMessagingComponent(); - if (this.messaging == null) - this.messaging = new ArrayList(); - this.messaging.add(t); - return t; - } - - /** - * @return {@link #document} (A document definition.) - */ - public List getDocument() { - if (this.document == null) - this.document = new ArrayList(); - return this.document; - } - - public boolean hasDocument() { - if (this.document == null) - return false; - for (ConformanceDocumentComponent item : this.document) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #document} (A document definition.) - */ - // syntactic sugar - public ConformanceDocumentComponent addDocument() { //3 - ConformanceDocumentComponent t = new ConformanceDocumentComponent(); - if (this.document == null) - this.document = new ArrayList(); - this.document.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "string", "The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("version", "string", "The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.", 0, java.lang.Integer.MAX_VALUE, version)); - childrenList.add(new Property("name", "string", "A free text natural language name identifying the conformance statement.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("publisher", "string", "Name of Organization publishing this conformance statement.", 0, java.lang.Integer.MAX_VALUE, publisher)); - childrenList.add(new Property("telecom", "ContactPoint", "Contacts for Organization relevant to this conformance statement. The contacts may be a website, email, phone numbers, etc.", 0, java.lang.Integer.MAX_VALUE, telecom)); - childrenList.add(new Property("description", "string", "A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("status", "code", "The status of this conformance statement.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("experimental", "boolean", "A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.", 0, java.lang.Integer.MAX_VALUE, experimental)); - childrenList.add(new Property("date", "dateTime", "The date (and optionally time) when the conformance statement was published.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("software", "", "Software that is covered by this conformance statement. It is used when the profile describes the capabilities of a particular software version, independent of an installation.", 0, java.lang.Integer.MAX_VALUE, software)); - childrenList.add(new Property("implementation", "", "Identifies a specific implementation instance that is described by the conformance statement - i.e. a particular installation, rather than the capabilities of a software program.", 0, java.lang.Integer.MAX_VALUE, implementation)); - childrenList.add(new Property("fhirVersion", "id", "The version of the FHIR specification on which this conformance statement is based.", 0, java.lang.Integer.MAX_VALUE, fhirVersion)); - childrenList.add(new Property("acceptUnknown", "boolean", "A flag that indicates whether the application accepts unknown elements as part of a resource.", 0, java.lang.Integer.MAX_VALUE, acceptUnknown)); - childrenList.add(new Property("format", "code", "A list of the formats supported by this implementation.", 0, java.lang.Integer.MAX_VALUE, format)); - childrenList.add(new Property("profile", "Reference(Profile)", "A list of profiles supported by the system. For a server, 'supported by the system' means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.", 0, java.lang.Integer.MAX_VALUE, profile)); - childrenList.add(new Property("rest", "", "A definition of the restful capabilities of the solution, if any.", 0, java.lang.Integer.MAX_VALUE, rest)); - childrenList.add(new Property("messaging", "", "A description of the messaging capabilities of the solution.", 0, java.lang.Integer.MAX_VALUE, messaging)); - childrenList.add(new Property("document", "", "A document definition.", 0, java.lang.Integer.MAX_VALUE, document)); - } - - public Conformance copy() { - Conformance dst = new Conformance(); - copyValues(dst); - dst.identifier = identifier == null ? null : identifier.copy(); - dst.version = version == null ? null : version.copy(); - dst.name = name == null ? null : name.copy(); - dst.publisher = publisher == null ? null : publisher.copy(); - if (telecom != null) { - dst.telecom = new ArrayList(); - for (ContactPoint i : telecom) - dst.telecom.add(i.copy()); - }; - dst.description = description == null ? null : description.copy(); - dst.status = status == null ? null : status.copy(); - dst.experimental = experimental == null ? null : experimental.copy(); - dst.date = date == null ? null : date.copy(); - dst.software = software == null ? null : software.copy(); - dst.implementation = implementation == null ? null : implementation.copy(); - dst.fhirVersion = fhirVersion == null ? null : fhirVersion.copy(); - dst.acceptUnknown = acceptUnknown == null ? null : acceptUnknown.copy(); - if (format != null) { - dst.format = new ArrayList(); - for (CodeType i : format) - dst.format.add(i.copy()); - }; - if (profile != null) { - dst.profile = new ArrayList(); - for (Reference i : profile) - dst.profile.add(i.copy()); - }; - if (rest != null) { - dst.rest = new ArrayList(); - for (ConformanceRestComponent i : rest) - dst.rest.add(i.copy()); - }; - if (messaging != null) { - dst.messaging = new ArrayList(); - for (ConformanceMessagingComponent i : messaging) - dst.messaging.add(i.copy()); - }; - if (document != null) { - dst.document = new ArrayList(); - for (ConformanceDocumentComponent i : document) - dst.document.add(i.copy()); - }; - return dst; - } - - protected Conformance typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (version == null || version.isEmpty()) - && (name == null || name.isEmpty()) && (publisher == null || publisher.isEmpty()) && (telecom == null || telecom.isEmpty()) - && (description == null || description.isEmpty()) && (status == null || status.isEmpty()) - && (experimental == null || experimental.isEmpty()) && (date == null || date.isEmpty()) && (software == null || software.isEmpty()) - && (implementation == null || implementation.isEmpty()) && (fhirVersion == null || fhirVersion.isEmpty()) - && (acceptUnknown == null || acceptUnknown.isEmpty()) && (format == null || format.isEmpty()) - && (profile == null || profile.isEmpty()) && (rest == null || rest.isEmpty()) && (messaging == null || messaging.isEmpty()) - && (document == null || document.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Conformance; - } - - @SearchParamDefinition(name="status", path="Conformance.status", description="The current status of the conformance statement", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="resource", path="Conformance.rest.resource.type", description="Name of a resource mentioned in a conformance statement", type="token" ) - public static final String SP_RESOURCE = "resource"; - @SearchParamDefinition(name="security", path="Conformance.rest.security", description="Information about security of implementation", type="token" ) - public static final String SP_SECURITY = "security"; - @SearchParamDefinition(name="format", path="Conformance.format", description="formats supported (xml | json | mime type)", type="token" ) - public static final String SP_FORMAT = "format"; - @SearchParamDefinition(name="date", path="Conformance.date", description="The conformance statement publication date", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="version", path="Conformance.version", description="The version identifier of the conformance statement", type="token" ) - public static final String SP_VERSION = "version"; - @SearchParamDefinition(name="publisher", path="Conformance.publisher", description="Name of the publisher of the conformance statement", type="string" ) - public static final String SP_PUBLISHER = "publisher"; - @SearchParamDefinition(name="mode", path="Conformance.rest.mode", description="Mode - restful (server/client) or messaging (sender/receiver)", type="token" ) - public static final String SP_MODE = "mode"; - @SearchParamDefinition(name="software", path="Conformance.software.name", description="Part of a the name of a software application", type="string" ) - public static final String SP_SOFTWARE = "software"; - @SearchParamDefinition(name="description", path="Conformance.description", description="Text search in the description of the conformance statement", type="string" ) - public static final String SP_DESCRIPTION = "description"; - @SearchParamDefinition(name="event", path="Conformance.messaging.event.code", description="Event code in a conformance statement", type="token" ) - public static final String SP_EVENT = "event"; - @SearchParamDefinition(name="name", path="Conformance.name", description="Name of the conformance statement", type="string" ) - public static final String SP_NAME = "name"; - @SearchParamDefinition(name="supported-profile", path="Conformance.profile", description="Profiles supported by the system", type="reference" ) - public static final String SP_SUPPORTEDPROFILE = "supported-profile"; - @SearchParamDefinition(name="fhirversion", path="Conformance.version", description="The version of FHIR", type="token" ) - public static final String SP_FHIRVERSION = "fhirversion"; - @SearchParamDefinition(name="identifier", path="Conformance.identifier", description="The identifier of the conformance statement", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - @SearchParamDefinition(name="profile", path="Conformance.rest.resource.profile", description="A profile id invoked in a conformance statement", type="reference" ) - public static final String SP_PROFILE = "profile"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A conformance statement is a set of requirements for a desired implementation or a description of how a target application fulfills those requirements in a particular implementation. + */ +@ResourceDef(name="Conformance", profile="http://hl7.org/fhir/Profile/Conformance") +public class Conformance extends DomainResource { + + public enum ConformanceStatementStatus { + /** + * This conformance statement is still under development. + */ + DRAFT, + /** + * This conformance statement is ready for use in production systems. + */ + ACTIVE, + /** + * This conformance statement has been withdrawn or superceded and should no longer be used. + */ + RETIRED, + /** + * added to help the parsers + */ + NULL; + public static ConformanceStatementStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("draft".equals(codeString)) + return DRAFT; + if ("active".equals(codeString)) + return ACTIVE; + if ("retired".equals(codeString)) + return RETIRED; + throw new Exception("Unknown ConformanceStatementStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case DRAFT: return "draft"; + case ACTIVE: return "active"; + case RETIRED: return "retired"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case DRAFT: return ""; + case ACTIVE: return ""; + case RETIRED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case DRAFT: return "This conformance statement is still under development."; + case ACTIVE: return "This conformance statement is ready for use in production systems."; + case RETIRED: return "This conformance statement has been withdrawn or superceded and should no longer be used."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case DRAFT: return "draft"; + case ACTIVE: return "active"; + case RETIRED: return "retired"; + default: return "?"; + } + } + } + + public static class ConformanceStatementStatusEnumFactory implements EnumFactory { + public ConformanceStatementStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("draft".equals(codeString)) + return ConformanceStatementStatus.DRAFT; + if ("active".equals(codeString)) + return ConformanceStatementStatus.ACTIVE; + if ("retired".equals(codeString)) + return ConformanceStatementStatus.RETIRED; + throw new IllegalArgumentException("Unknown ConformanceStatementStatus code '"+codeString+"'"); + } + public String toCode(ConformanceStatementStatus code) { + if (code == ConformanceStatementStatus.DRAFT) + return "draft"; + if (code == ConformanceStatementStatus.ACTIVE) + return "active"; + if (code == ConformanceStatementStatus.RETIRED) + return "retired"; + return "?"; + } + } + + public enum RestfulConformanceMode { + /** + * The application acts as a server for this resource. + */ + CLIENT, + /** + * The application acts as a client for this resource. + */ + SERVER, + /** + * added to help the parsers + */ + NULL; + public static RestfulConformanceMode fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("client".equals(codeString)) + return CLIENT; + if ("server".equals(codeString)) + return SERVER; + throw new Exception("Unknown RestfulConformanceMode code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case CLIENT: return "client"; + case SERVER: return "server"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case CLIENT: return ""; + case SERVER: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case CLIENT: return "The application acts as a server for this resource."; + case SERVER: return "The application acts as a client for this resource."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case CLIENT: return "client"; + case SERVER: return "server"; + default: return "?"; + } + } + } + + public static class RestfulConformanceModeEnumFactory implements EnumFactory { + public RestfulConformanceMode fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("client".equals(codeString)) + return RestfulConformanceMode.CLIENT; + if ("server".equals(codeString)) + return RestfulConformanceMode.SERVER; + throw new IllegalArgumentException("Unknown RestfulConformanceMode code '"+codeString+"'"); + } + public String toCode(RestfulConformanceMode code) { + if (code == RestfulConformanceMode.CLIENT) + return "client"; + if (code == RestfulConformanceMode.SERVER) + return "server"; + return "?"; + } + } + + public enum TypeRestfulInteraction { + /** + * + */ + READ, + /** + * + */ + VREAD, + /** + * + */ + UPDATE, + /** + * + */ + DELETE, + /** + * + */ + HISTORYINSTANCE, + /** + * + */ + VALIDATE, + /** + * + */ + HISTORYTYPE, + /** + * + */ + CREATE, + /** + * + */ + SEARCHTYPE, + /** + * added to help the parsers + */ + NULL; + public static TypeRestfulInteraction fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("read".equals(codeString)) + return READ; + if ("vread".equals(codeString)) + return VREAD; + if ("update".equals(codeString)) + return UPDATE; + if ("delete".equals(codeString)) + return DELETE; + if ("history-instance".equals(codeString)) + return HISTORYINSTANCE; + if ("validate".equals(codeString)) + return VALIDATE; + if ("history-type".equals(codeString)) + return HISTORYTYPE; + if ("create".equals(codeString)) + return CREATE; + if ("search-type".equals(codeString)) + return SEARCHTYPE; + throw new Exception("Unknown TypeRestfulInteraction code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case READ: return "read"; + case VREAD: return "vread"; + case UPDATE: return "update"; + case DELETE: return "delete"; + case HISTORYINSTANCE: return "history-instance"; + case VALIDATE: return "validate"; + case HISTORYTYPE: return "history-type"; + case CREATE: return "create"; + case SEARCHTYPE: return "search-type"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case READ: return "http://hl7.org/fhir/restful-interaction"; + case VREAD: return "http://hl7.org/fhir/restful-interaction"; + case UPDATE: return "http://hl7.org/fhir/restful-interaction"; + case DELETE: return "http://hl7.org/fhir/restful-interaction"; + case HISTORYINSTANCE: return "http://hl7.org/fhir/restful-interaction"; + case VALIDATE: return "http://hl7.org/fhir/restful-interaction"; + case HISTORYTYPE: return "http://hl7.org/fhir/restful-interaction"; + case CREATE: return "http://hl7.org/fhir/restful-interaction"; + case SEARCHTYPE: return "http://hl7.org/fhir/restful-interaction"; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case READ: return ""; + case VREAD: return ""; + case UPDATE: return ""; + case DELETE: return ""; + case HISTORYINSTANCE: return ""; + case VALIDATE: return ""; + case HISTORYTYPE: return ""; + case CREATE: return ""; + case SEARCHTYPE: return ""; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case READ: return "read"; + case VREAD: return "vread"; + case UPDATE: return "update"; + case DELETE: return "delete"; + case HISTORYINSTANCE: return "history-instance"; + case VALIDATE: return "validate"; + case HISTORYTYPE: return "history-type"; + case CREATE: return "create"; + case SEARCHTYPE: return "search-type"; + default: return "?"; + } + } + } + + public static class TypeRestfulInteractionEnumFactory implements EnumFactory { + public TypeRestfulInteraction fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("read".equals(codeString)) + return TypeRestfulInteraction.READ; + if ("vread".equals(codeString)) + return TypeRestfulInteraction.VREAD; + if ("update".equals(codeString)) + return TypeRestfulInteraction.UPDATE; + if ("delete".equals(codeString)) + return TypeRestfulInteraction.DELETE; + if ("history-instance".equals(codeString)) + return TypeRestfulInteraction.HISTORYINSTANCE; + if ("validate".equals(codeString)) + return TypeRestfulInteraction.VALIDATE; + if ("history-type".equals(codeString)) + return TypeRestfulInteraction.HISTORYTYPE; + if ("create".equals(codeString)) + return TypeRestfulInteraction.CREATE; + if ("search-type".equals(codeString)) + return TypeRestfulInteraction.SEARCHTYPE; + throw new IllegalArgumentException("Unknown TypeRestfulInteraction code '"+codeString+"'"); + } + public String toCode(TypeRestfulInteraction code) { + if (code == TypeRestfulInteraction.READ) + return "read"; + if (code == TypeRestfulInteraction.VREAD) + return "vread"; + if (code == TypeRestfulInteraction.UPDATE) + return "update"; + if (code == TypeRestfulInteraction.DELETE) + return "delete"; + if (code == TypeRestfulInteraction.HISTORYINSTANCE) + return "history-instance"; + if (code == TypeRestfulInteraction.VALIDATE) + return "validate"; + if (code == TypeRestfulInteraction.HISTORYTYPE) + return "history-type"; + if (code == TypeRestfulInteraction.CREATE) + return "create"; + if (code == TypeRestfulInteraction.SEARCHTYPE) + return "search-type"; + return "?"; + } + } + + public enum VersioningPolicy { + /** + * VersionId meta-property is not suppoerted (server) or used (client). + */ + NOVERSION, + /** + * VersionId meta-property is suppoerted (server) or used (client). + */ + VERSIONED, + /** + * VersionId is must be correct for updates (server) or will be specified (If-match header) for updates (client). + */ + VERSIONEDUPDATE, + /** + * added to help the parsers + */ + NULL; + public static VersioningPolicy fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("no-version".equals(codeString)) + return NOVERSION; + if ("versioned".equals(codeString)) + return VERSIONED; + if ("versioned-update".equals(codeString)) + return VERSIONEDUPDATE; + throw new Exception("Unknown VersioningPolicy code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case NOVERSION: return "no-version"; + case VERSIONED: return "versioned"; + case VERSIONEDUPDATE: return "versioned-update"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case NOVERSION: return ""; + case VERSIONED: return ""; + case VERSIONEDUPDATE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case NOVERSION: return "VersionId meta-property is not suppoerted (server) or used (client)."; + case VERSIONED: return "VersionId meta-property is suppoerted (server) or used (client)."; + case VERSIONEDUPDATE: return "VersionId is must be correct for updates (server) or will be specified (If-match header) for updates (client)."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case NOVERSION: return "No VersionId Support"; + case VERSIONED: return "Versioned"; + case VERSIONEDUPDATE: return "VersionId tracked fully"; + default: return "?"; + } + } + } + + public static class VersioningPolicyEnumFactory implements EnumFactory { + public VersioningPolicy fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("no-version".equals(codeString)) + return VersioningPolicy.NOVERSION; + if ("versioned".equals(codeString)) + return VersioningPolicy.VERSIONED; + if ("versioned-update".equals(codeString)) + return VersioningPolicy.VERSIONEDUPDATE; + throw new IllegalArgumentException("Unknown VersioningPolicy code '"+codeString+"'"); + } + public String toCode(VersioningPolicy code) { + if (code == VersioningPolicy.NOVERSION) + return "no-version"; + if (code == VersioningPolicy.VERSIONED) + return "versioned"; + if (code == VersioningPolicy.VERSIONEDUPDATE) + return "versioned-update"; + return "?"; + } + } + + public enum SearchParamType { + /** + * Search parameter SHALL be a number (a whole number, or a decimal). + */ + NUMBER, + /** + * Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported. + */ + DATE, + /** + * Search parameter is a simple string, like a name part. Search is case-insensitive and accent-insensitive. May match just the start of a string. String parameters may contain spaces. + */ + STRING, + /** + * Search parameter on a coded element or identifier. May be used to search through the text, displayname, code and code/codesystem (for codes) and label, system and key (for identifier). Its value is either a string or a pair of namespace and value, separated by a "|", depending on the modifier used. + */ + TOKEN, + /** + * A reference to another resource. + */ + REFERENCE, + /** + * A composite search parameter that combines a search on two values together. + */ + COMPOSITE, + /** + * A search parameter that searches on a quantity. + */ + QUANTITY, + /** + * added to help the parsers + */ + NULL; + public static SearchParamType fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("number".equals(codeString)) + return NUMBER; + if ("date".equals(codeString)) + return DATE; + if ("string".equals(codeString)) + return STRING; + if ("token".equals(codeString)) + return TOKEN; + if ("reference".equals(codeString)) + return REFERENCE; + if ("composite".equals(codeString)) + return COMPOSITE; + if ("quantity".equals(codeString)) + return QUANTITY; + throw new Exception("Unknown SearchParamType code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case NUMBER: return "number"; + case DATE: return "date"; + case STRING: return "string"; + case TOKEN: return "token"; + case REFERENCE: return "reference"; + case COMPOSITE: return "composite"; + case QUANTITY: return "quantity"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case NUMBER: return ""; + case DATE: return ""; + case STRING: return ""; + case TOKEN: return ""; + case REFERENCE: return ""; + case COMPOSITE: return ""; + case QUANTITY: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case NUMBER: return "Search parameter SHALL be a number (a whole number, or a decimal)."; + case DATE: return "Search parameter is on a date/time. The date format is the standard XML format, though other formats may be supported."; + case STRING: return "Search parameter is a simple string, like a name part. Search is case-insensitive and accent-insensitive. May match just the start of a string. String parameters may contain spaces."; + case TOKEN: return "Search parameter on a coded element or identifier. May be used to search through the text, displayname, code and code/codesystem (for codes) and label, system and key (for identifier). Its value is either a string or a pair of namespace and value, separated by a '|', depending on the modifier used."; + case REFERENCE: return "A reference to another resource."; + case COMPOSITE: return "A composite search parameter that combines a search on two values together."; + case QUANTITY: return "A search parameter that searches on a quantity."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case NUMBER: return "number"; + case DATE: return "date"; + case STRING: return "string"; + case TOKEN: return "token"; + case REFERENCE: return "reference"; + case COMPOSITE: return "composite"; + case QUANTITY: return "quantity"; + default: return "?"; + } + } + } + + public static class SearchParamTypeEnumFactory implements EnumFactory { + public SearchParamType fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("number".equals(codeString)) + return SearchParamType.NUMBER; + if ("date".equals(codeString)) + return SearchParamType.DATE; + if ("string".equals(codeString)) + return SearchParamType.STRING; + if ("token".equals(codeString)) + return SearchParamType.TOKEN; + if ("reference".equals(codeString)) + return SearchParamType.REFERENCE; + if ("composite".equals(codeString)) + return SearchParamType.COMPOSITE; + if ("quantity".equals(codeString)) + return SearchParamType.QUANTITY; + throw new IllegalArgumentException("Unknown SearchParamType code '"+codeString+"'"); + } + public String toCode(SearchParamType code) { + if (code == SearchParamType.NUMBER) + return "number"; + if (code == SearchParamType.DATE) + return "date"; + if (code == SearchParamType.STRING) + return "string"; + if (code == SearchParamType.TOKEN) + return "token"; + if (code == SearchParamType.REFERENCE) + return "reference"; + if (code == SearchParamType.COMPOSITE) + return "composite"; + if (code == SearchParamType.QUANTITY) + return "quantity"; + return "?"; + } + } + + public enum SystemRestfulInteraction { + /** + * + */ + TRANSACTION, + /** + * + */ + SEARCHSYSTEM, + /** + * + */ + HISTORYSYSTEM, + /** + * added to help the parsers + */ + NULL; + public static SystemRestfulInteraction fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("transaction".equals(codeString)) + return TRANSACTION; + if ("search-system".equals(codeString)) + return SEARCHSYSTEM; + if ("history-system".equals(codeString)) + return HISTORYSYSTEM; + throw new Exception("Unknown SystemRestfulInteraction code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case TRANSACTION: return "transaction"; + case SEARCHSYSTEM: return "search-system"; + case HISTORYSYSTEM: return "history-system"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case TRANSACTION: return "http://hl7.org/fhir/restful-interaction"; + case SEARCHSYSTEM: return "http://hl7.org/fhir/restful-interaction"; + case HISTORYSYSTEM: return "http://hl7.org/fhir/restful-interaction"; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case TRANSACTION: return ""; + case SEARCHSYSTEM: return ""; + case HISTORYSYSTEM: return ""; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case TRANSACTION: return "transaction"; + case SEARCHSYSTEM: return "search-system"; + case HISTORYSYSTEM: return "history-system"; + default: return "?"; + } + } + } + + public static class SystemRestfulInteractionEnumFactory implements EnumFactory { + public SystemRestfulInteraction fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("transaction".equals(codeString)) + return SystemRestfulInteraction.TRANSACTION; + if ("search-system".equals(codeString)) + return SystemRestfulInteraction.SEARCHSYSTEM; + if ("history-system".equals(codeString)) + return SystemRestfulInteraction.HISTORYSYSTEM; + throw new IllegalArgumentException("Unknown SystemRestfulInteraction code '"+codeString+"'"); + } + public String toCode(SystemRestfulInteraction code) { + if (code == SystemRestfulInteraction.TRANSACTION) + return "transaction"; + if (code == SystemRestfulInteraction.SEARCHSYSTEM) + return "search-system"; + if (code == SystemRestfulInteraction.HISTORYSYSTEM) + return "history-system"; + return "?"; + } + } + + public enum MessageSignificanceCategory { + /** + * The message represents/requests a change that should not be processed more than once. E.g. Making a booking for an appointment. + */ + CONSEQUENCE, + /** + * The message represents a response to query for current information. Retrospective processing is wrong and/or wasteful. + */ + CURRENCY, + /** + * The content is not necessarily intended to be current, and it can be reprocessed, though there may be version issues created by processing old notifications. + */ + NOTIFICATION, + /** + * added to help the parsers + */ + NULL; + public static MessageSignificanceCategory fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("Consequence".equals(codeString)) + return CONSEQUENCE; + if ("Currency".equals(codeString)) + return CURRENCY; + if ("Notification".equals(codeString)) + return NOTIFICATION; + throw new Exception("Unknown MessageSignificanceCategory code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case CONSEQUENCE: return "Consequence"; + case CURRENCY: return "Currency"; + case NOTIFICATION: return "Notification"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case CONSEQUENCE: return ""; + case CURRENCY: return ""; + case NOTIFICATION: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case CONSEQUENCE: return "The message represents/requests a change that should not be processed more than once. E.g. Making a booking for an appointment."; + case CURRENCY: return "The message represents a response to query for current information. Retrospective processing is wrong and/or wasteful."; + case NOTIFICATION: return "The content is not necessarily intended to be current, and it can be reprocessed, though there may be version issues created by processing old notifications."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case CONSEQUENCE: return "Consequence"; + case CURRENCY: return "Currency"; + case NOTIFICATION: return "Notification"; + default: return "?"; + } + } + } + + public static class MessageSignificanceCategoryEnumFactory implements EnumFactory { + public MessageSignificanceCategory fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("Consequence".equals(codeString)) + return MessageSignificanceCategory.CONSEQUENCE; + if ("Currency".equals(codeString)) + return MessageSignificanceCategory.CURRENCY; + if ("Notification".equals(codeString)) + return MessageSignificanceCategory.NOTIFICATION; + throw new IllegalArgumentException("Unknown MessageSignificanceCategory code '"+codeString+"'"); + } + public String toCode(MessageSignificanceCategory code) { + if (code == MessageSignificanceCategory.CONSEQUENCE) + return "Consequence"; + if (code == MessageSignificanceCategory.CURRENCY) + return "Currency"; + if (code == MessageSignificanceCategory.NOTIFICATION) + return "Notification"; + return "?"; + } + } + + public enum MessageConformanceEventMode { + /** + * The application sends requests and receives responses. + */ + SENDER, + /** + * The application receives requests and sends responses. + */ + RECEIVER, + /** + * added to help the parsers + */ + NULL; + public static MessageConformanceEventMode fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("sender".equals(codeString)) + return SENDER; + if ("receiver".equals(codeString)) + return RECEIVER; + throw new Exception("Unknown MessageConformanceEventMode code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case SENDER: return "sender"; + case RECEIVER: return "receiver"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case SENDER: return ""; + case RECEIVER: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case SENDER: return "The application sends requests and receives responses."; + case RECEIVER: return "The application receives requests and sends responses."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case SENDER: return "sender"; + case RECEIVER: return "receiver"; + default: return "?"; + } + } + } + + public static class MessageConformanceEventModeEnumFactory implements EnumFactory { + public MessageConformanceEventMode fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("sender".equals(codeString)) + return MessageConformanceEventMode.SENDER; + if ("receiver".equals(codeString)) + return MessageConformanceEventMode.RECEIVER; + throw new IllegalArgumentException("Unknown MessageConformanceEventMode code '"+codeString+"'"); + } + public String toCode(MessageConformanceEventMode code) { + if (code == MessageConformanceEventMode.SENDER) + return "sender"; + if (code == MessageConformanceEventMode.RECEIVER) + return "receiver"; + return "?"; + } + } + + public enum DocumentMode { + /** + * The application produces documents of the specified type. + */ + PRODUCER, + /** + * The application consumes documents of the specified type. + */ + CONSUMER, + /** + * added to help the parsers + */ + NULL; + public static DocumentMode fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("producer".equals(codeString)) + return PRODUCER; + if ("consumer".equals(codeString)) + return CONSUMER; + throw new Exception("Unknown DocumentMode code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PRODUCER: return "producer"; + case CONSUMER: return "consumer"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PRODUCER: return ""; + case CONSUMER: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PRODUCER: return "The application produces documents of the specified type."; + case CONSUMER: return "The application consumes documents of the specified type."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PRODUCER: return "producer"; + case CONSUMER: return "consumer"; + default: return "?"; + } + } + } + + public static class DocumentModeEnumFactory implements EnumFactory { + public DocumentMode fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("producer".equals(codeString)) + return DocumentMode.PRODUCER; + if ("consumer".equals(codeString)) + return DocumentMode.CONSUMER; + throw new IllegalArgumentException("Unknown DocumentMode code '"+codeString+"'"); + } + public String toCode(DocumentMode code) { + if (code == DocumentMode.PRODUCER) + return "producer"; + if (code == DocumentMode.CONSUMER) + return "consumer"; + return "?"; + } + } + + @Block() + public static class ConformanceSoftwareComponent extends BackboneElement { + /** + * Name software is known by. + */ + @Child(name="name", type={StringType.class}, order=1, min=1, max=1) + @Description(shortDefinition="A name the software is known by", formalDefinition="Name software is known by." ) + protected StringType name; + + /** + * The version identifier for the software covered by this statement. + */ + @Child(name="version", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Version covered by this statement", formalDefinition="The version identifier for the software covered by this statement." ) + protected StringType version; + + /** + * Date this version of the software released. + */ + @Child(name="releaseDate", type={DateTimeType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Date this version released", formalDefinition="Date this version of the software released." ) + protected DateTimeType releaseDate; + + private static final long serialVersionUID = 1819769027L; + + public ConformanceSoftwareComponent() { + super(); + } + + public ConformanceSoftwareComponent(StringType name) { + super(); + this.name = name; + } + + /** + * @return {@link #name} (Name software is known by.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceSoftwareComponent.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (Name software is known by.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public ConformanceSoftwareComponent setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return Name software is known by. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value Name software is known by. + */ + public ConformanceSoftwareComponent setName(String value) { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + return this; + } + + /** + * @return {@link #version} (The version identifier for the software covered by this statement.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value + */ + public StringType getVersionElement() { + if (this.version == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceSoftwareComponent.version"); + else if (Configuration.doAutoCreate()) + this.version = new StringType(); // bb + return this.version; + } + + public boolean hasVersionElement() { + return this.version != null && !this.version.isEmpty(); + } + + public boolean hasVersion() { + return this.version != null && !this.version.isEmpty(); + } + + /** + * @param value {@link #version} (The version identifier for the software covered by this statement.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value + */ + public ConformanceSoftwareComponent setVersionElement(StringType value) { + this.version = value; + return this; + } + + /** + * @return The version identifier for the software covered by this statement. + */ + public String getVersion() { + return this.version == null ? null : this.version.getValue(); + } + + /** + * @param value The version identifier for the software covered by this statement. + */ + public ConformanceSoftwareComponent setVersion(String value) { + if (Utilities.noString(value)) + this.version = null; + else { + if (this.version == null) + this.version = new StringType(); + this.version.setValue(value); + } + return this; + } + + /** + * @return {@link #releaseDate} (Date this version of the software released.). This is the underlying object with id, value and extensions. The accessor "getReleaseDate" gives direct access to the value + */ + public DateTimeType getReleaseDateElement() { + if (this.releaseDate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceSoftwareComponent.releaseDate"); + else if (Configuration.doAutoCreate()) + this.releaseDate = new DateTimeType(); // bb + return this.releaseDate; + } + + public boolean hasReleaseDateElement() { + return this.releaseDate != null && !this.releaseDate.isEmpty(); + } + + public boolean hasReleaseDate() { + return this.releaseDate != null && !this.releaseDate.isEmpty(); + } + + /** + * @param value {@link #releaseDate} (Date this version of the software released.). This is the underlying object with id, value and extensions. The accessor "getReleaseDate" gives direct access to the value + */ + public ConformanceSoftwareComponent setReleaseDateElement(DateTimeType value) { + this.releaseDate = value; + return this; + } + + /** + * @return Date this version of the software released. + */ + public Date getReleaseDate() { + return this.releaseDate == null ? null : this.releaseDate.getValue(); + } + + /** + * @param value Date this version of the software released. + */ + public ConformanceSoftwareComponent setReleaseDate(Date value) { + if (value == null) + this.releaseDate = null; + else { + if (this.releaseDate == null) + this.releaseDate = new DateTimeType(); + this.releaseDate.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("name", "string", "Name software is known by.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("version", "string", "The version identifier for the software covered by this statement.", 0, java.lang.Integer.MAX_VALUE, version)); + childrenList.add(new Property("releaseDate", "dateTime", "Date this version of the software released.", 0, java.lang.Integer.MAX_VALUE, releaseDate)); + } + + public ConformanceSoftwareComponent copy() { + ConformanceSoftwareComponent dst = new ConformanceSoftwareComponent(); + copyValues(dst); + dst.name = name == null ? null : name.copy(); + dst.version = version == null ? null : version.copy(); + dst.releaseDate = releaseDate == null ? null : releaseDate.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConformanceSoftwareComponent)) + return false; + ConformanceSoftwareComponent o = (ConformanceSoftwareComponent) other; + return compareDeep(name, o.name, true) && compareDeep(version, o.version, true) && compareDeep(releaseDate, o.releaseDate, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConformanceSoftwareComponent)) + return false; + ConformanceSoftwareComponent o = (ConformanceSoftwareComponent) other; + return compareValues(name, o.name, true) && compareValues(version, o.version, true) && compareValues(releaseDate, o.releaseDate, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (name == null || name.isEmpty()) && (version == null || version.isEmpty()) + && (releaseDate == null || releaseDate.isEmpty()); + } + + } + + @Block() + public static class ConformanceImplementationComponent extends BackboneElement { + /** + * Information about the specific installation that this conformance statement relates to. + */ + @Child(name="description", type={StringType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Describes this specific instance", formalDefinition="Information about the specific installation that this conformance statement relates to." ) + protected StringType description; + + /** + * A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces. + */ + @Child(name="url", type={UriType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Base URL for the installation", formalDefinition="A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces." ) + protected UriType url; + + private static final long serialVersionUID = -289238508L; + + public ConformanceImplementationComponent() { + super(); + } + + public ConformanceImplementationComponent(StringType description) { + super(); + this.description = description; + } + + /** + * @return {@link #description} (Information about the specific installation that this conformance statement relates to.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceImplementationComponent.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Information about the specific installation that this conformance statement relates to.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public ConformanceImplementationComponent setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Information about the specific installation that this conformance statement relates to. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Information about the specific installation that this conformance statement relates to. + */ + public ConformanceImplementationComponent setDescription(String value) { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + return this; + } + + /** + * @return {@link #url} (A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceImplementationComponent.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public ConformanceImplementationComponent setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces. + */ + public ConformanceImplementationComponent setUrl(String value) { + if (Utilities.noString(value)) + this.url = null; + else { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("description", "string", "Information about the specific installation that this conformance statement relates to.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("url", "uri", "A base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces.", 0, java.lang.Integer.MAX_VALUE, url)); + } + + public ConformanceImplementationComponent copy() { + ConformanceImplementationComponent dst = new ConformanceImplementationComponent(); + copyValues(dst); + dst.description = description == null ? null : description.copy(); + dst.url = url == null ? null : url.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConformanceImplementationComponent)) + return false; + ConformanceImplementationComponent o = (ConformanceImplementationComponent) other; + return compareDeep(description, o.description, true) && compareDeep(url, o.url, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConformanceImplementationComponent)) + return false; + ConformanceImplementationComponent o = (ConformanceImplementationComponent) other; + return compareValues(description, o.description, true) && compareValues(url, o.url, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (description == null || description.isEmpty()) && (url == null || url.isEmpty()) + ; + } + + } + + @Block() + public static class ConformanceRestComponent extends BackboneElement { + /** + * Identifies whether this portion of the statement is describing ability to initiate or receive restful operations. + */ + @Child(name="mode", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="client | server", formalDefinition="Identifies whether this portion of the statement is describing ability to initiate or receive restful operations." ) + protected Enumeration mode; + + /** + * Information about the system's restful capabilities that apply across all applications, such as security. + */ + @Child(name="documentation", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="General description of implementation", formalDefinition="Information about the system's restful capabilities that apply across all applications, such as security." ) + protected StringType documentation; + + /** + * Information about security of implementation. + */ + @Child(name="security", type={}, order=3, min=0, max=1) + @Description(shortDefinition="Information about security of implementation", formalDefinition="Information about security of implementation." ) + protected ConformanceRestSecurityComponent security; + + /** + * A specification of the restful capabilities of the solution for a specific resource type. + */ + @Child(name="resource", type={}, order=4, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Resource served on the REST interface", formalDefinition="A specification of the restful capabilities of the solution for a specific resource type." ) + protected List resource; + + /** + * A specification of restful operations supported by the system. + */ + @Child(name="interaction", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="What operations are supported?", formalDefinition="A specification of restful operations supported by the system." ) + protected List interaction; + + /** + * Definition of an operation or a named query and with its parameters and their meaning and type. + */ + @Child(name="operation", type={}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Definition of an operation or a custom query", formalDefinition="Definition of an operation or a named query and with its parameters and their meaning and type." ) + protected List operation; + + /** + * A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purpose. + */ + @Child(name="documentMailbox", type={UriType.class}, order=7, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="How documents are accepted in /Mailbox", formalDefinition="A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier 'http://hl7.org/fhir/documents/mailbox'. Other specifications can declare their own identifier for this purpose." ) + protected List documentMailbox; + + private static final long serialVersionUID = 777542519L; + + public ConformanceRestComponent() { + super(); + } + + public ConformanceRestComponent(Enumeration mode) { + super(); + this.mode = mode; + } + + /** + * @return {@link #mode} (Identifies whether this portion of the statement is describing ability to initiate or receive restful operations.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value + */ + public Enumeration getModeElement() { + if (this.mode == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestComponent.mode"); + else if (Configuration.doAutoCreate()) + this.mode = new Enumeration(new RestfulConformanceModeEnumFactory()); // bb + return this.mode; + } + + public boolean hasModeElement() { + return this.mode != null && !this.mode.isEmpty(); + } + + public boolean hasMode() { + return this.mode != null && !this.mode.isEmpty(); + } + + /** + * @param value {@link #mode} (Identifies whether this portion of the statement is describing ability to initiate or receive restful operations.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value + */ + public ConformanceRestComponent setModeElement(Enumeration value) { + this.mode = value; + return this; + } + + /** + * @return Identifies whether this portion of the statement is describing ability to initiate or receive restful operations. + */ + public RestfulConformanceMode getMode() { + return this.mode == null ? null : this.mode.getValue(); + } + + /** + * @param value Identifies whether this portion of the statement is describing ability to initiate or receive restful operations. + */ + public ConformanceRestComponent setMode(RestfulConformanceMode value) { + if (this.mode == null) + this.mode = new Enumeration(new RestfulConformanceModeEnumFactory()); + this.mode.setValue(value); + return this; + } + + /** + * @return {@link #documentation} (Information about the system's restful capabilities that apply across all applications, such as security.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public StringType getDocumentationElement() { + if (this.documentation == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestComponent.documentation"); + else if (Configuration.doAutoCreate()) + this.documentation = new StringType(); // bb + return this.documentation; + } + + public boolean hasDocumentationElement() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + public boolean hasDocumentation() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + /** + * @param value {@link #documentation} (Information about the system's restful capabilities that apply across all applications, such as security.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public ConformanceRestComponent setDocumentationElement(StringType value) { + this.documentation = value; + return this; + } + + /** + * @return Information about the system's restful capabilities that apply across all applications, such as security. + */ + public String getDocumentation() { + return this.documentation == null ? null : this.documentation.getValue(); + } + + /** + * @param value Information about the system's restful capabilities that apply across all applications, such as security. + */ + public ConformanceRestComponent setDocumentation(String value) { + if (Utilities.noString(value)) + this.documentation = null; + else { + if (this.documentation == null) + this.documentation = new StringType(); + this.documentation.setValue(value); + } + return this; + } + + /** + * @return {@link #security} (Information about security of implementation.) + */ + public ConformanceRestSecurityComponent getSecurity() { + if (this.security == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestComponent.security"); + else if (Configuration.doAutoCreate()) + this.security = new ConformanceRestSecurityComponent(); // cc + return this.security; + } + + public boolean hasSecurity() { + return this.security != null && !this.security.isEmpty(); + } + + /** + * @param value {@link #security} (Information about security of implementation.) + */ + public ConformanceRestComponent setSecurity(ConformanceRestSecurityComponent value) { + this.security = value; + return this; + } + + /** + * @return {@link #resource} (A specification of the restful capabilities of the solution for a specific resource type.) + */ + public List getResource() { + if (this.resource == null) + this.resource = new ArrayList(); + return this.resource; + } + + public boolean hasResource() { + if (this.resource == null) + return false; + for (ConformanceRestResourceComponent item : this.resource) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #resource} (A specification of the restful capabilities of the solution for a specific resource type.) + */ + // syntactic sugar + public ConformanceRestResourceComponent addResource() { //3 + ConformanceRestResourceComponent t = new ConformanceRestResourceComponent(); + if (this.resource == null) + this.resource = new ArrayList(); + this.resource.add(t); + return t; + } + + /** + * @return {@link #interaction} (A specification of restful operations supported by the system.) + */ + public List getInteraction() { + if (this.interaction == null) + this.interaction = new ArrayList(); + return this.interaction; + } + + public boolean hasInteraction() { + if (this.interaction == null) + return false; + for (SystemInteractionComponent item : this.interaction) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #interaction} (A specification of restful operations supported by the system.) + */ + // syntactic sugar + public SystemInteractionComponent addInteraction() { //3 + SystemInteractionComponent t = new SystemInteractionComponent(); + if (this.interaction == null) + this.interaction = new ArrayList(); + this.interaction.add(t); + return t; + } + + /** + * @return {@link #operation} (Definition of an operation or a named query and with its parameters and their meaning and type.) + */ + public List getOperation() { + if (this.operation == null) + this.operation = new ArrayList(); + return this.operation; + } + + public boolean hasOperation() { + if (this.operation == null) + return false; + for (ConformanceRestOperationComponent item : this.operation) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #operation} (Definition of an operation or a named query and with its parameters and their meaning and type.) + */ + // syntactic sugar + public ConformanceRestOperationComponent addOperation() { //3 + ConformanceRestOperationComponent t = new ConformanceRestOperationComponent(); + if (this.operation == null) + this.operation = new ArrayList(); + this.operation.add(t); + return t; + } + + /** + * @return {@link #documentMailbox} (A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purpose.) + */ + public List getDocumentMailbox() { + if (this.documentMailbox == null) + this.documentMailbox = new ArrayList(); + return this.documentMailbox; + } + + public boolean hasDocumentMailbox() { + if (this.documentMailbox == null) + return false; + for (UriType item : this.documentMailbox) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #documentMailbox} (A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purpose.) + */ + // syntactic sugar + public UriType addDocumentMailboxElement() {//2 + UriType t = new UriType(); + if (this.documentMailbox == null) + this.documentMailbox = new ArrayList(); + this.documentMailbox.add(t); + return t; + } + + /** + * @param value {@link #documentMailbox} (A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purpose.) + */ + public ConformanceRestComponent addDocumentMailbox(String value) { //1 + UriType t = new UriType(); + t.setValue(value); + if (this.documentMailbox == null) + this.documentMailbox = new ArrayList(); + this.documentMailbox.add(t); + return this; + } + + /** + * @param value {@link #documentMailbox} (A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier "http://hl7.org/fhir/documents/mailbox". Other specifications can declare their own identifier for this purpose.) + */ + public boolean hasDocumentMailbox(String value) { + if (this.documentMailbox == null) + return false; + for (UriType v : this.documentMailbox) + if (v.equals(value)) // uri + return true; + return false; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("mode", "code", "Identifies whether this portion of the statement is describing ability to initiate or receive restful operations.", 0, java.lang.Integer.MAX_VALUE, mode)); + childrenList.add(new Property("documentation", "string", "Information about the system's restful capabilities that apply across all applications, such as security.", 0, java.lang.Integer.MAX_VALUE, documentation)); + childrenList.add(new Property("security", "", "Information about security of implementation.", 0, java.lang.Integer.MAX_VALUE, security)); + childrenList.add(new Property("resource", "", "A specification of the restful capabilities of the solution for a specific resource type.", 0, java.lang.Integer.MAX_VALUE, resource)); + childrenList.add(new Property("interaction", "", "A specification of restful operations supported by the system.", 0, java.lang.Integer.MAX_VALUE, interaction)); + childrenList.add(new Property("operation", "", "Definition of an operation or a named query and with its parameters and their meaning and type.", 0, java.lang.Integer.MAX_VALUE, operation)); + childrenList.add(new Property("documentMailbox", "uri", "A list of profiles that this server implements for accepting documents in the mailbox. If this list is empty, then documents are not accepted. The base specification has the profile identifier 'http://hl7.org/fhir/documents/mailbox'. Other specifications can declare their own identifier for this purpose.", 0, java.lang.Integer.MAX_VALUE, documentMailbox)); + } + + public ConformanceRestComponent copy() { + ConformanceRestComponent dst = new ConformanceRestComponent(); + copyValues(dst); + dst.mode = mode == null ? null : mode.copy(); + dst.documentation = documentation == null ? null : documentation.copy(); + dst.security = security == null ? null : security.copy(); + if (resource != null) { + dst.resource = new ArrayList(); + for (ConformanceRestResourceComponent i : resource) + dst.resource.add(i.copy()); + }; + if (interaction != null) { + dst.interaction = new ArrayList(); + for (SystemInteractionComponent i : interaction) + dst.interaction.add(i.copy()); + }; + if (operation != null) { + dst.operation = new ArrayList(); + for (ConformanceRestOperationComponent i : operation) + dst.operation.add(i.copy()); + }; + if (documentMailbox != null) { + dst.documentMailbox = new ArrayList(); + for (UriType i : documentMailbox) + dst.documentMailbox.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConformanceRestComponent)) + return false; + ConformanceRestComponent o = (ConformanceRestComponent) other; + return compareDeep(mode, o.mode, true) && compareDeep(documentation, o.documentation, true) && compareDeep(security, o.security, true) + && compareDeep(resource, o.resource, true) && compareDeep(interaction, o.interaction, true) && compareDeep(operation, o.operation, true) + && compareDeep(documentMailbox, o.documentMailbox, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConformanceRestComponent)) + return false; + ConformanceRestComponent o = (ConformanceRestComponent) other; + return compareValues(mode, o.mode, true) && compareValues(documentation, o.documentation, true) && compareValues(documentMailbox, o.documentMailbox, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (mode == null || mode.isEmpty()) && (documentation == null || documentation.isEmpty()) + && (security == null || security.isEmpty()) && (resource == null || resource.isEmpty()) && (interaction == null || interaction.isEmpty()) + && (operation == null || operation.isEmpty()) && (documentMailbox == null || documentMailbox.isEmpty()) + ; + } + + } + + @Block() + public static class ConformanceRestSecurityComponent extends BackboneElement { + /** + * Server adds CORS headers when responding to requests - this enables javascript applications to use the server. + */ + @Child(name="cors", type={BooleanType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Adds CORS Headers (http://enable-cors.org/)", formalDefinition="Server adds CORS headers when responding to requests - this enables javascript applications to use the server." ) + protected BooleanType cors; + + /** + * Types of security services are supported/required by the system. + */ + @Child(name="service", type={CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="OAuth | OAuth2 | NTLM | Basic | Kerberos", formalDefinition="Types of security services are supported/required by the system." ) + protected List service; + + /** + * General description of how security works. + */ + @Child(name="description", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="General description of how security works", formalDefinition="General description of how security works." ) + protected StringType description; + + /** + * Certificates associated with security profiles. + */ + @Child(name="certificate", type={}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Certificates associated with security profiles", formalDefinition="Certificates associated with security profiles." ) + protected List certificate; + + private static final long serialVersionUID = 391663952L; + + public ConformanceRestSecurityComponent() { + super(); + } + + /** + * @return {@link #cors} (Server adds CORS headers when responding to requests - this enables javascript applications to use the server.). This is the underlying object with id, value and extensions. The accessor "getCors" gives direct access to the value + */ + public BooleanType getCorsElement() { + if (this.cors == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestSecurityComponent.cors"); + else if (Configuration.doAutoCreate()) + this.cors = new BooleanType(); // bb + return this.cors; + } + + public boolean hasCorsElement() { + return this.cors != null && !this.cors.isEmpty(); + } + + public boolean hasCors() { + return this.cors != null && !this.cors.isEmpty(); + } + + /** + * @param value {@link #cors} (Server adds CORS headers when responding to requests - this enables javascript applications to use the server.). This is the underlying object with id, value and extensions. The accessor "getCors" gives direct access to the value + */ + public ConformanceRestSecurityComponent setCorsElement(BooleanType value) { + this.cors = value; + return this; + } + + /** + * @return Server adds CORS headers when responding to requests - this enables javascript applications to use the server. + */ + public boolean getCors() { + return this.cors == null ? false : this.cors.getValue(); + } + + /** + * @param value Server adds CORS headers when responding to requests - this enables javascript applications to use the server. + */ + public ConformanceRestSecurityComponent setCors(boolean value) { + if (this.cors == null) + this.cors = new BooleanType(); + this.cors.setValue(value); + return this; + } + + /** + * @return {@link #service} (Types of security services are supported/required by the system.) + */ + public List getService() { + if (this.service == null) + this.service = new ArrayList(); + return this.service; + } + + public boolean hasService() { + if (this.service == null) + return false; + for (CodeableConcept item : this.service) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #service} (Types of security services are supported/required by the system.) + */ + // syntactic sugar + public CodeableConcept addService() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.service == null) + this.service = new ArrayList(); + this.service.add(t); + return t; + } + + /** + * @return {@link #description} (General description of how security works.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestSecurityComponent.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (General description of how security works.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public ConformanceRestSecurityComponent setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return General description of how security works. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value General description of how security works. + */ + public ConformanceRestSecurityComponent setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #certificate} (Certificates associated with security profiles.) + */ + public List getCertificate() { + if (this.certificate == null) + this.certificate = new ArrayList(); + return this.certificate; + } + + public boolean hasCertificate() { + if (this.certificate == null) + return false; + for (ConformanceRestSecurityCertificateComponent item : this.certificate) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #certificate} (Certificates associated with security profiles.) + */ + // syntactic sugar + public ConformanceRestSecurityCertificateComponent addCertificate() { //3 + ConformanceRestSecurityCertificateComponent t = new ConformanceRestSecurityCertificateComponent(); + if (this.certificate == null) + this.certificate = new ArrayList(); + this.certificate.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("cors", "boolean", "Server adds CORS headers when responding to requests - this enables javascript applications to use the server.", 0, java.lang.Integer.MAX_VALUE, cors)); + childrenList.add(new Property("service", "CodeableConcept", "Types of security services are supported/required by the system.", 0, java.lang.Integer.MAX_VALUE, service)); + childrenList.add(new Property("description", "string", "General description of how security works.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("certificate", "", "Certificates associated with security profiles.", 0, java.lang.Integer.MAX_VALUE, certificate)); + } + + public ConformanceRestSecurityComponent copy() { + ConformanceRestSecurityComponent dst = new ConformanceRestSecurityComponent(); + copyValues(dst); + dst.cors = cors == null ? null : cors.copy(); + if (service != null) { + dst.service = new ArrayList(); + for (CodeableConcept i : service) + dst.service.add(i.copy()); + }; + dst.description = description == null ? null : description.copy(); + if (certificate != null) { + dst.certificate = new ArrayList(); + for (ConformanceRestSecurityCertificateComponent i : certificate) + dst.certificate.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConformanceRestSecurityComponent)) + return false; + ConformanceRestSecurityComponent o = (ConformanceRestSecurityComponent) other; + return compareDeep(cors, o.cors, true) && compareDeep(service, o.service, true) && compareDeep(description, o.description, true) + && compareDeep(certificate, o.certificate, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConformanceRestSecurityComponent)) + return false; + ConformanceRestSecurityComponent o = (ConformanceRestSecurityComponent) other; + return compareValues(cors, o.cors, true) && compareValues(description, o.description, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (cors == null || cors.isEmpty()) && (service == null || service.isEmpty()) + && (description == null || description.isEmpty()) && (certificate == null || certificate.isEmpty()) + ; + } + + } + + @Block() + public static class ConformanceRestSecurityCertificateComponent extends BackboneElement { + /** + * Mime type for certificate. + */ + @Child(name="type", type={CodeType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Mime type for certificate", formalDefinition="Mime type for certificate." ) + protected CodeType type; + + /** + * Actual certificate. + */ + @Child(name="blob", type={Base64BinaryType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Actual certificate", formalDefinition="Actual certificate." ) + protected Base64BinaryType blob; + + private static final long serialVersionUID = 2092655854L; + + public ConformanceRestSecurityCertificateComponent() { + super(); + } + + /** + * @return {@link #type} (Mime type for certificate.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public CodeType getTypeElement() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestSecurityCertificateComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeType(); // bb + return this.type; + } + + public boolean hasTypeElement() { + return this.type != null && !this.type.isEmpty(); + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Mime type for certificate.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public ConformanceRestSecurityCertificateComponent setTypeElement(CodeType value) { + this.type = value; + return this; + } + + /** + * @return Mime type for certificate. + */ + public String getType() { + return this.type == null ? null : this.type.getValue(); + } + + /** + * @param value Mime type for certificate. + */ + public ConformanceRestSecurityCertificateComponent setType(String value) { + if (Utilities.noString(value)) + this.type = null; + else { + if (this.type == null) + this.type = new CodeType(); + this.type.setValue(value); + } + return this; + } + + /** + * @return {@link #blob} (Actual certificate.). This is the underlying object with id, value and extensions. The accessor "getBlob" gives direct access to the value + */ + public Base64BinaryType getBlobElement() { + if (this.blob == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestSecurityCertificateComponent.blob"); + else if (Configuration.doAutoCreate()) + this.blob = new Base64BinaryType(); // bb + return this.blob; + } + + public boolean hasBlobElement() { + return this.blob != null && !this.blob.isEmpty(); + } + + public boolean hasBlob() { + return this.blob != null && !this.blob.isEmpty(); + } + + /** + * @param value {@link #blob} (Actual certificate.). This is the underlying object with id, value and extensions. The accessor "getBlob" gives direct access to the value + */ + public ConformanceRestSecurityCertificateComponent setBlobElement(Base64BinaryType value) { + this.blob = value; + return this; + } + + /** + * @return Actual certificate. + */ + public byte[] getBlob() { + return this.blob == null ? null : this.blob.getValue(); + } + + /** + * @param value Actual certificate. + */ + public ConformanceRestSecurityCertificateComponent setBlob(byte[] value) { + if (value == null) + this.blob = null; + else { + if (this.blob == null) + this.blob = new Base64BinaryType(); + this.blob.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "code", "Mime type for certificate.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("blob", "base64Binary", "Actual certificate.", 0, java.lang.Integer.MAX_VALUE, blob)); + } + + public ConformanceRestSecurityCertificateComponent copy() { + ConformanceRestSecurityCertificateComponent dst = new ConformanceRestSecurityCertificateComponent(); + copyValues(dst); + dst.type = type == null ? null : type.copy(); + dst.blob = blob == null ? null : blob.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConformanceRestSecurityCertificateComponent)) + return false; + ConformanceRestSecurityCertificateComponent o = (ConformanceRestSecurityCertificateComponent) other; + return compareDeep(type, o.type, true) && compareDeep(blob, o.blob, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConformanceRestSecurityCertificateComponent)) + return false; + ConformanceRestSecurityCertificateComponent o = (ConformanceRestSecurityCertificateComponent) other; + return compareValues(type, o.type, true) && compareValues(blob, o.blob, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (blob == null || blob.isEmpty()) + ; + } + + } + + @Block() + public static class ConformanceRestResourceComponent extends BackboneElement { + /** + * A type of resource exposed via the restful interface. + */ + @Child(name="type", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="A resource type that is supported", formalDefinition="A type of resource exposed via the restful interface." ) + protected CodeType type; + + /** + * A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations. + */ + @Child(name="profile", type={Profile.class}, order=2, min=0, max=1) + @Description(shortDefinition="What structural features are supported", formalDefinition="A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations." ) + protected Reference profile; + + /** + * The actual object that is the target of the reference (A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.) + */ + protected Profile profileTarget; + + /** + * Identifies a restful operation supported by the solution. + */ + @Child(name="interaction", type={}, order=3, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="What operations are supported?", formalDefinition="Identifies a restful operation supported by the solution." ) + protected List interaction; + + /** + * Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources. + */ + @Child(name="versioning", type={CodeType.class}, order=4, min=0, max=1) + @Description(shortDefinition="no-version | versioned | versioned-update", formalDefinition="Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources." ) + protected Enumeration versioning; + + /** + * A flag for whether the server is able to return past versions as part of the vRead operation. + */ + @Child(name="readHistory", type={BooleanType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Whether vRead can return past versions", formalDefinition="A flag for whether the server is able to return past versions as part of the vRead operation." ) + protected BooleanType readHistory; + + /** + * A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server. + */ + @Child(name="updateCreate", type={BooleanType.class}, order=6, min=0, max=1) + @Description(shortDefinition="If allows/uses update to a new location", formalDefinition="A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server." ) + protected BooleanType updateCreate; + + /** + * A flag that indicates that the server supports conditional create. + */ + @Child(name="conditionalCreate", type={BooleanType.class}, order=7, min=0, max=1) + @Description(shortDefinition="If allows/uses conditional create", formalDefinition="A flag that indicates that the server supports conditional create." ) + protected BooleanType conditionalCreate; + + /** + * A flag that indicates that the server supports conditional update. + */ + @Child(name="conditionalUpdate", type={BooleanType.class}, order=8, min=0, max=1) + @Description(shortDefinition="If allows/uses conditional update", formalDefinition="A flag that indicates that the server supports conditional update." ) + protected BooleanType conditionalUpdate; + + /** + * A flag that indicates that the server supports conditional delete. + */ + @Child(name="conditionalDelete", type={BooleanType.class}, order=9, min=0, max=1) + @Description(shortDefinition="If allows/uses conditional delete", formalDefinition="A flag that indicates that the server supports conditional delete." ) + protected BooleanType conditionalDelete; + + /** + * A list of _include values supported by the server. + */ + @Child(name="searchInclude", type={StringType.class}, order=10, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="_include values supported by the server", formalDefinition="A list of _include values supported by the server." ) + protected List searchInclude; + + /** + * Search parameters for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation. + */ + @Child(name="searchParam", type={}, order=11, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Search params supported by implementation", formalDefinition="Search parameters for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation." ) + protected List searchParam; + + private static final long serialVersionUID = -1665668054L; + + public ConformanceRestResourceComponent() { + super(); + } + + public ConformanceRestResourceComponent(CodeType type) { + super(); + this.type = type; + } + + /** + * @return {@link #type} (A type of resource exposed via the restful interface.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public CodeType getTypeElement() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeType(); // bb + return this.type; + } + + public boolean hasTypeElement() { + return this.type != null && !this.type.isEmpty(); + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (A type of resource exposed via the restful interface.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public ConformanceRestResourceComponent setTypeElement(CodeType value) { + this.type = value; + return this; + } + + /** + * @return A type of resource exposed via the restful interface. + */ + public String getType() { + return this.type == null ? null : this.type.getValue(); + } + + /** + * @param value A type of resource exposed via the restful interface. + */ + public ConformanceRestResourceComponent setType(String value) { + if (this.type == null) + this.type = new CodeType(); + this.type.setValue(value); + return this; + } + + /** + * @return {@link #profile} (A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.) + */ + public Reference getProfile() { + if (this.profile == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceComponent.profile"); + else if (Configuration.doAutoCreate()) + this.profile = new Reference(); // cc + return this.profile; + } + + public boolean hasProfile() { + return this.profile != null && !this.profile.isEmpty(); + } + + /** + * @param value {@link #profile} (A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.) + */ + public ConformanceRestResourceComponent setProfile(Reference value) { + this.profile = value; + return this; + } + + /** + * @return {@link #profile} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.) + */ + public Profile getProfileTarget() { + if (this.profileTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceComponent.profile"); + else if (Configuration.doAutoCreate()) + this.profileTarget = new Profile(); // aa + return this.profileTarget; + } + + /** + * @param value {@link #profile} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.) + */ + public ConformanceRestResourceComponent setProfileTarget(Profile value) { + this.profileTarget = value; + return this; + } + + /** + * @return {@link #interaction} (Identifies a restful operation supported by the solution.) + */ + public List getInteraction() { + if (this.interaction == null) + this.interaction = new ArrayList(); + return this.interaction; + } + + public boolean hasInteraction() { + if (this.interaction == null) + return false; + for (ResourceInteractionComponent item : this.interaction) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #interaction} (Identifies a restful operation supported by the solution.) + */ + // syntactic sugar + public ResourceInteractionComponent addInteraction() { //3 + ResourceInteractionComponent t = new ResourceInteractionComponent(); + if (this.interaction == null) + this.interaction = new ArrayList(); + this.interaction.add(t); + return t; + } + + /** + * @return {@link #versioning} (Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources.). This is the underlying object with id, value and extensions. The accessor "getVersioning" gives direct access to the value + */ + public Enumeration getVersioningElement() { + if (this.versioning == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceComponent.versioning"); + else if (Configuration.doAutoCreate()) + this.versioning = new Enumeration(new VersioningPolicyEnumFactory()); // bb + return this.versioning; + } + + public boolean hasVersioningElement() { + return this.versioning != null && !this.versioning.isEmpty(); + } + + public boolean hasVersioning() { + return this.versioning != null && !this.versioning.isEmpty(); + } + + /** + * @param value {@link #versioning} (Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources.). This is the underlying object with id, value and extensions. The accessor "getVersioning" gives direct access to the value + */ + public ConformanceRestResourceComponent setVersioningElement(Enumeration value) { + this.versioning = value; + return this; + } + + /** + * @return Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources. + */ + public VersioningPolicy getVersioning() { + return this.versioning == null ? null : this.versioning.getValue(); + } + + /** + * @param value Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources. + */ + public ConformanceRestResourceComponent setVersioning(VersioningPolicy value) { + if (value == null) + this.versioning = null; + else { + if (this.versioning == null) + this.versioning = new Enumeration(new VersioningPolicyEnumFactory()); + this.versioning.setValue(value); + } + return this; + } + + /** + * @return {@link #readHistory} (A flag for whether the server is able to return past versions as part of the vRead operation.). This is the underlying object with id, value and extensions. The accessor "getReadHistory" gives direct access to the value + */ + public BooleanType getReadHistoryElement() { + if (this.readHistory == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceComponent.readHistory"); + else if (Configuration.doAutoCreate()) + this.readHistory = new BooleanType(); // bb + return this.readHistory; + } + + public boolean hasReadHistoryElement() { + return this.readHistory != null && !this.readHistory.isEmpty(); + } + + public boolean hasReadHistory() { + return this.readHistory != null && !this.readHistory.isEmpty(); + } + + /** + * @param value {@link #readHistory} (A flag for whether the server is able to return past versions as part of the vRead operation.). This is the underlying object with id, value and extensions. The accessor "getReadHistory" gives direct access to the value + */ + public ConformanceRestResourceComponent setReadHistoryElement(BooleanType value) { + this.readHistory = value; + return this; + } + + /** + * @return A flag for whether the server is able to return past versions as part of the vRead operation. + */ + public boolean getReadHistory() { + return this.readHistory == null ? false : this.readHistory.getValue(); + } + + /** + * @param value A flag for whether the server is able to return past versions as part of the vRead operation. + */ + public ConformanceRestResourceComponent setReadHistory(boolean value) { + if (this.readHistory == null) + this.readHistory = new BooleanType(); + this.readHistory.setValue(value); + return this; + } + + /** + * @return {@link #updateCreate} (A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server.). This is the underlying object with id, value and extensions. The accessor "getUpdateCreate" gives direct access to the value + */ + public BooleanType getUpdateCreateElement() { + if (this.updateCreate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceComponent.updateCreate"); + else if (Configuration.doAutoCreate()) + this.updateCreate = new BooleanType(); // bb + return this.updateCreate; + } + + public boolean hasUpdateCreateElement() { + return this.updateCreate != null && !this.updateCreate.isEmpty(); + } + + public boolean hasUpdateCreate() { + return this.updateCreate != null && !this.updateCreate.isEmpty(); + } + + /** + * @param value {@link #updateCreate} (A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server.). This is the underlying object with id, value and extensions. The accessor "getUpdateCreate" gives direct access to the value + */ + public ConformanceRestResourceComponent setUpdateCreateElement(BooleanType value) { + this.updateCreate = value; + return this; + } + + /** + * @return A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server. + */ + public boolean getUpdateCreate() { + return this.updateCreate == null ? false : this.updateCreate.getValue(); + } + + /** + * @param value A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server. + */ + public ConformanceRestResourceComponent setUpdateCreate(boolean value) { + if (this.updateCreate == null) + this.updateCreate = new BooleanType(); + this.updateCreate.setValue(value); + return this; + } + + /** + * @return {@link #conditionalCreate} (A flag that indicates that the server supports conditional create.). This is the underlying object with id, value and extensions. The accessor "getConditionalCreate" gives direct access to the value + */ + public BooleanType getConditionalCreateElement() { + if (this.conditionalCreate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceComponent.conditionalCreate"); + else if (Configuration.doAutoCreate()) + this.conditionalCreate = new BooleanType(); // bb + return this.conditionalCreate; + } + + public boolean hasConditionalCreateElement() { + return this.conditionalCreate != null && !this.conditionalCreate.isEmpty(); + } + + public boolean hasConditionalCreate() { + return this.conditionalCreate != null && !this.conditionalCreate.isEmpty(); + } + + /** + * @param value {@link #conditionalCreate} (A flag that indicates that the server supports conditional create.). This is the underlying object with id, value and extensions. The accessor "getConditionalCreate" gives direct access to the value + */ + public ConformanceRestResourceComponent setConditionalCreateElement(BooleanType value) { + this.conditionalCreate = value; + return this; + } + + /** + * @return A flag that indicates that the server supports conditional create. + */ + public boolean getConditionalCreate() { + return this.conditionalCreate == null ? false : this.conditionalCreate.getValue(); + } + + /** + * @param value A flag that indicates that the server supports conditional create. + */ + public ConformanceRestResourceComponent setConditionalCreate(boolean value) { + if (this.conditionalCreate == null) + this.conditionalCreate = new BooleanType(); + this.conditionalCreate.setValue(value); + return this; + } + + /** + * @return {@link #conditionalUpdate} (A flag that indicates that the server supports conditional update.). This is the underlying object with id, value and extensions. The accessor "getConditionalUpdate" gives direct access to the value + */ + public BooleanType getConditionalUpdateElement() { + if (this.conditionalUpdate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceComponent.conditionalUpdate"); + else if (Configuration.doAutoCreate()) + this.conditionalUpdate = new BooleanType(); // bb + return this.conditionalUpdate; + } + + public boolean hasConditionalUpdateElement() { + return this.conditionalUpdate != null && !this.conditionalUpdate.isEmpty(); + } + + public boolean hasConditionalUpdate() { + return this.conditionalUpdate != null && !this.conditionalUpdate.isEmpty(); + } + + /** + * @param value {@link #conditionalUpdate} (A flag that indicates that the server supports conditional update.). This is the underlying object with id, value and extensions. The accessor "getConditionalUpdate" gives direct access to the value + */ + public ConformanceRestResourceComponent setConditionalUpdateElement(BooleanType value) { + this.conditionalUpdate = value; + return this; + } + + /** + * @return A flag that indicates that the server supports conditional update. + */ + public boolean getConditionalUpdate() { + return this.conditionalUpdate == null ? false : this.conditionalUpdate.getValue(); + } + + /** + * @param value A flag that indicates that the server supports conditional update. + */ + public ConformanceRestResourceComponent setConditionalUpdate(boolean value) { + if (this.conditionalUpdate == null) + this.conditionalUpdate = new BooleanType(); + this.conditionalUpdate.setValue(value); + return this; + } + + /** + * @return {@link #conditionalDelete} (A flag that indicates that the server supports conditional delete.). This is the underlying object with id, value and extensions. The accessor "getConditionalDelete" gives direct access to the value + */ + public BooleanType getConditionalDeleteElement() { + if (this.conditionalDelete == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceComponent.conditionalDelete"); + else if (Configuration.doAutoCreate()) + this.conditionalDelete = new BooleanType(); // bb + return this.conditionalDelete; + } + + public boolean hasConditionalDeleteElement() { + return this.conditionalDelete != null && !this.conditionalDelete.isEmpty(); + } + + public boolean hasConditionalDelete() { + return this.conditionalDelete != null && !this.conditionalDelete.isEmpty(); + } + + /** + * @param value {@link #conditionalDelete} (A flag that indicates that the server supports conditional delete.). This is the underlying object with id, value and extensions. The accessor "getConditionalDelete" gives direct access to the value + */ + public ConformanceRestResourceComponent setConditionalDeleteElement(BooleanType value) { + this.conditionalDelete = value; + return this; + } + + /** + * @return A flag that indicates that the server supports conditional delete. + */ + public boolean getConditionalDelete() { + return this.conditionalDelete == null ? false : this.conditionalDelete.getValue(); + } + + /** + * @param value A flag that indicates that the server supports conditional delete. + */ + public ConformanceRestResourceComponent setConditionalDelete(boolean value) { + if (this.conditionalDelete == null) + this.conditionalDelete = new BooleanType(); + this.conditionalDelete.setValue(value); + return this; + } + + /** + * @return {@link #searchInclude} (A list of _include values supported by the server.) + */ + public List getSearchInclude() { + if (this.searchInclude == null) + this.searchInclude = new ArrayList(); + return this.searchInclude; + } + + public boolean hasSearchInclude() { + if (this.searchInclude == null) + return false; + for (StringType item : this.searchInclude) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #searchInclude} (A list of _include values supported by the server.) + */ + // syntactic sugar + public StringType addSearchIncludeElement() {//2 + StringType t = new StringType(); + if (this.searchInclude == null) + this.searchInclude = new ArrayList(); + this.searchInclude.add(t); + return t; + } + + /** + * @param value {@link #searchInclude} (A list of _include values supported by the server.) + */ + public ConformanceRestResourceComponent addSearchInclude(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.searchInclude == null) + this.searchInclude = new ArrayList(); + this.searchInclude.add(t); + return this; + } + + /** + * @param value {@link #searchInclude} (A list of _include values supported by the server.) + */ + public boolean hasSearchInclude(String value) { + if (this.searchInclude == null) + return false; + for (StringType v : this.searchInclude) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #searchParam} (Search parameters for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation.) + */ + public List getSearchParam() { + if (this.searchParam == null) + this.searchParam = new ArrayList(); + return this.searchParam; + } + + public boolean hasSearchParam() { + if (this.searchParam == null) + return false; + for (ConformanceRestResourceSearchParamComponent item : this.searchParam) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #searchParam} (Search parameters for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation.) + */ + // syntactic sugar + public ConformanceRestResourceSearchParamComponent addSearchParam() { //3 + ConformanceRestResourceSearchParamComponent t = new ConformanceRestResourceSearchParamComponent(); + if (this.searchParam == null) + this.searchParam = new ArrayList(); + this.searchParam.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "code", "A type of resource exposed via the restful interface.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("profile", "Reference(Profile)", "A specification of the profile that describes the solution's support for the resource, including any constraints on cardinality, bindings, lengths or other limitations.", 0, java.lang.Integer.MAX_VALUE, profile)); + childrenList.add(new Property("interaction", "", "Identifies a restful operation supported by the solution.", 0, java.lang.Integer.MAX_VALUE, interaction)); + childrenList.add(new Property("versioning", "code", "Thi field is set to true to specify that the system does not support (server) or use (client) versioning for this resource type. If this is not set to true, the server must at least correctly track and populate the versionId meta-property on resources.", 0, java.lang.Integer.MAX_VALUE, versioning)); + childrenList.add(new Property("readHistory", "boolean", "A flag for whether the server is able to return past versions as part of the vRead operation.", 0, java.lang.Integer.MAX_VALUE, readHistory)); + childrenList.add(new Property("updateCreate", "boolean", "A flag to indicate that the server allows the client to create new identities on the server. If the update operation is used (client) or allowed (server) to a new location where a resource doesn't already exist. This means that the server allows the client to create new identities on the server.", 0, java.lang.Integer.MAX_VALUE, updateCreate)); + childrenList.add(new Property("conditionalCreate", "boolean", "A flag that indicates that the server supports conditional create.", 0, java.lang.Integer.MAX_VALUE, conditionalCreate)); + childrenList.add(new Property("conditionalUpdate", "boolean", "A flag that indicates that the server supports conditional update.", 0, java.lang.Integer.MAX_VALUE, conditionalUpdate)); + childrenList.add(new Property("conditionalDelete", "boolean", "A flag that indicates that the server supports conditional delete.", 0, java.lang.Integer.MAX_VALUE, conditionalDelete)); + childrenList.add(new Property("searchInclude", "string", "A list of _include values supported by the server.", 0, java.lang.Integer.MAX_VALUE, searchInclude)); + childrenList.add(new Property("searchParam", "", "Search parameters for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation.", 0, java.lang.Integer.MAX_VALUE, searchParam)); + } + + public ConformanceRestResourceComponent copy() { + ConformanceRestResourceComponent dst = new ConformanceRestResourceComponent(); + copyValues(dst); + dst.type = type == null ? null : type.copy(); + dst.profile = profile == null ? null : profile.copy(); + if (interaction != null) { + dst.interaction = new ArrayList(); + for (ResourceInteractionComponent i : interaction) + dst.interaction.add(i.copy()); + }; + dst.versioning = versioning == null ? null : versioning.copy(); + dst.readHistory = readHistory == null ? null : readHistory.copy(); + dst.updateCreate = updateCreate == null ? null : updateCreate.copy(); + dst.conditionalCreate = conditionalCreate == null ? null : conditionalCreate.copy(); + dst.conditionalUpdate = conditionalUpdate == null ? null : conditionalUpdate.copy(); + dst.conditionalDelete = conditionalDelete == null ? null : conditionalDelete.copy(); + if (searchInclude != null) { + dst.searchInclude = new ArrayList(); + for (StringType i : searchInclude) + dst.searchInclude.add(i.copy()); + }; + if (searchParam != null) { + dst.searchParam = new ArrayList(); + for (ConformanceRestResourceSearchParamComponent i : searchParam) + dst.searchParam.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConformanceRestResourceComponent)) + return false; + ConformanceRestResourceComponent o = (ConformanceRestResourceComponent) other; + return compareDeep(type, o.type, true) && compareDeep(profile, o.profile, true) && compareDeep(interaction, o.interaction, true) + && compareDeep(versioning, o.versioning, true) && compareDeep(readHistory, o.readHistory, true) + && compareDeep(updateCreate, o.updateCreate, true) && compareDeep(conditionalCreate, o.conditionalCreate, true) + && compareDeep(conditionalUpdate, o.conditionalUpdate, true) && compareDeep(conditionalDelete, o.conditionalDelete, true) + && compareDeep(searchInclude, o.searchInclude, true) && compareDeep(searchParam, o.searchParam, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConformanceRestResourceComponent)) + return false; + ConformanceRestResourceComponent o = (ConformanceRestResourceComponent) other; + return compareValues(type, o.type, true) && compareValues(versioning, o.versioning, true) && compareValues(readHistory, o.readHistory, true) + && compareValues(updateCreate, o.updateCreate, true) && compareValues(conditionalCreate, o.conditionalCreate, true) + && compareValues(conditionalUpdate, o.conditionalUpdate, true) && compareValues(conditionalDelete, o.conditionalDelete, true) + && compareValues(searchInclude, o.searchInclude, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (profile == null || profile.isEmpty()) + && (interaction == null || interaction.isEmpty()) && (versioning == null || versioning.isEmpty()) + && (readHistory == null || readHistory.isEmpty()) && (updateCreate == null || updateCreate.isEmpty()) + && (conditionalCreate == null || conditionalCreate.isEmpty()) && (conditionalUpdate == null || conditionalUpdate.isEmpty()) + && (conditionalDelete == null || conditionalDelete.isEmpty()) && (searchInclude == null || searchInclude.isEmpty()) + && (searchParam == null || searchParam.isEmpty()); + } + + } + + @Block() + public static class ResourceInteractionComponent extends BackboneElement { + /** + * Coded identifier of the operation, supported by the system resource. + */ + @Child(name="code", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="read | vread | update | delete | history-instance | validate | history-type | create | search-type", formalDefinition="Coded identifier of the operation, supported by the system resource." ) + protected Enumeration code; + + /** + * Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'. + */ + @Child(name="documentation", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Anything special about operation behavior", formalDefinition="Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'." ) + protected StringType documentation; + + private static final long serialVersionUID = -437507806L; + + public ResourceInteractionComponent() { + super(); + } + + public ResourceInteractionComponent(Enumeration code) { + super(); + this.code = code; + } + + /** + * @return {@link #code} (Coded identifier of the operation, supported by the system resource.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public Enumeration getCodeElement() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ResourceInteractionComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new Enumeration(new TypeRestfulInteractionEnumFactory()); // bb + return this.code; + } + + public boolean hasCodeElement() { + return this.code != null && !this.code.isEmpty(); + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Coded identifier of the operation, supported by the system resource.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public ResourceInteractionComponent setCodeElement(Enumeration value) { + this.code = value; + return this; + } + + /** + * @return Coded identifier of the operation, supported by the system resource. + */ + public TypeRestfulInteraction getCode() { + return this.code == null ? null : this.code.getValue(); + } + + /** + * @param value Coded identifier of the operation, supported by the system resource. + */ + public ResourceInteractionComponent setCode(TypeRestfulInteraction value) { + if (this.code == null) + this.code = new Enumeration(new TypeRestfulInteractionEnumFactory()); + this.code.setValue(value); + return this; + } + + /** + * @return {@link #documentation} (Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public StringType getDocumentationElement() { + if (this.documentation == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ResourceInteractionComponent.documentation"); + else if (Configuration.doAutoCreate()) + this.documentation = new StringType(); // bb + return this.documentation; + } + + public boolean hasDocumentationElement() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + public boolean hasDocumentation() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + /** + * @param value {@link #documentation} (Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public ResourceInteractionComponent setDocumentationElement(StringType value) { + this.documentation = value; + return this; + } + + /** + * @return Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'. + */ + public String getDocumentation() { + return this.documentation == null ? null : this.documentation.getValue(); + } + + /** + * @param value Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'. + */ + public ResourceInteractionComponent setDocumentation(String value) { + if (Utilities.noString(value)) + this.documentation = null; + else { + if (this.documentation == null) + this.documentation = new StringType(); + this.documentation.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "code", "Coded identifier of the operation, supported by the system resource.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("documentation", "string", "Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'.", 0, java.lang.Integer.MAX_VALUE, documentation)); + } + + public ResourceInteractionComponent copy() { + ResourceInteractionComponent dst = new ResourceInteractionComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.documentation = documentation == null ? null : documentation.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ResourceInteractionComponent)) + return false; + ResourceInteractionComponent o = (ResourceInteractionComponent) other; + return compareDeep(code, o.code, true) && compareDeep(documentation, o.documentation, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ResourceInteractionComponent)) + return false; + ResourceInteractionComponent o = (ResourceInteractionComponent) other; + return compareValues(code, o.code, true) && compareValues(documentation, o.documentation, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (documentation == null || documentation.isEmpty()) + ; + } + + } + + @Block() + public static class ConformanceRestResourceSearchParamComponent extends BackboneElement { + /** + * The name of the search parameter used in the interface. + */ + @Child(name="name", type={StringType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Name of search parameter", formalDefinition="The name of the search parameter used in the interface." ) + protected StringType name; + + /** + * A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter. + */ + @Child(name="definition", type={UriType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Source of definition for parameter", formalDefinition="A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter." ) + protected UriType definition; + + /** + * The type of value a search parameter refers to, and how the content is interpreted. + */ + @Child(name="type", type={CodeType.class}, order=3, min=1, max=1) + @Description(shortDefinition="number | date | string | token | reference | composite | quantity", formalDefinition="The type of value a search parameter refers to, and how the content is interpreted." ) + protected Enumeration type; + + /** + * This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms. + */ + @Child(name="documentation", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Server-specific usage", formalDefinition="This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms." ) + protected StringType documentation; + + /** + * Types of resource (if a resource is referenced). + */ + @Child(name="target", type={CodeType.class}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Types of resource (if a resource reference)", formalDefinition="Types of resource (if a resource is referenced)." ) + protected List target; + + /** + * Chained names supported. + */ + @Child(name="chain", type={StringType.class}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Chained names supported", formalDefinition="Chained names supported." ) + protected List chain; + + private static final long serialVersionUID = 938312816L; + + public ConformanceRestResourceSearchParamComponent() { + super(); + } + + public ConformanceRestResourceSearchParamComponent(StringType name, Enumeration type) { + super(); + this.name = name; + this.type = type; + } + + /** + * @return {@link #name} (The name of the search parameter used in the interface.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceSearchParamComponent.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (The name of the search parameter used in the interface.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public ConformanceRestResourceSearchParamComponent setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return The name of the search parameter used in the interface. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value The name of the search parameter used in the interface. + */ + public ConformanceRestResourceSearchParamComponent setName(String value) { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + return this; + } + + /** + * @return {@link #definition} (A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value + */ + public UriType getDefinitionElement() { + if (this.definition == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceSearchParamComponent.definition"); + else if (Configuration.doAutoCreate()) + this.definition = new UriType(); // bb + return this.definition; + } + + public boolean hasDefinitionElement() { + return this.definition != null && !this.definition.isEmpty(); + } + + public boolean hasDefinition() { + return this.definition != null && !this.definition.isEmpty(); + } + + /** + * @param value {@link #definition} (A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value + */ + public ConformanceRestResourceSearchParamComponent setDefinitionElement(UriType value) { + this.definition = value; + return this; + } + + /** + * @return A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter. + */ + public String getDefinition() { + return this.definition == null ? null : this.definition.getValue(); + } + + /** + * @param value A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter. + */ + public ConformanceRestResourceSearchParamComponent setDefinition(String value) { + if (Utilities.noString(value)) + this.definition = null; + else { + if (this.definition == null) + this.definition = new UriType(); + this.definition.setValue(value); + } + return this; + } + + /** + * @return {@link #type} (The type of value a search parameter refers to, and how the content is interpreted.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public Enumeration getTypeElement() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceSearchParamComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new Enumeration(new SearchParamTypeEnumFactory()); // bb + return this.type; + } + + public boolean hasTypeElement() { + return this.type != null && !this.type.isEmpty(); + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The type of value a search parameter refers to, and how the content is interpreted.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public ConformanceRestResourceSearchParamComponent setTypeElement(Enumeration value) { + this.type = value; + return this; + } + + /** + * @return The type of value a search parameter refers to, and how the content is interpreted. + */ + public SearchParamType getType() { + return this.type == null ? null : this.type.getValue(); + } + + /** + * @param value The type of value a search parameter refers to, and how the content is interpreted. + */ + public ConformanceRestResourceSearchParamComponent setType(SearchParamType value) { + if (this.type == null) + this.type = new Enumeration(new SearchParamTypeEnumFactory()); + this.type.setValue(value); + return this; + } + + /** + * @return {@link #documentation} (This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public StringType getDocumentationElement() { + if (this.documentation == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestResourceSearchParamComponent.documentation"); + else if (Configuration.doAutoCreate()) + this.documentation = new StringType(); // bb + return this.documentation; + } + + public boolean hasDocumentationElement() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + public boolean hasDocumentation() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + /** + * @param value {@link #documentation} (This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public ConformanceRestResourceSearchParamComponent setDocumentationElement(StringType value) { + this.documentation = value; + return this; + } + + /** + * @return This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms. + */ + public String getDocumentation() { + return this.documentation == null ? null : this.documentation.getValue(); + } + + /** + * @param value This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms. + */ + public ConformanceRestResourceSearchParamComponent setDocumentation(String value) { + if (Utilities.noString(value)) + this.documentation = null; + else { + if (this.documentation == null) + this.documentation = new StringType(); + this.documentation.setValue(value); + } + return this; + } + + /** + * @return {@link #target} (Types of resource (if a resource is referenced).) + */ + public List getTarget() { + if (this.target == null) + this.target = new ArrayList(); + return this.target; + } + + public boolean hasTarget() { + if (this.target == null) + return false; + for (CodeType item : this.target) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #target} (Types of resource (if a resource is referenced).) + */ + // syntactic sugar + public CodeType addTargetElement() {//2 + CodeType t = new CodeType(); + if (this.target == null) + this.target = new ArrayList(); + this.target.add(t); + return t; + } + + /** + * @param value {@link #target} (Types of resource (if a resource is referenced).) + */ + public ConformanceRestResourceSearchParamComponent addTarget(String value) { //1 + CodeType t = new CodeType(); + t.setValue(value); + if (this.target == null) + this.target = new ArrayList(); + this.target.add(t); + return this; + } + + /** + * @param value {@link #target} (Types of resource (if a resource is referenced).) + */ + public boolean hasTarget(String value) { + if (this.target == null) + return false; + for (CodeType v : this.target) + if (v.equals(value)) // code + return true; + return false; + } + + /** + * @return {@link #chain} (Chained names supported.) + */ + public List getChain() { + if (this.chain == null) + this.chain = new ArrayList(); + return this.chain; + } + + public boolean hasChain() { + if (this.chain == null) + return false; + for (StringType item : this.chain) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #chain} (Chained names supported.) + */ + // syntactic sugar + public StringType addChainElement() {//2 + StringType t = new StringType(); + if (this.chain == null) + this.chain = new ArrayList(); + this.chain.add(t); + return t; + } + + /** + * @param value {@link #chain} (Chained names supported.) + */ + public ConformanceRestResourceSearchParamComponent addChain(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.chain == null) + this.chain = new ArrayList(); + this.chain.add(t); + return this; + } + + /** + * @param value {@link #chain} (Chained names supported.) + */ + public boolean hasChain(String value) { + if (this.chain == null) + return false; + for (StringType v : this.chain) + if (v.equals(value)) // string + return true; + return false; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("name", "string", "The name of the search parameter used in the interface.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("definition", "uri", "A formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter.", 0, java.lang.Integer.MAX_VALUE, definition)); + childrenList.add(new Property("type", "code", "The type of value a search parameter refers to, and how the content is interpreted.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("documentation", "string", "This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms.", 0, java.lang.Integer.MAX_VALUE, documentation)); + childrenList.add(new Property("target", "code", "Types of resource (if a resource is referenced).", 0, java.lang.Integer.MAX_VALUE, target)); + childrenList.add(new Property("chain", "string", "Chained names supported.", 0, java.lang.Integer.MAX_VALUE, chain)); + } + + public ConformanceRestResourceSearchParamComponent copy() { + ConformanceRestResourceSearchParamComponent dst = new ConformanceRestResourceSearchParamComponent(); + copyValues(dst); + dst.name = name == null ? null : name.copy(); + dst.definition = definition == null ? null : definition.copy(); + dst.type = type == null ? null : type.copy(); + dst.documentation = documentation == null ? null : documentation.copy(); + if (target != null) { + dst.target = new ArrayList(); + for (CodeType i : target) + dst.target.add(i.copy()); + }; + if (chain != null) { + dst.chain = new ArrayList(); + for (StringType i : chain) + dst.chain.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConformanceRestResourceSearchParamComponent)) + return false; + ConformanceRestResourceSearchParamComponent o = (ConformanceRestResourceSearchParamComponent) other; + return compareDeep(name, o.name, true) && compareDeep(definition, o.definition, true) && compareDeep(type, o.type, true) + && compareDeep(documentation, o.documentation, true) && compareDeep(target, o.target, true) && compareDeep(chain, o.chain, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConformanceRestResourceSearchParamComponent)) + return false; + ConformanceRestResourceSearchParamComponent o = (ConformanceRestResourceSearchParamComponent) other; + return compareValues(name, o.name, true) && compareValues(definition, o.definition, true) && compareValues(type, o.type, true) + && compareValues(documentation, o.documentation, true) && compareValues(target, o.target, true) && compareValues(chain, o.chain, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (name == null || name.isEmpty()) && (definition == null || definition.isEmpty()) + && (type == null || type.isEmpty()) && (documentation == null || documentation.isEmpty()) + && (target == null || target.isEmpty()) && (chain == null || chain.isEmpty()); + } + + } + + @Block() + public static class SystemInteractionComponent extends BackboneElement { + /** + * A coded identifier of the operation, supported by the system. + */ + @Child(name="code", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="transaction | search-system | history-system", formalDefinition="A coded identifier of the operation, supported by the system." ) + protected Enumeration code; + + /** + * Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented. + */ + @Child(name="documentation", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Anything special about operation behavior", formalDefinition="Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented." ) + protected StringType documentation; + + private static final long serialVersionUID = 510675287L; + + public SystemInteractionComponent() { + super(); + } + + public SystemInteractionComponent(Enumeration code) { + super(); + this.code = code; + } + + /** + * @return {@link #code} (A coded identifier of the operation, supported by the system.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public Enumeration getCodeElement() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SystemInteractionComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new Enumeration(new SystemRestfulInteractionEnumFactory()); // bb + return this.code; + } + + public boolean hasCodeElement() { + return this.code != null && !this.code.isEmpty(); + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (A coded identifier of the operation, supported by the system.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public SystemInteractionComponent setCodeElement(Enumeration value) { + this.code = value; + return this; + } + + /** + * @return A coded identifier of the operation, supported by the system. + */ + public SystemRestfulInteraction getCode() { + return this.code == null ? null : this.code.getValue(); + } + + /** + * @param value A coded identifier of the operation, supported by the system. + */ + public SystemInteractionComponent setCode(SystemRestfulInteraction value) { + if (this.code == null) + this.code = new Enumeration(new SystemRestfulInteractionEnumFactory()); + this.code.setValue(value); + return this; + } + + /** + * @return {@link #documentation} (Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public StringType getDocumentationElement() { + if (this.documentation == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SystemInteractionComponent.documentation"); + else if (Configuration.doAutoCreate()) + this.documentation = new StringType(); // bb + return this.documentation; + } + + public boolean hasDocumentationElement() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + public boolean hasDocumentation() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + /** + * @param value {@link #documentation} (Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public SystemInteractionComponent setDocumentationElement(StringType value) { + this.documentation = value; + return this; + } + + /** + * @return Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented. + */ + public String getDocumentation() { + return this.documentation == null ? null : this.documentation.getValue(); + } + + /** + * @param value Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented. + */ + public SystemInteractionComponent setDocumentation(String value) { + if (Utilities.noString(value)) + this.documentation = null; + else { + if (this.documentation == null) + this.documentation = new StringType(); + this.documentation.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "code", "A coded identifier of the operation, supported by the system.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("documentation", "string", "Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented.", 0, java.lang.Integer.MAX_VALUE, documentation)); + } + + public SystemInteractionComponent copy() { + SystemInteractionComponent dst = new SystemInteractionComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.documentation = documentation == null ? null : documentation.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof SystemInteractionComponent)) + return false; + SystemInteractionComponent o = (SystemInteractionComponent) other; + return compareDeep(code, o.code, true) && compareDeep(documentation, o.documentation, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof SystemInteractionComponent)) + return false; + SystemInteractionComponent o = (SystemInteractionComponent) other; + return compareValues(code, o.code, true) && compareValues(documentation, o.documentation, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (documentation == null || documentation.isEmpty()) + ; + } + + } + + @Block() + public static class ConformanceRestOperationComponent extends BackboneElement { + /** + * The name of a query, which is used in the _query parameter when the query is called. + */ + @Child(name="name", type={StringType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Name by which the operation/query is invoked", formalDefinition="The name of a query, which is used in the _query parameter when the query is called." ) + protected StringType name; + + /** + * Where the formal definition can be found. + */ + @Child(name="definition", type={OperationDefinition.class}, order=2, min=1, max=1) + @Description(shortDefinition="The defined operation/query", formalDefinition="Where the formal definition can be found." ) + protected Reference definition; + + /** + * The actual object that is the target of the reference (Where the formal definition can be found.) + */ + protected OperationDefinition definitionTarget; + + private static final long serialVersionUID = 122107272L; + + public ConformanceRestOperationComponent() { + super(); + } + + public ConformanceRestOperationComponent(StringType name, Reference definition) { + super(); + this.name = name; + this.definition = definition; + } + + /** + * @return {@link #name} (The name of a query, which is used in the _query parameter when the query is called.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestOperationComponent.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (The name of a query, which is used in the _query parameter when the query is called.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public ConformanceRestOperationComponent setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return The name of a query, which is used in the _query parameter when the query is called. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value The name of a query, which is used in the _query parameter when the query is called. + */ + public ConformanceRestOperationComponent setName(String value) { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + return this; + } + + /** + * @return {@link #definition} (Where the formal definition can be found.) + */ + public Reference getDefinition() { + if (this.definition == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestOperationComponent.definition"); + else if (Configuration.doAutoCreate()) + this.definition = new Reference(); // cc + return this.definition; + } + + public boolean hasDefinition() { + return this.definition != null && !this.definition.isEmpty(); + } + + /** + * @param value {@link #definition} (Where the formal definition can be found.) + */ + public ConformanceRestOperationComponent setDefinition(Reference value) { + this.definition = value; + return this; + } + + /** + * @return {@link #definition} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Where the formal definition can be found.) + */ + public OperationDefinition getDefinitionTarget() { + if (this.definitionTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceRestOperationComponent.definition"); + else if (Configuration.doAutoCreate()) + this.definitionTarget = new OperationDefinition(); // aa + return this.definitionTarget; + } + + /** + * @param value {@link #definition} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Where the formal definition can be found.) + */ + public ConformanceRestOperationComponent setDefinitionTarget(OperationDefinition value) { + this.definitionTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("name", "string", "The name of a query, which is used in the _query parameter when the query is called.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("definition", "Reference(OperationDefinition)", "Where the formal definition can be found.", 0, java.lang.Integer.MAX_VALUE, definition)); + } + + public ConformanceRestOperationComponent copy() { + ConformanceRestOperationComponent dst = new ConformanceRestOperationComponent(); + copyValues(dst); + dst.name = name == null ? null : name.copy(); + dst.definition = definition == null ? null : definition.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConformanceRestOperationComponent)) + return false; + ConformanceRestOperationComponent o = (ConformanceRestOperationComponent) other; + return compareDeep(name, o.name, true) && compareDeep(definition, o.definition, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConformanceRestOperationComponent)) + return false; + ConformanceRestOperationComponent o = (ConformanceRestOperationComponent) other; + return compareValues(name, o.name, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (name == null || name.isEmpty()) && (definition == null || definition.isEmpty()) + ; + } + + } + + @Block() + public static class ConformanceMessagingComponent extends BackboneElement { + /** + * An address to which messages and/or replies are to be sent. + */ + @Child(name="endpoint", type={UriType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Actual endpoint being described", formalDefinition="An address to which messages and/or replies are to be sent." ) + protected UriType endpoint; + + /** + * Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender). + */ + @Child(name="reliableCache", type={IntegerType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Reliable Message Cache Length (min)", formalDefinition="Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender)." ) + protected IntegerType reliableCache; + + /** + * Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner. + */ + @Child(name="documentation", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Messaging interface behavior details", formalDefinition="Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner." ) + protected StringType documentation; + + /** + * A description of the solution's support for an event at this end point. + */ + @Child(name="event", type={}, order=4, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Declare support for this event", formalDefinition="A description of the solution's support for an event at this end point." ) + protected List event; + + private static final long serialVersionUID = -217151442L; + + public ConformanceMessagingComponent() { + super(); + } + + /** + * @return {@link #endpoint} (An address to which messages and/or replies are to be sent.). This is the underlying object with id, value and extensions. The accessor "getEndpoint" gives direct access to the value + */ + public UriType getEndpointElement() { + if (this.endpoint == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceMessagingComponent.endpoint"); + else if (Configuration.doAutoCreate()) + this.endpoint = new UriType(); // bb + return this.endpoint; + } + + public boolean hasEndpointElement() { + return this.endpoint != null && !this.endpoint.isEmpty(); + } + + public boolean hasEndpoint() { + return this.endpoint != null && !this.endpoint.isEmpty(); + } + + /** + * @param value {@link #endpoint} (An address to which messages and/or replies are to be sent.). This is the underlying object with id, value and extensions. The accessor "getEndpoint" gives direct access to the value + */ + public ConformanceMessagingComponent setEndpointElement(UriType value) { + this.endpoint = value; + return this; + } + + /** + * @return An address to which messages and/or replies are to be sent. + */ + public String getEndpoint() { + return this.endpoint == null ? null : this.endpoint.getValue(); + } + + /** + * @param value An address to which messages and/or replies are to be sent. + */ + public ConformanceMessagingComponent setEndpoint(String value) { + if (Utilities.noString(value)) + this.endpoint = null; + else { + if (this.endpoint == null) + this.endpoint = new UriType(); + this.endpoint.setValue(value); + } + return this; + } + + /** + * @return {@link #reliableCache} (Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender).). This is the underlying object with id, value and extensions. The accessor "getReliableCache" gives direct access to the value + */ + public IntegerType getReliableCacheElement() { + if (this.reliableCache == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceMessagingComponent.reliableCache"); + else if (Configuration.doAutoCreate()) + this.reliableCache = new IntegerType(); // bb + return this.reliableCache; + } + + public boolean hasReliableCacheElement() { + return this.reliableCache != null && !this.reliableCache.isEmpty(); + } + + public boolean hasReliableCache() { + return this.reliableCache != null && !this.reliableCache.isEmpty(); + } + + /** + * @param value {@link #reliableCache} (Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender).). This is the underlying object with id, value and extensions. The accessor "getReliableCache" gives direct access to the value + */ + public ConformanceMessagingComponent setReliableCacheElement(IntegerType value) { + this.reliableCache = value; + return this; + } + + /** + * @return Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender). + */ + public int getReliableCache() { + return this.reliableCache == null ? 0 : this.reliableCache.getValue(); + } + + /** + * @param value Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender). + */ + public ConformanceMessagingComponent setReliableCache(int value) { + if (this.reliableCache == null) + this.reliableCache = new IntegerType(); + this.reliableCache.setValue(value); + return this; + } + + /** + * @return {@link #documentation} (Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public StringType getDocumentationElement() { + if (this.documentation == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceMessagingComponent.documentation"); + else if (Configuration.doAutoCreate()) + this.documentation = new StringType(); // bb + return this.documentation; + } + + public boolean hasDocumentationElement() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + public boolean hasDocumentation() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + /** + * @param value {@link #documentation} (Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public ConformanceMessagingComponent setDocumentationElement(StringType value) { + this.documentation = value; + return this; + } + + /** + * @return Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner. + */ + public String getDocumentation() { + return this.documentation == null ? null : this.documentation.getValue(); + } + + /** + * @param value Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner. + */ + public ConformanceMessagingComponent setDocumentation(String value) { + if (Utilities.noString(value)) + this.documentation = null; + else { + if (this.documentation == null) + this.documentation = new StringType(); + this.documentation.setValue(value); + } + return this; + } + + /** + * @return {@link #event} (A description of the solution's support for an event at this end point.) + */ + public List getEvent() { + if (this.event == null) + this.event = new ArrayList(); + return this.event; + } + + public boolean hasEvent() { + if (this.event == null) + return false; + for (ConformanceMessagingEventComponent item : this.event) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #event} (A description of the solution's support for an event at this end point.) + */ + // syntactic sugar + public ConformanceMessagingEventComponent addEvent() { //3 + ConformanceMessagingEventComponent t = new ConformanceMessagingEventComponent(); + if (this.event == null) + this.event = new ArrayList(); + this.event.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("endpoint", "uri", "An address to which messages and/or replies are to be sent.", 0, java.lang.Integer.MAX_VALUE, endpoint)); + childrenList.add(new Property("reliableCache", "integer", "Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender).", 0, java.lang.Integer.MAX_VALUE, reliableCache)); + childrenList.add(new Property("documentation", "string", "Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the conformance statement. For example, process for becoming an authorized messaging exchange partner.", 0, java.lang.Integer.MAX_VALUE, documentation)); + childrenList.add(new Property("event", "", "A description of the solution's support for an event at this end point.", 0, java.lang.Integer.MAX_VALUE, event)); + } + + public ConformanceMessagingComponent copy() { + ConformanceMessagingComponent dst = new ConformanceMessagingComponent(); + copyValues(dst); + dst.endpoint = endpoint == null ? null : endpoint.copy(); + dst.reliableCache = reliableCache == null ? null : reliableCache.copy(); + dst.documentation = documentation == null ? null : documentation.copy(); + if (event != null) { + dst.event = new ArrayList(); + for (ConformanceMessagingEventComponent i : event) + dst.event.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConformanceMessagingComponent)) + return false; + ConformanceMessagingComponent o = (ConformanceMessagingComponent) other; + return compareDeep(endpoint, o.endpoint, true) && compareDeep(reliableCache, o.reliableCache, true) + && compareDeep(documentation, o.documentation, true) && compareDeep(event, o.event, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConformanceMessagingComponent)) + return false; + ConformanceMessagingComponent o = (ConformanceMessagingComponent) other; + return compareValues(endpoint, o.endpoint, true) && compareValues(reliableCache, o.reliableCache, true) + && compareValues(documentation, o.documentation, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (endpoint == null || endpoint.isEmpty()) && (reliableCache == null || reliableCache.isEmpty()) + && (documentation == null || documentation.isEmpty()) && (event == null || event.isEmpty()) + ; + } + + } + + @Block() + public static class ConformanceMessagingEventComponent extends BackboneElement { + /** + * A coded identifier of a supported messaging event. + */ + @Child(name="code", type={Coding.class}, order=1, min=1, max=1) + @Description(shortDefinition="Event type", formalDefinition="A coded identifier of a supported messaging event." ) + protected Coding code; + + /** + * The impact of the content of the message. + */ + @Child(name="category", type={CodeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Consequence | Currency | Notification", formalDefinition="The impact of the content of the message." ) + protected Enumeration category; + + /** + * The mode of this event declaration - whether application is sender or receiver. + */ + @Child(name="mode", type={CodeType.class}, order=3, min=1, max=1) + @Description(shortDefinition="sender | receiver", formalDefinition="The mode of this event declaration - whether application is sender or receiver." ) + protected Enumeration mode; + + /** + * A list of the messaging transport protocol(s) identifiers, supported by this endpoint. + */ + @Child(name="protocol", type={Coding.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="http | ftp | mllp +", formalDefinition="A list of the messaging transport protocol(s) identifiers, supported by this endpoint." ) + protected List protocol; + + /** + * A resource associated with the event. This is the resource that defines the event. + */ + @Child(name="focus", type={CodeType.class}, order=5, min=1, max=1) + @Description(shortDefinition="Resource that's focus of message", formalDefinition="A resource associated with the event. This is the resource that defines the event." ) + protected CodeType focus; + + /** + * Information about the request for this event. + */ + @Child(name="request", type={Profile.class}, order=6, min=1, max=1) + @Description(shortDefinition="Profile that describes the request", formalDefinition="Information about the request for this event." ) + protected Reference request; + + /** + * The actual object that is the target of the reference (Information about the request for this event.) + */ + protected Profile requestTarget; + + /** + * Information about the response for this event. + */ + @Child(name="response", type={Profile.class}, order=7, min=1, max=1) + @Description(shortDefinition="Profile that describes the response", formalDefinition="Information about the response for this event." ) + protected Reference response; + + /** + * The actual object that is the target of the reference (Information about the response for this event.) + */ + protected Profile responseTarget; + + /** + * Guidance on how this event is handled, such as internal system trigger points, business rules, etc. + */ + @Child(name="documentation", type={StringType.class}, order=8, min=0, max=1) + @Description(shortDefinition="Endpoint-specific event documentation", formalDefinition="Guidance on how this event is handled, such as internal system trigger points, business rules, etc." ) + protected StringType documentation; + + private static final long serialVersionUID = 758007981L; + + public ConformanceMessagingEventComponent() { + super(); + } + + public ConformanceMessagingEventComponent(Coding code, Enumeration mode, CodeType focus, Reference request, Reference response) { + super(); + this.code = code; + this.mode = mode; + this.focus = focus; + this.request = request; + this.response = response; + } + + /** + * @return {@link #code} (A coded identifier of a supported messaging event.) + */ + public Coding getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new Coding(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (A coded identifier of a supported messaging event.) + */ + public ConformanceMessagingEventComponent setCode(Coding value) { + this.code = value; + return this; + } + + /** + * @return {@link #category} (The impact of the content of the message.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value + */ + public Enumeration getCategoryElement() { + if (this.category == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.category"); + else if (Configuration.doAutoCreate()) + this.category = new Enumeration(new MessageSignificanceCategoryEnumFactory()); // bb + return this.category; + } + + public boolean hasCategoryElement() { + return this.category != null && !this.category.isEmpty(); + } + + public boolean hasCategory() { + return this.category != null && !this.category.isEmpty(); + } + + /** + * @param value {@link #category} (The impact of the content of the message.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value + */ + public ConformanceMessagingEventComponent setCategoryElement(Enumeration value) { + this.category = value; + return this; + } + + /** + * @return The impact of the content of the message. + */ + public MessageSignificanceCategory getCategory() { + return this.category == null ? null : this.category.getValue(); + } + + /** + * @param value The impact of the content of the message. + */ + public ConformanceMessagingEventComponent setCategory(MessageSignificanceCategory value) { + if (value == null) + this.category = null; + else { + if (this.category == null) + this.category = new Enumeration(new MessageSignificanceCategoryEnumFactory()); + this.category.setValue(value); + } + return this; + } + + /** + * @return {@link #mode} (The mode of this event declaration - whether application is sender or receiver.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value + */ + public Enumeration getModeElement() { + if (this.mode == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.mode"); + else if (Configuration.doAutoCreate()) + this.mode = new Enumeration(new MessageConformanceEventModeEnumFactory()); // bb + return this.mode; + } + + public boolean hasModeElement() { + return this.mode != null && !this.mode.isEmpty(); + } + + public boolean hasMode() { + return this.mode != null && !this.mode.isEmpty(); + } + + /** + * @param value {@link #mode} (The mode of this event declaration - whether application is sender or receiver.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value + */ + public ConformanceMessagingEventComponent setModeElement(Enumeration value) { + this.mode = value; + return this; + } + + /** + * @return The mode of this event declaration - whether application is sender or receiver. + */ + public MessageConformanceEventMode getMode() { + return this.mode == null ? null : this.mode.getValue(); + } + + /** + * @param value The mode of this event declaration - whether application is sender or receiver. + */ + public ConformanceMessagingEventComponent setMode(MessageConformanceEventMode value) { + if (this.mode == null) + this.mode = new Enumeration(new MessageConformanceEventModeEnumFactory()); + this.mode.setValue(value); + return this; + } + + /** + * @return {@link #protocol} (A list of the messaging transport protocol(s) identifiers, supported by this endpoint.) + */ + public List getProtocol() { + if (this.protocol == null) + this.protocol = new ArrayList(); + return this.protocol; + } + + public boolean hasProtocol() { + if (this.protocol == null) + return false; + for (Coding item : this.protocol) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #protocol} (A list of the messaging transport protocol(s) identifiers, supported by this endpoint.) + */ + // syntactic sugar + public Coding addProtocol() { //3 + Coding t = new Coding(); + if (this.protocol == null) + this.protocol = new ArrayList(); + this.protocol.add(t); + return t; + } + + /** + * @return {@link #focus} (A resource associated with the event. This is the resource that defines the event.). This is the underlying object with id, value and extensions. The accessor "getFocus" gives direct access to the value + */ + public CodeType getFocusElement() { + if (this.focus == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.focus"); + else if (Configuration.doAutoCreate()) + this.focus = new CodeType(); // bb + return this.focus; + } + + public boolean hasFocusElement() { + return this.focus != null && !this.focus.isEmpty(); + } + + public boolean hasFocus() { + return this.focus != null && !this.focus.isEmpty(); + } + + /** + * @param value {@link #focus} (A resource associated with the event. This is the resource that defines the event.). This is the underlying object with id, value and extensions. The accessor "getFocus" gives direct access to the value + */ + public ConformanceMessagingEventComponent setFocusElement(CodeType value) { + this.focus = value; + return this; + } + + /** + * @return A resource associated with the event. This is the resource that defines the event. + */ + public String getFocus() { + return this.focus == null ? null : this.focus.getValue(); + } + + /** + * @param value A resource associated with the event. This is the resource that defines the event. + */ + public ConformanceMessagingEventComponent setFocus(String value) { + if (this.focus == null) + this.focus = new CodeType(); + this.focus.setValue(value); + return this; + } + + /** + * @return {@link #request} (Information about the request for this event.) + */ + public Reference getRequest() { + if (this.request == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.request"); + else if (Configuration.doAutoCreate()) + this.request = new Reference(); // cc + return this.request; + } + + public boolean hasRequest() { + return this.request != null && !this.request.isEmpty(); + } + + /** + * @param value {@link #request} (Information about the request for this event.) + */ + public ConformanceMessagingEventComponent setRequest(Reference value) { + this.request = value; + return this; + } + + /** + * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Information about the request for this event.) + */ + public Profile getRequestTarget() { + if (this.requestTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.request"); + else if (Configuration.doAutoCreate()) + this.requestTarget = new Profile(); // aa + return this.requestTarget; + } + + /** + * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Information about the request for this event.) + */ + public ConformanceMessagingEventComponent setRequestTarget(Profile value) { + this.requestTarget = value; + return this; + } + + /** + * @return {@link #response} (Information about the response for this event.) + */ + public Reference getResponse() { + if (this.response == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.response"); + else if (Configuration.doAutoCreate()) + this.response = new Reference(); // cc + return this.response; + } + + public boolean hasResponse() { + return this.response != null && !this.response.isEmpty(); + } + + /** + * @param value {@link #response} (Information about the response for this event.) + */ + public ConformanceMessagingEventComponent setResponse(Reference value) { + this.response = value; + return this; + } + + /** + * @return {@link #response} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Information about the response for this event.) + */ + public Profile getResponseTarget() { + if (this.responseTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.response"); + else if (Configuration.doAutoCreate()) + this.responseTarget = new Profile(); // aa + return this.responseTarget; + } + + /** + * @param value {@link #response} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Information about the response for this event.) + */ + public ConformanceMessagingEventComponent setResponseTarget(Profile value) { + this.responseTarget = value; + return this; + } + + /** + * @return {@link #documentation} (Guidance on how this event is handled, such as internal system trigger points, business rules, etc.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public StringType getDocumentationElement() { + if (this.documentation == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceMessagingEventComponent.documentation"); + else if (Configuration.doAutoCreate()) + this.documentation = new StringType(); // bb + return this.documentation; + } + + public boolean hasDocumentationElement() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + public boolean hasDocumentation() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + /** + * @param value {@link #documentation} (Guidance on how this event is handled, such as internal system trigger points, business rules, etc.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public ConformanceMessagingEventComponent setDocumentationElement(StringType value) { + this.documentation = value; + return this; + } + + /** + * @return Guidance on how this event is handled, such as internal system trigger points, business rules, etc. + */ + public String getDocumentation() { + return this.documentation == null ? null : this.documentation.getValue(); + } + + /** + * @param value Guidance on how this event is handled, such as internal system trigger points, business rules, etc. + */ + public ConformanceMessagingEventComponent setDocumentation(String value) { + if (Utilities.noString(value)) + this.documentation = null; + else { + if (this.documentation == null) + this.documentation = new StringType(); + this.documentation.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "Coding", "A coded identifier of a supported messaging event.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("category", "code", "The impact of the content of the message.", 0, java.lang.Integer.MAX_VALUE, category)); + childrenList.add(new Property("mode", "code", "The mode of this event declaration - whether application is sender or receiver.", 0, java.lang.Integer.MAX_VALUE, mode)); + childrenList.add(new Property("protocol", "Coding", "A list of the messaging transport protocol(s) identifiers, supported by this endpoint.", 0, java.lang.Integer.MAX_VALUE, protocol)); + childrenList.add(new Property("focus", "code", "A resource associated with the event. This is the resource that defines the event.", 0, java.lang.Integer.MAX_VALUE, focus)); + childrenList.add(new Property("request", "Reference(Profile)", "Information about the request for this event.", 0, java.lang.Integer.MAX_VALUE, request)); + childrenList.add(new Property("response", "Reference(Profile)", "Information about the response for this event.", 0, java.lang.Integer.MAX_VALUE, response)); + childrenList.add(new Property("documentation", "string", "Guidance on how this event is handled, such as internal system trigger points, business rules, etc.", 0, java.lang.Integer.MAX_VALUE, documentation)); + } + + public ConformanceMessagingEventComponent copy() { + ConformanceMessagingEventComponent dst = new ConformanceMessagingEventComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.category = category == null ? null : category.copy(); + dst.mode = mode == null ? null : mode.copy(); + if (protocol != null) { + dst.protocol = new ArrayList(); + for (Coding i : protocol) + dst.protocol.add(i.copy()); + }; + dst.focus = focus == null ? null : focus.copy(); + dst.request = request == null ? null : request.copy(); + dst.response = response == null ? null : response.copy(); + dst.documentation = documentation == null ? null : documentation.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConformanceMessagingEventComponent)) + return false; + ConformanceMessagingEventComponent o = (ConformanceMessagingEventComponent) other; + return compareDeep(code, o.code, true) && compareDeep(category, o.category, true) && compareDeep(mode, o.mode, true) + && compareDeep(protocol, o.protocol, true) && compareDeep(focus, o.focus, true) && compareDeep(request, o.request, true) + && compareDeep(response, o.response, true) && compareDeep(documentation, o.documentation, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConformanceMessagingEventComponent)) + return false; + ConformanceMessagingEventComponent o = (ConformanceMessagingEventComponent) other; + return compareValues(category, o.category, true) && compareValues(mode, o.mode, true) && compareValues(focus, o.focus, true) + && compareValues(documentation, o.documentation, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (category == null || category.isEmpty()) + && (mode == null || mode.isEmpty()) && (protocol == null || protocol.isEmpty()) && (focus == null || focus.isEmpty()) + && (request == null || request.isEmpty()) && (response == null || response.isEmpty()) && (documentation == null || documentation.isEmpty()) + ; + } + + } + + @Block() + public static class ConformanceDocumentComponent extends BackboneElement { + /** + * Mode of this document declaration - whether application is producer or consumer. + */ + @Child(name="mode", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="producer | consumer", formalDefinition="Mode of this document declaration - whether application is producer or consumer." ) + protected Enumeration mode; + + /** + * A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc. + */ + @Child(name="documentation", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Description of document support", formalDefinition="A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc." ) + protected StringType documentation; + + /** + * A constraint on a resource used in the document. + */ + @Child(name="profile", type={Profile.class}, order=3, min=1, max=1) + @Description(shortDefinition="Constraint on a resource used in the document", formalDefinition="A constraint on a resource used in the document." ) + protected Reference profile; + + /** + * The actual object that is the target of the reference (A constraint on a resource used in the document.) + */ + protected Profile profileTarget; + + private static final long serialVersionUID = 437404016L; + + public ConformanceDocumentComponent() { + super(); + } + + public ConformanceDocumentComponent(Enumeration mode, Reference profile) { + super(); + this.mode = mode; + this.profile = profile; + } + + /** + * @return {@link #mode} (Mode of this document declaration - whether application is producer or consumer.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value + */ + public Enumeration getModeElement() { + if (this.mode == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceDocumentComponent.mode"); + else if (Configuration.doAutoCreate()) + this.mode = new Enumeration(new DocumentModeEnumFactory()); // bb + return this.mode; + } + + public boolean hasModeElement() { + return this.mode != null && !this.mode.isEmpty(); + } + + public boolean hasMode() { + return this.mode != null && !this.mode.isEmpty(); + } + + /** + * @param value {@link #mode} (Mode of this document declaration - whether application is producer or consumer.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value + */ + public ConformanceDocumentComponent setModeElement(Enumeration value) { + this.mode = value; + return this; + } + + /** + * @return Mode of this document declaration - whether application is producer or consumer. + */ + public DocumentMode getMode() { + return this.mode == null ? null : this.mode.getValue(); + } + + /** + * @param value Mode of this document declaration - whether application is producer or consumer. + */ + public ConformanceDocumentComponent setMode(DocumentMode value) { + if (this.mode == null) + this.mode = new Enumeration(new DocumentModeEnumFactory()); + this.mode.setValue(value); + return this; + } + + /** + * @return {@link #documentation} (A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public StringType getDocumentationElement() { + if (this.documentation == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceDocumentComponent.documentation"); + else if (Configuration.doAutoCreate()) + this.documentation = new StringType(); // bb + return this.documentation; + } + + public boolean hasDocumentationElement() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + public boolean hasDocumentation() { + return this.documentation != null && !this.documentation.isEmpty(); + } + + /** + * @param value {@link #documentation} (A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc.). This is the underlying object with id, value and extensions. The accessor "getDocumentation" gives direct access to the value + */ + public ConformanceDocumentComponent setDocumentationElement(StringType value) { + this.documentation = value; + return this; + } + + /** + * @return A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc. + */ + public String getDocumentation() { + return this.documentation == null ? null : this.documentation.getValue(); + } + + /** + * @param value A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc. + */ + public ConformanceDocumentComponent setDocumentation(String value) { + if (Utilities.noString(value)) + this.documentation = null; + else { + if (this.documentation == null) + this.documentation = new StringType(); + this.documentation.setValue(value); + } + return this; + } + + /** + * @return {@link #profile} (A constraint on a resource used in the document.) + */ + public Reference getProfile() { + if (this.profile == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceDocumentComponent.profile"); + else if (Configuration.doAutoCreate()) + this.profile = new Reference(); // cc + return this.profile; + } + + public boolean hasProfile() { + return this.profile != null && !this.profile.isEmpty(); + } + + /** + * @param value {@link #profile} (A constraint on a resource used in the document.) + */ + public ConformanceDocumentComponent setProfile(Reference value) { + this.profile = value; + return this; + } + + /** + * @return {@link #profile} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A constraint on a resource used in the document.) + */ + public Profile getProfileTarget() { + if (this.profileTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ConformanceDocumentComponent.profile"); + else if (Configuration.doAutoCreate()) + this.profileTarget = new Profile(); // aa + return this.profileTarget; + } + + /** + * @param value {@link #profile} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A constraint on a resource used in the document.) + */ + public ConformanceDocumentComponent setProfileTarget(Profile value) { + this.profileTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("mode", "code", "Mode of this document declaration - whether application is producer or consumer.", 0, java.lang.Integer.MAX_VALUE, mode)); + childrenList.add(new Property("documentation", "string", "A description of how the application supports or uses the specified document profile. For example, when are documents created, what action is taken with consumed documents, etc.", 0, java.lang.Integer.MAX_VALUE, documentation)); + childrenList.add(new Property("profile", "Reference(Profile)", "A constraint on a resource used in the document.", 0, java.lang.Integer.MAX_VALUE, profile)); + } + + public ConformanceDocumentComponent copy() { + ConformanceDocumentComponent dst = new ConformanceDocumentComponent(); + copyValues(dst); + dst.mode = mode == null ? null : mode.copy(); + dst.documentation = documentation == null ? null : documentation.copy(); + dst.profile = profile == null ? null : profile.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ConformanceDocumentComponent)) + return false; + ConformanceDocumentComponent o = (ConformanceDocumentComponent) other; + return compareDeep(mode, o.mode, true) && compareDeep(documentation, o.documentation, true) && compareDeep(profile, o.profile, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ConformanceDocumentComponent)) + return false; + ConformanceDocumentComponent o = (ConformanceDocumentComponent) other; + return compareValues(mode, o.mode, true) && compareValues(documentation, o.documentation, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (mode == null || mode.isEmpty()) && (documentation == null || documentation.isEmpty()) + && (profile == null || profile.isEmpty()); + } + + } + + /** + * The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI). + */ + @Child(name="identifier", type={StringType.class}, order=-1, min=0, max=1) + @Description(shortDefinition="Logical id to reference this statement", formalDefinition="The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI)." ) + protected StringType identifier; + + /** + * The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. + */ + @Child(name="version", type={StringType.class}, order=0, min=0, max=1) + @Description(shortDefinition="Logical id for this version of the statement", formalDefinition="The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp." ) + protected StringType version; + + /** + * A free text natural language name identifying the conformance statement. + */ + @Child(name="name", type={StringType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Informal name for this conformance statement", formalDefinition="A free text natural language name identifying the conformance statement." ) + protected StringType name; + + /** + * Name of Organization publishing this conformance statement. + */ + @Child(name="publisher", type={StringType.class}, order=2, min=1, max=1) + @Description(shortDefinition="Publishing Organization", formalDefinition="Name of Organization publishing this conformance statement." ) + protected StringType publisher; + + /** + * Contacts for Organization relevant to this conformance statement. The contacts may be a website, email, phone numbers, etc. + */ + @Child(name="telecom", type={ContactPoint.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Contacts for Organization", formalDefinition="Contacts for Organization relevant to this conformance statement. The contacts may be a website, email, phone numbers, etc." ) + protected List telecom; + + /** + * A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP. + */ + @Child(name="description", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Human description of the conformance statement", formalDefinition="A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP." ) + protected StringType description; + + /** + * The status of this conformance statement. + */ + @Child(name="status", type={CodeType.class}, order=5, min=0, max=1) + @Description(shortDefinition="draft | active | retired", formalDefinition="The status of this conformance statement." ) + protected Enumeration status; + + /** + * A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. + */ + @Child(name="experimental", type={BooleanType.class}, order=6, min=0, max=1) + @Description(shortDefinition="If for testing purposes, not real usage", formalDefinition="A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage." ) + protected BooleanType experimental; + + /** + * The date (and optionally time) when the conformance statement was published. + */ + @Child(name="date", type={DateTimeType.class}, order=7, min=1, max=1) + @Description(shortDefinition="Publication Date(/time)", formalDefinition="The date (and optionally time) when the conformance statement was published." ) + protected DateTimeType date; + + /** + * Software that is covered by this conformance statement. It is used when the profile describes the capabilities of a particular software version, independent of an installation. + */ + @Child(name="software", type={}, order=8, min=0, max=1) + @Description(shortDefinition="Software that is covered by this conformance statement", formalDefinition="Software that is covered by this conformance statement. It is used when the profile describes the capabilities of a particular software version, independent of an installation." ) + protected ConformanceSoftwareComponent software; + + /** + * Identifies a specific implementation instance that is described by the conformance statement - i.e. a particular installation, rather than the capabilities of a software program. + */ + @Child(name="implementation", type={}, order=9, min=0, max=1) + @Description(shortDefinition="If this describes a specific instance", formalDefinition="Identifies a specific implementation instance that is described by the conformance statement - i.e. a particular installation, rather than the capabilities of a software program." ) + protected ConformanceImplementationComponent implementation; + + /** + * The version of the FHIR specification on which this conformance statement is based. + */ + @Child(name="fhirVersion", type={IdType.class}, order=10, min=1, max=1) + @Description(shortDefinition="FHIR Version", formalDefinition="The version of the FHIR specification on which this conformance statement is based." ) + protected IdType fhirVersion; + + /** + * A flag that indicates whether the application accepts unknown elements as part of a resource. + */ + @Child(name="acceptUnknown", type={BooleanType.class}, order=11, min=1, max=1) + @Description(shortDefinition="True if application accepts unknown elements", formalDefinition="A flag that indicates whether the application accepts unknown elements as part of a resource." ) + protected BooleanType acceptUnknown; + + /** + * A list of the formats supported by this implementation. + */ + @Child(name="format", type={CodeType.class}, order=12, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="formats supported (xml | json | mime type)", formalDefinition="A list of the formats supported by this implementation." ) + protected List format; + + /** + * A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile. + */ + @Child(name="profile", type={Profile.class}, order=13, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Profiles supported by the system", formalDefinition="A list of profiles supported by the system. For a server, 'supported by the system' means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile." ) + protected List profile; + /** + * The actual objects that are the target of the reference (A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.) + */ + protected List profileTarget; + + + /** + * A definition of the restful capabilities of the solution, if any. + */ + @Child(name="rest", type={}, order=14, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="If the endpoint is a RESTful one", formalDefinition="A definition of the restful capabilities of the solution, if any." ) + protected List rest; + + /** + * A description of the messaging capabilities of the solution. + */ + @Child(name="messaging", type={}, order=15, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="If messaging is supported", formalDefinition="A description of the messaging capabilities of the solution." ) + protected List messaging; + + /** + * A document definition. + */ + @Child(name="document", type={}, order=16, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Document definition", formalDefinition="A document definition." ) + protected List document; + + private static final long serialVersionUID = 1215207759L; + + public Conformance() { + super(); + } + + public Conformance(StringType publisher, DateTimeType date, IdType fhirVersion, BooleanType acceptUnknown) { + super(); + this.publisher = publisher; + this.date = date; + this.fhirVersion = fhirVersion; + this.acceptUnknown = acceptUnknown; + } + + /** + * @return {@link #identifier} (The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).). This is the underlying object with id, value and extensions. The accessor "getIdentifier" gives direct access to the value + */ + public StringType getIdentifierElement() { + if (this.identifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Conformance.identifier"); + else if (Configuration.doAutoCreate()) + this.identifier = new StringType(); // bb + return this.identifier; + } + + public boolean hasIdentifierElement() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + public boolean hasIdentifier() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + /** + * @param value {@link #identifier} (The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).). This is the underlying object with id, value and extensions. The accessor "getIdentifier" gives direct access to the value + */ + public Conformance setIdentifierElement(StringType value) { + this.identifier = value; + return this; + } + + /** + * @return The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI). + */ + public String getIdentifier() { + return this.identifier == null ? null : this.identifier.getValue(); + } + + /** + * @param value The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI). + */ + public Conformance setIdentifier(String value) { + if (Utilities.noString(value)) + this.identifier = null; + else { + if (this.identifier == null) + this.identifier = new StringType(); + this.identifier.setValue(value); + } + return this; + } + + /** + * @return {@link #version} (The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value + */ + public StringType getVersionElement() { + if (this.version == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Conformance.version"); + else if (Configuration.doAutoCreate()) + this.version = new StringType(); // bb + return this.version; + } + + public boolean hasVersionElement() { + return this.version != null && !this.version.isEmpty(); + } + + public boolean hasVersion() { + return this.version != null && !this.version.isEmpty(); + } + + /** + * @param value {@link #version} (The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value + */ + public Conformance setVersionElement(StringType value) { + this.version = value; + return this; + } + + /** + * @return The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. + */ + public String getVersion() { + return this.version == null ? null : this.version.getValue(); + } + + /** + * @param value The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp. + */ + public Conformance setVersion(String value) { + if (Utilities.noString(value)) + this.version = null; + else { + if (this.version == null) + this.version = new StringType(); + this.version.setValue(value); + } + return this; + } + + /** + * @return {@link #name} (A free text natural language name identifying the conformance statement.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Conformance.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (A free text natural language name identifying the conformance statement.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public Conformance setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return A free text natural language name identifying the conformance statement. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value A free text natural language name identifying the conformance statement. + */ + public Conformance setName(String value) { + if (Utilities.noString(value)) + this.name = null; + else { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + } + return this; + } + + /** + * @return {@link #publisher} (Name of Organization publishing this conformance statement.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value + */ + public StringType getPublisherElement() { + if (this.publisher == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Conformance.publisher"); + else if (Configuration.doAutoCreate()) + this.publisher = new StringType(); // bb + return this.publisher; + } + + public boolean hasPublisherElement() { + return this.publisher != null && !this.publisher.isEmpty(); + } + + public boolean hasPublisher() { + return this.publisher != null && !this.publisher.isEmpty(); + } + + /** + * @param value {@link #publisher} (Name of Organization publishing this conformance statement.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value + */ + public Conformance setPublisherElement(StringType value) { + this.publisher = value; + return this; + } + + /** + * @return Name of Organization publishing this conformance statement. + */ + public String getPublisher() { + return this.publisher == null ? null : this.publisher.getValue(); + } + + /** + * @param value Name of Organization publishing this conformance statement. + */ + public Conformance setPublisher(String value) { + if (this.publisher == null) + this.publisher = new StringType(); + this.publisher.setValue(value); + return this; + } + + /** + * @return {@link #telecom} (Contacts for Organization relevant to this conformance statement. The contacts may be a website, email, phone numbers, etc.) + */ + public List getTelecom() { + if (this.telecom == null) + this.telecom = new ArrayList(); + return this.telecom; + } + + public boolean hasTelecom() { + if (this.telecom == null) + return false; + for (ContactPoint item : this.telecom) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #telecom} (Contacts for Organization relevant to this conformance statement. The contacts may be a website, email, phone numbers, etc.) + */ + // syntactic sugar + public ContactPoint addTelecom() { //3 + ContactPoint t = new ContactPoint(); + if (this.telecom == null) + this.telecom = new ArrayList(); + this.telecom.add(t); + return t; + } + + /** + * @return {@link #description} (A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Conformance.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public Conformance setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP. + */ + public Conformance setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #status} (The status of this conformance statement.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Conformance.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new ConformanceStatementStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of this conformance statement.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Conformance setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of this conformance statement. + */ + public ConformanceStatementStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of this conformance statement. + */ + public Conformance setStatus(ConformanceStatementStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new ConformanceStatementStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #experimental} (A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value + */ + public BooleanType getExperimentalElement() { + if (this.experimental == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Conformance.experimental"); + else if (Configuration.doAutoCreate()) + this.experimental = new BooleanType(); // bb + return this.experimental; + } + + public boolean hasExperimentalElement() { + return this.experimental != null && !this.experimental.isEmpty(); + } + + public boolean hasExperimental() { + return this.experimental != null && !this.experimental.isEmpty(); + } + + /** + * @param value {@link #experimental} (A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value + */ + public Conformance setExperimentalElement(BooleanType value) { + this.experimental = value; + return this; + } + + /** + * @return A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. + */ + public boolean getExperimental() { + return this.experimental == null ? false : this.experimental.getValue(); + } + + /** + * @param value A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. + */ + public Conformance setExperimental(boolean value) { + if (this.experimental == null) + this.experimental = new BooleanType(); + this.experimental.setValue(value); + return this; + } + + /** + * @return {@link #date} (The date (and optionally time) when the conformance statement was published.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Conformance.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (The date (and optionally time) when the conformance statement was published.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public Conformance setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return The date (and optionally time) when the conformance statement was published. + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value The date (and optionally time) when the conformance statement was published. + */ + public Conformance setDate(Date value) { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + return this; + } + + /** + * @return {@link #software} (Software that is covered by this conformance statement. It is used when the profile describes the capabilities of a particular software version, independent of an installation.) + */ + public ConformanceSoftwareComponent getSoftware() { + if (this.software == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Conformance.software"); + else if (Configuration.doAutoCreate()) + this.software = new ConformanceSoftwareComponent(); // cc + return this.software; + } + + public boolean hasSoftware() { + return this.software != null && !this.software.isEmpty(); + } + + /** + * @param value {@link #software} (Software that is covered by this conformance statement. It is used when the profile describes the capabilities of a particular software version, independent of an installation.) + */ + public Conformance setSoftware(ConformanceSoftwareComponent value) { + this.software = value; + return this; + } + + /** + * @return {@link #implementation} (Identifies a specific implementation instance that is described by the conformance statement - i.e. a particular installation, rather than the capabilities of a software program.) + */ + public ConformanceImplementationComponent getImplementation() { + if (this.implementation == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Conformance.implementation"); + else if (Configuration.doAutoCreate()) + this.implementation = new ConformanceImplementationComponent(); // cc + return this.implementation; + } + + public boolean hasImplementation() { + return this.implementation != null && !this.implementation.isEmpty(); + } + + /** + * @param value {@link #implementation} (Identifies a specific implementation instance that is described by the conformance statement - i.e. a particular installation, rather than the capabilities of a software program.) + */ + public Conformance setImplementation(ConformanceImplementationComponent value) { + this.implementation = value; + return this; + } + + /** + * @return {@link #fhirVersion} (The version of the FHIR specification on which this conformance statement is based.). This is the underlying object with id, value and extensions. The accessor "getFhirVersion" gives direct access to the value + */ + public IdType getFhirVersionElement() { + if (this.fhirVersion == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Conformance.fhirVersion"); + else if (Configuration.doAutoCreate()) + this.fhirVersion = new IdType(); // bb + return this.fhirVersion; + } + + public boolean hasFhirVersionElement() { + return this.fhirVersion != null && !this.fhirVersion.isEmpty(); + } + + public boolean hasFhirVersion() { + return this.fhirVersion != null && !this.fhirVersion.isEmpty(); + } + + /** + * @param value {@link #fhirVersion} (The version of the FHIR specification on which this conformance statement is based.). This is the underlying object with id, value and extensions. The accessor "getFhirVersion" gives direct access to the value + */ + public Conformance setFhirVersionElement(IdType value) { + this.fhirVersion = value; + return this; + } + + /** + * @return The version of the FHIR specification on which this conformance statement is based. + */ + public String getFhirVersion() { + return this.fhirVersion == null ? null : this.fhirVersion.getValue(); + } + + /** + * @param value The version of the FHIR specification on which this conformance statement is based. + */ + public Conformance setFhirVersion(String value) { + if (this.fhirVersion == null) + this.fhirVersion = new IdType(); + this.fhirVersion.setValue(value); + return this; + } + + /** + * @return {@link #acceptUnknown} (A flag that indicates whether the application accepts unknown elements as part of a resource.). This is the underlying object with id, value and extensions. The accessor "getAcceptUnknown" gives direct access to the value + */ + public BooleanType getAcceptUnknownElement() { + if (this.acceptUnknown == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Conformance.acceptUnknown"); + else if (Configuration.doAutoCreate()) + this.acceptUnknown = new BooleanType(); // bb + return this.acceptUnknown; + } + + public boolean hasAcceptUnknownElement() { + return this.acceptUnknown != null && !this.acceptUnknown.isEmpty(); + } + + public boolean hasAcceptUnknown() { + return this.acceptUnknown != null && !this.acceptUnknown.isEmpty(); + } + + /** + * @param value {@link #acceptUnknown} (A flag that indicates whether the application accepts unknown elements as part of a resource.). This is the underlying object with id, value and extensions. The accessor "getAcceptUnknown" gives direct access to the value + */ + public Conformance setAcceptUnknownElement(BooleanType value) { + this.acceptUnknown = value; + return this; + } + + /** + * @return A flag that indicates whether the application accepts unknown elements as part of a resource. + */ + public boolean getAcceptUnknown() { + return this.acceptUnknown == null ? false : this.acceptUnknown.getValue(); + } + + /** + * @param value A flag that indicates whether the application accepts unknown elements as part of a resource. + */ + public Conformance setAcceptUnknown(boolean value) { + if (this.acceptUnknown == null) + this.acceptUnknown = new BooleanType(); + this.acceptUnknown.setValue(value); + return this; + } + + /** + * @return {@link #format} (A list of the formats supported by this implementation.) + */ + public List getFormat() { + if (this.format == null) + this.format = new ArrayList(); + return this.format; + } + + public boolean hasFormat() { + if (this.format == null) + return false; + for (CodeType item : this.format) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #format} (A list of the formats supported by this implementation.) + */ + // syntactic sugar + public CodeType addFormatElement() {//2 + CodeType t = new CodeType(); + if (this.format == null) + this.format = new ArrayList(); + this.format.add(t); + return t; + } + + /** + * @param value {@link #format} (A list of the formats supported by this implementation.) + */ + public Conformance addFormat(String value) { //1 + CodeType t = new CodeType(); + t.setValue(value); + if (this.format == null) + this.format = new ArrayList(); + this.format.add(t); + return this; + } + + /** + * @param value {@link #format} (A list of the formats supported by this implementation.) + */ + public boolean hasFormat(String value) { + if (this.format == null) + return false; + for (CodeType v : this.format) + if (v.equals(value)) // code + return true; + return false; + } + + /** + * @return {@link #profile} (A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.) + */ + public List getProfile() { + if (this.profile == null) + this.profile = new ArrayList(); + return this.profile; + } + + public boolean hasProfile() { + if (this.profile == null) + return false; + for (Reference item : this.profile) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #profile} (A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.) + */ + // syntactic sugar + public Reference addProfile() { //3 + Reference t = new Reference(); + if (this.profile == null) + this.profile = new ArrayList(); + this.profile.add(t); + return t; + } + + /** + * @return {@link #profile} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.) + */ + public List getProfileTarget() { + if (this.profileTarget == null) + this.profileTarget = new ArrayList(); + return this.profileTarget; + } + + // syntactic sugar + /** + * @return {@link #profile} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. A list of profiles supported by the system. For a server, "supported by the system" means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.) + */ + public Profile addProfileTarget() { + Profile r = new Profile(); + if (this.profileTarget == null) + this.profileTarget = new ArrayList(); + this.profileTarget.add(r); + return r; + } + + /** + * @return {@link #rest} (A definition of the restful capabilities of the solution, if any.) + */ + public List getRest() { + if (this.rest == null) + this.rest = new ArrayList(); + return this.rest; + } + + public boolean hasRest() { + if (this.rest == null) + return false; + for (ConformanceRestComponent item : this.rest) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #rest} (A definition of the restful capabilities of the solution, if any.) + */ + // syntactic sugar + public ConformanceRestComponent addRest() { //3 + ConformanceRestComponent t = new ConformanceRestComponent(); + if (this.rest == null) + this.rest = new ArrayList(); + this.rest.add(t); + return t; + } + + /** + * @return {@link #messaging} (A description of the messaging capabilities of the solution.) + */ + public List getMessaging() { + if (this.messaging == null) + this.messaging = new ArrayList(); + return this.messaging; + } + + public boolean hasMessaging() { + if (this.messaging == null) + return false; + for (ConformanceMessagingComponent item : this.messaging) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #messaging} (A description of the messaging capabilities of the solution.) + */ + // syntactic sugar + public ConformanceMessagingComponent addMessaging() { //3 + ConformanceMessagingComponent t = new ConformanceMessagingComponent(); + if (this.messaging == null) + this.messaging = new ArrayList(); + this.messaging.add(t); + return t; + } + + /** + * @return {@link #document} (A document definition.) + */ + public List getDocument() { + if (this.document == null) + this.document = new ArrayList(); + return this.document; + } + + public boolean hasDocument() { + if (this.document == null) + return false; + for (ConformanceDocumentComponent item : this.document) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #document} (A document definition.) + */ + // syntactic sugar + public ConformanceDocumentComponent addDocument() { //3 + ConformanceDocumentComponent t = new ConformanceDocumentComponent(); + if (this.document == null) + this.document = new ArrayList(); + this.document.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "string", "The identifier that is used to identify this conformance statement when it is referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("version", "string", "The identifier that is used to identify this version of the conformance statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp.", 0, java.lang.Integer.MAX_VALUE, version)); + childrenList.add(new Property("name", "string", "A free text natural language name identifying the conformance statement.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("publisher", "string", "Name of Organization publishing this conformance statement.", 0, java.lang.Integer.MAX_VALUE, publisher)); + childrenList.add(new Property("telecom", "ContactPoint", "Contacts for Organization relevant to this conformance statement. The contacts may be a website, email, phone numbers, etc.", 0, java.lang.Integer.MAX_VALUE, telecom)); + childrenList.add(new Property("description", "string", "A free text natural language description of the conformance statement and its use. Typically, this is used when the profile describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("status", "code", "The status of this conformance statement.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("experimental", "boolean", "A flag to indicate that this conformance statement is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.", 0, java.lang.Integer.MAX_VALUE, experimental)); + childrenList.add(new Property("date", "dateTime", "The date (and optionally time) when the conformance statement was published.", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("software", "", "Software that is covered by this conformance statement. It is used when the profile describes the capabilities of a particular software version, independent of an installation.", 0, java.lang.Integer.MAX_VALUE, software)); + childrenList.add(new Property("implementation", "", "Identifies a specific implementation instance that is described by the conformance statement - i.e. a particular installation, rather than the capabilities of a software program.", 0, java.lang.Integer.MAX_VALUE, implementation)); + childrenList.add(new Property("fhirVersion", "id", "The version of the FHIR specification on which this conformance statement is based.", 0, java.lang.Integer.MAX_VALUE, fhirVersion)); + childrenList.add(new Property("acceptUnknown", "boolean", "A flag that indicates whether the application accepts unknown elements as part of a resource.", 0, java.lang.Integer.MAX_VALUE, acceptUnknown)); + childrenList.add(new Property("format", "code", "A list of the formats supported by this implementation.", 0, java.lang.Integer.MAX_VALUE, format)); + childrenList.add(new Property("profile", "Reference(Profile)", "A list of profiles supported by the system. For a server, 'supported by the system' means the system hosts/produces a set of resources, conformant to a particular profile, and allows its clients to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile.", 0, java.lang.Integer.MAX_VALUE, profile)); + childrenList.add(new Property("rest", "", "A definition of the restful capabilities of the solution, if any.", 0, java.lang.Integer.MAX_VALUE, rest)); + childrenList.add(new Property("messaging", "", "A description of the messaging capabilities of the solution.", 0, java.lang.Integer.MAX_VALUE, messaging)); + childrenList.add(new Property("document", "", "A document definition.", 0, java.lang.Integer.MAX_VALUE, document)); + } + + public Conformance copy() { + Conformance dst = new Conformance(); + copyValues(dst); + dst.identifier = identifier == null ? null : identifier.copy(); + dst.version = version == null ? null : version.copy(); + dst.name = name == null ? null : name.copy(); + dst.publisher = publisher == null ? null : publisher.copy(); + if (telecom != null) { + dst.telecom = new ArrayList(); + for (ContactPoint i : telecom) + dst.telecom.add(i.copy()); + }; + dst.description = description == null ? null : description.copy(); + dst.status = status == null ? null : status.copy(); + dst.experimental = experimental == null ? null : experimental.copy(); + dst.date = date == null ? null : date.copy(); + dst.software = software == null ? null : software.copy(); + dst.implementation = implementation == null ? null : implementation.copy(); + dst.fhirVersion = fhirVersion == null ? null : fhirVersion.copy(); + dst.acceptUnknown = acceptUnknown == null ? null : acceptUnknown.copy(); + if (format != null) { + dst.format = new ArrayList(); + for (CodeType i : format) + dst.format.add(i.copy()); + }; + if (profile != null) { + dst.profile = new ArrayList(); + for (Reference i : profile) + dst.profile.add(i.copy()); + }; + if (rest != null) { + dst.rest = new ArrayList(); + for (ConformanceRestComponent i : rest) + dst.rest.add(i.copy()); + }; + if (messaging != null) { + dst.messaging = new ArrayList(); + for (ConformanceMessagingComponent i : messaging) + dst.messaging.add(i.copy()); + }; + if (document != null) { + dst.document = new ArrayList(); + for (ConformanceDocumentComponent i : document) + dst.document.add(i.copy()); + }; + return dst; + } + + protected Conformance typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Conformance)) + return false; + Conformance o = (Conformance) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true) && compareDeep(name, o.name, true) + && compareDeep(publisher, o.publisher, true) && compareDeep(telecom, o.telecom, true) && compareDeep(description, o.description, true) + && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true) && compareDeep(date, o.date, true) + && compareDeep(software, o.software, true) && compareDeep(implementation, o.implementation, true) + && compareDeep(fhirVersion, o.fhirVersion, true) && compareDeep(acceptUnknown, o.acceptUnknown, true) + && compareDeep(format, o.format, true) && compareDeep(profile, o.profile, true) && compareDeep(rest, o.rest, true) + && compareDeep(messaging, o.messaging, true) && compareDeep(document, o.document, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Conformance)) + return false; + Conformance o = (Conformance) other; + return compareValues(identifier, o.identifier, true) && compareValues(version, o.version, true) && compareValues(name, o.name, true) + && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true) && compareValues(status, o.status, true) + && compareValues(experimental, o.experimental, true) && compareValues(date, o.date, true) && compareValues(fhirVersion, o.fhirVersion, true) + && compareValues(acceptUnknown, o.acceptUnknown, true) && compareValues(format, o.format, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (version == null || version.isEmpty()) + && (name == null || name.isEmpty()) && (publisher == null || publisher.isEmpty()) && (telecom == null || telecom.isEmpty()) + && (description == null || description.isEmpty()) && (status == null || status.isEmpty()) + && (experimental == null || experimental.isEmpty()) && (date == null || date.isEmpty()) && (software == null || software.isEmpty()) + && (implementation == null || implementation.isEmpty()) && (fhirVersion == null || fhirVersion.isEmpty()) + && (acceptUnknown == null || acceptUnknown.isEmpty()) && (format == null || format.isEmpty()) + && (profile == null || profile.isEmpty()) && (rest == null || rest.isEmpty()) && (messaging == null || messaging.isEmpty()) + && (document == null || document.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Conformance; + } + + @SearchParamDefinition(name="status", path="Conformance.status", description="The current status of the conformance statement", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="resource", path="Conformance.rest.resource.type", description="Name of a resource mentioned in a conformance statement", type="token" ) + public static final String SP_RESOURCE = "resource"; + @SearchParamDefinition(name="security", path="Conformance.rest.security", description="Information about security of implementation", type="token" ) + public static final String SP_SECURITY = "security"; + @SearchParamDefinition(name="format", path="Conformance.format", description="formats supported (xml | json | mime type)", type="token" ) + public static final String SP_FORMAT = "format"; + @SearchParamDefinition(name="date", path="Conformance.date", description="The conformance statement publication date", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="version", path="Conformance.version", description="The version identifier of the conformance statement", type="token" ) + public static final String SP_VERSION = "version"; + @SearchParamDefinition(name="publisher", path="Conformance.publisher", description="Name of the publisher of the conformance statement", type="string" ) + public static final String SP_PUBLISHER = "publisher"; + @SearchParamDefinition(name="mode", path="Conformance.rest.mode", description="Mode - restful (server/client) or messaging (sender/receiver)", type="token" ) + public static final String SP_MODE = "mode"; + @SearchParamDefinition(name="software", path="Conformance.software.name", description="Part of a the name of a software application", type="string" ) + public static final String SP_SOFTWARE = "software"; + @SearchParamDefinition(name="description", path="Conformance.description", description="Text search in the description of the conformance statement", type="string" ) + public static final String SP_DESCRIPTION = "description"; + @SearchParamDefinition(name="event", path="Conformance.messaging.event.code", description="Event code in a conformance statement", type="token" ) + public static final String SP_EVENT = "event"; + @SearchParamDefinition(name="name", path="Conformance.name", description="Name of the conformance statement", type="string" ) + public static final String SP_NAME = "name"; + @SearchParamDefinition(name="supported-profile", path="Conformance.profile", description="Profiles supported by the system", type="reference" ) + public static final String SP_SUPPORTEDPROFILE = "supported-profile"; + @SearchParamDefinition(name="fhirversion", path="Conformance.version", description="The version of FHIR", type="token" ) + public static final String SP_FHIRVERSION = "fhirversion"; + @SearchParamDefinition(name="identifier", path="Conformance.identifier", description="The identifier of the conformance statement", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + @SearchParamDefinition(name="profile", path="Conformance.rest.resource.profile", description="A profile id invoked in a conformance statement", type="reference" ) + public static final String SP_PROFILE = "profile"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Constants.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Constants.class new file mode 100644 index 0000000000000000000000000000000000000000..cae9dedf128fd75b50f47af9f479ed30bb1efd12 GIT binary patch literal 388 zcmYk2%SyvQ6o&ulEwQ$>);lOfL{JxE0=ULu8F@4m>?qh}P+WWD^o9e5Mt>$=1rJ3u;ZB+a(d3Sy z+KHn@Dx%aC;ZmyDV^Bx7+siB}_8AIKk7HZK0Ym9Nh=TNiA%Ah{(nTkJmJD0{Ad-XS z+>^;zcp+uVPP|Nf*$pzN{nlSJv+fmCP-QrelL?=O7Jr!r2@h5i_>#}5V#xm-4E6ts zhu%#3DML|jnoXVBo4RE&96KV_y3*4OQ!{ScMyqXFn(d6WmTuhO6gm0}&^bZ@MbHvN sIVi;H8gCGn*Lag&vTRh+8aYl@3>2^4!QLoAdy|$Z0%xRkiaBim04DKC+5i9m literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Constants.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Constants.java similarity index 64% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Constants.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Constants.java index 5be92f30d7d..c3d6a02ff0a 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Constants.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Constants.java @@ -1,61 +1,40 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - - -public class Constants { - - public final static String VERSION = "0.3.0"; - public final static String REVISION = "3775"; - public final static String DATE = "Sun Dec 07 21:45:56 EST 2014"; -} +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + + +public class Constants { + + public final static String VERSION = "0.4.0"; + public final static String REVISION = "4077"; + public final static String DATE = "Sat Feb 14 16:12:47 EST 2015"; +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint$1.class new file mode 100644 index 0000000000000000000000000000000000000000..de97584a63c0eb69a1702a9ee9434a89d90722a6 GIT binary patch literal 1493 zcmbtUZBNrs7(I6z>o$uFL+qigSg8ty%(m@eNH7l8sbIf<$-`<0go8cQgL5*)pAaGEm`)KR5r$? zS7qInbklJaQ`MwhtE3rH(lT8|bqkhmx+h5SjpJ&&48DyFL-M?8tB%GHnoVnb$-6J-uBS8vZs(r z%2W-@(ao)#=9aCJfKdTsA|~)y#AURLm_%H}6s8%v_${)bm|OCaRjjDxw5}PYlxD5=4v(X;f3fgEF@kKlM$^-~$rBjDK zHeA6~!VV%M@Y4wRatLUj~*i8 zX;$-AE=n{{d4mdqDsI literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint$ContactPointSystem.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint$ContactPointSystem.class new file mode 100644 index 0000000000000000000000000000000000000000..143e8a46d98238d3f99221e532828dbbc4c955e3 GIT binary patch literal 3186 zcmc&$TXWM!6#kSrv0@ZR#GO)Dz(5j$U1$p}fshaq2+aj>k`k^}6*eR~e>ySDMI*K|>*3^|xxmdB=02VGX<9 zA$+obK|@#0DSB2^4X8_dpPJDNfnTnx+nr-1m#3}DsD=J>KKC}p@=LrU>ZSaGdq1UzrMt7^_R2padQhR-!1iAM$k&{G|ilJ7|aeKnX2g6bg4m$S-rZE%J`V%qWVmTB-O!B$ld?@cfAT9#x${<}(_8cuQS+SClQg z#5()`lseF?lqcdq3oD-wWEfKG@0%A0#y%tFN_2_((|xf^VkcXH<5xpbkwF-{)2_Ey zwaj*_dF7rZ*Dr>HVvdfb;|IlrWy>YsUmg@PvNPhcA3Ke4i^JBWiwrYyz8c7?%-gz= zW2*d^qPEM_)zDnyvr7-99Wm+p-nUpZeA?K7;*(&gq1e~^U9$p&=-HU5FJk9m_$`-( zwX;#?s#5*8xxlJa=t2!A8yCC-qp6Sxrbqr7NR#Zft!$42?`v}Ul!l3PjzO_YY@uoH zOY_J}t0OPHcI2hwBd_U{Yhu<8(6&31JS+Tw@wRx_vQtlvoZ{JgoL>c@O{F>143Aw|h>PoFZdx^F;Xs?lD#Q5xt-(|S|49>2u zKZ3S+cFT4o27X1y8zeSwXj5H~3l+dYwDZS~IB;VBD|9~JB>fy`+Au_v^F*m{dQR(< zUiQFWFwEq@OXxqLL#vrx^NjBbo$8z!&^SFj&fag-li{kTS_eL+V|;UcCnh8bMo zY8{>3n!yXh*-u$RF5GCy;Y*C20YV1l>ceT4Th-u-45?V>fb zp=N%dT-z4MVjrUc++eJ4GMYImJI83w6J#M)B#Dl`HeQrE+5&pAX0HD?q2DI@9irbQ z`aPoGC;Ef8(J!@tzQ1OESThgQ%!BW+-6ndT=#uCKq8Eu?dK-PL1@!;)yi4>l(LJL3 zM6VG2Q8T*E+!# zrvFX}?acSwVqyhGZn0wpTXTz@E9l8BvJQ^rUO?NZs(PNBW)h#lKAdBZ7^bF|m=qb7 cVZGMIncOO`u3&)F&CB1Mn>FH8*qw*UYD literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint$ContactPointSystemEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint$ContactPointSystemEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..3d150aa8d933a115ff907edfc1f3503f818eb03e GIT binary patch literal 1926 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ContactPoint.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint.java similarity index 89% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ContactPoint.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint.java index 127976c9122..c52675f73d9 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ContactPoint.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ContactPoint.java @@ -1,523 +1,516 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -import org.hl7.fhir.instance.model.annotations.DatatypeDef; -/** - * Details for All kinds of technology mediated contact points for a person or organization, including telephone, email, etc. - */ -@DatatypeDef(name="ContactPoint") -public class ContactPoint extends Type implements ICompositeType{ - - public enum ContactPointSystem implements FhirEnum { - /** - * The value is a telephone number used for voice calls. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required. - */ - PHONE, - /** - * The value is a fax machine. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required. - */ - FAX, - /** - * The value is an email address. - */ - EMAIL, - /** - * The value is a url. This is intended for various personal contacts including blogs, Twitter, Facebook, etc. Do not use for email addresses. - */ - URL, - /** - * added to help the parsers - */ - NULL; - - public static final ContactPointSystemEnumFactory ENUM_FACTORY = new ContactPointSystemEnumFactory(); - - public static ContactPointSystem fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("phone".equals(codeString)) - return PHONE; - if ("fax".equals(codeString)) - return FAX; - if ("email".equals(codeString)) - return EMAIL; - if ("url".equals(codeString)) - return URL; - throw new IllegalArgumentException("Unknown ContactPointSystem code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case PHONE: return "phone"; - case FAX: return "fax"; - case EMAIL: return "email"; - case URL: return "url"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case PHONE: return ""; - case FAX: return ""; - case EMAIL: return ""; - case URL: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case PHONE: return "The value is a telephone number used for voice calls. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required."; - case FAX: return "The value is a fax machine. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required."; - case EMAIL: return "The value is an email address."; - case URL: return "The value is a url. This is intended for various personal contacts including blogs, Twitter, Facebook, etc. Do not use for email addresses."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case PHONE: return "phone"; - case FAX: return "fax"; - case EMAIL: return "email"; - case URL: return "url"; - default: return "?"; - } - } - } - - public static class ContactPointSystemEnumFactory implements EnumFactory { - public ContactPointSystem fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("phone".equals(codeString)) - return ContactPointSystem.PHONE; - if ("fax".equals(codeString)) - return ContactPointSystem.FAX; - if ("email".equals(codeString)) - return ContactPointSystem.EMAIL; - if ("url".equals(codeString)) - return ContactPointSystem.URL; - throw new IllegalArgumentException("Unknown ContactPointSystem code '"+codeString+"'"); - } - public String toCode(ContactPointSystem code) throws IllegalArgumentException { - if (code == ContactPointSystem.PHONE) - return "phone"; - if (code == ContactPointSystem.FAX) - return "fax"; - if (code == ContactPointSystem.EMAIL) - return "email"; - if (code == ContactPointSystem.URL) - return "url"; - return "?"; - } - } - - public enum ContactPointUse implements FhirEnum { - /** - * A communication contact point at a home; attempted contacts for business purposes might intrude privacy and chances are one will contact family or other household members instead of the person one wishes to call. Typically used with urgent cases, or if no other contacts are available. - */ - HOME, - /** - * An office contact point. First choice for business related contacts during business hours. - */ - WORK, - /** - * A temporary contact point. The period can provide more detailed information. - */ - TEMP, - /** - * This contact point is no longer in use (or was never correct, but retained for records). - */ - OLD, - /** - * A telecommunication device that moves and stays with its owner. May have characteristics of all other use codes, suitable for urgent matters, not the first choice for routine business. - */ - MOBILE, - /** - * added to help the parsers - */ - NULL; - - public static final ContactPointUseEnumFactory ENUM_FACTORY = new ContactPointUseEnumFactory(); - - public static ContactPointUse fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("home".equals(codeString)) - return HOME; - if ("work".equals(codeString)) - return WORK; - if ("temp".equals(codeString)) - return TEMP; - if ("old".equals(codeString)) - return OLD; - if ("mobile".equals(codeString)) - return MOBILE; - throw new IllegalArgumentException("Unknown ContactPointUse code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case HOME: return "home"; - case WORK: return "work"; - case TEMP: return "temp"; - case OLD: return "old"; - case MOBILE: return "mobile"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case HOME: return ""; - case WORK: return ""; - case TEMP: return ""; - case OLD: return ""; - case MOBILE: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case HOME: return "A communication contact point at a home; attempted contacts for business purposes might intrude privacy and chances are one will contact family or other household members instead of the person one wishes to call. Typically used with urgent cases, or if no other contacts are available."; - case WORK: return "An office contact point. First choice for business related contacts during business hours."; - case TEMP: return "A temporary contact point. The period can provide more detailed information."; - case OLD: return "This contact point is no longer in use (or was never correct, but retained for records)."; - case MOBILE: return "A telecommunication device that moves and stays with its owner. May have characteristics of all other use codes, suitable for urgent matters, not the first choice for routine business."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case HOME: return "home"; - case WORK: return "work"; - case TEMP: return "temp"; - case OLD: return "old"; - case MOBILE: return "mobile"; - default: return "?"; - } - } - } - - public static class ContactPointUseEnumFactory implements EnumFactory { - public ContactPointUse fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("home".equals(codeString)) - return ContactPointUse.HOME; - if ("work".equals(codeString)) - return ContactPointUse.WORK; - if ("temp".equals(codeString)) - return ContactPointUse.TEMP; - if ("old".equals(codeString)) - return ContactPointUse.OLD; - if ("mobile".equals(codeString)) - return ContactPointUse.MOBILE; - throw new IllegalArgumentException("Unknown ContactPointUse code '"+codeString+"'"); - } - public String toCode(ContactPointUse code) throws IllegalArgumentException { - if (code == ContactPointUse.HOME) - return "home"; - if (code == ContactPointUse.WORK) - return "work"; - if (code == ContactPointUse.TEMP) - return "temp"; - if (code == ContactPointUse.OLD) - return "old"; - if (code == ContactPointUse.MOBILE) - return "mobile"; - return "?"; - } - } - - /** - * Telecommunications form for contact point - what communications system is required to make use of the contact. - */ - @Child(name="system", type={CodeType.class}, order=-1, min=0, max=1) - @Description(shortDefinition="phone | fax | email | url", formalDefinition="Telecommunications form for contact point - what communications system is required to make use of the contact." ) - protected Enumeration system; - - /** - * The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). - */ - @Child(name="value", type={StringType.class}, order=0, min=0, max=1) - @Description(shortDefinition="The actual contact point details", formalDefinition="The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address)." ) - protected StringType value; - - /** - * Identifies the purpose for the contact point. - */ - @Child(name="use", type={CodeType.class}, order=1, min=0, max=1) - @Description(shortDefinition="home | work | temp | old | mobile - purpose of this contact point", formalDefinition="Identifies the purpose for the contact point." ) - protected Enumeration use; - - /** - * Time period when the contact point was/is in use. - */ - @Child(name="period", type={Period.class}, order=2, min=0, max=1) - @Description(shortDefinition="Time period when the contact point was/is in use", formalDefinition="Time period when the contact point was/is in use." ) - protected Period period; - - private static final long serialVersionUID = 1972725348L; - - public ContactPoint() { - super(); - } - - /** - * @return {@link #system} (Telecommunications form for contact point - what communications system is required to make use of the contact.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value - */ - public Enumeration getSystemElement() { - if (this.system == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContactPoint.system"); - else if (Configuration.doAutoCreate()) - this.system = new Enumeration(); - return this.system; - } - - public boolean hasSystemElement() { - return this.system != null && !this.system.isEmpty(); - } - - public boolean hasSystem() { - return this.system != null && !this.system.isEmpty(); - } - - /** - * @param value {@link #system} (Telecommunications form for contact point - what communications system is required to make use of the contact.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value - */ - public ContactPoint setSystemElement(Enumeration value) { - this.system = value; - return this; - } - - /** - * @return Telecommunications form for contact point - what communications system is required to make use of the contact. - */ - public ContactPointSystem getSystem() { - return this.system == null ? null : this.system.getValue(); - } - - /** - * @param value Telecommunications form for contact point - what communications system is required to make use of the contact. - */ - public ContactPoint setSystem(ContactPointSystem value) { - if (value == null) - this.system = null; - else { - if (this.system == null) - this.system = new Enumeration(ContactPointSystem.ENUM_FACTORY); - this.system.setValue(value); - } - return this; - } - - /** - * @return {@link #value} (The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public StringType getValueElement() { - if (this.value == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContactPoint.value"); - else if (Configuration.doAutoCreate()) - this.value = new StringType(); - return this.value; - } - - public boolean hasValueElement() { - return this.value != null && !this.value.isEmpty(); - } - - public boolean hasValue() { - return this.value != null && !this.value.isEmpty(); - } - - /** - * @param value {@link #value} (The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public ContactPoint setValueElement(StringType value) { - this.value = value; - return this; - } - - /** - * @return The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). - */ - public String getValue() { - return this.value == null ? null : this.value.getValue(); - } - - /** - * @param value The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). - */ - public ContactPoint setValue(String value) { - if (Utilities.noString(value)) - this.value = null; - else { - if (this.value == null) - this.value = new StringType(); - this.value.setValue(value); - } - return this; - } - - /** - * @return {@link #use} (Identifies the purpose for the contact point.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value - */ - public Enumeration getUseElement() { - if (this.use == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContactPoint.use"); - else if (Configuration.doAutoCreate()) - this.use = new Enumeration(); - return this.use; - } - - public boolean hasUseElement() { - return this.use != null && !this.use.isEmpty(); - } - - public boolean hasUse() { - return this.use != null && !this.use.isEmpty(); - } - - /** - * @param value {@link #use} (Identifies the purpose for the contact point.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value - */ - public ContactPoint setUseElement(Enumeration value) { - this.use = value; - return this; - } - - /** - * @return Identifies the purpose for the contact point. - */ - public ContactPointUse getUse() { - return this.use == null ? null : this.use.getValue(); - } - - /** - * @param value Identifies the purpose for the contact point. - */ - public ContactPoint setUse(ContactPointUse value) { - if (value == null) - this.use = null; - else { - if (this.use == null) - this.use = new Enumeration(ContactPointUse.ENUM_FACTORY); - this.use.setValue(value); - } - return this; - } - - /** - * @return {@link #period} (Time period when the contact point was/is in use.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContactPoint.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (Time period when the contact point was/is in use.) - */ - public ContactPoint setPeriod(Period value) { - this.period = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("system", "code", "Telecommunications form for contact point - what communications system is required to make use of the contact.", 0, java.lang.Integer.MAX_VALUE, system)); - childrenList.add(new Property("value", "string", "The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).", 0, java.lang.Integer.MAX_VALUE, value)); - childrenList.add(new Property("use", "code", "Identifies the purpose for the contact point.", 0, java.lang.Integer.MAX_VALUE, use)); - childrenList.add(new Property("period", "Period", "Time period when the contact point was/is in use.", 0, java.lang.Integer.MAX_VALUE, period)); - } - - public ContactPoint copy() { - ContactPoint dst = new ContactPoint(); - copyValues(dst); - dst.system = system == null ? null : system.copy(); - dst.value = value == null ? null : value.copy(); - dst.use = use == null ? null : use.copy(); - dst.period = period == null ? null : period.copy(); - return dst; - } - - protected ContactPoint typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (system == null || system.isEmpty()) && (value == null || value.isEmpty()) - && (use == null || use.isEmpty()) && (period == null || period.isEmpty()); - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +/** + * Details for All kinds of technology mediated contact points for a person or organization, including telephone, email, etc. + */ +@DatatypeDef(name="ContactPoint") +public class ContactPoint extends Type implements ICompositeType { + + public enum ContactPointSystem { + /** + * The value is a telephone number used for voice calls. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required. + */ + PHONE, + /** + * The value is a fax machine. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required. + */ + FAX, + /** + * The value is an email address. + */ + EMAIL, + /** + * The value is a url. This is intended for various personal contacts including blogs, Twitter, Facebook, etc. Do not use for email addresses. + */ + URL, + /** + * added to help the parsers + */ + NULL; + public static ContactPointSystem fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("phone".equals(codeString)) + return PHONE; + if ("fax".equals(codeString)) + return FAX; + if ("email".equals(codeString)) + return EMAIL; + if ("url".equals(codeString)) + return URL; + throw new Exception("Unknown ContactPointSystem code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PHONE: return "phone"; + case FAX: return "fax"; + case EMAIL: return "email"; + case URL: return "url"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PHONE: return ""; + case FAX: return ""; + case EMAIL: return ""; + case URL: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PHONE: return "The value is a telephone number used for voice calls. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required."; + case FAX: return "The value is a fax machine. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required."; + case EMAIL: return "The value is an email address."; + case URL: return "The value is a url. This is intended for various personal contacts including blogs, Twitter, Facebook, etc. Do not use for email addresses."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PHONE: return "phone"; + case FAX: return "fax"; + case EMAIL: return "email"; + case URL: return "url"; + default: return "?"; + } + } + } + + public static class ContactPointSystemEnumFactory implements EnumFactory { + public ContactPointSystem fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("phone".equals(codeString)) + return ContactPointSystem.PHONE; + if ("fax".equals(codeString)) + return ContactPointSystem.FAX; + if ("email".equals(codeString)) + return ContactPointSystem.EMAIL; + if ("url".equals(codeString)) + return ContactPointSystem.URL; + throw new IllegalArgumentException("Unknown ContactPointSystem code '"+codeString+"'"); + } + public String toCode(ContactPointSystem code) { + if (code == ContactPointSystem.PHONE) + return "phone"; + if (code == ContactPointSystem.FAX) + return "fax"; + if (code == ContactPointSystem.EMAIL) + return "email"; + if (code == ContactPointSystem.URL) + return "url"; + return "?"; + } + } + + public enum ContactPointUse { + /** + * A communication contact point at a home; attempted contacts for business purposes might intrude privacy and chances are one will contact family or other household members instead of the person one wishes to call. Typically used with urgent cases, or if no other contacts are available. + */ + HOME, + /** + * An office contact point. First choice for business related contacts during business hours. + */ + WORK, + /** + * A temporary contact point. The period can provide more detailed information. + */ + TEMP, + /** + * This contact point is no longer in use (or was never correct, but retained for records). + */ + OLD, + /** + * A telecommunication device that moves and stays with its owner. May have characteristics of all other use codes, suitable for urgent matters, not the first choice for routine business. + */ + MOBILE, + /** + * added to help the parsers + */ + NULL; + public static ContactPointUse fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("home".equals(codeString)) + return HOME; + if ("work".equals(codeString)) + return WORK; + if ("temp".equals(codeString)) + return TEMP; + if ("old".equals(codeString)) + return OLD; + if ("mobile".equals(codeString)) + return MOBILE; + throw new Exception("Unknown ContactPointUse code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case HOME: return "home"; + case WORK: return "work"; + case TEMP: return "temp"; + case OLD: return "old"; + case MOBILE: return "mobile"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case HOME: return ""; + case WORK: return ""; + case TEMP: return ""; + case OLD: return ""; + case MOBILE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case HOME: return "A communication contact point at a home; attempted contacts for business purposes might intrude privacy and chances are one will contact family or other household members instead of the person one wishes to call. Typically used with urgent cases, or if no other contacts are available."; + case WORK: return "An office contact point. First choice for business related contacts during business hours."; + case TEMP: return "A temporary contact point. The period can provide more detailed information."; + case OLD: return "This contact point is no longer in use (or was never correct, but retained for records)."; + case MOBILE: return "A telecommunication device that moves and stays with its owner. May have characteristics of all other use codes, suitable for urgent matters, not the first choice for routine business."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case HOME: return "home"; + case WORK: return "work"; + case TEMP: return "temp"; + case OLD: return "old"; + case MOBILE: return "mobile"; + default: return "?"; + } + } + } + + public static class ContactPointUseEnumFactory implements EnumFactory { + public ContactPointUse fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("home".equals(codeString)) + return ContactPointUse.HOME; + if ("work".equals(codeString)) + return ContactPointUse.WORK; + if ("temp".equals(codeString)) + return ContactPointUse.TEMP; + if ("old".equals(codeString)) + return ContactPointUse.OLD; + if ("mobile".equals(codeString)) + return ContactPointUse.MOBILE; + throw new IllegalArgumentException("Unknown ContactPointUse code '"+codeString+"'"); + } + public String toCode(ContactPointUse code) { + if (code == ContactPointUse.HOME) + return "home"; + if (code == ContactPointUse.WORK) + return "work"; + if (code == ContactPointUse.TEMP) + return "temp"; + if (code == ContactPointUse.OLD) + return "old"; + if (code == ContactPointUse.MOBILE) + return "mobile"; + return "?"; + } + } + + /** + * Telecommunications form for contact point - what communications system is required to make use of the contact. + */ + @Child(name="system", type={CodeType.class}, order=-1, min=0, max=1) + @Description(shortDefinition="phone | fax | email | url", formalDefinition="Telecommunications form for contact point - what communications system is required to make use of the contact." ) + protected Enumeration system; + + /** + * The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). + */ + @Child(name="value", type={StringType.class}, order=0, min=0, max=1) + @Description(shortDefinition="The actual contact point details", formalDefinition="The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address)." ) + protected StringType value; + + /** + * Identifies the purpose for the contact point. + */ + @Child(name="use", type={CodeType.class}, order=1, min=0, max=1) + @Description(shortDefinition="home | work | temp | old | mobile - purpose of this contact point", formalDefinition="Identifies the purpose for the contact point." ) + protected Enumeration use; + + /** + * Time period when the contact point was/is in use. + */ + @Child(name="period", type={Period.class}, order=2, min=0, max=1) + @Description(shortDefinition="Time period when the contact point was/is in use", formalDefinition="Time period when the contact point was/is in use." ) + protected Period period; + + private static final long serialVersionUID = 1972725348L; + + public ContactPoint() { + super(); + } + + /** + * @return {@link #system} (Telecommunications form for contact point - what communications system is required to make use of the contact.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value + */ + public Enumeration getSystemElement() { + if (this.system == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContactPoint.system"); + else if (Configuration.doAutoCreate()) + this.system = new Enumeration(new ContactPointSystemEnumFactory()); // bb + return this.system; + } + + public boolean hasSystemElement() { + return this.system != null && !this.system.isEmpty(); + } + + public boolean hasSystem() { + return this.system != null && !this.system.isEmpty(); + } + + /** + * @param value {@link #system} (Telecommunications form for contact point - what communications system is required to make use of the contact.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value + */ + public ContactPoint setSystemElement(Enumeration value) { + this.system = value; + return this; + } + + /** + * @return Telecommunications form for contact point - what communications system is required to make use of the contact. + */ + public ContactPointSystem getSystem() { + return this.system == null ? null : this.system.getValue(); + } + + /** + * @param value Telecommunications form for contact point - what communications system is required to make use of the contact. + */ + public ContactPoint setSystem(ContactPointSystem value) { + if (value == null) + this.system = null; + else { + if (this.system == null) + this.system = new Enumeration(new ContactPointSystemEnumFactory()); + this.system.setValue(value); + } + return this; + } + + /** + * @return {@link #value} (The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public StringType getValueElement() { + if (this.value == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContactPoint.value"); + else if (Configuration.doAutoCreate()) + this.value = new StringType(); // bb + return this.value; + } + + public boolean hasValueElement() { + return this.value != null && !this.value.isEmpty(); + } + + public boolean hasValue() { + return this.value != null && !this.value.isEmpty(); + } + + /** + * @param value {@link #value} (The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public ContactPoint setValueElement(StringType value) { + this.value = value; + return this; + } + + /** + * @return The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). + */ + public String getValue() { + return this.value == null ? null : this.value.getValue(); + } + + /** + * @param value The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). + */ + public ContactPoint setValue(String value) { + if (Utilities.noString(value)) + this.value = null; + else { + if (this.value == null) + this.value = new StringType(); + this.value.setValue(value); + } + return this; + } + + /** + * @return {@link #use} (Identifies the purpose for the contact point.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value + */ + public Enumeration getUseElement() { + if (this.use == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContactPoint.use"); + else if (Configuration.doAutoCreate()) + this.use = new Enumeration(new ContactPointUseEnumFactory()); // bb + return this.use; + } + + public boolean hasUseElement() { + return this.use != null && !this.use.isEmpty(); + } + + public boolean hasUse() { + return this.use != null && !this.use.isEmpty(); + } + + /** + * @param value {@link #use} (Identifies the purpose for the contact point.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value + */ + public ContactPoint setUseElement(Enumeration value) { + this.use = value; + return this; + } + + /** + * @return Identifies the purpose for the contact point. + */ + public ContactPointUse getUse() { + return this.use == null ? null : this.use.getValue(); + } + + /** + * @param value Identifies the purpose for the contact point. + */ + public ContactPoint setUse(ContactPointUse value) { + if (value == null) + this.use = null; + else { + if (this.use == null) + this.use = new Enumeration(new ContactPointUseEnumFactory()); + this.use.setValue(value); + } + return this; + } + + /** + * @return {@link #period} (Time period when the contact point was/is in use.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContactPoint.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (Time period when the contact point was/is in use.) + */ + public ContactPoint setPeriod(Period value) { + this.period = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("system", "code", "Telecommunications form for contact point - what communications system is required to make use of the contact.", 0, java.lang.Integer.MAX_VALUE, system)); + childrenList.add(new Property("value", "string", "The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).", 0, java.lang.Integer.MAX_VALUE, value)); + childrenList.add(new Property("use", "code", "Identifies the purpose for the contact point.", 0, java.lang.Integer.MAX_VALUE, use)); + childrenList.add(new Property("period", "Period", "Time period when the contact point was/is in use.", 0, java.lang.Integer.MAX_VALUE, period)); + } + + public ContactPoint copy() { + ContactPoint dst = new ContactPoint(); + copyValues(dst); + dst.system = system == null ? null : system.copy(); + dst.value = value == null ? null : value.copy(); + dst.use = use == null ? null : use.copy(); + dst.period = period == null ? null : period.copy(); + return dst; + } + + protected ContactPoint typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ContactPoint)) + return false; + ContactPoint o = (ContactPoint) other; + return compareDeep(system, o.system, true) && compareDeep(value, o.value, true) && compareDeep(use, o.use, true) + && compareDeep(period, o.period, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ContactPoint)) + return false; + ContactPoint o = (ContactPoint) other; + return compareValues(system, o.system, true) && compareValues(value, o.value, true) && compareValues(use, o.use, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (system == null || system.isEmpty()) && (value == null || value.isEmpty()) + && (use == null || use.isEmpty()) && (period == null || period.isEmpty()); + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contract$ContractSignerComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contract$ContractSignerComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..164cf2c4a4d3db36d7b15279a8528b92de6f0b93 GIT binary patch literal 5089 zcmbVQ`&Sg_8GdGWah7FJTrYU3W)(%)RaaAEtWX1jF({}F1|!xs<1)hN?hMWhDoNY4 zvDfsPOWR=D+J&u>+*c*L*dU`s6 zm3TRhjyPV4W50a8s^Vt}Dnbzr__@HnCg;cG{AHPYU7BCW=PzaShKw$Ww!~||n=0N? z5c5Wd4Fz@GXY})WcEmID*>2PIS`<|GnuC_^jW}H1IcvGK+ja)CL-|Lur-w`@Yg(?S zTR9_Jum_BMw!ih^jtw4~K9M(NCH1&>q|QjXqfxH-oh7OknnB6rAk zyiVh^X_+#mphg^JIH{w7Cr{f>LC=?OSaU>oywQ~Hq#QeMq%I8EDbr24JViHcrKe>W zdb+8iTD_jbBLdVSc10A_ciOp;f?)+-O_jy0@#v6|>g?^>?<4u*Q#sr6xYtdYR%);A z8asCozRooqQ_uGqj!S!<>grUW98gf(!6-4TUZ0*HF{%iM_5b|OCkhs{is^gk&8Fr) z289l1P!@HYmT_pLaLRCw>I}7l%mdpZV$?yy3p|)?YMwUFKaqpe}PoXyvoq z%G5xDPO+q?LO_!O~)o z^13yc4GeE#nd8QClN3DJ6hypy-+XbHUzt1$nO`~_gK4@X#3y0iI}^S3h?6rOHzn1jR`^`pD%Z&WQ`-0D z?cCWG4Lvxdp#z;7w&P(2t8^W;JB~gocan;CH2ey`X2xpx4UTE}Ev_h7KYzMvaAo`N z@Ou@1(C{vfv0nKIKH>H`j_oMe)$Vx)9hdU#ls@9wTXK$}dq%2go8)O(o^5rDRa>+l z*YKW*ZLFkCDfKn{QFN~>DG{t`_!F*bFmZ<0TqRLOBC;F@7oI5bKEGW5ijc2AtN4q8 z)=E-}rrnR28a}`^4SDoSb5g@F&S{vyq%_wxIP!S|H)XZJieCw97TFXeOEK>93`h4Q z2n$P-5_1J{^X}U6Vma|sxOj%Fm5P4IxX9fx%kO3up2Mfk7&&>;L|Nt)EGsWI;hN-8 zb0zKRsnh1*2(|R@{KbZF=CIXHo^<#$nI$(Yc2Xp?0lR!#oHf$FQfV8jU^sm2UP@Ig z$44Bqz!%7Q!+#DaI9M(rgr8eg=gxF>&Ax3#>64#cS|v9IMT_z)lDkMt7DOqqzKeK~ zZJVzk&a7r)Moo^_qV5<$Mcoh@Rk{LZo8B)(cw#;r7T$`X@vZbl)rR;*6Z$KQo*C1M z7&EsL4D0x)-^N#3ls`&XL=oX{7QPX&1COxZ#?ekx;Zc{1+fP8rVHZBvh23b8rnL*7 z#~$u^%tag8UF@Y4)?@IcJo9u%c)C+g@4I_?ck%S&a(X{j;R$r{^Z{RogZyElNRelI zm^16xE9|S%lThC0K*15V2`T`B#wb{}e}S!RPjg;Y60$v=xrRvT%t9Irg2f0|O*pm-Yw-6%o5jI>$?HFpOu<&?t z(Io2rdL4_$eBUOi$Pxxe_LTrvVF3Xx8fv4KH%L9sVGXa2Cf>^8=NKaOb%grTT?g;x zS21jn+gL2}Cb0A})Yuio%6z!M-*&+lQ-#Q~HaYj@Pb=rSnR1??lLGoR(9_~;)u&!s zOe^Q>3-stE&J56-!GRX`V!-miW2$lmwSf`KZee-JHG%#w`nW10HC-x$p)eRjp`Zg{ zl-C4;guvxa&P<^Gn6FPj<0PF4yhK;OOd7v})p*sH?Nd1>&kEWhiSZ06Cl}zzx7*e>57Q7xN&RN>Q zr$K1V-)W5~XiTAjRN2s-rU4rT?>1VgM0sxd>D041OsBOR1nG1r!|hup&=@FjW%^&4 zz&GOLgbXLJi5x6r{CaX7c!TYmB;Z?Eins9)-a#v0lRbP%=J=2lB5p+N6Ev%^m~S7W z;UGuTfk#sk}e+rP W@GmhDaFO4q_?O_g0Y8O~>i+?Z`V_(d literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contract$ContractTermComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contract$ContractTermComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..a3547adae17050a3e1ac115db4d1d3f046bf5aa2 GIT binary patch literal 14943 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

D)X?kB6j)9=?x1>LKZTr=*{8 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Contract.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contract.java similarity index 90% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Contract.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contract.java index 28e997fd125..7108c3b5c64 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Contract.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contract.java @@ -1,2229 +1,2286 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import java.math.*; -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A formal agreement between parties regarding the conduct of business, exchange of information or other matters. - */ -@ResourceDef(name="Contract", profile="http://hl7.org/fhir/Profile/Contract") -public class Contract extends DomainResource { - - @Block() - public static class ContractSignerComponent extends BackboneElement { - /** - * Party or role who is signing. - */ - @Child(name="type", type={Coding.class}, order=1, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Signer Type", formalDefinition="Party or role who is signing." ) - protected List type; - - /** - * The DSIG signature contents in Base64. - */ - @Child(name="signature", type={StringType.class}, order=2, min=1, max=1) - @Description(shortDefinition="Documentation Signature", formalDefinition="The DSIG signature contents in Base64." ) - protected StringType signature; - - private static final long serialVersionUID = 584509693L; - - public ContractSignerComponent() { - super(); - } - - public ContractSignerComponent(StringType signature) { - super(); - this.signature = signature; - } - - /** - * @return {@link #type} (Party or role who is signing.) - */ - public List getType() { - if (this.type == null) - this.type = new ArrayList(); - return this.type; - } - - public boolean hasType() { - if (this.type == null) - return false; - for (Coding item : this.type) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #type} (Party or role who is signing.) - */ - // syntactic sugar - public Coding addType() { //3 - Coding t = new Coding(); - if (this.type == null) - this.type = new ArrayList(); - this.type.add(t); - return t; - } - - /** - * @return {@link #signature} (The DSIG signature contents in Base64.). This is the underlying object with id, value and extensions. The accessor "getSignature" gives direct access to the value - */ - public StringType getSignatureElement() { - if (this.signature == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractSignerComponent.signature"); - else if (Configuration.doAutoCreate()) - this.signature = new StringType(); - return this.signature; - } - - public boolean hasSignatureElement() { - return this.signature != null && !this.signature.isEmpty(); - } - - public boolean hasSignature() { - return this.signature != null && !this.signature.isEmpty(); - } - - /** - * @param value {@link #signature} (The DSIG signature contents in Base64.). This is the underlying object with id, value and extensions. The accessor "getSignature" gives direct access to the value - */ - public ContractSignerComponent setSignatureElement(StringType value) { - this.signature = value; - return this; - } - - /** - * @return The DSIG signature contents in Base64. - */ - public String getSignature() { - return this.signature == null ? null : this.signature.getValue(); - } - - /** - * @param value The DSIG signature contents in Base64. - */ - public ContractSignerComponent setSignature(String value) { - if (this.signature == null) - this.signature = new StringType(); - this.signature.setValue(value); - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "Coding", "Party or role who is signing.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("signature", "string", "The DSIG signature contents in Base64.", 0, java.lang.Integer.MAX_VALUE, signature)); - } - - public ContractSignerComponent copy() { - ContractSignerComponent dst = new ContractSignerComponent(); - copyValues(dst); - if (type != null) { - dst.type = new ArrayList(); - for (Coding i : type) - dst.type.add(i.copy()); - }; - dst.signature = signature == null ? null : signature.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (signature == null || signature.isEmpty()) - ; - } - - } - - @Block() - public static class ContractTermComponent extends BackboneElement { - /** - * Unique Id for this particular term. - */ - @Child(name="identifier", type={Identifier.class}, order=1, min=0, max=1) - @Description(shortDefinition="Term identifier", formalDefinition="Unique Id for this particular term." ) - protected Identifier identifier; - - /** - * The type of the term. - */ - @Child(name="type", type={CodeableConcept.class}, order=2, min=0, max=1) - @Description(shortDefinition="Term type", formalDefinition="The type of the term." ) - protected CodeableConcept type; - - /** - * The subtype of the term which is appropriate to the term type. - */ - @Child(name="subtype", type={CodeableConcept.class}, order=3, min=0, max=1) - @Description(shortDefinition="Term subtype", formalDefinition="The subtype of the term which is appropriate to the term type." ) - protected CodeableConcept subtype; - - /** - * Who or what the contract term is about. - */ - @Child(name="subject", type={}, order=4, min=0, max=1) - @Description(shortDefinition="Subject for the Term", formalDefinition="Who or what the contract term is about." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (Who or what the contract term is about.) - */ - protected Resource subjectTarget; - - /** - * Human readable form of the term of the contract. - */ - @Child(name="text", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Human readable Term text", formalDefinition="Human readable form of the term of the contract." ) - protected StringType text; - - /** - * When this term was issued. - */ - @Child(name="issued", type={DateTimeType.class}, order=6, min=0, max=1) - @Description(shortDefinition="When issued", formalDefinition="When this term was issued." ) - protected DateTimeType issued; - - /** - * Relevant time/time-period when the term is applicable. - */ - @Child(name="applies", type={Period.class}, order=7, min=0, max=1) - @Description(shortDefinition="When effective", formalDefinition="Relevant time/time-period when the term is applicable." ) - protected Period applies; - - /** - * The number of repetitions of a service or product. - */ - @Child(name="quantity", type={Quantity.class}, order=8, min=0, max=1) - @Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." ) - protected Quantity quantity; - - /** - * The unit price product. - */ - @Child(name="unitPrice", type={Money.class}, order=9, min=0, max=1) - @Description(shortDefinition="Fee, charge or cost per point", formalDefinition="The unit price product." ) - protected Money unitPrice; - - /** - * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - @Child(name="factor", type={DecimalType.class}, order=10, min=0, max=1) - @Description(shortDefinition="Price scaling factor", formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount." ) - protected DecimalType factor; - - /** - * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - @Child(name="points", type={DecimalType.class}, order=11, min=0, max=1) - @Description(shortDefinition="Difficulty scaling factor", formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point." ) - protected DecimalType points; - - /** - * The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. - */ - @Child(name="net", type={Money.class}, order=12, min=0, max=1) - @Description(shortDefinition="Total item cost", formalDefinition="The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." ) - protected Money net; - - private static final long serialVersionUID = -1958595473L; - - public ContractTermComponent() { - super(); - } - - /** - * @return {@link #identifier} (Unique Id for this particular term.) - */ - public Identifier getIdentifier() { - if (this.identifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractTermComponent.identifier"); - else if (Configuration.doAutoCreate()) - this.identifier = new Identifier(); - return this.identifier; - } - - public boolean hasIdentifier() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - /** - * @param value {@link #identifier} (Unique Id for this particular term.) - */ - public ContractTermComponent setIdentifier(Identifier value) { - this.identifier = value; - return this; - } - - /** - * @return {@link #type} (The type of the term.) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractTermComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The type of the term.) - */ - public ContractTermComponent setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #subtype} (The subtype of the term which is appropriate to the term type.) - */ - public CodeableConcept getSubtype() { - if (this.subtype == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractTermComponent.subtype"); - else if (Configuration.doAutoCreate()) - this.subtype = new CodeableConcept(); - return this.subtype; - } - - public boolean hasSubtype() { - return this.subtype != null && !this.subtype.isEmpty(); - } - - /** - * @param value {@link #subtype} (The subtype of the term which is appropriate to the term type.) - */ - public ContractTermComponent setSubtype(CodeableConcept value) { - this.subtype = value; - return this; - } - - /** - * @return {@link #subject} (Who or what the contract term is about.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractTermComponent.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (Who or what the contract term is about.) - */ - public ContractTermComponent setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who or what the contract term is about.) - */ - public Resource getSubjectTarget() { - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who or what the contract term is about.) - */ - public ContractTermComponent setSubjectTarget(Resource value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #text} (Human readable form of the term of the contract.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value - */ - public StringType getTextElement() { - if (this.text == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractTermComponent.text"); - else if (Configuration.doAutoCreate()) - this.text = new StringType(); - return this.text; - } - - public boolean hasTextElement() { - return this.text != null && !this.text.isEmpty(); - } - - public boolean hasText() { - return this.text != null && !this.text.isEmpty(); - } - - /** - * @param value {@link #text} (Human readable form of the term of the contract.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value - */ - public ContractTermComponent setTextElement(StringType value) { - this.text = value; - return this; - } - - /** - * @return Human readable form of the term of the contract. - */ - public String getText() { - return this.text == null ? null : this.text.getValue(); - } - - /** - * @param value Human readable form of the term of the contract. - */ - public ContractTermComponent setText(String value) { - if (Utilities.noString(value)) - this.text = null; - else { - if (this.text == null) - this.text = new StringType(); - this.text.setValue(value); - } - return this; - } - - /** - * @return {@link #issued} (When this term was issued.). This is the underlying object with id, value and extensions. The accessor "getIssued" gives direct access to the value - */ - public DateTimeType getIssuedElement() { - if (this.issued == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractTermComponent.issued"); - else if (Configuration.doAutoCreate()) - this.issued = new DateTimeType(); - return this.issued; - } - - public boolean hasIssuedElement() { - return this.issued != null && !this.issued.isEmpty(); - } - - public boolean hasIssued() { - return this.issued != null && !this.issued.isEmpty(); - } - - /** - * @param value {@link #issued} (When this term was issued.). This is the underlying object with id, value and extensions. The accessor "getIssued" gives direct access to the value - */ - public ContractTermComponent setIssuedElement(DateTimeType value) { - this.issued = value; - return this; - } - - /** - * @return When this term was issued. - */ - public Date getIssued() { - return this.issued == null ? null : this.issued.getValue(); - } - - /** - * @param value When this term was issued. - */ - public ContractTermComponent setIssued(Date value) { - if (value == null) - this.issued = null; - else { - if (this.issued == null) - this.issued = new DateTimeType(); - this.issued.setValue(value); - } - return this; - } - - /** - * @return {@link #applies} (Relevant time/time-period when the term is applicable.) - */ - public Period getApplies() { - if (this.applies == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractTermComponent.applies"); - else if (Configuration.doAutoCreate()) - this.applies = new Period(); - return this.applies; - } - - public boolean hasApplies() { - return this.applies != null && !this.applies.isEmpty(); - } - - /** - * @param value {@link #applies} (Relevant time/time-period when the term is applicable.) - */ - public ContractTermComponent setApplies(Period value) { - this.applies = value; - return this; - } - - /** - * @return {@link #quantity} (The number of repetitions of a service or product.) - */ - public Quantity getQuantity() { - if (this.quantity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractTermComponent.quantity"); - else if (Configuration.doAutoCreate()) - this.quantity = new Quantity(); - return this.quantity; - } - - public boolean hasQuantity() { - return this.quantity != null && !this.quantity.isEmpty(); - } - - /** - * @param value {@link #quantity} (The number of repetitions of a service or product.) - */ - public ContractTermComponent setQuantity(Quantity value) { - this.quantity = value; - return this; - } - - /** - * @return {@link #unitPrice} (The unit price product.) - */ - public Money getUnitPrice() { - if (this.unitPrice == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractTermComponent.unitPrice"); - else if (Configuration.doAutoCreate()) - this.unitPrice = new Money(); - return this.unitPrice; - } - - public boolean hasUnitPrice() { - return this.unitPrice != null && !this.unitPrice.isEmpty(); - } - - /** - * @param value {@link #unitPrice} (The unit price product.) - */ - public ContractTermComponent setUnitPrice(Money value) { - this.unitPrice = value; - return this; - } - - /** - * @return {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value - */ - public DecimalType getFactorElement() { - if (this.factor == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractTermComponent.factor"); - else if (Configuration.doAutoCreate()) - this.factor = new DecimalType(); - return this.factor; - } - - public boolean hasFactorElement() { - return this.factor != null && !this.factor.isEmpty(); - } - - public boolean hasFactor() { - return this.factor != null && !this.factor.isEmpty(); - } - - /** - * @param value {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value - */ - public ContractTermComponent setFactorElement(DecimalType value) { - this.factor = value; - return this; - } - - /** - * @return A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - public BigDecimal getFactor() { - return this.factor == null ? null : this.factor.getValue(); - } - - /** - * @param value A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - public ContractTermComponent setFactor(BigDecimal value) { - if (value == null) - this.factor = null; - else { - if (this.factor == null) - this.factor = new DecimalType(); - this.factor.setValue(value); - } - return this; - } - - /** - * @return {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value - */ - public DecimalType getPointsElement() { - if (this.points == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractTermComponent.points"); - else if (Configuration.doAutoCreate()) - this.points = new DecimalType(); - return this.points; - } - - public boolean hasPointsElement() { - return this.points != null && !this.points.isEmpty(); - } - - public boolean hasPoints() { - return this.points != null && !this.points.isEmpty(); - } - - /** - * @param value {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value - */ - public ContractTermComponent setPointsElement(DecimalType value) { - this.points = value; - return this; - } - - /** - * @return An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - public BigDecimal getPoints() { - return this.points == null ? null : this.points.getValue(); - } - - /** - * @param value An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - public ContractTermComponent setPoints(BigDecimal value) { - if (value == null) - this.points = null; - else { - if (this.points == null) - this.points = new DecimalType(); - this.points.setValue(value); - } - return this; - } - - /** - * @return {@link #net} (The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) - */ - public Money getNet() { - if (this.net == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ContractTermComponent.net"); - else if (Configuration.doAutoCreate()) - this.net = new Money(); - return this.net; - } - - public boolean hasNet() { - return this.net != null && !this.net.isEmpty(); - } - - /** - * @param value {@link #net} (The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) - */ - public ContractTermComponent setNet(Money value) { - this.net = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "Unique Id for this particular term.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("type", "CodeableConcept", "The type of the term.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("subtype", "CodeableConcept", "The subtype of the term which is appropriate to the term type.", 0, java.lang.Integer.MAX_VALUE, subtype)); - childrenList.add(new Property("subject", "Reference(Any)", "Who or what the contract term is about.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("text", "string", "Human readable form of the term of the contract.", 0, java.lang.Integer.MAX_VALUE, text)); - childrenList.add(new Property("issued", "dateTime", "When this term was issued.", 0, java.lang.Integer.MAX_VALUE, issued)); - childrenList.add(new Property("applies", "Period", "Relevant time/time-period when the term is applicable.", 0, java.lang.Integer.MAX_VALUE, applies)); - childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity)); - childrenList.add(new Property("unitPrice", "Money", "The unit price product.", 0, java.lang.Integer.MAX_VALUE, unitPrice)); - childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor)); - childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points)); - childrenList.add(new Property("net", "Money", "The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 0, java.lang.Integer.MAX_VALUE, net)); - } - - public ContractTermComponent copy() { - ContractTermComponent dst = new ContractTermComponent(); - copyValues(dst); - dst.identifier = identifier == null ? null : identifier.copy(); - dst.type = type == null ? null : type.copy(); - dst.subtype = subtype == null ? null : subtype.copy(); - dst.subject = subject == null ? null : subject.copy(); - dst.text = text == null ? null : text.copy(); - dst.issued = issued == null ? null : issued.copy(); - dst.applies = applies == null ? null : applies.copy(); - dst.quantity = quantity == null ? null : quantity.copy(); - dst.unitPrice = unitPrice == null ? null : unitPrice.copy(); - dst.factor = factor == null ? null : factor.copy(); - dst.points = points == null ? null : points.copy(); - dst.net = net == null ? null : net.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (type == null || type.isEmpty()) - && (subtype == null || subtype.isEmpty()) && (subject == null || subject.isEmpty()) && (text == null || text.isEmpty()) - && (issued == null || issued.isEmpty()) && (applies == null || applies.isEmpty()) && (quantity == null || quantity.isEmpty()) - && (unitPrice == null || unitPrice.isEmpty()) && (factor == null || factor.isEmpty()) && (points == null || points.isEmpty()) - && (net == null || net.isEmpty()); - } - - } - - /** - * Unique Id for this contract. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Contract identifier", formalDefinition="Unique Id for this contract." ) - protected List identifier; - - /** - * Who and/or what this is about: typically Patient, Organization, property. - */ - @Child(name="subject", type={}, order=0, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Subject", formalDefinition="Who and/or what this is about: typically Patient, Organization, property." ) - protected List subject; - /** - * The actual objects that are the target of the reference (Who and/or what this is about: typically Patient, Organization, property.) - */ - protected List subjectTarget; - - - /** - * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc. - */ - @Child(name="authority", type={Organization.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Authority", formalDefinition="A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc." ) - protected List authority; - /** - * The actual objects that are the target of the reference (A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.) - */ - protected List authorityTarget; - - - /** - * A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations. - */ - @Child(name="domain", type={Location.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Domain", formalDefinition="A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations." ) - protected List domain; - /** - * The actual objects that are the target of the reference (A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations.) - */ - protected List domainTarget; - - - /** - * Type of contract (Privacy-Security, Agreement, Insurance). - */ - @Child(name="type", type={CodeableConcept.class}, order=3, min=0, max=1) - @Description(shortDefinition="Type of contract", formalDefinition="Type of contract (Privacy-Security, Agreement, Insurance)." ) - protected CodeableConcept type; - - /** - * More specific type of contract (Privacy, Disclosure-Authorization, Advanced-Directive, DNR, Authorization-to-Treat). - */ - @Child(name="subtype", type={CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Subtype of contract", formalDefinition="More specific type of contract (Privacy, Disclosure-Authorization, Advanced-Directive, DNR, Authorization-to-Treat)." ) - protected List subtype; - - /** - * When this was issued. - */ - @Child(name="issued", type={DateTimeType.class}, order=5, min=0, max=1) - @Description(shortDefinition="When this was issued", formalDefinition="When this was issued." ) - protected DateTimeType issued; - - /** - * Relevant time/time-period when applicable. - */ - @Child(name="applies", type={Period.class}, order=6, min=0, max=1) - @Description(shortDefinition="Effective time", formalDefinition="Relevant time/time-period when applicable." ) - protected Period applies; - - /** - * The number of repetitions of a service or product. - */ - @Child(name="quantity", type={Quantity.class}, order=7, min=0, max=1) - @Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." ) - protected Quantity quantity; - - /** - * The unit price product. - */ - @Child(name="unitPrice", type={Money.class}, order=8, min=0, max=1) - @Description(shortDefinition="Fee, charge or cost per point", formalDefinition="The unit price product." ) - protected Money unitPrice; - - /** - * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - @Child(name="factor", type={DecimalType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Price scaling factor", formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount." ) - protected DecimalType factor; - - /** - * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - @Child(name="points", type={DecimalType.class}, order=10, min=0, max=1) - @Description(shortDefinition="Difficulty scaling factor", formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point." ) - protected DecimalType points; - - /** - * The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. - */ - @Child(name="net", type={Money.class}, order=11, min=0, max=1) - @Description(shortDefinition="Total item cost", formalDefinition="The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." ) - protected Money net; - - /** - * Contract author or responsible party. - */ - @Child(name="author", type={Practitioner.class, RelatedPerson.class, Organization.class}, order=12, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Contract author or responsible party", formalDefinition="Contract author or responsible party." ) - protected List author; - /** - * The actual objects that are the target of the reference (Contract author or responsible party.) - */ - protected List authorTarget; - - - /** - * First Party to the contract, may be the party who confers or delegates the rights defined in the contract. - */ - @Child(name="grantor", type={Practitioner.class, RelatedPerson.class, Organization.class, Patient.class}, order=13, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="First Party or delegator", formalDefinition="First Party to the contract, may be the party who confers or delegates the rights defined in the contract." ) - protected List grantor; - /** - * The actual objects that are the target of the reference (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) - */ - protected List grantorTarget; - - - /** - * The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated. - */ - @Child(name="grantee", type={Practitioner.class, RelatedPerson.class, Organization.class, Patient.class}, order=14, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Second Party or delegatee", formalDefinition="The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated." ) - protected List grantee; - /** - * The actual objects that are the target of the reference (The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated.) - */ - protected List granteeTarget; - - - /** - * Who witnesses the contract. - */ - @Child(name="witness", type={Practitioner.class, RelatedPerson.class, Patient.class}, order=15, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Witness to the contract", formalDefinition="Who witnesses the contract." ) - protected List witness; - /** - * The actual objects that are the target of the reference (Who witnesses the contract.) - */ - protected List witnessTarget; - - - /** - * First Party to the contract, may be the party who confers or delegates the rights defined in the contract. - */ - @Child(name="executor", type={Practitioner.class, RelatedPerson.class, Organization.class, Patient.class}, order=16, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Trustee", formalDefinition="First Party to the contract, may be the party who confers or delegates the rights defined in the contract." ) - protected List executor; - /** - * The actual objects that are the target of the reference (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) - */ - protected List executorTarget; - - - /** - * First Party to the contract, may be the party who confers or delegates the rights defined in the contract. - */ - @Child(name="notary", type={Practitioner.class, RelatedPerson.class, Organization.class, Patient.class}, order=17, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Notary Public", formalDefinition="First Party to the contract, may be the party who confers or delegates the rights defined in the contract." ) - protected List notary; - /** - * The actual objects that are the target of the reference (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) - */ - protected List notaryTarget; - - - /** - * List or contract signatures. - */ - @Child(name="signer", type={}, order=18, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Signer", formalDefinition="List or contract signatures." ) - protected List signer; - - /** - * The itemized terms of the contract. The legal clause or conditions of the Contract that requires or prevents either one or both parties to perform a particular requirement by some specified time. - */ - @Child(name="term", type={}, order=19, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="The terms of the Contract", formalDefinition="The itemized terms of the contract. The legal clause or conditions of the Contract that requires or prevents either one or both parties to perform a particular requirement by some specified time." ) - protected List term; - - /** - * Legally binding contract. - */ - @Child(name="binding", type={Attachment.class}, order=20, min=0, max=1) - @Description(shortDefinition="Binding Contract", formalDefinition="Legally binding contract." ) - protected Attachment binding; - - /** - * Relevant time/time-period when applicable. - */ - @Child(name="bindingDateTime", type={DateTimeType.class}, order=21, min=0, max=1) - @Description(shortDefinition="Binding Contract effective time", formalDefinition="Relevant time/time-period when applicable." ) - protected DateTimeType bindingDateTime; - - /** - * Friendly Human readable form (might be a reference to the UI used to capture the contract). - */ - @Child(name="friendly", type={Attachment.class}, order=22, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Human readable contract text", formalDefinition="Friendly Human readable form (might be a reference to the UI used to capture the contract)." ) - protected List friendly; - - /** - * Relevant time/time-period when applicable. - */ - @Child(name="friendlyDateTime", type={DateTimeType.class}, order=23, min=0, max=1) - @Description(shortDefinition="Human readable contract text effective time", formalDefinition="Relevant time/time-period when applicable." ) - protected DateTimeType friendlyDateTime; - - /** - * Legal text in Human readable form. - */ - @Child(name="legal", type={Attachment.class}, order=24, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Legal contract text", formalDefinition="Legal text in Human readable form." ) - protected List legal; - - /** - * Relevant time/time-period when applicable. - */ - @Child(name="legalDateTime", type={DateTimeType.class}, order=25, min=0, max=1) - @Description(shortDefinition="Legal contract text date time", formalDefinition="Relevant time/time-period when applicable." ) - protected DateTimeType legalDateTime; - - /** - * Computable Policy rules (e.g. XACML, DKAL, SecPal). - */ - @Child(name="rule", type={Attachment.class}, order=26, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Computable contract text", formalDefinition="Computable Policy rules (e.g. XACML, DKAL, SecPal)." ) - protected List rule; - - /** - * Relevant time/time-period when applicable. - */ - @Child(name="ruleDateTime", type={DateTimeType.class}, order=27, min=0, max=1) - @Description(shortDefinition="Computable contract text effect time", formalDefinition="Relevant time/time-period when applicable." ) - protected DateTimeType ruleDateTime; - - private static final long serialVersionUID = -467568093L; - - public Contract() { - super(); - } - - /** - * @return {@link #identifier} (Unique Id for this contract.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Unique Id for this contract.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #subject} (Who and/or what this is about: typically Patient, Organization, property.) - */ - public List getSubject() { - if (this.subject == null) - this.subject = new ArrayList(); - return this.subject; - } - - public boolean hasSubject() { - if (this.subject == null) - return false; - for (Reference item : this.subject) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #subject} (Who and/or what this is about: typically Patient, Organization, property.) - */ - // syntactic sugar - public Reference addSubject() { //3 - Reference t = new Reference(); - if (this.subject == null) - this.subject = new ArrayList(); - this.subject.add(t); - return t; - } - - /** - * @return {@link #subject} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Who and/or what this is about: typically Patient, Organization, property.) - */ - public List getSubjectTarget() { - if (this.subjectTarget == null) - this.subjectTarget = new ArrayList(); - return this.subjectTarget; - } - - /** - * @return {@link #authority} (A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.) - */ - public List getAuthority() { - if (this.authority == null) - this.authority = new ArrayList(); - return this.authority; - } - - public boolean hasAuthority() { - if (this.authority == null) - return false; - for (Reference item : this.authority) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #authority} (A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.) - */ - // syntactic sugar - public Reference addAuthority() { //3 - Reference t = new Reference(); - if (this.authority == null) - this.authority = new ArrayList(); - this.authority.add(t); - return t; - } - - /** - * @return {@link #authority} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.) - */ - public List getAuthorityTarget() { - if (this.authorityTarget == null) - this.authorityTarget = new ArrayList(); - return this.authorityTarget; - } - - // syntactic sugar - /** - * @return {@link #authority} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.) - */ - public Organization addAuthorityTarget() { - Organization r = new Organization(); - if (this.authorityTarget == null) - this.authorityTarget = new ArrayList(); - this.authorityTarget.add(r); - return r; - } - - /** - * @return {@link #domain} (A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations.) - */ - public List getDomain() { - if (this.domain == null) - this.domain = new ArrayList(); - return this.domain; - } - - public boolean hasDomain() { - if (this.domain == null) - return false; - for (Reference item : this.domain) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #domain} (A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations.) - */ - // syntactic sugar - public Reference addDomain() { //3 - Reference t = new Reference(); - if (this.domain == null) - this.domain = new ArrayList(); - this.domain.add(t); - return t; - } - - /** - * @return {@link #domain} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations.) - */ - public List getDomainTarget() { - if (this.domainTarget == null) - this.domainTarget = new ArrayList(); - return this.domainTarget; - } - - // syntactic sugar - /** - * @return {@link #domain} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations.) - */ - public Location addDomainTarget() { - Location r = new Location(); - if (this.domainTarget == null) - this.domainTarget = new ArrayList(); - this.domainTarget.add(r); - return r; - } - - /** - * @return {@link #type} (Type of contract (Privacy-Security, Agreement, Insurance).) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Type of contract (Privacy-Security, Agreement, Insurance).) - */ - public Contract setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #subtype} (More specific type of contract (Privacy, Disclosure-Authorization, Advanced-Directive, DNR, Authorization-to-Treat).) - */ - public List getSubtype() { - if (this.subtype == null) - this.subtype = new ArrayList(); - return this.subtype; - } - - public boolean hasSubtype() { - if (this.subtype == null) - return false; - for (CodeableConcept item : this.subtype) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #subtype} (More specific type of contract (Privacy, Disclosure-Authorization, Advanced-Directive, DNR, Authorization-to-Treat).) - */ - // syntactic sugar - public CodeableConcept addSubtype() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.subtype == null) - this.subtype = new ArrayList(); - this.subtype.add(t); - return t; - } - - /** - * @return {@link #issued} (When this was issued.). This is the underlying object with id, value and extensions. The accessor "getIssued" gives direct access to the value - */ - public DateTimeType getIssuedElement() { - if (this.issued == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.issued"); - else if (Configuration.doAutoCreate()) - this.issued = new DateTimeType(); - return this.issued; - } - - public boolean hasIssuedElement() { - return this.issued != null && !this.issued.isEmpty(); - } - - public boolean hasIssued() { - return this.issued != null && !this.issued.isEmpty(); - } - - /** - * @param value {@link #issued} (When this was issued.). This is the underlying object with id, value and extensions. The accessor "getIssued" gives direct access to the value - */ - public Contract setIssuedElement(DateTimeType value) { - this.issued = value; - return this; - } - - /** - * @return When this was issued. - */ - public Date getIssued() { - return this.issued == null ? null : this.issued.getValue(); - } - - /** - * @param value When this was issued. - */ - public Contract setIssued(Date value) { - if (value == null) - this.issued = null; - else { - if (this.issued == null) - this.issued = new DateTimeType(); - this.issued.setValue(value); - } - return this; - } - - /** - * @return {@link #applies} (Relevant time/time-period when applicable.) - */ - public Period getApplies() { - if (this.applies == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.applies"); - else if (Configuration.doAutoCreate()) - this.applies = new Period(); - return this.applies; - } - - public boolean hasApplies() { - return this.applies != null && !this.applies.isEmpty(); - } - - /** - * @param value {@link #applies} (Relevant time/time-period when applicable.) - */ - public Contract setApplies(Period value) { - this.applies = value; - return this; - } - - /** - * @return {@link #quantity} (The number of repetitions of a service or product.) - */ - public Quantity getQuantity() { - if (this.quantity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.quantity"); - else if (Configuration.doAutoCreate()) - this.quantity = new Quantity(); - return this.quantity; - } - - public boolean hasQuantity() { - return this.quantity != null && !this.quantity.isEmpty(); - } - - /** - * @param value {@link #quantity} (The number of repetitions of a service or product.) - */ - public Contract setQuantity(Quantity value) { - this.quantity = value; - return this; - } - - /** - * @return {@link #unitPrice} (The unit price product.) - */ - public Money getUnitPrice() { - if (this.unitPrice == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.unitPrice"); - else if (Configuration.doAutoCreate()) - this.unitPrice = new Money(); - return this.unitPrice; - } - - public boolean hasUnitPrice() { - return this.unitPrice != null && !this.unitPrice.isEmpty(); - } - - /** - * @param value {@link #unitPrice} (The unit price product.) - */ - public Contract setUnitPrice(Money value) { - this.unitPrice = value; - return this; - } - - /** - * @return {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value - */ - public DecimalType getFactorElement() { - if (this.factor == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.factor"); - else if (Configuration.doAutoCreate()) - this.factor = new DecimalType(); - return this.factor; - } - - public boolean hasFactorElement() { - return this.factor != null && !this.factor.isEmpty(); - } - - public boolean hasFactor() { - return this.factor != null && !this.factor.isEmpty(); - } - - /** - * @param value {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value - */ - public Contract setFactorElement(DecimalType value) { - this.factor = value; - return this; - } - - /** - * @return A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - public BigDecimal getFactor() { - return this.factor == null ? null : this.factor.getValue(); - } - - /** - * @param value A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - public Contract setFactor(BigDecimal value) { - if (value == null) - this.factor = null; - else { - if (this.factor == null) - this.factor = new DecimalType(); - this.factor.setValue(value); - } - return this; - } - - /** - * @return {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value - */ - public DecimalType getPointsElement() { - if (this.points == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.points"); - else if (Configuration.doAutoCreate()) - this.points = new DecimalType(); - return this.points; - } - - public boolean hasPointsElement() { - return this.points != null && !this.points.isEmpty(); - } - - public boolean hasPoints() { - return this.points != null && !this.points.isEmpty(); - } - - /** - * @param value {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value - */ - public Contract setPointsElement(DecimalType value) { - this.points = value; - return this; - } - - /** - * @return An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - public BigDecimal getPoints() { - return this.points == null ? null : this.points.getValue(); - } - - /** - * @param value An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - public Contract setPoints(BigDecimal value) { - if (value == null) - this.points = null; - else { - if (this.points == null) - this.points = new DecimalType(); - this.points.setValue(value); - } - return this; - } - - /** - * @return {@link #net} (The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) - */ - public Money getNet() { - if (this.net == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.net"); - else if (Configuration.doAutoCreate()) - this.net = new Money(); - return this.net; - } - - public boolean hasNet() { - return this.net != null && !this.net.isEmpty(); - } - - /** - * @param value {@link #net} (The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) - */ - public Contract setNet(Money value) { - this.net = value; - return this; - } - - /** - * @return {@link #author} (Contract author or responsible party.) - */ - public List getAuthor() { - if (this.author == null) - this.author = new ArrayList(); - return this.author; - } - - public boolean hasAuthor() { - if (this.author == null) - return false; - for (Reference item : this.author) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #author} (Contract author or responsible party.) - */ - // syntactic sugar - public Reference addAuthor() { //3 - Reference t = new Reference(); - if (this.author == null) - this.author = new ArrayList(); - this.author.add(t); - return t; - } - - /** - * @return {@link #author} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Contract author or responsible party.) - */ - public List getAuthorTarget() { - if (this.authorTarget == null) - this.authorTarget = new ArrayList(); - return this.authorTarget; - } - - /** - * @return {@link #grantor} (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) - */ - public List getGrantor() { - if (this.grantor == null) - this.grantor = new ArrayList(); - return this.grantor; - } - - public boolean hasGrantor() { - if (this.grantor == null) - return false; - for (Reference item : this.grantor) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #grantor} (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) - */ - // syntactic sugar - public Reference addGrantor() { //3 - Reference t = new Reference(); - if (this.grantor == null) - this.grantor = new ArrayList(); - this.grantor.add(t); - return t; - } - - /** - * @return {@link #grantor} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) - */ - public List getGrantorTarget() { - if (this.grantorTarget == null) - this.grantorTarget = new ArrayList(); - return this.grantorTarget; - } - - /** - * @return {@link #grantee} (The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated.) - */ - public List getGrantee() { - if (this.grantee == null) - this.grantee = new ArrayList(); - return this.grantee; - } - - public boolean hasGrantee() { - if (this.grantee == null) - return false; - for (Reference item : this.grantee) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #grantee} (The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated.) - */ - // syntactic sugar - public Reference addGrantee() { //3 - Reference t = new Reference(); - if (this.grantee == null) - this.grantee = new ArrayList(); - this.grantee.add(t); - return t; - } - - /** - * @return {@link #grantee} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated.) - */ - public List getGranteeTarget() { - if (this.granteeTarget == null) - this.granteeTarget = new ArrayList(); - return this.granteeTarget; - } - - /** - * @return {@link #witness} (Who witnesses the contract.) - */ - public List getWitness() { - if (this.witness == null) - this.witness = new ArrayList(); - return this.witness; - } - - public boolean hasWitness() { - if (this.witness == null) - return false; - for (Reference item : this.witness) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #witness} (Who witnesses the contract.) - */ - // syntactic sugar - public Reference addWitness() { //3 - Reference t = new Reference(); - if (this.witness == null) - this.witness = new ArrayList(); - this.witness.add(t); - return t; - } - - /** - * @return {@link #witness} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Who witnesses the contract.) - */ - public List getWitnessTarget() { - if (this.witnessTarget == null) - this.witnessTarget = new ArrayList(); - return this.witnessTarget; - } - - /** - * @return {@link #executor} (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) - */ - public List getExecutor() { - if (this.executor == null) - this.executor = new ArrayList(); - return this.executor; - } - - public boolean hasExecutor() { - if (this.executor == null) - return false; - for (Reference item : this.executor) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #executor} (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) - */ - // syntactic sugar - public Reference addExecutor() { //3 - Reference t = new Reference(); - if (this.executor == null) - this.executor = new ArrayList(); - this.executor.add(t); - return t; - } - - /** - * @return {@link #executor} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) - */ - public List getExecutorTarget() { - if (this.executorTarget == null) - this.executorTarget = new ArrayList(); - return this.executorTarget; - } - - /** - * @return {@link #notary} (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) - */ - public List getNotary() { - if (this.notary == null) - this.notary = new ArrayList(); - return this.notary; - } - - public boolean hasNotary() { - if (this.notary == null) - return false; - for (Reference item : this.notary) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #notary} (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) - */ - // syntactic sugar - public Reference addNotary() { //3 - Reference t = new Reference(); - if (this.notary == null) - this.notary = new ArrayList(); - this.notary.add(t); - return t; - } - - /** - * @return {@link #notary} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) - */ - public List getNotaryTarget() { - if (this.notaryTarget == null) - this.notaryTarget = new ArrayList(); - return this.notaryTarget; - } - - /** - * @return {@link #signer} (List or contract signatures.) - */ - public List getSigner() { - if (this.signer == null) - this.signer = new ArrayList(); - return this.signer; - } - - public boolean hasSigner() { - if (this.signer == null) - return false; - for (ContractSignerComponent item : this.signer) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #signer} (List or contract signatures.) - */ - // syntactic sugar - public ContractSignerComponent addSigner() { //3 - ContractSignerComponent t = new ContractSignerComponent(); - if (this.signer == null) - this.signer = new ArrayList(); - this.signer.add(t); - return t; - } - - /** - * @return {@link #term} (The itemized terms of the contract. The legal clause or conditions of the Contract that requires or prevents either one or both parties to perform a particular requirement by some specified time.) - */ - public List getTerm() { - if (this.term == null) - this.term = new ArrayList(); - return this.term; - } - - public boolean hasTerm() { - if (this.term == null) - return false; - for (ContractTermComponent item : this.term) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #term} (The itemized terms of the contract. The legal clause or conditions of the Contract that requires or prevents either one or both parties to perform a particular requirement by some specified time.) - */ - // syntactic sugar - public ContractTermComponent addTerm() { //3 - ContractTermComponent t = new ContractTermComponent(); - if (this.term == null) - this.term = new ArrayList(); - this.term.add(t); - return t; - } - - /** - * @return {@link #binding} (Legally binding contract.) - */ - public Attachment getBinding() { - if (this.binding == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.binding"); - else if (Configuration.doAutoCreate()) - this.binding = new Attachment(); - return this.binding; - } - - public boolean hasBinding() { - return this.binding != null && !this.binding.isEmpty(); - } - - /** - * @param value {@link #binding} (Legally binding contract.) - */ - public Contract setBinding(Attachment value) { - this.binding = value; - return this; - } - - /** - * @return {@link #bindingDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getBindingDateTime" gives direct access to the value - */ - public DateTimeType getBindingDateTimeElement() { - if (this.bindingDateTime == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.bindingDateTime"); - else if (Configuration.doAutoCreate()) - this.bindingDateTime = new DateTimeType(); - return this.bindingDateTime; - } - - public boolean hasBindingDateTimeElement() { - return this.bindingDateTime != null && !this.bindingDateTime.isEmpty(); - } - - public boolean hasBindingDateTime() { - return this.bindingDateTime != null && !this.bindingDateTime.isEmpty(); - } - - /** - * @param value {@link #bindingDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getBindingDateTime" gives direct access to the value - */ - public Contract setBindingDateTimeElement(DateTimeType value) { - this.bindingDateTime = value; - return this; - } - - /** - * @return Relevant time/time-period when applicable. - */ - public Date getBindingDateTime() { - return this.bindingDateTime == null ? null : this.bindingDateTime.getValue(); - } - - /** - * @param value Relevant time/time-period when applicable. - */ - public Contract setBindingDateTime(Date value) { - if (value == null) - this.bindingDateTime = null; - else { - if (this.bindingDateTime == null) - this.bindingDateTime = new DateTimeType(); - this.bindingDateTime.setValue(value); - } - return this; - } - - /** - * @return {@link #friendly} (Friendly Human readable form (might be a reference to the UI used to capture the contract).) - */ - public List getFriendly() { - if (this.friendly == null) - this.friendly = new ArrayList(); - return this.friendly; - } - - public boolean hasFriendly() { - if (this.friendly == null) - return false; - for (Attachment item : this.friendly) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #friendly} (Friendly Human readable form (might be a reference to the UI used to capture the contract).) - */ - // syntactic sugar - public Attachment addFriendly() { //3 - Attachment t = new Attachment(); - if (this.friendly == null) - this.friendly = new ArrayList(); - this.friendly.add(t); - return t; - } - - /** - * @return {@link #friendlyDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getFriendlyDateTime" gives direct access to the value - */ - public DateTimeType getFriendlyDateTimeElement() { - if (this.friendlyDateTime == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.friendlyDateTime"); - else if (Configuration.doAutoCreate()) - this.friendlyDateTime = new DateTimeType(); - return this.friendlyDateTime; - } - - public boolean hasFriendlyDateTimeElement() { - return this.friendlyDateTime != null && !this.friendlyDateTime.isEmpty(); - } - - public boolean hasFriendlyDateTime() { - return this.friendlyDateTime != null && !this.friendlyDateTime.isEmpty(); - } - - /** - * @param value {@link #friendlyDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getFriendlyDateTime" gives direct access to the value - */ - public Contract setFriendlyDateTimeElement(DateTimeType value) { - this.friendlyDateTime = value; - return this; - } - - /** - * @return Relevant time/time-period when applicable. - */ - public Date getFriendlyDateTime() { - return this.friendlyDateTime == null ? null : this.friendlyDateTime.getValue(); - } - - /** - * @param value Relevant time/time-period when applicable. - */ - public Contract setFriendlyDateTime(Date value) { - if (value == null) - this.friendlyDateTime = null; - else { - if (this.friendlyDateTime == null) - this.friendlyDateTime = new DateTimeType(); - this.friendlyDateTime.setValue(value); - } - return this; - } - - /** - * @return {@link #legal} (Legal text in Human readable form.) - */ - public List getLegal() { - if (this.legal == null) - this.legal = new ArrayList(); - return this.legal; - } - - public boolean hasLegal() { - if (this.legal == null) - return false; - for (Attachment item : this.legal) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #legal} (Legal text in Human readable form.) - */ - // syntactic sugar - public Attachment addLegal() { //3 - Attachment t = new Attachment(); - if (this.legal == null) - this.legal = new ArrayList(); - this.legal.add(t); - return t; - } - - /** - * @return {@link #legalDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getLegalDateTime" gives direct access to the value - */ - public DateTimeType getLegalDateTimeElement() { - if (this.legalDateTime == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.legalDateTime"); - else if (Configuration.doAutoCreate()) - this.legalDateTime = new DateTimeType(); - return this.legalDateTime; - } - - public boolean hasLegalDateTimeElement() { - return this.legalDateTime != null && !this.legalDateTime.isEmpty(); - } - - public boolean hasLegalDateTime() { - return this.legalDateTime != null && !this.legalDateTime.isEmpty(); - } - - /** - * @param value {@link #legalDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getLegalDateTime" gives direct access to the value - */ - public Contract setLegalDateTimeElement(DateTimeType value) { - this.legalDateTime = value; - return this; - } - - /** - * @return Relevant time/time-period when applicable. - */ - public Date getLegalDateTime() { - return this.legalDateTime == null ? null : this.legalDateTime.getValue(); - } - - /** - * @param value Relevant time/time-period when applicable. - */ - public Contract setLegalDateTime(Date value) { - if (value == null) - this.legalDateTime = null; - else { - if (this.legalDateTime == null) - this.legalDateTime = new DateTimeType(); - this.legalDateTime.setValue(value); - } - return this; - } - - /** - * @return {@link #rule} (Computable Policy rules (e.g. XACML, DKAL, SecPal).) - */ - public List getRule() { - if (this.rule == null) - this.rule = new ArrayList(); - return this.rule; - } - - public boolean hasRule() { - if (this.rule == null) - return false; - for (Attachment item : this.rule) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #rule} (Computable Policy rules (e.g. XACML, DKAL, SecPal).) - */ - // syntactic sugar - public Attachment addRule() { //3 - Attachment t = new Attachment(); - if (this.rule == null) - this.rule = new ArrayList(); - this.rule.add(t); - return t; - } - - /** - * @return {@link #ruleDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getRuleDateTime" gives direct access to the value - */ - public DateTimeType getRuleDateTimeElement() { - if (this.ruleDateTime == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contract.ruleDateTime"); - else if (Configuration.doAutoCreate()) - this.ruleDateTime = new DateTimeType(); - return this.ruleDateTime; - } - - public boolean hasRuleDateTimeElement() { - return this.ruleDateTime != null && !this.ruleDateTime.isEmpty(); - } - - public boolean hasRuleDateTime() { - return this.ruleDateTime != null && !this.ruleDateTime.isEmpty(); - } - - /** - * @param value {@link #ruleDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getRuleDateTime" gives direct access to the value - */ - public Contract setRuleDateTimeElement(DateTimeType value) { - this.ruleDateTime = value; - return this; - } - - /** - * @return Relevant time/time-period when applicable. - */ - public Date getRuleDateTime() { - return this.ruleDateTime == null ? null : this.ruleDateTime.getValue(); - } - - /** - * @param value Relevant time/time-period when applicable. - */ - public Contract setRuleDateTime(Date value) { - if (value == null) - this.ruleDateTime = null; - else { - if (this.ruleDateTime == null) - this.ruleDateTime = new DateTimeType(); - this.ruleDateTime.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "Unique Id for this contract.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("subject", "Reference(Any)", "Who and/or what this is about: typically Patient, Organization, property.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("authority", "Reference(Organization)", "A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.", 0, java.lang.Integer.MAX_VALUE, authority)); - childrenList.add(new Property("domain", "Reference(Location)", "A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations.", 0, java.lang.Integer.MAX_VALUE, domain)); - childrenList.add(new Property("type", "CodeableConcept", "Type of contract (Privacy-Security, Agreement, Insurance).", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("subtype", "CodeableConcept", "More specific type of contract (Privacy, Disclosure-Authorization, Advanced-Directive, DNR, Authorization-to-Treat).", 0, java.lang.Integer.MAX_VALUE, subtype)); - childrenList.add(new Property("issued", "dateTime", "When this was issued.", 0, java.lang.Integer.MAX_VALUE, issued)); - childrenList.add(new Property("applies", "Period", "Relevant time/time-period when applicable.", 0, java.lang.Integer.MAX_VALUE, applies)); - childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity)); - childrenList.add(new Property("unitPrice", "Money", "The unit price product.", 0, java.lang.Integer.MAX_VALUE, unitPrice)); - childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor)); - childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points)); - childrenList.add(new Property("net", "Money", "The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 0, java.lang.Integer.MAX_VALUE, net)); - childrenList.add(new Property("author", "Reference(Practitioner|RelatedPerson|Organization)", "Contract author or responsible party.", 0, java.lang.Integer.MAX_VALUE, author)); - childrenList.add(new Property("grantor", "Reference(Practitioner|RelatedPerson|Organization|Patient)", "First Party to the contract, may be the party who confers or delegates the rights defined in the contract.", 0, java.lang.Integer.MAX_VALUE, grantor)); - childrenList.add(new Property("grantee", "Reference(Practitioner|RelatedPerson|Organization|Patient)", "The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated.", 0, java.lang.Integer.MAX_VALUE, grantee)); - childrenList.add(new Property("witness", "Reference(Practitioner|RelatedPerson|Patient)", "Who witnesses the contract.", 0, java.lang.Integer.MAX_VALUE, witness)); - childrenList.add(new Property("executor", "Reference(Practitioner|RelatedPerson|Organization|Patient)", "First Party to the contract, may be the party who confers or delegates the rights defined in the contract.", 0, java.lang.Integer.MAX_VALUE, executor)); - childrenList.add(new Property("notary", "Reference(Practitioner|RelatedPerson|Organization|Patient)", "First Party to the contract, may be the party who confers or delegates the rights defined in the contract.", 0, java.lang.Integer.MAX_VALUE, notary)); - childrenList.add(new Property("signer", "", "List or contract signatures.", 0, java.lang.Integer.MAX_VALUE, signer)); - childrenList.add(new Property("term", "", "The itemized terms of the contract. The legal clause or conditions of the Contract that requires or prevents either one or both parties to perform a particular requirement by some specified time.", 0, java.lang.Integer.MAX_VALUE, term)); - childrenList.add(new Property("binding", "Attachment", "Legally binding contract.", 0, java.lang.Integer.MAX_VALUE, binding)); - childrenList.add(new Property("bindingDateTime", "dateTime", "Relevant time/time-period when applicable.", 0, java.lang.Integer.MAX_VALUE, bindingDateTime)); - childrenList.add(new Property("friendly", "Attachment", "Friendly Human readable form (might be a reference to the UI used to capture the contract).", 0, java.lang.Integer.MAX_VALUE, friendly)); - childrenList.add(new Property("friendlyDateTime", "dateTime", "Relevant time/time-period when applicable.", 0, java.lang.Integer.MAX_VALUE, friendlyDateTime)); - childrenList.add(new Property("legal", "Attachment", "Legal text in Human readable form.", 0, java.lang.Integer.MAX_VALUE, legal)); - childrenList.add(new Property("legalDateTime", "dateTime", "Relevant time/time-period when applicable.", 0, java.lang.Integer.MAX_VALUE, legalDateTime)); - childrenList.add(new Property("rule", "Attachment", "Computable Policy rules (e.g. XACML, DKAL, SecPal).", 0, java.lang.Integer.MAX_VALUE, rule)); - childrenList.add(new Property("ruleDateTime", "dateTime", "Relevant time/time-period when applicable.", 0, java.lang.Integer.MAX_VALUE, ruleDateTime)); - } - - public Contract copy() { - Contract dst = new Contract(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - if (subject != null) { - dst.subject = new ArrayList(); - for (Reference i : subject) - dst.subject.add(i.copy()); - }; - if (authority != null) { - dst.authority = new ArrayList(); - for (Reference i : authority) - dst.authority.add(i.copy()); - }; - if (domain != null) { - dst.domain = new ArrayList(); - for (Reference i : domain) - dst.domain.add(i.copy()); - }; - dst.type = type == null ? null : type.copy(); - if (subtype != null) { - dst.subtype = new ArrayList(); - for (CodeableConcept i : subtype) - dst.subtype.add(i.copy()); - }; - dst.issued = issued == null ? null : issued.copy(); - dst.applies = applies == null ? null : applies.copy(); - dst.quantity = quantity == null ? null : quantity.copy(); - dst.unitPrice = unitPrice == null ? null : unitPrice.copy(); - dst.factor = factor == null ? null : factor.copy(); - dst.points = points == null ? null : points.copy(); - dst.net = net == null ? null : net.copy(); - if (author != null) { - dst.author = new ArrayList(); - for (Reference i : author) - dst.author.add(i.copy()); - }; - if (grantor != null) { - dst.grantor = new ArrayList(); - for (Reference i : grantor) - dst.grantor.add(i.copy()); - }; - if (grantee != null) { - dst.grantee = new ArrayList(); - for (Reference i : grantee) - dst.grantee.add(i.copy()); - }; - if (witness != null) { - dst.witness = new ArrayList(); - for (Reference i : witness) - dst.witness.add(i.copy()); - }; - if (executor != null) { - dst.executor = new ArrayList(); - for (Reference i : executor) - dst.executor.add(i.copy()); - }; - if (notary != null) { - dst.notary = new ArrayList(); - for (Reference i : notary) - dst.notary.add(i.copy()); - }; - if (signer != null) { - dst.signer = new ArrayList(); - for (ContractSignerComponent i : signer) - dst.signer.add(i.copy()); - }; - if (term != null) { - dst.term = new ArrayList(); - for (ContractTermComponent i : term) - dst.term.add(i.copy()); - }; - dst.binding = binding == null ? null : binding.copy(); - dst.bindingDateTime = bindingDateTime == null ? null : bindingDateTime.copy(); - if (friendly != null) { - dst.friendly = new ArrayList(); - for (Attachment i : friendly) - dst.friendly.add(i.copy()); - }; - dst.friendlyDateTime = friendlyDateTime == null ? null : friendlyDateTime.copy(); - if (legal != null) { - dst.legal = new ArrayList(); - for (Attachment i : legal) - dst.legal.add(i.copy()); - }; - dst.legalDateTime = legalDateTime == null ? null : legalDateTime.copy(); - if (rule != null) { - dst.rule = new ArrayList(); - for (Attachment i : rule) - dst.rule.add(i.copy()); - }; - dst.ruleDateTime = ruleDateTime == null ? null : ruleDateTime.copy(); - return dst; - } - - protected Contract typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (subject == null || subject.isEmpty()) - && (authority == null || authority.isEmpty()) && (domain == null || domain.isEmpty()) && (type == null || type.isEmpty()) - && (subtype == null || subtype.isEmpty()) && (issued == null || issued.isEmpty()) && (applies == null || applies.isEmpty()) - && (quantity == null || quantity.isEmpty()) && (unitPrice == null || unitPrice.isEmpty()) - && (factor == null || factor.isEmpty()) && (points == null || points.isEmpty()) && (net == null || net.isEmpty()) - && (author == null || author.isEmpty()) && (grantor == null || grantor.isEmpty()) && (grantee == null || grantee.isEmpty()) - && (witness == null || witness.isEmpty()) && (executor == null || executor.isEmpty()) && (notary == null || notary.isEmpty()) - && (signer == null || signer.isEmpty()) && (term == null || term.isEmpty()) && (binding == null || binding.isEmpty()) - && (bindingDateTime == null || bindingDateTime.isEmpty()) && (friendly == null || friendly.isEmpty()) - && (friendlyDateTime == null || friendlyDateTime.isEmpty()) && (legal == null || legal.isEmpty()) - && (legalDateTime == null || legalDateTime.isEmpty()) && (rule == null || rule.isEmpty()) - && (ruleDateTime == null || ruleDateTime.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Contract; - } - - @SearchParamDefinition(name="patient", path="Contract.subject", description="The identity of the target of the contract (if a patient)", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="subject", path="Contract.subject", description="The identity of the target of the contract", type="reference" ) - public static final String SP_SUBJECT = "subject"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import java.math.*; +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A formal agreement between parties regarding the conduct of business, exchange of information or other matters. + */ +@ResourceDef(name="Contract", profile="http://hl7.org/fhir/Profile/Contract") +public class Contract extends DomainResource { + + @Block() + public static class ContractSignerComponent extends BackboneElement { + /** + * Party or role who is signing. + */ + @Child(name="type", type={Coding.class}, order=1, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Signer Type", formalDefinition="Party or role who is signing." ) + protected List type; + + /** + * The DSIG signature contents in Base64. + */ + @Child(name="signature", type={StringType.class}, order=2, min=1, max=1) + @Description(shortDefinition="Documentation Signature", formalDefinition="The DSIG signature contents in Base64." ) + protected StringType signature; + + private static final long serialVersionUID = 584509693L; + + public ContractSignerComponent() { + super(); + } + + public ContractSignerComponent(StringType signature) { + super(); + this.signature = signature; + } + + /** + * @return {@link #type} (Party or role who is signing.) + */ + public List getType() { + if (this.type == null) + this.type = new ArrayList(); + return this.type; + } + + public boolean hasType() { + if (this.type == null) + return false; + for (Coding item : this.type) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #type} (Party or role who is signing.) + */ + // syntactic sugar + public Coding addType() { //3 + Coding t = new Coding(); + if (this.type == null) + this.type = new ArrayList(); + this.type.add(t); + return t; + } + + /** + * @return {@link #signature} (The DSIG signature contents in Base64.). This is the underlying object with id, value and extensions. The accessor "getSignature" gives direct access to the value + */ + public StringType getSignatureElement() { + if (this.signature == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractSignerComponent.signature"); + else if (Configuration.doAutoCreate()) + this.signature = new StringType(); // bb + return this.signature; + } + + public boolean hasSignatureElement() { + return this.signature != null && !this.signature.isEmpty(); + } + + public boolean hasSignature() { + return this.signature != null && !this.signature.isEmpty(); + } + + /** + * @param value {@link #signature} (The DSIG signature contents in Base64.). This is the underlying object with id, value and extensions. The accessor "getSignature" gives direct access to the value + */ + public ContractSignerComponent setSignatureElement(StringType value) { + this.signature = value; + return this; + } + + /** + * @return The DSIG signature contents in Base64. + */ + public String getSignature() { + return this.signature == null ? null : this.signature.getValue(); + } + + /** + * @param value The DSIG signature contents in Base64. + */ + public ContractSignerComponent setSignature(String value) { + if (this.signature == null) + this.signature = new StringType(); + this.signature.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "Coding", "Party or role who is signing.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("signature", "string", "The DSIG signature contents in Base64.", 0, java.lang.Integer.MAX_VALUE, signature)); + } + + public ContractSignerComponent copy() { + ContractSignerComponent dst = new ContractSignerComponent(); + copyValues(dst); + if (type != null) { + dst.type = new ArrayList(); + for (Coding i : type) + dst.type.add(i.copy()); + }; + dst.signature = signature == null ? null : signature.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ContractSignerComponent)) + return false; + ContractSignerComponent o = (ContractSignerComponent) other; + return compareDeep(type, o.type, true) && compareDeep(signature, o.signature, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ContractSignerComponent)) + return false; + ContractSignerComponent o = (ContractSignerComponent) other; + return compareValues(signature, o.signature, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (signature == null || signature.isEmpty()) + ; + } + + } + + @Block() + public static class ContractTermComponent extends BackboneElement { + /** + * Unique Id for this particular term. + */ + @Child(name="identifier", type={Identifier.class}, order=1, min=0, max=1) + @Description(shortDefinition="Term identifier", formalDefinition="Unique Id for this particular term." ) + protected Identifier identifier; + + /** + * The type of the term. + */ + @Child(name="type", type={CodeableConcept.class}, order=2, min=0, max=1) + @Description(shortDefinition="Term type", formalDefinition="The type of the term." ) + protected CodeableConcept type; + + /** + * The subtype of the term which is appropriate to the term type. + */ + @Child(name="subtype", type={CodeableConcept.class}, order=3, min=0, max=1) + @Description(shortDefinition="Term subtype", formalDefinition="The subtype of the term which is appropriate to the term type." ) + protected CodeableConcept subtype; + + /** + * Who or what the contract term is about. + */ + @Child(name="subject", type={}, order=4, min=0, max=1) + @Description(shortDefinition="Subject for the Term", formalDefinition="Who or what the contract term is about." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (Who or what the contract term is about.) + */ + protected Resource subjectTarget; + + /** + * Human readable form of the term of the contract. + */ + @Child(name="text", type={StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Human readable Term text", formalDefinition="Human readable form of the term of the contract." ) + protected StringType text; + + /** + * When this term was issued. + */ + @Child(name="issued", type={DateTimeType.class}, order=6, min=0, max=1) + @Description(shortDefinition="When issued", formalDefinition="When this term was issued." ) + protected DateTimeType issued; + + /** + * Relevant time/time-period when the term is applicable. + */ + @Child(name="applies", type={Period.class}, order=7, min=0, max=1) + @Description(shortDefinition="When effective", formalDefinition="Relevant time/time-period when the term is applicable." ) + protected Period applies; + + /** + * The number of repetitions of a service or product. + */ + @Child(name="quantity", type={Quantity.class}, order=8, min=0, max=1) + @Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." ) + protected Quantity quantity; + + /** + * The unit price product. + */ + @Child(name="unitPrice", type={Money.class}, order=9, min=0, max=1) + @Description(shortDefinition="Fee, charge or cost per point", formalDefinition="The unit price product." ) + protected Money unitPrice; + + /** + * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + @Child(name="factor", type={DecimalType.class}, order=10, min=0, max=1) + @Description(shortDefinition="Price scaling factor", formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount." ) + protected DecimalType factor; + + /** + * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + @Child(name="points", type={DecimalType.class}, order=11, min=0, max=1) + @Description(shortDefinition="Difficulty scaling factor", formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point." ) + protected DecimalType points; + + /** + * The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. + */ + @Child(name="net", type={Money.class}, order=12, min=0, max=1) + @Description(shortDefinition="Total item cost", formalDefinition="The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." ) + protected Money net; + + private static final long serialVersionUID = -1958595473L; + + public ContractTermComponent() { + super(); + } + + /** + * @return {@link #identifier} (Unique Id for this particular term.) + */ + public Identifier getIdentifier() { + if (this.identifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractTermComponent.identifier"); + else if (Configuration.doAutoCreate()) + this.identifier = new Identifier(); // cc + return this.identifier; + } + + public boolean hasIdentifier() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + /** + * @param value {@link #identifier} (Unique Id for this particular term.) + */ + public ContractTermComponent setIdentifier(Identifier value) { + this.identifier = value; + return this; + } + + /** + * @return {@link #type} (The type of the term.) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractTermComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The type of the term.) + */ + public ContractTermComponent setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #subtype} (The subtype of the term which is appropriate to the term type.) + */ + public CodeableConcept getSubtype() { + if (this.subtype == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractTermComponent.subtype"); + else if (Configuration.doAutoCreate()) + this.subtype = new CodeableConcept(); // cc + return this.subtype; + } + + public boolean hasSubtype() { + return this.subtype != null && !this.subtype.isEmpty(); + } + + /** + * @param value {@link #subtype} (The subtype of the term which is appropriate to the term type.) + */ + public ContractTermComponent setSubtype(CodeableConcept value) { + this.subtype = value; + return this; + } + + /** + * @return {@link #subject} (Who or what the contract term is about.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractTermComponent.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (Who or what the contract term is about.) + */ + public ContractTermComponent setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who or what the contract term is about.) + */ + public Resource getSubjectTarget() { + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who or what the contract term is about.) + */ + public ContractTermComponent setSubjectTarget(Resource value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #text} (Human readable form of the term of the contract.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value + */ + public StringType getTextElement() { + if (this.text == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractTermComponent.text"); + else if (Configuration.doAutoCreate()) + this.text = new StringType(); // bb + return this.text; + } + + public boolean hasTextElement() { + return this.text != null && !this.text.isEmpty(); + } + + public boolean hasText() { + return this.text != null && !this.text.isEmpty(); + } + + /** + * @param value {@link #text} (Human readable form of the term of the contract.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value + */ + public ContractTermComponent setTextElement(StringType value) { + this.text = value; + return this; + } + + /** + * @return Human readable form of the term of the contract. + */ + public String getText() { + return this.text == null ? null : this.text.getValue(); + } + + /** + * @param value Human readable form of the term of the contract. + */ + public ContractTermComponent setText(String value) { + if (Utilities.noString(value)) + this.text = null; + else { + if (this.text == null) + this.text = new StringType(); + this.text.setValue(value); + } + return this; + } + + /** + * @return {@link #issued} (When this term was issued.). This is the underlying object with id, value and extensions. The accessor "getIssued" gives direct access to the value + */ + public DateTimeType getIssuedElement() { + if (this.issued == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractTermComponent.issued"); + else if (Configuration.doAutoCreate()) + this.issued = new DateTimeType(); // bb + return this.issued; + } + + public boolean hasIssuedElement() { + return this.issued != null && !this.issued.isEmpty(); + } + + public boolean hasIssued() { + return this.issued != null && !this.issued.isEmpty(); + } + + /** + * @param value {@link #issued} (When this term was issued.). This is the underlying object with id, value and extensions. The accessor "getIssued" gives direct access to the value + */ + public ContractTermComponent setIssuedElement(DateTimeType value) { + this.issued = value; + return this; + } + + /** + * @return When this term was issued. + */ + public Date getIssued() { + return this.issued == null ? null : this.issued.getValue(); + } + + /** + * @param value When this term was issued. + */ + public ContractTermComponent setIssued(Date value) { + if (value == null) + this.issued = null; + else { + if (this.issued == null) + this.issued = new DateTimeType(); + this.issued.setValue(value); + } + return this; + } + + /** + * @return {@link #applies} (Relevant time/time-period when the term is applicable.) + */ + public Period getApplies() { + if (this.applies == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractTermComponent.applies"); + else if (Configuration.doAutoCreate()) + this.applies = new Period(); // cc + return this.applies; + } + + public boolean hasApplies() { + return this.applies != null && !this.applies.isEmpty(); + } + + /** + * @param value {@link #applies} (Relevant time/time-period when the term is applicable.) + */ + public ContractTermComponent setApplies(Period value) { + this.applies = value; + return this; + } + + /** + * @return {@link #quantity} (The number of repetitions of a service or product.) + */ + public Quantity getQuantity() { + if (this.quantity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractTermComponent.quantity"); + else if (Configuration.doAutoCreate()) + this.quantity = new Quantity(); // cc + return this.quantity; + } + + public boolean hasQuantity() { + return this.quantity != null && !this.quantity.isEmpty(); + } + + /** + * @param value {@link #quantity} (The number of repetitions of a service or product.) + */ + public ContractTermComponent setQuantity(Quantity value) { + this.quantity = value; + return this; + } + + /** + * @return {@link #unitPrice} (The unit price product.) + */ + public Money getUnitPrice() { + if (this.unitPrice == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractTermComponent.unitPrice"); + else if (Configuration.doAutoCreate()) + this.unitPrice = new Money(); // cc + return this.unitPrice; + } + + public boolean hasUnitPrice() { + return this.unitPrice != null && !this.unitPrice.isEmpty(); + } + + /** + * @param value {@link #unitPrice} (The unit price product.) + */ + public ContractTermComponent setUnitPrice(Money value) { + this.unitPrice = value; + return this; + } + + /** + * @return {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value + */ + public DecimalType getFactorElement() { + if (this.factor == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractTermComponent.factor"); + else if (Configuration.doAutoCreate()) + this.factor = new DecimalType(); // bb + return this.factor; + } + + public boolean hasFactorElement() { + return this.factor != null && !this.factor.isEmpty(); + } + + public boolean hasFactor() { + return this.factor != null && !this.factor.isEmpty(); + } + + /** + * @param value {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value + */ + public ContractTermComponent setFactorElement(DecimalType value) { + this.factor = value; + return this; + } + + /** + * @return A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + public BigDecimal getFactor() { + return this.factor == null ? null : this.factor.getValue(); + } + + /** + * @param value A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + public ContractTermComponent setFactor(BigDecimal value) { + if (value == null) + this.factor = null; + else { + if (this.factor == null) + this.factor = new DecimalType(); + this.factor.setValue(value); + } + return this; + } + + /** + * @return {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value + */ + public DecimalType getPointsElement() { + if (this.points == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractTermComponent.points"); + else if (Configuration.doAutoCreate()) + this.points = new DecimalType(); // bb + return this.points; + } + + public boolean hasPointsElement() { + return this.points != null && !this.points.isEmpty(); + } + + public boolean hasPoints() { + return this.points != null && !this.points.isEmpty(); + } + + /** + * @param value {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value + */ + public ContractTermComponent setPointsElement(DecimalType value) { + this.points = value; + return this; + } + + /** + * @return An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + public BigDecimal getPoints() { + return this.points == null ? null : this.points.getValue(); + } + + /** + * @param value An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + public ContractTermComponent setPoints(BigDecimal value) { + if (value == null) + this.points = null; + else { + if (this.points == null) + this.points = new DecimalType(); + this.points.setValue(value); + } + return this; + } + + /** + * @return {@link #net} (The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) + */ + public Money getNet() { + if (this.net == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContractTermComponent.net"); + else if (Configuration.doAutoCreate()) + this.net = new Money(); // cc + return this.net; + } + + public boolean hasNet() { + return this.net != null && !this.net.isEmpty(); + } + + /** + * @param value {@link #net} (The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) + */ + public ContractTermComponent setNet(Money value) { + this.net = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Unique Id for this particular term.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("type", "CodeableConcept", "The type of the term.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("subtype", "CodeableConcept", "The subtype of the term which is appropriate to the term type.", 0, java.lang.Integer.MAX_VALUE, subtype)); + childrenList.add(new Property("subject", "Reference(Any)", "Who or what the contract term is about.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("text", "string", "Human readable form of the term of the contract.", 0, java.lang.Integer.MAX_VALUE, text)); + childrenList.add(new Property("issued", "dateTime", "When this term was issued.", 0, java.lang.Integer.MAX_VALUE, issued)); + childrenList.add(new Property("applies", "Period", "Relevant time/time-period when the term is applicable.", 0, java.lang.Integer.MAX_VALUE, applies)); + childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity)); + childrenList.add(new Property("unitPrice", "Money", "The unit price product.", 0, java.lang.Integer.MAX_VALUE, unitPrice)); + childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor)); + childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points)); + childrenList.add(new Property("net", "Money", "The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 0, java.lang.Integer.MAX_VALUE, net)); + } + + public ContractTermComponent copy() { + ContractTermComponent dst = new ContractTermComponent(); + copyValues(dst); + dst.identifier = identifier == null ? null : identifier.copy(); + dst.type = type == null ? null : type.copy(); + dst.subtype = subtype == null ? null : subtype.copy(); + dst.subject = subject == null ? null : subject.copy(); + dst.text = text == null ? null : text.copy(); + dst.issued = issued == null ? null : issued.copy(); + dst.applies = applies == null ? null : applies.copy(); + dst.quantity = quantity == null ? null : quantity.copy(); + dst.unitPrice = unitPrice == null ? null : unitPrice.copy(); + dst.factor = factor == null ? null : factor.copy(); + dst.points = points == null ? null : points.copy(); + dst.net = net == null ? null : net.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ContractTermComponent)) + return false; + ContractTermComponent o = (ContractTermComponent) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(type, o.type, true) && compareDeep(subtype, o.subtype, true) + && compareDeep(subject, o.subject, true) && compareDeep(text, o.text, true) && compareDeep(issued, o.issued, true) + && compareDeep(applies, o.applies, true) && compareDeep(quantity, o.quantity, true) && compareDeep(unitPrice, o.unitPrice, true) + && compareDeep(factor, o.factor, true) && compareDeep(points, o.points, true) && compareDeep(net, o.net, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ContractTermComponent)) + return false; + ContractTermComponent o = (ContractTermComponent) other; + return compareValues(text, o.text, true) && compareValues(issued, o.issued, true) && compareValues(factor, o.factor, true) + && compareValues(points, o.points, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (type == null || type.isEmpty()) + && (subtype == null || subtype.isEmpty()) && (subject == null || subject.isEmpty()) && (text == null || text.isEmpty()) + && (issued == null || issued.isEmpty()) && (applies == null || applies.isEmpty()) && (quantity == null || quantity.isEmpty()) + && (unitPrice == null || unitPrice.isEmpty()) && (factor == null || factor.isEmpty()) && (points == null || points.isEmpty()) + && (net == null || net.isEmpty()); + } + + } + + /** + * Unique Id for this contract. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Contract identifier", formalDefinition="Unique Id for this contract." ) + protected List identifier; + + /** + * Who and/or what this is about: typically Patient, Organization, property. + */ + @Child(name="subject", type={}, order=0, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Subject", formalDefinition="Who and/or what this is about: typically Patient, Organization, property." ) + protected List subject; + /** + * The actual objects that are the target of the reference (Who and/or what this is about: typically Patient, Organization, property.) + */ + protected List subjectTarget; + + + /** + * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc. + */ + @Child(name="authority", type={Organization.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Authority", formalDefinition="A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc." ) + protected List authority; + /** + * The actual objects that are the target of the reference (A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.) + */ + protected List authorityTarget; + + + /** + * A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations. + */ + @Child(name="domain", type={Location.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Domain", formalDefinition="A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations." ) + protected List domain; + /** + * The actual objects that are the target of the reference (A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations.) + */ + protected List domainTarget; + + + /** + * Type of contract (Privacy-Security, Agreement, Insurance). + */ + @Child(name="type", type={CodeableConcept.class}, order=3, min=0, max=1) + @Description(shortDefinition="Type of contract", formalDefinition="Type of contract (Privacy-Security, Agreement, Insurance)." ) + protected CodeableConcept type; + + /** + * More specific type of contract (Privacy, Disclosure-Authorization, Advanced-Directive, DNR, Authorization-to-Treat). + */ + @Child(name="subtype", type={CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Subtype of contract", formalDefinition="More specific type of contract (Privacy, Disclosure-Authorization, Advanced-Directive, DNR, Authorization-to-Treat)." ) + protected List subtype; + + /** + * When this was issued. + */ + @Child(name="issued", type={DateTimeType.class}, order=5, min=0, max=1) + @Description(shortDefinition="When this was issued", formalDefinition="When this was issued." ) + protected DateTimeType issued; + + /** + * Relevant time/time-period when applicable. + */ + @Child(name="applies", type={Period.class}, order=6, min=0, max=1) + @Description(shortDefinition="Effective time", formalDefinition="Relevant time/time-period when applicable." ) + protected Period applies; + + /** + * The number of repetitions of a service or product. + */ + @Child(name="quantity", type={Quantity.class}, order=7, min=0, max=1) + @Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." ) + protected Quantity quantity; + + /** + * The unit price product. + */ + @Child(name="unitPrice", type={Money.class}, order=8, min=0, max=1) + @Description(shortDefinition="Fee, charge or cost per point", formalDefinition="The unit price product." ) + protected Money unitPrice; + + /** + * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + @Child(name="factor", type={DecimalType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Price scaling factor", formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount." ) + protected DecimalType factor; + + /** + * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + @Child(name="points", type={DecimalType.class}, order=10, min=0, max=1) + @Description(shortDefinition="Difficulty scaling factor", formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point." ) + protected DecimalType points; + + /** + * The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. + */ + @Child(name="net", type={Money.class}, order=11, min=0, max=1) + @Description(shortDefinition="Total item cost", formalDefinition="The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." ) + protected Money net; + + /** + * Contract author or responsible party. + */ + @Child(name="author", type={Practitioner.class, RelatedPerson.class, Organization.class}, order=12, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Contract author or responsible party", formalDefinition="Contract author or responsible party." ) + protected List author; + /** + * The actual objects that are the target of the reference (Contract author or responsible party.) + */ + protected List authorTarget; + + + /** + * First Party to the contract, may be the party who confers or delegates the rights defined in the contract. + */ + @Child(name="grantor", type={Practitioner.class, RelatedPerson.class, Organization.class, Patient.class}, order=13, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="First Party or delegator", formalDefinition="First Party to the contract, may be the party who confers or delegates the rights defined in the contract." ) + protected List grantor; + /** + * The actual objects that are the target of the reference (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) + */ + protected List grantorTarget; + + + /** + * The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated. + */ + @Child(name="grantee", type={Practitioner.class, RelatedPerson.class, Organization.class, Patient.class}, order=14, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Second Party or delegatee", formalDefinition="The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated." ) + protected List grantee; + /** + * The actual objects that are the target of the reference (The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated.) + */ + protected List granteeTarget; + + + /** + * Who witnesses the contract. + */ + @Child(name="witness", type={Practitioner.class, RelatedPerson.class, Patient.class}, order=15, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Witness to the contract", formalDefinition="Who witnesses the contract." ) + protected List witness; + /** + * The actual objects that are the target of the reference (Who witnesses the contract.) + */ + protected List witnessTarget; + + + /** + * First Party to the contract, may be the party who confers or delegates the rights defined in the contract. + */ + @Child(name="executor", type={Practitioner.class, RelatedPerson.class, Organization.class, Patient.class}, order=16, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Trustee", formalDefinition="First Party to the contract, may be the party who confers or delegates the rights defined in the contract." ) + protected List executor; + /** + * The actual objects that are the target of the reference (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) + */ + protected List executorTarget; + + + /** + * First Party to the contract, may be the party who confers or delegates the rights defined in the contract. + */ + @Child(name="notary", type={Practitioner.class, RelatedPerson.class, Organization.class, Patient.class}, order=17, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Notary Public", formalDefinition="First Party to the contract, may be the party who confers or delegates the rights defined in the contract." ) + protected List notary; + /** + * The actual objects that are the target of the reference (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) + */ + protected List notaryTarget; + + + /** + * List or contract signatures. + */ + @Child(name="signer", type={}, order=18, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Signer", formalDefinition="List or contract signatures." ) + protected List signer; + + /** + * The itemized terms of the contract. The legal clause or conditions of the Contract that requires or prevents either one or both parties to perform a particular requirement by some specified time. + */ + @Child(name="term", type={}, order=19, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="The terms of the Contract", formalDefinition="The itemized terms of the contract. The legal clause or conditions of the Contract that requires or prevents either one or both parties to perform a particular requirement by some specified time." ) + protected List term; + + /** + * Legally binding contract. + */ + @Child(name="binding", type={Attachment.class}, order=20, min=0, max=1) + @Description(shortDefinition="Binding Contract", formalDefinition="Legally binding contract." ) + protected Attachment binding; + + /** + * Relevant time/time-period when applicable. + */ + @Child(name="bindingDateTime", type={DateTimeType.class}, order=21, min=0, max=1) + @Description(shortDefinition="Binding Contract effective time", formalDefinition="Relevant time/time-period when applicable." ) + protected DateTimeType bindingDateTime; + + /** + * Friendly Human readable form (might be a reference to the UI used to capture the contract). + */ + @Child(name="friendly", type={Attachment.class}, order=22, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Human readable contract text", formalDefinition="Friendly Human readable form (might be a reference to the UI used to capture the contract)." ) + protected List friendly; + + /** + * Relevant time/time-period when applicable. + */ + @Child(name="friendlyDateTime", type={DateTimeType.class}, order=23, min=0, max=1) + @Description(shortDefinition="Human readable contract text effective time", formalDefinition="Relevant time/time-period when applicable." ) + protected DateTimeType friendlyDateTime; + + /** + * Legal text in Human readable form. + */ + @Child(name="legal", type={Attachment.class}, order=24, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Legal contract text", formalDefinition="Legal text in Human readable form." ) + protected List legal; + + /** + * Relevant time/time-period when applicable. + */ + @Child(name="legalDateTime", type={DateTimeType.class}, order=25, min=0, max=1) + @Description(shortDefinition="Legal contract text date time", formalDefinition="Relevant time/time-period when applicable." ) + protected DateTimeType legalDateTime; + + /** + * Computable Policy rules (e.g. XACML, DKAL, SecPal). + */ + @Child(name="rule", type={Attachment.class}, order=26, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Computable contract text", formalDefinition="Computable Policy rules (e.g. XACML, DKAL, SecPal)." ) + protected List rule; + + /** + * Relevant time/time-period when applicable. + */ + @Child(name="ruleDateTime", type={DateTimeType.class}, order=27, min=0, max=1) + @Description(shortDefinition="Computable contract text effect time", formalDefinition="Relevant time/time-period when applicable." ) + protected DateTimeType ruleDateTime; + + private static final long serialVersionUID = -467568093L; + + public Contract() { + super(); + } + + /** + * @return {@link #identifier} (Unique Id for this contract.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Unique Id for this contract.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #subject} (Who and/or what this is about: typically Patient, Organization, property.) + */ + public List getSubject() { + if (this.subject == null) + this.subject = new ArrayList(); + return this.subject; + } + + public boolean hasSubject() { + if (this.subject == null) + return false; + for (Reference item : this.subject) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #subject} (Who and/or what this is about: typically Patient, Organization, property.) + */ + // syntactic sugar + public Reference addSubject() { //3 + Reference t = new Reference(); + if (this.subject == null) + this.subject = new ArrayList(); + this.subject.add(t); + return t; + } + + /** + * @return {@link #subject} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Who and/or what this is about: typically Patient, Organization, property.) + */ + public List getSubjectTarget() { + if (this.subjectTarget == null) + this.subjectTarget = new ArrayList(); + return this.subjectTarget; + } + + /** + * @return {@link #authority} (A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.) + */ + public List getAuthority() { + if (this.authority == null) + this.authority = new ArrayList(); + return this.authority; + } + + public boolean hasAuthority() { + if (this.authority == null) + return false; + for (Reference item : this.authority) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #authority} (A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.) + */ + // syntactic sugar + public Reference addAuthority() { //3 + Reference t = new Reference(); + if (this.authority == null) + this.authority = new ArrayList(); + this.authority.add(t); + return t; + } + + /** + * @return {@link #authority} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.) + */ + public List getAuthorityTarget() { + if (this.authorityTarget == null) + this.authorityTarget = new ArrayList(); + return this.authorityTarget; + } + + // syntactic sugar + /** + * @return {@link #authority} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.) + */ + public Organization addAuthorityTarget() { + Organization r = new Organization(); + if (this.authorityTarget == null) + this.authorityTarget = new ArrayList(); + this.authorityTarget.add(r); + return r; + } + + /** + * @return {@link #domain} (A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations.) + */ + public List getDomain() { + if (this.domain == null) + this.domain = new ArrayList(); + return this.domain; + } + + public boolean hasDomain() { + if (this.domain == null) + return false; + for (Reference item : this.domain) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #domain} (A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations.) + */ + // syntactic sugar + public Reference addDomain() { //3 + Reference t = new Reference(); + if (this.domain == null) + this.domain = new ArrayList(); + this.domain.add(t); + return t; + } + + /** + * @return {@link #domain} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations.) + */ + public List getDomainTarget() { + if (this.domainTarget == null) + this.domainTarget = new ArrayList(); + return this.domainTarget; + } + + // syntactic sugar + /** + * @return {@link #domain} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations.) + */ + public Location addDomainTarget() { + Location r = new Location(); + if (this.domainTarget == null) + this.domainTarget = new ArrayList(); + this.domainTarget.add(r); + return r; + } + + /** + * @return {@link #type} (Type of contract (Privacy-Security, Agreement, Insurance).) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Type of contract (Privacy-Security, Agreement, Insurance).) + */ + public Contract setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #subtype} (More specific type of contract (Privacy, Disclosure-Authorization, Advanced-Directive, DNR, Authorization-to-Treat).) + */ + public List getSubtype() { + if (this.subtype == null) + this.subtype = new ArrayList(); + return this.subtype; + } + + public boolean hasSubtype() { + if (this.subtype == null) + return false; + for (CodeableConcept item : this.subtype) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #subtype} (More specific type of contract (Privacy, Disclosure-Authorization, Advanced-Directive, DNR, Authorization-to-Treat).) + */ + // syntactic sugar + public CodeableConcept addSubtype() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.subtype == null) + this.subtype = new ArrayList(); + this.subtype.add(t); + return t; + } + + /** + * @return {@link #issued} (When this was issued.). This is the underlying object with id, value and extensions. The accessor "getIssued" gives direct access to the value + */ + public DateTimeType getIssuedElement() { + if (this.issued == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.issued"); + else if (Configuration.doAutoCreate()) + this.issued = new DateTimeType(); // bb + return this.issued; + } + + public boolean hasIssuedElement() { + return this.issued != null && !this.issued.isEmpty(); + } + + public boolean hasIssued() { + return this.issued != null && !this.issued.isEmpty(); + } + + /** + * @param value {@link #issued} (When this was issued.). This is the underlying object with id, value and extensions. The accessor "getIssued" gives direct access to the value + */ + public Contract setIssuedElement(DateTimeType value) { + this.issued = value; + return this; + } + + /** + * @return When this was issued. + */ + public Date getIssued() { + return this.issued == null ? null : this.issued.getValue(); + } + + /** + * @param value When this was issued. + */ + public Contract setIssued(Date value) { + if (value == null) + this.issued = null; + else { + if (this.issued == null) + this.issued = new DateTimeType(); + this.issued.setValue(value); + } + return this; + } + + /** + * @return {@link #applies} (Relevant time/time-period when applicable.) + */ + public Period getApplies() { + if (this.applies == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.applies"); + else if (Configuration.doAutoCreate()) + this.applies = new Period(); // cc + return this.applies; + } + + public boolean hasApplies() { + return this.applies != null && !this.applies.isEmpty(); + } + + /** + * @param value {@link #applies} (Relevant time/time-period when applicable.) + */ + public Contract setApplies(Period value) { + this.applies = value; + return this; + } + + /** + * @return {@link #quantity} (The number of repetitions of a service or product.) + */ + public Quantity getQuantity() { + if (this.quantity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.quantity"); + else if (Configuration.doAutoCreate()) + this.quantity = new Quantity(); // cc + return this.quantity; + } + + public boolean hasQuantity() { + return this.quantity != null && !this.quantity.isEmpty(); + } + + /** + * @param value {@link #quantity} (The number of repetitions of a service or product.) + */ + public Contract setQuantity(Quantity value) { + this.quantity = value; + return this; + } + + /** + * @return {@link #unitPrice} (The unit price product.) + */ + public Money getUnitPrice() { + if (this.unitPrice == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.unitPrice"); + else if (Configuration.doAutoCreate()) + this.unitPrice = new Money(); // cc + return this.unitPrice; + } + + public boolean hasUnitPrice() { + return this.unitPrice != null && !this.unitPrice.isEmpty(); + } + + /** + * @param value {@link #unitPrice} (The unit price product.) + */ + public Contract setUnitPrice(Money value) { + this.unitPrice = value; + return this; + } + + /** + * @return {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value + */ + public DecimalType getFactorElement() { + if (this.factor == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.factor"); + else if (Configuration.doAutoCreate()) + this.factor = new DecimalType(); // bb + return this.factor; + } + + public boolean hasFactorElement() { + return this.factor != null && !this.factor.isEmpty(); + } + + public boolean hasFactor() { + return this.factor != null && !this.factor.isEmpty(); + } + + /** + * @param value {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value + */ + public Contract setFactorElement(DecimalType value) { + this.factor = value; + return this; + } + + /** + * @return A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + public BigDecimal getFactor() { + return this.factor == null ? null : this.factor.getValue(); + } + + /** + * @param value A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + public Contract setFactor(BigDecimal value) { + if (value == null) + this.factor = null; + else { + if (this.factor == null) + this.factor = new DecimalType(); + this.factor.setValue(value); + } + return this; + } + + /** + * @return {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value + */ + public DecimalType getPointsElement() { + if (this.points == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.points"); + else if (Configuration.doAutoCreate()) + this.points = new DecimalType(); // bb + return this.points; + } + + public boolean hasPointsElement() { + return this.points != null && !this.points.isEmpty(); + } + + public boolean hasPoints() { + return this.points != null && !this.points.isEmpty(); + } + + /** + * @param value {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value + */ + public Contract setPointsElement(DecimalType value) { + this.points = value; + return this; + } + + /** + * @return An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + public BigDecimal getPoints() { + return this.points == null ? null : this.points.getValue(); + } + + /** + * @param value An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + public Contract setPoints(BigDecimal value) { + if (value == null) + this.points = null; + else { + if (this.points == null) + this.points = new DecimalType(); + this.points.setValue(value); + } + return this; + } + + /** + * @return {@link #net} (The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) + */ + public Money getNet() { + if (this.net == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.net"); + else if (Configuration.doAutoCreate()) + this.net = new Money(); // cc + return this.net; + } + + public boolean hasNet() { + return this.net != null && !this.net.isEmpty(); + } + + /** + * @param value {@link #net} (The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) + */ + public Contract setNet(Money value) { + this.net = value; + return this; + } + + /** + * @return {@link #author} (Contract author or responsible party.) + */ + public List getAuthor() { + if (this.author == null) + this.author = new ArrayList(); + return this.author; + } + + public boolean hasAuthor() { + if (this.author == null) + return false; + for (Reference item : this.author) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #author} (Contract author or responsible party.) + */ + // syntactic sugar + public Reference addAuthor() { //3 + Reference t = new Reference(); + if (this.author == null) + this.author = new ArrayList(); + this.author.add(t); + return t; + } + + /** + * @return {@link #author} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Contract author or responsible party.) + */ + public List getAuthorTarget() { + if (this.authorTarget == null) + this.authorTarget = new ArrayList(); + return this.authorTarget; + } + + /** + * @return {@link #grantor} (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) + */ + public List getGrantor() { + if (this.grantor == null) + this.grantor = new ArrayList(); + return this.grantor; + } + + public boolean hasGrantor() { + if (this.grantor == null) + return false; + for (Reference item : this.grantor) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #grantor} (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) + */ + // syntactic sugar + public Reference addGrantor() { //3 + Reference t = new Reference(); + if (this.grantor == null) + this.grantor = new ArrayList(); + this.grantor.add(t); + return t; + } + + /** + * @return {@link #grantor} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) + */ + public List getGrantorTarget() { + if (this.grantorTarget == null) + this.grantorTarget = new ArrayList(); + return this.grantorTarget; + } + + /** + * @return {@link #grantee} (The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated.) + */ + public List getGrantee() { + if (this.grantee == null) + this.grantee = new ArrayList(); + return this.grantee; + } + + public boolean hasGrantee() { + if (this.grantee == null) + return false; + for (Reference item : this.grantee) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #grantee} (The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated.) + */ + // syntactic sugar + public Reference addGrantee() { //3 + Reference t = new Reference(); + if (this.grantee == null) + this.grantee = new ArrayList(); + this.grantee.add(t); + return t; + } + + /** + * @return {@link #grantee} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated.) + */ + public List getGranteeTarget() { + if (this.granteeTarget == null) + this.granteeTarget = new ArrayList(); + return this.granteeTarget; + } + + /** + * @return {@link #witness} (Who witnesses the contract.) + */ + public List getWitness() { + if (this.witness == null) + this.witness = new ArrayList(); + return this.witness; + } + + public boolean hasWitness() { + if (this.witness == null) + return false; + for (Reference item : this.witness) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #witness} (Who witnesses the contract.) + */ + // syntactic sugar + public Reference addWitness() { //3 + Reference t = new Reference(); + if (this.witness == null) + this.witness = new ArrayList(); + this.witness.add(t); + return t; + } + + /** + * @return {@link #witness} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Who witnesses the contract.) + */ + public List getWitnessTarget() { + if (this.witnessTarget == null) + this.witnessTarget = new ArrayList(); + return this.witnessTarget; + } + + /** + * @return {@link #executor} (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) + */ + public List getExecutor() { + if (this.executor == null) + this.executor = new ArrayList(); + return this.executor; + } + + public boolean hasExecutor() { + if (this.executor == null) + return false; + for (Reference item : this.executor) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #executor} (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) + */ + // syntactic sugar + public Reference addExecutor() { //3 + Reference t = new Reference(); + if (this.executor == null) + this.executor = new ArrayList(); + this.executor.add(t); + return t; + } + + /** + * @return {@link #executor} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) + */ + public List getExecutorTarget() { + if (this.executorTarget == null) + this.executorTarget = new ArrayList(); + return this.executorTarget; + } + + /** + * @return {@link #notary} (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) + */ + public List getNotary() { + if (this.notary == null) + this.notary = new ArrayList(); + return this.notary; + } + + public boolean hasNotary() { + if (this.notary == null) + return false; + for (Reference item : this.notary) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #notary} (First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) + */ + // syntactic sugar + public Reference addNotary() { //3 + Reference t = new Reference(); + if (this.notary == null) + this.notary = new ArrayList(); + this.notary.add(t); + return t; + } + + /** + * @return {@link #notary} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. First Party to the contract, may be the party who confers or delegates the rights defined in the contract.) + */ + public List getNotaryTarget() { + if (this.notaryTarget == null) + this.notaryTarget = new ArrayList(); + return this.notaryTarget; + } + + /** + * @return {@link #signer} (List or contract signatures.) + */ + public List getSigner() { + if (this.signer == null) + this.signer = new ArrayList(); + return this.signer; + } + + public boolean hasSigner() { + if (this.signer == null) + return false; + for (ContractSignerComponent item : this.signer) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #signer} (List or contract signatures.) + */ + // syntactic sugar + public ContractSignerComponent addSigner() { //3 + ContractSignerComponent t = new ContractSignerComponent(); + if (this.signer == null) + this.signer = new ArrayList(); + this.signer.add(t); + return t; + } + + /** + * @return {@link #term} (The itemized terms of the contract. The legal clause or conditions of the Contract that requires or prevents either one or both parties to perform a particular requirement by some specified time.) + */ + public List getTerm() { + if (this.term == null) + this.term = new ArrayList(); + return this.term; + } + + public boolean hasTerm() { + if (this.term == null) + return false; + for (ContractTermComponent item : this.term) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #term} (The itemized terms of the contract. The legal clause or conditions of the Contract that requires or prevents either one or both parties to perform a particular requirement by some specified time.) + */ + // syntactic sugar + public ContractTermComponent addTerm() { //3 + ContractTermComponent t = new ContractTermComponent(); + if (this.term == null) + this.term = new ArrayList(); + this.term.add(t); + return t; + } + + /** + * @return {@link #binding} (Legally binding contract.) + */ + public Attachment getBinding() { + if (this.binding == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.binding"); + else if (Configuration.doAutoCreate()) + this.binding = new Attachment(); // cc + return this.binding; + } + + public boolean hasBinding() { + return this.binding != null && !this.binding.isEmpty(); + } + + /** + * @param value {@link #binding} (Legally binding contract.) + */ + public Contract setBinding(Attachment value) { + this.binding = value; + return this; + } + + /** + * @return {@link #bindingDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getBindingDateTime" gives direct access to the value + */ + public DateTimeType getBindingDateTimeElement() { + if (this.bindingDateTime == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.bindingDateTime"); + else if (Configuration.doAutoCreate()) + this.bindingDateTime = new DateTimeType(); // bb + return this.bindingDateTime; + } + + public boolean hasBindingDateTimeElement() { + return this.bindingDateTime != null && !this.bindingDateTime.isEmpty(); + } + + public boolean hasBindingDateTime() { + return this.bindingDateTime != null && !this.bindingDateTime.isEmpty(); + } + + /** + * @param value {@link #bindingDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getBindingDateTime" gives direct access to the value + */ + public Contract setBindingDateTimeElement(DateTimeType value) { + this.bindingDateTime = value; + return this; + } + + /** + * @return Relevant time/time-period when applicable. + */ + public Date getBindingDateTime() { + return this.bindingDateTime == null ? null : this.bindingDateTime.getValue(); + } + + /** + * @param value Relevant time/time-period when applicable. + */ + public Contract setBindingDateTime(Date value) { + if (value == null) + this.bindingDateTime = null; + else { + if (this.bindingDateTime == null) + this.bindingDateTime = new DateTimeType(); + this.bindingDateTime.setValue(value); + } + return this; + } + + /** + * @return {@link #friendly} (Friendly Human readable form (might be a reference to the UI used to capture the contract).) + */ + public List getFriendly() { + if (this.friendly == null) + this.friendly = new ArrayList(); + return this.friendly; + } + + public boolean hasFriendly() { + if (this.friendly == null) + return false; + for (Attachment item : this.friendly) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #friendly} (Friendly Human readable form (might be a reference to the UI used to capture the contract).) + */ + // syntactic sugar + public Attachment addFriendly() { //3 + Attachment t = new Attachment(); + if (this.friendly == null) + this.friendly = new ArrayList(); + this.friendly.add(t); + return t; + } + + /** + * @return {@link #friendlyDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getFriendlyDateTime" gives direct access to the value + */ + public DateTimeType getFriendlyDateTimeElement() { + if (this.friendlyDateTime == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.friendlyDateTime"); + else if (Configuration.doAutoCreate()) + this.friendlyDateTime = new DateTimeType(); // bb + return this.friendlyDateTime; + } + + public boolean hasFriendlyDateTimeElement() { + return this.friendlyDateTime != null && !this.friendlyDateTime.isEmpty(); + } + + public boolean hasFriendlyDateTime() { + return this.friendlyDateTime != null && !this.friendlyDateTime.isEmpty(); + } + + /** + * @param value {@link #friendlyDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getFriendlyDateTime" gives direct access to the value + */ + public Contract setFriendlyDateTimeElement(DateTimeType value) { + this.friendlyDateTime = value; + return this; + } + + /** + * @return Relevant time/time-period when applicable. + */ + public Date getFriendlyDateTime() { + return this.friendlyDateTime == null ? null : this.friendlyDateTime.getValue(); + } + + /** + * @param value Relevant time/time-period when applicable. + */ + public Contract setFriendlyDateTime(Date value) { + if (value == null) + this.friendlyDateTime = null; + else { + if (this.friendlyDateTime == null) + this.friendlyDateTime = new DateTimeType(); + this.friendlyDateTime.setValue(value); + } + return this; + } + + /** + * @return {@link #legal} (Legal text in Human readable form.) + */ + public List getLegal() { + if (this.legal == null) + this.legal = new ArrayList(); + return this.legal; + } + + public boolean hasLegal() { + if (this.legal == null) + return false; + for (Attachment item : this.legal) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #legal} (Legal text in Human readable form.) + */ + // syntactic sugar + public Attachment addLegal() { //3 + Attachment t = new Attachment(); + if (this.legal == null) + this.legal = new ArrayList(); + this.legal.add(t); + return t; + } + + /** + * @return {@link #legalDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getLegalDateTime" gives direct access to the value + */ + public DateTimeType getLegalDateTimeElement() { + if (this.legalDateTime == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.legalDateTime"); + else if (Configuration.doAutoCreate()) + this.legalDateTime = new DateTimeType(); // bb + return this.legalDateTime; + } + + public boolean hasLegalDateTimeElement() { + return this.legalDateTime != null && !this.legalDateTime.isEmpty(); + } + + public boolean hasLegalDateTime() { + return this.legalDateTime != null && !this.legalDateTime.isEmpty(); + } + + /** + * @param value {@link #legalDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getLegalDateTime" gives direct access to the value + */ + public Contract setLegalDateTimeElement(DateTimeType value) { + this.legalDateTime = value; + return this; + } + + /** + * @return Relevant time/time-period when applicable. + */ + public Date getLegalDateTime() { + return this.legalDateTime == null ? null : this.legalDateTime.getValue(); + } + + /** + * @param value Relevant time/time-period when applicable. + */ + public Contract setLegalDateTime(Date value) { + if (value == null) + this.legalDateTime = null; + else { + if (this.legalDateTime == null) + this.legalDateTime = new DateTimeType(); + this.legalDateTime.setValue(value); + } + return this; + } + + /** + * @return {@link #rule} (Computable Policy rules (e.g. XACML, DKAL, SecPal).) + */ + public List getRule() { + if (this.rule == null) + this.rule = new ArrayList(); + return this.rule; + } + + public boolean hasRule() { + if (this.rule == null) + return false; + for (Attachment item : this.rule) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #rule} (Computable Policy rules (e.g. XACML, DKAL, SecPal).) + */ + // syntactic sugar + public Attachment addRule() { //3 + Attachment t = new Attachment(); + if (this.rule == null) + this.rule = new ArrayList(); + this.rule.add(t); + return t; + } + + /** + * @return {@link #ruleDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getRuleDateTime" gives direct access to the value + */ + public DateTimeType getRuleDateTimeElement() { + if (this.ruleDateTime == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contract.ruleDateTime"); + else if (Configuration.doAutoCreate()) + this.ruleDateTime = new DateTimeType(); // bb + return this.ruleDateTime; + } + + public boolean hasRuleDateTimeElement() { + return this.ruleDateTime != null && !this.ruleDateTime.isEmpty(); + } + + public boolean hasRuleDateTime() { + return this.ruleDateTime != null && !this.ruleDateTime.isEmpty(); + } + + /** + * @param value {@link #ruleDateTime} (Relevant time/time-period when applicable.). This is the underlying object with id, value and extensions. The accessor "getRuleDateTime" gives direct access to the value + */ + public Contract setRuleDateTimeElement(DateTimeType value) { + this.ruleDateTime = value; + return this; + } + + /** + * @return Relevant time/time-period when applicable. + */ + public Date getRuleDateTime() { + return this.ruleDateTime == null ? null : this.ruleDateTime.getValue(); + } + + /** + * @param value Relevant time/time-period when applicable. + */ + public Contract setRuleDateTime(Date value) { + if (value == null) + this.ruleDateTime = null; + else { + if (this.ruleDateTime == null) + this.ruleDateTime = new DateTimeType(); + this.ruleDateTime.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Unique Id for this contract.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("subject", "Reference(Any)", "Who and/or what this is about: typically Patient, Organization, property.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("authority", "Reference(Organization)", "A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.", 0, java.lang.Integer.MAX_VALUE, authority)); + childrenList.add(new Property("domain", "Reference(Location)", "A Location includes both incidental locations (a place which is used for healthcare without prior designation or authorization) and dedicated, formally appointed locations.", 0, java.lang.Integer.MAX_VALUE, domain)); + childrenList.add(new Property("type", "CodeableConcept", "Type of contract (Privacy-Security, Agreement, Insurance).", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("subtype", "CodeableConcept", "More specific type of contract (Privacy, Disclosure-Authorization, Advanced-Directive, DNR, Authorization-to-Treat).", 0, java.lang.Integer.MAX_VALUE, subtype)); + childrenList.add(new Property("issued", "dateTime", "When this was issued.", 0, java.lang.Integer.MAX_VALUE, issued)); + childrenList.add(new Property("applies", "Period", "Relevant time/time-period when applicable.", 0, java.lang.Integer.MAX_VALUE, applies)); + childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity)); + childrenList.add(new Property("unitPrice", "Money", "The unit price product.", 0, java.lang.Integer.MAX_VALUE, unitPrice)); + childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor)); + childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points)); + childrenList.add(new Property("net", "Money", "The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 0, java.lang.Integer.MAX_VALUE, net)); + childrenList.add(new Property("author", "Reference(Practitioner|RelatedPerson|Organization)", "Contract author or responsible party.", 0, java.lang.Integer.MAX_VALUE, author)); + childrenList.add(new Property("grantor", "Reference(Practitioner|RelatedPerson|Organization|Patient)", "First Party to the contract, may be the party who confers or delegates the rights defined in the contract.", 0, java.lang.Integer.MAX_VALUE, grantor)); + childrenList.add(new Property("grantee", "Reference(Practitioner|RelatedPerson|Organization|Patient)", "The Second party to the contract, may be the party who accepts obligations or be that to which rights are delegated.", 0, java.lang.Integer.MAX_VALUE, grantee)); + childrenList.add(new Property("witness", "Reference(Practitioner|RelatedPerson|Patient)", "Who witnesses the contract.", 0, java.lang.Integer.MAX_VALUE, witness)); + childrenList.add(new Property("executor", "Reference(Practitioner|RelatedPerson|Organization|Patient)", "First Party to the contract, may be the party who confers or delegates the rights defined in the contract.", 0, java.lang.Integer.MAX_VALUE, executor)); + childrenList.add(new Property("notary", "Reference(Practitioner|RelatedPerson|Organization|Patient)", "First Party to the contract, may be the party who confers or delegates the rights defined in the contract.", 0, java.lang.Integer.MAX_VALUE, notary)); + childrenList.add(new Property("signer", "", "List or contract signatures.", 0, java.lang.Integer.MAX_VALUE, signer)); + childrenList.add(new Property("term", "", "The itemized terms of the contract. The legal clause or conditions of the Contract that requires or prevents either one or both parties to perform a particular requirement by some specified time.", 0, java.lang.Integer.MAX_VALUE, term)); + childrenList.add(new Property("binding", "Attachment", "Legally binding contract.", 0, java.lang.Integer.MAX_VALUE, binding)); + childrenList.add(new Property("bindingDateTime", "dateTime", "Relevant time/time-period when applicable.", 0, java.lang.Integer.MAX_VALUE, bindingDateTime)); + childrenList.add(new Property("friendly", "Attachment", "Friendly Human readable form (might be a reference to the UI used to capture the contract).", 0, java.lang.Integer.MAX_VALUE, friendly)); + childrenList.add(new Property("friendlyDateTime", "dateTime", "Relevant time/time-period when applicable.", 0, java.lang.Integer.MAX_VALUE, friendlyDateTime)); + childrenList.add(new Property("legal", "Attachment", "Legal text in Human readable form.", 0, java.lang.Integer.MAX_VALUE, legal)); + childrenList.add(new Property("legalDateTime", "dateTime", "Relevant time/time-period when applicable.", 0, java.lang.Integer.MAX_VALUE, legalDateTime)); + childrenList.add(new Property("rule", "Attachment", "Computable Policy rules (e.g. XACML, DKAL, SecPal).", 0, java.lang.Integer.MAX_VALUE, rule)); + childrenList.add(new Property("ruleDateTime", "dateTime", "Relevant time/time-period when applicable.", 0, java.lang.Integer.MAX_VALUE, ruleDateTime)); + } + + public Contract copy() { + Contract dst = new Contract(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + if (subject != null) { + dst.subject = new ArrayList(); + for (Reference i : subject) + dst.subject.add(i.copy()); + }; + if (authority != null) { + dst.authority = new ArrayList(); + for (Reference i : authority) + dst.authority.add(i.copy()); + }; + if (domain != null) { + dst.domain = new ArrayList(); + for (Reference i : domain) + dst.domain.add(i.copy()); + }; + dst.type = type == null ? null : type.copy(); + if (subtype != null) { + dst.subtype = new ArrayList(); + for (CodeableConcept i : subtype) + dst.subtype.add(i.copy()); + }; + dst.issued = issued == null ? null : issued.copy(); + dst.applies = applies == null ? null : applies.copy(); + dst.quantity = quantity == null ? null : quantity.copy(); + dst.unitPrice = unitPrice == null ? null : unitPrice.copy(); + dst.factor = factor == null ? null : factor.copy(); + dst.points = points == null ? null : points.copy(); + dst.net = net == null ? null : net.copy(); + if (author != null) { + dst.author = new ArrayList(); + for (Reference i : author) + dst.author.add(i.copy()); + }; + if (grantor != null) { + dst.grantor = new ArrayList(); + for (Reference i : grantor) + dst.grantor.add(i.copy()); + }; + if (grantee != null) { + dst.grantee = new ArrayList(); + for (Reference i : grantee) + dst.grantee.add(i.copy()); + }; + if (witness != null) { + dst.witness = new ArrayList(); + for (Reference i : witness) + dst.witness.add(i.copy()); + }; + if (executor != null) { + dst.executor = new ArrayList(); + for (Reference i : executor) + dst.executor.add(i.copy()); + }; + if (notary != null) { + dst.notary = new ArrayList(); + for (Reference i : notary) + dst.notary.add(i.copy()); + }; + if (signer != null) { + dst.signer = new ArrayList(); + for (ContractSignerComponent i : signer) + dst.signer.add(i.copy()); + }; + if (term != null) { + dst.term = new ArrayList(); + for (ContractTermComponent i : term) + dst.term.add(i.copy()); + }; + dst.binding = binding == null ? null : binding.copy(); + dst.bindingDateTime = bindingDateTime == null ? null : bindingDateTime.copy(); + if (friendly != null) { + dst.friendly = new ArrayList(); + for (Attachment i : friendly) + dst.friendly.add(i.copy()); + }; + dst.friendlyDateTime = friendlyDateTime == null ? null : friendlyDateTime.copy(); + if (legal != null) { + dst.legal = new ArrayList(); + for (Attachment i : legal) + dst.legal.add(i.copy()); + }; + dst.legalDateTime = legalDateTime == null ? null : legalDateTime.copy(); + if (rule != null) { + dst.rule = new ArrayList(); + for (Attachment i : rule) + dst.rule.add(i.copy()); + }; + dst.ruleDateTime = ruleDateTime == null ? null : ruleDateTime.copy(); + return dst; + } + + protected Contract typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Contract)) + return false; + Contract o = (Contract) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(subject, o.subject, true) && compareDeep(authority, o.authority, true) + && compareDeep(domain, o.domain, true) && compareDeep(type, o.type, true) && compareDeep(subtype, o.subtype, true) + && compareDeep(issued, o.issued, true) && compareDeep(applies, o.applies, true) && compareDeep(quantity, o.quantity, true) + && compareDeep(unitPrice, o.unitPrice, true) && compareDeep(factor, o.factor, true) && compareDeep(points, o.points, true) + && compareDeep(net, o.net, true) && compareDeep(author, o.author, true) && compareDeep(grantor, o.grantor, true) + && compareDeep(grantee, o.grantee, true) && compareDeep(witness, o.witness, true) && compareDeep(executor, o.executor, true) + && compareDeep(notary, o.notary, true) && compareDeep(signer, o.signer, true) && compareDeep(term, o.term, true) + && compareDeep(binding, o.binding, true) && compareDeep(bindingDateTime, o.bindingDateTime, true) + && compareDeep(friendly, o.friendly, true) && compareDeep(friendlyDateTime, o.friendlyDateTime, true) + && compareDeep(legal, o.legal, true) && compareDeep(legalDateTime, o.legalDateTime, true) && compareDeep(rule, o.rule, true) + && compareDeep(ruleDateTime, o.ruleDateTime, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Contract)) + return false; + Contract o = (Contract) other; + return compareValues(issued, o.issued, true) && compareValues(factor, o.factor, true) && compareValues(points, o.points, true) + && compareValues(bindingDateTime, o.bindingDateTime, true) && compareValues(friendlyDateTime, o.friendlyDateTime, true) + && compareValues(legalDateTime, o.legalDateTime, true) && compareValues(ruleDateTime, o.ruleDateTime, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (subject == null || subject.isEmpty()) + && (authority == null || authority.isEmpty()) && (domain == null || domain.isEmpty()) && (type == null || type.isEmpty()) + && (subtype == null || subtype.isEmpty()) && (issued == null || issued.isEmpty()) && (applies == null || applies.isEmpty()) + && (quantity == null || quantity.isEmpty()) && (unitPrice == null || unitPrice.isEmpty()) + && (factor == null || factor.isEmpty()) && (points == null || points.isEmpty()) && (net == null || net.isEmpty()) + && (author == null || author.isEmpty()) && (grantor == null || grantor.isEmpty()) && (grantee == null || grantee.isEmpty()) + && (witness == null || witness.isEmpty()) && (executor == null || executor.isEmpty()) && (notary == null || notary.isEmpty()) + && (signer == null || signer.isEmpty()) && (term == null || term.isEmpty()) && (binding == null || binding.isEmpty()) + && (bindingDateTime == null || bindingDateTime.isEmpty()) && (friendly == null || friendly.isEmpty()) + && (friendlyDateTime == null || friendlyDateTime.isEmpty()) && (legal == null || legal.isEmpty()) + && (legalDateTime == null || legalDateTime.isEmpty()) && (rule == null || rule.isEmpty()) + && (ruleDateTime == null || ruleDateTime.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Contract; + } + + @SearchParamDefinition(name="patient", path="Contract.subject", description="The identity of the target of the contract (if a patient)", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="subject", path="Contract.subject", description="The identity of the target of the contract", type="reference" ) + public static final String SP_SUBJECT = "subject"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contraindication$ContraindicationMitigationComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Contraindication$ContraindicationMitigationComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..5bb496cf88e8b00e75cbcc0ba399758b10b135d5 GIT binary patch literal 6512 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 childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("action", "CodeableConcept", "Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified contraindication.", 0, java.lang.Integer.MAX_VALUE, action)); - childrenList.add(new Property("date", "dateTime", "Indicates when the mitigating action was documented.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("author", "Reference(Practitioner)", "Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.", 0, java.lang.Integer.MAX_VALUE, author)); - } - - public ContraindicationMitigationComponent copy() { - ContraindicationMitigationComponent dst = new ContraindicationMitigationComponent(); - copyValues(dst); - dst.action = action == null ? null : action.copy(); - dst.date = date == null ? null : date.copy(); - dst.author = author == null ? null : author.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (action == null || action.isEmpty()) && (date == null || date.isEmpty()) - && (author == null || author.isEmpty()); - } - - } - - /** - * Indicates the patient whose record the contraindication is associated with. - */ - @Child(name="patient", type={Patient.class}, order=-1, min=0, max=1) - @Description(shortDefinition="Associated patient", formalDefinition="Indicates the patient whose record the contraindication is associated with." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (Indicates the patient whose record the contraindication is associated with.) - */ - protected Patient patientTarget; - - /** - * Identifies the general type of issue identified. - */ - @Child(name="category", type={CodeableConcept.class}, order=0, min=0, max=1) - @Description(shortDefinition="E.g. Drug-drug, duplicate therapy, etc.", formalDefinition="Identifies the general type of issue identified." ) - protected CodeableConcept category; - - /** - * Indicates the degree of importance associated with the identified issue based on the potential impact on the patient. - */ - @Child(name="severity", type={CodeType.class}, order=1, min=0, max=1) - @Description(shortDefinition="high | medium | low", formalDefinition="Indicates the degree of importance associated with the identified issue based on the potential impact on the patient." ) - protected CodeType severity; - - /** - * Indicates the resource representing the current activity or proposed activity that. - */ - @Child(name="implicated", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Problem resource", formalDefinition="Indicates the resource representing the current activity or proposed activity that." ) - protected List implicated; - /** - * The actual objects that are the target of the reference (Indicates the resource representing the current activity or proposed activity that.) - */ - protected List implicatedTarget; - - - /** - * A textual explanation of the contraindication. - */ - @Child(name="detail", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Description and context", formalDefinition="A textual explanation of the contraindication." ) - protected StringType detail; - - /** - * The date or date-time when the contraindication was initially identified. - */ - @Child(name="date", type={DateTimeType.class}, order=4, min=0, max=1) - @Description(shortDefinition="When identified", formalDefinition="The date or date-time when the contraindication was initially identified." ) - protected DateTimeType date; - - /** - * Identifies the provider or software that identified the. - */ - @Child(name="author", type={Practitioner.class, Device.class}, order=5, min=0, max=1) - @Description(shortDefinition="Who found issue?", formalDefinition="Identifies the provider or software that identified the." ) - protected Reference author; - - /** - * The actual object that is the target of the reference (Identifies the provider or software that identified the.) - */ - protected Resource authorTarget; - - /** - * Business identifier associated with the contraindication record. - */ - @Child(name="identifier", type={Identifier.class}, order=6, min=0, max=1) - @Description(shortDefinition="Unique id for the contraindication", formalDefinition="Business identifier associated with the contraindication record." ) - protected Identifier identifier; - - /** - * The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified. - */ - @Child(name="reference", type={UriType.class}, order=7, min=0, max=1) - @Description(shortDefinition="Authority for issue", formalDefinition="The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified." ) - protected UriType reference; - - /** - * Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the contraindicaiton from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action. - */ - @Child(name="mitigation", type={}, order=8, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Step taken to address", formalDefinition="Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the contraindicaiton from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action." ) - protected List mitigation; - - private static final long serialVersionUID = 528603336L; - - public Contraindication() { - super(); - } - - /** - * @return {@link #patient} (Indicates the patient whose record the contraindication is associated with.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contraindication.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (Indicates the patient whose record the contraindication is associated with.) - */ - public Contraindication setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates the patient whose record the contraindication is associated with.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contraindication.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates the patient whose record the contraindication is associated with.) - */ - public Contraindication setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #category} (Identifies the general type of issue identified.) - */ - public CodeableConcept getCategory() { - if (this.category == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contraindication.category"); - else if (Configuration.doAutoCreate()) - this.category = new CodeableConcept(); - return this.category; - } - - public boolean hasCategory() { - return this.category != null && !this.category.isEmpty(); - } - - /** - * @param value {@link #category} (Identifies the general type of issue identified.) - */ - public Contraindication setCategory(CodeableConcept value) { - this.category = value; - return this; - } - - /** - * @return {@link #severity} (Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value - */ - public CodeType getSeverityElement() { - if (this.severity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contraindication.severity"); - else if (Configuration.doAutoCreate()) - this.severity = new CodeType(); - return this.severity; - } - - public boolean hasSeverityElement() { - return this.severity != null && !this.severity.isEmpty(); - } - - public boolean hasSeverity() { - return this.severity != null && !this.severity.isEmpty(); - } - - /** - * @param value {@link #severity} (Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value - */ - public Contraindication setSeverityElement(CodeType value) { - this.severity = value; - return this; - } - - /** - * @return Indicates the degree of importance associated with the identified issue based on the potential impact on the patient. - */ - public String getSeverity() { - return this.severity == null ? null : this.severity.getValue(); - } - - /** - * @param value Indicates the degree of importance associated with the identified issue based on the potential impact on the patient. - */ - public Contraindication setSeverity(String value) { - if (Utilities.noString(value)) - this.severity = null; - else { - if (this.severity == null) - this.severity = new CodeType(); - this.severity.setValue(value); - } - return this; - } - - /** - * @return {@link #implicated} (Indicates the resource representing the current activity or proposed activity that.) - */ - public List getImplicated() { - if (this.implicated == null) - this.implicated = new ArrayList(); - return this.implicated; - } - - public boolean hasImplicated() { - if (this.implicated == null) - return false; - for (Reference item : this.implicated) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #implicated} (Indicates the resource representing the current activity or proposed activity that.) - */ - // syntactic sugar - public Reference addImplicated() { //3 - Reference t = new Reference(); - if (this.implicated == null) - this.implicated = new ArrayList(); - this.implicated.add(t); - return t; - } - - /** - * @return {@link #implicated} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Indicates the resource representing the current activity or proposed activity that.) - */ - public List getImplicatedTarget() { - if (this.implicatedTarget == null) - this.implicatedTarget = new ArrayList(); - return this.implicatedTarget; - } - - /** - * @return {@link #detail} (A textual explanation of the contraindication.). This is the underlying object with id, value and extensions. The accessor "getDetail" gives direct access to the value - */ - public StringType getDetailElement() { - if (this.detail == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contraindication.detail"); - else if (Configuration.doAutoCreate()) - this.detail = new StringType(); - return this.detail; - } - - public boolean hasDetailElement() { - return this.detail != null && !this.detail.isEmpty(); - } - - public boolean hasDetail() { - return this.detail != null && !this.detail.isEmpty(); - } - - /** - * @param value {@link #detail} (A textual explanation of the contraindication.). This is the underlying object with id, value and extensions. The accessor "getDetail" gives direct access to the value - */ - public Contraindication setDetailElement(StringType value) { - this.detail = value; - return this; - } - - /** - * @return A textual explanation of the contraindication. - */ - public String getDetail() { - return this.detail == null ? null : this.detail.getValue(); - } - - /** - * @param value A textual explanation of the contraindication. - */ - public Contraindication setDetail(String value) { - if (Utilities.noString(value)) - this.detail = null; - else { - if (this.detail == null) - this.detail = new StringType(); - this.detail.setValue(value); - } - return this; - } - - /** - * @return {@link #date} (The date or date-time when the contraindication was initially identified.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contraindication.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (The date or date-time when the contraindication was initially identified.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public Contraindication setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return The date or date-time when the contraindication was initially identified. - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value The date or date-time when the contraindication was initially identified. - */ - public Contraindication setDate(Date value) { - if (value == null) - this.date = null; - else { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - } - return this; - } - - /** - * @return {@link #author} (Identifies the provider or software that identified the.) - */ - public Reference getAuthor() { - if (this.author == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contraindication.author"); - else if (Configuration.doAutoCreate()) - this.author = new Reference(); - return this.author; - } - - public boolean hasAuthor() { - return this.author != null && !this.author.isEmpty(); - } - - /** - * @param value {@link #author} (Identifies the provider or software that identified the.) - */ - public Contraindication setAuthor(Reference value) { - this.author = value; - return this; - } - - /** - * @return {@link #author} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the provider or software that identified the.) - */ - public Resource getAuthorTarget() { - return this.authorTarget; - } - - /** - * @param value {@link #author} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the provider or software that identified the.) - */ - public Contraindication setAuthorTarget(Resource value) { - this.authorTarget = value; - return this; - } - - /** - * @return {@link #identifier} (Business identifier associated with the contraindication record.) - */ - public Identifier getIdentifier() { - if (this.identifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contraindication.identifier"); - else if (Configuration.doAutoCreate()) - this.identifier = new Identifier(); - return this.identifier; - } - - public boolean hasIdentifier() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - /** - * @param value {@link #identifier} (Business identifier associated with the contraindication record.) - */ - public Contraindication setIdentifier(Identifier value) { - this.identifier = value; - return this; - } - - /** - * @return {@link #reference} (The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified.). This is the underlying object with id, value and extensions. The accessor "getReference" gives direct access to the value - */ - public UriType getReferenceElement() { - if (this.reference == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Contraindication.reference"); - else if (Configuration.doAutoCreate()) - this.reference = new UriType(); - return this.reference; - } - - public boolean hasReferenceElement() { - return this.reference != null && !this.reference.isEmpty(); - } - - public boolean hasReference() { - return this.reference != null && !this.reference.isEmpty(); - } - - /** - * @param value {@link #reference} (The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified.). This is the underlying object with id, value and extensions. The accessor "getReference" gives direct access to the value - */ - public Contraindication setReferenceElement(UriType value) { - this.reference = value; - return this; - } - - /** - * @return The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified. - */ - public String getReference() { - return this.reference == null ? null : this.reference.getValue(); - } - - /** - * @param value The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified. - */ - public Contraindication setReference(String value) { - if (Utilities.noString(value)) - this.reference = null; - else { - if (this.reference == null) - this.reference = new UriType(); - this.reference.setValue(value); - } - return this; - } - - /** - * @return {@link #mitigation} (Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the contraindicaiton from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.) - */ - public List getMitigation() { - if (this.mitigation == null) - this.mitigation = new ArrayList(); - return this.mitigation; - } - - public boolean hasMitigation() { - if (this.mitigation == null) - return false; - for (ContraindicationMitigationComponent item : this.mitigation) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #mitigation} (Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the contraindicaiton from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.) - */ - // syntactic sugar - public ContraindicationMitigationComponent addMitigation() { //3 - ContraindicationMitigationComponent t = new ContraindicationMitigationComponent(); - if (this.mitigation == null) - this.mitigation = new ArrayList(); - this.mitigation.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("patient", "Reference(Patient)", "Indicates the patient whose record the contraindication is associated with.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("category", "CodeableConcept", "Identifies the general type of issue identified.", 0, java.lang.Integer.MAX_VALUE, category)); - childrenList.add(new Property("severity", "code", "Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.", 0, java.lang.Integer.MAX_VALUE, severity)); - childrenList.add(new Property("implicated", "Reference(Any)", "Indicates the resource representing the current activity or proposed activity that.", 0, java.lang.Integer.MAX_VALUE, implicated)); - childrenList.add(new Property("detail", "string", "A textual explanation of the contraindication.", 0, java.lang.Integer.MAX_VALUE, detail)); - childrenList.add(new Property("date", "dateTime", "The date or date-time when the contraindication was initially identified.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("author", "Reference(Practitioner|Device)", "Identifies the provider or software that identified the.", 0, java.lang.Integer.MAX_VALUE, author)); - childrenList.add(new Property("identifier", "Identifier", "Business identifier associated with the contraindication record.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("reference", "uri", "The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified.", 0, java.lang.Integer.MAX_VALUE, reference)); - childrenList.add(new Property("mitigation", "", "Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the contraindicaiton from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.", 0, java.lang.Integer.MAX_VALUE, mitigation)); - } - - public Contraindication copy() { - Contraindication dst = new Contraindication(); - copyValues(dst); - dst.patient = patient == null ? null : patient.copy(); - dst.category = category == null ? null : category.copy(); - dst.severity = severity == null ? null : severity.copy(); - if (implicated != null) { - dst.implicated = new ArrayList(); - for (Reference i : implicated) - dst.implicated.add(i.copy()); - }; - dst.detail = detail == null ? null : detail.copy(); - dst.date = date == null ? null : date.copy(); - dst.author = author == null ? null : author.copy(); - dst.identifier = identifier == null ? null : identifier.copy(); - dst.reference = reference == null ? null : reference.copy(); - if (mitigation != null) { - dst.mitigation = new ArrayList(); - for (ContraindicationMitigationComponent i : mitigation) - dst.mitigation.add(i.copy()); - }; - return dst; - } - - protected Contraindication typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (patient == null || patient.isEmpty()) && (category == null || category.isEmpty()) - && (severity == null || severity.isEmpty()) && (implicated == null || implicated.isEmpty()) - && (detail == null || detail.isEmpty()) && (date == null || date.isEmpty()) && (author == null || author.isEmpty()) - && (identifier == null || identifier.isEmpty()) && (reference == null || reference.isEmpty()) - && (mitigation == null || mitigation.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Contraindication; - } - - @SearchParamDefinition(name="category", path="Contraindication.category", description="E.g. Drug-drug, duplicate therapy, etc.", type="token" ) - public static final String SP_CATEGORY = "category"; - @SearchParamDefinition(name="implicated", path="Contraindication.implicated", description="Problem resource", type="reference" ) - public static final String SP_IMPLICATED = "implicated"; - @SearchParamDefinition(name="patient", path="Contraindication.patient", description="Associated patient", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="date", path="Contraindication.date", description="When identified", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="identifier", path="Contraindication.identifier", description="Unique id for the contraindication", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient. E.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc. + */ +@ResourceDef(name="Contraindication", profile="http://hl7.org/fhir/Profile/Contraindication") +public class Contraindication extends DomainResource { + + @Block() + public static class ContraindicationMitigationComponent extends BackboneElement { + /** + * Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified contraindication. + */ + @Child(name="action", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="What mitigation?", formalDefinition="Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified contraindication." ) + protected CodeableConcept action; + + /** + * Indicates when the mitigating action was documented. + */ + @Child(name="date", type={DateTimeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Date committed", formalDefinition="Indicates when the mitigating action was documented." ) + protected DateTimeType date; + + /** + * Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring. + */ + @Child(name="author", type={Practitioner.class}, order=3, min=0, max=1) + @Description(shortDefinition="Who is committing?", formalDefinition="Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring." ) + protected Reference author; + + /** + * The actual object that is the target of the reference (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.) + */ + protected Practitioner authorTarget; + + private static final long serialVersionUID = -1994768436L; + + public ContraindicationMitigationComponent() { + super(); + } + + public ContraindicationMitigationComponent(CodeableConcept action) { + super(); + this.action = action; + } + + /** + * @return {@link #action} (Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified contraindication.) + */ + public CodeableConcept getAction() { + if (this.action == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContraindicationMitigationComponent.action"); + else if (Configuration.doAutoCreate()) + this.action = new CodeableConcept(); // cc + return this.action; + } + + public boolean hasAction() { + return this.action != null && !this.action.isEmpty(); + } + + /** + * @param value {@link #action} (Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified contraindication.) + */ + public ContraindicationMitigationComponent setAction(CodeableConcept value) { + this.action = value; + return this; + } + + /** + * @return {@link #date} (Indicates when the mitigating action was documented.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContraindicationMitigationComponent.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (Indicates when the mitigating action was documented.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public ContraindicationMitigationComponent setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return Indicates when the mitigating action was documented. + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value Indicates when the mitigating action was documented. + */ + public ContraindicationMitigationComponent setDate(Date value) { + if (value == null) + this.date = null; + else { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + } + return this; + } + + /** + * @return {@link #author} (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.) + */ + public Reference getAuthor() { + if (this.author == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContraindicationMitigationComponent.author"); + else if (Configuration.doAutoCreate()) + this.author = new Reference(); // cc + return this.author; + } + + public boolean hasAuthor() { + return this.author != null && !this.author.isEmpty(); + } + + /** + * @param value {@link #author} (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.) + */ + public ContraindicationMitigationComponent setAuthor(Reference value) { + this.author = value; + return this; + } + + /** + * @return {@link #author} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.) + */ + public Practitioner getAuthorTarget() { + if (this.authorTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ContraindicationMitigationComponent.author"); + else if (Configuration.doAutoCreate()) + this.authorTarget = new Practitioner(); // aa + return this.authorTarget; + } + + /** + * @param value {@link #author} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.) + */ + public ContraindicationMitigationComponent setAuthorTarget(Practitioner value) { + this.authorTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("action", "CodeableConcept", "Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified contraindication.", 0, java.lang.Integer.MAX_VALUE, action)); + childrenList.add(new Property("date", "dateTime", "Indicates when the mitigating action was documented.", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("author", "Reference(Practitioner)", "Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring.", 0, java.lang.Integer.MAX_VALUE, author)); + } + + public ContraindicationMitigationComponent copy() { + ContraindicationMitigationComponent dst = new ContraindicationMitigationComponent(); + copyValues(dst); + dst.action = action == null ? null : action.copy(); + dst.date = date == null ? null : date.copy(); + dst.author = author == null ? null : author.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ContraindicationMitigationComponent)) + return false; + ContraindicationMitigationComponent o = (ContraindicationMitigationComponent) other; + return compareDeep(action, o.action, true) && compareDeep(date, o.date, true) && compareDeep(author, o.author, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ContraindicationMitigationComponent)) + return false; + ContraindicationMitigationComponent o = (ContraindicationMitigationComponent) other; + return compareValues(date, o.date, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (action == null || action.isEmpty()) && (date == null || date.isEmpty()) + && (author == null || author.isEmpty()); + } + + } + + /** + * Indicates the patient whose record the contraindication is associated with. + */ + @Child(name="patient", type={Patient.class}, order=-1, min=0, max=1) + @Description(shortDefinition="Associated patient", formalDefinition="Indicates the patient whose record the contraindication is associated with." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (Indicates the patient whose record the contraindication is associated with.) + */ + protected Patient patientTarget; + + /** + * Identifies the general type of issue identified. + */ + @Child(name="category", type={CodeableConcept.class}, order=0, min=0, max=1) + @Description(shortDefinition="E.g. Drug-drug, duplicate therapy, etc.", formalDefinition="Identifies the general type of issue identified." ) + protected CodeableConcept category; + + /** + * Indicates the degree of importance associated with the identified issue based on the potential impact on the patient. + */ + @Child(name="severity", type={CodeType.class}, order=1, min=0, max=1) + @Description(shortDefinition="high | medium | low", formalDefinition="Indicates the degree of importance associated with the identified issue based on the potential impact on the patient." ) + protected CodeType severity; + + /** + * Indicates the resource representing the current activity or proposed activity that. + */ + @Child(name="implicated", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Problem resource", formalDefinition="Indicates the resource representing the current activity or proposed activity that." ) + protected List implicated; + /** + * The actual objects that are the target of the reference (Indicates the resource representing the current activity or proposed activity that.) + */ + protected List implicatedTarget; + + + /** + * A textual explanation of the contraindication. + */ + @Child(name="detail", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Description and context", formalDefinition="A textual explanation of the contraindication." ) + protected StringType detail; + + /** + * The date or date-time when the contraindication was initially identified. + */ + @Child(name="date", type={DateTimeType.class}, order=4, min=0, max=1) + @Description(shortDefinition="When identified", formalDefinition="The date or date-time when the contraindication was initially identified." ) + protected DateTimeType date; + + /** + * Identifies the provider or software that identified the. + */ + @Child(name="author", type={Practitioner.class, Device.class}, order=5, min=0, max=1) + @Description(shortDefinition="Who found issue?", formalDefinition="Identifies the provider or software that identified the." ) + protected Reference author; + + /** + * The actual object that is the target of the reference (Identifies the provider or software that identified the.) + */ + protected Resource authorTarget; + + /** + * Business identifier associated with the contraindication record. + */ + @Child(name="identifier", type={Identifier.class}, order=6, min=0, max=1) + @Description(shortDefinition="Unique id for the contraindication", formalDefinition="Business identifier associated with the contraindication record." ) + protected Identifier identifier; + + /** + * The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified. + */ + @Child(name="reference", type={UriType.class}, order=7, min=0, max=1) + @Description(shortDefinition="Authority for issue", formalDefinition="The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified." ) + protected UriType reference; + + /** + * Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the contraindicaiton from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action. + */ + @Child(name="mitigation", type={}, order=8, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Step taken to address", formalDefinition="Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the contraindicaiton from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action." ) + protected List mitigation; + + private static final long serialVersionUID = 528603336L; + + public Contraindication() { + super(); + } + + /** + * @return {@link #patient} (Indicates the patient whose record the contraindication is associated with.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contraindication.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (Indicates the patient whose record the contraindication is associated with.) + */ + public Contraindication setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates the patient whose record the contraindication is associated with.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contraindication.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates the patient whose record the contraindication is associated with.) + */ + public Contraindication setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #category} (Identifies the general type of issue identified.) + */ + public CodeableConcept getCategory() { + if (this.category == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contraindication.category"); + else if (Configuration.doAutoCreate()) + this.category = new CodeableConcept(); // cc + return this.category; + } + + public boolean hasCategory() { + return this.category != null && !this.category.isEmpty(); + } + + /** + * @param value {@link #category} (Identifies the general type of issue identified.) + */ + public Contraindication setCategory(CodeableConcept value) { + this.category = value; + return this; + } + + /** + * @return {@link #severity} (Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value + */ + public CodeType getSeverityElement() { + if (this.severity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contraindication.severity"); + else if (Configuration.doAutoCreate()) + this.severity = new CodeType(); // bb + return this.severity; + } + + public boolean hasSeverityElement() { + return this.severity != null && !this.severity.isEmpty(); + } + + public boolean hasSeverity() { + return this.severity != null && !this.severity.isEmpty(); + } + + /** + * @param value {@link #severity} (Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value + */ + public Contraindication setSeverityElement(CodeType value) { + this.severity = value; + return this; + } + + /** + * @return Indicates the degree of importance associated with the identified issue based on the potential impact on the patient. + */ + public String getSeverity() { + return this.severity == null ? null : this.severity.getValue(); + } + + /** + * @param value Indicates the degree of importance associated with the identified issue based on the potential impact on the patient. + */ + public Contraindication setSeverity(String value) { + if (Utilities.noString(value)) + this.severity = null; + else { + if (this.severity == null) + this.severity = new CodeType(); + this.severity.setValue(value); + } + return this; + } + + /** + * @return {@link #implicated} (Indicates the resource representing the current activity or proposed activity that.) + */ + public List getImplicated() { + if (this.implicated == null) + this.implicated = new ArrayList(); + return this.implicated; + } + + public boolean hasImplicated() { + if (this.implicated == null) + return false; + for (Reference item : this.implicated) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #implicated} (Indicates the resource representing the current activity or proposed activity that.) + */ + // syntactic sugar + public Reference addImplicated() { //3 + Reference t = new Reference(); + if (this.implicated == null) + this.implicated = new ArrayList(); + this.implicated.add(t); + return t; + } + + /** + * @return {@link #implicated} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Indicates the resource representing the current activity or proposed activity that.) + */ + public List getImplicatedTarget() { + if (this.implicatedTarget == null) + this.implicatedTarget = new ArrayList(); + return this.implicatedTarget; + } + + /** + * @return {@link #detail} (A textual explanation of the contraindication.). This is the underlying object with id, value and extensions. The accessor "getDetail" gives direct access to the value + */ + public StringType getDetailElement() { + if (this.detail == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contraindication.detail"); + else if (Configuration.doAutoCreate()) + this.detail = new StringType(); // bb + return this.detail; + } + + public boolean hasDetailElement() { + return this.detail != null && !this.detail.isEmpty(); + } + + public boolean hasDetail() { + return this.detail != null && !this.detail.isEmpty(); + } + + /** + * @param value {@link #detail} (A textual explanation of the contraindication.). This is the underlying object with id, value and extensions. The accessor "getDetail" gives direct access to the value + */ + public Contraindication setDetailElement(StringType value) { + this.detail = value; + return this; + } + + /** + * @return A textual explanation of the contraindication. + */ + public String getDetail() { + return this.detail == null ? null : this.detail.getValue(); + } + + /** + * @param value A textual explanation of the contraindication. + */ + public Contraindication setDetail(String value) { + if (Utilities.noString(value)) + this.detail = null; + else { + if (this.detail == null) + this.detail = new StringType(); + this.detail.setValue(value); + } + return this; + } + + /** + * @return {@link #date} (The date or date-time when the contraindication was initially identified.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contraindication.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (The date or date-time when the contraindication was initially identified.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public Contraindication setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return The date or date-time when the contraindication was initially identified. + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value The date or date-time when the contraindication was initially identified. + */ + public Contraindication setDate(Date value) { + if (value == null) + this.date = null; + else { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + } + return this; + } + + /** + * @return {@link #author} (Identifies the provider or software that identified the.) + */ + public Reference getAuthor() { + if (this.author == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contraindication.author"); + else if (Configuration.doAutoCreate()) + this.author = new Reference(); // cc + return this.author; + } + + public boolean hasAuthor() { + return this.author != null && !this.author.isEmpty(); + } + + /** + * @param value {@link #author} (Identifies the provider or software that identified the.) + */ + public Contraindication setAuthor(Reference value) { + this.author = value; + return this; + } + + /** + * @return {@link #author} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the provider or software that identified the.) + */ + public Resource getAuthorTarget() { + return this.authorTarget; + } + + /** + * @param value {@link #author} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the provider or software that identified the.) + */ + public Contraindication setAuthorTarget(Resource value) { + this.authorTarget = value; + return this; + } + + /** + * @return {@link #identifier} (Business identifier associated with the contraindication record.) + */ + public Identifier getIdentifier() { + if (this.identifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contraindication.identifier"); + else if (Configuration.doAutoCreate()) + this.identifier = new Identifier(); // cc + return this.identifier; + } + + public boolean hasIdentifier() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + /** + * @param value {@link #identifier} (Business identifier associated with the contraindication record.) + */ + public Contraindication setIdentifier(Identifier value) { + this.identifier = value; + return this; + } + + /** + * @return {@link #reference} (The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified.). This is the underlying object with id, value and extensions. The accessor "getReference" gives direct access to the value + */ + public UriType getReferenceElement() { + if (this.reference == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Contraindication.reference"); + else if (Configuration.doAutoCreate()) + this.reference = new UriType(); // bb + return this.reference; + } + + public boolean hasReferenceElement() { + return this.reference != null && !this.reference.isEmpty(); + } + + public boolean hasReference() { + return this.reference != null && !this.reference.isEmpty(); + } + + /** + * @param value {@link #reference} (The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified.). This is the underlying object with id, value and extensions. The accessor "getReference" gives direct access to the value + */ + public Contraindication setReferenceElement(UriType value) { + this.reference = value; + return this; + } + + /** + * @return The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified. + */ + public String getReference() { + return this.reference == null ? null : this.reference.getValue(); + } + + /** + * @param value The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified. + */ + public Contraindication setReference(String value) { + if (Utilities.noString(value)) + this.reference = null; + else { + if (this.reference == null) + this.reference = new UriType(); + this.reference.setValue(value); + } + return this; + } + + /** + * @return {@link #mitigation} (Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the contraindicaiton from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.) + */ + public List getMitigation() { + if (this.mitigation == null) + this.mitigation = new ArrayList(); + return this.mitigation; + } + + public boolean hasMitigation() { + if (this.mitigation == null) + return false; + for (ContraindicationMitigationComponent item : this.mitigation) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #mitigation} (Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the contraindicaiton from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.) + */ + // syntactic sugar + public ContraindicationMitigationComponent addMitigation() { //3 + ContraindicationMitigationComponent t = new ContraindicationMitigationComponent(); + if (this.mitigation == null) + this.mitigation = new ArrayList(); + this.mitigation.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("patient", "Reference(Patient)", "Indicates the patient whose record the contraindication is associated with.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("category", "CodeableConcept", "Identifies the general type of issue identified.", 0, java.lang.Integer.MAX_VALUE, category)); + childrenList.add(new Property("severity", "code", "Indicates the degree of importance associated with the identified issue based on the potential impact on the patient.", 0, java.lang.Integer.MAX_VALUE, severity)); + childrenList.add(new Property("implicated", "Reference(Any)", "Indicates the resource representing the current activity or proposed activity that.", 0, java.lang.Integer.MAX_VALUE, implicated)); + childrenList.add(new Property("detail", "string", "A textual explanation of the contraindication.", 0, java.lang.Integer.MAX_VALUE, detail)); + childrenList.add(new Property("date", "dateTime", "The date or date-time when the contraindication was initially identified.", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("author", "Reference(Practitioner|Device)", "Identifies the provider or software that identified the.", 0, java.lang.Integer.MAX_VALUE, author)); + childrenList.add(new Property("identifier", "Identifier", "Business identifier associated with the contraindication record.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("reference", "uri", "The literature, knowledge-base or similar reference that describes the propensity for the contraindication identified.", 0, java.lang.Integer.MAX_VALUE, reference)); + childrenList.add(new Property("mitigation", "", "Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the contraindicaiton from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.", 0, java.lang.Integer.MAX_VALUE, mitigation)); + } + + public Contraindication copy() { + Contraindication dst = new Contraindication(); + copyValues(dst); + dst.patient = patient == null ? null : patient.copy(); + dst.category = category == null ? null : category.copy(); + dst.severity = severity == null ? null : severity.copy(); + if (implicated != null) { + dst.implicated = new ArrayList(); + for (Reference i : implicated) + dst.implicated.add(i.copy()); + }; + dst.detail = detail == null ? null : detail.copy(); + dst.date = date == null ? null : date.copy(); + dst.author = author == null ? null : author.copy(); + dst.identifier = identifier == null ? null : identifier.copy(); + dst.reference = reference == null ? null : reference.copy(); + if (mitigation != null) { + dst.mitigation = new ArrayList(); + for (ContraindicationMitigationComponent i : mitigation) + dst.mitigation.add(i.copy()); + }; + return dst; + } + + protected Contraindication typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Contraindication)) + return false; + Contraindication o = (Contraindication) other; + return compareDeep(patient, o.patient, true) && compareDeep(category, o.category, true) && compareDeep(severity, o.severity, true) + && compareDeep(implicated, o.implicated, true) && compareDeep(detail, o.detail, true) && compareDeep(date, o.date, true) + && compareDeep(author, o.author, true) && compareDeep(identifier, o.identifier, true) && compareDeep(reference, o.reference, true) + && compareDeep(mitigation, o.mitigation, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Contraindication)) + return false; + Contraindication o = (Contraindication) other; + return compareValues(severity, o.severity, true) && compareValues(detail, o.detail, true) && compareValues(date, o.date, true) + && compareValues(reference, o.reference, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (patient == null || patient.isEmpty()) && (category == null || category.isEmpty()) + && (severity == null || severity.isEmpty()) && (implicated == null || implicated.isEmpty()) + && (detail == null || detail.isEmpty()) && (date == null || date.isEmpty()) && (author == null || author.isEmpty()) + && (identifier == null || identifier.isEmpty()) && (reference == null || reference.isEmpty()) + && (mitigation == null || mitigation.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Contraindication; + } + + @SearchParamDefinition(name="category", path="Contraindication.category", description="E.g. Drug-drug, duplicate therapy, etc.", type="token" ) + public static final String SP_CATEGORY = "category"; + @SearchParamDefinition(name="implicated", path="Contraindication.implicated", description="Problem resource", type="reference" ) + public static final String SP_IMPLICATED = "implicated"; + @SearchParamDefinition(name="patient", path="Contraindication.patient", description="Associated patient", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="date", path="Contraindication.date", description="When identified", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="identifier", path="Contraindication.identifier", description="Unique id for the contraindication", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Count.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Count.class new file mode 100644 index 0000000000000000000000000000000000000000..246515dfb172f36bd41b7ec2bcc5ff7112843b3b GIT binary patch literal 2972 zcma)8T~ixn6n-`&EZJ-4HLL4TuMV4lfvE8FokL1W;D!VPPlmu3s{t6_r=iz;g*DZC|pLk zWpPE47BVGdR>*>o09I72D(EbmCCkXInx(Q;$gj+#6)3X`qNzf@>==1x)yP%M&>=s6 zC%-#X&^~JAE$6m^wt+z&52gwmrh+r`R^D8!*z0C#*;vm}6U-Khy9)XS2ImWkuY zIJvoPm6De0Hfttr9?T_Eg-YHTVZ4lEWS=e=MfW(9qT(YJAFFtzVok*-3c}8A(cDP6 zUN!Ss#mJS@rdgB_z7g&kWpiY3jUl{4nQbGND}1RywaSxr(IH4)h2IaffVxy+IxJ_G zXfL%eT_#kT^|vsa%$c_7USG=;Dy6J>&yv(>Zc?s1F?I|E-4B@{%Qjc7vc<$sqi1s7UYNylS+s^c?!&f4hc!xuUX ztg}iYWOZ!7WW7Y#)UkzaR!#&<#}hnd4MoTaiRnn+1tQi>^FrO=Nb_V0H?nR$&_Q_!41GT8Ap!Dsp$< zmagZY0pcz0al*L0yjylmo7=)Sz){`kz18g2ExGAr1;%_GAD5b*TkV+!(}Yq93;!XwAWEw|?H`a#LEEyvn%yLH4j#z|8K<9Z43T?8oT!CQEn&vz&V z@Gc_cxqL`_sgZ9KK11;XC_lIdE|Ipo%6?KV4pN#bH+ek3@4o&8fky{un~x`I2qxk` zBJ?LzWe=LLHMH*|BwDquRcq+jhbr1|T^p`J+ecWmk-9cggT9Z5Xrpy)w1!vq5ly@x zfB*#IMRbr3kzPiW8?2Y>?L%C}eJ(eXYwat(?fYr*4YWgaBcNh{zfedHdB0=Xdk!u( zRmYpF6V25_&DEC?lm+W$u_56#oRQmb@sfH8AEv}5ePp_aHvRxsJaK@|?-6Qyp7x7(qlVY3m?Nip3byk3 zDsE8`_7v>mH>wz7cbT%_R)mJgs>y4N9+RU_xR{`)r6R)RD*;m7EcirTW!d*hQcyOeQ(f6}a^X*!{AsMFHYq)8f{VwwU;(*l9C4NY6*QR-=Ol1w|98RpEi zgf~T0l&3tyTR@|D1q=Gb8Y^@TONLPuB z*vTKe0^*V&Ef7QeA;(5|l1p`QSwLJKq{S>^F%K^mR|LeBL2;G1nj6 z#dZAsF4At`E{l;*uud-r#3MoIfVsDeM;V0AvY$W4ejQ_66rv*)mT2{tP30m5nNDa0O#ZGP+7>cG^qH!y2#QV&a;Y7a~YuR89 zm?;zOHbHYYWa8=Qu(>&EMYqMwj(9wgHqy~V+!EAMREm)!ZRs3}#`+CdF1@xjQhp=jTbw4=}AjardtoXzVq zmq$7x!_bK-l}Hwa;r?hJ%an}n0V}>V9oZ32?20!cczjI8vyH`Z4L|@d1Ie;`lCAI|}fDt

&#(Y{Z)O{>q-}`p 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 Q0u&9`SoodK7E4_8e~}}2-T(jq literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Coverage.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Coverage.java similarity index 91% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Coverage.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Coverage.java index f2eb27e85b8..0421be61aa4 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Coverage.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Coverage.java @@ -1,737 +1,733 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Financial instrument which may be used to pay for or reimburse for health care products and services. - */ -@ResourceDef(name="Coverage", profile="http://hl7.org/fhir/Profile/Coverage") -public class Coverage extends DomainResource { - - /** - * The program or plan underwriter or payor. - */ - @Child(name="issuer", type={Organization.class}, order=-1, min=0, max=1) - @Description(shortDefinition="An identifier for the plan issuer", formalDefinition="The program or plan underwriter or payor." ) - protected Reference issuer; - - /** - * The actual object that is the target of the reference (The program or plan underwriter or payor.) - */ - protected Organization issuerTarget; - - /** - * Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force. - */ - @Child(name="period", type={Period.class}, order=0, min=0, max=1) - @Description(shortDefinition="Coverage start and end dates", formalDefinition="Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force." ) - protected Period period; - - /** - * The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health. - */ - @Child(name="type", type={Coding.class}, order=1, min=0, max=1) - @Description(shortDefinition="Type of coverage", formalDefinition="The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health." ) - protected Coding type; - - /** - * The main (and possibly only) identifier for the coverage - often referred to as a Subscriber Id, Certificate number or Personal Health Number or Case ID. - */ - @Child(name="identifier", type={Identifier.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="The primary coverage ID", formalDefinition="The main (and possibly only) identifier for the coverage - often referred to as a Subscriber Id, Certificate number or Personal Health Number or Case ID." ) - protected List identifier; - - /** - * Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. - */ - @Child(name="group", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="An identifier for the group", formalDefinition="Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID." ) - protected StringType group; - - /** - * Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. - */ - @Child(name="plan", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="An identifier for the plan", formalDefinition="Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID." ) - protected StringType plan; - - /** - * Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID. - */ - @Child(name="subplan", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="An identifier for the subsection of the plan", formalDefinition="Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID." ) - protected StringType subplan; - - /** - * A unique identifier for a dependent under the coverage. - */ - @Child(name="dependent", type={IntegerType.class}, order=6, min=0, max=1) - @Description(shortDefinition="The dependent number", formalDefinition="A unique identifier for a dependent under the coverage." ) - protected IntegerType dependent; - - /** - * An optional counter for a particular instance of the identified coverage which increments upon each renewal. - */ - @Child(name="sequence", type={IntegerType.class}, order=7, min=0, max=1) - @Description(shortDefinition="The plan instance or sequence counter", formalDefinition="An optional counter for a particular instance of the identified coverage which increments upon each renewal." ) - protected IntegerType sequence; - - /** - * The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due. - */ - @Child(name="subscriber", type={Patient.class}, order=8, min=0, max=1) - @Description(shortDefinition="Planholder information", formalDefinition="The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due." ) - protected Reference subscriber; - - /** - * The actual object that is the target of the reference (The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due.) - */ - protected Patient subscriberTarget; - - /** - * The identifier for a community of providers. - */ - @Child(name="network", type={Identifier.class}, order=9, min=0, max=1) - @Description(shortDefinition="Insurer network", formalDefinition="The identifier for a community of providers." ) - protected Identifier network; - - /** - * The policy(s) which constitute this insurance coverage. - */ - @Child(name="contract", type={Contract.class}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Contract details", formalDefinition="The policy(s) which constitute this insurance coverage." ) - protected List contract; - /** - * The actual objects that are the target of the reference (The policy(s) which constitute this insurance coverage.) - */ - protected List contractTarget; - - - private static final long serialVersionUID = 1420850573L; - - public Coverage() { - super(); - } - - /** - * @return {@link #issuer} (The program or plan underwriter or payor.) - */ - public Reference getIssuer() { - if (this.issuer == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coverage.issuer"); - else if (Configuration.doAutoCreate()) - this.issuer = new Reference(); - return this.issuer; - } - - public boolean hasIssuer() { - return this.issuer != null && !this.issuer.isEmpty(); - } - - /** - * @param value {@link #issuer} (The program or plan underwriter or payor.) - */ - public Coverage setIssuer(Reference value) { - this.issuer = value; - return this; - } - - /** - * @return {@link #issuer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The program or plan underwriter or payor.) - */ - public Organization getIssuerTarget() { - if (this.issuerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coverage.issuer"); - else if (Configuration.doAutoCreate()) - this.issuerTarget = new Organization(); - return this.issuerTarget; - } - - /** - * @param value {@link #issuer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The program or plan underwriter or payor.) - */ - public Coverage setIssuerTarget(Organization value) { - this.issuerTarget = value; - return this; - } - - /** - * @return {@link #period} (Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coverage.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force.) - */ - public Coverage setPeriod(Period value) { - this.period = value; - return this; - } - - /** - * @return {@link #type} (The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health.) - */ - public Coding getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coverage.type"); - else if (Configuration.doAutoCreate()) - this.type = new Coding(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health.) - */ - public Coverage setType(Coding value) { - this.type = value; - return this; - } - - /** - * @return {@link #identifier} (The main (and possibly only) identifier for the coverage - often referred to as a Subscriber Id, Certificate number or Personal Health Number or Case ID.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (The main (and possibly only) identifier for the coverage - often referred to as a Subscriber Id, Certificate number or Personal Health Number or Case ID.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #group} (Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID.). This is the underlying object with id, value and extensions. The accessor "getGroup" gives direct access to the value - */ - public StringType getGroupElement() { - if (this.group == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coverage.group"); - else if (Configuration.doAutoCreate()) - this.group = new StringType(); - return this.group; - } - - public boolean hasGroupElement() { - return this.group != null && !this.group.isEmpty(); - } - - public boolean hasGroup() { - return this.group != null && !this.group.isEmpty(); - } - - /** - * @param value {@link #group} (Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID.). This is the underlying object with id, value and extensions. The accessor "getGroup" gives direct access to the value - */ - public Coverage setGroupElement(StringType value) { - this.group = value; - return this; - } - - /** - * @return Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. - */ - public String getGroup() { - return this.group == null ? null : this.group.getValue(); - } - - /** - * @param value Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. - */ - public Coverage setGroup(String value) { - if (Utilities.noString(value)) - this.group = null; - else { - if (this.group == null) - this.group = new StringType(); - this.group.setValue(value); - } - return this; - } - - /** - * @return {@link #plan} (Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID.). This is the underlying object with id, value and extensions. The accessor "getPlan" gives direct access to the value - */ - public StringType getPlanElement() { - if (this.plan == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coverage.plan"); - else if (Configuration.doAutoCreate()) - this.plan = new StringType(); - return this.plan; - } - - public boolean hasPlanElement() { - return this.plan != null && !this.plan.isEmpty(); - } - - public boolean hasPlan() { - return this.plan != null && !this.plan.isEmpty(); - } - - /** - * @param value {@link #plan} (Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID.). This is the underlying object with id, value and extensions. The accessor "getPlan" gives direct access to the value - */ - public Coverage setPlanElement(StringType value) { - this.plan = value; - return this; - } - - /** - * @return Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. - */ - public String getPlan() { - return this.plan == null ? null : this.plan.getValue(); - } - - /** - * @param value Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. - */ - public Coverage setPlan(String value) { - if (Utilities.noString(value)) - this.plan = null; - else { - if (this.plan == null) - this.plan = new StringType(); - this.plan.setValue(value); - } - return this; - } - - /** - * @return {@link #subplan} (Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID.). This is the underlying object with id, value and extensions. The accessor "getSubplan" gives direct access to the value - */ - public StringType getSubplanElement() { - if (this.subplan == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coverage.subplan"); - else if (Configuration.doAutoCreate()) - this.subplan = new StringType(); - return this.subplan; - } - - public boolean hasSubplanElement() { - return this.subplan != null && !this.subplan.isEmpty(); - } - - public boolean hasSubplan() { - return this.subplan != null && !this.subplan.isEmpty(); - } - - /** - * @param value {@link #subplan} (Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID.). This is the underlying object with id, value and extensions. The accessor "getSubplan" gives direct access to the value - */ - public Coverage setSubplanElement(StringType value) { - this.subplan = value; - return this; - } - - /** - * @return Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID. - */ - public String getSubplan() { - return this.subplan == null ? null : this.subplan.getValue(); - } - - /** - * @param value Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID. - */ - public Coverage setSubplan(String value) { - if (Utilities.noString(value)) - this.subplan = null; - else { - if (this.subplan == null) - this.subplan = new StringType(); - this.subplan.setValue(value); - } - return this; - } - - /** - * @return {@link #dependent} (A unique identifier for a dependent under the coverage.). This is the underlying object with id, value and extensions. The accessor "getDependent" gives direct access to the value - */ - public IntegerType getDependentElement() { - if (this.dependent == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coverage.dependent"); - else if (Configuration.doAutoCreate()) - this.dependent = new IntegerType(); - return this.dependent; - } - - public boolean hasDependentElement() { - return this.dependent != null && !this.dependent.isEmpty(); - } - - public boolean hasDependent() { - return this.dependent != null && !this.dependent.isEmpty(); - } - - /** - * @param value {@link #dependent} (A unique identifier for a dependent under the coverage.). This is the underlying object with id, value and extensions. The accessor "getDependent" gives direct access to the value - */ - public Coverage setDependentElement(IntegerType value) { - this.dependent = value; - return this; - } - - /** - * @return A unique identifier for a dependent under the coverage. - */ - public int getDependent() { - return this.dependent == null ? null : this.dependent.getValue(); - } - - /** - * @param value A unique identifier for a dependent under the coverage. - */ - public Coverage setDependent(int value) { - if (value == -1) - this.dependent = null; - else { - if (this.dependent == null) - this.dependent = new IntegerType(); - this.dependent.setValue(value); - } - return this; - } - - /** - * @return {@link #sequence} (An optional counter for a particular instance of the identified coverage which increments upon each renewal.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value - */ - public IntegerType getSequenceElement() { - if (this.sequence == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coverage.sequence"); - else if (Configuration.doAutoCreate()) - this.sequence = new IntegerType(); - return this.sequence; - } - - public boolean hasSequenceElement() { - return this.sequence != null && !this.sequence.isEmpty(); - } - - public boolean hasSequence() { - return this.sequence != null && !this.sequence.isEmpty(); - } - - /** - * @param value {@link #sequence} (An optional counter for a particular instance of the identified coverage which increments upon each renewal.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value - */ - public Coverage setSequenceElement(IntegerType value) { - this.sequence = value; - return this; - } - - /** - * @return An optional counter for a particular instance of the identified coverage which increments upon each renewal. - */ - public int getSequence() { - return this.sequence == null ? null : this.sequence.getValue(); - } - - /** - * @param value An optional counter for a particular instance of the identified coverage which increments upon each renewal. - */ - public Coverage setSequence(int value) { - if (value == -1) - this.sequence = null; - else { - if (this.sequence == null) - this.sequence = new IntegerType(); - this.sequence.setValue(value); - } - return this; - } - - /** - * @return {@link #subscriber} (The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due.) - */ - public Reference getSubscriber() { - if (this.subscriber == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coverage.subscriber"); - else if (Configuration.doAutoCreate()) - this.subscriber = new Reference(); - return this.subscriber; - } - - public boolean hasSubscriber() { - return this.subscriber != null && !this.subscriber.isEmpty(); - } - - /** - * @param value {@link #subscriber} (The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due.) - */ - public Coverage setSubscriber(Reference value) { - this.subscriber = value; - return this; - } - - /** - * @return {@link #subscriber} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due.) - */ - public Patient getSubscriberTarget() { - if (this.subscriberTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coverage.subscriber"); - else if (Configuration.doAutoCreate()) - this.subscriberTarget = new Patient(); - return this.subscriberTarget; - } - - /** - * @param value {@link #subscriber} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due.) - */ - public Coverage setSubscriberTarget(Patient value) { - this.subscriberTarget = value; - return this; - } - - /** - * @return {@link #network} (The identifier for a community of providers.) - */ - public Identifier getNetwork() { - if (this.network == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Coverage.network"); - else if (Configuration.doAutoCreate()) - this.network = new Identifier(); - return this.network; - } - - public boolean hasNetwork() { - return this.network != null && !this.network.isEmpty(); - } - - /** - * @param value {@link #network} (The identifier for a community of providers.) - */ - public Coverage setNetwork(Identifier value) { - this.network = value; - return this; - } - - /** - * @return {@link #contract} (The policy(s) which constitute this insurance coverage.) - */ - public List getContract() { - if (this.contract == null) - this.contract = new ArrayList(); - return this.contract; - } - - public boolean hasContract() { - if (this.contract == null) - return false; - for (Reference item : this.contract) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #contract} (The policy(s) which constitute this insurance coverage.) - */ - // syntactic sugar - public Reference addContract() { //3 - Reference t = new Reference(); - if (this.contract == null) - this.contract = new ArrayList(); - this.contract.add(t); - return t; - } - - /** - * @return {@link #contract} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The policy(s) which constitute this insurance coverage.) - */ - public List getContractTarget() { - if (this.contractTarget == null) - this.contractTarget = new ArrayList(); - return this.contractTarget; - } - - // syntactic sugar - /** - * @return {@link #contract} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The policy(s) which constitute this insurance coverage.) - */ - public Contract addContractTarget() { - Contract r = new Contract(); - if (this.contractTarget == null) - this.contractTarget = new ArrayList(); - this.contractTarget.add(r); - return r; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("issuer", "Reference(Organization)", "The program or plan underwriter or payor.", 0, java.lang.Integer.MAX_VALUE, issuer)); - childrenList.add(new Property("period", "Period", "Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force.", 0, java.lang.Integer.MAX_VALUE, period)); - childrenList.add(new Property("type", "Coding", "The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("identifier", "Identifier", "The main (and possibly only) identifier for the coverage - often referred to as a Subscriber Id, Certificate number or Personal Health Number or Case ID.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("group", "string", "Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID.", 0, java.lang.Integer.MAX_VALUE, group)); - childrenList.add(new Property("plan", "string", "Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID.", 0, java.lang.Integer.MAX_VALUE, plan)); - childrenList.add(new Property("subplan", "string", "Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID.", 0, java.lang.Integer.MAX_VALUE, subplan)); - childrenList.add(new Property("dependent", "integer", "A unique identifier for a dependent under the coverage.", 0, java.lang.Integer.MAX_VALUE, dependent)); - childrenList.add(new Property("sequence", "integer", "An optional counter for a particular instance of the identified coverage which increments upon each renewal.", 0, java.lang.Integer.MAX_VALUE, sequence)); - childrenList.add(new Property("subscriber", "Reference(Patient)", "The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due.", 0, java.lang.Integer.MAX_VALUE, subscriber)); - childrenList.add(new Property("network", "Identifier", "The identifier for a community of providers.", 0, java.lang.Integer.MAX_VALUE, network)); - childrenList.add(new Property("contract", "Reference(Contract)", "The policy(s) which constitute this insurance coverage.", 0, java.lang.Integer.MAX_VALUE, contract)); - } - - public Coverage copy() { - Coverage dst = new Coverage(); - copyValues(dst); - dst.issuer = issuer == null ? null : issuer.copy(); - dst.period = period == null ? null : period.copy(); - dst.type = type == null ? null : type.copy(); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.group = group == null ? null : group.copy(); - dst.plan = plan == null ? null : plan.copy(); - dst.subplan = subplan == null ? null : subplan.copy(); - dst.dependent = dependent == null ? null : dependent.copy(); - dst.sequence = sequence == null ? null : sequence.copy(); - dst.subscriber = subscriber == null ? null : subscriber.copy(); - dst.network = network == null ? null : network.copy(); - if (contract != null) { - dst.contract = new ArrayList(); - for (Reference i : contract) - dst.contract.add(i.copy()); - }; - return dst; - } - - protected Coverage typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (issuer == null || issuer.isEmpty()) && (period == null || period.isEmpty()) - && (type == null || type.isEmpty()) && (identifier == null || identifier.isEmpty()) && (group == null || group.isEmpty()) - && (plan == null || plan.isEmpty()) && (subplan == null || subplan.isEmpty()) && (dependent == null || dependent.isEmpty()) - && (sequence == null || sequence.isEmpty()) && (subscriber == null || subscriber.isEmpty()) - && (network == null || network.isEmpty()) && (contract == null || contract.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Coverage; - } - - @SearchParamDefinition(name="plan", path="Coverage.plan", description="A plan or policy identifier", type="token" ) - public static final String SP_PLAN = "plan"; - @SearchParamDefinition(name="issuer", path="Coverage.issuer", description="The identity of the insurer", type="reference" ) - public static final String SP_ISSUER = "issuer"; - @SearchParamDefinition(name="sequence", path="Coverage.sequence", description="Sequence number", type="token" ) - public static final String SP_SEQUENCE = "sequence"; - @SearchParamDefinition(name="dependent", path="Coverage.dependent", description="Dependent number", type="token" ) - public static final String SP_DEPENDENT = "dependent"; - @SearchParamDefinition(name="group", path="Coverage.group", description="Group identifier", type="token" ) - public static final String SP_GROUP = "group"; - @SearchParamDefinition(name="type", path="Coverage.type", description="The kind of coverage", type="token" ) - public static final String SP_TYPE = "type"; - @SearchParamDefinition(name="identifier", path="Coverage.identifier", description="The primary identifier of the insured", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - @SearchParamDefinition(name="subplan", path="Coverage.subplan", description="Sub-plan identifier", type="token" ) - public static final String SP_SUBPLAN = "subplan"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Financial instrument which may be used to pay for or reimburse for health care products and services. + */ +@ResourceDef(name="Coverage", profile="http://hl7.org/fhir/Profile/Coverage") +public class Coverage extends DomainResource { + + /** + * The program or plan underwriter or payor. + */ + @Child(name="issuer", type={Organization.class}, order=-1, min=0, max=1) + @Description(shortDefinition="An identifier for the plan issuer", formalDefinition="The program or plan underwriter or payor." ) + protected Reference issuer; + + /** + * The actual object that is the target of the reference (The program or plan underwriter or payor.) + */ + protected Organization issuerTarget; + + /** + * Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force. + */ + @Child(name="period", type={Period.class}, order=0, min=0, max=1) + @Description(shortDefinition="Coverage start and end dates", formalDefinition="Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force." ) + protected Period period; + + /** + * The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health. + */ + @Child(name="type", type={Coding.class}, order=1, min=0, max=1) + @Description(shortDefinition="Type of coverage", formalDefinition="The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health." ) + protected Coding type; + + /** + * The main (and possibly only) identifier for the coverage - often referred to as a Subscriber Id, Certificate number or Personal Health Number or Case ID. + */ + @Child(name="identifier", type={Identifier.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="The primary coverage ID", formalDefinition="The main (and possibly only) identifier for the coverage - often referred to as a Subscriber Id, Certificate number or Personal Health Number or Case ID." ) + protected List identifier; + + /** + * Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. + */ + @Child(name="group", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="An identifier for the group", formalDefinition="Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID." ) + protected StringType group; + + /** + * Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. + */ + @Child(name="plan", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="An identifier for the plan", formalDefinition="Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID." ) + protected StringType plan; + + /** + * Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID. + */ + @Child(name="subplan", type={StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="An identifier for the subsection of the plan", formalDefinition="Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID." ) + protected StringType subplan; + + /** + * A unique identifier for a dependent under the coverage. + */ + @Child(name="dependent", type={IntegerType.class}, order=6, min=0, max=1) + @Description(shortDefinition="The dependent number", formalDefinition="A unique identifier for a dependent under the coverage." ) + protected IntegerType dependent; + + /** + * An optional counter for a particular instance of the identified coverage which increments upon each renewal. + */ + @Child(name="sequence", type={IntegerType.class}, order=7, min=0, max=1) + @Description(shortDefinition="The plan instance or sequence counter", formalDefinition="An optional counter for a particular instance of the identified coverage which increments upon each renewal." ) + protected IntegerType sequence; + + /** + * The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due. + */ + @Child(name="subscriber", type={Patient.class}, order=8, min=0, max=1) + @Description(shortDefinition="Plan holder information", formalDefinition="The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due." ) + protected Reference subscriber; + + /** + * The actual object that is the target of the reference (The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due.) + */ + protected Patient subscriberTarget; + + /** + * The identifier for a community of providers. + */ + @Child(name="network", type={Identifier.class}, order=9, min=0, max=1) + @Description(shortDefinition="Insurer network", formalDefinition="The identifier for a community of providers." ) + protected Identifier network; + + /** + * The policy(s) which constitute this insurance coverage. + */ + @Child(name="contract", type={Contract.class}, order=10, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Contract details", formalDefinition="The policy(s) which constitute this insurance coverage." ) + protected List contract; + /** + * The actual objects that are the target of the reference (The policy(s) which constitute this insurance coverage.) + */ + protected List contractTarget; + + + private static final long serialVersionUID = 1420850573L; + + public Coverage() { + super(); + } + + /** + * @return {@link #issuer} (The program or plan underwriter or payor.) + */ + public Reference getIssuer() { + if (this.issuer == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coverage.issuer"); + else if (Configuration.doAutoCreate()) + this.issuer = new Reference(); // cc + return this.issuer; + } + + public boolean hasIssuer() { + return this.issuer != null && !this.issuer.isEmpty(); + } + + /** + * @param value {@link #issuer} (The program or plan underwriter or payor.) + */ + public Coverage setIssuer(Reference value) { + this.issuer = value; + return this; + } + + /** + * @return {@link #issuer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The program or plan underwriter or payor.) + */ + public Organization getIssuerTarget() { + if (this.issuerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coverage.issuer"); + else if (Configuration.doAutoCreate()) + this.issuerTarget = new Organization(); // aa + return this.issuerTarget; + } + + /** + * @param value {@link #issuer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The program or plan underwriter or payor.) + */ + public Coverage setIssuerTarget(Organization value) { + this.issuerTarget = value; + return this; + } + + /** + * @return {@link #period} (Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coverage.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force.) + */ + public Coverage setPeriod(Period value) { + this.period = value; + return this; + } + + /** + * @return {@link #type} (The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health.) + */ + public Coding getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coverage.type"); + else if (Configuration.doAutoCreate()) + this.type = new Coding(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health.) + */ + public Coverage setType(Coding value) { + this.type = value; + return this; + } + + /** + * @return {@link #identifier} (The main (and possibly only) identifier for the coverage - often referred to as a Subscriber Id, Certificate number or Personal Health Number or Case ID.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (The main (and possibly only) identifier for the coverage - often referred to as a Subscriber Id, Certificate number or Personal Health Number or Case ID.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #group} (Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID.). This is the underlying object with id, value and extensions. The accessor "getGroup" gives direct access to the value + */ + public StringType getGroupElement() { + if (this.group == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coverage.group"); + else if (Configuration.doAutoCreate()) + this.group = new StringType(); // bb + return this.group; + } + + public boolean hasGroupElement() { + return this.group != null && !this.group.isEmpty(); + } + + public boolean hasGroup() { + return this.group != null && !this.group.isEmpty(); + } + + /** + * @param value {@link #group} (Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID.). This is the underlying object with id, value and extensions. The accessor "getGroup" gives direct access to the value + */ + public Coverage setGroupElement(StringType value) { + this.group = value; + return this; + } + + /** + * @return Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. + */ + public String getGroup() { + return this.group == null ? null : this.group.getValue(); + } + + /** + * @param value Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. + */ + public Coverage setGroup(String value) { + if (Utilities.noString(value)) + this.group = null; + else { + if (this.group == null) + this.group = new StringType(); + this.group.setValue(value); + } + return this; + } + + /** + * @return {@link #plan} (Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID.). This is the underlying object with id, value and extensions. The accessor "getPlan" gives direct access to the value + */ + public StringType getPlanElement() { + if (this.plan == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coverage.plan"); + else if (Configuration.doAutoCreate()) + this.plan = new StringType(); // bb + return this.plan; + } + + public boolean hasPlanElement() { + return this.plan != null && !this.plan.isEmpty(); + } + + public boolean hasPlan() { + return this.plan != null && !this.plan.isEmpty(); + } + + /** + * @param value {@link #plan} (Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID.). This is the underlying object with id, value and extensions. The accessor "getPlan" gives direct access to the value + */ + public Coverage setPlanElement(StringType value) { + this.plan = value; + return this; + } + + /** + * @return Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. + */ + public String getPlan() { + return this.plan == null ? null : this.plan.getValue(); + } + + /** + * @param value Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID. + */ + public Coverage setPlan(String value) { + if (Utilities.noString(value)) + this.plan = null; + else { + if (this.plan == null) + this.plan = new StringType(); + this.plan.setValue(value); + } + return this; + } + + /** + * @return {@link #subplan} (Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID.). This is the underlying object with id, value and extensions. The accessor "getSubplan" gives direct access to the value + */ + public StringType getSubplanElement() { + if (this.subplan == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coverage.subplan"); + else if (Configuration.doAutoCreate()) + this.subplan = new StringType(); // bb + return this.subplan; + } + + public boolean hasSubplanElement() { + return this.subplan != null && !this.subplan.isEmpty(); + } + + public boolean hasSubplan() { + return this.subplan != null && !this.subplan.isEmpty(); + } + + /** + * @param value {@link #subplan} (Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID.). This is the underlying object with id, value and extensions. The accessor "getSubplan" gives direct access to the value + */ + public Coverage setSubplanElement(StringType value) { + this.subplan = value; + return this; + } + + /** + * @return Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID. + */ + public String getSubplan() { + return this.subplan == null ? null : this.subplan.getValue(); + } + + /** + * @param value Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID. + */ + public Coverage setSubplan(String value) { + if (Utilities.noString(value)) + this.subplan = null; + else { + if (this.subplan == null) + this.subplan = new StringType(); + this.subplan.setValue(value); + } + return this; + } + + /** + * @return {@link #dependent} (A unique identifier for a dependent under the coverage.). This is the underlying object with id, value and extensions. The accessor "getDependent" gives direct access to the value + */ + public IntegerType getDependentElement() { + if (this.dependent == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coverage.dependent"); + else if (Configuration.doAutoCreate()) + this.dependent = new IntegerType(); // bb + return this.dependent; + } + + public boolean hasDependentElement() { + return this.dependent != null && !this.dependent.isEmpty(); + } + + public boolean hasDependent() { + return this.dependent != null && !this.dependent.isEmpty(); + } + + /** + * @param value {@link #dependent} (A unique identifier for a dependent under the coverage.). This is the underlying object with id, value and extensions. The accessor "getDependent" gives direct access to the value + */ + public Coverage setDependentElement(IntegerType value) { + this.dependent = value; + return this; + } + + /** + * @return A unique identifier for a dependent under the coverage. + */ + public int getDependent() { + return this.dependent == null ? 0 : this.dependent.getValue(); + } + + /** + * @param value A unique identifier for a dependent under the coverage. + */ + public Coverage setDependent(int value) { + if (this.dependent == null) + this.dependent = new IntegerType(); + this.dependent.setValue(value); + return this; + } + + /** + * @return {@link #sequence} (An optional counter for a particular instance of the identified coverage which increments upon each renewal.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value + */ + public IntegerType getSequenceElement() { + if (this.sequence == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coverage.sequence"); + else if (Configuration.doAutoCreate()) + this.sequence = new IntegerType(); // bb + return this.sequence; + } + + public boolean hasSequenceElement() { + return this.sequence != null && !this.sequence.isEmpty(); + } + + public boolean hasSequence() { + return this.sequence != null && !this.sequence.isEmpty(); + } + + /** + * @param value {@link #sequence} (An optional counter for a particular instance of the identified coverage which increments upon each renewal.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value + */ + public Coverage setSequenceElement(IntegerType value) { + this.sequence = value; + return this; + } + + /** + * @return An optional counter for a particular instance of the identified coverage which increments upon each renewal. + */ + public int getSequence() { + return this.sequence == null ? 0 : this.sequence.getValue(); + } + + /** + * @param value An optional counter for a particular instance of the identified coverage which increments upon each renewal. + */ + public Coverage setSequence(int value) { + if (this.sequence == null) + this.sequence = new IntegerType(); + this.sequence.setValue(value); + return this; + } + + /** + * @return {@link #subscriber} (The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due.) + */ + public Reference getSubscriber() { + if (this.subscriber == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coverage.subscriber"); + else if (Configuration.doAutoCreate()) + this.subscriber = new Reference(); // cc + return this.subscriber; + } + + public boolean hasSubscriber() { + return this.subscriber != null && !this.subscriber.isEmpty(); + } + + /** + * @param value {@link #subscriber} (The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due.) + */ + public Coverage setSubscriber(Reference value) { + this.subscriber = value; + return this; + } + + /** + * @return {@link #subscriber} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due.) + */ + public Patient getSubscriberTarget() { + if (this.subscriberTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coverage.subscriber"); + else if (Configuration.doAutoCreate()) + this.subscriberTarget = new Patient(); // aa + return this.subscriberTarget; + } + + /** + * @param value {@link #subscriber} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due.) + */ + public Coverage setSubscriberTarget(Patient value) { + this.subscriberTarget = value; + return this; + } + + /** + * @return {@link #network} (The identifier for a community of providers.) + */ + public Identifier getNetwork() { + if (this.network == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Coverage.network"); + else if (Configuration.doAutoCreate()) + this.network = new Identifier(); // cc + return this.network; + } + + public boolean hasNetwork() { + return this.network != null && !this.network.isEmpty(); + } + + /** + * @param value {@link #network} (The identifier for a community of providers.) + */ + public Coverage setNetwork(Identifier value) { + this.network = value; + return this; + } + + /** + * @return {@link #contract} (The policy(s) which constitute this insurance coverage.) + */ + public List getContract() { + if (this.contract == null) + this.contract = new ArrayList(); + return this.contract; + } + + public boolean hasContract() { + if (this.contract == null) + return false; + for (Reference item : this.contract) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #contract} (The policy(s) which constitute this insurance coverage.) + */ + // syntactic sugar + public Reference addContract() { //3 + Reference t = new Reference(); + if (this.contract == null) + this.contract = new ArrayList(); + this.contract.add(t); + return t; + } + + /** + * @return {@link #contract} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The policy(s) which constitute this insurance coverage.) + */ + public List getContractTarget() { + if (this.contractTarget == null) + this.contractTarget = new ArrayList(); + return this.contractTarget; + } + + // syntactic sugar + /** + * @return {@link #contract} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The policy(s) which constitute this insurance coverage.) + */ + public Contract addContractTarget() { + Contract r = new Contract(); + if (this.contractTarget == null) + this.contractTarget = new ArrayList(); + this.contractTarget.add(r); + return r; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("issuer", "Reference(Organization)", "The program or plan underwriter or payor.", 0, java.lang.Integer.MAX_VALUE, issuer)); + childrenList.add(new Property("period", "Period", "Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force.", 0, java.lang.Integer.MAX_VALUE, period)); + childrenList.add(new Property("type", "Coding", "The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("identifier", "Identifier", "The main (and possibly only) identifier for the coverage - often referred to as a Subscriber Id, Certificate number or Personal Health Number or Case ID.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("group", "string", "Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID.", 0, java.lang.Integer.MAX_VALUE, group)); + childrenList.add(new Property("plan", "string", "Identifies a style or collective of coverage issues by the underwriter, for example may be used to identify a class of coverage or employer group. May also be referred to as a Policy or Group ID.", 0, java.lang.Integer.MAX_VALUE, plan)); + childrenList.add(new Property("subplan", "string", "Identifies a sub-style or sub-collective of coverage issues by the underwriter, for example may be used to identify a specific employer group within a class of employers. May be referred to as a Section or Division ID.", 0, java.lang.Integer.MAX_VALUE, subplan)); + childrenList.add(new Property("dependent", "integer", "A unique identifier for a dependent under the coverage.", 0, java.lang.Integer.MAX_VALUE, dependent)); + childrenList.add(new Property("sequence", "integer", "An optional counter for a particular instance of the identified coverage which increments upon each renewal.", 0, java.lang.Integer.MAX_VALUE, sequence)); + childrenList.add(new Property("subscriber", "Reference(Patient)", "The party who 'owns' the insurance contractual relationship to the policy or to whom the benefit of the policy is due.", 0, java.lang.Integer.MAX_VALUE, subscriber)); + childrenList.add(new Property("network", "Identifier", "The identifier for a community of providers.", 0, java.lang.Integer.MAX_VALUE, network)); + childrenList.add(new Property("contract", "Reference(Contract)", "The policy(s) which constitute this insurance coverage.", 0, java.lang.Integer.MAX_VALUE, contract)); + } + + public Coverage copy() { + Coverage dst = new Coverage(); + copyValues(dst); + dst.issuer = issuer == null ? null : issuer.copy(); + dst.period = period == null ? null : period.copy(); + dst.type = type == null ? null : type.copy(); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.group = group == null ? null : group.copy(); + dst.plan = plan == null ? null : plan.copy(); + dst.subplan = subplan == null ? null : subplan.copy(); + dst.dependent = dependent == null ? null : dependent.copy(); + dst.sequence = sequence == null ? null : sequence.copy(); + dst.subscriber = subscriber == null ? null : subscriber.copy(); + dst.network = network == null ? null : network.copy(); + if (contract != null) { + dst.contract = new ArrayList(); + for (Reference i : contract) + dst.contract.add(i.copy()); + }; + return dst; + } + + protected Coverage typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Coverage)) + return false; + Coverage o = (Coverage) other; + return compareDeep(issuer, o.issuer, true) && compareDeep(period, o.period, true) && compareDeep(type, o.type, true) + && compareDeep(identifier, o.identifier, true) && compareDeep(group, o.group, true) && compareDeep(plan, o.plan, true) + && compareDeep(subplan, o.subplan, true) && compareDeep(dependent, o.dependent, true) && compareDeep(sequence, o.sequence, true) + && compareDeep(subscriber, o.subscriber, true) && compareDeep(network, o.network, true) && compareDeep(contract, o.contract, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Coverage)) + return false; + Coverage o = (Coverage) other; + return compareValues(group, o.group, true) && compareValues(plan, o.plan, true) && compareValues(subplan, o.subplan, true) + && compareValues(dependent, o.dependent, true) && compareValues(sequence, o.sequence, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (issuer == null || issuer.isEmpty()) && (period == null || period.isEmpty()) + && (type == null || type.isEmpty()) && (identifier == null || identifier.isEmpty()) && (group == null || group.isEmpty()) + && (plan == null || plan.isEmpty()) && (subplan == null || subplan.isEmpty()) && (dependent == null || dependent.isEmpty()) + && (sequence == null || sequence.isEmpty()) && (subscriber == null || subscriber.isEmpty()) + && (network == null || network.isEmpty()) && (contract == null || contract.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Coverage; + } + + @SearchParamDefinition(name="plan", path="Coverage.plan", description="A plan or policy identifier", type="token" ) + public static final String SP_PLAN = "plan"; + @SearchParamDefinition(name="issuer", path="Coverage.issuer", description="The identity of the insurer", type="reference" ) + public static final String SP_ISSUER = "issuer"; + @SearchParamDefinition(name="sequence", path="Coverage.sequence", description="Sequence number", type="token" ) + public static final String SP_SEQUENCE = "sequence"; + @SearchParamDefinition(name="dependent", path="Coverage.dependent", description="Dependent number", type="token" ) + public static final String SP_DEPENDENT = "dependent"; + @SearchParamDefinition(name="group", path="Coverage.group", description="Group identifier", type="token" ) + public static final String SP_GROUP = "group"; + @SearchParamDefinition(name="type", path="Coverage.type", description="The kind of coverage", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="identifier", path="Coverage.identifier", description="The primary identifier of the insured", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + @SearchParamDefinition(name="subplan", path="Coverage.subplan", description="Sub-plan identifier", type="token" ) + public static final String SP_SUBPLAN = "subplan"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$1.class new file mode 100644 index 0000000000000000000000000000000000000000..dca80f1a2e7fc70a11d53915e5c7523e0d8ac0aa GIT binary patch literal 2098 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 UZQev4a~{VhxcPXGV_ literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$DataElementMappingComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$DataElementMappingComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..a6b54ff2cb2fb2d30b41c78517a9a8fbd4816d37 GIT binary patch literal 8704 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$DataelementGranularityEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$DataelementGranularityEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..a9460e5984e483a9e370f7a4ef7586e57fba5bd7 GIT binary patch literal 2167 zcmbtV+fy556#sn?vYTarbfvAdwt}TXh%|~ytsoG>rbff1Bw$mo%d$zAZg%5lgXO`0 zz;_?~2YgO_fEhcZKJ}r0hU5KKFEie)o-dn*Adzu~%;YNOMbKAXr_x%q5JPu95 zDLf`(Od{b45l@EDhj9_-IekjR1x}w9F~RAih-WyR5;4u`jDWa+SqVqDiv*{0B2-S3 z62iDB;#mRDNq7Ly^CK-_UcjP&C5GUnX`9{@L;G-Kl_8LD)(wW9v}qd)mExM=X0O6-#qXZ;L@r*|y;(EUjEN$_&}z^oF*n#VpM(#4?_1 z+J%Wo+Hni9tJe8g{;KK5OuOu9wr<3V6xNDy$Expmuyv3LhOUgK>DT79QXQG3Ue}G1 zXF4{;40?_al7b&HQe;1RhQa2XRJ&57jP@n@FSADKyN0!!455r!ur;sZQi0!W^0TL-x8; zENL#E4jEaj(9q;7mbEonE*ZL+H;r`}t6VJ^uUE`X&7x_M@dDR$>W;l>xSoIaGFOGl zI$8LN99M{W%eZdVoL}McL%YRGS(Z`IthigK@DXgZpW*nfkze%LifOGIF2mUs`EURp`5#?$ITmc}WuxUi}&XZ>)YOoH@2FDBFKdo&fuh{Ejb3`xs~n|c8^?BV{6j+1R>M0> zA0glqbm3E+z-N^1=QxWmXeGYH7{0+PZ%N( zod|WwOs@SfOo{-NAWVPSEjoF{-lmYe4AW6c@m&O!K$SRwb3x99I45$hlXDX1x;Q6u zu7`8oRptIFx$v=%6KddRdh`7P3BS@e^*8k5cbvo@)UZD(kG}}YUBvJ=#;8{p7{erM ztKk(9ltTO$juXUa9pXS8VrV4#5&E`qf(P5vSTa9@N63t4bh>UH9HIK2+-KWVhjxtC bV4ou}9R8yO4p4~eLkfd4eN^}q77+Re_+~hA literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$ResourceObservationDefStatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$ResourceObservationDefStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..bfc5b16556a1fcb5f2e5a7def7c93872a638ca41 GIT binary patch literal 2833 zcmb_eYg5}s6g@IF5{`J(>u-3K`Avuyvo0wyA2@4CVtcg!FVG$*G#zmlywm$K!m?PqN_2u-&nvdf+&oa}@dnmI=- z3pY%^FYJhd*0J%q{6bEFI-8rz&*ml+#HZ({rZ|ya7@L~U6%^c9+&8op)2Yk+^Zl89 z3mPBirWJHf*{+zbFE0sy&RlXhqef^mWd#rVr=FQBX4Wy?O12RCwp$s=?AxYBZPyO3 zC^)SBxSsemp6%_>&`@v!z!>H<%^?3zQVe5E?=M7s%&^X_xk``$I)CorQ# zY8rhy9I!zOA6$&c0G^7Pju&9G03lypRd8;uY6pfz?HZyfUW0ZJ+Kyw?T_PKnSP_m_ zle!*MFtDe;FHGyDQTBYp_55X%O9MgYhr6AtW?(D{;WBK^7bP-3wJFK#B+!rGR z^_uVlVF}AHUCRinUfr=6*KjO zci01C2Q>($h2C3`9kJgorS>x)xa0J&f|+!I9Vu0LJfyiS%@aQ@PyF=T6F(iD_~~s@ zd+&*_AhwvN06gEaUDJt`k7%Ta!kt5DVudxMq+Ed@iow?^-V=s%1vH~dc`7R?^$MttBmB;FvtdqGSpnvN3S z1X}o|x(CkmtfTeUUC}RaCWebdxkQxaqMx}dnb*R=-_TR)z#6olkWd<_w&tU{iew{o zVAIeWsrF5yqwyM@#nK@jelY?;w8rk%-3|sZSfJo;~*Xh=`Ag_=Jd0iDr6RYSb6kAu(TX+R!i~P-ApC|Dy<2ZZThig>K5Lwcc!!?XChZw1O Snq!JjaY;*xdyyl$wEqCk`k90P literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$ResourceObservationDefStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement$ResourceObservationDefStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..12312c084c0871b2d174d9275403f59f22c304b2 GIT binary patch literal 1952 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 IyJp(|181Zq5dZ)H literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DataElement.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement.java similarity index 74% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DataElement.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement.java index 64c839dc807..3712c11ee25 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DataElement.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DataElement.java @@ -1,1886 +1,2182 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * The formal description of a single piece of information that can be gathered and reported. - */ -@ResourceDef(name="DataElement", profile="http://hl7.org/fhir/Profile/DataElement") -public class DataElement extends DomainResource { - - public enum ResourceObservationDefStatus implements FhirEnum { - /** - * This data element is still under development. - */ - DRAFT, - /** - * This data element is ready for normal use. - */ - ACTIVE, - /** - * This data element has been deprecated, withdrawn or superseded and should no longer be used. - */ - RETIRED, - /** - * added to help the parsers - */ - NULL; - - public static final ResourceObservationDefStatusEnumFactory ENUM_FACTORY = new ResourceObservationDefStatusEnumFactory(); - - public static ResourceObservationDefStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("draft".equals(codeString)) - return DRAFT; - if ("active".equals(codeString)) - return ACTIVE; - if ("retired".equals(codeString)) - return RETIRED; - throw new IllegalArgumentException("Unknown ResourceObservationDefStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case DRAFT: return "draft"; - case ACTIVE: return "active"; - case RETIRED: return "retired"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case DRAFT: return ""; - case ACTIVE: return ""; - case RETIRED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case DRAFT: return "This data element is still under development."; - case ACTIVE: return "This data element is ready for normal use."; - case RETIRED: return "This data element has been deprecated, withdrawn or superseded and should no longer be used."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case DRAFT: return "draft"; - case ACTIVE: return "active"; - case RETIRED: return "retired"; - default: return "?"; - } - } - } - - public static class ResourceObservationDefStatusEnumFactory implements EnumFactory { - public ResourceObservationDefStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("draft".equals(codeString)) - return ResourceObservationDefStatus.DRAFT; - if ("active".equals(codeString)) - return ResourceObservationDefStatus.ACTIVE; - if ("retired".equals(codeString)) - return ResourceObservationDefStatus.RETIRED; - throw new IllegalArgumentException("Unknown ResourceObservationDefStatus code '"+codeString+"'"); - } - public String toCode(ResourceObservationDefStatus code) throws IllegalArgumentException { - if (code == ResourceObservationDefStatus.DRAFT) - return "draft"; - if (code == ResourceObservationDefStatus.ACTIVE) - return "active"; - if (code == ResourceObservationDefStatus.RETIRED) - return "retired"; - return "?"; - } - } - - public enum BindingConformance implements FhirEnum { - /** - * Only codes in the specified set are allowed. If the binding is extensible, other codes may be used for concepts not covered by the bound set of codes. - */ - REQUIRED, - /** - * For greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in derived profiles and implementations if necessary without being considered non-conformant. - */ - PREFERRED, - /** - * The codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use nor any assertion that the provided values are sufficient to meet implementation needs. - */ - EXAMPLE, - /** - * added to help the parsers - */ - NULL; - - public static final BindingConformanceEnumFactory ENUM_FACTORY = new BindingConformanceEnumFactory(); - - public static BindingConformance fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("required".equals(codeString)) - return REQUIRED; - if ("preferred".equals(codeString)) - return PREFERRED; - if ("example".equals(codeString)) - return EXAMPLE; - throw new IllegalArgumentException("Unknown BindingConformance code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case REQUIRED: return "required"; - case PREFERRED: return "preferred"; - case EXAMPLE: return "example"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case REQUIRED: return ""; - case PREFERRED: return ""; - case EXAMPLE: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case REQUIRED: return "Only codes in the specified set are allowed. If the binding is extensible, other codes may be used for concepts not covered by the bound set of codes."; - case PREFERRED: return "For greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in derived profiles and implementations if necessary without being considered non-conformant."; - case EXAMPLE: return "The codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use nor any assertion that the provided values are sufficient to meet implementation needs."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case REQUIRED: return "required"; - case PREFERRED: return "preferred"; - case EXAMPLE: return "example"; - default: return "?"; - } - } - } - - public static class BindingConformanceEnumFactory implements EnumFactory { - public BindingConformance fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("required".equals(codeString)) - return BindingConformance.REQUIRED; - if ("preferred".equals(codeString)) - return BindingConformance.PREFERRED; - if ("example".equals(codeString)) - return BindingConformance.EXAMPLE; - throw new IllegalArgumentException("Unknown BindingConformance code '"+codeString+"'"); - } - public String toCode(BindingConformance code) throws IllegalArgumentException { - if (code == BindingConformance.REQUIRED) - return "required"; - if (code == BindingConformance.PREFERRED) - return "preferred"; - if (code == BindingConformance.EXAMPLE) - return "example"; - return "?"; - } - } - - @Block() - public static class DataElementBindingComponent extends BackboneElement { - /** - * If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone. - */ - @Child(name="isExtensible", type={BooleanType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Can additional codes be used?", formalDefinition="If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone." ) - protected BooleanType isExtensible; - - /** - * Indicates the degree of conformance expectations associated with this binding. - */ - @Child(name="conformance", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="required | preferred | example", formalDefinition="Indicates the degree of conformance expectations associated with this binding." ) - protected Enumeration conformance; - - /** - * Describes the intended use of this particular set of codes. - */ - @Child(name="description", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Human explanation of the value set", formalDefinition="Describes the intended use of this particular set of codes." ) - protected StringType description; - - /** - * Points to the value set that identifies the set of codes to be used. - */ - @Child(name="valueSet", type={ValueSet.class}, order=4, min=0, max=1) - @Description(shortDefinition="Source of value set", formalDefinition="Points to the value set that identifies the set of codes to be used." ) - protected Reference valueSet; - - /** - * The actual object that is the target of the reference (Points to the value set that identifies the set of codes to be used.) - */ - protected ValueSet valueSetTarget; - - private static final long serialVersionUID = -1297440999L; - - public DataElementBindingComponent() { - super(); - } - - public DataElementBindingComponent(BooleanType isExtensible) { - super(); - this.isExtensible = isExtensible; - } - - /** - * @return {@link #isExtensible} (If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.). This is the underlying object with id, value and extensions. The accessor "getIsExtensible" gives direct access to the value - */ - public BooleanType getIsExtensibleElement() { - if (this.isExtensible == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElementBindingComponent.isExtensible"); - else if (Configuration.doAutoCreate()) - this.isExtensible = new BooleanType(); - return this.isExtensible; - } - - public boolean hasIsExtensibleElement() { - return this.isExtensible != null && !this.isExtensible.isEmpty(); - } - - public boolean hasIsExtensible() { - return this.isExtensible != null && !this.isExtensible.isEmpty(); - } - - /** - * @param value {@link #isExtensible} (If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.). This is the underlying object with id, value and extensions. The accessor "getIsExtensible" gives direct access to the value - */ - public DataElementBindingComponent setIsExtensibleElement(BooleanType value) { - this.isExtensible = value; - return this; - } - - /** - * @return If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone. - */ - public boolean getIsExtensible() { - return this.isExtensible == null ? false : this.isExtensible.getValue(); - } - - /** - * @param value If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone. - */ - public DataElementBindingComponent setIsExtensible(boolean value) { - if (this.isExtensible == null) - this.isExtensible = new BooleanType(); - this.isExtensible.setValue(value); - return this; - } - - /** - * @return {@link #conformance} (Indicates the degree of conformance expectations associated with this binding.). This is the underlying object with id, value and extensions. The accessor "getConformance" gives direct access to the value - */ - public Enumeration getConformanceElement() { - if (this.conformance == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElementBindingComponent.conformance"); - else if (Configuration.doAutoCreate()) - this.conformance = new Enumeration(); - return this.conformance; - } - - public boolean hasConformanceElement() { - return this.conformance != null && !this.conformance.isEmpty(); - } - - public boolean hasConformance() { - return this.conformance != null && !this.conformance.isEmpty(); - } - - /** - * @param value {@link #conformance} (Indicates the degree of conformance expectations associated with this binding.). This is the underlying object with id, value and extensions. The accessor "getConformance" gives direct access to the value - */ - public DataElementBindingComponent setConformanceElement(Enumeration value) { - this.conformance = value; - return this; - } - - /** - * @return Indicates the degree of conformance expectations associated with this binding. - */ - public BindingConformance getConformance() { - return this.conformance == null ? null : this.conformance.getValue(); - } - - /** - * @param value Indicates the degree of conformance expectations associated with this binding. - */ - public DataElementBindingComponent setConformance(BindingConformance value) { - if (value == null) - this.conformance = null; - else { - if (this.conformance == null) - this.conformance = new Enumeration(BindingConformance.ENUM_FACTORY); - this.conformance.setValue(value); - } - return this; - } - - /** - * @return {@link #description} (Describes the intended use of this particular set of codes.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElementBindingComponent.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Describes the intended use of this particular set of codes.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public DataElementBindingComponent setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Describes the intended use of this particular set of codes. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Describes the intended use of this particular set of codes. - */ - public DataElementBindingComponent setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #valueSet} (Points to the value set that identifies the set of codes to be used.) - */ - public Reference getValueSet() { - if (this.valueSet == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElementBindingComponent.valueSet"); - else if (Configuration.doAutoCreate()) - this.valueSet = new Reference(); - return this.valueSet; - } - - public boolean hasValueSet() { - return this.valueSet != null && !this.valueSet.isEmpty(); - } - - /** - * @param value {@link #valueSet} (Points to the value set that identifies the set of codes to be used.) - */ - public DataElementBindingComponent setValueSet(Reference value) { - this.valueSet = value; - return this; - } - - /** - * @return {@link #valueSet} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Points to the value set that identifies the set of codes to be used.) - */ - public ValueSet getValueSetTarget() { - if (this.valueSetTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElementBindingComponent.valueSet"); - else if (Configuration.doAutoCreate()) - this.valueSetTarget = new ValueSet(); - return this.valueSetTarget; - } - - /** - * @param value {@link #valueSet} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Points to the value set that identifies the set of codes to be used.) - */ - public DataElementBindingComponent setValueSetTarget(ValueSet value) { - this.valueSetTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("isExtensible", "boolean", "If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.", 0, java.lang.Integer.MAX_VALUE, isExtensible)); - childrenList.add(new Property("conformance", "code", "Indicates the degree of conformance expectations associated with this binding.", 0, java.lang.Integer.MAX_VALUE, conformance)); - childrenList.add(new Property("description", "string", "Describes the intended use of this particular set of codes.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("valueSet", "Reference(ValueSet)", "Points to the value set that identifies the set of codes to be used.", 0, java.lang.Integer.MAX_VALUE, valueSet)); - } - - public DataElementBindingComponent copy() { - DataElementBindingComponent dst = new DataElementBindingComponent(); - copyValues(dst); - dst.isExtensible = isExtensible == null ? null : isExtensible.copy(); - dst.conformance = conformance == null ? null : conformance.copy(); - dst.description = description == null ? null : description.copy(); - dst.valueSet = valueSet == null ? null : valueSet.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (isExtensible == null || isExtensible.isEmpty()) && (conformance == null || conformance.isEmpty()) - && (description == null || description.isEmpty()) && (valueSet == null || valueSet.isEmpty()) - ; - } - - } - - @Block() - public static class DataElementMappingComponent extends BackboneElement { - /** - * A URI that identifies the specification that this mapping is expressed to. - */ - @Child(name="uri", type={UriType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Identifies what this mapping refers to", formalDefinition="A URI that identifies the specification that this mapping is expressed to." ) - protected UriType uri; - - /** - * If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element. - */ - @Child(name="definitional", type={BooleanType.class}, order=2, min=0, max=1) - @Description(shortDefinition="True if mapping defines element", formalDefinition="If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element." ) - protected BooleanType definitional; - - /** - * A name for the specification that is being mapped to. - */ - @Child(name="name", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Names what this mapping refers to", formalDefinition="A name for the specification that is being mapped to." ) - protected StringType name; - - /** - * Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. - */ - @Child(name="comments", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Versions, Issues, Scope limitations etc", formalDefinition="Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage." ) - protected StringType comments; - - /** - * Expresses what part of the target specification corresponds to this element. - */ - @Child(name="map", type={StringType.class}, order=5, min=1, max=1) - @Description(shortDefinition="Details of the mapping", formalDefinition="Expresses what part of the target specification corresponds to this element." ) - protected StringType map; - - private static final long serialVersionUID = 797049346L; - - public DataElementMappingComponent() { - super(); - } - - public DataElementMappingComponent(StringType map) { - super(); - this.map = map; - } - - /** - * @return {@link #uri} (A URI that identifies the specification that this mapping is expressed to.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value - */ - public UriType getUriElement() { - if (this.uri == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElementMappingComponent.uri"); - else if (Configuration.doAutoCreate()) - this.uri = new UriType(); - return this.uri; - } - - public boolean hasUriElement() { - return this.uri != null && !this.uri.isEmpty(); - } - - public boolean hasUri() { - return this.uri != null && !this.uri.isEmpty(); - } - - /** - * @param value {@link #uri} (A URI that identifies the specification that this mapping is expressed to.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value - */ - public DataElementMappingComponent setUriElement(UriType value) { - this.uri = value; - return this; - } - - /** - * @return A URI that identifies the specification that this mapping is expressed to. - */ - public String getUri() { - return this.uri == null ? null : this.uri.getValue(); - } - - /** - * @param value A URI that identifies the specification that this mapping is expressed to. - */ - public DataElementMappingComponent setUri(String value) { - if (Utilities.noString(value)) - this.uri = null; - else { - if (this.uri == null) - this.uri = new UriType(); - this.uri.setValue(value); - } - return this; - } - - /** - * @return {@link #definitional} (If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element.). This is the underlying object with id, value and extensions. The accessor "getDefinitional" gives direct access to the value - */ - public BooleanType getDefinitionalElement() { - if (this.definitional == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElementMappingComponent.definitional"); - else if (Configuration.doAutoCreate()) - this.definitional = new BooleanType(); - return this.definitional; - } - - public boolean hasDefinitionalElement() { - return this.definitional != null && !this.definitional.isEmpty(); - } - - public boolean hasDefinitional() { - return this.definitional != null && !this.definitional.isEmpty(); - } - - /** - * @param value {@link #definitional} (If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element.). This is the underlying object with id, value and extensions. The accessor "getDefinitional" gives direct access to the value - */ - public DataElementMappingComponent setDefinitionalElement(BooleanType value) { - this.definitional = value; - return this; - } - - /** - * @return If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element. - */ - public boolean getDefinitional() { - return this.definitional == null ? false : this.definitional.getValue(); - } - - /** - * @param value If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element. - */ - public DataElementMappingComponent setDefinitional(boolean value) { - if (value == false) - this.definitional = null; - else { - if (this.definitional == null) - this.definitional = new BooleanType(); - this.definitional.setValue(value); - } - return this; - } - - /** - * @return {@link #name} (A name for the specification that is being mapped to.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElementMappingComponent.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (A name for the specification that is being mapped to.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public DataElementMappingComponent setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return A name for the specification that is being mapped to. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value A name for the specification that is being mapped to. - */ - public DataElementMappingComponent setName(String value) { - if (Utilities.noString(value)) - this.name = null; - else { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - } - return this; - } - - /** - * @return {@link #comments} (Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value - */ - public StringType getCommentsElement() { - if (this.comments == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElementMappingComponent.comments"); - else if (Configuration.doAutoCreate()) - this.comments = new StringType(); - return this.comments; - } - - public boolean hasCommentsElement() { - return this.comments != null && !this.comments.isEmpty(); - } - - public boolean hasComments() { - return this.comments != null && !this.comments.isEmpty(); - } - - /** - * @param value {@link #comments} (Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value - */ - public DataElementMappingComponent setCommentsElement(StringType value) { - this.comments = value; - return this; - } - - /** - * @return Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. - */ - public String getComments() { - return this.comments == null ? null : this.comments.getValue(); - } - - /** - * @param value Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. - */ - public DataElementMappingComponent setComments(String value) { - if (Utilities.noString(value)) - this.comments = null; - else { - if (this.comments == null) - this.comments = new StringType(); - this.comments.setValue(value); - } - return this; - } - - /** - * @return {@link #map} (Expresses what part of the target specification corresponds to this element.). This is the underlying object with id, value and extensions. The accessor "getMap" gives direct access to the value - */ - public StringType getMapElement() { - if (this.map == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElementMappingComponent.map"); - else if (Configuration.doAutoCreate()) - this.map = new StringType(); - return this.map; - } - - public boolean hasMapElement() { - return this.map != null && !this.map.isEmpty(); - } - - public boolean hasMap() { - return this.map != null && !this.map.isEmpty(); - } - - /** - * @param value {@link #map} (Expresses what part of the target specification corresponds to this element.). This is the underlying object with id, value and extensions. The accessor "getMap" gives direct access to the value - */ - public DataElementMappingComponent setMapElement(StringType value) { - this.map = value; - return this; - } - - /** - * @return Expresses what part of the target specification corresponds to this element. - */ - public String getMap() { - return this.map == null ? null : this.map.getValue(); - } - - /** - * @param value Expresses what part of the target specification corresponds to this element. - */ - public DataElementMappingComponent setMap(String value) { - if (this.map == null) - this.map = new StringType(); - this.map.setValue(value); - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("uri", "uri", "A URI that identifies the specification that this mapping is expressed to.", 0, java.lang.Integer.MAX_VALUE, uri)); - childrenList.add(new Property("definitional", "boolean", "If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element.", 0, java.lang.Integer.MAX_VALUE, definitional)); - childrenList.add(new Property("name", "string", "A name for the specification that is being mapped to.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("comments", "string", "Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.", 0, java.lang.Integer.MAX_VALUE, comments)); - childrenList.add(new Property("map", "string", "Expresses what part of the target specification corresponds to this element.", 0, java.lang.Integer.MAX_VALUE, map)); - } - - public DataElementMappingComponent copy() { - DataElementMappingComponent dst = new DataElementMappingComponent(); - copyValues(dst); - dst.uri = uri == null ? null : uri.copy(); - dst.definitional = definitional == null ? null : definitional.copy(); - dst.name = name == null ? null : name.copy(); - dst.comments = comments == null ? null : comments.copy(); - dst.map = map == null ? null : map.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (uri == null || uri.isEmpty()) && (definitional == null || definitional.isEmpty()) - && (name == null || name.isEmpty()) && (comments == null || comments.isEmpty()) && (map == null || map.isEmpty()) - ; - } - - } - - /** - * The identifier that is used to identify this data element when it is referenced in a Profile, Questionnaire or an instance. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=1) - @Description(shortDefinition="Logical id to reference this data element", formalDefinition="The identifier that is used to identify this data element when it is referenced in a Profile, Questionnaire or an instance." ) - protected Identifier identifier; - - /** - * The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually. - */ - @Child(name="version", type={StringType.class}, order=0, min=0, max=1) - @Description(shortDefinition="Logical id for this version of the data element", formalDefinition="The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually." ) - protected StringType version; - - /** - * Details of the individual or organization who accepts responsibility for publishing the data element. - */ - @Child(name="publisher", type={StringType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Name of the publisher (Organization or individual)", formalDefinition="Details of the individual or organization who accepts responsibility for publishing the data element." ) - protected StringType publisher; - - /** - * Contact details to assist a user in finding and communicating with the publisher. - */ - @Child(name="telecom", type={ContactPoint.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Contact information of the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." ) - protected List telecom; - - /** - * The status of the data element. - */ - @Child(name="status", type={CodeType.class}, order=3, min=1, max=1) - @Description(shortDefinition="draft | active | retired", formalDefinition="The status of the data element." ) - protected Enumeration status; - - /** - * The date that this version of the data element was published. - */ - @Child(name="date", type={DateTimeType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Date for this version of the data element", formalDefinition="The date that this version of the data element was published." ) - protected DateTimeType date; - - /** - * The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used. - */ - @Child(name="name", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Descriptive label for this element definition", formalDefinition="The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used." ) - protected StringType name; - - /** - * A set of terms from external terminologies that may be used to assist with indexing and searching of data element definitions. - */ - @Child(name="category", type={CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Assist with indexing and finding", formalDefinition="A set of terms from external terminologies that may be used to assist with indexing and searching of data element definitions." ) - protected List category; - - /** - * A code that provides the meaning for a data element according to a particular terminology. - */ - @Child(name="code", type={Coding.class}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Identifying concept", formalDefinition="A code that provides the meaning for a data element according to a particular terminology." ) - protected List code; - - /** - * The default/suggested phrasing to use when prompting a human to capture the data element. - */ - @Child(name="question", type={StringType.class}, order=8, min=0, max=1) - @Description(shortDefinition="How to ask for element", formalDefinition="The default/suggested phrasing to use when prompting a human to capture the data element." ) - protected StringType question; - - /** - * Provides a complete explanation of the meaning of the data element for human readability. - */ - @Child(name="definition", type={StringType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Definition/description as narrative text", formalDefinition="Provides a complete explanation of the meaning of the data element for human readability." ) - protected StringType definition; - - /** - * Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. - */ - @Child(name="comments", type={StringType.class}, order=10, min=0, max=1) - @Description(shortDefinition="Comments about the use of this element", formalDefinition="Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc." ) - protected StringType comments; - - /** - * Explains why this element is needed and why it's been constrained as it has. - */ - @Child(name="requirements", type={StringType.class}, order=11, min=0, max=1) - @Description(shortDefinition="Why is this needed?", formalDefinition="Explains why this element is needed and why it's been constrained as it has." ) - protected StringType requirements; - - /** - * Identifies additional names by which this element might also be known. - */ - @Child(name="synonym", type={StringType.class}, order=12, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Other names", formalDefinition="Identifies additional names by which this element might also be known." ) - protected List synonym; - - /** - * The FHIR data type that is the type for this element. - */ - @Child(name="type", type={CodeType.class}, order=13, min=0, max=1) - @Description(shortDefinition="Name of Data type", formalDefinition="The FHIR data type that is the type for this element." ) - protected CodeType type; - - /** - * An sample value for this element demonstrating the type of information that would typically be captured. - */ - @Child(name="example", type={}, order=14, min=0, max=1) - @Description(shortDefinition="Example value: [as defined for type]", formalDefinition="An sample value for this element demonstrating the type of information that would typically be captured." ) - protected org.hl7.fhir.instance.model.Type example; - - /** - * Indicates the shortest length that SHALL be supported by conformant instances without truncation. - */ - @Child(name="maxLength", type={IntegerType.class}, order=15, min=0, max=1) - @Description(shortDefinition="Length for strings", formalDefinition="Indicates the shortest length that SHALL be supported by conformant instances without truncation." ) - protected IntegerType maxLength; - - /** - * Identifies the units of measure in which the data element should be captured or expressed. - */ - @Child(name="units", type={CodeableConcept.class}, order=16, min=0, max=1) - @Description(shortDefinition="Units to use for measured value", formalDefinition="Identifies the units of measure in which the data element should be captured or expressed." ) - protected CodeableConcept units; - - /** - * Binds to a value set if this element is coded (code, Coding, CodeableConcept). - */ - @Child(name="binding", type={}, order=17, min=0, max=1) - @Description(shortDefinition="ValueSet details if this is coded", formalDefinition="Binds to a value set if this element is coded (code, Coding, CodeableConcept)." ) - protected DataElementBindingComponent binding; - - /** - * Identifies a concept from an external specification that roughly corresponds to this element. - */ - @Child(name="mapping", type={}, order=18, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Map element to another set of definitions", formalDefinition="Identifies a concept from an external specification that roughly corresponds to this element." ) - protected List mapping; - - private static final long serialVersionUID = 692149082L; - - public DataElement() { - super(); - } - - public DataElement(Enumeration status) { - super(); - this.status = status; - } - - /** - * @return {@link #identifier} (The identifier that is used to identify this data element when it is referenced in a Profile, Questionnaire or an instance.) - */ - public Identifier getIdentifier() { - if (this.identifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.identifier"); - else if (Configuration.doAutoCreate()) - this.identifier = new Identifier(); - return this.identifier; - } - - public boolean hasIdentifier() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - /** - * @param value {@link #identifier} (The identifier that is used to identify this data element when it is referenced in a Profile, Questionnaire or an instance.) - */ - public DataElement setIdentifier(Identifier value) { - this.identifier = value; - return this; - } - - /** - * @return {@link #version} (The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value - */ - public StringType getVersionElement() { - if (this.version == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.version"); - else if (Configuration.doAutoCreate()) - this.version = new StringType(); - return this.version; - } - - public boolean hasVersionElement() { - return this.version != null && !this.version.isEmpty(); - } - - public boolean hasVersion() { - return this.version != null && !this.version.isEmpty(); - } - - /** - * @param value {@link #version} (The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value - */ - public DataElement setVersionElement(StringType value) { - this.version = value; - return this; - } - - /** - * @return The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually. - */ - public String getVersion() { - return this.version == null ? null : this.version.getValue(); - } - - /** - * @param value The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually. - */ - public DataElement setVersion(String value) { - if (Utilities.noString(value)) - this.version = null; - else { - if (this.version == null) - this.version = new StringType(); - this.version.setValue(value); - } - return this; - } - - /** - * @return {@link #publisher} (Details of the individual or organization who accepts responsibility for publishing the data element.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value - */ - public StringType getPublisherElement() { - if (this.publisher == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.publisher"); - else if (Configuration.doAutoCreate()) - this.publisher = new StringType(); - return this.publisher; - } - - public boolean hasPublisherElement() { - return this.publisher != null && !this.publisher.isEmpty(); - } - - public boolean hasPublisher() { - return this.publisher != null && !this.publisher.isEmpty(); - } - - /** - * @param value {@link #publisher} (Details of the individual or organization who accepts responsibility for publishing the data element.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value - */ - public DataElement setPublisherElement(StringType value) { - this.publisher = value; - return this; - } - - /** - * @return Details of the individual or organization who accepts responsibility for publishing the data element. - */ - public String getPublisher() { - return this.publisher == null ? null : this.publisher.getValue(); - } - - /** - * @param value Details of the individual or organization who accepts responsibility for publishing the data element. - */ - public DataElement setPublisher(String value) { - if (Utilities.noString(value)) - this.publisher = null; - else { - if (this.publisher == null) - this.publisher = new StringType(); - this.publisher.setValue(value); - } - return this; - } - - /** - * @return {@link #telecom} (Contact details to assist a user in finding and communicating with the publisher.) - */ - public List getTelecom() { - if (this.telecom == null) - this.telecom = new ArrayList(); - return this.telecom; - } - - public boolean hasTelecom() { - if (this.telecom == null) - return false; - for (ContactPoint item : this.telecom) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #telecom} (Contact details to assist a user in finding and communicating with the publisher.) - */ - // syntactic sugar - public ContactPoint addTelecom() { //3 - ContactPoint t = new ContactPoint(); - if (this.telecom == null) - this.telecom = new ArrayList(); - this.telecom.add(t); - return t; - } - - /** - * @return {@link #status} (The status of the data element.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of the data element.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public DataElement setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of the data element. - */ - public ResourceObservationDefStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of the data element. - */ - public DataElement setStatus(ResourceObservationDefStatus value) { - if (this.status == null) - this.status = new Enumeration(ResourceObservationDefStatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #date} (The date that this version of the data element was published.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (The date that this version of the data element was published.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DataElement setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return The date that this version of the data element was published. - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value The date that this version of the data element was published. - */ - public DataElement setDate(Date value) { - if (value == null) - this.date = null; - else { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - } - return this; - } - - /** - * @return {@link #name} (The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public DataElement setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used. - */ - public DataElement setName(String value) { - if (Utilities.noString(value)) - this.name = null; - else { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - } - return this; - } - - /** - * @return {@link #category} (A set of terms from external terminologies that may be used to assist with indexing and searching of data element definitions.) - */ - public List getCategory() { - if (this.category == null) - this.category = new ArrayList(); - return this.category; - } - - public boolean hasCategory() { - if (this.category == null) - return false; - for (CodeableConcept item : this.category) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #category} (A set of terms from external terminologies that may be used to assist with indexing and searching of data element definitions.) - */ - // syntactic sugar - public CodeableConcept addCategory() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.category == null) - this.category = new ArrayList(); - this.category.add(t); - return t; - } - - /** - * @return {@link #code} (A code that provides the meaning for a data element according to a particular terminology.) - */ - public List getCode() { - if (this.code == null) - this.code = new ArrayList(); - return this.code; - } - - public boolean hasCode() { - if (this.code == null) - return false; - for (Coding item : this.code) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #code} (A code that provides the meaning for a data element according to a particular terminology.) - */ - // syntactic sugar - public Coding addCode() { //3 - Coding t = new Coding(); - if (this.code == null) - this.code = new ArrayList(); - this.code.add(t); - return t; - } - - /** - * @return {@link #question} (The default/suggested phrasing to use when prompting a human to capture the data element.). This is the underlying object with id, value and extensions. The accessor "getQuestion" gives direct access to the value - */ - public StringType getQuestionElement() { - if (this.question == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.question"); - else if (Configuration.doAutoCreate()) - this.question = new StringType(); - return this.question; - } - - public boolean hasQuestionElement() { - return this.question != null && !this.question.isEmpty(); - } - - public boolean hasQuestion() { - return this.question != null && !this.question.isEmpty(); - } - - /** - * @param value {@link #question} (The default/suggested phrasing to use when prompting a human to capture the data element.). This is the underlying object with id, value and extensions. The accessor "getQuestion" gives direct access to the value - */ - public DataElement setQuestionElement(StringType value) { - this.question = value; - return this; - } - - /** - * @return The default/suggested phrasing to use when prompting a human to capture the data element. - */ - public String getQuestion() { - return this.question == null ? null : this.question.getValue(); - } - - /** - * @param value The default/suggested phrasing to use when prompting a human to capture the data element. - */ - public DataElement setQuestion(String value) { - if (Utilities.noString(value)) - this.question = null; - else { - if (this.question == null) - this.question = new StringType(); - this.question.setValue(value); - } - return this; - } - - /** - * @return {@link #definition} (Provides a complete explanation of the meaning of the data element for human readability.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value - */ - public StringType getDefinitionElement() { - if (this.definition == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.definition"); - else if (Configuration.doAutoCreate()) - this.definition = new StringType(); - return this.definition; - } - - public boolean hasDefinitionElement() { - return this.definition != null && !this.definition.isEmpty(); - } - - public boolean hasDefinition() { - return this.definition != null && !this.definition.isEmpty(); - } - - /** - * @param value {@link #definition} (Provides a complete explanation of the meaning of the data element for human readability.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value - */ - public DataElement setDefinitionElement(StringType value) { - this.definition = value; - return this; - } - - /** - * @return Provides a complete explanation of the meaning of the data element for human readability. - */ - public String getDefinition() { - return this.definition == null ? null : this.definition.getValue(); - } - - /** - * @param value Provides a complete explanation of the meaning of the data element for human readability. - */ - public DataElement setDefinition(String value) { - if (Utilities.noString(value)) - this.definition = null; - else { - if (this.definition == null) - this.definition = new StringType(); - this.definition.setValue(value); - } - return this; - } - - /** - * @return {@link #comments} (Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value - */ - public StringType getCommentsElement() { - if (this.comments == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.comments"); - else if (Configuration.doAutoCreate()) - this.comments = new StringType(); - return this.comments; - } - - public boolean hasCommentsElement() { - return this.comments != null && !this.comments.isEmpty(); - } - - public boolean hasComments() { - return this.comments != null && !this.comments.isEmpty(); - } - - /** - * @param value {@link #comments} (Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value - */ - public DataElement setCommentsElement(StringType value) { - this.comments = value; - return this; - } - - /** - * @return Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. - */ - public String getComments() { - return this.comments == null ? null : this.comments.getValue(); - } - - /** - * @param value Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. - */ - public DataElement setComments(String value) { - if (Utilities.noString(value)) - this.comments = null; - else { - if (this.comments == null) - this.comments = new StringType(); - this.comments.setValue(value); - } - return this; - } - - /** - * @return {@link #requirements} (Explains why this element is needed and why it's been constrained as it has.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value - */ - public StringType getRequirementsElement() { - if (this.requirements == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.requirements"); - else if (Configuration.doAutoCreate()) - this.requirements = new StringType(); - return this.requirements; - } - - public boolean hasRequirementsElement() { - return this.requirements != null && !this.requirements.isEmpty(); - } - - public boolean hasRequirements() { - return this.requirements != null && !this.requirements.isEmpty(); - } - - /** - * @param value {@link #requirements} (Explains why this element is needed and why it's been constrained as it has.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value - */ - public DataElement setRequirementsElement(StringType value) { - this.requirements = value; - return this; - } - - /** - * @return Explains why this element is needed and why it's been constrained as it has. - */ - public String getRequirements() { - return this.requirements == null ? null : this.requirements.getValue(); - } - - /** - * @param value Explains why this element is needed and why it's been constrained as it has. - */ - public DataElement setRequirements(String value) { - if (Utilities.noString(value)) - this.requirements = null; - else { - if (this.requirements == null) - this.requirements = new StringType(); - this.requirements.setValue(value); - } - return this; - } - - /** - * @return {@link #synonym} (Identifies additional names by which this element might also be known.) - */ - public List getSynonym() { - if (this.synonym == null) - this.synonym = new ArrayList(); - return this.synonym; - } - - public boolean hasSynonym() { - if (this.synonym == null) - return false; - for (StringType item : this.synonym) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #synonym} (Identifies additional names by which this element might also be known.) - */ - // syntactic sugar - public StringType addSynonymElement() {//2 - StringType t = new StringType(); - if (this.synonym == null) - this.synonym = new ArrayList(); - this.synonym.add(t); - return t; - } - - /** - * @param value {@link #synonym} (Identifies additional names by which this element might also be known.) - */ - public DataElement addSynonym(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.synonym == null) - this.synonym = new ArrayList(); - this.synonym.add(t); - return this; - } - - /** - * @param value {@link #synonym} (Identifies additional names by which this element might also be known.) - */ - public boolean hasSynonym(String value) { - if (this.synonym == null) - return false; - for (StringType v : this.synonym) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #type} (The FHIR data type that is the type for this element.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public CodeType getTypeElement() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeType(); - return this.type; - } - - public boolean hasTypeElement() { - return this.type != null && !this.type.isEmpty(); - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The FHIR data type that is the type for this element.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public DataElement setTypeElement(CodeType value) { - this.type = value; - return this; - } - - /** - * @return The FHIR data type that is the type for this element. - */ - public String getType() { - return this.type == null ? null : this.type.getValue(); - } - - /** - * @param value The FHIR data type that is the type for this element. - */ - public DataElement setType(String value) { - if (Utilities.noString(value)) - this.type = null; - else { - if (this.type == null) - this.type = new CodeType(); - this.type.setValue(value); - } - return this; - } - - /** - * @return {@link #example} (An sample value for this element demonstrating the type of information that would typically be captured.) - */ - public org.hl7.fhir.instance.model.Type getExample() { - return this.example; - } - - public boolean hasExample() { - return this.example != null && !this.example.isEmpty(); - } - - /** - * @param value {@link #example} (An sample value for this element demonstrating the type of information that would typically be captured.) - */ - public DataElement setExample(org.hl7.fhir.instance.model.Type value) { - this.example = value; - return this; - } - - /** - * @return {@link #maxLength} (Indicates the shortest length that SHALL be supported by conformant instances without truncation.). This is the underlying object with id, value and extensions. The accessor "getMaxLength" gives direct access to the value - */ - public IntegerType getMaxLengthElement() { - if (this.maxLength == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.maxLength"); - else if (Configuration.doAutoCreate()) - this.maxLength = new IntegerType(); - return this.maxLength; - } - - public boolean hasMaxLengthElement() { - return this.maxLength != null && !this.maxLength.isEmpty(); - } - - public boolean hasMaxLength() { - return this.maxLength != null && !this.maxLength.isEmpty(); - } - - /** - * @param value {@link #maxLength} (Indicates the shortest length that SHALL be supported by conformant instances without truncation.). This is the underlying object with id, value and extensions. The accessor "getMaxLength" gives direct access to the value - */ - public DataElement setMaxLengthElement(IntegerType value) { - this.maxLength = value; - return this; - } - - /** - * @return Indicates the shortest length that SHALL be supported by conformant instances without truncation. - */ - public int getMaxLength() { - return this.maxLength == null ? null : this.maxLength.getValue(); - } - - /** - * @param value Indicates the shortest length that SHALL be supported by conformant instances without truncation. - */ - public DataElement setMaxLength(int value) { - if (value == -1) - this.maxLength = null; - else { - if (this.maxLength == null) - this.maxLength = new IntegerType(); - this.maxLength.setValue(value); - } - return this; - } - - /** - * @return {@link #units} (Identifies the units of measure in which the data element should be captured or expressed.) - */ - public CodeableConcept getUnits() { - if (this.units == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.units"); - else if (Configuration.doAutoCreate()) - this.units = new CodeableConcept(); - return this.units; - } - - public boolean hasUnits() { - return this.units != null && !this.units.isEmpty(); - } - - /** - * @param value {@link #units} (Identifies the units of measure in which the data element should be captured or expressed.) - */ - public DataElement setUnits(CodeableConcept value) { - this.units = value; - return this; - } - - /** - * @return {@link #binding} (Binds to a value set if this element is coded (code, Coding, CodeableConcept).) - */ - public DataElementBindingComponent getBinding() { - if (this.binding == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DataElement.binding"); - else if (Configuration.doAutoCreate()) - this.binding = new DataElementBindingComponent(); - return this.binding; - } - - public boolean hasBinding() { - return this.binding != null && !this.binding.isEmpty(); - } - - /** - * @param value {@link #binding} (Binds to a value set if this element is coded (code, Coding, CodeableConcept).) - */ - public DataElement setBinding(DataElementBindingComponent value) { - this.binding = value; - return this; - } - - /** - * @return {@link #mapping} (Identifies a concept from an external specification that roughly corresponds to this element.) - */ - public List getMapping() { - if (this.mapping == null) - this.mapping = new ArrayList(); - return this.mapping; - } - - public boolean hasMapping() { - if (this.mapping == null) - return false; - for (DataElementMappingComponent item : this.mapping) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #mapping} (Identifies a concept from an external specification that roughly corresponds to this element.) - */ - // syntactic sugar - public DataElementMappingComponent addMapping() { //3 - DataElementMappingComponent t = new DataElementMappingComponent(); - if (this.mapping == null) - this.mapping = new ArrayList(); - this.mapping.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "The identifier that is used to identify this data element when it is referenced in a Profile, Questionnaire or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("version", "string", "The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually.", 0, java.lang.Integer.MAX_VALUE, version)); - childrenList.add(new Property("publisher", "string", "Details of the individual or organization who accepts responsibility for publishing the data element.", 0, java.lang.Integer.MAX_VALUE, publisher)); - childrenList.add(new Property("telecom", "ContactPoint", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, telecom)); - childrenList.add(new Property("status", "code", "The status of the data element.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("date", "dateTime", "The date that this version of the data element was published.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("name", "string", "The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("category", "CodeableConcept", "A set of terms from external terminologies that may be used to assist with indexing and searching of data element definitions.", 0, java.lang.Integer.MAX_VALUE, category)); - childrenList.add(new Property("code", "Coding", "A code that provides the meaning for a data element according to a particular terminology.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("question", "string", "The default/suggested phrasing to use when prompting a human to capture the data element.", 0, java.lang.Integer.MAX_VALUE, question)); - childrenList.add(new Property("definition", "string", "Provides a complete explanation of the meaning of the data element for human readability.", 0, java.lang.Integer.MAX_VALUE, definition)); - childrenList.add(new Property("comments", "string", "Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.", 0, java.lang.Integer.MAX_VALUE, comments)); - childrenList.add(new Property("requirements", "string", "Explains why this element is needed and why it's been constrained as it has.", 0, java.lang.Integer.MAX_VALUE, requirements)); - childrenList.add(new Property("synonym", "string", "Identifies additional names by which this element might also be known.", 0, java.lang.Integer.MAX_VALUE, synonym)); - childrenList.add(new Property("type", "code", "The FHIR data type that is the type for this element.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("example[x]", "*", "An sample value for this element demonstrating the type of information that would typically be captured.", 0, java.lang.Integer.MAX_VALUE, example)); - childrenList.add(new Property("maxLength", "integer", "Indicates the shortest length that SHALL be supported by conformant instances without truncation.", 0, java.lang.Integer.MAX_VALUE, maxLength)); - childrenList.add(new Property("units", "CodeableConcept", "Identifies the units of measure in which the data element should be captured or expressed.", 0, java.lang.Integer.MAX_VALUE, units)); - childrenList.add(new Property("binding", "", "Binds to a value set if this element is coded (code, Coding, CodeableConcept).", 0, java.lang.Integer.MAX_VALUE, binding)); - childrenList.add(new Property("mapping", "", "Identifies a concept from an external specification that roughly corresponds to this element.", 0, java.lang.Integer.MAX_VALUE, mapping)); - } - - public DataElement copy() { - DataElement dst = new DataElement(); - copyValues(dst); - dst.identifier = identifier == null ? null : identifier.copy(); - dst.version = version == null ? null : version.copy(); - dst.publisher = publisher == null ? null : publisher.copy(); - if (telecom != null) { - dst.telecom = new ArrayList(); - for (ContactPoint i : telecom) - dst.telecom.add(i.copy()); - }; - dst.status = status == null ? null : status.copy(); - dst.date = date == null ? null : date.copy(); - dst.name = name == null ? null : name.copy(); - if (category != null) { - dst.category = new ArrayList(); - for (CodeableConcept i : category) - dst.category.add(i.copy()); - }; - if (code != null) { - dst.code = new ArrayList(); - for (Coding i : code) - dst.code.add(i.copy()); - }; - dst.question = question == null ? null : question.copy(); - dst.definition = definition == null ? null : definition.copy(); - dst.comments = comments == null ? null : comments.copy(); - dst.requirements = requirements == null ? null : requirements.copy(); - if (synonym != null) { - dst.synonym = new ArrayList(); - for (StringType i : synonym) - dst.synonym.add(i.copy()); - }; - dst.type = type == null ? null : type.copy(); - dst.example = example == null ? null : example.copy(); - dst.maxLength = maxLength == null ? null : maxLength.copy(); - dst.units = units == null ? null : units.copy(); - dst.binding = binding == null ? null : binding.copy(); - if (mapping != null) { - dst.mapping = new ArrayList(); - for (DataElementMappingComponent i : mapping) - dst.mapping.add(i.copy()); - }; - return dst; - } - - protected DataElement typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (version == null || version.isEmpty()) - && (publisher == null || publisher.isEmpty()) && (telecom == null || telecom.isEmpty()) && (status == null || status.isEmpty()) - && (date == null || date.isEmpty()) && (name == null || name.isEmpty()) && (category == null || category.isEmpty()) - && (code == null || code.isEmpty()) && (question == null || question.isEmpty()) && (definition == null || definition.isEmpty()) - && (comments == null || comments.isEmpty()) && (requirements == null || requirements.isEmpty()) - && (synonym == null || synonym.isEmpty()) && (type == null || type.isEmpty()) && (example == null || example.isEmpty()) - && (maxLength == null || maxLength.isEmpty()) && (units == null || units.isEmpty()) && (binding == null || binding.isEmpty()) - && (mapping == null || mapping.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.DataElement; - } - - @SearchParamDefinition(name="category", path="DataElement.category", description="A category assigned to the data element (server may choose to do subsumption)", type="token" ) - public static final String SP_CATEGORY = "category"; - @SearchParamDefinition(name="status", path="DataElement.status", description="The current status of the data element", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="description", path="DataElement.definition", description="Text search in the description of the data element", type="string" ) - public static final String SP_DESCRIPTION = "description"; - @SearchParamDefinition(name="name", path="DataElement.name", description="Name of the data element", type="string" ) - public static final String SP_NAME = "name"; - @SearchParamDefinition(name="code", path="DataElement.code", description="A code for the data element (server may choose to do subsumption)", type="token" ) - public static final String SP_CODE = "code"; - @SearchParamDefinition(name="date", path="DataElement.date", description="The data element publication date", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="identifier", path="DataElement.identifier", description="The identifier of the data element", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - @SearchParamDefinition(name="publisher", path="DataElement.publisher", description="Name of the publisher of the data element", type="string" ) - public static final String SP_PUBLISHER = "publisher"; - @SearchParamDefinition(name="version", path="DataElement.version", description="The version identifier of the data element", type="string" ) - public static final String SP_VERSION = "version"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * The formal description of a single piece of information that can be gathered and reported. + */ +@ResourceDef(name="DataElement", profile="http://hl7.org/fhir/Profile/DataElement") +public class DataElement extends DomainResource { + + public enum ResourceObservationDefStatus { + /** + * This data element is still under development. + */ + DRAFT, + /** + * This data element is ready for normal use. + */ + ACTIVE, + /** + * This data element has been deprecated, withdrawn or superseded and should no longer be used. + */ + RETIRED, + /** + * added to help the parsers + */ + NULL; + public static ResourceObservationDefStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("draft".equals(codeString)) + return DRAFT; + if ("active".equals(codeString)) + return ACTIVE; + if ("retired".equals(codeString)) + return RETIRED; + throw new Exception("Unknown ResourceObservationDefStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case DRAFT: return "draft"; + case ACTIVE: return "active"; + case RETIRED: return "retired"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case DRAFT: return ""; + case ACTIVE: return ""; + case RETIRED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case DRAFT: return "This data element is still under development."; + case ACTIVE: return "This data element is ready for normal use."; + case RETIRED: return "This data element has been deprecated, withdrawn or superseded and should no longer be used."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case DRAFT: return "draft"; + case ACTIVE: return "active"; + case RETIRED: return "retired"; + default: return "?"; + } + } + } + + public static class ResourceObservationDefStatusEnumFactory implements EnumFactory { + public ResourceObservationDefStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("draft".equals(codeString)) + return ResourceObservationDefStatus.DRAFT; + if ("active".equals(codeString)) + return ResourceObservationDefStatus.ACTIVE; + if ("retired".equals(codeString)) + return ResourceObservationDefStatus.RETIRED; + throw new IllegalArgumentException("Unknown ResourceObservationDefStatus code '"+codeString+"'"); + } + public String toCode(ResourceObservationDefStatus code) { + if (code == ResourceObservationDefStatus.DRAFT) + return "draft"; + if (code == ResourceObservationDefStatus.ACTIVE) + return "active"; + if (code == ResourceObservationDefStatus.RETIRED) + return "retired"; + return "?"; + } + } + + public enum DataelementGranularity { + /** + * The data element is sufficiently well-constrained that multiple pieces of data captured according to the constraints of the data element will be comparable (though in some cases, a degree of automated conversion/normalization may be required). + */ + COMPARABLE, + /** + * The data element is fully specified down to a single value set, single unit of measure, single data type, etc. Multiple pieces of data associated with this data element are fully compareable. + */ + FULLYSPECIFIED, + /** + * The data element allows multiple units of measure having equivalent meaning. E.g. "cc" (cubic centimeter) and "mL". + */ + EQUIVALENT, + /** + * The data element allows multiple units of measure that are convertable between each other (e.g. Inches and centimeters) and/or allows data to be captured in multiple value sets for which a known mapping exists allowing conversion of meaning. + */ + CONVERTABLE, + /** + * A convertable data element where unit conversions are different only by a power of 10. E.g. g, mg, kg. + */ + SCALEABLE, + /** + * The data element is unconstrained in units, choice of data types and/or choice of vocabulary such that automated comparison of data captured using the data element is not possible. + */ + FLEXIBLE, + /** + * added to help the parsers + */ + NULL; + public static DataelementGranularity fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("comparable".equals(codeString)) + return COMPARABLE; + if ("fully-specified".equals(codeString)) + return FULLYSPECIFIED; + if ("equivalent".equals(codeString)) + return EQUIVALENT; + if ("convertable".equals(codeString)) + return CONVERTABLE; + if ("scaleable".equals(codeString)) + return SCALEABLE; + if ("flexible".equals(codeString)) + return FLEXIBLE; + throw new Exception("Unknown DataelementGranularity code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case COMPARABLE: return "comparable"; + case FULLYSPECIFIED: return "fully-specified"; + case EQUIVALENT: return "equivalent"; + case CONVERTABLE: return "convertable"; + case SCALEABLE: return "scaleable"; + case FLEXIBLE: return "flexible"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case COMPARABLE: return ""; + case FULLYSPECIFIED: return ""; + case EQUIVALENT: return ""; + case CONVERTABLE: return ""; + case SCALEABLE: return ""; + case FLEXIBLE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case COMPARABLE: return "The data element is sufficiently well-constrained that multiple pieces of data captured according to the constraints of the data element will be comparable (though in some cases, a degree of automated conversion/normalization may be required)."; + case FULLYSPECIFIED: return "The data element is fully specified down to a single value set, single unit of measure, single data type, etc. Multiple pieces of data associated with this data element are fully compareable."; + case EQUIVALENT: return "The data element allows multiple units of measure having equivalent meaning. E.g. 'cc' (cubic centimeter) and 'mL'."; + case CONVERTABLE: return "The data element allows multiple units of measure that are convertable between each other (e.g. Inches and centimeters) and/or allows data to be captured in multiple value sets for which a known mapping exists allowing conversion of meaning."; + case SCALEABLE: return "A convertable data element where unit conversions are different only by a power of 10. E.g. g, mg, kg."; + case FLEXIBLE: return "The data element is unconstrained in units, choice of data types and/or choice of vocabulary such that automated comparison of data captured using the data element is not possible."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case COMPARABLE: return "comparable"; + case FULLYSPECIFIED: return "fully-specified"; + case EQUIVALENT: return "equivalent"; + case CONVERTABLE: return "convertable"; + case SCALEABLE: return "scaleable"; + case FLEXIBLE: return "flexible"; + default: return "?"; + } + } + } + + public static class DataelementGranularityEnumFactory implements EnumFactory { + public DataelementGranularity fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("comparable".equals(codeString)) + return DataelementGranularity.COMPARABLE; + if ("fully-specified".equals(codeString)) + return DataelementGranularity.FULLYSPECIFIED; + if ("equivalent".equals(codeString)) + return DataelementGranularity.EQUIVALENT; + if ("convertable".equals(codeString)) + return DataelementGranularity.CONVERTABLE; + if ("scaleable".equals(codeString)) + return DataelementGranularity.SCALEABLE; + if ("flexible".equals(codeString)) + return DataelementGranularity.FLEXIBLE; + throw new IllegalArgumentException("Unknown DataelementGranularity code '"+codeString+"'"); + } + public String toCode(DataelementGranularity code) { + if (code == DataelementGranularity.COMPARABLE) + return "comparable"; + if (code == DataelementGranularity.FULLYSPECIFIED) + return "fully-specified"; + if (code == DataelementGranularity.EQUIVALENT) + return "equivalent"; + if (code == DataelementGranularity.CONVERTABLE) + return "convertable"; + if (code == DataelementGranularity.SCALEABLE) + return "scaleable"; + if (code == DataelementGranularity.FLEXIBLE) + return "flexible"; + return "?"; + } + } + + public enum BindingConformance { + /** + * Only codes in the specified set are allowed. If the binding is extensible, other codes may be used for concepts not covered by the bound set of codes. + */ + REQUIRED, + /** + * For greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in derived profiles and implementations if necessary without being considered non-conformant. + */ + PREFERRED, + /** + * The codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use nor any assertion that the provided values are sufficient to meet implementation needs. + */ + EXAMPLE, + /** + * added to help the parsers + */ + NULL; + public static BindingConformance fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("required".equals(codeString)) + return REQUIRED; + if ("preferred".equals(codeString)) + return PREFERRED; + if ("example".equals(codeString)) + return EXAMPLE; + throw new Exception("Unknown BindingConformance code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case REQUIRED: return "required"; + case PREFERRED: return "preferred"; + case EXAMPLE: return "example"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case REQUIRED: return ""; + case PREFERRED: return ""; + case EXAMPLE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case REQUIRED: return "Only codes in the specified set are allowed. If the binding is extensible, other codes may be used for concepts not covered by the bound set of codes."; + case PREFERRED: return "For greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in derived profiles and implementations if necessary without being considered non-conformant."; + case EXAMPLE: return "The codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use nor any assertion that the provided values are sufficient to meet implementation needs."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case REQUIRED: return "required"; + case PREFERRED: return "preferred"; + case EXAMPLE: return "example"; + default: return "?"; + } + } + } + + public static class BindingConformanceEnumFactory implements EnumFactory { + public BindingConformance fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("required".equals(codeString)) + return BindingConformance.REQUIRED; + if ("preferred".equals(codeString)) + return BindingConformance.PREFERRED; + if ("example".equals(codeString)) + return BindingConformance.EXAMPLE; + throw new IllegalArgumentException("Unknown BindingConformance code '"+codeString+"'"); + } + public String toCode(BindingConformance code) { + if (code == BindingConformance.REQUIRED) + return "required"; + if (code == BindingConformance.PREFERRED) + return "preferred"; + if (code == BindingConformance.EXAMPLE) + return "example"; + return "?"; + } + } + + @Block() + public static class DataElementBindingComponent extends BackboneElement { + /** + * If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone. + */ + @Child(name="isExtensible", type={BooleanType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Can additional codes be used?", formalDefinition="If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone." ) + protected BooleanType isExtensible; + + /** + * Indicates the degree of conformance expectations associated with this binding. + */ + @Child(name="conformance", type={CodeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="required | preferred | example", formalDefinition="Indicates the degree of conformance expectations associated with this binding." ) + protected Enumeration conformance; + + /** + * Describes the intended use of this particular set of codes. + */ + @Child(name="description", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Human explanation of the value set", formalDefinition="Describes the intended use of this particular set of codes." ) + protected StringType description; + + /** + * Points to the value set that identifies the set of codes to be used. + */ + @Child(name="valueSet", type={ValueSet.class}, order=4, min=0, max=1) + @Description(shortDefinition="Source of value set", formalDefinition="Points to the value set that identifies the set of codes to be used." ) + protected Reference valueSet; + + /** + * The actual object that is the target of the reference (Points to the value set that identifies the set of codes to be used.) + */ + protected ValueSet valueSetTarget; + + private static final long serialVersionUID = -1297440999L; + + public DataElementBindingComponent() { + super(); + } + + public DataElementBindingComponent(BooleanType isExtensible) { + super(); + this.isExtensible = isExtensible; + } + + /** + * @return {@link #isExtensible} (If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.). This is the underlying object with id, value and extensions. The accessor "getIsExtensible" gives direct access to the value + */ + public BooleanType getIsExtensibleElement() { + if (this.isExtensible == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElementBindingComponent.isExtensible"); + else if (Configuration.doAutoCreate()) + this.isExtensible = new BooleanType(); // bb + return this.isExtensible; + } + + public boolean hasIsExtensibleElement() { + return this.isExtensible != null && !this.isExtensible.isEmpty(); + } + + public boolean hasIsExtensible() { + return this.isExtensible != null && !this.isExtensible.isEmpty(); + } + + /** + * @param value {@link #isExtensible} (If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.). This is the underlying object with id, value and extensions. The accessor "getIsExtensible" gives direct access to the value + */ + public DataElementBindingComponent setIsExtensibleElement(BooleanType value) { + this.isExtensible = value; + return this; + } + + /** + * @return If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone. + */ + public boolean getIsExtensible() { + return this.isExtensible == null ? false : this.isExtensible.getValue(); + } + + /** + * @param value If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone. + */ + public DataElementBindingComponent setIsExtensible(boolean value) { + if (this.isExtensible == null) + this.isExtensible = new BooleanType(); + this.isExtensible.setValue(value); + return this; + } + + /** + * @return {@link #conformance} (Indicates the degree of conformance expectations associated with this binding.). This is the underlying object with id, value and extensions. The accessor "getConformance" gives direct access to the value + */ + public Enumeration getConformanceElement() { + if (this.conformance == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElementBindingComponent.conformance"); + else if (Configuration.doAutoCreate()) + this.conformance = new Enumeration(new BindingConformanceEnumFactory()); // bb + return this.conformance; + } + + public boolean hasConformanceElement() { + return this.conformance != null && !this.conformance.isEmpty(); + } + + public boolean hasConformance() { + return this.conformance != null && !this.conformance.isEmpty(); + } + + /** + * @param value {@link #conformance} (Indicates the degree of conformance expectations associated with this binding.). This is the underlying object with id, value and extensions. The accessor "getConformance" gives direct access to the value + */ + public DataElementBindingComponent setConformanceElement(Enumeration value) { + this.conformance = value; + return this; + } + + /** + * @return Indicates the degree of conformance expectations associated with this binding. + */ + public BindingConformance getConformance() { + return this.conformance == null ? null : this.conformance.getValue(); + } + + /** + * @param value Indicates the degree of conformance expectations associated with this binding. + */ + public DataElementBindingComponent setConformance(BindingConformance value) { + if (value == null) + this.conformance = null; + else { + if (this.conformance == null) + this.conformance = new Enumeration(new BindingConformanceEnumFactory()); + this.conformance.setValue(value); + } + return this; + } + + /** + * @return {@link #description} (Describes the intended use of this particular set of codes.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElementBindingComponent.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Describes the intended use of this particular set of codes.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public DataElementBindingComponent setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Describes the intended use of this particular set of codes. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Describes the intended use of this particular set of codes. + */ + public DataElementBindingComponent setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #valueSet} (Points to the value set that identifies the set of codes to be used.) + */ + public Reference getValueSet() { + if (this.valueSet == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElementBindingComponent.valueSet"); + else if (Configuration.doAutoCreate()) + this.valueSet = new Reference(); // cc + return this.valueSet; + } + + public boolean hasValueSet() { + return this.valueSet != null && !this.valueSet.isEmpty(); + } + + /** + * @param value {@link #valueSet} (Points to the value set that identifies the set of codes to be used.) + */ + public DataElementBindingComponent setValueSet(Reference value) { + this.valueSet = value; + return this; + } + + /** + * @return {@link #valueSet} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Points to the value set that identifies the set of codes to be used.) + */ + public ValueSet getValueSetTarget() { + if (this.valueSetTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElementBindingComponent.valueSet"); + else if (Configuration.doAutoCreate()) + this.valueSetTarget = new ValueSet(); // aa + return this.valueSetTarget; + } + + /** + * @param value {@link #valueSet} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Points to the value set that identifies the set of codes to be used.) + */ + public DataElementBindingComponent setValueSetTarget(ValueSet value) { + this.valueSetTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("isExtensible", "boolean", "If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.", 0, java.lang.Integer.MAX_VALUE, isExtensible)); + childrenList.add(new Property("conformance", "code", "Indicates the degree of conformance expectations associated with this binding.", 0, java.lang.Integer.MAX_VALUE, conformance)); + childrenList.add(new Property("description", "string", "Describes the intended use of this particular set of codes.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("valueSet", "Reference(ValueSet)", "Points to the value set that identifies the set of codes to be used.", 0, java.lang.Integer.MAX_VALUE, valueSet)); + } + + public DataElementBindingComponent copy() { + DataElementBindingComponent dst = new DataElementBindingComponent(); + copyValues(dst); + dst.isExtensible = isExtensible == null ? null : isExtensible.copy(); + dst.conformance = conformance == null ? null : conformance.copy(); + dst.description = description == null ? null : description.copy(); + dst.valueSet = valueSet == null ? null : valueSet.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DataElementBindingComponent)) + return false; + DataElementBindingComponent o = (DataElementBindingComponent) other; + return compareDeep(isExtensible, o.isExtensible, true) && compareDeep(conformance, o.conformance, true) + && compareDeep(description, o.description, true) && compareDeep(valueSet, o.valueSet, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DataElementBindingComponent)) + return false; + DataElementBindingComponent o = (DataElementBindingComponent) other; + return compareValues(isExtensible, o.isExtensible, true) && compareValues(conformance, o.conformance, true) + && compareValues(description, o.description, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (isExtensible == null || isExtensible.isEmpty()) && (conformance == null || conformance.isEmpty()) + && (description == null || description.isEmpty()) && (valueSet == null || valueSet.isEmpty()) + ; + } + + } + + @Block() + public static class DataElementMappingComponent extends BackboneElement { + /** + * A URI that identifies the specification that this mapping is expressed to. + */ + @Child(name="uri", type={UriType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Identifies what this mapping refers to", formalDefinition="A URI that identifies the specification that this mapping is expressed to." ) + protected UriType uri; + + /** + * If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element. + */ + @Child(name="definitional", type={BooleanType.class}, order=2, min=0, max=1) + @Description(shortDefinition="True if mapping defines element", formalDefinition="If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element." ) + protected BooleanType definitional; + + /** + * A name for the specification that is being mapped to. + */ + @Child(name="name", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Names what this mapping refers to", formalDefinition="A name for the specification that is being mapped to." ) + protected StringType name; + + /** + * Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. + */ + @Child(name="comments", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Versions, Issues, Scope limitations etc", formalDefinition="Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage." ) + protected StringType comments; + + /** + * Expresses what part of the target specification corresponds to this element. + */ + @Child(name="map", type={StringType.class}, order=5, min=1, max=1) + @Description(shortDefinition="Details of the mapping", formalDefinition="Expresses what part of the target specification corresponds to this element." ) + protected StringType map; + + private static final long serialVersionUID = 797049346L; + + public DataElementMappingComponent() { + super(); + } + + public DataElementMappingComponent(StringType map) { + super(); + this.map = map; + } + + /** + * @return {@link #uri} (A URI that identifies the specification that this mapping is expressed to.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value + */ + public UriType getUriElement() { + if (this.uri == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElementMappingComponent.uri"); + else if (Configuration.doAutoCreate()) + this.uri = new UriType(); // bb + return this.uri; + } + + public boolean hasUriElement() { + return this.uri != null && !this.uri.isEmpty(); + } + + public boolean hasUri() { + return this.uri != null && !this.uri.isEmpty(); + } + + /** + * @param value {@link #uri} (A URI that identifies the specification that this mapping is expressed to.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value + */ + public DataElementMappingComponent setUriElement(UriType value) { + this.uri = value; + return this; + } + + /** + * @return A URI that identifies the specification that this mapping is expressed to. + */ + public String getUri() { + return this.uri == null ? null : this.uri.getValue(); + } + + /** + * @param value A URI that identifies the specification that this mapping is expressed to. + */ + public DataElementMappingComponent setUri(String value) { + if (Utilities.noString(value)) + this.uri = null; + else { + if (this.uri == null) + this.uri = new UriType(); + this.uri.setValue(value); + } + return this; + } + + /** + * @return {@link #definitional} (If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element.). This is the underlying object with id, value and extensions. The accessor "getDefinitional" gives direct access to the value + */ + public BooleanType getDefinitionalElement() { + if (this.definitional == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElementMappingComponent.definitional"); + else if (Configuration.doAutoCreate()) + this.definitional = new BooleanType(); // bb + return this.definitional; + } + + public boolean hasDefinitionalElement() { + return this.definitional != null && !this.definitional.isEmpty(); + } + + public boolean hasDefinitional() { + return this.definitional != null && !this.definitional.isEmpty(); + } + + /** + * @param value {@link #definitional} (If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element.). This is the underlying object with id, value and extensions. The accessor "getDefinitional" gives direct access to the value + */ + public DataElementMappingComponent setDefinitionalElement(BooleanType value) { + this.definitional = value; + return this; + } + + /** + * @return If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element. + */ + public boolean getDefinitional() { + return this.definitional == null ? false : this.definitional.getValue(); + } + + /** + * @param value If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element. + */ + public DataElementMappingComponent setDefinitional(boolean value) { + if (this.definitional == null) + this.definitional = new BooleanType(); + this.definitional.setValue(value); + return this; + } + + /** + * @return {@link #name} (A name for the specification that is being mapped to.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElementMappingComponent.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (A name for the specification that is being mapped to.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public DataElementMappingComponent setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return A name for the specification that is being mapped to. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value A name for the specification that is being mapped to. + */ + public DataElementMappingComponent setName(String value) { + if (Utilities.noString(value)) + this.name = null; + else { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + } + return this; + } + + /** + * @return {@link #comments} (Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value + */ + public StringType getCommentsElement() { + if (this.comments == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElementMappingComponent.comments"); + else if (Configuration.doAutoCreate()) + this.comments = new StringType(); // bb + return this.comments; + } + + public boolean hasCommentsElement() { + return this.comments != null && !this.comments.isEmpty(); + } + + public boolean hasComments() { + return this.comments != null && !this.comments.isEmpty(); + } + + /** + * @param value {@link #comments} (Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value + */ + public DataElementMappingComponent setCommentsElement(StringType value) { + this.comments = value; + return this; + } + + /** + * @return Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. + */ + public String getComments() { + return this.comments == null ? null : this.comments.getValue(); + } + + /** + * @param value Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. + */ + public DataElementMappingComponent setComments(String value) { + if (Utilities.noString(value)) + this.comments = null; + else { + if (this.comments == null) + this.comments = new StringType(); + this.comments.setValue(value); + } + return this; + } + + /** + * @return {@link #map} (Expresses what part of the target specification corresponds to this element.). This is the underlying object with id, value and extensions. The accessor "getMap" gives direct access to the value + */ + public StringType getMapElement() { + if (this.map == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElementMappingComponent.map"); + else if (Configuration.doAutoCreate()) + this.map = new StringType(); // bb + return this.map; + } + + public boolean hasMapElement() { + return this.map != null && !this.map.isEmpty(); + } + + public boolean hasMap() { + return this.map != null && !this.map.isEmpty(); + } + + /** + * @param value {@link #map} (Expresses what part of the target specification corresponds to this element.). This is the underlying object with id, value and extensions. The accessor "getMap" gives direct access to the value + */ + public DataElementMappingComponent setMapElement(StringType value) { + this.map = value; + return this; + } + + /** + * @return Expresses what part of the target specification corresponds to this element. + */ + public String getMap() { + return this.map == null ? null : this.map.getValue(); + } + + /** + * @param value Expresses what part of the target specification corresponds to this element. + */ + public DataElementMappingComponent setMap(String value) { + if (this.map == null) + this.map = new StringType(); + this.map.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("uri", "uri", "A URI that identifies the specification that this mapping is expressed to.", 0, java.lang.Integer.MAX_VALUE, uri)); + childrenList.add(new Property("definitional", "boolean", "If true, indicates that the official meaning of the data element is exactly equivalent to the mapped element.", 0, java.lang.Integer.MAX_VALUE, definitional)); + childrenList.add(new Property("name", "string", "A name for the specification that is being mapped to.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("comments", "string", "Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.", 0, java.lang.Integer.MAX_VALUE, comments)); + childrenList.add(new Property("map", "string", "Expresses what part of the target specification corresponds to this element.", 0, java.lang.Integer.MAX_VALUE, map)); + } + + public DataElementMappingComponent copy() { + DataElementMappingComponent dst = new DataElementMappingComponent(); + copyValues(dst); + dst.uri = uri == null ? null : uri.copy(); + dst.definitional = definitional == null ? null : definitional.copy(); + dst.name = name == null ? null : name.copy(); + dst.comments = comments == null ? null : comments.copy(); + dst.map = map == null ? null : map.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DataElementMappingComponent)) + return false; + DataElementMappingComponent o = (DataElementMappingComponent) other; + return compareDeep(uri, o.uri, true) && compareDeep(definitional, o.definitional, true) && compareDeep(name, o.name, true) + && compareDeep(comments, o.comments, true) && compareDeep(map, o.map, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DataElementMappingComponent)) + return false; + DataElementMappingComponent o = (DataElementMappingComponent) other; + return compareValues(uri, o.uri, true) && compareValues(definitional, o.definitional, true) && compareValues(name, o.name, true) + && compareValues(comments, o.comments, true) && compareValues(map, o.map, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (uri == null || uri.isEmpty()) && (definitional == null || definitional.isEmpty()) + && (name == null || name.isEmpty()) && (comments == null || comments.isEmpty()) && (map == null || map.isEmpty()) + ; + } + + } + + /** + * The identifier that is used to identify this data element when it is referenced in a Profile, Questionnaire or an instance. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=1) + @Description(shortDefinition="Logical id to reference this data element", formalDefinition="The identifier that is used to identify this data element when it is referenced in a Profile, Questionnaire or an instance." ) + protected Identifier identifier; + + /** + * The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually. + */ + @Child(name="version", type={StringType.class}, order=0, min=0, max=1) + @Description(shortDefinition="Logical id for this version of the data element", formalDefinition="The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually." ) + protected StringType version; + + /** + * Details of the individual or organization who accepts responsibility for publishing the data element. + */ + @Child(name="publisher", type={StringType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Name of the publisher (Organization or individual)", formalDefinition="Details of the individual or organization who accepts responsibility for publishing the data element." ) + protected StringType publisher; + + /** + * Contact details to assist a user in finding and communicating with the publisher. + */ + @Child(name="telecom", type={ContactPoint.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Contact information of the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." ) + protected List telecom; + + /** + * The status of the data element. + */ + @Child(name="status", type={CodeType.class}, order=3, min=1, max=1) + @Description(shortDefinition="draft | active | retired", formalDefinition="The status of the data element." ) + protected Enumeration status; + + /** + * The date that the status for this business version of the data element became effective. (I.e. Date the draft was created, date element became active or date element became retired). + */ + @Child(name="date", type={DateTimeType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Date for this version of the data element", formalDefinition="The date that the status for this business version of the data element became effective. (I.e. Date the draft was created, date element became active or date element became retired)." ) + protected DateTimeType date; + + /** + * The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used. + */ + @Child(name="name", type={StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Descriptive label for this element definition", formalDefinition="The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used." ) + protected StringType name; + + /** + * A set of terms from external terminologies that may be used to assist with indexing and searching of data element definitions. + */ + @Child(name="category", type={CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Assist with indexing and finding", formalDefinition="A set of terms from external terminologies that may be used to assist with indexing and searching of data element definitions." ) + protected List category; + + /** + * Identifies how precise the data element is in its definition. + */ + @Child(name="granularity", type={CodeType.class}, order=7, min=0, max=1) + @Description(shortDefinition="comparable | fully-specified | equivalent | convertable | scaleable | flexible", formalDefinition="Identifies how precise the data element is in its definition." ) + protected Enumeration granularity; + + /** + * A code that provides the meaning for a data element according to a particular terminology. + */ + @Child(name="code", type={Coding.class}, order=8, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Identifying concept", formalDefinition="A code that provides the meaning for a data element according to a particular terminology." ) + protected List code; + + /** + * The default/suggested phrasing to use when prompting a human to capture the data element in question form (e.g. In a survey). + */ + @Child(name="question", type={StringType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Prompt for element phrased as question", formalDefinition="The default/suggested phrasing to use when prompting a human to capture the data element in question form (e.g. In a survey)." ) + protected StringType question; + + /** + * The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form. + */ + @Child(name="label", type={StringType.class}, order=10, min=0, max=1) + @Description(shortDefinition="Name for element to display with or prompt for element", formalDefinition="The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form." ) + protected StringType label; + + /** + * Provides a complete explanation of the meaning of the data element for human readability. + */ + @Child(name="definition", type={StringType.class}, order=11, min=0, max=1) + @Description(shortDefinition="Definition/description as narrative text", formalDefinition="Provides a complete explanation of the meaning of the data element for human readability." ) + protected StringType definition; + + /** + * Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. + */ + @Child(name="comments", type={StringType.class}, order=12, min=0, max=1) + @Description(shortDefinition="Comments about the use of this element", formalDefinition="Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc." ) + protected StringType comments; + + /** + * Explains why this element is needed and why it's been constrained as it has. + */ + @Child(name="requirements", type={StringType.class}, order=13, min=0, max=1) + @Description(shortDefinition="Why is this needed?", formalDefinition="Explains why this element is needed and why it's been constrained as it has." ) + protected StringType requirements; + + /** + * Identifies additional names by which this element might also be known. + */ + @Child(name="synonym", type={StringType.class}, order=14, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Other names", formalDefinition="Identifies additional names by which this element might also be known." ) + protected List synonym; + + /** + * The FHIR data type that is the type for data that corresponds to this data element. + */ + @Child(name="type", type={CodeType.class}, order=15, min=0, max=1) + @Description(shortDefinition="Name of Data type", formalDefinition="The FHIR data type that is the type for data that corresponds to this data element." ) + protected CodeType type; + + /** + * A sample value for this element demonstrating the type of information that would typically be captured. + */ + @Child(name="example", type={}, order=16, min=0, max=1) + @Description(shortDefinition="Example value: [as defined for type]", formalDefinition="A sample value for this element demonstrating the type of information that would typically be captured." ) + protected org.hl7.fhir.instance.model.Type example; + + /** + * Indicates the shortest length that SHALL be supported by conformant instances without truncation. + */ + @Child(name="maxLength", type={IntegerType.class}, order=17, min=0, max=1) + @Description(shortDefinition="Length for strings", formalDefinition="Indicates the shortest length that SHALL be supported by conformant instances without truncation." ) + protected IntegerType maxLength; + + /** + * Identifies the units of measure in which the data element should be captured or expressed. + */ + @Child(name="units", type={CodeableConcept.class, ValueSet.class}, order=18, min=0, max=1) + @Description(shortDefinition="Units to use for measured value", formalDefinition="Identifies the units of measure in which the data element should be captured or expressed." ) + protected Type units; + + /** + * Binds to a value set if this element is coded (code, Coding, CodeableConcept). + */ + @Child(name="binding", type={}, order=19, min=0, max=1) + @Description(shortDefinition="ValueSet details if this is coded", formalDefinition="Binds to a value set if this element is coded (code, Coding, CodeableConcept)." ) + protected DataElementBindingComponent binding; + + /** + * Identifies a concept from an external specification that roughly corresponds to this element. + */ + @Child(name="mapping", type={}, order=20, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Map element to another set of definitions", formalDefinition="Identifies a concept from an external specification that roughly corresponds to this element." ) + protected List mapping; + + private static final long serialVersionUID = 1810868955L; + + public DataElement() { + super(); + } + + public DataElement(Enumeration status) { + super(); + this.status = status; + } + + /** + * @return {@link #identifier} (The identifier that is used to identify this data element when it is referenced in a Profile, Questionnaire or an instance.) + */ + public Identifier getIdentifier() { + if (this.identifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.identifier"); + else if (Configuration.doAutoCreate()) + this.identifier = new Identifier(); // cc + return this.identifier; + } + + public boolean hasIdentifier() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + /** + * @param value {@link #identifier} (The identifier that is used to identify this data element when it is referenced in a Profile, Questionnaire or an instance.) + */ + public DataElement setIdentifier(Identifier value) { + this.identifier = value; + return this; + } + + /** + * @return {@link #version} (The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value + */ + public StringType getVersionElement() { + if (this.version == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.version"); + else if (Configuration.doAutoCreate()) + this.version = new StringType(); // bb + return this.version; + } + + public boolean hasVersionElement() { + return this.version != null && !this.version.isEmpty(); + } + + public boolean hasVersion() { + return this.version != null && !this.version.isEmpty(); + } + + /** + * @param value {@link #version} (The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value + */ + public DataElement setVersionElement(StringType value) { + this.version = value; + return this; + } + + /** + * @return The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually. + */ + public String getVersion() { + return this.version == null ? null : this.version.getValue(); + } + + /** + * @param value The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually. + */ + public DataElement setVersion(String value) { + if (Utilities.noString(value)) + this.version = null; + else { + if (this.version == null) + this.version = new StringType(); + this.version.setValue(value); + } + return this; + } + + /** + * @return {@link #publisher} (Details of the individual or organization who accepts responsibility for publishing the data element.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value + */ + public StringType getPublisherElement() { + if (this.publisher == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.publisher"); + else if (Configuration.doAutoCreate()) + this.publisher = new StringType(); // bb + return this.publisher; + } + + public boolean hasPublisherElement() { + return this.publisher != null && !this.publisher.isEmpty(); + } + + public boolean hasPublisher() { + return this.publisher != null && !this.publisher.isEmpty(); + } + + /** + * @param value {@link #publisher} (Details of the individual or organization who accepts responsibility for publishing the data element.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value + */ + public DataElement setPublisherElement(StringType value) { + this.publisher = value; + return this; + } + + /** + * @return Details of the individual or organization who accepts responsibility for publishing the data element. + */ + public String getPublisher() { + return this.publisher == null ? null : this.publisher.getValue(); + } + + /** + * @param value Details of the individual or organization who accepts responsibility for publishing the data element. + */ + public DataElement setPublisher(String value) { + if (Utilities.noString(value)) + this.publisher = null; + else { + if (this.publisher == null) + this.publisher = new StringType(); + this.publisher.setValue(value); + } + return this; + } + + /** + * @return {@link #telecom} (Contact details to assist a user in finding and communicating with the publisher.) + */ + public List getTelecom() { + if (this.telecom == null) + this.telecom = new ArrayList(); + return this.telecom; + } + + public boolean hasTelecom() { + if (this.telecom == null) + return false; + for (ContactPoint item : this.telecom) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #telecom} (Contact details to assist a user in finding and communicating with the publisher.) + */ + // syntactic sugar + public ContactPoint addTelecom() { //3 + ContactPoint t = new ContactPoint(); + if (this.telecom == null) + this.telecom = new ArrayList(); + this.telecom.add(t); + return t; + } + + /** + * @return {@link #status} (The status of the data element.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new ResourceObservationDefStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of the data element.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public DataElement setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of the data element. + */ + public ResourceObservationDefStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of the data element. + */ + public DataElement setStatus(ResourceObservationDefStatus value) { + if (this.status == null) + this.status = new Enumeration(new ResourceObservationDefStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #date} (The date that the status for this business version of the data element became effective. (I.e. Date the draft was created, date element became active or date element became retired).). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (The date that the status for this business version of the data element became effective. (I.e. Date the draft was created, date element became active or date element became retired).). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DataElement setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return The date that the status for this business version of the data element became effective. (I.e. Date the draft was created, date element became active or date element became retired). + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value The date that the status for this business version of the data element became effective. (I.e. Date the draft was created, date element became active or date element became retired). + */ + public DataElement setDate(Date value) { + if (value == null) + this.date = null; + else { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + } + return this; + } + + /** + * @return {@link #name} (The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public DataElement setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used. + */ + public DataElement setName(String value) { + if (Utilities.noString(value)) + this.name = null; + else { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + } + return this; + } + + /** + * @return {@link #category} (A set of terms from external terminologies that may be used to assist with indexing and searching of data element definitions.) + */ + public List getCategory() { + if (this.category == null) + this.category = new ArrayList(); + return this.category; + } + + public boolean hasCategory() { + if (this.category == null) + return false; + for (CodeableConcept item : this.category) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #category} (A set of terms from external terminologies that may be used to assist with indexing and searching of data element definitions.) + */ + // syntactic sugar + public CodeableConcept addCategory() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.category == null) + this.category = new ArrayList(); + this.category.add(t); + return t; + } + + /** + * @return {@link #granularity} (Identifies how precise the data element is in its definition.). This is the underlying object with id, value and extensions. The accessor "getGranularity" gives direct access to the value + */ + public Enumeration getGranularityElement() { + if (this.granularity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.granularity"); + else if (Configuration.doAutoCreate()) + this.granularity = new Enumeration(new DataelementGranularityEnumFactory()); // bb + return this.granularity; + } + + public boolean hasGranularityElement() { + return this.granularity != null && !this.granularity.isEmpty(); + } + + public boolean hasGranularity() { + return this.granularity != null && !this.granularity.isEmpty(); + } + + /** + * @param value {@link #granularity} (Identifies how precise the data element is in its definition.). This is the underlying object with id, value and extensions. The accessor "getGranularity" gives direct access to the value + */ + public DataElement setGranularityElement(Enumeration value) { + this.granularity = value; + return this; + } + + /** + * @return Identifies how precise the data element is in its definition. + */ + public DataelementGranularity getGranularity() { + return this.granularity == null ? null : this.granularity.getValue(); + } + + /** + * @param value Identifies how precise the data element is in its definition. + */ + public DataElement setGranularity(DataelementGranularity value) { + if (value == null) + this.granularity = null; + else { + if (this.granularity == null) + this.granularity = new Enumeration(new DataelementGranularityEnumFactory()); + this.granularity.setValue(value); + } + return this; + } + + /** + * @return {@link #code} (A code that provides the meaning for a data element according to a particular terminology.) + */ + public List getCode() { + if (this.code == null) + this.code = new ArrayList(); + return this.code; + } + + public boolean hasCode() { + if (this.code == null) + return false; + for (Coding item : this.code) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #code} (A code that provides the meaning for a data element according to a particular terminology.) + */ + // syntactic sugar + public Coding addCode() { //3 + Coding t = new Coding(); + if (this.code == null) + this.code = new ArrayList(); + this.code.add(t); + return t; + } + + /** + * @return {@link #question} (The default/suggested phrasing to use when prompting a human to capture the data element in question form (e.g. In a survey).). This is the underlying object with id, value and extensions. The accessor "getQuestion" gives direct access to the value + */ + public StringType getQuestionElement() { + if (this.question == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.question"); + else if (Configuration.doAutoCreate()) + this.question = new StringType(); // bb + return this.question; + } + + public boolean hasQuestionElement() { + return this.question != null && !this.question.isEmpty(); + } + + public boolean hasQuestion() { + return this.question != null && !this.question.isEmpty(); + } + + /** + * @param value {@link #question} (The default/suggested phrasing to use when prompting a human to capture the data element in question form (e.g. In a survey).). This is the underlying object with id, value and extensions. The accessor "getQuestion" gives direct access to the value + */ + public DataElement setQuestionElement(StringType value) { + this.question = value; + return this; + } + + /** + * @return The default/suggested phrasing to use when prompting a human to capture the data element in question form (e.g. In a survey). + */ + public String getQuestion() { + return this.question == null ? null : this.question.getValue(); + } + + /** + * @param value The default/suggested phrasing to use when prompting a human to capture the data element in question form (e.g. In a survey). + */ + public DataElement setQuestion(String value) { + if (Utilities.noString(value)) + this.question = null; + else { + if (this.question == null) + this.question = new StringType(); + this.question.setValue(value); + } + return this; + } + + /** + * @return {@link #label} (The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form.). This is the underlying object with id, value and extensions. The accessor "getLabel" gives direct access to the value + */ + public StringType getLabelElement() { + if (this.label == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.label"); + else if (Configuration.doAutoCreate()) + this.label = new StringType(); // bb + return this.label; + } + + public boolean hasLabelElement() { + return this.label != null && !this.label.isEmpty(); + } + + public boolean hasLabel() { + return this.label != null && !this.label.isEmpty(); + } + + /** + * @param value {@link #label} (The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form.). This is the underlying object with id, value and extensions. The accessor "getLabel" gives direct access to the value + */ + public DataElement setLabelElement(StringType value) { + this.label = value; + return this; + } + + /** + * @return The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form. + */ + public String getLabel() { + return this.label == null ? null : this.label.getValue(); + } + + /** + * @param value The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form. + */ + public DataElement setLabel(String value) { + if (Utilities.noString(value)) + this.label = null; + else { + if (this.label == null) + this.label = new StringType(); + this.label.setValue(value); + } + return this; + } + + /** + * @return {@link #definition} (Provides a complete explanation of the meaning of the data element for human readability.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value + */ + public StringType getDefinitionElement() { + if (this.definition == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.definition"); + else if (Configuration.doAutoCreate()) + this.definition = new StringType(); // bb + return this.definition; + } + + public boolean hasDefinitionElement() { + return this.definition != null && !this.definition.isEmpty(); + } + + public boolean hasDefinition() { + return this.definition != null && !this.definition.isEmpty(); + } + + /** + * @param value {@link #definition} (Provides a complete explanation of the meaning of the data element for human readability.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value + */ + public DataElement setDefinitionElement(StringType value) { + this.definition = value; + return this; + } + + /** + * @return Provides a complete explanation of the meaning of the data element for human readability. + */ + public String getDefinition() { + return this.definition == null ? null : this.definition.getValue(); + } + + /** + * @param value Provides a complete explanation of the meaning of the data element for human readability. + */ + public DataElement setDefinition(String value) { + if (Utilities.noString(value)) + this.definition = null; + else { + if (this.definition == null) + this.definition = new StringType(); + this.definition.setValue(value); + } + return this; + } + + /** + * @return {@link #comments} (Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value + */ + public StringType getCommentsElement() { + if (this.comments == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.comments"); + else if (Configuration.doAutoCreate()) + this.comments = new StringType(); // bb + return this.comments; + } + + public boolean hasCommentsElement() { + return this.comments != null && !this.comments.isEmpty(); + } + + public boolean hasComments() { + return this.comments != null && !this.comments.isEmpty(); + } + + /** + * @param value {@link #comments} (Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value + */ + public DataElement setCommentsElement(StringType value) { + this.comments = value; + return this; + } + + /** + * @return Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. + */ + public String getComments() { + return this.comments == null ? null : this.comments.getValue(); + } + + /** + * @param value Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. + */ + public DataElement setComments(String value) { + if (Utilities.noString(value)) + this.comments = null; + else { + if (this.comments == null) + this.comments = new StringType(); + this.comments.setValue(value); + } + return this; + } + + /** + * @return {@link #requirements} (Explains why this element is needed and why it's been constrained as it has.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value + */ + public StringType getRequirementsElement() { + if (this.requirements == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.requirements"); + else if (Configuration.doAutoCreate()) + this.requirements = new StringType(); // bb + return this.requirements; + } + + public boolean hasRequirementsElement() { + return this.requirements != null && !this.requirements.isEmpty(); + } + + public boolean hasRequirements() { + return this.requirements != null && !this.requirements.isEmpty(); + } + + /** + * @param value {@link #requirements} (Explains why this element is needed and why it's been constrained as it has.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value + */ + public DataElement setRequirementsElement(StringType value) { + this.requirements = value; + return this; + } + + /** + * @return Explains why this element is needed and why it's been constrained as it has. + */ + public String getRequirements() { + return this.requirements == null ? null : this.requirements.getValue(); + } + + /** + * @param value Explains why this element is needed and why it's been constrained as it has. + */ + public DataElement setRequirements(String value) { + if (Utilities.noString(value)) + this.requirements = null; + else { + if (this.requirements == null) + this.requirements = new StringType(); + this.requirements.setValue(value); + } + return this; + } + + /** + * @return {@link #synonym} (Identifies additional names by which this element might also be known.) + */ + public List getSynonym() { + if (this.synonym == null) + this.synonym = new ArrayList(); + return this.synonym; + } + + public boolean hasSynonym() { + if (this.synonym == null) + return false; + for (StringType item : this.synonym) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #synonym} (Identifies additional names by which this element might also be known.) + */ + // syntactic sugar + public StringType addSynonymElement() {//2 + StringType t = new StringType(); + if (this.synonym == null) + this.synonym = new ArrayList(); + this.synonym.add(t); + return t; + } + + /** + * @param value {@link #synonym} (Identifies additional names by which this element might also be known.) + */ + public DataElement addSynonym(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.synonym == null) + this.synonym = new ArrayList(); + this.synonym.add(t); + return this; + } + + /** + * @param value {@link #synonym} (Identifies additional names by which this element might also be known.) + */ + public boolean hasSynonym(String value) { + if (this.synonym == null) + return false; + for (StringType v : this.synonym) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #type} (The FHIR data type that is the type for data that corresponds to this data element.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public CodeType getTypeElement() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeType(); // bb + return this.type; + } + + public boolean hasTypeElement() { + return this.type != null && !this.type.isEmpty(); + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The FHIR data type that is the type for data that corresponds to this data element.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public DataElement setTypeElement(CodeType value) { + this.type = value; + return this; + } + + /** + * @return The FHIR data type that is the type for data that corresponds to this data element. + */ + public String getType() { + return this.type == null ? null : this.type.getValue(); + } + + /** + * @param value The FHIR data type that is the type for data that corresponds to this data element. + */ + public DataElement setType(String value) { + if (Utilities.noString(value)) + this.type = null; + else { + if (this.type == null) + this.type = new CodeType(); + this.type.setValue(value); + } + return this; + } + + /** + * @return {@link #example} (A sample value for this element demonstrating the type of information that would typically be captured.) + */ + public org.hl7.fhir.instance.model.Type getExample() { + return this.example; + } + + public boolean hasExample() { + return this.example != null && !this.example.isEmpty(); + } + + /** + * @param value {@link #example} (A sample value for this element demonstrating the type of information that would typically be captured.) + */ + public DataElement setExample(org.hl7.fhir.instance.model.Type value) { + this.example = value; + return this; + } + + /** + * @return {@link #maxLength} (Indicates the shortest length that SHALL be supported by conformant instances without truncation.). This is the underlying object with id, value and extensions. The accessor "getMaxLength" gives direct access to the value + */ + public IntegerType getMaxLengthElement() { + if (this.maxLength == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.maxLength"); + else if (Configuration.doAutoCreate()) + this.maxLength = new IntegerType(); // bb + return this.maxLength; + } + + public boolean hasMaxLengthElement() { + return this.maxLength != null && !this.maxLength.isEmpty(); + } + + public boolean hasMaxLength() { + return this.maxLength != null && !this.maxLength.isEmpty(); + } + + /** + * @param value {@link #maxLength} (Indicates the shortest length that SHALL be supported by conformant instances without truncation.). This is the underlying object with id, value and extensions. The accessor "getMaxLength" gives direct access to the value + */ + public DataElement setMaxLengthElement(IntegerType value) { + this.maxLength = value; + return this; + } + + /** + * @return Indicates the shortest length that SHALL be supported by conformant instances without truncation. + */ + public int getMaxLength() { + return this.maxLength == null ? 0 : this.maxLength.getValue(); + } + + /** + * @param value Indicates the shortest length that SHALL be supported by conformant instances without truncation. + */ + public DataElement setMaxLength(int value) { + if (this.maxLength == null) + this.maxLength = new IntegerType(); + this.maxLength.setValue(value); + return this; + } + + /** + * @return {@link #units} (Identifies the units of measure in which the data element should be captured or expressed.) + */ + public Type getUnits() { + return this.units; + } + + /** + * @return {@link #units} (Identifies the units of measure in which the data element should be captured or expressed.) + */ + public CodeableConcept getUnitsCodeableConcept() throws Exception { + if (!(this.units instanceof CodeableConcept)) + throw new Exception("Type mismatch: the type CodeableConcept was expected, but "+this.units.getClass().getName()+" was encountered"); + return (CodeableConcept) this.units; + } + + /** + * @return {@link #units} (Identifies the units of measure in which the data element should be captured or expressed.) + */ + public Reference getUnitsReference() throws Exception { + if (!(this.units instanceof Reference)) + throw new Exception("Type mismatch: the type Reference was expected, but "+this.units.getClass().getName()+" was encountered"); + return (Reference) this.units; + } + + public boolean hasUnits() { + return this.units != null && !this.units.isEmpty(); + } + + /** + * @param value {@link #units} (Identifies the units of measure in which the data element should be captured or expressed.) + */ + public DataElement setUnits(Type value) { + this.units = value; + return this; + } + + /** + * @return {@link #binding} (Binds to a value set if this element is coded (code, Coding, CodeableConcept).) + */ + public DataElementBindingComponent getBinding() { + if (this.binding == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DataElement.binding"); + else if (Configuration.doAutoCreate()) + this.binding = new DataElementBindingComponent(); // cc + return this.binding; + } + + public boolean hasBinding() { + return this.binding != null && !this.binding.isEmpty(); + } + + /** + * @param value {@link #binding} (Binds to a value set if this element is coded (code, Coding, CodeableConcept).) + */ + public DataElement setBinding(DataElementBindingComponent value) { + this.binding = value; + return this; + } + + /** + * @return {@link #mapping} (Identifies a concept from an external specification that roughly corresponds to this element.) + */ + public List getMapping() { + if (this.mapping == null) + this.mapping = new ArrayList(); + return this.mapping; + } + + public boolean hasMapping() { + if (this.mapping == null) + return false; + for (DataElementMappingComponent item : this.mapping) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #mapping} (Identifies a concept from an external specification that roughly corresponds to this element.) + */ + // syntactic sugar + public DataElementMappingComponent addMapping() { //3 + DataElementMappingComponent t = new DataElementMappingComponent(); + if (this.mapping == null) + this.mapping = new ArrayList(); + this.mapping.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "The identifier that is used to identify this data element when it is referenced in a Profile, Questionnaire or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("version", "string", "The identifier that is used to identify this version of the data element when it is referenced in a Profile, Questionnaire or instance. This is an arbitrary value managed by the definition author manually.", 0, java.lang.Integer.MAX_VALUE, version)); + childrenList.add(new Property("publisher", "string", "Details of the individual or organization who accepts responsibility for publishing the data element.", 0, java.lang.Integer.MAX_VALUE, publisher)); + childrenList.add(new Property("telecom", "ContactPoint", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, telecom)); + childrenList.add(new Property("status", "code", "The status of the data element.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("date", "dateTime", "The date that the status for this business version of the data element became effective. (I.e. Date the draft was created, date element became active or date element became retired).", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("name", "string", "The term used by humans to refer to the data element. Should ideally be unique within the context in which the data element is expected to be used.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("category", "CodeableConcept", "A set of terms from external terminologies that may be used to assist with indexing and searching of data element definitions.", 0, java.lang.Integer.MAX_VALUE, category)); + childrenList.add(new Property("granularity", "code", "Identifies how precise the data element is in its definition.", 0, java.lang.Integer.MAX_VALUE, granularity)); + childrenList.add(new Property("code", "Coding", "A code that provides the meaning for a data element according to a particular terminology.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("question", "string", "The default/suggested phrasing to use when prompting a human to capture the data element in question form (e.g. In a survey).", 0, java.lang.Integer.MAX_VALUE, question)); + childrenList.add(new Property("label", "string", "The text to display beside the element indicating its meaning or to use to prompt for the element in a user display or form.", 0, java.lang.Integer.MAX_VALUE, label)); + childrenList.add(new Property("definition", "string", "Provides a complete explanation of the meaning of the data element for human readability.", 0, java.lang.Integer.MAX_VALUE, definition)); + childrenList.add(new Property("comments", "string", "Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.", 0, java.lang.Integer.MAX_VALUE, comments)); + childrenList.add(new Property("requirements", "string", "Explains why this element is needed and why it's been constrained as it has.", 0, java.lang.Integer.MAX_VALUE, requirements)); + childrenList.add(new Property("synonym", "string", "Identifies additional names by which this element might also be known.", 0, java.lang.Integer.MAX_VALUE, synonym)); + childrenList.add(new Property("type", "code", "The FHIR data type that is the type for data that corresponds to this data element.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("example[x]", "*", "A sample value for this element demonstrating the type of information that would typically be captured.", 0, java.lang.Integer.MAX_VALUE, example)); + childrenList.add(new Property("maxLength", "integer", "Indicates the shortest length that SHALL be supported by conformant instances without truncation.", 0, java.lang.Integer.MAX_VALUE, maxLength)); + childrenList.add(new Property("units[x]", "CodeableConcept|Reference(ValueSet)", "Identifies the units of measure in which the data element should be captured or expressed.", 0, java.lang.Integer.MAX_VALUE, units)); + childrenList.add(new Property("binding", "", "Binds to a value set if this element is coded (code, Coding, CodeableConcept).", 0, java.lang.Integer.MAX_VALUE, binding)); + childrenList.add(new Property("mapping", "", "Identifies a concept from an external specification that roughly corresponds to this element.", 0, java.lang.Integer.MAX_VALUE, mapping)); + } + + public DataElement copy() { + DataElement dst = new DataElement(); + copyValues(dst); + dst.identifier = identifier == null ? null : identifier.copy(); + dst.version = version == null ? null : version.copy(); + dst.publisher = publisher == null ? null : publisher.copy(); + if (telecom != null) { + dst.telecom = new ArrayList(); + for (ContactPoint i : telecom) + dst.telecom.add(i.copy()); + }; + dst.status = status == null ? null : status.copy(); + dst.date = date == null ? null : date.copy(); + dst.name = name == null ? null : name.copy(); + if (category != null) { + dst.category = new ArrayList(); + for (CodeableConcept i : category) + dst.category.add(i.copy()); + }; + dst.granularity = granularity == null ? null : granularity.copy(); + if (code != null) { + dst.code = new ArrayList(); + for (Coding i : code) + dst.code.add(i.copy()); + }; + dst.question = question == null ? null : question.copy(); + dst.label = label == null ? null : label.copy(); + dst.definition = definition == null ? null : definition.copy(); + dst.comments = comments == null ? null : comments.copy(); + dst.requirements = requirements == null ? null : requirements.copy(); + if (synonym != null) { + dst.synonym = new ArrayList(); + for (StringType i : synonym) + dst.synonym.add(i.copy()); + }; + dst.type = type == null ? null : type.copy(); + dst.example = example == null ? null : example.copy(); + dst.maxLength = maxLength == null ? null : maxLength.copy(); + dst.units = units == null ? null : units.copy(); + dst.binding = binding == null ? null : binding.copy(); + if (mapping != null) { + dst.mapping = new ArrayList(); + for (DataElementMappingComponent i : mapping) + dst.mapping.add(i.copy()); + }; + return dst; + } + + protected DataElement typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DataElement)) + return false; + DataElement o = (DataElement) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true) && compareDeep(publisher, o.publisher, true) + && compareDeep(telecom, o.telecom, true) && compareDeep(status, o.status, true) && compareDeep(date, o.date, true) + && compareDeep(name, o.name, true) && compareDeep(category, o.category, true) && compareDeep(granularity, o.granularity, true) + && compareDeep(code, o.code, true) && compareDeep(question, o.question, true) && compareDeep(label, o.label, true) + && compareDeep(definition, o.definition, true) && compareDeep(comments, o.comments, true) && compareDeep(requirements, o.requirements, true) + && compareDeep(synonym, o.synonym, true) && compareDeep(type, o.type, true) && compareDeep(example, o.example, true) + && compareDeep(maxLength, o.maxLength, true) && compareDeep(units, o.units, true) && compareDeep(binding, o.binding, true) + && compareDeep(mapping, o.mapping, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DataElement)) + return false; + DataElement o = (DataElement) other; + return compareValues(version, o.version, true) && compareValues(publisher, o.publisher, true) && compareValues(status, o.status, true) + && compareValues(date, o.date, true) && compareValues(name, o.name, true) && compareValues(granularity, o.granularity, true) + && compareValues(question, o.question, true) && compareValues(label, o.label, true) && compareValues(definition, o.definition, true) + && compareValues(comments, o.comments, true) && compareValues(requirements, o.requirements, true) && compareValues(synonym, o.synonym, true) + && compareValues(type, o.type, true) && compareValues(maxLength, o.maxLength, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (version == null || version.isEmpty()) + && (publisher == null || publisher.isEmpty()) && (telecom == null || telecom.isEmpty()) && (status == null || status.isEmpty()) + && (date == null || date.isEmpty()) && (name == null || name.isEmpty()) && (category == null || category.isEmpty()) + && (granularity == null || granularity.isEmpty()) && (code == null || code.isEmpty()) && (question == null || question.isEmpty()) + && (label == null || label.isEmpty()) && (definition == null || definition.isEmpty()) && (comments == null || comments.isEmpty()) + && (requirements == null || requirements.isEmpty()) && (synonym == null || synonym.isEmpty()) + && (type == null || type.isEmpty()) && (example == null || example.isEmpty()) && (maxLength == null || maxLength.isEmpty()) + && (units == null || units.isEmpty()) && (binding == null || binding.isEmpty()) && (mapping == null || mapping.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.DataElement; + } + + @SearchParamDefinition(name="category", path="DataElement.category", description="A category assigned to the data element (server may choose to do subsumption)", type="token" ) + public static final String SP_CATEGORY = "category"; + @SearchParamDefinition(name="status", path="DataElement.status", description="The current status of the data element", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="description", path="DataElement.definition", description="Text search in the description of the data element", type="string" ) + public static final String SP_DESCRIPTION = "description"; + @SearchParamDefinition(name="name", path="DataElement.name", description="Name of the data element", type="string" ) + public static final String SP_NAME = "name"; + @SearchParamDefinition(name="code", path="DataElement.code", description="A code for the data element (server may choose to do subsumption)", type="token" ) + public static final String SP_CODE = "code"; + @SearchParamDefinition(name="date", path="DataElement.date", description="The data element publication date", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="identifier", path="DataElement.identifier", description="The identifier of the data element", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + @SearchParamDefinition(name="publisher", path="DataElement.publisher", description="Name of the publisher of the data element", type="string" ) + public static final String SP_PUBLISHER = "publisher"; + @SearchParamDefinition(name="version", path="DataElement.version", description="The version identifier of the data element", type="string" ) + public static final String SP_VERSION = "version"; + +} + diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DateAndTime.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateAndTime.java similarity index 100% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DateAndTime.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateAndTime.java diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateTimeType$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateTimeType$1.class new file mode 100644 index 0000000000000000000000000000000000000000..03696ec55059f9f2a4908d7337ddd5c8e4b7df8b GIT binary patch literal 917 zcmbV~+iuf95QhKF$%%1k3I#&Tp@3+gr$ z6Ojm{EvI9K)M1k$zw7xziue&jx?FkAkg3xdhWVC|yfYp5dDwINKCR3-vFp8}TnSTY z47w9cLyzwX^?jk?#=IxSy!U3pH;>$7m!jCx^MgppVVlRJV4z`D!gVB_dhjrhLA|5dmXZgDQBksiv<-d){Q2o=^-~900vFlG&>YZ}su=URY9@20Q z?AlX??f*Kg1>rzQ*H0!*qtCXxo!(=jM(uzh=h*dbr=gactyZ(RLRaw&T}@UjsYxjh zd7Q;OX_4pzY4U()pTJJP=pT{#pq}&zGMVl>WS%6LBh1cFBh1Y(PpHkXK$uVPJ+dfZ z5tm3yxP?{HHEiKN=?-dWklNUXLz=<@m61z|d5d%8FGGK!;XK;EFjVy-ZAsw*E|O*_ O1z^&vQvh92G5;N1xY`B) literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateTimeType.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateTimeType.class new file mode 100644 index 0000000000000000000000000000000000000000..b14e2374682d2c184fdc65e15e315ee4ae2e21de GIT binary patch literal 3092 zcmb_eU2_vv7=BKgblb4~;u{2{n1M8D8=wLT6&v~ih0tOX0xc?R(`~!3*)5w5r6?C( zIO?spdgGPKFpB7;j5uC;;ZN~LsL$DKnlzSF89S4+d(J-Z`@G+$zyJC3uK)({FpT|3 zwW1A|!G8=4fq|6mEF>1q zQ;GRS!$}yPWKK`y?K#~{Wc2)!?P%r|N6#6OWYj9=&j>UR8kXUn6=;g~WCeo5L<@AJ z3`?IV=4W*$qs^K;*%nRR*6wMEqHCCm5zW=lNch-4PG7Yr!L! z`9BD1EYBEuea5!R*6*rSKCGF#HK#cqZCl#aa(6CkOP=>$3Cs&@H41CtOPZ#=tj`IY zjJ}M^GYq(8FAMZWdm75iP)nmTD@!`lbznhvNA!8EXu4~rjM)xRnoEShiB0sqs1AZT zduc^LS<;+>o*fW4yHQ5|i>V>kp3|tZl_qB%q>Tm3D>8asKDl5Q9q(jZpvA*nHVBDq z=0G_RM>c_tntEQhT!yS=FlYKT9!`@pr;i!3qPuEC+b@e-V9!+1avAL`TZCnwv@Dx} zWw)?LPc(F1t3qXac-dg0$RD({Jn35I{7kBdqDRGH98s{KViATsNyw#N!MuvwxTC^E zUWEl)#gYWvg`=VXS3yz5JtPI9jk>+oHG%f^ovUIQM^xO$ii!v5S8)=jRD2-MK15Q* zX`EtRHd231E9mPfVvXRn(8w|NQPrMG*R4COG^s$iTJ8cnnewV+1;hv|vU->`Dp?1S zys`iadU=2f4ApkL_qlQR)jLXUDz&Y(-pjT>C*Bs{XgQ6zqt=Q?0_z4-<=7icgOT*I z;pP@Onj#E&gyTLU$9<$S?jzo~k8IfH0)ZQBwquQQ^#Vb~cIFIAGkIa8M~5dTctLg2 z0qdt|@xeJjt{K3rqmb@R#V6rtEE#1DKCh;t270WgFhl01o`m#c(Fc_P24vG`L2 zo}pP!KDk@{coanoa-mFe5PD1O9je8M<==20>qy}S?P1oCzl%@n3fO_PY{KC2BBO^3LB2`HeD`D#@w$)2~MYGOe z(3eQ~?srIuRcueiDYheC6)Jo84Fmfvi}(?R-&&*Vqp+lFdxo8tn4VoSJ@umB(UUa9AH+^+446`FTWrF literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DateTimeType.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateTimeType.java similarity index 86% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DateTimeType.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateTimeType.java index 46087a14311..9c50d3f6026 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DateTimeType.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateTimeType.java @@ -1,213 +1,192 @@ -/* -Copyright (c) 2011+, HL7, Inc -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -import java.util.Calendar; -import java.util.Date; -import java.util.TimeZone; - -import org.apache.commons.lang3.time.DateUtils; -import org.hl7.fhir.instance.model.annotations.DatatypeDef; - -import ca.uhn.fhir.parser.DataFormatException; - -/** - * Represents a FHIR dateTime datatype. Valid precisions values for this type are: - *

- */ -@DatatypeDef(name = "dateTime") -public class DateTimeType extends BaseDateTimeType { - - private static final long serialVersionUID = 1L; - - /** - * The default precision for this type - */ - public static final TemporalPrecisionEnum DEFAULT_PRECISION = TemporalPrecisionEnum.SECOND; - - /** - * Constructor - */ - public DateTimeType() { - super(); - } - - /** - * Create a new DateTimeDt with seconds precision and the local time zone - */ - public DateTimeType(Date theDate) { - super(theDate, DEFAULT_PRECISION, TimeZone.getDefault()); - } - - /** - * Constructor which accepts a date value and a precision value. Valid precisions values for this type are: - *
    - *
  • {@link TemporalPrecisionEnum#YEAR} - *
  • {@link TemporalPrecisionEnum#MONTH} - *
  • {@link TemporalPrecisionEnum#DAY} - *
  • {@link TemporalPrecisionEnum#SECOND} - *
  • {@link TemporalPrecisionEnum#MILLI} - *
- * - * @throws DataFormatException - * If the specified precision is not allowed for this type - */ - public DateTimeType(Date theDate, TemporalPrecisionEnum thePrecision) { - super(theDate, thePrecision, TimeZone.getDefault()); - } - - /** - * Create a new instance using a string date/time - * - * @throws DataFormatException - * If the specified precision is not allowed for this type - */ - public DateTimeType(String theValue) { - super(theValue); - } - - /** - * Constructor which accepts a date value, precision value, and time zone. Valid precisions values for this type - * are: - *
    - *
  • {@link TemporalPrecisionEnum#YEAR} - *
  • {@link TemporalPrecisionEnum#MONTH} - *
  • {@link TemporalPrecisionEnum#DAY} - *
  • {@link TemporalPrecisionEnum#SECOND} - *
  • {@link TemporalPrecisionEnum#MILLI} - *
- */ - public DateTimeType(Date theDate, TemporalPrecisionEnum thePrecision, TimeZone theTimezone) { - super(theDate, thePrecision, theTimezone); - } - - /** - * Constructor - */ - public DateTimeType(Calendar theCalendar) { - if (theCalendar != null) { - setValue(theCalendar.getTime()); - setPrecision(DEFAULT_PRECISION); - setTimeZone(theCalendar.getTimeZone()); - } - } - - @Override - boolean isPrecisionAllowed(TemporalPrecisionEnum thePrecision) { - switch (thePrecision) { - case YEAR: - case MONTH: - case DAY: - case SECOND: - case MILLI: - return true; - default: - return false; - } - } - - /** - * Returns a new instance of DateTimeType with the current system time and SECOND precision and the system local time - * zone - */ - public static DateTimeType now() { - return new DateTimeType(new Date(), TemporalPrecisionEnum.SECOND, TimeZone.getDefault()); - } - - /** - * Returns the default precision for this datatype - * - * @see #DEFAULT_PRECISION - */ - @Override - protected TemporalPrecisionEnum getDefaultPrecisionForDatatype() { - return DEFAULT_PRECISION; - } - - @Override - public DateTimeType copy() { - return new DateTimeType(getValueAsString()); - } - - /** - * Creates a new instance by parsing an HL7 v3 format date time string - */ - public static InstantType parseV3(String theV3String) { - InstantType retVal = new InstantType(); - retVal.setValueAsV3String(theV3String); - return retVal; - } - - public static DateTimeType today() { - DateTimeType retVal = now(); - retVal.setPrecision(TemporalPrecisionEnum.DAY); - return retVal; - } - - public boolean getTzSign() { - return getTimeZone().getRawOffset() >= 0; - } - - public int getTzHour() { - return (int) (getTimeZone().getRawOffset() / DateUtils.MILLIS_PER_MINUTE) / 60; - } - - public int getTzMin() { - return (int) (getTimeZone().getRawOffset() / DateUtils.MILLIS_PER_MINUTE) % 60; - } - -} +/* +Copyright (c) 2011+, HL7, Inc +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +*/ + +package org.hl7.fhir.instance.model; + +import java.util.Calendar; +import java.util.Date; +import java.util.TimeZone; +import java.util.zip.DataFormatException; + +import org.apache.commons.lang3.time.DateUtils; +import org.hl7.fhir.instance.model.annotations.DatatypeDef; + +/** + * Represents a FHIR dateTime datatype. Valid precisions values for this type are: + *
    + *
  • {@link TemporalPrecisionEnum#YEAR} + *
  • {@link TemporalPrecisionEnum#MONTH} + *
  • {@link TemporalPrecisionEnum#DAY} + *
  • {@link TemporalPrecisionEnum#SECOND} + *
  • {@link TemporalPrecisionEnum#MILLI} + *
+ */ +@DatatypeDef(name = "dateTime") +public class DateTimeType extends BaseDateTimeType { + + private static final long serialVersionUID = 3L; + + /** + * The default precision for this type + */ + public static final TemporalPrecisionEnum DEFAULT_PRECISION = TemporalPrecisionEnum.SECOND; + + /** + * Constructor + */ + public DateTimeType() { + super(); + } + + /** + * Create a new DateTimeDt with seconds precision and the local time zone + */ + public DateTimeType(Date theDate) { + super(theDate, DEFAULT_PRECISION, TimeZone.getDefault()); + } + + /** + * Constructor which accepts a date value and a precision value. Valid precisions values for this type are: + *
    + *
  • {@link TemporalPrecisionEnum#YEAR} + *
  • {@link TemporalPrecisionEnum#MONTH} + *
  • {@link TemporalPrecisionEnum#DAY} + *
  • {@link TemporalPrecisionEnum#SECOND} + *
  • {@link TemporalPrecisionEnum#MILLI} + *
+ * + * @throws DataFormatException + * If the specified precision is not allowed for this type + */ + public DateTimeType(Date theDate, TemporalPrecisionEnum thePrecision) { + super(theDate, thePrecision, TimeZone.getDefault()); + } + + /** + * Create a new instance using a string date/time + * + * @throws DataFormatException + * If the specified precision is not allowed for this type + */ + public DateTimeType(String theValue) { + super(theValue); + } + + /** + * Constructor which accepts a date value, precision value, and time zone. Valid precisions values for this type + * are: + *
    + *
  • {@link TemporalPrecisionEnum#YEAR} + *
  • {@link TemporalPrecisionEnum#MONTH} + *
  • {@link TemporalPrecisionEnum#DAY} + *
  • {@link TemporalPrecisionEnum#SECOND} + *
  • {@link TemporalPrecisionEnum#MILLI} + *
+ */ + public DateTimeType(Date theDate, TemporalPrecisionEnum thePrecision, TimeZone theTimezone) { + super(theDate, thePrecision, theTimezone); + } + + /** + * Constructor + */ + public DateTimeType(Calendar theCalendar) { + if (theCalendar != null) { + setValue(theCalendar.getTime()); + setPrecision(DEFAULT_PRECISION); + setTimeZone(theCalendar.getTimeZone()); + } + } + + @Override + boolean isPrecisionAllowed(TemporalPrecisionEnum thePrecision) { + switch (thePrecision) { + case YEAR: + case MONTH: + case DAY: + case SECOND: + case MILLI: + return true; + default: + return false; + } + } + + /** + * Returns a new instance of DateTimeType with the current system time and SECOND precision and the system local time + * zone + */ + public static DateTimeType now() { + return new DateTimeType(new Date(), TemporalPrecisionEnum.SECOND, TimeZone.getDefault()); + } + + /** + * Returns the default precision for this datatype + * + * @see #DEFAULT_PRECISION + */ + @Override + protected TemporalPrecisionEnum getDefaultPrecisionForDatatype() { + return DEFAULT_PRECISION; + } + + @Override + public DateTimeType copy() { + return new DateTimeType(getValueAsString()); + } + + /** + * Creates a new instance by parsing an HL7 v3 format date time string + */ + public static DateTimeType parseV3(String theV3String) { + DateTimeType retVal = new DateTimeType(); + retVal.setValueAsV3String(theV3String); + return retVal; + } + + public static DateTimeType today() { + DateTimeType retVal = now(); + retVal.setPrecision(TemporalPrecisionEnum.DAY); + return retVal; + } + + public boolean getTzSign() { + return getTimeZone().getRawOffset() >= 0; + } + + public int getTzHour() { + return (int) (getTimeZone().getRawOffset() / DateUtils.MILLIS_PER_MINUTE) / 60; + } + + public int getTzMin() { + return (int) (getTimeZone().getRawOffset() / DateUtils.MILLIS_PER_MINUTE) % 60; + } + + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateType$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DateType$1.class new file mode 100644 index 0000000000000000000000000000000000000000..eb7172468052fa9bf239bc96d7ed34cb3d0f706e GIT binary patch literal 812 zcmbVKU2oGc6g_U!rVSY@pDW`-8w+a-h-gf(2PULx>%_#`B3gl_J-MlAJzS@9(ji{> zJ9{2T2qCl|z>h*)M;dzq1X6r`kL`1Aj<3J}_<90h756<{#atOBRLhiIvvA(Ubqj9T zaMQ&t7mEz*LHC_Zqfv`bg4hg$ky;DhjHC&qPExKT5sc%3P(e?OC$Zt`g%OcVWUQNd zI%df2?=Y0sBPF#=pEBg@jaLlLCUF>Mccm8X>9{XUkM|X=%yd&8y`@?irXOPPy7AOR zVq0eWTRauL_Y?8pfFE*FXzEDCiPXcENJsI&#cdZ$J_6kF;o+Q*Wz>As(O{Ujlu&U! z4BK&c8jZH4P=ls1vGH-&9=nGc!!o%H$z^C=hNmvW%w>35K3HJ@gTJG-Fq?`eiAWeK zXB9gA0}-VR_RjvQ#<23IW52oD;vrX4TlR6ivA_Gz0#B$7d(DlP46FY|c4IS;nyaj* z)Z{{|)9yVZw6(EUS)i9yrkBPlRoe!e(Ta~5n$HvZfIMZu+83~sZ{8>5KH4w;8IIFA zg7Z9sMS_Jh=n^bu@R;ajT*e#FX4eqdua&|#hj6ll@S+!HRNRE@kmB59*ezYF%-n`M8YQ$iVR>- z3YNv4jH$aWcNqpkNxU+u7F+%)8q21H;h_A6eyE-L7#{EA#r1?dayF!>fiM$yts13PWtw zuncdFA)J`4FhnwB%`i|jEWX~T?{TNB@0qkRoG2dZU+Y@KGfXY3dwfNh=l`*Kg&>5Z z>wzOvxAwJ?=NQ($PcUS-rxB-3(|*Bg40jS&VcDg6mOQ=s)l>Z_NNQrAds+TmZ7eGL|HE-X0Jd+WvtpqFBuY-z(pO)L`3Hh_3WBXkkloRLQ4<3S2o?3UN#})_7)G}mmS@y? zg(OKbOIwyrr6+aLomlD`z1}eua`exOj*_?|mR={SNR5iCU;^(d7{j>uni7Mm;3?K6 zY$({orwnShThk6#!4^sk{eQm#!rd)~nQk7=oR@+!#wBbksNge!{anG0h$o2@!(2Bn z4|SLOu~4nVVK7X0GjE5jE-T=*-p){bkpxFpJv3JO;LNwuQdWT`CQ{ysayK7sNt=ze& z3^&?vzZbQQ$ieRa(T&cuxl`AoLk+n>{Astc*y>QYNnL%II&ui_;4QpOeSI|eH7Ybm z-wLgf1ZkY4UpHx{_K#??3HCF6Fj@j+asb>%1P^G1G)3bit-Ob@zY|ZUjuC1id>)cV z4<7lDsQ@xXkT5}|WNPjLz&2teKEa^|fLp{M*kj356Or=-&k)6zek9X@{Z?R~I7T$} z8nO8wX`7x2dPQo2e60OOUWH%LcgWAO-`}ed^8u!Dh#A_6Af(b&MFO*d|1p|{p9p3A z6V0s(#r(AfjdWLNoTQx@@+T|@P9W_hU!&&_#G8=MgTA5vDg1&^=k!{Bm#IRFv>n2SSfaU?% - *
  • {@link ca.uhn.fhir.model.api.TemporalPrecisionEnum#YEAR} - *
  • {@link ca.uhn.fhir.model.api.TemporalPrecisionEnum#MONTH} - *
  • {@link ca.uhn.fhir.model.api.TemporalPrecisionEnum#DAY} - * - */ -@DatatypeDef(name = "date") -public class DateType extends BaseDateTimeType { - - private static final long serialVersionUID = 1L; - - /** - * The default precision for this type - */ - public static final TemporalPrecisionEnum DEFAULT_PRECISION = TemporalPrecisionEnum.DAY; - - /** - * Constructor - */ - public DateType() { - super(); - } - - /** - * Constructor which accepts a date value and uses the {@link #DEFAULT_PRECISION} for this type - */ - public DateType(Date theDate) { - super(theDate, DEFAULT_PRECISION); - } - - /** - * Constructor which accepts a date value and a precision value. Valid precisions values for this type are: - *
      - *
    • {@link ca.uhn.fhir.model.api.TemporalPrecisionEnum#YEAR} - *
    • {@link ca.uhn.fhir.model.api.TemporalPrecisionEnum#MONTH} - *
    • {@link ca.uhn.fhir.model.api.TemporalPrecisionEnum#DAY} - *
    - * - * @throws ca.uhn.fhir.parser.DataFormatException - * If the specified precision is not allowed for this type - */ - public DateType(Date theDate, TemporalPrecisionEnum thePrecision) { - super(theDate, thePrecision); - } - - /** - * Constructor which accepts a date as a string in FHIR format - * - * @throws ca.uhn.fhir.parser.DataFormatException - * If the precision in the date string is not allowed for this type - */ - public DateType(String theDate) { - super(theDate); - } - - @Override - boolean isPrecisionAllowed(TemporalPrecisionEnum thePrecision) { - switch (thePrecision) { - case YEAR: - case MONTH: - case DAY: - return true; - default: - return false; - } - } - - /** - * Returns the default precision for this datatype - * - * @see #DEFAULT_PRECISION - */ - @Override - protected TemporalPrecisionEnum getDefaultPrecisionForDatatype() { - return DEFAULT_PRECISION; - } - - @Override - public DateType copy() { - return new DateType(getValue()); - } -} +/* +Copyright (c) 2011+, HL7, Inc +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +*/ + +package org.hl7.fhir.instance.model; + +/** + * Primitive type "date" in FHIR: any day in a gregorian calendar + */ + +import java.util.Date; +import java.util.TimeZone; + +import org.hl7.fhir.instance.model.annotations.DatatypeDef; + +/** + * Represents a FHIR date datatype. Valid precisions values for this type are: + *
      + *
    • {@link ca.uhn.fhir.model.api.TemporalPrecisionEnum#YEAR} + *
    • {@link ca.uhn.fhir.model.api.TemporalPrecisionEnum#MONTH} + *
    • {@link ca.uhn.fhir.model.api.TemporalPrecisionEnum#DAY} + *
    + */ +@DatatypeDef(name = "date") +public class DateType extends BaseDateTimeType { + + private static final long serialVersionUID = 3L; + + /** + * The default precision for this type + */ + public static final TemporalPrecisionEnum DEFAULT_PRECISION = TemporalPrecisionEnum.DAY; + + /** + * Constructor + */ + public DateType() { + super(); + } + + /** + * Constructor which accepts a date value and uses the {@link #DEFAULT_PRECISION} for this type + */ + public DateType(Date theDate) { + super(theDate, DEFAULT_PRECISION); + } + + /** + * Constructor which accepts a date value and a precision value. Valid precisions values for this type are: + *
      + *
    • {@link ca.uhn.fhir.model.api.TemporalPrecisionEnum#YEAR} + *
    • {@link ca.uhn.fhir.model.api.TemporalPrecisionEnum#MONTH} + *
    • {@link ca.uhn.fhir.model.api.TemporalPrecisionEnum#DAY} + *
    + * + * @throws ca.uhn.fhir.parser.DataFormatException + * If the specified precision is not allowed for this type + */ + public DateType(Date theDate, TemporalPrecisionEnum thePrecision) { + super(theDate, thePrecision); + } + + /** + * Constructor which accepts a date as a string in FHIR format + * + * @throws ca.uhn.fhir.parser.DataFormatException + * If the precision in the date string is not allowed for this type + */ + public DateType(String theDate) { + super(theDate); + } + + @Override + boolean isPrecisionAllowed(TemporalPrecisionEnum thePrecision) { + switch (thePrecision) { + case YEAR: + case MONTH: + case DAY: + return true; + default: + return false; + } + } + + /** + * Returns the default precision for this datatype + * + * @see #DEFAULT_PRECISION + */ + @Override + protected TemporalPrecisionEnum getDefaultPrecisionForDatatype() { + return DEFAULT_PRECISION; + } + + @Override + public DateType copy() { + return new DateType(getValue()); + } + + public static InstantType today() { + return new InstantType(new Date(), TemporalPrecisionEnum.DAY, TimeZone.getDefault()); + } + + /** + * Creates a new instance by parsing an HL7 v3 format date time string + */ + public static DateType parseV3(String theV3String) { + DateType retVal = new DateType(); + retVal.setValueAsV3String(theV3String); + return retVal; + } + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DecimalType.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DecimalType.class new file mode 100644 index 0000000000000000000000000000000000000000..2945bb5c7d3654c51d314f5ba8b552e6822cdbbc GIT binary patch literal 2850 zcma)8-%}G;6#gzG1i}IVwbqIX79}J|M5VTdVu5H2@=HJzt=1(hac#0;k_}TI`eQnM zYdd{vANn`=(7r&Y%yjx>XZlBV`klKQSYtq$*?V{IJ>R+C`OY~v{QKXZe*w6RjVO*I z6GbO(L=nQx2tJni6B(vtd0O6X$uJ|sYy@)=%tv8hLB4Ox+oHTJM6e`)Wf|_sup+}< z8SX`}8o_;qSlKGsW`4ygmF=Q)XDXwhrWM*Ii%!`!9e2gdSFA9Z$zP*F)2Qv(?wCSj zd|*W(G+A7?6gp;X$C|4Y)~wR9xt8b3iTKP@bIVK>O!rA@!p>!^tX(kkX$^{JylGmd zW4>kHbaJUBw`4mxZPk)37Bc(9vnQu2h=J=P^nmP)+ug$N(AbTPX)AGls#%R%Yd{_o#j_)hO))Y zX9`J@dQ;sL`d(wL_-681gvckxrCz<=EsfKIXU1nb2u=d3Ktbq}{XJ7yc11Ve-8vP0bhq-tum(}Pr(fy<; zG*|mW;dQEo4{xR5t($7`8d7klm1 zZ2PyfLMnKz1u|0Y%i1djz5EF{4u!Y*yn_>b6i)JjZ$LMW@SSzTv4<BPdM=qZ;_G4;Y4EHJV0}A{QLwJOXc#JrA8Fj3qgOu1bJ{6JE)4%GopPT5H{Jk`MdWx9(+PginiPMO3Xduh4K9 zmwfX%f~5+2J>|N6QoAr#Pwt>?8||}+!D?bWp}GhGzM@=Tvy8uCP~U2C8li;hF#o0U zh|g0mF+J<~J{9ymxPuNlpG#b*=lpv*|AGDSBQx_;)wwjrl|AAKx|TTG6A~!7#;T5j z{qi$Q_ZQ-L)A^+O8Lp_=v5U@CpV1DwYE}9*Hcrr0A9RYdfWibEsWnZ;GOUO9ebZjD z()uToI=M&dnWyl9Z+_Z0Z<5wM_NuM0xaQlwhQ&A=Bwde1=QiG|EwLnJ7-d8a_z+`y RzK)MLx6;8lpNTRi{|Cz@Vjutj literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DecimalType.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DecimalType.java similarity index 84% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DecimalType.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DecimalType.java index 2cbd97a7d78..4ef05f17614 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DecimalType.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DecimalType.java @@ -1,178 +1,158 @@ -/* -Copyright (c) 2011+, HL7, Inc -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - - */ -/** - * - */ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -import org.hl7.fhir.instance.model.annotations.DatatypeDef; - -/** - * Primitive type "decimal" in FHIR: A rational number - */ -@DatatypeDef(name = "decimal") -public class DecimalType extends PrimitiveType implements Comparable { - - private static final long serialVersionUID = 1L; - - /** - * Constructor - */ - public DecimalType() { - super(); - } - - /** - * Constructor - */ - public DecimalType(BigDecimal theValue) { - setValue(theValue); - } - - /** - * Constructor - */ - public DecimalType(double theValue) { - // Use the valueOf here because the constructor gives wacky precision - // changes due to the floating point conversion - setValue(BigDecimal.valueOf(theValue)); - } - - /** - * Constructor - */ - public DecimalType(long theValue) { - setValue(new BigDecimal(theValue)); - } - - /** - * Constructor - */ - public DecimalType(String theValue) { - setValue(new BigDecimal(theValue)); - } - - @Override - public int compareTo(DecimalType theObj) { - if (getValue() == null && theObj.getValue() == null) { - return 0; - } - if (getValue() != null && theObj.getValue() == null) { - return 1; - } - if (getValue() == null && theObj.getValue() != null) { - return -1; - } - return getValue().compareTo(theObj.getValue()); - } - - @Override - protected String encode(BigDecimal theValue) { - return getValue().toPlainString(); - } - - /** - * Gets the value as an integer, using {@link BigDecimal#intValue()} - */ - public int getValueAsInteger() { - return getValue().intValue(); - } - - public Number getValueAsNumber() { - return getValue(); - } - - @Override - protected BigDecimal parse(String theValue) { - return new BigDecimal(theValue); - } - - /** - * Rounds the value to the given prevision - * - * @see MathContext#getPrecision() - */ - public void round(int thePrecision) { - if (getValue() != null) { - BigDecimal newValue = getValue().round(new MathContext(thePrecision)); - setValue(newValue); - } - } - - /** - * Rounds the value to the given prevision - * - * @see MathContext#getPrecision() - * @see MathContext#getRoundingMode() - */ - public void round(int thePrecision, RoundingMode theRoundingMode) { - if (getValue() != null) { - BigDecimal newValue = getValue().round(new MathContext(thePrecision, theRoundingMode)); - setValue(newValue); - } - } - - /** - * Sets a new value using an integer - */ - public void setValueAsInteger(int theValue) { - setValue(new BigDecimal(theValue)); - } - - @Override - public DecimalType copy() { - return new DecimalType(getValue()); - } - -} +/* +Copyright (c) 2011+, HL7, Inc +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + */ +/** + * + */ +package org.hl7.fhir.instance.model; + +import java.math.BigDecimal; +import java.math.MathContext; +import java.math.RoundingMode; + +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +import org.hl7.fhir.instance.model.api.IBaseDecimalDatatype; + +/** + * Primitive type "decimal" in FHIR: A rational number + */ +@DatatypeDef(name = "decimal") +public class DecimalType extends PrimitiveType implements Comparable, IBaseDecimalDatatype { + + private static final long serialVersionUID = 3L; + + /** + * Constructor + */ + public DecimalType() { + super(); + } + + /** + * Constructor + */ + public DecimalType(BigDecimal theValue) { + setValue(theValue); + } + + /** + * Constructor + */ + public DecimalType(double theValue) { + // Use the valueOf here because the constructor gives wacky precision + // changes due to the floating point conversion + setValue(BigDecimal.valueOf(theValue)); + } + + /** + * Constructor + */ + public DecimalType(long theValue) { + setValue(new BigDecimal(theValue)); + } + + /** + * Constructor + */ + public DecimalType(String theValue) { + setValue(new BigDecimal(theValue)); + } + + @Override + public int compareTo(DecimalType theObj) { + if (getValue() == null && theObj.getValue() == null) { + return 0; + } + if (getValue() != null && theObj.getValue() == null) { + return 1; + } + if (getValue() == null && theObj.getValue() != null) { + return -1; + } + return getValue().compareTo(theObj.getValue()); + } + + @Override + protected String encode(BigDecimal theValue) { + return getValue().toPlainString(); + } + + /** + * Gets the value as an integer, using {@link BigDecimal#intValue()} + */ + public int getValueAsInteger() { + return getValue().intValue(); + } + + public Number getValueAsNumber() { + return getValue(); + } + + @Override + protected BigDecimal parse(String theValue) { + return new BigDecimal(theValue); + } + + /** + * Rounds the value to the given prevision + * + * @see MathContext#getPrecision() + */ + public void round(int thePrecision) { + if (getValue() != null) { + BigDecimal newValue = getValue().round(new MathContext(thePrecision)); + setValue(newValue); + } + } + + /** + * Rounds the value to the given prevision + * + * @see MathContext#getPrecision() + * @see MathContext#getRoundingMode() + */ + public void round(int thePrecision, RoundingMode theRoundingMode) { + if (getValue() != null) { + BigDecimal newValue = getValue().round(new MathContext(thePrecision, theRoundingMode)); + setValue(newValue); + } + } + + /** + * Sets a new value using an integer + */ + public void setValueAsInteger(int theValue) { + setValue(new BigDecimal(theValue)); + } + + @Override + public DecimalType copy() { + return new DecimalType(getValue()); + } + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Device.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Device.class new file mode 100644 index 0000000000000000000000000000000000000000..7dc7b8a1cd1097d36fc5a0b890cb98dbce45bc20 GIT binary patch literal 19326 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Device.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Device.java similarity index 71% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Device.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Device.java index ebfc4ccfcd0..33c4ba7225d 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Device.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Device.java @@ -1,825 +1,828 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * This resource identifies an instance of a manufactured thing that is used in the provision of healthcare without being substantially changed through that activity. The device may be a machine, an insert, a computer, an application, etc. This includes durable (reusable) medical equipment as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health. - */ -@ResourceDef(name="Device", profile="http://hl7.org/fhir/Profile/Device") -public class Device extends DomainResource { - - /** - * Identifiers assigned to this device by various organizations. The most likely organizations to assign identifiers are the manufacturer and the owner, though regulatory agencies may also assign an identifier. The identifiers identify the particular device, not the kind of device. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Instance id from manufacturer, owner and others", formalDefinition="Identifiers assigned to this device by various organizations. The most likely organizations to assign identifiers are the manufacturer and the owner, though regulatory agencies may also assign an identifier. The identifiers identify the particular device, not the kind of device." ) - protected List identifier; - - /** - * A kind of this device. - */ - @Child(name="type", type={CodeableConcept.class}, order=0, min=1, max=1) - @Description(shortDefinition="What kind of device this is", formalDefinition="A kind of this device." ) - protected CodeableConcept type; - - /** - * A name of the manufacturer. - */ - @Child(name="manufacturer", type={StringType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Name of device manufacturer", formalDefinition="A name of the manufacturer." ) - protected StringType manufacturer; - - /** - * The "model" - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type. - */ - @Child(name="model", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Model id assigned by the manufacturer", formalDefinition="The 'model' - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type." ) - protected StringType model; - - /** - * The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware. - */ - @Child(name="version", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Version number (i.e. software)", formalDefinition="The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware." ) - protected StringType version; - - /** - * Date of expiry of this device (if applicable). - */ - @Child(name="expiry", type={DateType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Date of expiry of this device (if applicable)", formalDefinition="Date of expiry of this device (if applicable)." ) - protected DateType expiry; - - /** - * FDA Mandated Unique Device Identifier. Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm. - */ - @Child(name="udi", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="FDA Mandated Unique Device Identifier", formalDefinition="FDA Mandated Unique Device Identifier. Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm." ) - protected StringType udi; - - /** - * Lot number assigned by the manufacturer. - */ - @Child(name="lotNumber", type={StringType.class}, order=6, min=0, max=1) - @Description(shortDefinition="Lot number of manufacture", formalDefinition="Lot number assigned by the manufacturer." ) - protected StringType lotNumber; - - /** - * An organization that is responsible for the provision and ongoing maintenance of the device. - */ - @Child(name="owner", type={Organization.class}, order=7, min=0, max=1) - @Description(shortDefinition="Organization responsible for device", formalDefinition="An organization that is responsible for the provision and ongoing maintenance of the device." ) - protected Reference owner; - - /** - * The actual object that is the target of the reference (An organization that is responsible for the provision and ongoing maintenance of the device.) - */ - protected Organization ownerTarget; - - /** - * The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location. - */ - @Child(name="location", type={Location.class}, order=8, min=0, max=1) - @Description(shortDefinition="Where the resource is found", formalDefinition="The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. 'in/with the patient'), or a coded location." ) - protected Reference location; - - /** - * The actual object that is the target of the reference (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.) - */ - protected Location locationTarget; - - /** - * Patient information, if the resource is affixed to a person. - */ - @Child(name="patient", type={Patient.class}, order=9, min=0, max=1) - @Description(shortDefinition="If the resource is affixed to a person", formalDefinition="Patient information, if the resource is affixed to a person." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (Patient information, if the resource is affixed to a person.) - */ - protected Patient patientTarget; - - /** - * Contact details for an organization or a particular human that is responsible for the device. - */ - @Child(name="contact", type={ContactPoint.class}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Details for human/organization for support", formalDefinition="Contact details for an organization or a particular human that is responsible for the device." ) - protected List contact; - - /** - * A network address on which the device may be contacted directly. - */ - @Child(name="url", type={UriType.class}, order=11, min=0, max=1) - @Description(shortDefinition="Network address to contact device", formalDefinition="A network address on which the device may be contacted directly." ) - protected UriType url; - - private static final long serialVersionUID = 1190320903L; - - public Device() { - super(); - } - - public Device(CodeableConcept type) { - super(); - this.type = type; - } - - /** - * @return {@link #identifier} (Identifiers assigned to this device by various organizations. The most likely organizations to assign identifiers are the manufacturer and the owner, though regulatory agencies may also assign an identifier. The identifiers identify the particular device, not the kind of device.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Identifiers assigned to this device by various organizations. The most likely organizations to assign identifiers are the manufacturer and the owner, though regulatory agencies may also assign an identifier. The identifiers identify the particular device, not the kind of device.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #type} (A kind of this device.) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (A kind of this device.) - */ - public Device setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #manufacturer} (A name of the manufacturer.). This is the underlying object with id, value and extensions. The accessor "getManufacturer" gives direct access to the value - */ - public StringType getManufacturerElement() { - if (this.manufacturer == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.manufacturer"); - else if (Configuration.doAutoCreate()) - this.manufacturer = new StringType(); - return this.manufacturer; - } - - public boolean hasManufacturerElement() { - return this.manufacturer != null && !this.manufacturer.isEmpty(); - } - - public boolean hasManufacturer() { - return this.manufacturer != null && !this.manufacturer.isEmpty(); - } - - /** - * @param value {@link #manufacturer} (A name of the manufacturer.). This is the underlying object with id, value and extensions. The accessor "getManufacturer" gives direct access to the value - */ - public Device setManufacturerElement(StringType value) { - this.manufacturer = value; - return this; - } - - /** - * @return A name of the manufacturer. - */ - public String getManufacturer() { - return this.manufacturer == null ? null : this.manufacturer.getValue(); - } - - /** - * @param value A name of the manufacturer. - */ - public Device setManufacturer(String value) { - if (Utilities.noString(value)) - this.manufacturer = null; - else { - if (this.manufacturer == null) - this.manufacturer = new StringType(); - this.manufacturer.setValue(value); - } - return this; - } - - /** - * @return {@link #model} (The "model" - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.). This is the underlying object with id, value and extensions. The accessor "getModel" gives direct access to the value - */ - public StringType getModelElement() { - if (this.model == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.model"); - else if (Configuration.doAutoCreate()) - this.model = new StringType(); - return this.model; - } - - public boolean hasModelElement() { - return this.model != null && !this.model.isEmpty(); - } - - public boolean hasModel() { - return this.model != null && !this.model.isEmpty(); - } - - /** - * @param value {@link #model} (The "model" - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.). This is the underlying object with id, value and extensions. The accessor "getModel" gives direct access to the value - */ - public Device setModelElement(StringType value) { - this.model = value; - return this; - } - - /** - * @return The "model" - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type. - */ - public String getModel() { - return this.model == null ? null : this.model.getValue(); - } - - /** - * @param value The "model" - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type. - */ - public Device setModel(String value) { - if (Utilities.noString(value)) - this.model = null; - else { - if (this.model == null) - this.model = new StringType(); - this.model.setValue(value); - } - return this; - } - - /** - * @return {@link #version} (The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value - */ - public StringType getVersionElement() { - if (this.version == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.version"); - else if (Configuration.doAutoCreate()) - this.version = new StringType(); - return this.version; - } - - public boolean hasVersionElement() { - return this.version != null && !this.version.isEmpty(); - } - - public boolean hasVersion() { - return this.version != null && !this.version.isEmpty(); - } - - /** - * @param value {@link #version} (The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value - */ - public Device setVersionElement(StringType value) { - this.version = value; - return this; - } - - /** - * @return The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware. - */ - public String getVersion() { - return this.version == null ? null : this.version.getValue(); - } - - /** - * @param value The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware. - */ - public Device setVersion(String value) { - if (Utilities.noString(value)) - this.version = null; - else { - if (this.version == null) - this.version = new StringType(); - this.version.setValue(value); - } - return this; - } - - /** - * @return {@link #expiry} (Date of expiry of this device (if applicable).). This is the underlying object with id, value and extensions. The accessor "getExpiry" gives direct access to the value - */ - public DateType getExpiryElement() { - if (this.expiry == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.expiry"); - else if (Configuration.doAutoCreate()) - this.expiry = new DateType(); - return this.expiry; - } - - public boolean hasExpiryElement() { - return this.expiry != null && !this.expiry.isEmpty(); - } - - public boolean hasExpiry() { - return this.expiry != null && !this.expiry.isEmpty(); - } - - /** - * @param value {@link #expiry} (Date of expiry of this device (if applicable).). This is the underlying object with id, value and extensions. The accessor "getExpiry" gives direct access to the value - */ - public Device setExpiryElement(DateType value) { - this.expiry = value; - return this; - } - - /** - * @return Date of expiry of this device (if applicable). - */ - public Date getExpiry() { - return this.expiry == null ? null : this.expiry.getValue(); - } - - /** - * @param value Date of expiry of this device (if applicable). - */ - public Device setExpiry(Date value) { - if (value == null) - this.expiry = null; - else { - if (this.expiry == null) - this.expiry = new DateType(); - this.expiry.setValue(value); - } - return this; - } - - /** - * @return {@link #udi} (FDA Mandated Unique Device Identifier. Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.). This is the underlying object with id, value and extensions. The accessor "getUdi" gives direct access to the value - */ - public StringType getUdiElement() { - if (this.udi == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.udi"); - else if (Configuration.doAutoCreate()) - this.udi = new StringType(); - return this.udi; - } - - public boolean hasUdiElement() { - return this.udi != null && !this.udi.isEmpty(); - } - - public boolean hasUdi() { - return this.udi != null && !this.udi.isEmpty(); - } - - /** - * @param value {@link #udi} (FDA Mandated Unique Device Identifier. Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.). This is the underlying object with id, value and extensions. The accessor "getUdi" gives direct access to the value - */ - public Device setUdiElement(StringType value) { - this.udi = value; - return this; - } - - /** - * @return FDA Mandated Unique Device Identifier. Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm. - */ - public String getUdi() { - return this.udi == null ? null : this.udi.getValue(); - } - - /** - * @param value FDA Mandated Unique Device Identifier. Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm. - */ - public Device setUdi(String value) { - if (Utilities.noString(value)) - this.udi = null; - else { - if (this.udi == null) - this.udi = new StringType(); - this.udi.setValue(value); - } - return this; - } - - /** - * @return {@link #lotNumber} (Lot number assigned by the manufacturer.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value - */ - public StringType getLotNumberElement() { - if (this.lotNumber == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.lotNumber"); - else if (Configuration.doAutoCreate()) - this.lotNumber = new StringType(); - return this.lotNumber; - } - - public boolean hasLotNumberElement() { - return this.lotNumber != null && !this.lotNumber.isEmpty(); - } - - public boolean hasLotNumber() { - return this.lotNumber != null && !this.lotNumber.isEmpty(); - } - - /** - * @param value {@link #lotNumber} (Lot number assigned by the manufacturer.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value - */ - public Device setLotNumberElement(StringType value) { - this.lotNumber = value; - return this; - } - - /** - * @return Lot number assigned by the manufacturer. - */ - public String getLotNumber() { - return this.lotNumber == null ? null : this.lotNumber.getValue(); - } - - /** - * @param value Lot number assigned by the manufacturer. - */ - public Device setLotNumber(String value) { - if (Utilities.noString(value)) - this.lotNumber = null; - else { - if (this.lotNumber == null) - this.lotNumber = new StringType(); - this.lotNumber.setValue(value); - } - return this; - } - - /** - * @return {@link #owner} (An organization that is responsible for the provision and ongoing maintenance of the device.) - */ - public Reference getOwner() { - if (this.owner == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.owner"); - else if (Configuration.doAutoCreate()) - this.owner = new Reference(); - return this.owner; - } - - public boolean hasOwner() { - return this.owner != null && !this.owner.isEmpty(); - } - - /** - * @param value {@link #owner} (An organization that is responsible for the provision and ongoing maintenance of the device.) - */ - public Device setOwner(Reference value) { - this.owner = value; - return this; - } - - /** - * @return {@link #owner} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (An organization that is responsible for the provision and ongoing maintenance of the device.) - */ - public Organization getOwnerTarget() { - if (this.ownerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.owner"); - else if (Configuration.doAutoCreate()) - this.ownerTarget = new Organization(); - return this.ownerTarget; - } - - /** - * @param value {@link #owner} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (An organization that is responsible for the provision and ongoing maintenance of the device.) - */ - public Device setOwnerTarget(Organization value) { - this.ownerTarget = value; - return this; - } - - /** - * @return {@link #location} (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.) - */ - public Reference getLocation() { - if (this.location == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.location"); - else if (Configuration.doAutoCreate()) - this.location = new Reference(); - return this.location; - } - - public boolean hasLocation() { - return this.location != null && !this.location.isEmpty(); - } - - /** - * @param value {@link #location} (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.) - */ - public Device setLocation(Reference value) { - this.location = value; - return this; - } - - /** - * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.) - */ - public Location getLocationTarget() { - if (this.locationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.location"); - else if (Configuration.doAutoCreate()) - this.locationTarget = new Location(); - return this.locationTarget; - } - - /** - * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.) - */ - public Device setLocationTarget(Location value) { - this.locationTarget = value; - return this; - } - - /** - * @return {@link #patient} (Patient information, if the resource is affixed to a person.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (Patient information, if the resource is affixed to a person.) - */ - public Device setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Patient information, if the resource is affixed to a person.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Patient information, if the resource is affixed to a person.) - */ - public Device setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #contact} (Contact details for an organization or a particular human that is responsible for the device.) - */ - public List getContact() { - if (this.contact == null) - this.contact = new ArrayList(); - return this.contact; - } - - public boolean hasContact() { - if (this.contact == null) - return false; - for (ContactPoint item : this.contact) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #contact} (Contact details for an organization or a particular human that is responsible for the device.) - */ - // syntactic sugar - public ContactPoint addContact() { //3 - ContactPoint t = new ContactPoint(); - if (this.contact == null) - this.contact = new ArrayList(); - this.contact.add(t); - return t; - } - - /** - * @return {@link #url} (A network address on which the device may be contacted directly.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public UriType getUrlElement() { - if (this.url == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Device.url"); - else if (Configuration.doAutoCreate()) - this.url = new UriType(); - return this.url; - } - - public boolean hasUrlElement() { - return this.url != null && !this.url.isEmpty(); - } - - public boolean hasUrl() { - return this.url != null && !this.url.isEmpty(); - } - - /** - * @param value {@link #url} (A network address on which the device may be contacted directly.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public Device setUrlElement(UriType value) { - this.url = value; - return this; - } - - /** - * @return A network address on which the device may be contacted directly. - */ - public String getUrl() { - return this.url == null ? null : this.url.getValue(); - } - - /** - * @param value A network address on which the device may be contacted directly. - */ - public Device setUrl(String value) { - if (Utilities.noString(value)) - this.url = null; - else { - if (this.url == null) - this.url = new UriType(); - this.url.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "Identifiers assigned to this device by various organizations. The most likely organizations to assign identifiers are the manufacturer and the owner, though regulatory agencies may also assign an identifier. The identifiers identify the particular device, not the kind of device.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("type", "CodeableConcept", "A kind of this device.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("manufacturer", "string", "A name of the manufacturer.", 0, java.lang.Integer.MAX_VALUE, manufacturer)); - childrenList.add(new Property("model", "string", "The 'model' - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.", 0, java.lang.Integer.MAX_VALUE, model)); - childrenList.add(new Property("version", "string", "The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.", 0, java.lang.Integer.MAX_VALUE, version)); - childrenList.add(new Property("expiry", "date", "Date of expiry of this device (if applicable).", 0, java.lang.Integer.MAX_VALUE, expiry)); - childrenList.add(new Property("udi", "string", "FDA Mandated Unique Device Identifier. Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.", 0, java.lang.Integer.MAX_VALUE, udi)); - childrenList.add(new Property("lotNumber", "string", "Lot number assigned by the manufacturer.", 0, java.lang.Integer.MAX_VALUE, lotNumber)); - childrenList.add(new Property("owner", "Reference(Organization)", "An organization that is responsible for the provision and ongoing maintenance of the device.", 0, java.lang.Integer.MAX_VALUE, owner)); - childrenList.add(new Property("location", "Reference(Location)", "The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. 'in/with the patient'), or a coded location.", 0, java.lang.Integer.MAX_VALUE, location)); - childrenList.add(new Property("patient", "Reference(Patient)", "Patient information, if the resource is affixed to a person.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("contact", "ContactPoint", "Contact details for an organization or a particular human that is responsible for the device.", 0, java.lang.Integer.MAX_VALUE, contact)); - childrenList.add(new Property("url", "uri", "A network address on which the device may be contacted directly.", 0, java.lang.Integer.MAX_VALUE, url)); - } - - public Device copy() { - Device dst = new Device(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.type = type == null ? null : type.copy(); - dst.manufacturer = manufacturer == null ? null : manufacturer.copy(); - dst.model = model == null ? null : model.copy(); - dst.version = version == null ? null : version.copy(); - dst.expiry = expiry == null ? null : expiry.copy(); - dst.udi = udi == null ? null : udi.copy(); - dst.lotNumber = lotNumber == null ? null : lotNumber.copy(); - dst.owner = owner == null ? null : owner.copy(); - dst.location = location == null ? null : location.copy(); - dst.patient = patient == null ? null : patient.copy(); - if (contact != null) { - dst.contact = new ArrayList(); - for (ContactPoint i : contact) - dst.contact.add(i.copy()); - }; - dst.url = url == null ? null : url.copy(); - return dst; - } - - protected Device typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (type == null || type.isEmpty()) - && (manufacturer == null || manufacturer.isEmpty()) && (model == null || model.isEmpty()) - && (version == null || version.isEmpty()) && (expiry == null || expiry.isEmpty()) && (udi == null || udi.isEmpty()) - && (lotNumber == null || lotNumber.isEmpty()) && (owner == null || owner.isEmpty()) && (location == null || location.isEmpty()) - && (patient == null || patient.isEmpty()) && (contact == null || contact.isEmpty()) && (url == null || url.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Device; - } - - @SearchParamDefinition(name="organization", path="Device.owner", description="The organization responsible for the device", type="reference" ) - public static final String SP_ORGANIZATION = "organization"; - @SearchParamDefinition(name="model", path="Device.model", description="The model of the device", type="string" ) - public static final String SP_MODEL = "model"; - @SearchParamDefinition(name="patient", path="Device.patient", description="Patient information, if the resource is affixed to a person", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="location", path="Device.location", description="A location, where the resource is found", type="reference" ) - public static final String SP_LOCATION = "location"; - @SearchParamDefinition(name="manufacturer", path="Device.manufacturer", description="The manufacturer of the device", type="string" ) - public static final String SP_MANUFACTURER = "manufacturer"; - @SearchParamDefinition(name="udi", path="Device.udi", description="FDA Mandated Unique Device Identifier", type="string" ) - public static final String SP_UDI = "udi"; - @SearchParamDefinition(name="type", path="Device.type", description="The type of the device", type="token" ) - public static final String SP_TYPE = "type"; - @SearchParamDefinition(name="identifier", path="Device.identifier", description="Instance id from manufacturer, owner and others", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * This resource identifies an instance of a manufactured thing that is used in the provision of healthcare without being substantially changed through that activity. The device may be a machine, an insert, a computer, an application, etc. This includes durable (reusable) medical equipment as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health. + */ +@ResourceDef(name="Device", profile="http://hl7.org/fhir/Profile/Device") +public class Device extends DomainResource { + + /** + * Unique instance identifiers assigned to a device by organizations like manufacturers, owners or regulatory agencies. If the identifier identifies the type of device, Device.type should be used. An example is the FDA Mandated Unique Device Identifier (UDI) which identifies an instance of a device uniquely if the serial number is present, . - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Instance id from manufacturer, owner, regulatory agencies and others", formalDefinition="Unique instance identifiers assigned to a device by organizations like manufacturers, owners or regulatory agencies. If the identifier identifies the type of device, Device.type should be used. An example is the FDA Mandated Unique Device Identifier (UDI) which identifies an instance of a device uniquely if the serial number is present, . - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm." ) + protected List identifier; + + /** + * Code or identifier to identify a kind of device An example is the FDA Mandated Unique Device Identifier (UDI) which identifies a type of a device when the serial number is absent, otherwise it uniquely identifies the device instance and Device.identifier should be used instead of Device.type. - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm. + */ + @Child(name="type", type={CodeableConcept.class}, order=0, min=1, max=1) + @Description(shortDefinition="What kind of device this is", formalDefinition="Code or identifier to identify a kind of device An example is the FDA Mandated Unique Device Identifier (UDI) which identifies a type of a device when the serial number is absent, otherwise it uniquely identifies the device instance and Device.identifier should be used instead of Device.type. - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm." ) + protected CodeableConcept type; + + /** + * A name of the manufacturer. + */ + @Child(name="manufacturer", type={StringType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Name of device manufacturer", formalDefinition="A name of the manufacturer." ) + protected StringType manufacturer; + + /** + * The "model" - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type. + */ + @Child(name="model", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Model id assigned by the manufacturer", formalDefinition="The 'model' - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type." ) + protected StringType model; + + /** + * The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware. + */ + @Child(name="version", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Version number (i.e. software)", formalDefinition="The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware." ) + protected StringType version; + + /** + * The Date and time when the device was manufactured. + */ + @Child(name="manufactureDate", type={DateTimeType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Manufacture date", formalDefinition="The Date and time when the device was manufactured." ) + protected DateTimeType manufactureDate; + + /** + * The date and time beyond which this device is no longer valid or should not be used (if applicable). + */ + @Child(name="expiry", type={DateTimeType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Date and time of expiry of this device (if applicable)", formalDefinition="The date and time beyond which this device is no longer valid or should not be used (if applicable)." ) + protected DateTimeType expiry; + + /** + * Lot number assigned by the manufacturer. + */ + @Child(name="lotNumber", type={StringType.class}, order=6, min=0, max=1) + @Description(shortDefinition="Lot number of manufacture", formalDefinition="Lot number assigned by the manufacturer." ) + protected StringType lotNumber; + + /** + * An organization that is responsible for the provision and ongoing maintenance of the device. + */ + @Child(name="owner", type={Organization.class}, order=7, min=0, max=1) + @Description(shortDefinition="Organization responsible for device", formalDefinition="An organization that is responsible for the provision and ongoing maintenance of the device." ) + protected Reference owner; + + /** + * The actual object that is the target of the reference (An organization that is responsible for the provision and ongoing maintenance of the device.) + */ + protected Organization ownerTarget; + + /** + * The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location. + */ + @Child(name="location", type={Location.class}, order=8, min=0, max=1) + @Description(shortDefinition="Where the resource is found", formalDefinition="The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. 'in/with the patient'), or a coded location." ) + protected Reference location; + + /** + * The actual object that is the target of the reference (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.) + */ + protected Location locationTarget; + + /** + * Patient information, if the resource is affixed to a person. + */ + @Child(name="patient", type={Patient.class}, order=9, min=0, max=1) + @Description(shortDefinition="If the resource is affixed to a person", formalDefinition="Patient information, if the resource is affixed to a person." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (Patient information, if the resource is affixed to a person.) + */ + protected Patient patientTarget; + + /** + * Contact details for an organization or a particular human that is responsible for the device. + */ + @Child(name="contact", type={ContactPoint.class}, order=10, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Details for human/organization for support", formalDefinition="Contact details for an organization or a particular human that is responsible for the device." ) + protected List contact; + + /** + * A network address on which the device may be contacted directly. + */ + @Child(name="url", type={UriType.class}, order=11, min=0, max=1) + @Description(shortDefinition="Network address to contact device", formalDefinition="A network address on which the device may be contacted directly." ) + protected UriType url; + + private static final long serialVersionUID = 398718675L; + + public Device() { + super(); + } + + public Device(CodeableConcept type) { + super(); + this.type = type; + } + + /** + * @return {@link #identifier} (Unique instance identifiers assigned to a device by organizations like manufacturers, owners or regulatory agencies. If the identifier identifies the type of device, Device.type should be used. An example is the FDA Mandated Unique Device Identifier (UDI) which identifies an instance of a device uniquely if the serial number is present, . - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Unique instance identifiers assigned to a device by organizations like manufacturers, owners or regulatory agencies. If the identifier identifies the type of device, Device.type should be used. An example is the FDA Mandated Unique Device Identifier (UDI) which identifies an instance of a device uniquely if the serial number is present, . - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #type} (Code or identifier to identify a kind of device An example is the FDA Mandated Unique Device Identifier (UDI) which identifies a type of a device when the serial number is absent, otherwise it uniquely identifies the device instance and Device.identifier should be used instead of Device.type. - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Code or identifier to identify a kind of device An example is the FDA Mandated Unique Device Identifier (UDI) which identifies a type of a device when the serial number is absent, otherwise it uniquely identifies the device instance and Device.identifier should be used instead of Device.type. - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.) + */ + public Device setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #manufacturer} (A name of the manufacturer.). This is the underlying object with id, value and extensions. The accessor "getManufacturer" gives direct access to the value + */ + public StringType getManufacturerElement() { + if (this.manufacturer == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.manufacturer"); + else if (Configuration.doAutoCreate()) + this.manufacturer = new StringType(); // bb + return this.manufacturer; + } + + public boolean hasManufacturerElement() { + return this.manufacturer != null && !this.manufacturer.isEmpty(); + } + + public boolean hasManufacturer() { + return this.manufacturer != null && !this.manufacturer.isEmpty(); + } + + /** + * @param value {@link #manufacturer} (A name of the manufacturer.). This is the underlying object with id, value and extensions. The accessor "getManufacturer" gives direct access to the value + */ + public Device setManufacturerElement(StringType value) { + this.manufacturer = value; + return this; + } + + /** + * @return A name of the manufacturer. + */ + public String getManufacturer() { + return this.manufacturer == null ? null : this.manufacturer.getValue(); + } + + /** + * @param value A name of the manufacturer. + */ + public Device setManufacturer(String value) { + if (Utilities.noString(value)) + this.manufacturer = null; + else { + if (this.manufacturer == null) + this.manufacturer = new StringType(); + this.manufacturer.setValue(value); + } + return this; + } + + /** + * @return {@link #model} (The "model" - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.). This is the underlying object with id, value and extensions. The accessor "getModel" gives direct access to the value + */ + public StringType getModelElement() { + if (this.model == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.model"); + else if (Configuration.doAutoCreate()) + this.model = new StringType(); // bb + return this.model; + } + + public boolean hasModelElement() { + return this.model != null && !this.model.isEmpty(); + } + + public boolean hasModel() { + return this.model != null && !this.model.isEmpty(); + } + + /** + * @param value {@link #model} (The "model" - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.). This is the underlying object with id, value and extensions. The accessor "getModel" gives direct access to the value + */ + public Device setModelElement(StringType value) { + this.model = value; + return this; + } + + /** + * @return The "model" - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type. + */ + public String getModel() { + return this.model == null ? null : this.model.getValue(); + } + + /** + * @param value The "model" - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type. + */ + public Device setModel(String value) { + if (Utilities.noString(value)) + this.model = null; + else { + if (this.model == null) + this.model = new StringType(); + this.model.setValue(value); + } + return this; + } + + /** + * @return {@link #version} (The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value + */ + public StringType getVersionElement() { + if (this.version == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.version"); + else if (Configuration.doAutoCreate()) + this.version = new StringType(); // bb + return this.version; + } + + public boolean hasVersionElement() { + return this.version != null && !this.version.isEmpty(); + } + + public boolean hasVersion() { + return this.version != null && !this.version.isEmpty(); + } + + /** + * @param value {@link #version} (The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value + */ + public Device setVersionElement(StringType value) { + this.version = value; + return this; + } + + /** + * @return The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware. + */ + public String getVersion() { + return this.version == null ? null : this.version.getValue(); + } + + /** + * @param value The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware. + */ + public Device setVersion(String value) { + if (Utilities.noString(value)) + this.version = null; + else { + if (this.version == null) + this.version = new StringType(); + this.version.setValue(value); + } + return this; + } + + /** + * @return {@link #manufactureDate} (The Date and time when the device was manufactured.). This is the underlying object with id, value and extensions. The accessor "getManufactureDate" gives direct access to the value + */ + public DateTimeType getManufactureDateElement() { + if (this.manufactureDate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.manufactureDate"); + else if (Configuration.doAutoCreate()) + this.manufactureDate = new DateTimeType(); // bb + return this.manufactureDate; + } + + public boolean hasManufactureDateElement() { + return this.manufactureDate != null && !this.manufactureDate.isEmpty(); + } + + public boolean hasManufactureDate() { + return this.manufactureDate != null && !this.manufactureDate.isEmpty(); + } + + /** + * @param value {@link #manufactureDate} (The Date and time when the device was manufactured.). This is the underlying object with id, value and extensions. The accessor "getManufactureDate" gives direct access to the value + */ + public Device setManufactureDateElement(DateTimeType value) { + this.manufactureDate = value; + return this; + } + + /** + * @return The Date and time when the device was manufactured. + */ + public Date getManufactureDate() { + return this.manufactureDate == null ? null : this.manufactureDate.getValue(); + } + + /** + * @param value The Date and time when the device was manufactured. + */ + public Device setManufactureDate(Date value) { + if (value == null) + this.manufactureDate = null; + else { + if (this.manufactureDate == null) + this.manufactureDate = new DateTimeType(); + this.manufactureDate.setValue(value); + } + return this; + } + + /** + * @return {@link #expiry} (The date and time beyond which this device is no longer valid or should not be used (if applicable).). This is the underlying object with id, value and extensions. The accessor "getExpiry" gives direct access to the value + */ + public DateTimeType getExpiryElement() { + if (this.expiry == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.expiry"); + else if (Configuration.doAutoCreate()) + this.expiry = new DateTimeType(); // bb + return this.expiry; + } + + public boolean hasExpiryElement() { + return this.expiry != null && !this.expiry.isEmpty(); + } + + public boolean hasExpiry() { + return this.expiry != null && !this.expiry.isEmpty(); + } + + /** + * @param value {@link #expiry} (The date and time beyond which this device is no longer valid or should not be used (if applicable).). This is the underlying object with id, value and extensions. The accessor "getExpiry" gives direct access to the value + */ + public Device setExpiryElement(DateTimeType value) { + this.expiry = value; + return this; + } + + /** + * @return The date and time beyond which this device is no longer valid or should not be used (if applicable). + */ + public Date getExpiry() { + return this.expiry == null ? null : this.expiry.getValue(); + } + + /** + * @param value The date and time beyond which this device is no longer valid or should not be used (if applicable). + */ + public Device setExpiry(Date value) { + if (value == null) + this.expiry = null; + else { + if (this.expiry == null) + this.expiry = new DateTimeType(); + this.expiry.setValue(value); + } + return this; + } + + /** + * @return {@link #lotNumber} (Lot number assigned by the manufacturer.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value + */ + public StringType getLotNumberElement() { + if (this.lotNumber == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.lotNumber"); + else if (Configuration.doAutoCreate()) + this.lotNumber = new StringType(); // bb + return this.lotNumber; + } + + public boolean hasLotNumberElement() { + return this.lotNumber != null && !this.lotNumber.isEmpty(); + } + + public boolean hasLotNumber() { + return this.lotNumber != null && !this.lotNumber.isEmpty(); + } + + /** + * @param value {@link #lotNumber} (Lot number assigned by the manufacturer.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value + */ + public Device setLotNumberElement(StringType value) { + this.lotNumber = value; + return this; + } + + /** + * @return Lot number assigned by the manufacturer. + */ + public String getLotNumber() { + return this.lotNumber == null ? null : this.lotNumber.getValue(); + } + + /** + * @param value Lot number assigned by the manufacturer. + */ + public Device setLotNumber(String value) { + if (Utilities.noString(value)) + this.lotNumber = null; + else { + if (this.lotNumber == null) + this.lotNumber = new StringType(); + this.lotNumber.setValue(value); + } + return this; + } + + /** + * @return {@link #owner} (An organization that is responsible for the provision and ongoing maintenance of the device.) + */ + public Reference getOwner() { + if (this.owner == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.owner"); + else if (Configuration.doAutoCreate()) + this.owner = new Reference(); // cc + return this.owner; + } + + public boolean hasOwner() { + return this.owner != null && !this.owner.isEmpty(); + } + + /** + * @param value {@link #owner} (An organization that is responsible for the provision and ongoing maintenance of the device.) + */ + public Device setOwner(Reference value) { + this.owner = value; + return this; + } + + /** + * @return {@link #owner} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (An organization that is responsible for the provision and ongoing maintenance of the device.) + */ + public Organization getOwnerTarget() { + if (this.ownerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.owner"); + else if (Configuration.doAutoCreate()) + this.ownerTarget = new Organization(); // aa + return this.ownerTarget; + } + + /** + * @param value {@link #owner} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (An organization that is responsible for the provision and ongoing maintenance of the device.) + */ + public Device setOwnerTarget(Organization value) { + this.ownerTarget = value; + return this; + } + + /** + * @return {@link #location} (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.) + */ + public Reference getLocation() { + if (this.location == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.location"); + else if (Configuration.doAutoCreate()) + this.location = new Reference(); // cc + return this.location; + } + + public boolean hasLocation() { + return this.location != null && !this.location.isEmpty(); + } + + /** + * @param value {@link #location} (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.) + */ + public Device setLocation(Reference value) { + this.location = value; + return this; + } + + /** + * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.) + */ + public Location getLocationTarget() { + if (this.locationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.location"); + else if (Configuration.doAutoCreate()) + this.locationTarget = new Location(); // aa + return this.locationTarget; + } + + /** + * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.) + */ + public Device setLocationTarget(Location value) { + this.locationTarget = value; + return this; + } + + /** + * @return {@link #patient} (Patient information, if the resource is affixed to a person.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (Patient information, if the resource is affixed to a person.) + */ + public Device setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Patient information, if the resource is affixed to a person.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Patient information, if the resource is affixed to a person.) + */ + public Device setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #contact} (Contact details for an organization or a particular human that is responsible for the device.) + */ + public List getContact() { + if (this.contact == null) + this.contact = new ArrayList(); + return this.contact; + } + + public boolean hasContact() { + if (this.contact == null) + return false; + for (ContactPoint item : this.contact) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #contact} (Contact details for an organization or a particular human that is responsible for the device.) + */ + // syntactic sugar + public ContactPoint addContact() { //3 + ContactPoint t = new ContactPoint(); + if (this.contact == null) + this.contact = new ArrayList(); + this.contact.add(t); + return t; + } + + /** + * @return {@link #url} (A network address on which the device may be contacted directly.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Device.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (A network address on which the device may be contacted directly.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public Device setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return A network address on which the device may be contacted directly. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value A network address on which the device may be contacted directly. + */ + public Device setUrl(String value) { + if (Utilities.noString(value)) + this.url = null; + else { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Unique instance identifiers assigned to a device by organizations like manufacturers, owners or regulatory agencies. If the identifier identifies the type of device, Device.type should be used. An example is the FDA Mandated Unique Device Identifier (UDI) which identifies an instance of a device uniquely if the serial number is present, . - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("type", "CodeableConcept", "Code or identifier to identify a kind of device An example is the FDA Mandated Unique Device Identifier (UDI) which identifies a type of a device when the serial number is absent, otherwise it uniquely identifies the device instance and Device.identifier should be used instead of Device.type. - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("manufacturer", "string", "A name of the manufacturer.", 0, java.lang.Integer.MAX_VALUE, manufacturer)); + childrenList.add(new Property("model", "string", "The 'model' - an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.", 0, java.lang.Integer.MAX_VALUE, model)); + childrenList.add(new Property("version", "string", "The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.", 0, java.lang.Integer.MAX_VALUE, version)); + childrenList.add(new Property("manufactureDate", "dateTime", "The Date and time when the device was manufactured.", 0, java.lang.Integer.MAX_VALUE, manufactureDate)); + childrenList.add(new Property("expiry", "dateTime", "The date and time beyond which this device is no longer valid or should not be used (if applicable).", 0, java.lang.Integer.MAX_VALUE, expiry)); + childrenList.add(new Property("lotNumber", "string", "Lot number assigned by the manufacturer.", 0, java.lang.Integer.MAX_VALUE, lotNumber)); + childrenList.add(new Property("owner", "Reference(Organization)", "An organization that is responsible for the provision and ongoing maintenance of the device.", 0, java.lang.Integer.MAX_VALUE, owner)); + childrenList.add(new Property("location", "Reference(Location)", "The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. 'in/with the patient'), or a coded location.", 0, java.lang.Integer.MAX_VALUE, location)); + childrenList.add(new Property("patient", "Reference(Patient)", "Patient information, if the resource is affixed to a person.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("contact", "ContactPoint", "Contact details for an organization or a particular human that is responsible for the device.", 0, java.lang.Integer.MAX_VALUE, contact)); + childrenList.add(new Property("url", "uri", "A network address on which the device may be contacted directly.", 0, java.lang.Integer.MAX_VALUE, url)); + } + + public Device copy() { + Device dst = new Device(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.type = type == null ? null : type.copy(); + dst.manufacturer = manufacturer == null ? null : manufacturer.copy(); + dst.model = model == null ? null : model.copy(); + dst.version = version == null ? null : version.copy(); + dst.manufactureDate = manufactureDate == null ? null : manufactureDate.copy(); + dst.expiry = expiry == null ? null : expiry.copy(); + dst.lotNumber = lotNumber == null ? null : lotNumber.copy(); + dst.owner = owner == null ? null : owner.copy(); + dst.location = location == null ? null : location.copy(); + dst.patient = patient == null ? null : patient.copy(); + if (contact != null) { + dst.contact = new ArrayList(); + for (ContactPoint i : contact) + dst.contact.add(i.copy()); + }; + dst.url = url == null ? null : url.copy(); + return dst; + } + + protected Device typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Device)) + return false; + Device o = (Device) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(type, o.type, true) && compareDeep(manufacturer, o.manufacturer, true) + && compareDeep(model, o.model, true) && compareDeep(version, o.version, true) && compareDeep(manufactureDate, o.manufactureDate, true) + && compareDeep(expiry, o.expiry, true) && compareDeep(lotNumber, o.lotNumber, true) && compareDeep(owner, o.owner, true) + && compareDeep(location, o.location, true) && compareDeep(patient, o.patient, true) && compareDeep(contact, o.contact, true) + && compareDeep(url, o.url, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Device)) + return false; + Device o = (Device) other; + return compareValues(manufacturer, o.manufacturer, true) && compareValues(model, o.model, true) && compareValues(version, o.version, true) + && compareValues(manufactureDate, o.manufactureDate, true) && compareValues(expiry, o.expiry, true) + && compareValues(lotNumber, o.lotNumber, true) && compareValues(url, o.url, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (type == null || type.isEmpty()) + && (manufacturer == null || manufacturer.isEmpty()) && (model == null || model.isEmpty()) + && (version == null || version.isEmpty()) && (manufactureDate == null || manufactureDate.isEmpty()) + && (expiry == null || expiry.isEmpty()) && (lotNumber == null || lotNumber.isEmpty()) && (owner == null || owner.isEmpty()) + && (location == null || location.isEmpty()) && (patient == null || patient.isEmpty()) && (contact == null || contact.isEmpty()) + && (url == null || url.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Device; + } + + @SearchParamDefinition(name="organization", path="Device.owner", description="The organization responsible for the device", type="reference" ) + public static final String SP_ORGANIZATION = "organization"; + @SearchParamDefinition(name="model", path="Device.model", description="The model of the device", type="string" ) + public static final String SP_MODEL = "model"; + @SearchParamDefinition(name="patient", path="Device.patient", description="Patient information, if the resource is affixed to a person", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="location", path="Device.location", description="A location, where the resource is found", type="reference" ) + public static final String SP_LOCATION = "location"; + @SearchParamDefinition(name="manufacturer", path="Device.manufacturer", description="The manufacturer of the device", type="string" ) + public static final String SP_MANUFACTURER = "manufacturer"; + @SearchParamDefinition(name="type", path="Device.type", description="The type of the device", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="identifier", path="Device.identifier", description="Instance id from manufacturer, owner, regulatory agencies and others", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9477c2cf009a40b2ea37125ea94023a1056ae726 GIT binary patch literal 1335 zcmb`HZ%@-u6vm%BwsjjrCL#igqE!BfFa-q^L`GL+Vcixs^aXD$U1i0tUAhflnV9GY zFwqZSqKR)+qA|ws0sK(La|ULFzzd?u_B{93o_p@?={^1R`^PSTNvIKA#HBD|=nvEA zGUF8q0}L|DRhB`PA(mm55teH#qb%21#w3hOxGAtA=bu?MqonB-+4VN%l07XyDOsLu zIn|o(7^Ylyi>56n&27st6}Mb*9n-1FnyFXoo>``G&a)iDs@SH0Z#^Xtnlo(6v1;=I zEyE)Z1^f!75NJKH%zafZ*X{9zNQ;bY3T;ja|lH8ZrwA?C5!KO9$IyLOW)Qh zk?I(>TeX}`&8(H&qJ#+vlTqBpR1_UJ6U8)UqPT;*0=+yXZtKowJmco;Mrp}1?V{>= zt{25Dht09vW0_~U&$7UhU|D2QSdy3#7^51+sYY?GQT%U>;*A=`5A9Z_@QB(mbv!_a_9kL}o3Kj`dU9ou)Pvv2H$PJVFSaI7{9| zP(%xjfUn;nc7H~8;QPYAmT&O;vmfDKX<(2r&_sza*u)T_)Wk4hsEHB6*n#L)<^$nT z<^%C<%;DzzQ_PVjw==gk_%m7&riVF)0J<@NLGmF?P)`LgMXit|SCK=Wynx3r$cw0; zN?yYYyd-~x*LXwz7Vq$$`~yB=hulY5fncLJ&nY{oHM<^3=z(^GWcb>#LN)HC1U{U{ Z1#&<7NN>=;gRaGxVj=pz_2Je+&mWbTIvW50 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent$DeviceComponentProductionSpecificationComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent$DeviceComponentProductionSpecificationComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..4f28a7c2b25a93d7d20af2b219a2911e9dfb08e9 GIT binary patch literal 6332 zcmcIoX?GLX8Gf#8BO%Kmi_MVG4h3Rkg9U+v1XDJf1hFS(36L}$%VT>$nh`T218owL zrVSyXOV-wOU+F^Iqz#6IHX;3xoYNoB-;f{B(@!~dpLa&KHd}(8#irew~ zF#ezradSrc(7BwUux79A3@1l28JLX^obir4fyuZ%dQy3>r=Yov#!c zvZf_d$W%Y8aNli9?=#%AW9Gyv>X_?}*pAm{44IZGOA3j8!Z(M^v~Rc;D31@>PFBy9 z(wz?)l-S6L-gq!8akLy%i+t(*K=#X=g>e&58tf~3ahpgD?KEsKuEH!4f+AaiG;?K zw-xR$_v>x)(aLxbLPrcoLga9&PeJWgXkqS&7ri5TCT}#cFic$e^pk%p%-Spgy@lz~ zvFZqONOG0YzSp#j{eBc45_1_*!-glYgM3eRtg0DP)fwN?@9F7N`}EwTJRVO`9+e-b z4!2B4ALBgDqEU$CgJtfYN};KJg;>h645v4vyRN}Pa;bLQSK3$`QH3!pD&FfE#|kos z9-J~((z3IT6H5}4-1Ju&_Z&K_Y~ey}xFym)Z=`KRTJDgY86(RoQy+6l)+n?Q^9*uY ztF}l^kIX<`$2TQfKX2c(R{2I@J_F&TKB^}(x;2~(jOk%-S7@z*q;R^Un)vg!I+ihA z&u_Pm!PYmgU_#zAGs(T&>XF(pyWbqPbgA45J(U!jYt{=MTh4I2b3I#pNsVbccTVBS zItfydgLj;hy#Mg_#k&@7Rtiz$bY9Q6eTI=!SXn!ncId9rBPFXPVCo;yGa37gLfCY7 zW^*2muU8^>upADsMHf2d zV%UKD!nhj4A8~?hpcs`q9mjSQ4s7>4g8((p*7Uq*uSq+Gbl(aa%G0pAR(DHlmsTQL z{}jWYMO)V$+#zFl8Yg1t!%l@qKO>vclbuG2^F6hUDb~^$Qeb;M{27^$E9-G}tSDBk z7~aC$?ES^#3iiVIOALR-J270tcnmq5R#;IB*km5^=quWz9MttNZp82|-ea;9UBEkp z>tANVxT$cWmiUS&xzmJ=;cxhR3?3enL6>1DhOgo4F}#ltVt7hsxA38CS(XjSh6C1iW016AHE6c2ku|d0(EW-Nl-@z)&{(*s$Mq0j& zv@%1a#Pa@XxXHtlGk$qlc5uKmsAXY_uyYjjY%R5{pr&@iIOv#JDjhZa>#M>Or4jUw!m zmbT`9OYyraXbijR31DNW5Bj*@JEY)H@T6_WYl|*Fl$tuqNvRCW_|?9iUw4iCVTtGG z@cn#Six4)V2@kkjeDDNRnp>Mv=)vX`zKkt0+e(^kF1BNbi(YcGAZ=^ zvFn(94I!a>i;N*(>=MkP*hL7dHngb4SfrLTVn(RU<-+;#6=P^s29L6Q5$= zA`$cvTIDg0=w*Z(ub{Ev>XhhNLZ&odOcO#2wh7}^6ukzRldhBtMoT-N2$T#*m_Wuiy)TT*;$S zpLdO;?Wk{FX*Qjt{!^H%vRJ4rEK@c*)#(D%hPkZ~CKYcmR3m9{9`@ukG_V5_-eYeiyZ;+|kDKDAXWAPZR^q4IRy zC^U5jJ?bousB>^=LZlQf2%?_>R zU*ipQk71=?<7;#9>IWKMOp zL@sZ91+z{R%vvdCC8swlUQoQYSZo7@uTbHuRQMVdzD|X2P~n@tLe}wUgev&8QBWks zMp9-Q`^>sAY!bL1`B@|7dv;3jSqZUj$8U@p!{F72nRd zdZwUrX+dXG=Q!?_SO_Y_!$sWRUe*YH%-{AXK_!s589Y4bpnEgKw CNwv2C literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent$MeasurementPrinciple.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent$MeasurementPrinciple.class new file mode 100644 index 0000000000000000000000000000000000000000..629a998cc9d6ea565ee390697564279a41ce7e2f GIT binary patch literal 4410 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 Wl_~&KLe13H9lO`ip*f5(ME?aY_LtWH literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..7033c8ad7c9c56bcf20e34fb5f22d86f8338ba2c GIT binary patch literal 15724 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DeviceComponent.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent.java similarity index 90% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DeviceComponent.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent.java index a1243a9cae8..bf6dad3f6fb 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DeviceComponent.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceComponent.java @@ -1,915 +1,936 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Describes the characteristics, operational status and capabilities of a medical-related component of a medical device. - */ -@ResourceDef(name="DeviceComponent", profile="http://hl7.org/fhir/Profile/DeviceComponent") -public class DeviceComponent extends DomainResource { - - public enum MeasurementPrinciple implements FhirEnum { - /** - * Measurement principle isn't in the list. - */ - OTHER, - /** - * Measurement is done using chemical. - */ - CHEMICAL, - /** - * Measurement is done using electrical. - */ - ELECTRICAL, - /** - * Measurement is done using impedance. - */ - IMPEDANCE, - /** - * Measurement is done using nuclear. - */ - NUCLEAR, - /** - * Measurement is done using optical. - */ - OPTICAL, - /** - * Measurement is done using thermal. - */ - THERMAL, - /** - * Measurement is done using biological. - */ - BIOLOGICAL, - /** - * Measurement is done using mechanical. - */ - MECHANICAL, - /** - * Measurement is done using acoustical. - */ - ACOUSTICAL, - /** - * Measurement is done using manual. - */ - MANUAL, - /** - * added to help the parsers - */ - NULL; - - public static final MeasurementPrincipleEnumFactory ENUM_FACTORY = new MeasurementPrincipleEnumFactory(); - - public static MeasurementPrinciple fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("other".equals(codeString)) - return OTHER; - if ("chemical".equals(codeString)) - return CHEMICAL; - if ("electrical".equals(codeString)) - return ELECTRICAL; - if ("impedance".equals(codeString)) - return IMPEDANCE; - if ("nuclear".equals(codeString)) - return NUCLEAR; - if ("optical".equals(codeString)) - return OPTICAL; - if ("thermal".equals(codeString)) - return THERMAL; - if ("biological".equals(codeString)) - return BIOLOGICAL; - if ("mechanical".equals(codeString)) - return MECHANICAL; - if ("acoustical".equals(codeString)) - return ACOUSTICAL; - if ("manual".equals(codeString)) - return MANUAL; - throw new IllegalArgumentException("Unknown MeasurementPrinciple code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case OTHER: return "other"; - case CHEMICAL: return "chemical"; - case ELECTRICAL: return "electrical"; - case IMPEDANCE: return "impedance"; - case NUCLEAR: return "nuclear"; - case OPTICAL: return "optical"; - case THERMAL: return "thermal"; - case BIOLOGICAL: return "biological"; - case MECHANICAL: return "mechanical"; - case ACOUSTICAL: return "acoustical"; - case MANUAL: return "manual"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case OTHER: return ""; - case CHEMICAL: return ""; - case ELECTRICAL: return ""; - case IMPEDANCE: return ""; - case NUCLEAR: return ""; - case OPTICAL: return ""; - case THERMAL: return ""; - case BIOLOGICAL: return ""; - case MECHANICAL: return ""; - case ACOUSTICAL: return ""; - case MANUAL: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case OTHER: return "Measurement principle isn't in the list."; - case CHEMICAL: return "Measurement is done using chemical."; - case ELECTRICAL: return "Measurement is done using electrical."; - case IMPEDANCE: return "Measurement is done using impedance."; - case NUCLEAR: return "Measurement is done using nuclear."; - case OPTICAL: return "Measurement is done using optical."; - case THERMAL: return "Measurement is done using thermal."; - case BIOLOGICAL: return "Measurement is done using biological."; - case MECHANICAL: return "Measurement is done using mechanical."; - case ACOUSTICAL: return "Measurement is done using acoustical."; - case MANUAL: return "Measurement is done using manual."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case OTHER: return "msp-other"; - case CHEMICAL: return "msp-chemical"; - case ELECTRICAL: return "msp-electrical"; - case IMPEDANCE: return "msp-impedance"; - case NUCLEAR: return "msp-nuclear"; - case OPTICAL: return "msp-optical"; - case THERMAL: return "msp-thermal"; - case BIOLOGICAL: return "msp-biological"; - case MECHANICAL: return "msp-mechanical"; - case ACOUSTICAL: return "msp-acoustical"; - case MANUAL: return "msp-manual"; - default: return "?"; - } - } - } - - public static class MeasurementPrincipleEnumFactory implements EnumFactory { - public MeasurementPrinciple fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("other".equals(codeString)) - return MeasurementPrinciple.OTHER; - if ("chemical".equals(codeString)) - return MeasurementPrinciple.CHEMICAL; - if ("electrical".equals(codeString)) - return MeasurementPrinciple.ELECTRICAL; - if ("impedance".equals(codeString)) - return MeasurementPrinciple.IMPEDANCE; - if ("nuclear".equals(codeString)) - return MeasurementPrinciple.NUCLEAR; - if ("optical".equals(codeString)) - return MeasurementPrinciple.OPTICAL; - if ("thermal".equals(codeString)) - return MeasurementPrinciple.THERMAL; - if ("biological".equals(codeString)) - return MeasurementPrinciple.BIOLOGICAL; - if ("mechanical".equals(codeString)) - return MeasurementPrinciple.MECHANICAL; - if ("acoustical".equals(codeString)) - return MeasurementPrinciple.ACOUSTICAL; - if ("manual".equals(codeString)) - return MeasurementPrinciple.MANUAL; - throw new IllegalArgumentException("Unknown MeasurementPrinciple code '"+codeString+"'"); - } - public String toCode(MeasurementPrinciple code) throws IllegalArgumentException { - if (code == MeasurementPrinciple.OTHER) - return "other"; - if (code == MeasurementPrinciple.CHEMICAL) - return "chemical"; - if (code == MeasurementPrinciple.ELECTRICAL) - return "electrical"; - if (code == MeasurementPrinciple.IMPEDANCE) - return "impedance"; - if (code == MeasurementPrinciple.NUCLEAR) - return "nuclear"; - if (code == MeasurementPrinciple.OPTICAL) - return "optical"; - if (code == MeasurementPrinciple.THERMAL) - return "thermal"; - if (code == MeasurementPrinciple.BIOLOGICAL) - return "biological"; - if (code == MeasurementPrinciple.MECHANICAL) - return "mechanical"; - if (code == MeasurementPrinciple.ACOUSTICAL) - return "acoustical"; - if (code == MeasurementPrinciple.MANUAL) - return "manual"; - return "?"; - } - } - - @Block() - public static class DeviceComponentProductionSpecificationComponent extends BackboneElement { - /** - * Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc. - */ - @Child(name="specType", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="Specification type", formalDefinition="Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc." ) - protected CodeableConcept specType; - - /** - * Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of. - */ - @Child(name="componentId", type={Identifier.class}, order=2, min=0, max=1) - @Description(shortDefinition="Internal component unique identification", formalDefinition="Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of." ) - protected Identifier componentId; - - /** - * Describes the printable string defining the component. - */ - @Child(name="productionSpec", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="A printable string defining the component", formalDefinition="Describes the printable string defining the component." ) - protected StringType productionSpec; - - private static final long serialVersionUID = -1476597516L; - - public DeviceComponentProductionSpecificationComponent() { - super(); - } - - /** - * @return {@link #specType} (Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc.) - */ - public CodeableConcept getSpecType() { - if (this.specType == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponentProductionSpecificationComponent.specType"); - else if (Configuration.doAutoCreate()) - this.specType = new CodeableConcept(); - return this.specType; - } - - public boolean hasSpecType() { - return this.specType != null && !this.specType.isEmpty(); - } - - /** - * @param value {@link #specType} (Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc.) - */ - public DeviceComponentProductionSpecificationComponent setSpecType(CodeableConcept value) { - this.specType = value; - return this; - } - - /** - * @return {@link #componentId} (Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of.) - */ - public Identifier getComponentId() { - if (this.componentId == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponentProductionSpecificationComponent.componentId"); - else if (Configuration.doAutoCreate()) - this.componentId = new Identifier(); - return this.componentId; - } - - public boolean hasComponentId() { - return this.componentId != null && !this.componentId.isEmpty(); - } - - /** - * @param value {@link #componentId} (Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of.) - */ - public DeviceComponentProductionSpecificationComponent setComponentId(Identifier value) { - this.componentId = value; - return this; - } - - /** - * @return {@link #productionSpec} (Describes the printable string defining the component.). This is the underlying object with id, value and extensions. The accessor "getProductionSpec" gives direct access to the value - */ - public StringType getProductionSpecElement() { - if (this.productionSpec == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponentProductionSpecificationComponent.productionSpec"); - else if (Configuration.doAutoCreate()) - this.productionSpec = new StringType(); - return this.productionSpec; - } - - public boolean hasProductionSpecElement() { - return this.productionSpec != null && !this.productionSpec.isEmpty(); - } - - public boolean hasProductionSpec() { - return this.productionSpec != null && !this.productionSpec.isEmpty(); - } - - /** - * @param value {@link #productionSpec} (Describes the printable string defining the component.). This is the underlying object with id, value and extensions. The accessor "getProductionSpec" gives direct access to the value - */ - public DeviceComponentProductionSpecificationComponent setProductionSpecElement(StringType value) { - this.productionSpec = value; - return this; - } - - /** - * @return Describes the printable string defining the component. - */ - public String getProductionSpec() { - return this.productionSpec == null ? null : this.productionSpec.getValue(); - } - - /** - * @param value Describes the printable string defining the component. - */ - public DeviceComponentProductionSpecificationComponent setProductionSpec(String value) { - if (Utilities.noString(value)) - this.productionSpec = null; - else { - if (this.productionSpec == null) - this.productionSpec = new StringType(); - this.productionSpec.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("specType", "CodeableConcept", "Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc.", 0, java.lang.Integer.MAX_VALUE, specType)); - childrenList.add(new Property("componentId", "Identifier", "Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of.", 0, java.lang.Integer.MAX_VALUE, componentId)); - childrenList.add(new Property("productionSpec", "string", "Describes the printable string defining the component.", 0, java.lang.Integer.MAX_VALUE, productionSpec)); - } - - public DeviceComponentProductionSpecificationComponent copy() { - DeviceComponentProductionSpecificationComponent dst = new DeviceComponentProductionSpecificationComponent(); - copyValues(dst); - dst.specType = specType == null ? null : specType.copy(); - dst.componentId = componentId == null ? null : componentId.copy(); - dst.productionSpec = productionSpec == null ? null : productionSpec.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (specType == null || specType.isEmpty()) && (componentId == null || componentId.isEmpty()) - && (productionSpec == null || productionSpec.isEmpty()); - } - - } - - /** - * Describes the specific component type as defined in the object-oriented or metric nomenclature partition. - */ - @Child(name="type", type={CodeableConcept.class}, order=-1, min=1, max=1) - @Description(shortDefinition="What kind of component it is", formalDefinition="Describes the specific component type as defined in the object-oriented or metric nomenclature partition." ) - protected CodeableConcept type; - - /** - * Describes the local assigned unique identification by the software. For example: handle ID. - */ - @Child(name="identifier", type={Identifier.class}, order=0, min=1, max=1) - @Description(shortDefinition="Instance id assigned by the software stack", formalDefinition="Describes the local assigned unique identification by the software. For example: handle ID." ) - protected Identifier identifier; - - /** - * Describes the timestamp for the most recent system change which includes device configuration or setting change. - */ - @Child(name="lastSystemChange", type={InstantType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Recent system change timestamp", formalDefinition="Describes the timestamp for the most recent system change which includes device configuration or setting change." ) - protected InstantType lastSystemChange; - - /** - * Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc. - */ - @Child(name="source", type={Device.class}, order=2, min=0, max=1) - @Description(shortDefinition="A source device of this component", formalDefinition="Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc." ) - protected Reference source; - - /** - * The actual object that is the target of the reference (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) - */ - protected Device sourceTarget; - - /** - * Describes the link to the parent resource. For example: Channel is linked to its VMD parent. - */ - @Child(name="parent", type={DeviceComponent.class}, order=3, min=0, max=1) - @Description(shortDefinition="Parent resource link", formalDefinition="Describes the link to the parent resource. For example: Channel is linked to its VMD parent." ) - protected Reference parent; - - /** - * The actual object that is the target of the reference (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) - */ - protected DeviceComponent parentTarget; - - /** - * Indicates current operational status of the device. For example: On, Off, Standby, etc. - */ - @Child(name="operationalStatus", type={CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Component operational status", formalDefinition="Indicates current operational status of the device. For example: On, Off, Standby, etc." ) - protected List operationalStatus; - - /** - * Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascular. - */ - @Child(name="parameterGroup", type={CodeableConcept.class}, order=5, min=0, max=1) - @Description(shortDefinition="Current supported parameter group", formalDefinition="Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascular." ) - protected CodeableConcept parameterGroup; - - /** - * Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc. - */ - @Child(name="measurementPrinciple", type={CodeType.class}, order=6, min=0, max=1) - @Description(shortDefinition="other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+", formalDefinition="Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc." ) - protected Enumeration measurementPrinciple; - - /** - * Describes the production specification such as component revision, serial number, etc. - */ - @Child(name="productionSpecification", type={}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Production specification of the component", formalDefinition="Describes the production specification such as component revision, serial number, etc." ) - protected List productionSpecification; - - /** - * Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US. - */ - @Child(name="languageCode", type={CodeableConcept.class}, order=8, min=0, max=1) - @Description(shortDefinition="Language code for the human-readable text strings produced by the device", formalDefinition="Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US." ) - protected CodeableConcept languageCode; - - private static final long serialVersionUID = 1179239259L; - - public DeviceComponent() { - super(); - } - - public DeviceComponent(CodeableConcept type, Identifier identifier, InstantType lastSystemChange) { - super(); - this.type = type; - this.identifier = identifier; - this.lastSystemChange = lastSystemChange; - } - - /** - * @return {@link #type} (Describes the specific component type as defined in the object-oriented or metric nomenclature partition.) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Describes the specific component type as defined in the object-oriented or metric nomenclature partition.) - */ - public DeviceComponent setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #identifier} (Describes the local assigned unique identification by the software. For example: handle ID.) - */ - public Identifier getIdentifier() { - if (this.identifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponent.identifier"); - else if (Configuration.doAutoCreate()) - this.identifier = new Identifier(); - return this.identifier; - } - - public boolean hasIdentifier() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - /** - * @param value {@link #identifier} (Describes the local assigned unique identification by the software. For example: handle ID.) - */ - public DeviceComponent setIdentifier(Identifier value) { - this.identifier = value; - return this; - } - - /** - * @return {@link #lastSystemChange} (Describes the timestamp for the most recent system change which includes device configuration or setting change.). This is the underlying object with id, value and extensions. The accessor "getLastSystemChange" gives direct access to the value - */ - public InstantType getLastSystemChangeElement() { - if (this.lastSystemChange == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponent.lastSystemChange"); - else if (Configuration.doAutoCreate()) - this.lastSystemChange = new InstantType(); - return this.lastSystemChange; - } - - public boolean hasLastSystemChangeElement() { - return this.lastSystemChange != null && !this.lastSystemChange.isEmpty(); - } - - public boolean hasLastSystemChange() { - return this.lastSystemChange != null && !this.lastSystemChange.isEmpty(); - } - - /** - * @param value {@link #lastSystemChange} (Describes the timestamp for the most recent system change which includes device configuration or setting change.). This is the underlying object with id, value and extensions. The accessor "getLastSystemChange" gives direct access to the value - */ - public DeviceComponent setLastSystemChangeElement(InstantType value) { - this.lastSystemChange = value; - return this; - } - - /** - * @return Describes the timestamp for the most recent system change which includes device configuration or setting change. - */ - public Date getLastSystemChange() { - return this.lastSystemChange == null ? null : this.lastSystemChange.getValue(); - } - - /** - * @param value Describes the timestamp for the most recent system change which includes device configuration or setting change. - */ - public DeviceComponent setLastSystemChange(Date value) { - if (this.lastSystemChange == null) - this.lastSystemChange = new InstantType(); - this.lastSystemChange.setValue(value); - return this; - } - - /** - * @return {@link #source} (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) - */ - public Reference getSource() { - if (this.source == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponent.source"); - else if (Configuration.doAutoCreate()) - this.source = new Reference(); - return this.source; - } - - public boolean hasSource() { - return this.source != null && !this.source.isEmpty(); - } - - /** - * @param value {@link #source} (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) - */ - public DeviceComponent setSource(Reference value) { - this.source = value; - return this; - } - - /** - * @return {@link #source} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) - */ - public Device getSourceTarget() { - if (this.sourceTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponent.source"); - else if (Configuration.doAutoCreate()) - this.sourceTarget = new Device(); - return this.sourceTarget; - } - - /** - * @param value {@link #source} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) - */ - public DeviceComponent setSourceTarget(Device value) { - this.sourceTarget = value; - return this; - } - - /** - * @return {@link #parent} (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) - */ - public Reference getParent() { - if (this.parent == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponent.parent"); - else if (Configuration.doAutoCreate()) - this.parent = new Reference(); - return this.parent; - } - - public boolean hasParent() { - return this.parent != null && !this.parent.isEmpty(); - } - - /** - * @param value {@link #parent} (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) - */ - public DeviceComponent setParent(Reference value) { - this.parent = value; - return this; - } - - /** - * @return {@link #parent} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) - */ - public DeviceComponent getParentTarget() { - if (this.parentTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponent.parent"); - else if (Configuration.doAutoCreate()) - this.parentTarget = new DeviceComponent(); - return this.parentTarget; - } - - /** - * @param value {@link #parent} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) - */ - public DeviceComponent setParentTarget(DeviceComponent value) { - this.parentTarget = value; - return this; - } - - /** - * @return {@link #operationalStatus} (Indicates current operational status of the device. For example: On, Off, Standby, etc.) - */ - public List getOperationalStatus() { - if (this.operationalStatus == null) - this.operationalStatus = new ArrayList(); - return this.operationalStatus; - } - - public boolean hasOperationalStatus() { - if (this.operationalStatus == null) - return false; - for (CodeableConcept item : this.operationalStatus) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #operationalStatus} (Indicates current operational status of the device. For example: On, Off, Standby, etc.) - */ - // syntactic sugar - public CodeableConcept addOperationalStatus() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.operationalStatus == null) - this.operationalStatus = new ArrayList(); - this.operationalStatus.add(t); - return t; - } - - /** - * @return {@link #parameterGroup} (Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascular.) - */ - public CodeableConcept getParameterGroup() { - if (this.parameterGroup == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponent.parameterGroup"); - else if (Configuration.doAutoCreate()) - this.parameterGroup = new CodeableConcept(); - return this.parameterGroup; - } - - public boolean hasParameterGroup() { - return this.parameterGroup != null && !this.parameterGroup.isEmpty(); - } - - /** - * @param value {@link #parameterGroup} (Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascular.) - */ - public DeviceComponent setParameterGroup(CodeableConcept value) { - this.parameterGroup = value; - return this; - } - - /** - * @return {@link #measurementPrinciple} (Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.). This is the underlying object with id, value and extensions. The accessor "getMeasurementPrinciple" gives direct access to the value - */ - public Enumeration getMeasurementPrincipleElement() { - if (this.measurementPrinciple == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponent.measurementPrinciple"); - else if (Configuration.doAutoCreate()) - this.measurementPrinciple = new Enumeration(); - return this.measurementPrinciple; - } - - public boolean hasMeasurementPrincipleElement() { - return this.measurementPrinciple != null && !this.measurementPrinciple.isEmpty(); - } - - public boolean hasMeasurementPrinciple() { - return this.measurementPrinciple != null && !this.measurementPrinciple.isEmpty(); - } - - /** - * @param value {@link #measurementPrinciple} (Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.). This is the underlying object with id, value and extensions. The accessor "getMeasurementPrinciple" gives direct access to the value - */ - public DeviceComponent setMeasurementPrincipleElement(Enumeration value) { - this.measurementPrinciple = value; - return this; - } - - /** - * @return Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc. - */ - public MeasurementPrinciple getMeasurementPrinciple() { - return this.measurementPrinciple == null ? null : this.measurementPrinciple.getValue(); - } - - /** - * @param value Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc. - */ - public DeviceComponent setMeasurementPrinciple(MeasurementPrinciple value) { - if (value == null) - this.measurementPrinciple = null; - else { - if (this.measurementPrinciple == null) - this.measurementPrinciple = new Enumeration(MeasurementPrinciple.ENUM_FACTORY); - this.measurementPrinciple.setValue(value); - } - return this; - } - - /** - * @return {@link #productionSpecification} (Describes the production specification such as component revision, serial number, etc.) - */ - public List getProductionSpecification() { - if (this.productionSpecification == null) - this.productionSpecification = new ArrayList(); - return this.productionSpecification; - } - - public boolean hasProductionSpecification() { - if (this.productionSpecification == null) - return false; - for (DeviceComponentProductionSpecificationComponent item : this.productionSpecification) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #productionSpecification} (Describes the production specification such as component revision, serial number, etc.) - */ - // syntactic sugar - public DeviceComponentProductionSpecificationComponent addProductionSpecification() { //3 - DeviceComponentProductionSpecificationComponent t = new DeviceComponentProductionSpecificationComponent(); - if (this.productionSpecification == null) - this.productionSpecification = new ArrayList(); - this.productionSpecification.add(t); - return t; - } - - /** - * @return {@link #languageCode} (Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US.) - */ - public CodeableConcept getLanguageCode() { - if (this.languageCode == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceComponent.languageCode"); - else if (Configuration.doAutoCreate()) - this.languageCode = new CodeableConcept(); - return this.languageCode; - } - - public boolean hasLanguageCode() { - return this.languageCode != null && !this.languageCode.isEmpty(); - } - - /** - * @param value {@link #languageCode} (Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US.) - */ - public DeviceComponent setLanguageCode(CodeableConcept value) { - this.languageCode = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "CodeableConcept", "Describes the specific component type as defined in the object-oriented or metric nomenclature partition.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("identifier", "Identifier", "Describes the local assigned unique identification by the software. For example: handle ID.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("lastSystemChange", "instant", "Describes the timestamp for the most recent system change which includes device configuration or setting change.", 0, java.lang.Integer.MAX_VALUE, lastSystemChange)); - childrenList.add(new Property("source", "Reference(Device)", "Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.", 0, java.lang.Integer.MAX_VALUE, source)); - childrenList.add(new Property("parent", "Reference(DeviceComponent)", "Describes the link to the parent resource. For example: Channel is linked to its VMD parent.", 0, java.lang.Integer.MAX_VALUE, parent)); - childrenList.add(new Property("operationalStatus", "CodeableConcept", "Indicates current operational status of the device. For example: On, Off, Standby, etc.", 0, java.lang.Integer.MAX_VALUE, operationalStatus)); - childrenList.add(new Property("parameterGroup", "CodeableConcept", "Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascular.", 0, java.lang.Integer.MAX_VALUE, parameterGroup)); - childrenList.add(new Property("measurementPrinciple", "code", "Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.", 0, java.lang.Integer.MAX_VALUE, measurementPrinciple)); - childrenList.add(new Property("productionSpecification", "", "Describes the production specification such as component revision, serial number, etc.", 0, java.lang.Integer.MAX_VALUE, productionSpecification)); - childrenList.add(new Property("languageCode", "CodeableConcept", "Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US.", 0, java.lang.Integer.MAX_VALUE, languageCode)); - } - - public DeviceComponent copy() { - DeviceComponent dst = new DeviceComponent(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - dst.identifier = identifier == null ? null : identifier.copy(); - dst.lastSystemChange = lastSystemChange == null ? null : lastSystemChange.copy(); - dst.source = source == null ? null : source.copy(); - dst.parent = parent == null ? null : parent.copy(); - if (operationalStatus != null) { - dst.operationalStatus = new ArrayList(); - for (CodeableConcept i : operationalStatus) - dst.operationalStatus.add(i.copy()); - }; - dst.parameterGroup = parameterGroup == null ? null : parameterGroup.copy(); - dst.measurementPrinciple = measurementPrinciple == null ? null : measurementPrinciple.copy(); - if (productionSpecification != null) { - dst.productionSpecification = new ArrayList(); - for (DeviceComponentProductionSpecificationComponent i : productionSpecification) - dst.productionSpecification.add(i.copy()); - }; - dst.languageCode = languageCode == null ? null : languageCode.copy(); - return dst; - } - - protected DeviceComponent typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (identifier == null || identifier.isEmpty()) - && (lastSystemChange == null || lastSystemChange.isEmpty()) && (source == null || source.isEmpty()) - && (parent == null || parent.isEmpty()) && (operationalStatus == null || operationalStatus.isEmpty()) - && (parameterGroup == null || parameterGroup.isEmpty()) && (measurementPrinciple == null || measurementPrinciple.isEmpty()) - && (productionSpecification == null || productionSpecification.isEmpty()) && (languageCode == null || languageCode.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.DeviceComponent; - } - - @SearchParamDefinition(name="source", path="DeviceComponent.source", description="The device source", type="reference" ) - public static final String SP_SOURCE = "source"; - @SearchParamDefinition(name="parent", path="DeviceComponent.parent", description="The parent DeviceComponent resource", type="reference" ) - public static final String SP_PARENT = "parent"; - @SearchParamDefinition(name="type", path="DeviceComponent.type", description="The device component type", type="token" ) - public static final String SP_TYPE = "type"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Describes the characteristics, operational status and capabilities of a medical-related component of a medical device. + */ +@ResourceDef(name="DeviceComponent", profile="http://hl7.org/fhir/Profile/DeviceComponent") +public class DeviceComponent extends DomainResource { + + public enum MeasurementPrinciple { + /** + * Measurement principle isn't in the list. + */ + OTHER, + /** + * Measurement is done using chemical. + */ + CHEMICAL, + /** + * Measurement is done using electrical. + */ + ELECTRICAL, + /** + * Measurement is done using impedance. + */ + IMPEDANCE, + /** + * Measurement is done using nuclear. + */ + NUCLEAR, + /** + * Measurement is done using optical. + */ + OPTICAL, + /** + * Measurement is done using thermal. + */ + THERMAL, + /** + * Measurement is done using biological. + */ + BIOLOGICAL, + /** + * Measurement is done using mechanical. + */ + MECHANICAL, + /** + * Measurement is done using acoustical. + */ + ACOUSTICAL, + /** + * Measurement is done using manual. + */ + MANUAL, + /** + * added to help the parsers + */ + NULL; + public static MeasurementPrinciple fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("other".equals(codeString)) + return OTHER; + if ("chemical".equals(codeString)) + return CHEMICAL; + if ("electrical".equals(codeString)) + return ELECTRICAL; + if ("impedance".equals(codeString)) + return IMPEDANCE; + if ("nuclear".equals(codeString)) + return NUCLEAR; + if ("optical".equals(codeString)) + return OPTICAL; + if ("thermal".equals(codeString)) + return THERMAL; + if ("biological".equals(codeString)) + return BIOLOGICAL; + if ("mechanical".equals(codeString)) + return MECHANICAL; + if ("acoustical".equals(codeString)) + return ACOUSTICAL; + if ("manual".equals(codeString)) + return MANUAL; + throw new Exception("Unknown MeasurementPrinciple code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case OTHER: return "other"; + case CHEMICAL: return "chemical"; + case ELECTRICAL: return "electrical"; + case IMPEDANCE: return "impedance"; + case NUCLEAR: return "nuclear"; + case OPTICAL: return "optical"; + case THERMAL: return "thermal"; + case BIOLOGICAL: return "biological"; + case MECHANICAL: return "mechanical"; + case ACOUSTICAL: return "acoustical"; + case MANUAL: return "manual"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case OTHER: return ""; + case CHEMICAL: return ""; + case ELECTRICAL: return ""; + case IMPEDANCE: return ""; + case NUCLEAR: return ""; + case OPTICAL: return ""; + case THERMAL: return ""; + case BIOLOGICAL: return ""; + case MECHANICAL: return ""; + case ACOUSTICAL: return ""; + case MANUAL: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case OTHER: return "Measurement principle isn't in the list."; + case CHEMICAL: return "Measurement is done using chemical."; + case ELECTRICAL: return "Measurement is done using electrical."; + case IMPEDANCE: return "Measurement is done using impedance."; + case NUCLEAR: return "Measurement is done using nuclear."; + case OPTICAL: return "Measurement is done using optical."; + case THERMAL: return "Measurement is done using thermal."; + case BIOLOGICAL: return "Measurement is done using biological."; + case MECHANICAL: return "Measurement is done using mechanical."; + case ACOUSTICAL: return "Measurement is done using acoustical."; + case MANUAL: return "Measurement is done using manual."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case OTHER: return "msp-other"; + case CHEMICAL: return "msp-chemical"; + case ELECTRICAL: return "msp-electrical"; + case IMPEDANCE: return "msp-impedance"; + case NUCLEAR: return "msp-nuclear"; + case OPTICAL: return "msp-optical"; + case THERMAL: return "msp-thermal"; + case BIOLOGICAL: return "msp-biological"; + case MECHANICAL: return "msp-mechanical"; + case ACOUSTICAL: return "msp-acoustical"; + case MANUAL: return "msp-manual"; + default: return "?"; + } + } + } + + public static class MeasurementPrincipleEnumFactory implements EnumFactory { + public MeasurementPrinciple fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("other".equals(codeString)) + return MeasurementPrinciple.OTHER; + if ("chemical".equals(codeString)) + return MeasurementPrinciple.CHEMICAL; + if ("electrical".equals(codeString)) + return MeasurementPrinciple.ELECTRICAL; + if ("impedance".equals(codeString)) + return MeasurementPrinciple.IMPEDANCE; + if ("nuclear".equals(codeString)) + return MeasurementPrinciple.NUCLEAR; + if ("optical".equals(codeString)) + return MeasurementPrinciple.OPTICAL; + if ("thermal".equals(codeString)) + return MeasurementPrinciple.THERMAL; + if ("biological".equals(codeString)) + return MeasurementPrinciple.BIOLOGICAL; + if ("mechanical".equals(codeString)) + return MeasurementPrinciple.MECHANICAL; + if ("acoustical".equals(codeString)) + return MeasurementPrinciple.ACOUSTICAL; + if ("manual".equals(codeString)) + return MeasurementPrinciple.MANUAL; + throw new IllegalArgumentException("Unknown MeasurementPrinciple code '"+codeString+"'"); + } + public String toCode(MeasurementPrinciple code) { + if (code == MeasurementPrinciple.OTHER) + return "other"; + if (code == MeasurementPrinciple.CHEMICAL) + return "chemical"; + if (code == MeasurementPrinciple.ELECTRICAL) + return "electrical"; + if (code == MeasurementPrinciple.IMPEDANCE) + return "impedance"; + if (code == MeasurementPrinciple.NUCLEAR) + return "nuclear"; + if (code == MeasurementPrinciple.OPTICAL) + return "optical"; + if (code == MeasurementPrinciple.THERMAL) + return "thermal"; + if (code == MeasurementPrinciple.BIOLOGICAL) + return "biological"; + if (code == MeasurementPrinciple.MECHANICAL) + return "mechanical"; + if (code == MeasurementPrinciple.ACOUSTICAL) + return "acoustical"; + if (code == MeasurementPrinciple.MANUAL) + return "manual"; + return "?"; + } + } + + @Block() + public static class DeviceComponentProductionSpecificationComponent extends BackboneElement { + /** + * Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc. + */ + @Child(name="specType", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Specification type", formalDefinition="Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc." ) + protected CodeableConcept specType; + + /** + * Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of. + */ + @Child(name="componentId", type={Identifier.class}, order=2, min=0, max=1) + @Description(shortDefinition="Internal component unique identification", formalDefinition="Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of." ) + protected Identifier componentId; + + /** + * Describes the printable string defining the component. + */ + @Child(name="productionSpec", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="A printable string defining the component", formalDefinition="Describes the printable string defining the component." ) + protected StringType productionSpec; + + private static final long serialVersionUID = -1476597516L; + + public DeviceComponentProductionSpecificationComponent() { + super(); + } + + /** + * @return {@link #specType} (Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc.) + */ + public CodeableConcept getSpecType() { + if (this.specType == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponentProductionSpecificationComponent.specType"); + else if (Configuration.doAutoCreate()) + this.specType = new CodeableConcept(); // cc + return this.specType; + } + + public boolean hasSpecType() { + return this.specType != null && !this.specType.isEmpty(); + } + + /** + * @param value {@link #specType} (Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc.) + */ + public DeviceComponentProductionSpecificationComponent setSpecType(CodeableConcept value) { + this.specType = value; + return this; + } + + /** + * @return {@link #componentId} (Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of.) + */ + public Identifier getComponentId() { + if (this.componentId == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponentProductionSpecificationComponent.componentId"); + else if (Configuration.doAutoCreate()) + this.componentId = new Identifier(); // cc + return this.componentId; + } + + public boolean hasComponentId() { + return this.componentId != null && !this.componentId.isEmpty(); + } + + /** + * @param value {@link #componentId} (Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of.) + */ + public DeviceComponentProductionSpecificationComponent setComponentId(Identifier value) { + this.componentId = value; + return this; + } + + /** + * @return {@link #productionSpec} (Describes the printable string defining the component.). This is the underlying object with id, value and extensions. The accessor "getProductionSpec" gives direct access to the value + */ + public StringType getProductionSpecElement() { + if (this.productionSpec == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponentProductionSpecificationComponent.productionSpec"); + else if (Configuration.doAutoCreate()) + this.productionSpec = new StringType(); // bb + return this.productionSpec; + } + + public boolean hasProductionSpecElement() { + return this.productionSpec != null && !this.productionSpec.isEmpty(); + } + + public boolean hasProductionSpec() { + return this.productionSpec != null && !this.productionSpec.isEmpty(); + } + + /** + * @param value {@link #productionSpec} (Describes the printable string defining the component.). This is the underlying object with id, value and extensions. The accessor "getProductionSpec" gives direct access to the value + */ + public DeviceComponentProductionSpecificationComponent setProductionSpecElement(StringType value) { + this.productionSpec = value; + return this; + } + + /** + * @return Describes the printable string defining the component. + */ + public String getProductionSpec() { + return this.productionSpec == null ? null : this.productionSpec.getValue(); + } + + /** + * @param value Describes the printable string defining the component. + */ + public DeviceComponentProductionSpecificationComponent setProductionSpec(String value) { + if (Utilities.noString(value)) + this.productionSpec = null; + else { + if (this.productionSpec == null) + this.productionSpec = new StringType(); + this.productionSpec.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("specType", "CodeableConcept", "Describes the specification type, such as, serial number, part number, hardware revision, software revision, etc.", 0, java.lang.Integer.MAX_VALUE, specType)); + childrenList.add(new Property("componentId", "Identifier", "Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use of.", 0, java.lang.Integer.MAX_VALUE, componentId)); + childrenList.add(new Property("productionSpec", "string", "Describes the printable string defining the component.", 0, java.lang.Integer.MAX_VALUE, productionSpec)); + } + + public DeviceComponentProductionSpecificationComponent copy() { + DeviceComponentProductionSpecificationComponent dst = new DeviceComponentProductionSpecificationComponent(); + copyValues(dst); + dst.specType = specType == null ? null : specType.copy(); + dst.componentId = componentId == null ? null : componentId.copy(); + dst.productionSpec = productionSpec == null ? null : productionSpec.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DeviceComponentProductionSpecificationComponent)) + return false; + DeviceComponentProductionSpecificationComponent o = (DeviceComponentProductionSpecificationComponent) other; + return compareDeep(specType, o.specType, true) && compareDeep(componentId, o.componentId, true) + && compareDeep(productionSpec, o.productionSpec, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DeviceComponentProductionSpecificationComponent)) + return false; + DeviceComponentProductionSpecificationComponent o = (DeviceComponentProductionSpecificationComponent) other; + return compareValues(productionSpec, o.productionSpec, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (specType == null || specType.isEmpty()) && (componentId == null || componentId.isEmpty()) + && (productionSpec == null || productionSpec.isEmpty()); + } + + } + + /** + * Describes the specific component type as defined in the object-oriented or metric nomenclature partition. + */ + @Child(name="type", type={CodeableConcept.class}, order=-1, min=1, max=1) + @Description(shortDefinition="What kind of component it is", formalDefinition="Describes the specific component type as defined in the object-oriented or metric nomenclature partition." ) + protected CodeableConcept type; + + /** + * Describes the local assigned unique identification by the software. For example: handle ID. + */ + @Child(name="identifier", type={Identifier.class}, order=0, min=1, max=1) + @Description(shortDefinition="Instance id assigned by the software stack", formalDefinition="Describes the local assigned unique identification by the software. For example: handle ID." ) + protected Identifier identifier; + + /** + * Describes the timestamp for the most recent system change which includes device configuration or setting change. + */ + @Child(name="lastSystemChange", type={InstantType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Recent system change timestamp", formalDefinition="Describes the timestamp for the most recent system change which includes device configuration or setting change." ) + protected InstantType lastSystemChange; + + /** + * Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc. + */ + @Child(name="source", type={Device.class}, order=2, min=0, max=1) + @Description(shortDefinition="A source device of this component", formalDefinition="Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc." ) + protected Reference source; + + /** + * The actual object that is the target of the reference (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) + */ + protected Device sourceTarget; + + /** + * Describes the link to the parent resource. For example: Channel is linked to its VMD parent. + */ + @Child(name="parent", type={DeviceComponent.class}, order=3, min=0, max=1) + @Description(shortDefinition="Parent resource link", formalDefinition="Describes the link to the parent resource. For example: Channel is linked to its VMD parent." ) + protected Reference parent; + + /** + * The actual object that is the target of the reference (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) + */ + protected DeviceComponent parentTarget; + + /** + * Indicates current operational status of the device. For example: On, Off, Standby, etc. + */ + @Child(name="operationalStatus", type={CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Component operational status", formalDefinition="Indicates current operational status of the device. For example: On, Off, Standby, etc." ) + protected List operationalStatus; + + /** + * Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascular. + */ + @Child(name="parameterGroup", type={CodeableConcept.class}, order=5, min=0, max=1) + @Description(shortDefinition="Current supported parameter group", formalDefinition="Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascular." ) + protected CodeableConcept parameterGroup; + + /** + * Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc. + */ + @Child(name="measurementPrinciple", type={CodeType.class}, order=6, min=0, max=1) + @Description(shortDefinition="other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+", formalDefinition="Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc." ) + protected Enumeration measurementPrinciple; + + /** + * Describes the production specification such as component revision, serial number, etc. + */ + @Child(name="productionSpecification", type={}, order=7, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Production specification of the component", formalDefinition="Describes the production specification such as component revision, serial number, etc." ) + protected List productionSpecification; + + /** + * Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US. + */ + @Child(name="languageCode", type={CodeableConcept.class}, order=8, min=0, max=1) + @Description(shortDefinition="Language code for the human-readable text strings produced by the device", formalDefinition="Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US." ) + protected CodeableConcept languageCode; + + private static final long serialVersionUID = 1179239259L; + + public DeviceComponent() { + super(); + } + + public DeviceComponent(CodeableConcept type, Identifier identifier, InstantType lastSystemChange) { + super(); + this.type = type; + this.identifier = identifier; + this.lastSystemChange = lastSystemChange; + } + + /** + * @return {@link #type} (Describes the specific component type as defined in the object-oriented or metric nomenclature partition.) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Describes the specific component type as defined in the object-oriented or metric nomenclature partition.) + */ + public DeviceComponent setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #identifier} (Describes the local assigned unique identification by the software. For example: handle ID.) + */ + public Identifier getIdentifier() { + if (this.identifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponent.identifier"); + else if (Configuration.doAutoCreate()) + this.identifier = new Identifier(); // cc + return this.identifier; + } + + public boolean hasIdentifier() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + /** + * @param value {@link #identifier} (Describes the local assigned unique identification by the software. For example: handle ID.) + */ + public DeviceComponent setIdentifier(Identifier value) { + this.identifier = value; + return this; + } + + /** + * @return {@link #lastSystemChange} (Describes the timestamp for the most recent system change which includes device configuration or setting change.). This is the underlying object with id, value and extensions. The accessor "getLastSystemChange" gives direct access to the value + */ + public InstantType getLastSystemChangeElement() { + if (this.lastSystemChange == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponent.lastSystemChange"); + else if (Configuration.doAutoCreate()) + this.lastSystemChange = new InstantType(); // bb + return this.lastSystemChange; + } + + public boolean hasLastSystemChangeElement() { + return this.lastSystemChange != null && !this.lastSystemChange.isEmpty(); + } + + public boolean hasLastSystemChange() { + return this.lastSystemChange != null && !this.lastSystemChange.isEmpty(); + } + + /** + * @param value {@link #lastSystemChange} (Describes the timestamp for the most recent system change which includes device configuration or setting change.). This is the underlying object with id, value and extensions. The accessor "getLastSystemChange" gives direct access to the value + */ + public DeviceComponent setLastSystemChangeElement(InstantType value) { + this.lastSystemChange = value; + return this; + } + + /** + * @return Describes the timestamp for the most recent system change which includes device configuration or setting change. + */ + public Date getLastSystemChange() { + return this.lastSystemChange == null ? null : this.lastSystemChange.getValue(); + } + + /** + * @param value Describes the timestamp for the most recent system change which includes device configuration or setting change. + */ + public DeviceComponent setLastSystemChange(Date value) { + if (this.lastSystemChange == null) + this.lastSystemChange = new InstantType(); + this.lastSystemChange.setValue(value); + return this; + } + + /** + * @return {@link #source} (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) + */ + public Reference getSource() { + if (this.source == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponent.source"); + else if (Configuration.doAutoCreate()) + this.source = new Reference(); // cc + return this.source; + } + + public boolean hasSource() { + return this.source != null && !this.source.isEmpty(); + } + + /** + * @param value {@link #source} (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) + */ + public DeviceComponent setSource(Reference value) { + this.source = value; + return this; + } + + /** + * @return {@link #source} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) + */ + public Device getSourceTarget() { + if (this.sourceTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponent.source"); + else if (Configuration.doAutoCreate()) + this.sourceTarget = new Device(); // aa + return this.sourceTarget; + } + + /** + * @param value {@link #source} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.) + */ + public DeviceComponent setSourceTarget(Device value) { + this.sourceTarget = value; + return this; + } + + /** + * @return {@link #parent} (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) + */ + public Reference getParent() { + if (this.parent == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponent.parent"); + else if (Configuration.doAutoCreate()) + this.parent = new Reference(); // cc + return this.parent; + } + + public boolean hasParent() { + return this.parent != null && !this.parent.isEmpty(); + } + + /** + * @param value {@link #parent} (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) + */ + public DeviceComponent setParent(Reference value) { + this.parent = value; + return this; + } + + /** + * @return {@link #parent} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) + */ + public DeviceComponent getParentTarget() { + if (this.parentTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponent.parent"); + else if (Configuration.doAutoCreate()) + this.parentTarget = new DeviceComponent(); // aa + return this.parentTarget; + } + + /** + * @param value {@link #parent} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the link to the parent resource. For example: Channel is linked to its VMD parent.) + */ + public DeviceComponent setParentTarget(DeviceComponent value) { + this.parentTarget = value; + return this; + } + + /** + * @return {@link #operationalStatus} (Indicates current operational status of the device. For example: On, Off, Standby, etc.) + */ + public List getOperationalStatus() { + if (this.operationalStatus == null) + this.operationalStatus = new ArrayList(); + return this.operationalStatus; + } + + public boolean hasOperationalStatus() { + if (this.operationalStatus == null) + return false; + for (CodeableConcept item : this.operationalStatus) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #operationalStatus} (Indicates current operational status of the device. For example: On, Off, Standby, etc.) + */ + // syntactic sugar + public CodeableConcept addOperationalStatus() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.operationalStatus == null) + this.operationalStatus = new ArrayList(); + this.operationalStatus.add(t); + return t; + } + + /** + * @return {@link #parameterGroup} (Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascular.) + */ + public CodeableConcept getParameterGroup() { + if (this.parameterGroup == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponent.parameterGroup"); + else if (Configuration.doAutoCreate()) + this.parameterGroup = new CodeableConcept(); // cc + return this.parameterGroup; + } + + public boolean hasParameterGroup() { + return this.parameterGroup != null && !this.parameterGroup.isEmpty(); + } + + /** + * @param value {@link #parameterGroup} (Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascular.) + */ + public DeviceComponent setParameterGroup(CodeableConcept value) { + this.parameterGroup = value; + return this; + } + + /** + * @return {@link #measurementPrinciple} (Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.). This is the underlying object with id, value and extensions. The accessor "getMeasurementPrinciple" gives direct access to the value + */ + public Enumeration getMeasurementPrincipleElement() { + if (this.measurementPrinciple == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponent.measurementPrinciple"); + else if (Configuration.doAutoCreate()) + this.measurementPrinciple = new Enumeration(new MeasurementPrincipleEnumFactory()); // bb + return this.measurementPrinciple; + } + + public boolean hasMeasurementPrincipleElement() { + return this.measurementPrinciple != null && !this.measurementPrinciple.isEmpty(); + } + + public boolean hasMeasurementPrinciple() { + return this.measurementPrinciple != null && !this.measurementPrinciple.isEmpty(); + } + + /** + * @param value {@link #measurementPrinciple} (Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.). This is the underlying object with id, value and extensions. The accessor "getMeasurementPrinciple" gives direct access to the value + */ + public DeviceComponent setMeasurementPrincipleElement(Enumeration value) { + this.measurementPrinciple = value; + return this; + } + + /** + * @return Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc. + */ + public MeasurementPrinciple getMeasurementPrinciple() { + return this.measurementPrinciple == null ? null : this.measurementPrinciple.getValue(); + } + + /** + * @param value Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc. + */ + public DeviceComponent setMeasurementPrinciple(MeasurementPrinciple value) { + if (value == null) + this.measurementPrinciple = null; + else { + if (this.measurementPrinciple == null) + this.measurementPrinciple = new Enumeration(new MeasurementPrincipleEnumFactory()); + this.measurementPrinciple.setValue(value); + } + return this; + } + + /** + * @return {@link #productionSpecification} (Describes the production specification such as component revision, serial number, etc.) + */ + public List getProductionSpecification() { + if (this.productionSpecification == null) + this.productionSpecification = new ArrayList(); + return this.productionSpecification; + } + + public boolean hasProductionSpecification() { + if (this.productionSpecification == null) + return false; + for (DeviceComponentProductionSpecificationComponent item : this.productionSpecification) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #productionSpecification} (Describes the production specification such as component revision, serial number, etc.) + */ + // syntactic sugar + public DeviceComponentProductionSpecificationComponent addProductionSpecification() { //3 + DeviceComponentProductionSpecificationComponent t = new DeviceComponentProductionSpecificationComponent(); + if (this.productionSpecification == null) + this.productionSpecification = new ArrayList(); + this.productionSpecification.add(t); + return t; + } + + /** + * @return {@link #languageCode} (Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US.) + */ + public CodeableConcept getLanguageCode() { + if (this.languageCode == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceComponent.languageCode"); + else if (Configuration.doAutoCreate()) + this.languageCode = new CodeableConcept(); // cc + return this.languageCode; + } + + public boolean hasLanguageCode() { + return this.languageCode != null && !this.languageCode.isEmpty(); + } + + /** + * @param value {@link #languageCode} (Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US.) + */ + public DeviceComponent setLanguageCode(CodeableConcept value) { + this.languageCode = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "CodeableConcept", "Describes the specific component type as defined in the object-oriented or metric nomenclature partition.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("identifier", "Identifier", "Describes the local assigned unique identification by the software. For example: handle ID.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("lastSystemChange", "instant", "Describes the timestamp for the most recent system change which includes device configuration or setting change.", 0, java.lang.Integer.MAX_VALUE, lastSystemChange)); + childrenList.add(new Property("source", "Reference(Device)", "Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etc.", 0, java.lang.Integer.MAX_VALUE, source)); + childrenList.add(new Property("parent", "Reference(DeviceComponent)", "Describes the link to the parent resource. For example: Channel is linked to its VMD parent.", 0, java.lang.Integer.MAX_VALUE, parent)); + childrenList.add(new Property("operationalStatus", "CodeableConcept", "Indicates current operational status of the device. For example: On, Off, Standby, etc.", 0, java.lang.Integer.MAX_VALUE, operationalStatus)); + childrenList.add(new Property("parameterGroup", "CodeableConcept", "Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascular.", 0, java.lang.Integer.MAX_VALUE, parameterGroup)); + childrenList.add(new Property("measurementPrinciple", "code", "Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.", 0, java.lang.Integer.MAX_VALUE, measurementPrinciple)); + childrenList.add(new Property("productionSpecification", "", "Describes the production specification such as component revision, serial number, etc.", 0, java.lang.Integer.MAX_VALUE, productionSpecification)); + childrenList.add(new Property("languageCode", "CodeableConcept", "Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-US.", 0, java.lang.Integer.MAX_VALUE, languageCode)); + } + + public DeviceComponent copy() { + DeviceComponent dst = new DeviceComponent(); + copyValues(dst); + dst.type = type == null ? null : type.copy(); + dst.identifier = identifier == null ? null : identifier.copy(); + dst.lastSystemChange = lastSystemChange == null ? null : lastSystemChange.copy(); + dst.source = source == null ? null : source.copy(); + dst.parent = parent == null ? null : parent.copy(); + if (operationalStatus != null) { + dst.operationalStatus = new ArrayList(); + for (CodeableConcept i : operationalStatus) + dst.operationalStatus.add(i.copy()); + }; + dst.parameterGroup = parameterGroup == null ? null : parameterGroup.copy(); + dst.measurementPrinciple = measurementPrinciple == null ? null : measurementPrinciple.copy(); + if (productionSpecification != null) { + dst.productionSpecification = new ArrayList(); + for (DeviceComponentProductionSpecificationComponent i : productionSpecification) + dst.productionSpecification.add(i.copy()); + }; + dst.languageCode = languageCode == null ? null : languageCode.copy(); + return dst; + } + + protected DeviceComponent typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DeviceComponent)) + return false; + DeviceComponent o = (DeviceComponent) other; + return compareDeep(type, o.type, true) && compareDeep(identifier, o.identifier, true) && compareDeep(lastSystemChange, o.lastSystemChange, true) + && compareDeep(source, o.source, true) && compareDeep(parent, o.parent, true) && compareDeep(operationalStatus, o.operationalStatus, true) + && compareDeep(parameterGroup, o.parameterGroup, true) && compareDeep(measurementPrinciple, o.measurementPrinciple, true) + && compareDeep(productionSpecification, o.productionSpecification, true) && compareDeep(languageCode, o.languageCode, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DeviceComponent)) + return false; + DeviceComponent o = (DeviceComponent) other; + return compareValues(lastSystemChange, o.lastSystemChange, true) && compareValues(measurementPrinciple, o.measurementPrinciple, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (identifier == null || identifier.isEmpty()) + && (lastSystemChange == null || lastSystemChange.isEmpty()) && (source == null || source.isEmpty()) + && (parent == null || parent.isEmpty()) && (operationalStatus == null || operationalStatus.isEmpty()) + && (parameterGroup == null || parameterGroup.isEmpty()) && (measurementPrinciple == null || measurementPrinciple.isEmpty()) + && (productionSpecification == null || productionSpecification.isEmpty()) && (languageCode == null || languageCode.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.DeviceComponent; + } + + @SearchParamDefinition(name="source", path="DeviceComponent.source", description="The device source", type="reference" ) + public static final String SP_SOURCE = "source"; + @SearchParamDefinition(name="parent", path="DeviceComponent.parent", description="The parent DeviceComponent resource", type="reference" ) + public static final String SP_PARENT = "parent"; + @SearchParamDefinition(name="type", path="DeviceComponent.type", description="The device component type", type="token" ) + public static final String SP_TYPE = "type"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4aa0ba2bc3c8dab243ca632e933d9328760114c5 GIT binary patch literal 2551 zcmb_eT}&KR7(I7cnB8S4^cSdFtF9HQbS<^TTBIzyvp9v_rR*+PXsg38umi&k4hv27 z-9%q~H_;d4gNen2G^VLOYof2do9MeqeKejs%ak_oz)zE#@7#0en{(&;?sxBF6>vEjEcO>nVy(`l6OY?351Gp+( z2IK6dC8f&%hNQ_zlTAQFPPz=o*?Uh?x@gd)xu#%5K|x?7S-NA_%xd0PPI~@)vg-6D z=c=}!wB41O;hI)*$(yyDWY$`qeXod+AXdSg(tFXE> zWBFxc#^Fc{-!K=M*no4H1rjB1)i0}pSyoPp zm6MW{lL{**6;w{@$taWO1t6g6u50-j$5>ghST${1ffQ#JEVCxiwOd7jtGjjGEZdCn zxI8wO^hCX$w?AlFGn`fVh1ss|>CpqubA=UAD3&wnQGIAUUDmP!>1Uv+c>b)-Ef|y| zci+))0=-xm*REIeaXC{W9F?TGQYejS89k>f7u1w)EA5lWXI`v4SsW|s1&;LXIr#8^Iuu474)pIU-1^&$vpKJ&OO23^xI^ZhKT&qp}j`GlTrg$ zT|g<7(}nENjkeRg2~Y7Bj<$8kGYlZ|unUlWb-bXwTNvwmdc>`)FLfS$aijW>64Mj*> zNkfsgK;-Z`*p6)AXedH@j5HJ>Jx&^mke(n7McM{;Kuh`d}yj$9iy+I6yRs8gXH; F^MBibybS;V literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$DeviceMetricCalibrationInfoComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$DeviceMetricCalibrationInfoComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..91ce2cf7a916a91c7fe484758cab3478d658c499 GIT binary patch literal 8091 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCalibrationStateEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCalibrationStateEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..0537e77315f716e53191dc57a8ce13267ca7f896 GIT binary patch literal 2038 zcmbtVYf~F#6n+kb?1fDWTWF=V6e^U2NTXC+6@-QmG&KZDh)(^sEK9oWW;bp&RloQ% z9P8aWQ*W&k{Qxs|MxAlS5B?~}^X5j7$T$Ntyyx794w#vSr#kwot7L)y4fbWgN#U8cxzLR!f!}v|pNV zX5XmM-leMTY+F8Ivf$ozy?5QQ?h`a-@~n+bX}F0E0x^@vrl_sJ(xL?3g2iJ_j)qBG z(r^J62{(=ztK*dkCJ?_+Ll zGnLF{mNt@`>19Il*uzLT)e4wd%Wb4@7BU+mvf9!Lp}&yJucuR)m5h+WM!9Uc+k}}; zlwB6@z_9Sp%YoObbST<&l@HY2ipWzEJ*umn+kqV!`ONf;qjQIvrsC!cC2A8#gCrsKb3co(Nd=mXEd<`)oUGl6xqX&#>DKAkya h+fiXJVs((yh}Y?}JO_Zz{=-OO?D_~#MG`Ae{sBhX6yE>< literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCalibrationType.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCalibrationType.class new file mode 100644 index 0000000000000000000000000000000000000000..97828afd4e2c56a6046dbf8a5750d1901c897b08 GIT binary patch literal 2740 zcmb_eOLx;&5dN-XTe2btN00}BmOup9&ch9lLYt5Wjzis=m?9_Cq%Bnx*-=m=W6MeT z9bNS=bY;RhNl!U#S#{B$!lH{Vy6A$_xpHtElGDRELH5;XuI`<0X6`p*|M~it-vC_2 zRs=z0B+TQEfH47C2`WD4w=YEGB;3V9SrD?&8#uZquo$L}M_8FkcU{JHe9Qm= zk7d}P9CX&5TE#T1l4Y*SxQIBV&@Gi}rY9r8wP0Dd92rUe9Pzf?(TZz1^m3R_oZP2J z>kt_F_Gg=O0oH*uG>V{o_3piP9+}F0=-f(omGa>_60{^97r&MiJtog#8!#%Tf`82gDP=^CNI0}Rp_ zq%lO}5{-lsp|~g-ilL#L;i(PyXE8vh0T!iF?ZPlSfiV`tIP1nWrudEs2*m?*k=3bV zpbHJ9^*w~%OXz)s-cRVK34MUj&%BL3eGK%o4W;!xgno|D2MPT=p zx_sq)*jHk{azXHwA@NtT&_R6HiotEjS~0YZF0B~eMocSG9SmvD!S<`l=L!Bo6n|p? p|KKwIrK);OuDzl%Y}VRsqz7NHs|zA#=HNyl*O$qGlf^;Ep*`Ss*;XC+yCZu?2w zZ3TvFTFC}yb&{LbE8Dbsr_Y_5Bt?i+0>gZ{Z8ZD9)Z7oI)f6Z=XE^YB7&-YlGsRD$ zC(I4klyln+uINOO|8X0Xe&pDVBq$ZT?ixYc=jQ!5bWVBig=Ge*Gb<2Bcrc;wV;;zrwc z_AQ?qyz9Pnz1QySsVtc_nNG9w8otIi1Y)Ivs;FR>tu+bE^Yr=Hq2VTOX}F5(gu?lb z8oEfr>Gd3QnK)`nk0*rrvk-hJxYtp>H0%4e;qdH4hq>LSVEjA2=-pCfCzmbc3%O0g z`gzI58O!;6C0AvJY-I{1ezjDemUqg967PhKX47)_35&yEPMM%%d|>*@f%m?kso1GA zd91wmCo&UaXEkql4seZMozoy(;y3gdOP&Z`udsE6B@YM277jtbutJ#OH7qu1iB~2H zM!K$lBE%ZdO#B5+A4wcw^e5=U#u#<^?v$u#m zJH$u&g#%3RqX~VImjmdB`1lXbInqV7#9su^T}0>}F3~cN^$Kp%eZ=VjmgpgtDTOs! zMV20+NNMcQ8g6j30x6=A#y`xl8RD`u{_`O4D!Slt0#RBb!LWZuSPykrlY|x)nj$n= zXyZatJNi_I-Fv8R@%f+)NR)+2o0y~=rYMigw1pXZ%m@pJ(UUHcFhZ)LC=(e@KHpD% zt)E<3NW4Sz0H27Xk6i=1Uqy`F1lF0pdw7BSbn%4mP=%w2cR?;7(UqSw4*;FxqsU-( LeVSR3K_1G#_o4S@ literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCategory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCategory.class new file mode 100644 index 0000000000000000000000000000000000000000..9e2978dd3bfe979dfabb8e804057ce8036c4fc27 GIT binary patch literal 3001 zcmbtV+fx%)82>GVWC;txdZ$`bjhdj6(u-7~3WjJ?16UVqqrEMgO<3J*Fxi0i^4fZR({W^zbH4q~p7Z^_`}ybJUvB|;9B($m zhi8IF;@JRt0!Rh1AH!lAkue&?89XQBtk|T<7!!0{#yLTsm+^w2=>X0La3Kg4FUojH z(3fSrBIv6@bU<&$1dJeeW@MN$vNCcqCS_PMB4YWXjDs=`$>^356A~{4U`uEjP7G?} zXA{GTkueEv!=_ubjJWQaxkB-(1SRP>W-)H-rIJ~aa3obI=365LlS%= z7Ul^vQWG~5?zlRUz`R?*pRXubEKS~FpFdQgw2(J2QZqI zFdRu;)Ti~Btvk7xMlU+KzUX>X@3$PwJtkqxJp?DC=Oi?1R?gAga*=v8M#PGoEf(@s zRa-SzH!cn9Q#D0{i7SRVaIYJm{RZ*jz~ZNmlYI254Ge?y+qIEO~+Lb!2yQ4WV$Y+s^FktTMXSc%C;`N zqTrCXRCY>JreS3*GozqeENxuQiKPHY*t)!0&6E>m%g&fZp$CoMIqqC?3NubuH!Lyjl?8O97oeu+u~FSLht2%7S>3{E4qNB3?Y0Lm z%iQg4t$2a_#9DuL8pC5M|_3j_!@D1gQvM$hQC!(_}~~hp>zkw zaSU)4)=$;k)jNyr1n%s<#zj5{IfQ{eju6Klj(r?awV8I&8ro1%9}=!@@M6))XaL_b z*4G%#@2KqejOGsn`O#A(fTlW5RxqY4@1D0gu@y-=u^_=DU{m z%|g-AO|xjz(*9YrYiZWOKJ5mi<*KUY$=gigchHG<*(2VkrXMmX-eMV6Yb}A3US6F- T7pck&^Wik2>>v}QXqW#3`%lW^ literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCategoryEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricCategoryEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..9a94af2b45f5aa627a83a0522a7deecf85788f93 GIT binary patch literal 1938 zcmbVM+fy4=82=pz*$YbxD_Bu!X~mKd+bGpy1)(7J+yXPoiD2gmz$#=HI*j^D|qVIwsUWG3gk?03HF?>nFV^Zo|_F5y)b)3_kx zqKYh@l<|~;DJ;skBC)c&pT$T#aj%eRPnaCXJ#GKt!FD_>eiRjMbEEiZ#hfZ-CMSwwcS== zx)#qiD4dhs;Cr^kBe!$?-j^B1DuHR;DVfb~Dys3O#hZccxfCoJcu`gq^|&F@NAqQv zi&tT|VS{QoQr3UWdc__Zc5X5#6}#@5LFiK}_hNpwwr_JQSRR-ZrQsw-_dYgsLmbsqu@BaZaO)?9ty9$Q8Ju5G>ZDT9@@?h z_Zent?j6^A!=3Gi#;ir)nVr}0GHx(1Vk)SLB5EY9Ngy~c9TO579>;kNXK;>T{g^&t zV`G@^PrdKk_+jA@92n*Y#r(g^QP*fC`0JtR&~8k{A>2h;`ZXF_$;ee|H;j@|t}wuAk1F(0AVK_}^ zvZMTrPJ#!9I;I~ZK^)M`d;(1$%IstKZRl}fgthfVq?g{qNLx?#1gWjdJwa*fYEKw# z--UMbF2-&i;Dmm1ALI0CT%Vw0ANm0v_>f`_b+THdcOLkhp8PMUlrO1>uL#3mBaLsc zh;MNj-(d~kBaa_wk$H6&rO}_@Pp9aDM*&1>nGB`<4w8DJ zO`IgSq~H|6$$}ddoZ8kW+hiVPb)NhKKhu-)3sn4y3H*jh{7y~&gR=gU!u*94{_bRw zL_$>*WjsgP`EKyD-QdbX<|9n)<3ZuNZwzF9hFnBrINdc*E>NFN9kGp7I82QZNiHDM Xp-&JF0G%{b$YJ*CG@&AgO(_2Y7q#>q literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricOperationalStatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricOperationalStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..a6b041d782045ba1a9997633c06c9dc146d32f21 GIT binary patch literal 2784 zcmb_dYg5}+5Ixt}mT<%)BJa}T5(jK2!O-T_LKDI(Au%|qfyAMC$VN6wgyh&VDKq^e zo&JM
    )#InrWL){m>uP>A5lw6JREjM7DJAUhUnpcX!X~-~ayj3&7W?wIYb|2qrM8 z;DUl%5uC+s`IuI5CxW|3tC*2Wvnn!jyr<&69KTnPRWKJpC+1Zw$nk-ShjPqC(1Ay- zSi}zzYCcx+M8#7T&r}#HVsb67BCaB#A}MVZ6f6k@GP43FXH2hR6*6VBVtAJ87$Kz<>p+Ip-HE_?mH zZ9v9d!+FW43mQxm6_f-q3}IO#X)g&tfu-R&UXV7fqalWV#@a0wHN@pqk!)DX zuW3j~v1_*!cEU}r?XEToWUOY{OJ+r4ToLG-cV0N|D<^sgf1(8zVYFX^4W>hI;$T?r zbrqB~yaWwZ;qlcC5@~MPj5bFpYE`3dgXK;sN@t_5EZdHjOp@I2wskZ4s##g}J3)0o zp!Xmvj_d7OqEh-Gr5&gX(R|HoV9AX;c!smK<=-Amd7euek}`_zyYZ5RBoHdtuEX^2 zt=3Hbxmoa7BJualxWMIRF8MufxT$P+=)2beLUit~G?d68^JUGjNv7k?Hn*HgJfeb8 zE}IS;?!{(>12Fa!1;JF$-3HlXdwVO1o_yaU$A$#%#anIMsia>E$$y~fN^%40&j^XS-rATd z>xk6#BRhgt*V}f4_WB!i=zJV^j>e7$#v4P{8IPtfSC{Nf&RA3Bk80QCl z0;e#EZcO1EZn3T0ra#m4><+F`OF^hjXqtv^C`k7@cz=swKIJ)=wgNM_j+4YYHSjAJ zd7a}ek0N8x&AW$puii@U>2qB_Eu$Ck!+ioF&S#j$Stcw)M&4th?)%_j1Y?1K4E@Ll zA}V#g@!y9yPs9ZxJ|N;lBIe#f{O$u0&(!tL>U#G9XM9Y=Cq#To#Aie_-a)+nfry7k z)g)q(h$SK}6Vcj(sNx3G+{oik%&olU-XNIMKX2K@7q1cVg`S`QtI zUgb}2YGH9^bHR0J*<5HH?b%#-9lhDt5WB_S$n_-_-Zh+IPWv%R#tgDb8gv-NP5KaE TY4&l{ISb0NB)JzkqEr1J(qo5> literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricOperationalStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric$MetricOperationalStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..e311905bbc8e761b4d1abf84b7667613db7888b9 GIT binary patch literal 1903 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DeviceMetric.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric.java similarity index 90% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DeviceMetric.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric.java index 7a9d52b391e..040a6fefb9f 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DeviceMetric.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceMetric.java @@ -1,1206 +1,1216 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Describes a measurement, calculation or setting capability of a medical device. - */ -@ResourceDef(name="DeviceMetric", profile="http://hl7.org/fhir/Profile/DeviceMetric") -public class DeviceMetric extends Resource { - - public enum MetricOperationalStatus implements FhirEnum { - /** - * The DeviceMetric is operating and will generate DeviceObservations. - */ - ON, - /** - * The DeviceMetric is not operating. - */ - OFF, - /** - * The DeviceMetric is operating, but will not generate any DeviceObservations. - */ - STANDBY, - /** - * added to help the parsers - */ - NULL; - - public static final MetricOperationalStatusEnumFactory ENUM_FACTORY = new MetricOperationalStatusEnumFactory(); - - public static MetricOperationalStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("on".equals(codeString)) - return ON; - if ("off".equals(codeString)) - return OFF; - if ("standby".equals(codeString)) - return STANDBY; - throw new IllegalArgumentException("Unknown MetricOperationalStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case ON: return "on"; - case OFF: return "off"; - case STANDBY: return "standby"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case ON: return ""; - case OFF: return ""; - case STANDBY: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case ON: return "The DeviceMetric is operating and will generate DeviceObservations."; - case OFF: return "The DeviceMetric is not operating."; - case STANDBY: return "The DeviceMetric is operating, but will not generate any DeviceObservations."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case ON: return "on"; - case OFF: return "off"; - case STANDBY: return "standby"; - default: return "?"; - } - } - } - - public static class MetricOperationalStatusEnumFactory implements EnumFactory { - public MetricOperationalStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("on".equals(codeString)) - return MetricOperationalStatus.ON; - if ("off".equals(codeString)) - return MetricOperationalStatus.OFF; - if ("standby".equals(codeString)) - return MetricOperationalStatus.STANDBY; - throw new IllegalArgumentException("Unknown MetricOperationalStatus code '"+codeString+"'"); - } - public String toCode(MetricOperationalStatus code) throws IllegalArgumentException { - if (code == MetricOperationalStatus.ON) - return "on"; - if (code == MetricOperationalStatus.OFF) - return "off"; - if (code == MetricOperationalStatus.STANDBY) - return "standby"; - return "?"; - } - } - - public enum MetricCategory implements FhirEnum { - /** - * DeviceObservations generated for this DeviceMetric are measured. - */ - MEASUREMENT, - /** - * DeviceObservations generated for this DeviceMetric is a setting that will influence the behavior of the Device. - */ - SETTING, - /** - * DeviceObservations generated for this DeviceMetric are calculated. - */ - CALCULATION, - /** - * The category of this DeviceMetric is unspecified. - */ - UNSPECIFIED, - /** - * added to help the parsers - */ - NULL; - - public static final MetricCategoryEnumFactory ENUM_FACTORY = new MetricCategoryEnumFactory(); - - public static MetricCategory fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("measurement".equals(codeString)) - return MEASUREMENT; - if ("setting".equals(codeString)) - return SETTING; - if ("calculation".equals(codeString)) - return CALCULATION; - if ("unspecified".equals(codeString)) - return UNSPECIFIED; - throw new IllegalArgumentException("Unknown MetricCategory code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case MEASUREMENT: return "measurement"; - case SETTING: return "setting"; - case CALCULATION: return "calculation"; - case UNSPECIFIED: return "unspecified"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case MEASUREMENT: return ""; - case SETTING: return ""; - case CALCULATION: return ""; - case UNSPECIFIED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case MEASUREMENT: return "DeviceObservations generated for this DeviceMetric are measured."; - case SETTING: return "DeviceObservations generated for this DeviceMetric is a setting that will influence the behavior of the Device."; - case CALCULATION: return "DeviceObservations generated for this DeviceMetric are calculated."; - case UNSPECIFIED: return "The category of this DeviceMetric is unspecified."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case MEASUREMENT: return "measurement"; - case SETTING: return "setting"; - case CALCULATION: return "calculation"; - case UNSPECIFIED: return "unspecified"; - default: return "?"; - } - } - } - - public static class MetricCategoryEnumFactory implements EnumFactory { - public MetricCategory fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("measurement".equals(codeString)) - return MetricCategory.MEASUREMENT; - if ("setting".equals(codeString)) - return MetricCategory.SETTING; - if ("calculation".equals(codeString)) - return MetricCategory.CALCULATION; - if ("unspecified".equals(codeString)) - return MetricCategory.UNSPECIFIED; - throw new IllegalArgumentException("Unknown MetricCategory code '"+codeString+"'"); - } - public String toCode(MetricCategory code) throws IllegalArgumentException { - if (code == MetricCategory.MEASUREMENT) - return "measurement"; - if (code == MetricCategory.SETTING) - return "setting"; - if (code == MetricCategory.CALCULATION) - return "calculation"; - if (code == MetricCategory.UNSPECIFIED) - return "unspecified"; - return "?"; - } - } - - public enum MetricCalibrationType implements FhirEnum { - /** - * TODO. - */ - UNSPECIFIED, - /** - * TODO. - */ - OFFSET, - /** - * TODO. - */ - GAIN, - /** - * TODO. - */ - TWOPOINT, - /** - * added to help the parsers - */ - NULL; - - public static final MetricCalibrationTypeEnumFactory ENUM_FACTORY = new MetricCalibrationTypeEnumFactory(); - - public static MetricCalibrationType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("unspecified".equals(codeString)) - return UNSPECIFIED; - if ("offset".equals(codeString)) - return OFFSET; - if ("gain".equals(codeString)) - return GAIN; - if ("two-point".equals(codeString)) - return TWOPOINT; - throw new IllegalArgumentException("Unknown MetricCalibrationType code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case UNSPECIFIED: return "unspecified"; - case OFFSET: return "offset"; - case GAIN: return "gain"; - case TWOPOINT: return "two-point"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case UNSPECIFIED: return ""; - case OFFSET: return ""; - case GAIN: return ""; - case TWOPOINT: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case UNSPECIFIED: return "TODO."; - case OFFSET: return "TODO."; - case GAIN: return "TODO."; - case TWOPOINT: return "TODO."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case UNSPECIFIED: return "unspecified"; - case OFFSET: return "offset"; - case GAIN: return "gain"; - case TWOPOINT: return "two-point"; - default: return "?"; - } - } - } - - public static class MetricCalibrationTypeEnumFactory implements EnumFactory { - public MetricCalibrationType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("unspecified".equals(codeString)) - return MetricCalibrationType.UNSPECIFIED; - if ("offset".equals(codeString)) - return MetricCalibrationType.OFFSET; - if ("gain".equals(codeString)) - return MetricCalibrationType.GAIN; - if ("two-point".equals(codeString)) - return MetricCalibrationType.TWOPOINT; - throw new IllegalArgumentException("Unknown MetricCalibrationType code '"+codeString+"'"); - } - public String toCode(MetricCalibrationType code) throws IllegalArgumentException { - if (code == MetricCalibrationType.UNSPECIFIED) - return "unspecified"; - if (code == MetricCalibrationType.OFFSET) - return "offset"; - if (code == MetricCalibrationType.GAIN) - return "gain"; - if (code == MetricCalibrationType.TWOPOINT) - return "two-point"; - return "?"; - } - } - - public enum MetricCalibrationState implements FhirEnum { - /** - * The metric has not been calibrated. - */ - NOTCALIBRATED, - /** - * The metric needs to be calibrated. - */ - CALIBRATIONREQUIRED, - /** - * The metric has been calibrated. - */ - CALIBRATED, - /** - * The state of calibration of this metric is unspecified. - */ - UNSPECIFIED, - /** - * added to help the parsers - */ - NULL; - - public static final MetricCalibrationStateEnumFactory ENUM_FACTORY = new MetricCalibrationStateEnumFactory(); - - public static MetricCalibrationState fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("not-calibrated".equals(codeString)) - return NOTCALIBRATED; - if ("calibration-required".equals(codeString)) - return CALIBRATIONREQUIRED; - if ("calibrated".equals(codeString)) - return CALIBRATED; - if ("unspecified".equals(codeString)) - return UNSPECIFIED; - throw new IllegalArgumentException("Unknown MetricCalibrationState code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case NOTCALIBRATED: return "not-calibrated"; - case CALIBRATIONREQUIRED: return "calibration-required"; - case CALIBRATED: return "calibrated"; - case UNSPECIFIED: return "unspecified"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case NOTCALIBRATED: return ""; - case CALIBRATIONREQUIRED: return ""; - case CALIBRATED: return ""; - case UNSPECIFIED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case NOTCALIBRATED: return "The metric has not been calibrated."; - case CALIBRATIONREQUIRED: return "The metric needs to be calibrated."; - case CALIBRATED: return "The metric has been calibrated."; - case UNSPECIFIED: return "The state of calibration of this metric is unspecified."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case NOTCALIBRATED: return "not-calibrated"; - case CALIBRATIONREQUIRED: return "calibration-required"; - case CALIBRATED: return "calibrated"; - case UNSPECIFIED: return "unspecified"; - default: return "?"; - } - } - } - - public static class MetricCalibrationStateEnumFactory implements EnumFactory { - public MetricCalibrationState fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("not-calibrated".equals(codeString)) - return MetricCalibrationState.NOTCALIBRATED; - if ("calibration-required".equals(codeString)) - return MetricCalibrationState.CALIBRATIONREQUIRED; - if ("calibrated".equals(codeString)) - return MetricCalibrationState.CALIBRATED; - if ("unspecified".equals(codeString)) - return MetricCalibrationState.UNSPECIFIED; - throw new IllegalArgumentException("Unknown MetricCalibrationState code '"+codeString+"'"); - } - public String toCode(MetricCalibrationState code) throws IllegalArgumentException { - if (code == MetricCalibrationState.NOTCALIBRATED) - return "not-calibrated"; - if (code == MetricCalibrationState.CALIBRATIONREQUIRED) - return "calibration-required"; - if (code == MetricCalibrationState.CALIBRATED) - return "calibrated"; - if (code == MetricCalibrationState.UNSPECIFIED) - return "unspecified"; - return "?"; - } - } - - @Block() - public static class DeviceMetricCalibrationInfoComponent extends BackboneElement { - /** - * Describes the type of the calibration method. - */ - @Child(name="type", type={CodeType.class}, order=1, min=0, max=1) - @Description(shortDefinition="unspecified | offset | gain | two-point", formalDefinition="Describes the type of the calibration method." ) - protected Enumeration type; - - /** - * Describes the state of the calibration. - */ - @Child(name="state", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="not-calibrated | calibration-required | calibrated | unspecified", formalDefinition="Describes the state of the calibration." ) - protected Enumeration state; - - /** - * Describes the time last calibration has been performed. - */ - @Child(name="time", type={InstantType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Describes the time last calibration has been performed", formalDefinition="Describes the time last calibration has been performed." ) - protected InstantType time; - - private static final long serialVersionUID = 407720126L; - - public DeviceMetricCalibrationInfoComponent() { - super(); - } - - /** - * @return {@link #type} (Describes the type of the calibration method.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public Enumeration getTypeElement() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetricCalibrationInfoComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new Enumeration(); - return this.type; - } - - public boolean hasTypeElement() { - return this.type != null && !this.type.isEmpty(); - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Describes the type of the calibration method.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public DeviceMetricCalibrationInfoComponent setTypeElement(Enumeration value) { - this.type = value; - return this; - } - - /** - * @return Describes the type of the calibration method. - */ - public MetricCalibrationType getType() { - return this.type == null ? null : this.type.getValue(); - } - - /** - * @param value Describes the type of the calibration method. - */ - public DeviceMetricCalibrationInfoComponent setType(MetricCalibrationType value) { - if (value == null) - this.type = null; - else { - if (this.type == null) - this.type = new Enumeration(MetricCalibrationType.ENUM_FACTORY); - this.type.setValue(value); - } - return this; - } - - /** - * @return {@link #state} (Describes the state of the calibration.). This is the underlying object with id, value and extensions. The accessor "getState" gives direct access to the value - */ - public Enumeration getStateElement() { - if (this.state == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetricCalibrationInfoComponent.state"); - else if (Configuration.doAutoCreate()) - this.state = new Enumeration(); - return this.state; - } - - public boolean hasStateElement() { - return this.state != null && !this.state.isEmpty(); - } - - public boolean hasState() { - return this.state != null && !this.state.isEmpty(); - } - - /** - * @param value {@link #state} (Describes the state of the calibration.). This is the underlying object with id, value and extensions. The accessor "getState" gives direct access to the value - */ - public DeviceMetricCalibrationInfoComponent setStateElement(Enumeration value) { - this.state = value; - return this; - } - - /** - * @return Describes the state of the calibration. - */ - public MetricCalibrationState getState() { - return this.state == null ? null : this.state.getValue(); - } - - /** - * @param value Describes the state of the calibration. - */ - public DeviceMetricCalibrationInfoComponent setState(MetricCalibrationState value) { - if (value == null) - this.state = null; - else { - if (this.state == null) - this.state = new Enumeration(MetricCalibrationState.ENUM_FACTORY); - this.state.setValue(value); - } - return this; - } - - /** - * @return {@link #time} (Describes the time last calibration has been performed.). This is the underlying object with id, value and extensions. The accessor "getTime" gives direct access to the value - */ - public InstantType getTimeElement() { - if (this.time == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetricCalibrationInfoComponent.time"); - else if (Configuration.doAutoCreate()) - this.time = new InstantType(); - return this.time; - } - - public boolean hasTimeElement() { - return this.time != null && !this.time.isEmpty(); - } - - public boolean hasTime() { - return this.time != null && !this.time.isEmpty(); - } - - /** - * @param value {@link #time} (Describes the time last calibration has been performed.). This is the underlying object with id, value and extensions. The accessor "getTime" gives direct access to the value - */ - public DeviceMetricCalibrationInfoComponent setTimeElement(InstantType value) { - this.time = value; - return this; - } - - /** - * @return Describes the time last calibration has been performed. - */ - public Date getTime() { - return this.time == null ? null : this.time.getValue(); - } - - /** - * @param value Describes the time last calibration has been performed. - */ - public DeviceMetricCalibrationInfoComponent setTime(Date value) { - if (value == null) - this.time = null; - else { - if (this.time == null) - this.time = new InstantType(); - this.time.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "code", "Describes the type of the calibration method.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("state", "code", "Describes the state of the calibration.", 0, java.lang.Integer.MAX_VALUE, state)); - childrenList.add(new Property("time", "instant", "Describes the time last calibration has been performed.", 0, java.lang.Integer.MAX_VALUE, time)); - } - - public DeviceMetricCalibrationInfoComponent copy() { - DeviceMetricCalibrationInfoComponent dst = new DeviceMetricCalibrationInfoComponent(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - dst.state = state == null ? null : state.copy(); - dst.time = time == null ? null : time.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (state == null || state.isEmpty()) - && (time == null || time.isEmpty()); - } - - } - - /** - * Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc. - */ - @Child(name="type", type={CodeableConcept.class}, order=-1, min=1, max=1) - @Description(shortDefinition="Type of metric", formalDefinition="Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc." ) - protected CodeableConcept type; - - /** +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Describes a measurement, calculation or setting capability of a medical device. + */ +@ResourceDef(name="DeviceMetric", profile="http://hl7.org/fhir/Profile/DeviceMetric") +public class DeviceMetric extends Resource { + + public enum MetricOperationalStatus { + /** + * The DeviceMetric is operating and will generate DeviceObservations. + */ + ON, + /** + * The DeviceMetric is not operating. + */ + OFF, + /** + * The DeviceMetric is operating, but will not generate any DeviceObservations. + */ + STANDBY, + /** + * added to help the parsers + */ + NULL; + public static MetricOperationalStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("on".equals(codeString)) + return ON; + if ("off".equals(codeString)) + return OFF; + if ("standby".equals(codeString)) + return STANDBY; + throw new Exception("Unknown MetricOperationalStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case ON: return "on"; + case OFF: return "off"; + case STANDBY: return "standby"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case ON: return ""; + case OFF: return ""; + case STANDBY: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case ON: return "The DeviceMetric is operating and will generate DeviceObservations."; + case OFF: return "The DeviceMetric is not operating."; + case STANDBY: return "The DeviceMetric is operating, but will not generate any DeviceObservations."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case ON: return "on"; + case OFF: return "off"; + case STANDBY: return "standby"; + default: return "?"; + } + } + } + + public static class MetricOperationalStatusEnumFactory implements EnumFactory { + public MetricOperationalStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("on".equals(codeString)) + return MetricOperationalStatus.ON; + if ("off".equals(codeString)) + return MetricOperationalStatus.OFF; + if ("standby".equals(codeString)) + return MetricOperationalStatus.STANDBY; + throw new IllegalArgumentException("Unknown MetricOperationalStatus code '"+codeString+"'"); + } + public String toCode(MetricOperationalStatus code) { + if (code == MetricOperationalStatus.ON) + return "on"; + if (code == MetricOperationalStatus.OFF) + return "off"; + if (code == MetricOperationalStatus.STANDBY) + return "standby"; + return "?"; + } + } + + public enum MetricCategory { + /** + * DeviceObservations generated for this DeviceMetric are measured. + */ + MEASUREMENT, + /** + * DeviceObservations generated for this DeviceMetric is a setting that will influence the behavior of the Device. + */ + SETTING, + /** + * DeviceObservations generated for this DeviceMetric are calculated. + */ + CALCULATION, + /** + * The category of this DeviceMetric is unspecified. + */ + UNSPECIFIED, + /** + * added to help the parsers + */ + NULL; + public static MetricCategory fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("measurement".equals(codeString)) + return MEASUREMENT; + if ("setting".equals(codeString)) + return SETTING; + if ("calculation".equals(codeString)) + return CALCULATION; + if ("unspecified".equals(codeString)) + return UNSPECIFIED; + throw new Exception("Unknown MetricCategory code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case MEASUREMENT: return "measurement"; + case SETTING: return "setting"; + case CALCULATION: return "calculation"; + case UNSPECIFIED: return "unspecified"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case MEASUREMENT: return ""; + case SETTING: return ""; + case CALCULATION: return ""; + case UNSPECIFIED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case MEASUREMENT: return "DeviceObservations generated for this DeviceMetric are measured."; + case SETTING: return "DeviceObservations generated for this DeviceMetric is a setting that will influence the behavior of the Device."; + case CALCULATION: return "DeviceObservations generated for this DeviceMetric are calculated."; + case UNSPECIFIED: return "The category of this DeviceMetric is unspecified."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case MEASUREMENT: return "measurement"; + case SETTING: return "setting"; + case CALCULATION: return "calculation"; + case UNSPECIFIED: return "unspecified"; + default: return "?"; + } + } + } + + public static class MetricCategoryEnumFactory implements EnumFactory { + public MetricCategory fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("measurement".equals(codeString)) + return MetricCategory.MEASUREMENT; + if ("setting".equals(codeString)) + return MetricCategory.SETTING; + if ("calculation".equals(codeString)) + return MetricCategory.CALCULATION; + if ("unspecified".equals(codeString)) + return MetricCategory.UNSPECIFIED; + throw new IllegalArgumentException("Unknown MetricCategory code '"+codeString+"'"); + } + public String toCode(MetricCategory code) { + if (code == MetricCategory.MEASUREMENT) + return "measurement"; + if (code == MetricCategory.SETTING) + return "setting"; + if (code == MetricCategory.CALCULATION) + return "calculation"; + if (code == MetricCategory.UNSPECIFIED) + return "unspecified"; + return "?"; + } + } + + public enum MetricCalibrationType { + /** + * TODO. + */ + UNSPECIFIED, + /** + * TODO. + */ + OFFSET, + /** + * TODO. + */ + GAIN, + /** + * TODO. + */ + TWOPOINT, + /** + * added to help the parsers + */ + NULL; + public static MetricCalibrationType fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("unspecified".equals(codeString)) + return UNSPECIFIED; + if ("offset".equals(codeString)) + return OFFSET; + if ("gain".equals(codeString)) + return GAIN; + if ("two-point".equals(codeString)) + return TWOPOINT; + throw new Exception("Unknown MetricCalibrationType code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case UNSPECIFIED: return "unspecified"; + case OFFSET: return "offset"; + case GAIN: return "gain"; + case TWOPOINT: return "two-point"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case UNSPECIFIED: return ""; + case OFFSET: return ""; + case GAIN: return ""; + case TWOPOINT: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case UNSPECIFIED: return "TODO."; + case OFFSET: return "TODO."; + case GAIN: return "TODO."; + case TWOPOINT: return "TODO."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case UNSPECIFIED: return "unspecified"; + case OFFSET: return "offset"; + case GAIN: return "gain"; + case TWOPOINT: return "two-point"; + default: return "?"; + } + } + } + + public static class MetricCalibrationTypeEnumFactory implements EnumFactory { + public MetricCalibrationType fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("unspecified".equals(codeString)) + return MetricCalibrationType.UNSPECIFIED; + if ("offset".equals(codeString)) + return MetricCalibrationType.OFFSET; + if ("gain".equals(codeString)) + return MetricCalibrationType.GAIN; + if ("two-point".equals(codeString)) + return MetricCalibrationType.TWOPOINT; + throw new IllegalArgumentException("Unknown MetricCalibrationType code '"+codeString+"'"); + } + public String toCode(MetricCalibrationType code) { + if (code == MetricCalibrationType.UNSPECIFIED) + return "unspecified"; + if (code == MetricCalibrationType.OFFSET) + return "offset"; + if (code == MetricCalibrationType.GAIN) + return "gain"; + if (code == MetricCalibrationType.TWOPOINT) + return "two-point"; + return "?"; + } + } + + public enum MetricCalibrationState { + /** + * The metric has not been calibrated. + */ + NOTCALIBRATED, + /** + * The metric needs to be calibrated. + */ + CALIBRATIONREQUIRED, + /** + * The metric has been calibrated. + */ + CALIBRATED, + /** + * The state of calibration of this metric is unspecified. + */ + UNSPECIFIED, + /** + * added to help the parsers + */ + NULL; + public static MetricCalibrationState fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("not-calibrated".equals(codeString)) + return NOTCALIBRATED; + if ("calibration-required".equals(codeString)) + return CALIBRATIONREQUIRED; + if ("calibrated".equals(codeString)) + return CALIBRATED; + if ("unspecified".equals(codeString)) + return UNSPECIFIED; + throw new Exception("Unknown MetricCalibrationState code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case NOTCALIBRATED: return "not-calibrated"; + case CALIBRATIONREQUIRED: return "calibration-required"; + case CALIBRATED: return "calibrated"; + case UNSPECIFIED: return "unspecified"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case NOTCALIBRATED: return ""; + case CALIBRATIONREQUIRED: return ""; + case CALIBRATED: return ""; + case UNSPECIFIED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case NOTCALIBRATED: return "The metric has not been calibrated."; + case CALIBRATIONREQUIRED: return "The metric needs to be calibrated."; + case CALIBRATED: return "The metric has been calibrated."; + case UNSPECIFIED: return "The state of calibration of this metric is unspecified."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case NOTCALIBRATED: return "not-calibrated"; + case CALIBRATIONREQUIRED: return "calibration-required"; + case CALIBRATED: return "calibrated"; + case UNSPECIFIED: return "unspecified"; + default: return "?"; + } + } + } + + public static class MetricCalibrationStateEnumFactory implements EnumFactory { + public MetricCalibrationState fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("not-calibrated".equals(codeString)) + return MetricCalibrationState.NOTCALIBRATED; + if ("calibration-required".equals(codeString)) + return MetricCalibrationState.CALIBRATIONREQUIRED; + if ("calibrated".equals(codeString)) + return MetricCalibrationState.CALIBRATED; + if ("unspecified".equals(codeString)) + return MetricCalibrationState.UNSPECIFIED; + throw new IllegalArgumentException("Unknown MetricCalibrationState code '"+codeString+"'"); + } + public String toCode(MetricCalibrationState code) { + if (code == MetricCalibrationState.NOTCALIBRATED) + return "not-calibrated"; + if (code == MetricCalibrationState.CALIBRATIONREQUIRED) + return "calibration-required"; + if (code == MetricCalibrationState.CALIBRATED) + return "calibrated"; + if (code == MetricCalibrationState.UNSPECIFIED) + return "unspecified"; + return "?"; + } + } + + @Block() + public static class DeviceMetricCalibrationInfoComponent extends BackboneElement { + /** + * Describes the type of the calibration method. + */ + @Child(name="type", type={CodeType.class}, order=1, min=0, max=1) + @Description(shortDefinition="unspecified | offset | gain | two-point", formalDefinition="Describes the type of the calibration method." ) + protected Enumeration type; + + /** + * Describes the state of the calibration. + */ + @Child(name="state", type={CodeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="not-calibrated | calibration-required | calibrated | unspecified", formalDefinition="Describes the state of the calibration." ) + protected Enumeration state; + + /** + * Describes the time last calibration has been performed. + */ + @Child(name="time", type={InstantType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Describes the time last calibration has been performed", formalDefinition="Describes the time last calibration has been performed." ) + protected InstantType time; + + private static final long serialVersionUID = 407720126L; + + public DeviceMetricCalibrationInfoComponent() { + super(); + } + + /** + * @return {@link #type} (Describes the type of the calibration method.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public Enumeration getTypeElement() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetricCalibrationInfoComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new Enumeration(new MetricCalibrationTypeEnumFactory()); // bb + return this.type; + } + + public boolean hasTypeElement() { + return this.type != null && !this.type.isEmpty(); + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Describes the type of the calibration method.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public DeviceMetricCalibrationInfoComponent setTypeElement(Enumeration value) { + this.type = value; + return this; + } + + /** + * @return Describes the type of the calibration method. + */ + public MetricCalibrationType getType() { + return this.type == null ? null : this.type.getValue(); + } + + /** + * @param value Describes the type of the calibration method. + */ + public DeviceMetricCalibrationInfoComponent setType(MetricCalibrationType value) { + if (value == null) + this.type = null; + else { + if (this.type == null) + this.type = new Enumeration(new MetricCalibrationTypeEnumFactory()); + this.type.setValue(value); + } + return this; + } + + /** + * @return {@link #state} (Describes the state of the calibration.). This is the underlying object with id, value and extensions. The accessor "getState" gives direct access to the value + */ + public Enumeration getStateElement() { + if (this.state == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetricCalibrationInfoComponent.state"); + else if (Configuration.doAutoCreate()) + this.state = new Enumeration(new MetricCalibrationStateEnumFactory()); // bb + return this.state; + } + + public boolean hasStateElement() { + return this.state != null && !this.state.isEmpty(); + } + + public boolean hasState() { + return this.state != null && !this.state.isEmpty(); + } + + /** + * @param value {@link #state} (Describes the state of the calibration.). This is the underlying object with id, value and extensions. The accessor "getState" gives direct access to the value + */ + public DeviceMetricCalibrationInfoComponent setStateElement(Enumeration value) { + this.state = value; + return this; + } + + /** + * @return Describes the state of the calibration. + */ + public MetricCalibrationState getState() { + return this.state == null ? null : this.state.getValue(); + } + + /** + * @param value Describes the state of the calibration. + */ + public DeviceMetricCalibrationInfoComponent setState(MetricCalibrationState value) { + if (value == null) + this.state = null; + else { + if (this.state == null) + this.state = new Enumeration(new MetricCalibrationStateEnumFactory()); + this.state.setValue(value); + } + return this; + } + + /** + * @return {@link #time} (Describes the time last calibration has been performed.). This is the underlying object with id, value and extensions. The accessor "getTime" gives direct access to the value + */ + public InstantType getTimeElement() { + if (this.time == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetricCalibrationInfoComponent.time"); + else if (Configuration.doAutoCreate()) + this.time = new InstantType(); // bb + return this.time; + } + + public boolean hasTimeElement() { + return this.time != null && !this.time.isEmpty(); + } + + public boolean hasTime() { + return this.time != null && !this.time.isEmpty(); + } + + /** + * @param value {@link #time} (Describes the time last calibration has been performed.). This is the underlying object with id, value and extensions. The accessor "getTime" gives direct access to the value + */ + public DeviceMetricCalibrationInfoComponent setTimeElement(InstantType value) { + this.time = value; + return this; + } + + /** + * @return Describes the time last calibration has been performed. + */ + public Date getTime() { + return this.time == null ? null : this.time.getValue(); + } + + /** + * @param value Describes the time last calibration has been performed. + */ + public DeviceMetricCalibrationInfoComponent setTime(Date value) { + if (value == null) + this.time = null; + else { + if (this.time == null) + this.time = new InstantType(); + this.time.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "code", "Describes the type of the calibration method.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("state", "code", "Describes the state of the calibration.", 0, java.lang.Integer.MAX_VALUE, state)); + childrenList.add(new Property("time", "instant", "Describes the time last calibration has been performed.", 0, java.lang.Integer.MAX_VALUE, time)); + } + + public DeviceMetricCalibrationInfoComponent copy() { + DeviceMetricCalibrationInfoComponent dst = new DeviceMetricCalibrationInfoComponent(); + copyValues(dst); + dst.type = type == null ? null : type.copy(); + dst.state = state == null ? null : state.copy(); + dst.time = time == null ? null : time.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DeviceMetricCalibrationInfoComponent)) + return false; + DeviceMetricCalibrationInfoComponent o = (DeviceMetricCalibrationInfoComponent) other; + return compareDeep(type, o.type, true) && compareDeep(state, o.state, true) && compareDeep(time, o.time, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DeviceMetricCalibrationInfoComponent)) + return false; + DeviceMetricCalibrationInfoComponent o = (DeviceMetricCalibrationInfoComponent) other; + return compareValues(type, o.type, true) && compareValues(state, o.state, true) && compareValues(time, o.time, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (state == null || state.isEmpty()) + && (time == null || time.isEmpty()); + } + + } + + /** + * Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc. + */ + @Child(name="type", type={CodeableConcept.class}, order=-1, min=1, max=1) + @Description(shortDefinition="Type of metric", formalDefinition="Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc." ) + protected CodeableConcept type; + + /** * Describes the unique identification of this metric that has been assigned by the device or gateway software. For example: handle ID. -It should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device. - */ - @Child(name="identifier", type={Identifier.class}, order=0, min=1, max=1) - @Description(shortDefinition="Unique identifier of this DeviceMetric", formalDefinition="Describes the unique identification of this metric that has been assigned by the device or gateway software. For example: handle ID. \nIt should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device." ) - protected Identifier identifier; - - /** - * Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc. - */ - @Child(name="unit", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="Unit of metric", formalDefinition="Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc." ) - protected CodeableConcept unit; - - /** - * Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc. - */ - @Child(name="source", type={Device.class}, order=2, min=0, max=1) - @Description(shortDefinition="Describes the link to the source Device", formalDefinition="Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc." ) - protected Reference source; - - /** - * The actual object that is the target of the reference (Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.) - */ - protected Device sourceTarget; - - /** +It should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device. + */ + @Child(name="identifier", type={Identifier.class}, order=0, min=1, max=1) + @Description(shortDefinition="Unique identifier of this DeviceMetric", formalDefinition="Describes the unique identification of this metric that has been assigned by the device or gateway software. For example: handle ID. \nIt should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device." ) + protected Identifier identifier; + + /** + * Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc. + */ + @Child(name="unit", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Unit of metric", formalDefinition="Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc." ) + protected CodeableConcept unit; + + /** + * Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc. + */ + @Child(name="source", type={Device.class}, order=2, min=0, max=1) + @Description(shortDefinition="Describes the link to the source Device", formalDefinition="Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc." ) + protected Reference source; + + /** + * The actual object that is the target of the reference (Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.) + */ + protected Device sourceTarget; + + /** * Describes the link to the DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device. -An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location. - */ - @Child(name="parent", type={DeviceComponent.class}, order=3, min=0, max=1) - @Description(shortDefinition="Describes the link to the parent DeviceComponent", formalDefinition="Describes the link to the DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device.\nAn example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location." ) - protected Reference parent; - - /** +An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location. + */ + @Child(name="parent", type={DeviceComponent.class}, order=3, min=0, max=1) + @Description(shortDefinition="Describes the link to the parent DeviceComponent", formalDefinition="Describes the link to the DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device.\nAn example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location." ) + protected Reference parent; + + /** * The actual object that is the target of the reference (Describes the link to the DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device. -An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.) - */ - protected DeviceComponent parentTarget; - - /** - * Indicates current operational state of the device. For example: On, Off, Standby, etc. - */ - @Child(name="operationalState", type={CodeType.class}, order=4, min=0, max=1) - @Description(shortDefinition="on | off | standby", formalDefinition="Indicates current operational state of the device. For example: On, Off, Standby, etc." ) - protected Enumeration operationalState; - - /** - * Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc. - */ - @Child(name="measurementMode", type={Identifier.class}, order=5, min=0, max=1) - @Description(shortDefinition="Describes the physical principle of the measurement", formalDefinition="Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc." ) - protected Identifier measurementMode; - - /** - * Describes the typical color of the representation of observations that have been generated for this DeviceMetric. - */ - @Child(name="color", type={Identifier.class}, order=6, min=0, max=1) - @Description(shortDefinition="Describes the typical color of representation", formalDefinition="Describes the typical color of the representation of observations that have been generated for this DeviceMetric." ) - protected Identifier color; - - /** - * Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation. - */ - @Child(name="category", type={CodeType.class}, order=7, min=1, max=1) - @Description(shortDefinition="measurement | setting | calculation | unspecified", formalDefinition="Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation." ) - protected Enumeration category; - - /** +An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.) + */ + protected DeviceComponent parentTarget; + + /** + * Indicates current operational state of the device. For example: On, Off, Standby, etc. + */ + @Child(name="operationalState", type={CodeType.class}, order=4, min=0, max=1) + @Description(shortDefinition="on | off | standby", formalDefinition="Indicates current operational state of the device. For example: On, Off, Standby, etc." ) + protected Enumeration operationalState; + + /** + * Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc. + */ + @Child(name="measurementMode", type={Identifier.class}, order=5, min=0, max=1) + @Description(shortDefinition="Describes the physical principle of the measurement", formalDefinition="Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc." ) + protected Identifier measurementMode; + + /** + * Describes the typical color of the representation of observations that have been generated for this DeviceMetric. + */ + @Child(name="color", type={Identifier.class}, order=6, min=0, max=1) + @Description(shortDefinition="Describes the typical color of representation", formalDefinition="Describes the typical color of the representation of observations that have been generated for this DeviceMetric." ) + protected Identifier color; + + /** + * Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation. + */ + @Child(name="category", type={CodeType.class}, order=7, min=1, max=1) + @Description(shortDefinition="measurement | setting | calculation | unspecified", formalDefinition="Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation." ) + protected Enumeration category; + + /** * Describes the measurement repetition time. This is not necessarily the same as the update -period. - */ - @Child(name="measurementPeriod", type={Timing.class}, order=8, min=0, max=1) - @Description(shortDefinition="Describes the measurement repetition time", formalDefinition="Describes the measurement repetition time. This is not\nnecessarily the same as the update\nperiod." ) - protected Timing measurementPeriod; - - /** - * Describes the calibrations that have been performed or that are required to be performed. - */ - @Child(name="calibrationInfo", type={}, order=9, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Describes the calibrations that have been performed or that are required to be performed", formalDefinition="Describes the calibrations that have been performed or that are required to be performed." ) - protected List calibrationInfo; - - private static final long serialVersionUID = 600373390L; - - public DeviceMetric() { - super(); - } - - public DeviceMetric(CodeableConcept type, Identifier identifier, Enumeration category) { - super(); - this.type = type; - this.identifier = identifier; - this.category = category; - } - - /** - * @return {@link #type} (Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc.) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetric.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc.) - */ - public DeviceMetric setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** +period. + */ + @Child(name="measurementPeriod", type={Timing.class}, order=8, min=0, max=1) + @Description(shortDefinition="Describes the measurement repetition time", formalDefinition="Describes the measurement repetition time. This is not\nnecessarily the same as the update\nperiod." ) + protected Timing measurementPeriod; + + /** + * Describes the calibrations that have been performed or that are required to be performed. + */ + @Child(name="calibrationInfo", type={}, order=9, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Describes the calibrations that have been performed or that are required to be performed", formalDefinition="Describes the calibrations that have been performed or that are required to be performed." ) + protected List calibrationInfo; + + private static final long serialVersionUID = 600373390L; + + public DeviceMetric() { + super(); + } + + public DeviceMetric(CodeableConcept type, Identifier identifier, Enumeration category) { + super(); + this.type = type; + this.identifier = identifier; + this.category = category; + } + + /** + * @return {@link #type} (Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc.) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetric.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc.) + */ + public DeviceMetric setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** * @return {@link #identifier} (Describes the unique identification of this metric that has been assigned by the device or gateway software. For example: handle ID. -It should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device.) - */ - public Identifier getIdentifier() { - if (this.identifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetric.identifier"); - else if (Configuration.doAutoCreate()) - this.identifier = new Identifier(); - return this.identifier; - } - - public boolean hasIdentifier() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - /** +It should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device.) + */ + public Identifier getIdentifier() { + if (this.identifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetric.identifier"); + else if (Configuration.doAutoCreate()) + this.identifier = new Identifier(); // cc + return this.identifier; + } + + public boolean hasIdentifier() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + /** * @param value {@link #identifier} (Describes the unique identification of this metric that has been assigned by the device or gateway software. For example: handle ID. -It should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device.) - */ - public DeviceMetric setIdentifier(Identifier value) { - this.identifier = value; - return this; - } - - /** - * @return {@link #unit} (Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc.) - */ - public CodeableConcept getUnit() { - if (this.unit == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetric.unit"); - else if (Configuration.doAutoCreate()) - this.unit = new CodeableConcept(); - return this.unit; - } - - public boolean hasUnit() { - return this.unit != null && !this.unit.isEmpty(); - } - - /** - * @param value {@link #unit} (Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc.) - */ - public DeviceMetric setUnit(CodeableConcept value) { - this.unit = value; - return this; - } - - /** - * @return {@link #source} (Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.) - */ - public Reference getSource() { - if (this.source == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetric.source"); - else if (Configuration.doAutoCreate()) - this.source = new Reference(); - return this.source; - } - - public boolean hasSource() { - return this.source != null && !this.source.isEmpty(); - } - - /** - * @param value {@link #source} (Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.) - */ - public DeviceMetric setSource(Reference value) { - this.source = value; - return this; - } - - /** - * @return {@link #source} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.) - */ - public Device getSourceTarget() { - if (this.sourceTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetric.source"); - else if (Configuration.doAutoCreate()) - this.sourceTarget = new Device(); - return this.sourceTarget; - } - - /** - * @param value {@link #source} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.) - */ - public DeviceMetric setSourceTarget(Device value) { - this.sourceTarget = value; - return this; - } - - /** +It should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device.) + */ + public DeviceMetric setIdentifier(Identifier value) { + this.identifier = value; + return this; + } + + /** + * @return {@link #unit} (Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc.) + */ + public CodeableConcept getUnit() { + if (this.unit == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetric.unit"); + else if (Configuration.doAutoCreate()) + this.unit = new CodeableConcept(); // cc + return this.unit; + } + + public boolean hasUnit() { + return this.unit != null && !this.unit.isEmpty(); + } + + /** + * @param value {@link #unit} (Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc.) + */ + public DeviceMetric setUnit(CodeableConcept value) { + this.unit = value; + return this; + } + + /** + * @return {@link #source} (Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.) + */ + public Reference getSource() { + if (this.source == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetric.source"); + else if (Configuration.doAutoCreate()) + this.source = new Reference(); // cc + return this.source; + } + + public boolean hasSource() { + return this.source != null && !this.source.isEmpty(); + } + + /** + * @param value {@link #source} (Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.) + */ + public DeviceMetric setSource(Reference value) { + this.source = value; + return this; + } + + /** + * @return {@link #source} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.) + */ + public Device getSourceTarget() { + if (this.sourceTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetric.source"); + else if (Configuration.doAutoCreate()) + this.sourceTarget = new Device(); // aa + return this.sourceTarget; + } + + /** + * @param value {@link #source} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.) + */ + public DeviceMetric setSourceTarget(Device value) { + this.sourceTarget = value; + return this; + } + + /** * @return {@link #parent} (Describes the link to the DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device. -An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.) - */ - public Reference getParent() { - if (this.parent == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetric.parent"); - else if (Configuration.doAutoCreate()) - this.parent = new Reference(); - return this.parent; - } - - public boolean hasParent() { - return this.parent != null && !this.parent.isEmpty(); - } - - /** +An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.) + */ + public Reference getParent() { + if (this.parent == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetric.parent"); + else if (Configuration.doAutoCreate()) + this.parent = new Reference(); // cc + return this.parent; + } + + public boolean hasParent() { + return this.parent != null && !this.parent.isEmpty(); + } + + /** * @param value {@link #parent} (Describes the link to the DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device. -An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.) - */ - public DeviceMetric setParent(Reference value) { - this.parent = value; - return this; - } - - /** +An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.) + */ + public DeviceMetric setParent(Reference value) { + this.parent = value; + return this; + } + + /** * @return {@link #parent} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the link to the DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device. -An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.) - */ - public DeviceComponent getParentTarget() { - if (this.parentTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetric.parent"); - else if (Configuration.doAutoCreate()) - this.parentTarget = new DeviceComponent(); - return this.parentTarget; - } - - /** +An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.) + */ + public DeviceComponent getParentTarget() { + if (this.parentTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetric.parent"); + else if (Configuration.doAutoCreate()) + this.parentTarget = new DeviceComponent(); // aa + return this.parentTarget; + } + + /** * @param value {@link #parent} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the link to the DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device. -An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.) - */ - public DeviceMetric setParentTarget(DeviceComponent value) { - this.parentTarget = value; - return this; - } - - /** - * @return {@link #operationalState} (Indicates current operational state of the device. For example: On, Off, Standby, etc.). This is the underlying object with id, value and extensions. The accessor "getOperationalState" gives direct access to the value - */ - public Enumeration getOperationalStateElement() { - if (this.operationalState == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetric.operationalState"); - else if (Configuration.doAutoCreate()) - this.operationalState = new Enumeration(); - return this.operationalState; - } - - public boolean hasOperationalStateElement() { - return this.operationalState != null && !this.operationalState.isEmpty(); - } - - public boolean hasOperationalState() { - return this.operationalState != null && !this.operationalState.isEmpty(); - } - - /** - * @param value {@link #operationalState} (Indicates current operational state of the device. For example: On, Off, Standby, etc.). This is the underlying object with id, value and extensions. The accessor "getOperationalState" gives direct access to the value - */ - public DeviceMetric setOperationalStateElement(Enumeration value) { - this.operationalState = value; - return this; - } - - /** - * @return Indicates current operational state of the device. For example: On, Off, Standby, etc. - */ - public MetricOperationalStatus getOperationalState() { - return this.operationalState == null ? null : this.operationalState.getValue(); - } - - /** - * @param value Indicates current operational state of the device. For example: On, Off, Standby, etc. - */ - public DeviceMetric setOperationalState(MetricOperationalStatus value) { - if (value == null) - this.operationalState = null; - else { - if (this.operationalState == null) - this.operationalState = new Enumeration(MetricOperationalStatus.ENUM_FACTORY); - this.operationalState.setValue(value); - } - return this; - } - - /** - * @return {@link #measurementMode} (Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.) - */ - public Identifier getMeasurementMode() { - if (this.measurementMode == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetric.measurementMode"); - else if (Configuration.doAutoCreate()) - this.measurementMode = new Identifier(); - return this.measurementMode; - } - - public boolean hasMeasurementMode() { - return this.measurementMode != null && !this.measurementMode.isEmpty(); - } - - /** - * @param value {@link #measurementMode} (Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.) - */ - public DeviceMetric setMeasurementMode(Identifier value) { - this.measurementMode = value; - return this; - } - - /** - * @return {@link #color} (Describes the typical color of the representation of observations that have been generated for this DeviceMetric.) - */ - public Identifier getColor() { - if (this.color == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetric.color"); - else if (Configuration.doAutoCreate()) - this.color = new Identifier(); - return this.color; - } - - public boolean hasColor() { - return this.color != null && !this.color.isEmpty(); - } - - /** - * @param value {@link #color} (Describes the typical color of the representation of observations that have been generated for this DeviceMetric.) - */ - public DeviceMetric setColor(Identifier value) { - this.color = value; - return this; - } - - /** - * @return {@link #category} (Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value - */ - public Enumeration getCategoryElement() { - if (this.category == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetric.category"); - else if (Configuration.doAutoCreate()) - this.category = new Enumeration(); - return this.category; - } - - public boolean hasCategoryElement() { - return this.category != null && !this.category.isEmpty(); - } - - public boolean hasCategory() { - return this.category != null && !this.category.isEmpty(); - } - - /** - * @param value {@link #category} (Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value - */ - public DeviceMetric setCategoryElement(Enumeration value) { - this.category = value; - return this; - } - - /** - * @return Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation. - */ - public MetricCategory getCategory() { - return this.category == null ? null : this.category.getValue(); - } - - /** - * @param value Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation. - */ - public DeviceMetric setCategory(MetricCategory value) { - if (this.category == null) - this.category = new Enumeration(MetricCategory.ENUM_FACTORY); - this.category.setValue(value); - return this; - } - - /** +An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.) + */ + public DeviceMetric setParentTarget(DeviceComponent value) { + this.parentTarget = value; + return this; + } + + /** + * @return {@link #operationalState} (Indicates current operational state of the device. For example: On, Off, Standby, etc.). This is the underlying object with id, value and extensions. The accessor "getOperationalState" gives direct access to the value + */ + public Enumeration getOperationalStateElement() { + if (this.operationalState == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetric.operationalState"); + else if (Configuration.doAutoCreate()) + this.operationalState = new Enumeration(new MetricOperationalStatusEnumFactory()); // bb + return this.operationalState; + } + + public boolean hasOperationalStateElement() { + return this.operationalState != null && !this.operationalState.isEmpty(); + } + + public boolean hasOperationalState() { + return this.operationalState != null && !this.operationalState.isEmpty(); + } + + /** + * @param value {@link #operationalState} (Indicates current operational state of the device. For example: On, Off, Standby, etc.). This is the underlying object with id, value and extensions. The accessor "getOperationalState" gives direct access to the value + */ + public DeviceMetric setOperationalStateElement(Enumeration value) { + this.operationalState = value; + return this; + } + + /** + * @return Indicates current operational state of the device. For example: On, Off, Standby, etc. + */ + public MetricOperationalStatus getOperationalState() { + return this.operationalState == null ? null : this.operationalState.getValue(); + } + + /** + * @param value Indicates current operational state of the device. For example: On, Off, Standby, etc. + */ + public DeviceMetric setOperationalState(MetricOperationalStatus value) { + if (value == null) + this.operationalState = null; + else { + if (this.operationalState == null) + this.operationalState = new Enumeration(new MetricOperationalStatusEnumFactory()); + this.operationalState.setValue(value); + } + return this; + } + + /** + * @return {@link #measurementMode} (Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.) + */ + public Identifier getMeasurementMode() { + if (this.measurementMode == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetric.measurementMode"); + else if (Configuration.doAutoCreate()) + this.measurementMode = new Identifier(); // cc + return this.measurementMode; + } + + public boolean hasMeasurementMode() { + return this.measurementMode != null && !this.measurementMode.isEmpty(); + } + + /** + * @param value {@link #measurementMode} (Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.) + */ + public DeviceMetric setMeasurementMode(Identifier value) { + this.measurementMode = value; + return this; + } + + /** + * @return {@link #color} (Describes the typical color of the representation of observations that have been generated for this DeviceMetric.) + */ + public Identifier getColor() { + if (this.color == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetric.color"); + else if (Configuration.doAutoCreate()) + this.color = new Identifier(); // cc + return this.color; + } + + public boolean hasColor() { + return this.color != null && !this.color.isEmpty(); + } + + /** + * @param value {@link #color} (Describes the typical color of the representation of observations that have been generated for this DeviceMetric.) + */ + public DeviceMetric setColor(Identifier value) { + this.color = value; + return this; + } + + /** + * @return {@link #category} (Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value + */ + public Enumeration getCategoryElement() { + if (this.category == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetric.category"); + else if (Configuration.doAutoCreate()) + this.category = new Enumeration(new MetricCategoryEnumFactory()); // bb + return this.category; + } + + public boolean hasCategoryElement() { + return this.category != null && !this.category.isEmpty(); + } + + public boolean hasCategory() { + return this.category != null && !this.category.isEmpty(); + } + + /** + * @param value {@link #category} (Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation.). This is the underlying object with id, value and extensions. The accessor "getCategory" gives direct access to the value + */ + public DeviceMetric setCategoryElement(Enumeration value) { + this.category = value; + return this; + } + + /** + * @return Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation. + */ + public MetricCategory getCategory() { + return this.category == null ? null : this.category.getValue(); + } + + /** + * @param value Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation. + */ + public DeviceMetric setCategory(MetricCategory value) { + if (this.category == null) + this.category = new Enumeration(new MetricCategoryEnumFactory()); + this.category.setValue(value); + return this; + } + + /** * @return {@link #measurementPeriod} (Describes the measurement repetition time. This is not necessarily the same as the update -period.) - */ - public Timing getMeasurementPeriod() { - if (this.measurementPeriod == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceMetric.measurementPeriod"); - else if (Configuration.doAutoCreate()) - this.measurementPeriod = new Timing(); - return this.measurementPeriod; - } - - public boolean hasMeasurementPeriod() { - return this.measurementPeriod != null && !this.measurementPeriod.isEmpty(); - } - - /** +period.) + */ + public Timing getMeasurementPeriod() { + if (this.measurementPeriod == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceMetric.measurementPeriod"); + else if (Configuration.doAutoCreate()) + this.measurementPeriod = new Timing(); // cc + return this.measurementPeriod; + } + + public boolean hasMeasurementPeriod() { + return this.measurementPeriod != null && !this.measurementPeriod.isEmpty(); + } + + /** * @param value {@link #measurementPeriod} (Describes the measurement repetition time. This is not necessarily the same as the update -period.) - */ - public DeviceMetric setMeasurementPeriod(Timing value) { - this.measurementPeriod = value; - return this; - } - - /** - * @return {@link #calibrationInfo} (Describes the calibrations that have been performed or that are required to be performed.) - */ - public List getCalibrationInfo() { - if (this.calibrationInfo == null) - this.calibrationInfo = new ArrayList(); - return this.calibrationInfo; - } - - public boolean hasCalibrationInfo() { - if (this.calibrationInfo == null) - return false; - for (DeviceMetricCalibrationInfoComponent item : this.calibrationInfo) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #calibrationInfo} (Describes the calibrations that have been performed or that are required to be performed.) - */ - // syntactic sugar - public DeviceMetricCalibrationInfoComponent addCalibrationInfo() { //3 - DeviceMetricCalibrationInfoComponent t = new DeviceMetricCalibrationInfoComponent(); - if (this.calibrationInfo == null) - this.calibrationInfo = new ArrayList(); - this.calibrationInfo.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "CodeableConcept", "Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("identifier", "Identifier", "Describes the unique identification of this metric that has been assigned by the device or gateway software. For example: handle ID. \nIt should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("unit", "CodeableConcept", "Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc.", 0, java.lang.Integer.MAX_VALUE, unit)); - childrenList.add(new Property("source", "Reference(Device)", "Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.", 0, java.lang.Integer.MAX_VALUE, source)); - childrenList.add(new Property("parent", "Reference(DeviceComponent)", "Describes the link to the DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device.\nAn example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.", 0, java.lang.Integer.MAX_VALUE, parent)); - childrenList.add(new Property("operationalState", "code", "Indicates current operational state of the device. For example: On, Off, Standby, etc.", 0, java.lang.Integer.MAX_VALUE, operationalState)); - childrenList.add(new Property("measurementMode", "Identifier", "Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.", 0, java.lang.Integer.MAX_VALUE, measurementMode)); - childrenList.add(new Property("color", "Identifier", "Describes the typical color of the representation of observations that have been generated for this DeviceMetric.", 0, java.lang.Integer.MAX_VALUE, color)); - childrenList.add(new Property("category", "code", "Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation.", 0, java.lang.Integer.MAX_VALUE, category)); - childrenList.add(new Property("measurementPeriod", "Timing", "Describes the measurement repetition time. This is not\nnecessarily the same as the update\nperiod.", 0, java.lang.Integer.MAX_VALUE, measurementPeriod)); - childrenList.add(new Property("calibrationInfo", "", "Describes the calibrations that have been performed or that are required to be performed.", 0, java.lang.Integer.MAX_VALUE, calibrationInfo)); - } - - public DeviceMetric copy() { - DeviceMetric dst = new DeviceMetric(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - dst.identifier = identifier == null ? null : identifier.copy(); - dst.unit = unit == null ? null : unit.copy(); - dst.source = source == null ? null : source.copy(); - dst.parent = parent == null ? null : parent.copy(); - dst.operationalState = operationalState == null ? null : operationalState.copy(); - dst.measurementMode = measurementMode == null ? null : measurementMode.copy(); - dst.color = color == null ? null : color.copy(); - dst.category = category == null ? null : category.copy(); - dst.measurementPeriod = measurementPeriod == null ? null : measurementPeriod.copy(); - if (calibrationInfo != null) { - dst.calibrationInfo = new ArrayList(); - for (DeviceMetricCalibrationInfoComponent i : calibrationInfo) - dst.calibrationInfo.add(i.copy()); - }; - return dst; - } - - protected DeviceMetric typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (identifier == null || identifier.isEmpty()) - && (unit == null || unit.isEmpty()) && (source == null || source.isEmpty()) && (parent == null || parent.isEmpty()) - && (operationalState == null || operationalState.isEmpty()) && (measurementMode == null || measurementMode.isEmpty()) - && (color == null || color.isEmpty()) && (category == null || category.isEmpty()) && (measurementPeriod == null || measurementPeriod.isEmpty()) - && (calibrationInfo == null || calibrationInfo.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.DeviceMetric; - } - - @SearchParamDefinition(name="category", path="DeviceMetric.category", description="The category of the metric", type="token" ) - public static final String SP_CATEGORY = "category"; - @SearchParamDefinition(name="source", path="DeviceMetric.source", description="The device resource", type="reference" ) - public static final String SP_SOURCE = "source"; - @SearchParamDefinition(name="parent", path="DeviceMetric.parent", description="The parent DeviceMetric resource", type="reference" ) - public static final String SP_PARENT = "parent"; - @SearchParamDefinition(name="type", path="DeviceMetric.type", description="The component type", type="token" ) - public static final String SP_TYPE = "type"; - @SearchParamDefinition(name="identifier", path="DeviceMetric.identifier", description="The identifier of the metric", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +period.) + */ + public DeviceMetric setMeasurementPeriod(Timing value) { + this.measurementPeriod = value; + return this; + } + + /** + * @return {@link #calibrationInfo} (Describes the calibrations that have been performed or that are required to be performed.) + */ + public List getCalibrationInfo() { + if (this.calibrationInfo == null) + this.calibrationInfo = new ArrayList(); + return this.calibrationInfo; + } + + public boolean hasCalibrationInfo() { + if (this.calibrationInfo == null) + return false; + for (DeviceMetricCalibrationInfoComponent item : this.calibrationInfo) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #calibrationInfo} (Describes the calibrations that have been performed or that are required to be performed.) + */ + // syntactic sugar + public DeviceMetricCalibrationInfoComponent addCalibrationInfo() { //3 + DeviceMetricCalibrationInfoComponent t = new DeviceMetricCalibrationInfoComponent(); + if (this.calibrationInfo == null) + this.calibrationInfo = new ArrayList(); + this.calibrationInfo.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "CodeableConcept", "Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("identifier", "Identifier", "Describes the unique identification of this metric that has been assigned by the device or gateway software. For example: handle ID. \nIt should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("unit", "CodeableConcept", "Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc.", 0, java.lang.Integer.MAX_VALUE, unit)); + childrenList.add(new Property("source", "Reference(Device)", "Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.", 0, java.lang.Integer.MAX_VALUE, source)); + childrenList.add(new Property("parent", "Reference(DeviceComponent)", "Describes the link to the DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device.\nAn example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.", 0, java.lang.Integer.MAX_VALUE, parent)); + childrenList.add(new Property("operationalState", "code", "Indicates current operational state of the device. For example: On, Off, Standby, etc.", 0, java.lang.Integer.MAX_VALUE, operationalState)); + childrenList.add(new Property("measurementMode", "Identifier", "Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etc.", 0, java.lang.Integer.MAX_VALUE, measurementMode)); + childrenList.add(new Property("color", "Identifier", "Describes the typical color of the representation of observations that have been generated for this DeviceMetric.", 0, java.lang.Integer.MAX_VALUE, color)); + childrenList.add(new Property("category", "code", "Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation.", 0, java.lang.Integer.MAX_VALUE, category)); + childrenList.add(new Property("measurementPeriod", "Timing", "Describes the measurement repetition time. This is not\nnecessarily the same as the update\nperiod.", 0, java.lang.Integer.MAX_VALUE, measurementPeriod)); + childrenList.add(new Property("calibrationInfo", "", "Describes the calibrations that have been performed or that are required to be performed.", 0, java.lang.Integer.MAX_VALUE, calibrationInfo)); + } + + public DeviceMetric copy() { + DeviceMetric dst = new DeviceMetric(); + copyValues(dst); + dst.type = type == null ? null : type.copy(); + dst.identifier = identifier == null ? null : identifier.copy(); + dst.unit = unit == null ? null : unit.copy(); + dst.source = source == null ? null : source.copy(); + dst.parent = parent == null ? null : parent.copy(); + dst.operationalState = operationalState == null ? null : operationalState.copy(); + dst.measurementMode = measurementMode == null ? null : measurementMode.copy(); + dst.color = color == null ? null : color.copy(); + dst.category = category == null ? null : category.copy(); + dst.measurementPeriod = measurementPeriod == null ? null : measurementPeriod.copy(); + if (calibrationInfo != null) { + dst.calibrationInfo = new ArrayList(); + for (DeviceMetricCalibrationInfoComponent i : calibrationInfo) + dst.calibrationInfo.add(i.copy()); + }; + return dst; + } + + protected DeviceMetric typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DeviceMetric)) + return false; + DeviceMetric o = (DeviceMetric) other; + return compareDeep(type, o.type, true) && compareDeep(identifier, o.identifier, true) && compareDeep(unit, o.unit, true) + && compareDeep(source, o.source, true) && compareDeep(parent, o.parent, true) && compareDeep(operationalState, o.operationalState, true) + && compareDeep(measurementMode, o.measurementMode, true) && compareDeep(color, o.color, true) && compareDeep(category, o.category, true) + && compareDeep(measurementPeriod, o.measurementPeriod, true) && compareDeep(calibrationInfo, o.calibrationInfo, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DeviceMetric)) + return false; + DeviceMetric o = (DeviceMetric) other; + return compareValues(operationalState, o.operationalState, true) && compareValues(category, o.category, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (identifier == null || identifier.isEmpty()) + && (unit == null || unit.isEmpty()) && (source == null || source.isEmpty()) && (parent == null || parent.isEmpty()) + && (operationalState == null || operationalState.isEmpty()) && (measurementMode == null || measurementMode.isEmpty()) + && (color == null || color.isEmpty()) && (category == null || category.isEmpty()) && (measurementPeriod == null || measurementPeriod.isEmpty()) + && (calibrationInfo == null || calibrationInfo.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.DeviceMetric; + } + + @SearchParamDefinition(name="category", path="DeviceMetric.category", description="The category of the metric", type="token" ) + public static final String SP_CATEGORY = "category"; + @SearchParamDefinition(name="source", path="DeviceMetric.source", description="The device resource", type="reference" ) + public static final String SP_SOURCE = "source"; + @SearchParamDefinition(name="parent", path="DeviceMetric.parent", description="The parent DeviceMetric resource", type="reference" ) + public static final String SP_PARENT = "parent"; + @SearchParamDefinition(name="type", path="DeviceMetric.type", description="The component type", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="identifier", path="DeviceMetric.identifier", description="The identifier of the metric", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..3a565cfc86bb0915c8007850d9dff6d66e86d4e9 GIT binary patch literal 1879 zcmb_d-*ePd7(I8pZFZLct3qiDC~AaOu`9npM7yN7?UvmnB)dfheMr;T4TMCq*)r(6 zGy3if`~eK`C=N_<9G-MWeRoFx0B0Qk2*>XWtXqmNOgpoC&OP_L_vGI1ySe%GpYI<5 zID(5Myn+2i4C6qNTH`Dy6uimeErx>(Zq zWH`m}u7cAF-WM=5=UR|@?S}iQ7AMPEJ3OI%(hd?Wh&rhodA@cvUh+e2+FuDgzt!<= z|Ff>&NuTL(Qa9~(1ag;Z0@h}^T1gNmL3&-F@SYb2QIOJ_2gWBB1oAp9OkjIGh7~?6G(2bTWM(lLG_DtZ1OEO8~M8zBrt1-+&Dmcd$4HYA7 zVZc;jF`Q?x861WtLyKX7;R3^lFa;*5EEOtCh09Xum8FuErLul2+93f5sI@5a6Fqc0 z9iM7a?yuHdyzG0az`^Hn6_C#}{F$@Suj0u11@}WkD{e?9OJII{;!=H6o_AV6vCUSq zW=MhA&GU?tr66*{>?G1@A8OgN(rD6=bedJBs#CQD^bPHy_dX4;&sZ-ox8XEBcA_K| zEZek9M^00rHH4Jtv+VXr$I!$gDY^lrILe{M6y0o(1Qq7>=Ju;ztZn z3;25#;?WPK?~uF4zkvtH=gr&5pUdPB$-%x>3(5F#Db!wEpa2o1UqyGZ&g5)d! literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$DeviceUseRequestPriority.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$DeviceUseRequestPriority.class new file mode 100644 index 0000000000000000000000000000000000000000..cb9675c3da80f10fed8cc22216a41c5cf6168919 GIT binary patch literal 2953 zcmb_dTUQfT6#h;KnIQ}pM^U6+MvRakBt@;Z#VUxXSOiMIHqzUW3}G~xiIWLRFTbKs z{R@4HxE6HP)z+sz^q2V1hd%V74_&t3nQ#f<>RK+DE3wYX$^ zDcdRgrjxZ&MK@;^QoGf}b}ww|9TJGl&D zr_#P>JNco+{<(G8c5MHOz~NWGj3@32G^OplWBL`3RyD-sin{2z#hT$QY2VB~xMP+! z%#Myd&RQkkb{$44;=47eL-E93AE-HR`RSFiZxsbvIKOT!N@I9fAS!vgTq>B%BlU8& zuwiDVPSKcCDPG>ENL*o7MbmD@%UU;Vc>x`}(=RD+LBrd!4hJ<9;V5tg#`YzrHC#kV z!@GD-016&z@W2Qvo?G#m8XDp_%YatAyyf^B`Xv`;`EWiE%+0dN^GP{BxScLrw;^z3 zd$pEC*D7`)XL%BozW2^K4;=TAW9)W&v+9g2Gu7zT;G-fSI9bN9Jp4$(V+||#O2gOq zhFez!x@VUx!>hFeW63NVrs23=(JUCHjpmRPh}8>~m)uGrXDnDo&UGxK=4fGsV#n*n z?6Tq8MQb3-24iQ<0{73??{BLyv%ZxxT*n}K*{#u%TQ1uyuVfHu4JjF}*6qN^gc4}X z7HERN&a9nUxNl{BMymgHE?nT9`nn2Q;ZR))Z`JcoBM8&Jy;2k6^)sMmfoaiEuXDq& z#61d_rIO|31P1B_UV*VA0|=)2?k30%-J3^Q^vTz8J2ogV9ZNs5{p=E(LyTu*?E5j< z_hXxVKNj@;J#Bu^!e#~vgyzRt6RwxD9h2W6cBAp(L4J~Y`LT=)AC*M{kg_}i%F+lZ z%Oaq>Z=k(P)-X>r@pq0NS%C}Wx=G~|U4>Xf=s6myh3#xY#os&d$hmLl@NxAa+xT#Lr>_Pv@6^98#G<% zTZ8&N8bwuas!f$uM5}u97Nb@5mMx~Ws<&-1?bT;Eka-3@vyOxMp*3`Ht3yA`*BXwj zqx07QUb>q^Gv6=Kf`8FQ^iCmgOoVVoG$0|uI42r$QABW6C>RwgKA^OUNQ=<;;0ifu z^Z|~m80K4gU)l)QrBxgya98pNF7oN;kPe19435(rJsb(WiGI-=`cT#1lA#R+chSY$ zfM`ZsXsq5ABtD||mr^b`rtQ z*O|t(d;c!DSs?!m;f!uHtmD*EL<6Qf957nIoNf%5)_{pc0;WA+&L{!Xqy9_{4b1m+ zCcFwQooQS}YdRBIMSD8KI_OD1h1jmDAW!fIllV_`;V<@xznO^tFezTJ3~RMEh8sa% V-9#U$&I}9VLnPQi7D&;q{s$@ouEYQU literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$DeviceUseRequestPriorityEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$DeviceUseRequestPriorityEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..87edaf40e2df71223774c53059c04e7305202f0a GIT binary patch literal 2022 zcmb_dT~iZh6n+kb?1vl0EvcdvQBe}2#)5(x1VRW%8zCi0JGNI#c#W%@-MHCkz3-ps zALw=33z(@h+L_MuqCcwB^ClsLAY74|yyu*E&-Z!G?!W*2`4PYje$X+BJ1Xw#NaCJ~ zuQfz5tzt&f`zjttI;&z%(uWEjDR`_SB27|~&Z~GL>4FXeiz=2BEbF+4j67BpWEHF_ zcuEM*+pZlf5C&uM?+Kxdw<8GWa<(fr8r5y#7p-lFZ`2pQS8YGMxFX)#Wl^e&E%Bxy z>OtPOJ>L%A6O47&6@JFC>UB{k{1nT*vff%r$8sylLg3qOB^A$kekJ+RnM=NSY5Pgr ztp}D{7Rf3Hc9Q+BC;Bh;W2Fd@LSU6&KeK9`6!q-SWl;-k&*jkJz-wpAIh;^H%UFyWnvESz02&Y5#_>8EP`8NG>cnO>(N_&PYygnj=kCZ)bIj{ezaE zP#QWd<2+?BLMymTS&Y#tXSjwKJ#A$YMo8B*Z8*)rCp*Efb%JYCiN6rt#h23cp)s)f vRm50L<~r6<4^MHQE*#PAsc;bSR+3XlwCHWd0bsIy6lshvjWR0IScUdK#TW~M literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$DeviceUseRequestStatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest$DeviceUseRequestStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..a4cf9be811eb7adab293e96adca5c51841c2e582 GIT binary patch literal 4293 zcmcIm`*YOR75-$5_j*~wMm$3eQ4$kuFg6g#qY%K@3z)1Qv20*N5+d))wm>T_k{08< zlcwYaNoeyT@3wi8q*a_5=!9vTpZY`pj{X;&>GZpI?X|(CGt7YOyGP&Ex%Zs!oO6%# zumAr1cL4X|hkDdvB#BXsCD50^@g#QRg#2*@ib;6z1xixsq(C5LC=f|m7C0s4xWH*C zCj_37@@au*q2k{N8nw7_XOS-_(0%-z#ggip+J{FMqr=7et`o5-2w*%9u~+7 z^hm28CGfEZ(Ld1F-)CmJG_2^dPdRyeD6|LclVv-M%*cw$p@vkq=h;E0YlWdrn92IV zX#1FZfBVRo6SO;C7+GH4ZZG-;+ikyglcsAYD!cB`km%2L^!7^2^#hqlhBD@$ycYwR z&P?|qb=%R|ndw)v$?je{x_=;JnpE%X>*>#C)Ps6+$n4Mbc1ES=!LB@90hPzwVUfGE5o{G`HNWJ!?A|L=8)_j%W9li^Fy>XbroZNho7| zBN}qe+2htJtKGG{(RMQm9B*_-%gv&+)A5{W7i(c2Bi${B7<15_~-Y!Ls?=ebskzdhT*4#3e0e2p?BXc5*?4pJS-gns}(itw+ zkd)X7ORhCRgFEx?l$(cVZItoK#ho`L4!c;KNz*R}d3&EDgTMUR8g7#rNTFBuhrSd( z!KVp)rlIpD9E=nO@p%e|a99Hp_(KYR#GgpI6!;}Sv`Oh)~E0VzSN-c<|{lQmwuhVHz|CJiz$4E@A+uAhP8uZwlNh6W6TPTVcYhM>BzNd zSTnyuC6s*Lc)jO&yTHfCDvxDgdFqT%RjV>I9c?3;<-u?{GCV&rChW*4*m;M6G{(nl zssx4;8RL%Y(nF(U2P1w^R2F)!YhgNnb1aPe!3pKVv?->sXtNc2>hT`CMoZi>8A`WGc_HILYq3EDfGy) zUp!ObvIl8cn0I}TZR6@j*EcNB4qHp>jdTeO+h@08^%CAOtLs%?09QLfGwGR`iV|Be zn}p@E7cZZ^=ageDk5WMuLqWr)*$VU6xauU+n27voBUkM`y_D~Xwi}_{v_(U2lR550 z`7ypvnz*)!UmQ*Hi=%1!i=#<>am@L^m@`r7BpPatcC%-(@>y@LdVO{8*}^ZO-TdxL z?YUhxR)CTnRY^8dCD}lgWaCtl-BL+5NhR4Em1Iv;lFd*_RtJz?EngF~P|v@9JOT{^ zM0ZijD>(`65^8?If|!U$kiT{6*=FhwVrWYLZq%sRMN3h;;jdWu3u@;ssFAM?DoO)) zU;+R53fZu+@iOXuoU{88&eR}BE05BOTBL1fG^AfYZulosdSb&RhznS##d>|^HZh50 ztS_p9RIE2t!Qxn7QU&Q)zpV=NSYKKN%VK?b6|9K$l~u4R)^D$Z)v^AoDrk(aU`_4{ z*5)qb4&AtfJNf8N{Vx7o!rhnA^bbWw2JZ>1RKE>4h9!6st6-rK!&rwrT2R1N*ticP zO!_F(Glnc2rsX&TaRQIS<&z?jhY&u-QNjy2iI)-J9B0lW!cp$N7^wy=RlV>S=Vaj4 za6C>ADk=VXDrMFr*3sR2+AdO!*C7rWFW9G@p$qU@Mwl|pffX5Bi)feRPC3$>B9$%BkH{|gxd0Zrq@5tkO z^7w)N|Cz4-WquxlCoxw!A6hfdjJ*DR1+_VS>w?R;_a`J3*jB4RN`dVQ65Aeig?6MXnyVGsnXXss8Wnmdom6O7dePtL)dKcA zGgmu_l$l#NiN$8FZW3uTmzacZ=ENkHnYlElR#0$m6$K|(Q`AqQk%H}gm-!R4nf6;b zqTA5Gv%eZUv7SNQ#&h4nkMLdw^fA?q26=#w;0)0_*vvj&Y1Vo6FL~5$?4{IsSIh3z M!B^Hn=(*S*H*2>x6w`ZTr{?0z<-1zVE6#)BD zQm_+;WIU{30E03f38M=`GKSe6mJwxpL`ID5hzy7Sr|KnukDlb#}U4%2RH)q+1hK z5n(wn=qV6RTUnb_bV=$Ls>Yd|J7Z?NfmPGsAx4di=eW-et{PaY=AGmnB7v2(Q*txr zsKuM#THA9kC!k^%dITVW;2bhkBn8(gI7M?_#XP8=RG_`LnVw=AcFXm`jx0N5*UXsK zdFH1BZe(~DnOn>^SoR(oGV7YfqKY%Y7#SyD$eBUR*}zdO6$_?4&z*9?Ag;-pG0!uX zj5)^*sLgc8vi9S-oS8LpQ8!!4o3>XeA%V8#pz@v_DOtIB(-qh`WuLX33wCF%B<0fV z%upeB?o#2PARq{wgUdouS&Cr^oauB*r%c&dj%3}FkV#&33S~)wG}Z<%L0{4 zRAAR?>$p?rvbuC+sWOZliPTzstd^?3ca};enVL*aru7j4eNBp-3L_bhCK5biIHez( z($mKo%PBpkk530M8jI=4z^jZWXaQp>J)NfT*yKbqt_L5&>8W&5PmC;eJ*vk7w-h}x znF>(IC~$cS?5WP|HaEeFLZcHXd(KUDT6%7Kx2(|W=7@BO?_O;uYB!hOk8XOK1n#AW zs-7$zYHE9lZ6{0T8})scAYLaR&_``3aK1?`)gRVzs2D>XA>c~?b*S39{spYR2(6mb z3ty`%`=vKf?`xq7k$g?Akg%^Q6|%wC)Cy_vwT%_h=xa?C((G$mg>3S*mI`V0wapdM z<}adsW)WLvF5xb1>jJjXr)}DHY8KFO33p$m4AuoX&e5|8ET91tinp*0Z<9!uDc42p z!#g;DcQK4Bh~X;YxP~O&!wlZXNqj(e-G_8neS{*e;{ra$^Y{cW;#0hY8+aL?;T3$2 zSMdcRG(#gA8dRZHez=dEbtG*&{ppNT%RBKGEsN#N_LFq4A*9v$gd|2GMqx%WqYaD{ zMh%QqMvaU%GHPbj#Ap*EjZrJ37DjE1Hv3wqPg9k3m_{q%FX@i|3JShPGrmC!zQtC2 zhYoyCn*2cJ@+0N)6D{^<9KtUc#IK~wZy3ezn7|*T&7U|yDa_(;82E>thJSF!@jw`(cga9{s5bS+>9FK9*aQFuQdpfFaaV<|k;NBeotEwNRauE&ExY6oyI Yun%DmS&jO4(e~{=yoJuf44y*xf2<#kasU7T literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..4eb8c1dee8752f4558f19ca3dceba54e79cbce9f GIT binary patch literal 20672 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
    7`-7cIfI|Gz`KF-$^6318sEA^BqkC!S_Yz`w~@( zmuZA}1^@ctRp|SgI*0%LiyqF-Jq#c>z~wc&8d5i~*@Nn^B8RI81a9NGRgU^T9!y)_sRin_d0FHlqjf=+ z6h*bPX=1vCg=>+i1H4mtktv~KnMFqXDuuMKQMGm^jn>XWcsX10vlp2eVA5O?#rgsi z>%p|%i{iOZ={%tL9WRQ!RL?AlBB&}9>&u|%zf^1A2g?h9;)OtQ3sC$4P}~9(FDi}V z!M;m%2^Gts_+y~>6QFoGP`m;tURi)5FV(Y3qS#P?B1i28FN(i_O4k6zUwTnI1XK?# zi6W>f6dTH**vP)vRMr=N4VKpf#T$U)HlX+$ptubv-dGyN&k7EFym-2Nu@SyFjeW6% zisewe6)4^Y6mJKLcL2rR1t?-=7A@j)7OQnw>6m51E|RR4)MNRaeoSeG@Fvc%WT0@b zt$V=m9;(v*K*O|q$Fv(@O16K>5!=`B9+!7#8)v&@}uuYma+SK2W8VhnIAq<^l(5hFr~F z2YMEKo`VBDFX_618BfExB^?M|b%glOa z9$S?veGElEfp6`j5pc#axJj(lHObUYl@>SvyHn(uYI&ZygAOf|D(M3y87D^w9wHP%N-zE)~{BuE@3 z7F&c)!p!B=xXwDQW1ILPLM9l%ZQ7NlRWEX=uHXf_f8G>eFE8=`i#R7`j<&~-7wH9af~&A+_CF$KTYQ%cFo&PheOlD zy_#--rW>K@CTMyZH2pF(J-tBFW5sHVVL_}oyhy^cAmQ2QdYr(iu#6RB$Ua57ky@Fv z+I_3ga4t$;6en0)^#qnw-m}hukga#p{EMl67cIas#X<;wMD+7J=nLGkgBIznsd zFYimh`%>_}tTgW!;*vV}^5{Lw!+Uw(yk~iNUj^P*gZIx$^IlWZb6b_?0^p;|twq;J zdd^xD7YWPE1%A<5e)doYi<+W8Y8M%pm z3mkYC9Qal^@NLwj-!3I}pHuNha9v5o+mzyM<SQQ#is-bEcb`)MNIOPD8JttC%0s1Q+@q4e6{EXAA|=ump>^JKsy1~_1)^o_ zfKXk0PNhGEQ2jJQ^|J`o&(TEvd1};Ou+*04R000DLHRyT!zwrf5ayJrJ8|;4i;i6# zT^&6xdb}R}B1|3FNher`qO$2r(G#O5sivx(6mvJNiN>P|)uefv%;?(aI@L7Z)6@}7 zMo(5vwH{ulK#We+RPSl(il(Az)zsi=>c*&3Ra3L4DHF{`bE;{kM~ogctyfJgo~8}a zjnPf2N%u6J7X5Pcbk)@AY5EF)Izu(JIZgSq_`|3gXXdZKsa_>Re~sqouhT014LVi- zJDsP$Nn7=|=q~*q^tAp@`apkM4AI{ajrzM{k^Y`Y=kc{#C#YPDV@~^#$YQ z8AqA%QiJ*e4KTi;V7%Pjml@y4{2MU-8*cv11>@!BuFQDJzqx=vqhe+0j3Bb~Z(7 zm*KyuG?DeVSUb(0jFeBicF;Mz2)NR&z&Mofxs;l>VjSiz@9LiC5d3YN1?ksLy^}Vp zm)*2^35*-4$KSwBbZ#&0La_?PDiqJ_rE5{tP}EfMG8D(7I9?UMi()N`wQB5U6zfr} zSH*4=8&GUe#TbgsC^oAiFZDA~oQWbB%}22X#THfM`z;+sT^0F4r4_|iRpd*XHWb@b z(R=qK(}utV3I!%oI53F@2PV^yKrM|7)Jd<2P#_%IOZUMo=JK@^J|d{+r=Yj}RIIy!(@tP)yTXj>%|-9n>STId-Nx*0;xgwO{==vfe2Z5%D3+ijuo z`L|`^304mN9)Jyl`4c9naf#5o>mu|)z z?h?3y?-F|H=XgV0Whyx7mQ;R#cZ5o=LPVEUXW|{vkE?J7DXY?WM?m8$oGQsGUg~iY z!o>L`q?eAu8+OcG!8_(&nvFN?thj=AR=re*HzcfF!3k?Gjl>%gIj-PDt{6X=00mm4 zfumGCx~8Tkia+?NsnMmGH;b=YX2#te{=-IL8(rX?JxA2c!>ac+tEb;YqXyaa%>C+$ z{~gg;;HZhS(<=P_XznN) PhTmS4N8|V6xugCIuTm>M literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest.java similarity index 81% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest.java index a6fcda29996..1f0687a1758 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseRequest.java @@ -1,1241 +1,1103 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Represents a request for the use of a device. - */ -@ResourceDef(name="DeviceUseRequest", profile="http://hl7.org/fhir/Profile/DeviceUseRequest") -public class DeviceUseRequest extends DomainResource { - - public enum DeviceUseRequestStatus implements FhirEnum { - /** - * The request has been placed. - */ - REQUESTED, - /** - * The receiving system has received the request but not yet decided whether it will be performed. - */ - RECEIVED, - /** - * The receiving system has accepted the request but work has not yet commenced. - */ - ACCEPTED, - /** - * The work to fulfill the order is happening. - */ - INPROGRESS, - /** - * The work is complete, and the outcomes are being reviewed for approval. - */ - REVIEW, - /** - * The work has been complete, the report(s) released, and no further work is planned. - */ - COMPLETED, - /** - * The request has been held by originating system/user request. - */ - SUSPENDED, - /** - * The receiving system has declined to fulfill the request. - */ - REJECTED, - /** - * The request was attempted, but due to some procedural error, it could not be completed. - */ - FAILED, - /** - * added to help the parsers - */ - NULL; - - public static final DeviceUseRequestStatusEnumFactory ENUM_FACTORY = new DeviceUseRequestStatusEnumFactory(); - - public static DeviceUseRequestStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("requested".equals(codeString)) - return REQUESTED; - if ("received".equals(codeString)) - return RECEIVED; - if ("accepted".equals(codeString)) - return ACCEPTED; - if ("in progress".equals(codeString)) - return INPROGRESS; - if ("review".equals(codeString)) - return REVIEW; - if ("completed".equals(codeString)) - return COMPLETED; - if ("suspended".equals(codeString)) - return SUSPENDED; - if ("rejected".equals(codeString)) - return REJECTED; - if ("failed".equals(codeString)) - return FAILED; - throw new IllegalArgumentException("Unknown DeviceUseRequestStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case REQUESTED: return "requested"; - case RECEIVED: return "received"; - case ACCEPTED: return "accepted"; - case INPROGRESS: return "in progress"; - case REVIEW: return "review"; - case COMPLETED: return "completed"; - case SUSPENDED: return "suspended"; - case REJECTED: return "rejected"; - case FAILED: return "failed"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case REQUESTED: return ""; - case RECEIVED: return ""; - case ACCEPTED: return ""; - case INPROGRESS: return ""; - case REVIEW: return ""; - case COMPLETED: return ""; - case SUSPENDED: return ""; - case REJECTED: return ""; - case FAILED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case REQUESTED: return "The request has been placed."; - case RECEIVED: return "The receiving system has received the request but not yet decided whether it will be performed."; - case ACCEPTED: return "The receiving system has accepted the request but work has not yet commenced."; - case INPROGRESS: return "The work to fulfill the order is happening."; - case REVIEW: return "The work is complete, and the outcomes are being reviewed for approval."; - case COMPLETED: return "The work has been complete, the report(s) released, and no further work is planned."; - case SUSPENDED: return "The request has been held by originating system/user request."; - case REJECTED: return "The receiving system has declined to fulfill the request."; - case FAILED: return "The request was attempted, but due to some procedural error, it could not be completed."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case REQUESTED: return "requested"; - case RECEIVED: return "received"; - case ACCEPTED: return "accepted"; - case INPROGRESS: return "in progress"; - case REVIEW: return "review"; - case COMPLETED: return "completed"; - case SUSPENDED: return "suspended"; - case REJECTED: return "rejected"; - case FAILED: return "failed"; - default: return "?"; - } - } - } - - public static class DeviceUseRequestStatusEnumFactory implements EnumFactory { - public DeviceUseRequestStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("requested".equals(codeString)) - return DeviceUseRequestStatus.REQUESTED; - if ("received".equals(codeString)) - return DeviceUseRequestStatus.RECEIVED; - if ("accepted".equals(codeString)) - return DeviceUseRequestStatus.ACCEPTED; - if ("in progress".equals(codeString)) - return DeviceUseRequestStatus.INPROGRESS; - if ("review".equals(codeString)) - return DeviceUseRequestStatus.REVIEW; - if ("completed".equals(codeString)) - return DeviceUseRequestStatus.COMPLETED; - if ("suspended".equals(codeString)) - return DeviceUseRequestStatus.SUSPENDED; - if ("rejected".equals(codeString)) - return DeviceUseRequestStatus.REJECTED; - if ("failed".equals(codeString)) - return DeviceUseRequestStatus.FAILED; - throw new IllegalArgumentException("Unknown DeviceUseRequestStatus code '"+codeString+"'"); - } - public String toCode(DeviceUseRequestStatus code) throws IllegalArgumentException { - if (code == DeviceUseRequestStatus.REQUESTED) - return "requested"; - if (code == DeviceUseRequestStatus.RECEIVED) - return "received"; - if (code == DeviceUseRequestStatus.ACCEPTED) - return "accepted"; - if (code == DeviceUseRequestStatus.INPROGRESS) - return "in progress"; - if (code == DeviceUseRequestStatus.REVIEW) - return "review"; - if (code == DeviceUseRequestStatus.COMPLETED) - return "completed"; - if (code == DeviceUseRequestStatus.SUSPENDED) - return "suspended"; - if (code == DeviceUseRequestStatus.REJECTED) - return "rejected"; - if (code == DeviceUseRequestStatus.FAILED) - return "failed"; - return "?"; - } - } - - public enum DeviceUseRequestMode implements FhirEnum { - /** - * planned. - */ - PLANNED, - /** - * proposed. - */ - PROPOSED, - /** - * ordered. - */ - ORDERED, - /** - * added to help the parsers - */ - NULL; - - public static final DeviceUseRequestModeEnumFactory ENUM_FACTORY = new DeviceUseRequestModeEnumFactory(); - - public static DeviceUseRequestMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("planned".equals(codeString)) - return PLANNED; - if ("proposed".equals(codeString)) - return PROPOSED; - if ("ordered".equals(codeString)) - return ORDERED; - throw new IllegalArgumentException("Unknown DeviceUseRequestMode code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case PLANNED: return "planned"; - case PROPOSED: return "proposed"; - case ORDERED: return "ordered"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case PLANNED: return ""; - case PROPOSED: return ""; - case ORDERED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case PLANNED: return "planned."; - case PROPOSED: return "proposed."; - case ORDERED: return "ordered."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case PLANNED: return "planned"; - case PROPOSED: return "proposed"; - case ORDERED: return "ordered"; - default: return "?"; - } - } - } - - public static class DeviceUseRequestModeEnumFactory implements EnumFactory { - public DeviceUseRequestMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("planned".equals(codeString)) - return DeviceUseRequestMode.PLANNED; - if ("proposed".equals(codeString)) - return DeviceUseRequestMode.PROPOSED; - if ("ordered".equals(codeString)) - return DeviceUseRequestMode.ORDERED; - throw new IllegalArgumentException("Unknown DeviceUseRequestMode code '"+codeString+"'"); - } - public String toCode(DeviceUseRequestMode code) throws IllegalArgumentException { - if (code == DeviceUseRequestMode.PLANNED) - return "planned"; - if (code == DeviceUseRequestMode.PROPOSED) - return "proposed"; - if (code == DeviceUseRequestMode.ORDERED) - return "ordered"; - return "?"; - } - } - - public enum DeviceUseRequestPriority implements FhirEnum { - /** - * The request has a normal priority. - */ - ROUTINE, - /** - * The request should be done urgently. - */ - URGENT, - /** - * The request is time-critical. - */ - STAT, - /** - * The request should be acted on as soon as possible. - */ - ASAP, - /** - * added to help the parsers - */ - NULL; - - public static final DeviceUseRequestPriorityEnumFactory ENUM_FACTORY = new DeviceUseRequestPriorityEnumFactory(); - - public static DeviceUseRequestPriority fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("routine".equals(codeString)) - return ROUTINE; - if ("urgent".equals(codeString)) - return URGENT; - if ("stat".equals(codeString)) - return STAT; - if ("asap".equals(codeString)) - return ASAP; - throw new IllegalArgumentException("Unknown DeviceUseRequestPriority code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case ROUTINE: return "routine"; - case URGENT: return "urgent"; - case STAT: return "stat"; - case ASAP: return "asap"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case ROUTINE: return ""; - case URGENT: return ""; - case STAT: return ""; - case ASAP: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case ROUTINE: return "The request has a normal priority."; - case URGENT: return "The request should be done urgently."; - case STAT: return "The request is time-critical."; - case ASAP: return "The request should be acted on as soon as possible."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case ROUTINE: return "routine"; - case URGENT: return "urgent"; - case STAT: return "stat"; - case ASAP: return "asap"; - default: return "?"; - } - } - } - - public static class DeviceUseRequestPriorityEnumFactory implements EnumFactory { - public DeviceUseRequestPriority fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("routine".equals(codeString)) - return DeviceUseRequestPriority.ROUTINE; - if ("urgent".equals(codeString)) - return DeviceUseRequestPriority.URGENT; - if ("stat".equals(codeString)) - return DeviceUseRequestPriority.STAT; - if ("asap".equals(codeString)) - return DeviceUseRequestPriority.ASAP; - throw new IllegalArgumentException("Unknown DeviceUseRequestPriority code '"+codeString+"'"); - } - public String toCode(DeviceUseRequestPriority code) throws IllegalArgumentException { - if (code == DeviceUseRequestPriority.ROUTINE) - return "routine"; - if (code == DeviceUseRequestPriority.URGENT) - return "urgent"; - if (code == DeviceUseRequestPriority.STAT) - return "stat"; - if (code == DeviceUseRequestPriority.ASAP) - return "asap"; - return "?"; - } - } - - /** - * Body site where the device is to be used. - */ - @Child(name="bodySite", type={CodeableConcept.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Target body site", formalDefinition="Body site where the device is to be used." ) - protected List bodySite; - - /** - * The status of the request. - */ - @Child(name="status", type={CodeType.class}, order=0, min=0, max=1) - @Description(shortDefinition="requested | received | accepted | in progress | review | completed | suspended | rejected | failed", formalDefinition="The status of the request." ) - protected Enumeration status; - - /** - * The mode of the request. - */ - @Child(name="mode", type={CodeType.class}, order=1, min=0, max=1) - @Description(shortDefinition="planned | proposed | ordered", formalDefinition="The mode of the request." ) - protected Enumeration mode; - - /** - * The details of the device to be used. - */ - @Child(name="device", type={Device.class}, order=2, min=1, max=1) - @Description(shortDefinition="Device requested", formalDefinition="The details of the device to be used." ) - protected Reference device; - - /** - * The actual object that is the target of the reference (The details of the device to be used.) - */ - protected Device deviceTarget; - - /** - * An encounter that provides additional context in which this request is made. - */ - @Child(name="encounter", type={Encounter.class}, order=3, min=0, max=1) - @Description(shortDefinition="Encounter motivating request", formalDefinition="An encounter that provides additional context in which this request is made." ) - protected Reference encounter; - - /** - * The actual object that is the target of the reference (An encounter that provides additional context in which this request is made.) - */ - protected Encounter encounterTarget; - - /** - * Identifiers assigned to this order by the orderer or by the receiver. - */ - @Child(name="identifier", type={Identifier.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Request identifier", formalDefinition="Identifiers assigned to this order by the orderer or by the receiver." ) - protected List identifier; - - /** - * Reason or justification for the use of this device. - */ - @Child(name="indication", type={CodeableConcept.class}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Reason for request", formalDefinition="Reason or justification for the use of this device." ) - protected List indication; - - /** - * Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement. - */ - @Child(name="notes", type={StringType.class}, order=6, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Notes or comments", formalDefinition="Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement." ) - protected List notes; - - /** - * The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%. - */ - @Child(name="prnReason", type={CodeableConcept.class}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="PRN", formalDefinition="The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%." ) - protected List prnReason; - - /** - * The time when the request was made. - */ - @Child(name="orderedOn", type={DateTimeType.class}, order=8, min=0, max=1) - @Description(shortDefinition="When ordered", formalDefinition="The time when the request was made." ) - protected DateTimeType orderedOn; - - /** - * The time at which the request was made/recorded. - */ - @Child(name="recordedOn", type={DateTimeType.class}, order=9, min=0, max=1) - @Description(shortDefinition="When recorded", formalDefinition="The time at which the request was made/recorded." ) - protected DateTimeType recordedOn; - - /** - * The patient who will use the device. - */ - @Child(name="subject", type={Patient.class}, order=10, min=1, max=1) - @Description(shortDefinition="Focus of request", formalDefinition="The patient who will use the device." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (The patient who will use the device.) - */ - protected Patient subjectTarget; - - /** - * The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". - */ - @Child(name="timing", type={Timing.class, Period.class, DateTimeType.class}, order=11, min=0, max=1) - @Description(shortDefinition="Schedule for use", formalDefinition="The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'." ) - protected Type timing; - - /** - * Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine. - */ - @Child(name="priority", type={CodeType.class}, order=12, min=0, max=1) - @Description(shortDefinition="routine | urgent | stat | asap", formalDefinition="Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine." ) - protected Enumeration priority; - - private static final long serialVersionUID = -680542754L; - - public DeviceUseRequest() { - super(); - } - - public DeviceUseRequest(Reference device, Reference subject) { - super(); - this.device = device; - this.subject = subject; - } - - /** - * @return {@link #bodySite} (Body site where the device is to be used.) - */ - public List getBodySite() { - if (this.bodySite == null) - this.bodySite = new ArrayList(); - return this.bodySite; - } - - public boolean hasBodySite() { - if (this.bodySite == null) - return false; - for (CodeableConcept item : this.bodySite) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #bodySite} (Body site where the device is to be used.) - */ - // syntactic sugar - public CodeableConcept addBodySite() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.bodySite == null) - this.bodySite = new ArrayList(); - this.bodySite.add(t); - return t; - } - - /** - * @return {@link #status} (The status of the request.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseRequest.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of the request.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public DeviceUseRequest setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of the request. - */ - public DeviceUseRequestStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of the request. - */ - public DeviceUseRequest setStatus(DeviceUseRequestStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(DeviceUseRequestStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #mode} (The mode of the request.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public Enumeration getModeElement() { - if (this.mode == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseRequest.mode"); - else if (Configuration.doAutoCreate()) - this.mode = new Enumeration(); - return this.mode; - } - - public boolean hasModeElement() { - return this.mode != null && !this.mode.isEmpty(); - } - - public boolean hasMode() { - return this.mode != null && !this.mode.isEmpty(); - } - - /** - * @param value {@link #mode} (The mode of the request.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public DeviceUseRequest setModeElement(Enumeration value) { - this.mode = value; - return this; - } - - /** - * @return The mode of the request. - */ - public DeviceUseRequestMode getMode() { - return this.mode == null ? null : this.mode.getValue(); - } - - /** - * @param value The mode of the request. - */ - public DeviceUseRequest setMode(DeviceUseRequestMode value) { - if (value == null) - this.mode = null; - else { - if (this.mode == null) - this.mode = new Enumeration(DeviceUseRequestMode.ENUM_FACTORY); - this.mode.setValue(value); - } - return this; - } - - /** - * @return {@link #device} (The details of the device to be used.) - */ - public Reference getDevice() { - if (this.device == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseRequest.device"); - else if (Configuration.doAutoCreate()) - this.device = new Reference(); - return this.device; - } - - public boolean hasDevice() { - return this.device != null && !this.device.isEmpty(); - } - - /** - * @param value {@link #device} (The details of the device to be used.) - */ - public DeviceUseRequest setDevice(Reference value) { - this.device = value; - return this; - } - - /** - * @return {@link #device} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The details of the device to be used.) - */ - public Device getDeviceTarget() { - if (this.deviceTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseRequest.device"); - else if (Configuration.doAutoCreate()) - this.deviceTarget = new Device(); - return this.deviceTarget; - } - - /** - * @param value {@link #device} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The details of the device to be used.) - */ - public DeviceUseRequest setDeviceTarget(Device value) { - this.deviceTarget = value; - return this; - } - - /** - * @return {@link #encounter} (An encounter that provides additional context in which this request is made.) - */ - public Reference getEncounter() { - if (this.encounter == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseRequest.encounter"); - else if (Configuration.doAutoCreate()) - this.encounter = new Reference(); - return this.encounter; - } - - public boolean hasEncounter() { - return this.encounter != null && !this.encounter.isEmpty(); - } - - /** - * @param value {@link #encounter} (An encounter that provides additional context in which this request is made.) - */ - public DeviceUseRequest setEncounter(Reference value) { - this.encounter = value; - return this; - } - - /** - * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (An encounter that provides additional context in which this request is made.) - */ - public Encounter getEncounterTarget() { - if (this.encounterTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseRequest.encounter"); - else if (Configuration.doAutoCreate()) - this.encounterTarget = new Encounter(); - return this.encounterTarget; - } - - /** - * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (An encounter that provides additional context in which this request is made.) - */ - public DeviceUseRequest setEncounterTarget(Encounter value) { - this.encounterTarget = value; - return this; - } - - /** - * @return {@link #identifier} (Identifiers assigned to this order by the orderer or by the receiver.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Identifiers assigned to this order by the orderer or by the receiver.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #indication} (Reason or justification for the use of this device.) - */ - public List getIndication() { - if (this.indication == null) - this.indication = new ArrayList(); - return this.indication; - } - - public boolean hasIndication() { - if (this.indication == null) - return false; - for (CodeableConcept item : this.indication) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #indication} (Reason or justification for the use of this device.) - */ - // syntactic sugar - public CodeableConcept addIndication() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.indication == null) - this.indication = new ArrayList(); - this.indication.add(t); - return t; - } - - /** - * @return {@link #notes} (Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) - */ - public List getNotes() { - if (this.notes == null) - this.notes = new ArrayList(); - return this.notes; - } - - public boolean hasNotes() { - if (this.notes == null) - return false; - for (StringType item : this.notes) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #notes} (Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) - */ - // syntactic sugar - public StringType addNotesElement() {//2 - StringType t = new StringType(); - if (this.notes == null) - this.notes = new ArrayList(); - this.notes.add(t); - return t; - } - - /** - * @param value {@link #notes} (Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) - */ - public DeviceUseRequest addNotes(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.notes == null) - this.notes = new ArrayList(); - this.notes.add(t); - return this; - } - - /** - * @param value {@link #notes} (Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) - */ - public boolean hasNotes(String value) { - if (this.notes == null) - return false; - for (StringType v : this.notes) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #prnReason} (The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%.) - */ - public List getPrnReason() { - if (this.prnReason == null) - this.prnReason = new ArrayList(); - return this.prnReason; - } - - public boolean hasPrnReason() { - if (this.prnReason == null) - return false; - for (CodeableConcept item : this.prnReason) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #prnReason} (The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%.) - */ - // syntactic sugar - public CodeableConcept addPrnReason() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.prnReason == null) - this.prnReason = new ArrayList(); - this.prnReason.add(t); - return t; - } - - /** - * @return {@link #orderedOn} (The time when the request was made.). This is the underlying object with id, value and extensions. The accessor "getOrderedOn" gives direct access to the value - */ - public DateTimeType getOrderedOnElement() { - if (this.orderedOn == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseRequest.orderedOn"); - else if (Configuration.doAutoCreate()) - this.orderedOn = new DateTimeType(); - return this.orderedOn; - } - - public boolean hasOrderedOnElement() { - return this.orderedOn != null && !this.orderedOn.isEmpty(); - } - - public boolean hasOrderedOn() { - return this.orderedOn != null && !this.orderedOn.isEmpty(); - } - - /** - * @param value {@link #orderedOn} (The time when the request was made.). This is the underlying object with id, value and extensions. The accessor "getOrderedOn" gives direct access to the value - */ - public DeviceUseRequest setOrderedOnElement(DateTimeType value) { - this.orderedOn = value; - return this; - } - - /** - * @return The time when the request was made. - */ - public Date getOrderedOn() { - return this.orderedOn == null ? null : this.orderedOn.getValue(); - } - - /** - * @param value The time when the request was made. - */ - public DeviceUseRequest setOrderedOn(Date value) { - if (value == null) - this.orderedOn = null; - else { - if (this.orderedOn == null) - this.orderedOn = new DateTimeType(); - this.orderedOn.setValue(value); - } - return this; - } - - /** - * @return {@link #recordedOn} (The time at which the request was made/recorded.). This is the underlying object with id, value and extensions. The accessor "getRecordedOn" gives direct access to the value - */ - public DateTimeType getRecordedOnElement() { - if (this.recordedOn == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseRequest.recordedOn"); - else if (Configuration.doAutoCreate()) - this.recordedOn = new DateTimeType(); - return this.recordedOn; - } - - public boolean hasRecordedOnElement() { - return this.recordedOn != null && !this.recordedOn.isEmpty(); - } - - public boolean hasRecordedOn() { - return this.recordedOn != null && !this.recordedOn.isEmpty(); - } - - /** - * @param value {@link #recordedOn} (The time at which the request was made/recorded.). This is the underlying object with id, value and extensions. The accessor "getRecordedOn" gives direct access to the value - */ - public DeviceUseRequest setRecordedOnElement(DateTimeType value) { - this.recordedOn = value; - return this; - } - - /** - * @return The time at which the request was made/recorded. - */ - public Date getRecordedOn() { - return this.recordedOn == null ? null : this.recordedOn.getValue(); - } - - /** - * @param value The time at which the request was made/recorded. - */ - public DeviceUseRequest setRecordedOn(Date value) { - if (value == null) - this.recordedOn = null; - else { - if (this.recordedOn == null) - this.recordedOn = new DateTimeType(); - this.recordedOn.setValue(value); - } - return this; - } - - /** - * @return {@link #subject} (The patient who will use the device.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseRequest.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (The patient who will use the device.) - */ - public DeviceUseRequest setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient who will use the device.) - */ - public Patient getSubjectTarget() { - if (this.subjectTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseRequest.subject"); - else if (Configuration.doAutoCreate()) - this.subjectTarget = new Patient(); - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient who will use the device.) - */ - public DeviceUseRequest setSubjectTarget(Patient value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #timing} (The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) - */ - public Type getTiming() { - return this.timing; - } - - /** - * @return {@link #timing} (The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) - */ - public Timing getTimingTiming() throws Exception { - if (!(this.timing instanceof Timing)) - throw new Exception("Type mismatch: the type Timing was expected, but "+this.timing.getClass().getName()+" was encountered"); - return (Timing) this.timing; - } - - /** - * @return {@link #timing} (The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) - */ - public Period getTimingPeriod() throws Exception { - if (!(this.timing instanceof Period)) - throw new Exception("Type mismatch: the type Period was expected, but "+this.timing.getClass().getName()+" was encountered"); - return (Period) this.timing; - } - - /** - * @return {@link #timing} (The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) - */ - public DateTimeType getTimingDateTimeType() throws Exception { - if (!(this.timing instanceof DateTimeType)) - throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.timing.getClass().getName()+" was encountered"); - return (DateTimeType) this.timing; - } - - public boolean hasTiming() { - return this.timing != null && !this.timing.isEmpty(); - } - - /** - * @param value {@link #timing} (The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) - */ - public DeviceUseRequest setTiming(Type value) { - this.timing = value; - return this; - } - - /** - * @return {@link #priority} (Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value - */ - public Enumeration getPriorityElement() { - if (this.priority == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseRequest.priority"); - else if (Configuration.doAutoCreate()) - this.priority = new Enumeration(); - return this.priority; - } - - public boolean hasPriorityElement() { - return this.priority != null && !this.priority.isEmpty(); - } - - public boolean hasPriority() { - return this.priority != null && !this.priority.isEmpty(); - } - - /** - * @param value {@link #priority} (Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value - */ - public DeviceUseRequest setPriorityElement(Enumeration value) { - this.priority = value; - return this; - } - - /** - * @return Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine. - */ - public DeviceUseRequestPriority getPriority() { - return this.priority == null ? null : this.priority.getValue(); - } - - /** - * @param value Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine. - */ - public DeviceUseRequest setPriority(DeviceUseRequestPriority value) { - if (value == null) - this.priority = null; - else { - if (this.priority == null) - this.priority = new Enumeration(DeviceUseRequestPriority.ENUM_FACTORY); - this.priority.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("bodySite", "CodeableConcept", "Body site where the device is to be used.", 0, java.lang.Integer.MAX_VALUE, bodySite)); - childrenList.add(new Property("status", "code", "The status of the request.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("mode", "code", "The mode of the request.", 0, java.lang.Integer.MAX_VALUE, mode)); - childrenList.add(new Property("device", "Reference(Device)", "The details of the device to be used.", 0, java.lang.Integer.MAX_VALUE, device)); - childrenList.add(new Property("encounter", "Reference(Encounter)", "An encounter that provides additional context in which this request is made.", 0, java.lang.Integer.MAX_VALUE, encounter)); - childrenList.add(new Property("identifier", "Identifier", "Identifiers assigned to this order by the orderer or by the receiver.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("indication", "CodeableConcept", "Reason or justification for the use of this device.", 0, java.lang.Integer.MAX_VALUE, indication)); - childrenList.add(new Property("notes", "string", "Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.", 0, java.lang.Integer.MAX_VALUE, notes)); - childrenList.add(new Property("prnReason", "CodeableConcept", "The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%.", 0, java.lang.Integer.MAX_VALUE, prnReason)); - childrenList.add(new Property("orderedOn", "dateTime", "The time when the request was made.", 0, java.lang.Integer.MAX_VALUE, orderedOn)); - childrenList.add(new Property("recordedOn", "dateTime", "The time at which the request was made/recorded.", 0, java.lang.Integer.MAX_VALUE, recordedOn)); - childrenList.add(new Property("subject", "Reference(Patient)", "The patient who will use the device.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("timing[x]", "Timing|Period|dateTime", "The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'.", 0, java.lang.Integer.MAX_VALUE, timing)); - childrenList.add(new Property("priority", "code", "Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine.", 0, java.lang.Integer.MAX_VALUE, priority)); - } - - public DeviceUseRequest copy() { - DeviceUseRequest dst = new DeviceUseRequest(); - copyValues(dst); - if (bodySite != null) { - dst.bodySite = new ArrayList(); - for (CodeableConcept i : bodySite) - dst.bodySite.add(i.copy()); - }; - dst.status = status == null ? null : status.copy(); - dst.mode = mode == null ? null : mode.copy(); - dst.device = device == null ? null : device.copy(); - dst.encounter = encounter == null ? null : encounter.copy(); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - if (indication != null) { - dst.indication = new ArrayList(); - for (CodeableConcept i : indication) - dst.indication.add(i.copy()); - }; - if (notes != null) { - dst.notes = new ArrayList(); - for (StringType i : notes) - dst.notes.add(i.copy()); - }; - if (prnReason != null) { - dst.prnReason = new ArrayList(); - for (CodeableConcept i : prnReason) - dst.prnReason.add(i.copy()); - }; - dst.orderedOn = orderedOn == null ? null : orderedOn.copy(); - dst.recordedOn = recordedOn == null ? null : recordedOn.copy(); - dst.subject = subject == null ? null : subject.copy(); - dst.timing = timing == null ? null : timing.copy(); - dst.priority = priority == null ? null : priority.copy(); - return dst; - } - - protected DeviceUseRequest typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (bodySite == null || bodySite.isEmpty()) && (status == null || status.isEmpty()) - && (mode == null || mode.isEmpty()) && (device == null || device.isEmpty()) && (encounter == null || encounter.isEmpty()) - && (identifier == null || identifier.isEmpty()) && (indication == null || indication.isEmpty()) - && (notes == null || notes.isEmpty()) && (prnReason == null || prnReason.isEmpty()) && (orderedOn == null || orderedOn.isEmpty()) - && (recordedOn == null || recordedOn.isEmpty()) && (subject == null || subject.isEmpty()) - && (timing == null || timing.isEmpty()) && (priority == null || priority.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.DeviceUseRequest; - } - - @SearchParamDefinition(name="patient", path="DeviceUseRequest.subject", description="Search by subject - a patient", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="subject", path="DeviceUseRequest.subject", description="Search by subject", type="reference" ) - public static final String SP_SUBJECT = "subject"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Represents a request for the use of a device. + */ +@ResourceDef(name="DeviceUseRequest", profile="http://hl7.org/fhir/Profile/DeviceUseRequest") +public class DeviceUseRequest extends DomainResource { + + public enum DeviceUseRequestStatus { + /** + * The request has been proposed. + */ + PROPOSED, + /** + * The request has been planned. + */ + PLANNED, + /** + * The request has been placed. + */ + REQUESTED, + /** + * The receiving system has received the request but not yet decided whether it will be performed. + */ + RECEIVED, + /** + * The receiving system has accepted the request but work has not yet commenced. + */ + ACCEPTED, + /** + * The work to fulfill the order is happening. + */ + INPROGRESS, + /** + * The work has been complete, the report(s) released, and no further work is planned. + */ + COMPLETED, + /** + * The request has been held by originating system/user request. + */ + SUSPENDED, + /** + * The receiving system has declined to fulfill the request. + */ + REJECTED, + /** + * The request was attempted, but due to some procedural error, it could not be completed. + */ + ABORTED, + /** + * added to help the parsers + */ + NULL; + public static DeviceUseRequestStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("proposed".equals(codeString)) + return PROPOSED; + if ("planned".equals(codeString)) + return PLANNED; + if ("requested".equals(codeString)) + return REQUESTED; + if ("received".equals(codeString)) + return RECEIVED; + if ("accepted".equals(codeString)) + return ACCEPTED; + if ("in-progress".equals(codeString)) + return INPROGRESS; + if ("completed".equals(codeString)) + return COMPLETED; + if ("suspended".equals(codeString)) + return SUSPENDED; + if ("rejected".equals(codeString)) + return REJECTED; + if ("aborted".equals(codeString)) + return ABORTED; + throw new Exception("Unknown DeviceUseRequestStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PROPOSED: return "proposed"; + case PLANNED: return "planned"; + case REQUESTED: return "requested"; + case RECEIVED: return "received"; + case ACCEPTED: return "accepted"; + case INPROGRESS: return "in-progress"; + case COMPLETED: return "completed"; + case SUSPENDED: return "suspended"; + case REJECTED: return "rejected"; + case ABORTED: return "aborted"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PROPOSED: return ""; + case PLANNED: return ""; + case REQUESTED: return ""; + case RECEIVED: return ""; + case ACCEPTED: return ""; + case INPROGRESS: return ""; + case COMPLETED: return ""; + case SUSPENDED: return ""; + case REJECTED: return ""; + case ABORTED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PROPOSED: return "The request has been proposed."; + case PLANNED: return "The request has been planned."; + case REQUESTED: return "The request has been placed."; + case RECEIVED: return "The receiving system has received the request but not yet decided whether it will be performed."; + case ACCEPTED: return "The receiving system has accepted the request but work has not yet commenced."; + case INPROGRESS: return "The work to fulfill the order is happening."; + case COMPLETED: return "The work has been complete, the report(s) released, and no further work is planned."; + case SUSPENDED: return "The request has been held by originating system/user request."; + case REJECTED: return "The receiving system has declined to fulfill the request."; + case ABORTED: return "The request was attempted, but due to some procedural error, it could not be completed."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PROPOSED: return "proposed"; + case PLANNED: return "planned"; + case REQUESTED: return "requested"; + case RECEIVED: return "received"; + case ACCEPTED: return "accepted"; + case INPROGRESS: return "in-progress"; + case COMPLETED: return "completed"; + case SUSPENDED: return "suspended"; + case REJECTED: return "rejected"; + case ABORTED: return "aborted"; + default: return "?"; + } + } + } + + public static class DeviceUseRequestStatusEnumFactory implements EnumFactory { + public DeviceUseRequestStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("proposed".equals(codeString)) + return DeviceUseRequestStatus.PROPOSED; + if ("planned".equals(codeString)) + return DeviceUseRequestStatus.PLANNED; + if ("requested".equals(codeString)) + return DeviceUseRequestStatus.REQUESTED; + if ("received".equals(codeString)) + return DeviceUseRequestStatus.RECEIVED; + if ("accepted".equals(codeString)) + return DeviceUseRequestStatus.ACCEPTED; + if ("in-progress".equals(codeString)) + return DeviceUseRequestStatus.INPROGRESS; + if ("completed".equals(codeString)) + return DeviceUseRequestStatus.COMPLETED; + if ("suspended".equals(codeString)) + return DeviceUseRequestStatus.SUSPENDED; + if ("rejected".equals(codeString)) + return DeviceUseRequestStatus.REJECTED; + if ("aborted".equals(codeString)) + return DeviceUseRequestStatus.ABORTED; + throw new IllegalArgumentException("Unknown DeviceUseRequestStatus code '"+codeString+"'"); + } + public String toCode(DeviceUseRequestStatus code) { + if (code == DeviceUseRequestStatus.PROPOSED) + return "proposed"; + if (code == DeviceUseRequestStatus.PLANNED) + return "planned"; + if (code == DeviceUseRequestStatus.REQUESTED) + return "requested"; + if (code == DeviceUseRequestStatus.RECEIVED) + return "received"; + if (code == DeviceUseRequestStatus.ACCEPTED) + return "accepted"; + if (code == DeviceUseRequestStatus.INPROGRESS) + return "in-progress"; + if (code == DeviceUseRequestStatus.COMPLETED) + return "completed"; + if (code == DeviceUseRequestStatus.SUSPENDED) + return "suspended"; + if (code == DeviceUseRequestStatus.REJECTED) + return "rejected"; + if (code == DeviceUseRequestStatus.ABORTED) + return "aborted"; + return "?"; + } + } + + public enum DeviceUseRequestPriority { + /** + * The request has a normal priority. + */ + ROUTINE, + /** + * The request should be done urgently. + */ + URGENT, + /** + * The request is time-critical. + */ + STAT, + /** + * The request should be acted on as soon as possible. + */ + ASAP, + /** + * added to help the parsers + */ + NULL; + public static DeviceUseRequestPriority fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("routine".equals(codeString)) + return ROUTINE; + if ("urgent".equals(codeString)) + return URGENT; + if ("stat".equals(codeString)) + return STAT; + if ("asap".equals(codeString)) + return ASAP; + throw new Exception("Unknown DeviceUseRequestPriority code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case ROUTINE: return "routine"; + case URGENT: return "urgent"; + case STAT: return "stat"; + case ASAP: return "asap"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case ROUTINE: return ""; + case URGENT: return ""; + case STAT: return ""; + case ASAP: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case ROUTINE: return "The request has a normal priority."; + case URGENT: return "The request should be done urgently."; + case STAT: return "The request is time-critical."; + case ASAP: return "The request should be acted on as soon as possible."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case ROUTINE: return "routine"; + case URGENT: return "urgent"; + case STAT: return "stat"; + case ASAP: return "asap"; + default: return "?"; + } + } + } + + public static class DeviceUseRequestPriorityEnumFactory implements EnumFactory { + public DeviceUseRequestPriority fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("routine".equals(codeString)) + return DeviceUseRequestPriority.ROUTINE; + if ("urgent".equals(codeString)) + return DeviceUseRequestPriority.URGENT; + if ("stat".equals(codeString)) + return DeviceUseRequestPriority.STAT; + if ("asap".equals(codeString)) + return DeviceUseRequestPriority.ASAP; + throw new IllegalArgumentException("Unknown DeviceUseRequestPriority code '"+codeString+"'"); + } + public String toCode(DeviceUseRequestPriority code) { + if (code == DeviceUseRequestPriority.ROUTINE) + return "routine"; + if (code == DeviceUseRequestPriority.URGENT) + return "urgent"; + if (code == DeviceUseRequestPriority.STAT) + return "stat"; + if (code == DeviceUseRequestPriority.ASAP) + return "asap"; + return "?"; + } + } + + /** + * Body site where the device is to be used. + */ + @Child(name="bodySite", type={CodeableConcept.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Target body site", formalDefinition="Body site where the device is to be used." ) + protected List bodySite; + + /** + * The status of the request. + */ + @Child(name="status", type={CodeType.class}, order=0, min=0, max=1) + @Description(shortDefinition="proposed | planned | requested | received | accepted | in-progress | completed | suspended | rejected | aborted", formalDefinition="The status of the request." ) + protected Enumeration status; + + /** + * The details of the device to be used. + */ + @Child(name="device", type={Device.class}, order=1, min=1, max=1) + @Description(shortDefinition="Device requested", formalDefinition="The details of the device to be used." ) + protected Reference device; + + /** + * The actual object that is the target of the reference (The details of the device to be used.) + */ + protected Device deviceTarget; + + /** + * An encounter that provides additional context in which this request is made. + */ + @Child(name="encounter", type={Encounter.class}, order=2, min=0, max=1) + @Description(shortDefinition="Encounter motivating request", formalDefinition="An encounter that provides additional context in which this request is made." ) + protected Reference encounter; + + /** + * The actual object that is the target of the reference (An encounter that provides additional context in which this request is made.) + */ + protected Encounter encounterTarget; + + /** + * Identifiers assigned to this order by the orderer or by the receiver. + */ + @Child(name="identifier", type={Identifier.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Request identifier", formalDefinition="Identifiers assigned to this order by the orderer or by the receiver." ) + protected List identifier; + + /** + * Reason or justification for the use of this device. + */ + @Child(name="indication", type={CodeableConcept.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Reason for request", formalDefinition="Reason or justification for the use of this device." ) + protected List indication; + + /** + * Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement. + */ + @Child(name="notes", type={StringType.class}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Notes or comments", formalDefinition="Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement." ) + protected List notes; + + /** + * The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%. + */ + @Child(name="prnReason", type={CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="PRN", formalDefinition="The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%." ) + protected List prnReason; + + /** + * The time when the request was made. + */ + @Child(name="orderedOn", type={DateTimeType.class}, order=7, min=0, max=1) + @Description(shortDefinition="When ordered", formalDefinition="The time when the request was made." ) + protected DateTimeType orderedOn; + + /** + * The time at which the request was made/recorded. + */ + @Child(name="recordedOn", type={DateTimeType.class}, order=8, min=0, max=1) + @Description(shortDefinition="When recorded", formalDefinition="The time at which the request was made/recorded." ) + protected DateTimeType recordedOn; + + /** + * The patient who will use the device. + */ + @Child(name="subject", type={Patient.class}, order=9, min=1, max=1) + @Description(shortDefinition="Focus of request", formalDefinition="The patient who will use the device." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (The patient who will use the device.) + */ + protected Patient subjectTarget; + + /** + * The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". + */ + @Child(name="timing", type={Timing.class, Period.class, DateTimeType.class}, order=10, min=0, max=1) + @Description(shortDefinition="Schedule for use", formalDefinition="The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'." ) + protected Type timing; + + /** + * Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine. + */ + @Child(name="priority", type={CodeType.class}, order=11, min=0, max=1) + @Description(shortDefinition="routine | urgent | stat | asap", formalDefinition="Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine." ) + protected Enumeration priority; + + private static final long serialVersionUID = -1244116449L; + + public DeviceUseRequest() { + super(); + } + + public DeviceUseRequest(Reference device, Reference subject) { + super(); + this.device = device; + this.subject = subject; + } + + /** + * @return {@link #bodySite} (Body site where the device is to be used.) + */ + public List getBodySite() { + if (this.bodySite == null) + this.bodySite = new ArrayList(); + return this.bodySite; + } + + public boolean hasBodySite() { + if (this.bodySite == null) + return false; + for (CodeableConcept item : this.bodySite) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #bodySite} (Body site where the device is to be used.) + */ + // syntactic sugar + public CodeableConcept addBodySite() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.bodySite == null) + this.bodySite = new ArrayList(); + this.bodySite.add(t); + return t; + } + + /** + * @return {@link #status} (The status of the request.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseRequest.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new DeviceUseRequestStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of the request.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public DeviceUseRequest setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of the request. + */ + public DeviceUseRequestStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of the request. + */ + public DeviceUseRequest setStatus(DeviceUseRequestStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new DeviceUseRequestStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #device} (The details of the device to be used.) + */ + public Reference getDevice() { + if (this.device == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseRequest.device"); + else if (Configuration.doAutoCreate()) + this.device = new Reference(); // cc + return this.device; + } + + public boolean hasDevice() { + return this.device != null && !this.device.isEmpty(); + } + + /** + * @param value {@link #device} (The details of the device to be used.) + */ + public DeviceUseRequest setDevice(Reference value) { + this.device = value; + return this; + } + + /** + * @return {@link #device} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The details of the device to be used.) + */ + public Device getDeviceTarget() { + if (this.deviceTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseRequest.device"); + else if (Configuration.doAutoCreate()) + this.deviceTarget = new Device(); // aa + return this.deviceTarget; + } + + /** + * @param value {@link #device} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The details of the device to be used.) + */ + public DeviceUseRequest setDeviceTarget(Device value) { + this.deviceTarget = value; + return this; + } + + /** + * @return {@link #encounter} (An encounter that provides additional context in which this request is made.) + */ + public Reference getEncounter() { + if (this.encounter == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseRequest.encounter"); + else if (Configuration.doAutoCreate()) + this.encounter = new Reference(); // cc + return this.encounter; + } + + public boolean hasEncounter() { + return this.encounter != null && !this.encounter.isEmpty(); + } + + /** + * @param value {@link #encounter} (An encounter that provides additional context in which this request is made.) + */ + public DeviceUseRequest setEncounter(Reference value) { + this.encounter = value; + return this; + } + + /** + * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (An encounter that provides additional context in which this request is made.) + */ + public Encounter getEncounterTarget() { + if (this.encounterTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseRequest.encounter"); + else if (Configuration.doAutoCreate()) + this.encounterTarget = new Encounter(); // aa + return this.encounterTarget; + } + + /** + * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (An encounter that provides additional context in which this request is made.) + */ + public DeviceUseRequest setEncounterTarget(Encounter value) { + this.encounterTarget = value; + return this; + } + + /** + * @return {@link #identifier} (Identifiers assigned to this order by the orderer or by the receiver.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Identifiers assigned to this order by the orderer or by the receiver.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #indication} (Reason or justification for the use of this device.) + */ + public List getIndication() { + if (this.indication == null) + this.indication = new ArrayList(); + return this.indication; + } + + public boolean hasIndication() { + if (this.indication == null) + return false; + for (CodeableConcept item : this.indication) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #indication} (Reason or justification for the use of this device.) + */ + // syntactic sugar + public CodeableConcept addIndication() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.indication == null) + this.indication = new ArrayList(); + this.indication.add(t); + return t; + } + + /** + * @return {@link #notes} (Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) + */ + public List getNotes() { + if (this.notes == null) + this.notes = new ArrayList(); + return this.notes; + } + + public boolean hasNotes() { + if (this.notes == null) + return false; + for (StringType item : this.notes) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #notes} (Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) + */ + // syntactic sugar + public StringType addNotesElement() {//2 + StringType t = new StringType(); + if (this.notes == null) + this.notes = new ArrayList(); + this.notes.add(t); + return t; + } + + /** + * @param value {@link #notes} (Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) + */ + public DeviceUseRequest addNotes(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.notes == null) + this.notes = new ArrayList(); + this.notes.add(t); + return this; + } + + /** + * @param value {@link #notes} (Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) + */ + public boolean hasNotes(String value) { + if (this.notes == null) + return false; + for (StringType v : this.notes) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #prnReason} (The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%.) + */ + public List getPrnReason() { + if (this.prnReason == null) + this.prnReason = new ArrayList(); + return this.prnReason; + } + + public boolean hasPrnReason() { + if (this.prnReason == null) + return false; + for (CodeableConcept item : this.prnReason) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #prnReason} (The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%.) + */ + // syntactic sugar + public CodeableConcept addPrnReason() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.prnReason == null) + this.prnReason = new ArrayList(); + this.prnReason.add(t); + return t; + } + + /** + * @return {@link #orderedOn} (The time when the request was made.). This is the underlying object with id, value and extensions. The accessor "getOrderedOn" gives direct access to the value + */ + public DateTimeType getOrderedOnElement() { + if (this.orderedOn == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseRequest.orderedOn"); + else if (Configuration.doAutoCreate()) + this.orderedOn = new DateTimeType(); // bb + return this.orderedOn; + } + + public boolean hasOrderedOnElement() { + return this.orderedOn != null && !this.orderedOn.isEmpty(); + } + + public boolean hasOrderedOn() { + return this.orderedOn != null && !this.orderedOn.isEmpty(); + } + + /** + * @param value {@link #orderedOn} (The time when the request was made.). This is the underlying object with id, value and extensions. The accessor "getOrderedOn" gives direct access to the value + */ + public DeviceUseRequest setOrderedOnElement(DateTimeType value) { + this.orderedOn = value; + return this; + } + + /** + * @return The time when the request was made. + */ + public Date getOrderedOn() { + return this.orderedOn == null ? null : this.orderedOn.getValue(); + } + + /** + * @param value The time when the request was made. + */ + public DeviceUseRequest setOrderedOn(Date value) { + if (value == null) + this.orderedOn = null; + else { + if (this.orderedOn == null) + this.orderedOn = new DateTimeType(); + this.orderedOn.setValue(value); + } + return this; + } + + /** + * @return {@link #recordedOn} (The time at which the request was made/recorded.). This is the underlying object with id, value and extensions. The accessor "getRecordedOn" gives direct access to the value + */ + public DateTimeType getRecordedOnElement() { + if (this.recordedOn == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseRequest.recordedOn"); + else if (Configuration.doAutoCreate()) + this.recordedOn = new DateTimeType(); // bb + return this.recordedOn; + } + + public boolean hasRecordedOnElement() { + return this.recordedOn != null && !this.recordedOn.isEmpty(); + } + + public boolean hasRecordedOn() { + return this.recordedOn != null && !this.recordedOn.isEmpty(); + } + + /** + * @param value {@link #recordedOn} (The time at which the request was made/recorded.). This is the underlying object with id, value and extensions. The accessor "getRecordedOn" gives direct access to the value + */ + public DeviceUseRequest setRecordedOnElement(DateTimeType value) { + this.recordedOn = value; + return this; + } + + /** + * @return The time at which the request was made/recorded. + */ + public Date getRecordedOn() { + return this.recordedOn == null ? null : this.recordedOn.getValue(); + } + + /** + * @param value The time at which the request was made/recorded. + */ + public DeviceUseRequest setRecordedOn(Date value) { + if (value == null) + this.recordedOn = null; + else { + if (this.recordedOn == null) + this.recordedOn = new DateTimeType(); + this.recordedOn.setValue(value); + } + return this; + } + + /** + * @return {@link #subject} (The patient who will use the device.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseRequest.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (The patient who will use the device.) + */ + public DeviceUseRequest setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient who will use the device.) + */ + public Patient getSubjectTarget() { + if (this.subjectTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseRequest.subject"); + else if (Configuration.doAutoCreate()) + this.subjectTarget = new Patient(); // aa + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient who will use the device.) + */ + public DeviceUseRequest setSubjectTarget(Patient value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #timing} (The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) + */ + public Type getTiming() { + return this.timing; + } + + /** + * @return {@link #timing} (The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) + */ + public Timing getTimingTiming() throws Exception { + if (!(this.timing instanceof Timing)) + throw new Exception("Type mismatch: the type Timing was expected, but "+this.timing.getClass().getName()+" was encountered"); + return (Timing) this.timing; + } + + /** + * @return {@link #timing} (The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) + */ + public Period getTimingPeriod() throws Exception { + if (!(this.timing instanceof Period)) + throw new Exception("Type mismatch: the type Period was expected, but "+this.timing.getClass().getName()+" was encountered"); + return (Period) this.timing; + } + + /** + * @return {@link #timing} (The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) + */ + public DateTimeType getTimingDateTimeType() throws Exception { + if (!(this.timing instanceof DateTimeType)) + throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.timing.getClass().getName()+" was encountered"); + return (DateTimeType) this.timing; + } + + public boolean hasTiming() { + return this.timing != null && !this.timing.isEmpty(); + } + + /** + * @param value {@link #timing} (The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) + */ + public DeviceUseRequest setTiming(Type value) { + this.timing = value; + return this; + } + + /** + * @return {@link #priority} (Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value + */ + public Enumeration getPriorityElement() { + if (this.priority == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseRequest.priority"); + else if (Configuration.doAutoCreate()) + this.priority = new Enumeration(new DeviceUseRequestPriorityEnumFactory()); // bb + return this.priority; + } + + public boolean hasPriorityElement() { + return this.priority != null && !this.priority.isEmpty(); + } + + public boolean hasPriority() { + return this.priority != null && !this.priority.isEmpty(); + } + + /** + * @param value {@link #priority} (Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value + */ + public DeviceUseRequest setPriorityElement(Enumeration value) { + this.priority = value; + return this; + } + + /** + * @return Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine. + */ + public DeviceUseRequestPriority getPriority() { + return this.priority == null ? null : this.priority.getValue(); + } + + /** + * @param value Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine. + */ + public DeviceUseRequest setPriority(DeviceUseRequestPriority value) { + if (value == null) + this.priority = null; + else { + if (this.priority == null) + this.priority = new Enumeration(new DeviceUseRequestPriorityEnumFactory()); + this.priority.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("bodySite", "CodeableConcept", "Body site where the device is to be used.", 0, java.lang.Integer.MAX_VALUE, bodySite)); + childrenList.add(new Property("status", "code", "The status of the request.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("device", "Reference(Device)", "The details of the device to be used.", 0, java.lang.Integer.MAX_VALUE, device)); + childrenList.add(new Property("encounter", "Reference(Encounter)", "An encounter that provides additional context in which this request is made.", 0, java.lang.Integer.MAX_VALUE, encounter)); + childrenList.add(new Property("identifier", "Identifier", "Identifiers assigned to this order by the orderer or by the receiver.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("indication", "CodeableConcept", "Reason or justification for the use of this device.", 0, java.lang.Integer.MAX_VALUE, indication)); + childrenList.add(new Property("notes", "string", "Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.", 0, java.lang.Integer.MAX_VALUE, notes)); + childrenList.add(new Property("prnReason", "CodeableConcept", "The proposed act must be performed if the indicated conditions occur, e.g.., shortness of breath, SpO2 less than x%.", 0, java.lang.Integer.MAX_VALUE, prnReason)); + childrenList.add(new Property("orderedOn", "dateTime", "The time when the request was made.", 0, java.lang.Integer.MAX_VALUE, orderedOn)); + childrenList.add(new Property("recordedOn", "dateTime", "The time at which the request was made/recorded.", 0, java.lang.Integer.MAX_VALUE, recordedOn)); + childrenList.add(new Property("subject", "Reference(Patient)", "The patient who will use the device.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("timing[x]", "Timing|Period|dateTime", "The timing schedule for the use of the device The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'.", 0, java.lang.Integer.MAX_VALUE, timing)); + childrenList.add(new Property("priority", "code", "Characterizes how quickly the use of device must be initiated. Includes concepts such as stat, urgent, routine.", 0, java.lang.Integer.MAX_VALUE, priority)); + } + + public DeviceUseRequest copy() { + DeviceUseRequest dst = new DeviceUseRequest(); + copyValues(dst); + if (bodySite != null) { + dst.bodySite = new ArrayList(); + for (CodeableConcept i : bodySite) + dst.bodySite.add(i.copy()); + }; + dst.status = status == null ? null : status.copy(); + dst.device = device == null ? null : device.copy(); + dst.encounter = encounter == null ? null : encounter.copy(); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + if (indication != null) { + dst.indication = new ArrayList(); + for (CodeableConcept i : indication) + dst.indication.add(i.copy()); + }; + if (notes != null) { + dst.notes = new ArrayList(); + for (StringType i : notes) + dst.notes.add(i.copy()); + }; + if (prnReason != null) { + dst.prnReason = new ArrayList(); + for (CodeableConcept i : prnReason) + dst.prnReason.add(i.copy()); + }; + dst.orderedOn = orderedOn == null ? null : orderedOn.copy(); + dst.recordedOn = recordedOn == null ? null : recordedOn.copy(); + dst.subject = subject == null ? null : subject.copy(); + dst.timing = timing == null ? null : timing.copy(); + dst.priority = priority == null ? null : priority.copy(); + return dst; + } + + protected DeviceUseRequest typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DeviceUseRequest)) + return false; + DeviceUseRequest o = (DeviceUseRequest) other; + return compareDeep(bodySite, o.bodySite, true) && compareDeep(status, o.status, true) && compareDeep(device, o.device, true) + && compareDeep(encounter, o.encounter, true) && compareDeep(identifier, o.identifier, true) && compareDeep(indication, o.indication, true) + && compareDeep(notes, o.notes, true) && compareDeep(prnReason, o.prnReason, true) && compareDeep(orderedOn, o.orderedOn, true) + && compareDeep(recordedOn, o.recordedOn, true) && compareDeep(subject, o.subject, true) && compareDeep(timing, o.timing, true) + && compareDeep(priority, o.priority, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DeviceUseRequest)) + return false; + DeviceUseRequest o = (DeviceUseRequest) other; + return compareValues(status, o.status, true) && compareValues(notes, o.notes, true) && compareValues(orderedOn, o.orderedOn, true) + && compareValues(recordedOn, o.recordedOn, true) && compareValues(priority, o.priority, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (bodySite == null || bodySite.isEmpty()) && (status == null || status.isEmpty()) + && (device == null || device.isEmpty()) && (encounter == null || encounter.isEmpty()) && (identifier == null || identifier.isEmpty()) + && (indication == null || indication.isEmpty()) && (notes == null || notes.isEmpty()) && (prnReason == null || prnReason.isEmpty()) + && (orderedOn == null || orderedOn.isEmpty()) && (recordedOn == null || recordedOn.isEmpty()) + && (subject == null || subject.isEmpty()) && (timing == null || timing.isEmpty()) && (priority == null || priority.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.DeviceUseRequest; + } + + @SearchParamDefinition(name="patient", path="DeviceUseRequest.subject", description="Search by subject - a patient", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="subject", path="DeviceUseRequest.subject", description="Search by subject", type="reference" ) + public static final String SP_SUBJECT = "subject"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseStatement.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseStatement.class new file mode 100644 index 0000000000000000000000000000000000000000..bf46799abdfffb4b240a7c7f380840b05bf5e585 GIT binary patch literal 13971 zcmbVTX<%E`l|DzZBUzT0D7!-(VLOR;g#;6b17rmZ*@&|=fdDVkbF5%XMv}9zQ=pVJ ztOc{v77}QNVHn~BGE)L{pabo+GcD87PN!v{Ed{!8ZrY(-6A8yO*`GZ$xXMr=}tEX-E@zehTL?Y zo9=gW$W0Hs=@B=ZZu+L19(8k%n|8Z-vzvR}^rVZ!9&ij+)MqY=Vs0SOc?z&iS~VC+g!|34;dmHJ3nGzd!bpUpkvLPJC^jR#HL$2R+!q42 zl8Dg{wn`E^2Jq2V6h509rqXCEWX7DZ+hHbWe>mcV`;)vH+nG9wVzYCz*o+5b;Q^5X zJXOVeqp`$dvnL!0%M=UB>Yiw<-{`Z?HY|kJ{c)(>zpdAdnf^qt=?|G(!$C|KasOc4 z47I~JSd6T}J5xhZj#iqna5U5@GB9+x8rVe9{sA@bk8U+%AQTSv79ccA(`K4cl*}r# z2h75t5Vbf%iGv6%#a`RMqi(Z86WI{ zkYP;s?eK>oc_byEkpPRE1|ge&AQs&U<%VR3;Scs1@p!u*P6BQ88v+;X8w{CBOXhZ? zf1uBlZP9+wd#fm15>0F{DB;yAWDQ{no8s|kFbo5Q{M*6_?dU1~#X>PNC@~*e5n*aB z>KcoIWi`S_X;hR{3Uj7nN)(X_r4$7fw*5xP3?%7*rYkpi<1Zm}<|6ZiAmD%!rKx zdy=Y-Bgq(jYt2|3CRx+9n2FB>hsgZUP9(9`=o>Ukp+%b7-c}7mbgw*r<$~2+OO~%@ z^63EYGa{P<+A}-dv|ox%vEpJ+z}==13-+!wVn%;D!y@sxECr%M;H{UbM&~4?)9z#( zx2Nn=9!lqNrYRb!e-m=FwxGWaewM;m7E2~VEl&5Eg=a2V1aU^^05Xl5C&l0tl$OS( zwcti-5h}&faKv0b*uTk)t(H2;bawH4mCn6IRg>N(#LAIUrPSyG?`v$z%BRp%1+)>o zaG5b+v9Ta$(~%eY@?ImJCJVVYxcE|VV}wHK=>P~7Gjev#Mz^U2T9+z{(?>vIl|_Jo zp)^=|+)SiLYm4jM!cm;pT-SnT%b1zLIM71A2*L+wDeva zUJ&4ly;L87vEa9l1;1_VhB(W0!9P+-Y*k!3Yd0uan5sZTy)Nlfy$Xum2x8c9;d}*T zNeoPj8*}sXQP^!CaO(&RXVhn4f$({-i1yRd*akmMk5k0XEgn@F zw2ne_@rg856uby+VO&U`YcwKRoCSi|4AW5mZJwX#Q0*h9!BbiNuBmqatY*zn+(!ON7oL$k? zpe0Y^(G`JdTne+@Np${B(vtk0d|zE$EsEcx(22JXXLWTb#?g#vjNNh6F9+J4x^nw##E=FmAW6>T( zu)Q~t7?>N7+nRRixzvpfj4Z2xTu?6^q!+xjlWz6Wqw?5J(C?V^_0WP?%-A8$<>Je| zd<9>L{?5x+(W_qmGGEQqas-W?mnR9_HGHj?Zls%B{1q=>N3X)3ik>7^0B3Ttqb}}9J#fe)7GA}(&k1^F3BX1QNFFiru8bR^N9Ibs^ z`&=^lBVN;I5OrzOSu&hoBUI;PbNc}90L)OUA2%R= zFW<_ydHHs}!^L-c`7Zt%YN*~92}W^2ic6M|m+zMOg4ngQ=E2T1rw~VWW8{HEcJ^{P zdr?@6>eQ+X2+ynonncDaH4L%N1KwkS40*dSuaw#It#B3C)H$lLs9!SH##SEb%e{He4G@$ zJ6IWmvn0Y>^%WihEFHjF5;&gjBcM674HlvK_AW`{rL%ZHCQXSwtf0G5#=w9Xf%@9) zOee+6IZauK1c1WEBDoEf7S1xDGK-qT23t9__PGGETzv_WX-JD2a3-Sqo$0JR?BsCM znLE?fW%H#}JGt@bu@&Fm(A?qMuq@~sE$EvB`kEB<%^A?Q02<9`F7!?d`Zj^SS)gwg+L_R|0~)OtxGs^# zDkaHX*}U9oVf&h3yF0~8rX=?O3mUEzmK=Qy+4XU60W9|c3p%zGmItzVx!=O_pz!ig z0W1##3!1lFy*y$;e_f!zk%G?D%Qpdy?mid#Q49Jpf!-z1d9=D4&}hMwR?%NsSWbXM zmR~#}Se!xH6QrAhU=q0gp#UdOQVsnhJp~;9qVWpiKtnUL=_}qSa zHcrpcfjIpOT@j~$#r|*G_HWGI|7dFe^Lqa*;KCUP&lf@QSbXBES}JYcM=T_nUc%D@ z1_-E1Ad+nV4xX}oHs7LK&9*V(Wt#tA~R26$)Px?RCKN<7XrwK0D1*00QFh1_+4Q6cY4)g zYa2d=t>ZP;Qs*9dd6w`c&eE1=$<6TFNq8v}Sv<>HhpGHtDlOTw>+svoJt>m4AV!Eb z7d)d3Q8S%xr#8e-0H3oEKf*!sr#Hjz=~j#Dtq3pelM09`O)OqlXneH}N5=anXN($Peg;7O9}90x)eLQTYlr z?5CwTm5k?;BaG-gQYb}Sefw->M2mnK+4qX4`Mg6@VukJAJk6Q;nC8)=Us zT0)Kq)gbVnDFx5PC~3CJmua-%8>aF1lB;AFmDqGRN^N^ep(!QDxcLJ2U-Tn9#r*Zq zkm$%IzEjyOEZH4yA2hKaGe4%+EdaZuj!a1>WJo#@l1>tTe1;s^l0FYf4?@xxAnA*c z^d(68oeW9;JFlb;EvaLeY6?mE-AqY;LO;zXsUt_yA3##E<{R|0Jd#c>Ch0Mdbjn_u z3`r+vOZpQ?`cp{y1|g!g{htg;e~xh;TTIU3@GWroHn#pEZ|v4)#BMEksZH~u zWA{Dq@;+ks_lmwPcK;Vxf0n|9)e+J195W62Dc0WSwevH`t z2(kMY#X?T({)*nTbYY9#sZj5+61#asEEKz+BX$o{6(XdDaVf$MMK2k<{|6#(<<(+c zh8F8Uv@T1FT!tj(As?4#Yf&=b+j+GJtXhk81+-W^19BBeRwGxArs>GHZ9Iko_?*RK z^K0?fMKfR?5esOMk3piI0xi};i&LRRe})z%1O6tj7V9&#SPw1MXKQf=L~4WB7=9 zOl<`U3->5AsS^6Z(c;;XiRVM)!#wG~DLei1MfmAY3|l`&^3(vG_>>-CylCPTNWP0I znu5)-qFar^l9D>!kKC4<1!3wbr4Q);!I1U4Sfs5 z-3deA3PaxpL*EWV-=Qcb4gL4L26AdcI}3LZe0QdS4(0D4oH+)15C(b(l72>?TY9y- z^sHi%&W1}Lzn5k~(plM(KBf)JyCLc0kn{;i`mGE}@vBjbU`97LD~H3U!QnsSSDB1@ zs9k6ZKE;JfLAgUH>*h~;%yZc4Wav|6!4PtUZ0(e-FVG41QtJVlv;F{`2OPwPynq~}6VjrohJ;_hPl;bdZg@$FgN9@_OXDqc=79DnG-P>c zkIkaJU}V~3vuVEy+OL83_wv(rAur{n-I7In;mEXYCkrk2k3jp!p#6G&+U~rb+o3(T zW0)2dN>Ohpe908WW$07#q?V2xzxWmW;!T7wuH3cId=h##ITn1<+_H}rw;Z4)>wTyB zPWPSR^mW0QCHv@1>(r!{&hjnwEz?Vt`)Ij+X@zg4?`*x~$XZ(E>-MeIOSM@D*MQbq zy;PUAw9fY>-+H}NpS85XcaHB|z0{ONYoqTx-}!pUnYDC*&+u*1OC71D^Z~k^$`Ka7 zhKhcJTKZe+Qh*41}$|$C_rnf(5eNkaEca?)@8t}-nam~;*XIYx201C6W$|3%{P@CrvcoA`$25=VuK#QVwj88xAI$L++YRDTxU4&$T`h-zu* z_2+2(??;|#-yy2iV25aO)=PdwV+tV3KRp)lJ}&8?IG85uz%cb^)d9z7_%gn4vU15= zR*U+mq=pE(ZRehr7bvJ-4pML#v|rMSzmokF#RVjWl^9lHI50#57&Qz4aZIGq zj!87eQ9~0Qla;N!RN`?TqMb0teCR^HQL_ZT*b;c22z*g~fssGJ!l$GemK`ArA-;PV@@s0=y%%WeUerH6@|x;upU+oaUG1DN`mW*0mYl~} za+W+zTeDs9`052ntFl85X2rag+SFFrGV)gZ%SA2lIdICA?*wqw#(vbl%j0}3*TuR1 F{{dXxD`@}# literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DeviceUseStatement.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseStatement.java similarity index 90% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DeviceUseStatement.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseStatement.java index f27963154d9..d907cccc79a 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DeviceUseStatement.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DeviceUseStatement.java @@ -1,571 +1,573 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A record of a device being used by a patient where the record is the result of a report from the patient or another clinician. - */ -@ResourceDef(name="DeviceUseStatement", profile="http://hl7.org/fhir/Profile/DeviceUseStatement") -public class DeviceUseStatement extends DomainResource { - - /** - * Body site where the device was used. - */ - @Child(name="bodySite", type={CodeableConcept.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="", formalDefinition="Body site where the device was used." ) - protected List bodySite; - - /** - * The time period over which the device was used. - */ - @Child(name="whenUsed", type={Period.class}, order=0, min=0, max=1) - @Description(shortDefinition="", formalDefinition="The time period over which the device was used." ) - protected Period whenUsed; - - /** - * The details of the device used. - */ - @Child(name="device", type={Device.class}, order=1, min=1, max=1) - @Description(shortDefinition="", formalDefinition="The details of the device used." ) - protected Reference device; - - /** - * The actual object that is the target of the reference (The details of the device used.) - */ - protected Device deviceTarget; - - /** - * An external identifier for this statement such as an IRI. - */ - @Child(name="identifier", type={Identifier.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="", formalDefinition="An external identifier for this statement such as an IRI." ) - protected List identifier; - - /** - * Reason or justification for the use of the device. - */ - @Child(name="indication", type={CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="", formalDefinition="Reason or justification for the use of the device." ) - protected List indication; - - /** - * Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement. - */ - @Child(name="notes", type={StringType.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="", formalDefinition="Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement." ) - protected List notes; - - /** - * The time at which the statement was made/recorded. - */ - @Child(name="recordedOn", type={DateTimeType.class}, order=5, min=0, max=1) - @Description(shortDefinition="", formalDefinition="The time at which the statement was made/recorded." ) - protected DateTimeType recordedOn; - - /** - * The patient who used the device. - */ - @Child(name="subject", type={Patient.class}, order=6, min=1, max=1) - @Description(shortDefinition="", formalDefinition="The patient who used the device." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (The patient who used the device.) - */ - protected Patient subjectTarget; - - /** - * How often the device was used. - */ - @Child(name="timing", type={Timing.class, Period.class, DateTimeType.class}, order=7, min=0, max=1) - @Description(shortDefinition="", formalDefinition="How often the device was used." ) - protected Type timing; - - private static final long serialVersionUID = 523119888L; - - public DeviceUseStatement() { - super(); - } - - public DeviceUseStatement(Reference device, Reference subject) { - super(); - this.device = device; - this.subject = subject; - } - - /** - * @return {@link #bodySite} (Body site where the device was used.) - */ - public List getBodySite() { - if (this.bodySite == null) - this.bodySite = new ArrayList(); - return this.bodySite; - } - - public boolean hasBodySite() { - if (this.bodySite == null) - return false; - for (CodeableConcept item : this.bodySite) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #bodySite} (Body site where the device was used.) - */ - // syntactic sugar - public CodeableConcept addBodySite() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.bodySite == null) - this.bodySite = new ArrayList(); - this.bodySite.add(t); - return t; - } - - /** - * @return {@link #whenUsed} (The time period over which the device was used.) - */ - public Period getWhenUsed() { - if (this.whenUsed == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseStatement.whenUsed"); - else if (Configuration.doAutoCreate()) - this.whenUsed = new Period(); - return this.whenUsed; - } - - public boolean hasWhenUsed() { - return this.whenUsed != null && !this.whenUsed.isEmpty(); - } - - /** - * @param value {@link #whenUsed} (The time period over which the device was used.) - */ - public DeviceUseStatement setWhenUsed(Period value) { - this.whenUsed = value; - return this; - } - - /** - * @return {@link #device} (The details of the device used.) - */ - public Reference getDevice() { - if (this.device == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseStatement.device"); - else if (Configuration.doAutoCreate()) - this.device = new Reference(); - return this.device; - } - - public boolean hasDevice() { - return this.device != null && !this.device.isEmpty(); - } - - /** - * @param value {@link #device} (The details of the device used.) - */ - public DeviceUseStatement setDevice(Reference value) { - this.device = value; - return this; - } - - /** - * @return {@link #device} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The details of the device used.) - */ - public Device getDeviceTarget() { - if (this.deviceTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseStatement.device"); - else if (Configuration.doAutoCreate()) - this.deviceTarget = new Device(); - return this.deviceTarget; - } - - /** - * @param value {@link #device} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The details of the device used.) - */ - public DeviceUseStatement setDeviceTarget(Device value) { - this.deviceTarget = value; - return this; - } - - /** - * @return {@link #identifier} (An external identifier for this statement such as an IRI.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (An external identifier for this statement such as an IRI.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #indication} (Reason or justification for the use of the device.) - */ - public List getIndication() { - if (this.indication == null) - this.indication = new ArrayList(); - return this.indication; - } - - public boolean hasIndication() { - if (this.indication == null) - return false; - for (CodeableConcept item : this.indication) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #indication} (Reason or justification for the use of the device.) - */ - // syntactic sugar - public CodeableConcept addIndication() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.indication == null) - this.indication = new ArrayList(); - this.indication.add(t); - return t; - } - - /** - * @return {@link #notes} (Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) - */ - public List getNotes() { - if (this.notes == null) - this.notes = new ArrayList(); - return this.notes; - } - - public boolean hasNotes() { - if (this.notes == null) - return false; - for (StringType item : this.notes) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #notes} (Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) - */ - // syntactic sugar - public StringType addNotesElement() {//2 - StringType t = new StringType(); - if (this.notes == null) - this.notes = new ArrayList(); - this.notes.add(t); - return t; - } - - /** - * @param value {@link #notes} (Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) - */ - public DeviceUseStatement addNotes(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.notes == null) - this.notes = new ArrayList(); - this.notes.add(t); - return this; - } - - /** - * @param value {@link #notes} (Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) - */ - public boolean hasNotes(String value) { - if (this.notes == null) - return false; - for (StringType v : this.notes) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #recordedOn} (The time at which the statement was made/recorded.). This is the underlying object with id, value and extensions. The accessor "getRecordedOn" gives direct access to the value - */ - public DateTimeType getRecordedOnElement() { - if (this.recordedOn == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseStatement.recordedOn"); - else if (Configuration.doAutoCreate()) - this.recordedOn = new DateTimeType(); - return this.recordedOn; - } - - public boolean hasRecordedOnElement() { - return this.recordedOn != null && !this.recordedOn.isEmpty(); - } - - public boolean hasRecordedOn() { - return this.recordedOn != null && !this.recordedOn.isEmpty(); - } - - /** - * @param value {@link #recordedOn} (The time at which the statement was made/recorded.). This is the underlying object with id, value and extensions. The accessor "getRecordedOn" gives direct access to the value - */ - public DeviceUseStatement setRecordedOnElement(DateTimeType value) { - this.recordedOn = value; - return this; - } - - /** - * @return The time at which the statement was made/recorded. - */ - public Date getRecordedOn() { - return this.recordedOn == null ? null : this.recordedOn.getValue(); - } - - /** - * @param value The time at which the statement was made/recorded. - */ - public DeviceUseStatement setRecordedOn(Date value) { - if (value == null) - this.recordedOn = null; - else { - if (this.recordedOn == null) - this.recordedOn = new DateTimeType(); - this.recordedOn.setValue(value); - } - return this; - } - - /** - * @return {@link #subject} (The patient who used the device.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseStatement.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (The patient who used the device.) - */ - public DeviceUseStatement setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient who used the device.) - */ - public Patient getSubjectTarget() { - if (this.subjectTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DeviceUseStatement.subject"); - else if (Configuration.doAutoCreate()) - this.subjectTarget = new Patient(); - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient who used the device.) - */ - public DeviceUseStatement setSubjectTarget(Patient value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #timing} (How often the device was used.) - */ - public Type getTiming() { - return this.timing; - } - - /** - * @return {@link #timing} (How often the device was used.) - */ - public Timing getTimingTiming() throws Exception { - if (!(this.timing instanceof Timing)) - throw new Exception("Type mismatch: the type Timing was expected, but "+this.timing.getClass().getName()+" was encountered"); - return (Timing) this.timing; - } - - /** - * @return {@link #timing} (How often the device was used.) - */ - public Period getTimingPeriod() throws Exception { - if (!(this.timing instanceof Period)) - throw new Exception("Type mismatch: the type Period was expected, but "+this.timing.getClass().getName()+" was encountered"); - return (Period) this.timing; - } - - /** - * @return {@link #timing} (How often the device was used.) - */ - public DateTimeType getTimingDateTimeType() throws Exception { - if (!(this.timing instanceof DateTimeType)) - throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.timing.getClass().getName()+" was encountered"); - return (DateTimeType) this.timing; - } - - public boolean hasTiming() { - return this.timing != null && !this.timing.isEmpty(); - } - - /** - * @param value {@link #timing} (How often the device was used.) - */ - public DeviceUseStatement setTiming(Type value) { - this.timing = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("bodySite", "CodeableConcept", "Body site where the device was used.", 0, java.lang.Integer.MAX_VALUE, bodySite)); - childrenList.add(new Property("whenUsed", "Period", "The time period over which the device was used.", 0, java.lang.Integer.MAX_VALUE, whenUsed)); - childrenList.add(new Property("device", "Reference(Device)", "The details of the device used.", 0, java.lang.Integer.MAX_VALUE, device)); - childrenList.add(new Property("identifier", "Identifier", "An external identifier for this statement such as an IRI.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("indication", "CodeableConcept", "Reason or justification for the use of the device.", 0, java.lang.Integer.MAX_VALUE, indication)); - childrenList.add(new Property("notes", "string", "Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.", 0, java.lang.Integer.MAX_VALUE, notes)); - childrenList.add(new Property("recordedOn", "dateTime", "The time at which the statement was made/recorded.", 0, java.lang.Integer.MAX_VALUE, recordedOn)); - childrenList.add(new Property("subject", "Reference(Patient)", "The patient who used the device.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("timing[x]", "Timing|Period|dateTime", "How often the device was used.", 0, java.lang.Integer.MAX_VALUE, timing)); - } - - public DeviceUseStatement copy() { - DeviceUseStatement dst = new DeviceUseStatement(); - copyValues(dst); - if (bodySite != null) { - dst.bodySite = new ArrayList(); - for (CodeableConcept i : bodySite) - dst.bodySite.add(i.copy()); - }; - dst.whenUsed = whenUsed == null ? null : whenUsed.copy(); - dst.device = device == null ? null : device.copy(); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - if (indication != null) { - dst.indication = new ArrayList(); - for (CodeableConcept i : indication) - dst.indication.add(i.copy()); - }; - if (notes != null) { - dst.notes = new ArrayList(); - for (StringType i : notes) - dst.notes.add(i.copy()); - }; - dst.recordedOn = recordedOn == null ? null : recordedOn.copy(); - dst.subject = subject == null ? null : subject.copy(); - dst.timing = timing == null ? null : timing.copy(); - return dst; - } - - protected DeviceUseStatement typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (bodySite == null || bodySite.isEmpty()) && (whenUsed == null || whenUsed.isEmpty()) - && (device == null || device.isEmpty()) && (identifier == null || identifier.isEmpty()) && (indication == null || indication.isEmpty()) - && (notes == null || notes.isEmpty()) && (recordedOn == null || recordedOn.isEmpty()) && (subject == null || subject.isEmpty()) - && (timing == null || timing.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.DeviceUseStatement; - } - - @SearchParamDefinition(name="patient", path="", description="Search by subject - a patient", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="subject", path="", description="Search by subject", type="reference" ) - public static final String SP_SUBJECT = "subject"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A record of a device being used by a patient where the record is the result of a report from the patient or another clinician. + */ +@ResourceDef(name="DeviceUseStatement", profile="http://hl7.org/fhir/Profile/DeviceUseStatement") +public class DeviceUseStatement extends DomainResource { + + /** + * Body site where the device was used. + */ + @Child(name="bodySite", type={CodeableConcept.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="", formalDefinition="Body site where the device was used." ) + protected List bodySite; + + /** + * The time period over which the device was used. + */ + @Child(name="whenUsed", type={Period.class}, order=0, min=0, max=1) + @Description(shortDefinition="", formalDefinition="The time period over which the device was used." ) + protected Period whenUsed; + + /** + * The details of the device used. + */ + @Child(name="device", type={Device.class}, order=1, min=1, max=1) + @Description(shortDefinition="", formalDefinition="The details of the device used." ) + protected Reference device; + + /** + * The actual object that is the target of the reference (The details of the device used.) + */ + protected Device deviceTarget; + + /** + * An external identifier for this statement such as an IRI. + */ + @Child(name="identifier", type={Identifier.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="", formalDefinition="An external identifier for this statement such as an IRI." ) + protected List identifier; + + /** + * Reason or justification for the use of the device. + */ + @Child(name="indication", type={CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="", formalDefinition="Reason or justification for the use of the device." ) + protected List indication; + + /** + * Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement. + */ + @Child(name="notes", type={StringType.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="", formalDefinition="Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement." ) + protected List notes; + + /** + * The time at which the statement was made/recorded. + */ + @Child(name="recordedOn", type={DateTimeType.class}, order=5, min=0, max=1) + @Description(shortDefinition="", formalDefinition="The time at which the statement was made/recorded." ) + protected DateTimeType recordedOn; + + /** + * The patient who used the device. + */ + @Child(name="subject", type={Patient.class}, order=6, min=1, max=1) + @Description(shortDefinition="", formalDefinition="The patient who used the device." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (The patient who used the device.) + */ + protected Patient subjectTarget; + + /** + * How often the device was used. + */ + @Child(name="timing", type={Timing.class, Period.class, DateTimeType.class}, order=7, min=0, max=1) + @Description(shortDefinition="", formalDefinition="How often the device was used." ) + protected Type timing; + + private static final long serialVersionUID = 523119888L; + + public DeviceUseStatement() { + super(); + } + + public DeviceUseStatement(Reference device, Reference subject) { + super(); + this.device = device; + this.subject = subject; + } + + /** + * @return {@link #bodySite} (Body site where the device was used.) + */ + public List getBodySite() { + if (this.bodySite == null) + this.bodySite = new ArrayList(); + return this.bodySite; + } + + public boolean hasBodySite() { + if (this.bodySite == null) + return false; + for (CodeableConcept item : this.bodySite) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #bodySite} (Body site where the device was used.) + */ + // syntactic sugar + public CodeableConcept addBodySite() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.bodySite == null) + this.bodySite = new ArrayList(); + this.bodySite.add(t); + return t; + } + + /** + * @return {@link #whenUsed} (The time period over which the device was used.) + */ + public Period getWhenUsed() { + if (this.whenUsed == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseStatement.whenUsed"); + else if (Configuration.doAutoCreate()) + this.whenUsed = new Period(); // cc + return this.whenUsed; + } + + public boolean hasWhenUsed() { + return this.whenUsed != null && !this.whenUsed.isEmpty(); + } + + /** + * @param value {@link #whenUsed} (The time period over which the device was used.) + */ + public DeviceUseStatement setWhenUsed(Period value) { + this.whenUsed = value; + return this; + } + + /** + * @return {@link #device} (The details of the device used.) + */ + public Reference getDevice() { + if (this.device == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseStatement.device"); + else if (Configuration.doAutoCreate()) + this.device = new Reference(); // cc + return this.device; + } + + public boolean hasDevice() { + return this.device != null && !this.device.isEmpty(); + } + + /** + * @param value {@link #device} (The details of the device used.) + */ + public DeviceUseStatement setDevice(Reference value) { + this.device = value; + return this; + } + + /** + * @return {@link #device} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The details of the device used.) + */ + public Device getDeviceTarget() { + if (this.deviceTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseStatement.device"); + else if (Configuration.doAutoCreate()) + this.deviceTarget = new Device(); // aa + return this.deviceTarget; + } + + /** + * @param value {@link #device} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The details of the device used.) + */ + public DeviceUseStatement setDeviceTarget(Device value) { + this.deviceTarget = value; + return this; + } + + /** + * @return {@link #identifier} (An external identifier for this statement such as an IRI.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (An external identifier for this statement such as an IRI.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #indication} (Reason or justification for the use of the device.) + */ + public List getIndication() { + if (this.indication == null) + this.indication = new ArrayList(); + return this.indication; + } + + public boolean hasIndication() { + if (this.indication == null) + return false; + for (CodeableConcept item : this.indication) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #indication} (Reason or justification for the use of the device.) + */ + // syntactic sugar + public CodeableConcept addIndication() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.indication == null) + this.indication = new ArrayList(); + this.indication.add(t); + return t; + } + + /** + * @return {@link #notes} (Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) + */ + public List getNotes() { + if (this.notes == null) + this.notes = new ArrayList(); + return this.notes; + } + + public boolean hasNotes() { + if (this.notes == null) + return false; + for (StringType item : this.notes) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #notes} (Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) + */ + // syntactic sugar + public StringType addNotesElement() {//2 + StringType t = new StringType(); + if (this.notes == null) + this.notes = new ArrayList(); + this.notes.add(t); + return t; + } + + /** + * @param value {@link #notes} (Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) + */ + public DeviceUseStatement addNotes(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.notes == null) + this.notes = new ArrayList(); + this.notes.add(t); + return this; + } + + /** + * @param value {@link #notes} (Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.) + */ + public boolean hasNotes(String value) { + if (this.notes == null) + return false; + for (StringType v : this.notes) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #recordedOn} (The time at which the statement was made/recorded.). This is the underlying object with id, value and extensions. The accessor "getRecordedOn" gives direct access to the value + */ + public DateTimeType getRecordedOnElement() { + if (this.recordedOn == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseStatement.recordedOn"); + else if (Configuration.doAutoCreate()) + this.recordedOn = new DateTimeType(); // bb + return this.recordedOn; + } + + public boolean hasRecordedOnElement() { + return this.recordedOn != null && !this.recordedOn.isEmpty(); + } + + public boolean hasRecordedOn() { + return this.recordedOn != null && !this.recordedOn.isEmpty(); + } + + /** + * @param value {@link #recordedOn} (The time at which the statement was made/recorded.). This is the underlying object with id, value and extensions. The accessor "getRecordedOn" gives direct access to the value + */ + public DeviceUseStatement setRecordedOnElement(DateTimeType value) { + this.recordedOn = value; + return this; + } + + /** + * @return The time at which the statement was made/recorded. + */ + public Date getRecordedOn() { + return this.recordedOn == null ? null : this.recordedOn.getValue(); + } + + /** + * @param value The time at which the statement was made/recorded. + */ + public DeviceUseStatement setRecordedOn(Date value) { + if (value == null) + this.recordedOn = null; + else { + if (this.recordedOn == null) + this.recordedOn = new DateTimeType(); + this.recordedOn.setValue(value); + } + return this; + } + + /** + * @return {@link #subject} (The patient who used the device.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseStatement.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (The patient who used the device.) + */ + public DeviceUseStatement setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient who used the device.) + */ + public Patient getSubjectTarget() { + if (this.subjectTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DeviceUseStatement.subject"); + else if (Configuration.doAutoCreate()) + this.subjectTarget = new Patient(); // aa + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient who used the device.) + */ + public DeviceUseStatement setSubjectTarget(Patient value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #timing} (How often the device was used.) + */ + public Type getTiming() { + return this.timing; + } + + /** + * @return {@link #timing} (How often the device was used.) + */ + public Timing getTimingTiming() throws Exception { + if (!(this.timing instanceof Timing)) + throw new Exception("Type mismatch: the type Timing was expected, but "+this.timing.getClass().getName()+" was encountered"); + return (Timing) this.timing; + } + + /** + * @return {@link #timing} (How often the device was used.) + */ + public Period getTimingPeriod() throws Exception { + if (!(this.timing instanceof Period)) + throw new Exception("Type mismatch: the type Period was expected, but "+this.timing.getClass().getName()+" was encountered"); + return (Period) this.timing; + } + + /** + * @return {@link #timing} (How often the device was used.) + */ + public DateTimeType getTimingDateTimeType() throws Exception { + if (!(this.timing instanceof DateTimeType)) + throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.timing.getClass().getName()+" was encountered"); + return (DateTimeType) this.timing; + } + + public boolean hasTiming() { + return this.timing != null && !this.timing.isEmpty(); + } + + /** + * @param value {@link #timing} (How often the device was used.) + */ + public DeviceUseStatement setTiming(Type value) { + this.timing = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("bodySite", "CodeableConcept", "Body site where the device was used.", 0, java.lang.Integer.MAX_VALUE, bodySite)); + childrenList.add(new Property("whenUsed", "Period", "The time period over which the device was used.", 0, java.lang.Integer.MAX_VALUE, whenUsed)); + childrenList.add(new Property("device", "Reference(Device)", "The details of the device used.", 0, java.lang.Integer.MAX_VALUE, device)); + childrenList.add(new Property("identifier", "Identifier", "An external identifier for this statement such as an IRI.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("indication", "CodeableConcept", "Reason or justification for the use of the device.", 0, java.lang.Integer.MAX_VALUE, indication)); + childrenList.add(new Property("notes", "string", "Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement.", 0, java.lang.Integer.MAX_VALUE, notes)); + childrenList.add(new Property("recordedOn", "dateTime", "The time at which the statement was made/recorded.", 0, java.lang.Integer.MAX_VALUE, recordedOn)); + childrenList.add(new Property("subject", "Reference(Patient)", "The patient who used the device.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("timing[x]", "Timing|Period|dateTime", "How often the device was used.", 0, java.lang.Integer.MAX_VALUE, timing)); + } + + public DeviceUseStatement copy() { + DeviceUseStatement dst = new DeviceUseStatement(); + copyValues(dst); + if (bodySite != null) { + dst.bodySite = new ArrayList(); + for (CodeableConcept i : bodySite) + dst.bodySite.add(i.copy()); + }; + dst.whenUsed = whenUsed == null ? null : whenUsed.copy(); + dst.device = device == null ? null : device.copy(); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + if (indication != null) { + dst.indication = new ArrayList(); + for (CodeableConcept i : indication) + dst.indication.add(i.copy()); + }; + if (notes != null) { + dst.notes = new ArrayList(); + for (StringType i : notes) + dst.notes.add(i.copy()); + }; + dst.recordedOn = recordedOn == null ? null : recordedOn.copy(); + dst.subject = subject == null ? null : subject.copy(); + dst.timing = timing == null ? null : timing.copy(); + return dst; + } + + protected DeviceUseStatement typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DeviceUseStatement)) + return false; + DeviceUseStatement o = (DeviceUseStatement) other; + return compareDeep(bodySite, o.bodySite, true) && compareDeep(whenUsed, o.whenUsed, true) && compareDeep(device, o.device, true) + && compareDeep(identifier, o.identifier, true) && compareDeep(indication, o.indication, true) && compareDeep(notes, o.notes, true) + && compareDeep(recordedOn, o.recordedOn, true) && compareDeep(subject, o.subject, true) && compareDeep(timing, o.timing, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DeviceUseStatement)) + return false; + DeviceUseStatement o = (DeviceUseStatement) other; + return compareValues(notes, o.notes, true) && compareValues(recordedOn, o.recordedOn, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (bodySite == null || bodySite.isEmpty()) && (whenUsed == null || whenUsed.isEmpty()) + && (device == null || device.isEmpty()) && (identifier == null || identifier.isEmpty()) && (indication == null || indication.isEmpty()) + && (notes == null || notes.isEmpty()) && (recordedOn == null || recordedOn.isEmpty()) && (subject == null || subject.isEmpty()) + && (timing == null || timing.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.DeviceUseStatement; + } + + @SearchParamDefinition(name="patient", path="DeviceUseStatement.subject", description="Search by subject - a patient", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="subject", path="DeviceUseStatement.subject", description="Search by subject", type="reference" ) + public static final String SP_SUBJECT = "subject"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$1.class new file mode 100644 index 0000000000000000000000000000000000000000..98c188c446b914d31785b79a610a5f876d4baf6d GIT binary patch literal 1806 zcmb_d-*3}a7(F*l<0NxO8110l4;b~Jg+T@k*aTw@&P@p+7e_A3OqZ1f4uI ze4N7!_T;Fvm*s+jMHc%Q_A`8v#{nGVUd0@hK4rPUr9%vd8ICY~#&DG37{hUf&lP;3 z;G{rJv#xou)2rLxYhkpi_59=7cRerCyr3W3f#Ygd!mjIUWzSv>!hY;Iji~EJ{oJ!eU1tt<$0ew$!}9H3nB!+^A)*_*64R z3vn*fW)e*y6UbZPAadM_$L-T&`#5;XzG{<^3>-h~d%M9I|21AqK zJcG$#F|-)ks0$pRWE3eGMNUR>n2chQjN;fPv_k?AP^&@UM!IkJ`!1!TFj{A0<&x{f z0{h>9S9)e)@nUTgCOaXZn2mO;YEYWwW;upY*9&Yv zIeK)sGi`HO8ZA15R;$ERvPw;X(gxN){CH-@LN%2%{Z(&rMHAvrmc3dzh!W=SfETthA~$=?M%Z{34BG$A=fa%e*GZIVM1l3Pf=G)cx5 zNM>J6L9JU!7S{EChxNMd+gPvbKg~LqjK6~^eMEo;;!LP*EaRWDrZ{aumPW%V{!W!{?JjUO|Pw)@^B~IZ3ie;V{ zcm|0d@FA6S%w15h6ZO}j^ST_h8r(1jl%`!|mBL5ZO`N8U04M03qm~&~g)IHi=JD0i MEd8D4adv6;1wrS~_y7O^ literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$DiagnosticOrderEventComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$DiagnosticOrderEventComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..9bfe71ced4c05e061393128d1c98c0b0e7160930 GIT binary patch literal 8934 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 ATL1t6 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$DiagnosticOrderItemComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$DiagnosticOrderItemComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..7e35d783a986460e2fafc867ab434c062745e59e GIT binary patch literal 10594 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 mz@M}IQ~X`V9oval@sryY@)-FlewwhHiTy<9f literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$DiagnosticOrderPriority.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder$DiagnosticOrderPriority.class new file mode 100644 index 0000000000000000000000000000000000000000..ab10b9e92f05284d64a81dfce1cf84154e9f9eb8 GIT binary patch literal 2956 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder.class new file mode 100644 index 0000000000000000000000000000000000000000..003cf84a6278228af8b8e07215c793fba9bf119b GIT binary patch literal 20954 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 Bbu|D0 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder.java similarity index 88% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder.java index 7f305d10b12..be7431273fa 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticOrder.java @@ -1,1511 +1,1562 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A request for a diagnostic investigation service to be performed. - */ -@ResourceDef(name="DiagnosticOrder", profile="http://hl7.org/fhir/Profile/DiagnosticOrder") -public class DiagnosticOrder extends DomainResource { - - public enum DiagnosticOrderStatus implements FhirEnum { - /** - * The request has been placed. - */ - REQUESTED, - /** - * The receiving system has received the order, but not yet decided whether it will be performed. - */ - RECEIVED, - /** - * The receiving system has accepted the order, but work has not yet commenced. - */ - ACCEPTED, - /** - * The work to fulfill the order is happening. - */ - INPROGRESS, - /** - * The work is complete, and the outcomes are being reviewed for approval. - */ - REVIEW, - /** - * The work has been complete, the report(s) released, and no further work is planned. - */ - COMPLETED, - /** - * The request has been held by originating system/user request. - */ - SUSPENDED, - /** - * The receiving system has declined to fulfill the request. - */ - REJECTED, - /** - * The diagnostic investigation was attempted, but due to some procedural error, it could not be completed. - */ - FAILED, - /** - * added to help the parsers - */ - NULL; - - public static final DiagnosticOrderStatusEnumFactory ENUM_FACTORY = new DiagnosticOrderStatusEnumFactory(); - - public static DiagnosticOrderStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("requested".equals(codeString)) - return REQUESTED; - if ("received".equals(codeString)) - return RECEIVED; - if ("accepted".equals(codeString)) - return ACCEPTED; - if ("in progress".equals(codeString)) - return INPROGRESS; - if ("review".equals(codeString)) - return REVIEW; - if ("completed".equals(codeString)) - return COMPLETED; - if ("suspended".equals(codeString)) - return SUSPENDED; - if ("rejected".equals(codeString)) - return REJECTED; - if ("failed".equals(codeString)) - return FAILED; - throw new IllegalArgumentException("Unknown DiagnosticOrderStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case REQUESTED: return "requested"; - case RECEIVED: return "received"; - case ACCEPTED: return "accepted"; - case INPROGRESS: return "in progress"; - case REVIEW: return "review"; - case COMPLETED: return "completed"; - case SUSPENDED: return "suspended"; - case REJECTED: return "rejected"; - case FAILED: return "failed"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case REQUESTED: return ""; - case RECEIVED: return ""; - case ACCEPTED: return ""; - case INPROGRESS: return ""; - case REVIEW: return ""; - case COMPLETED: return ""; - case SUSPENDED: return ""; - case REJECTED: return ""; - case FAILED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case REQUESTED: return "The request has been placed."; - case RECEIVED: return "The receiving system has received the order, but not yet decided whether it will be performed."; - case ACCEPTED: return "The receiving system has accepted the order, but work has not yet commenced."; - case INPROGRESS: return "The work to fulfill the order is happening."; - case REVIEW: return "The work is complete, and the outcomes are being reviewed for approval."; - case COMPLETED: return "The work has been complete, the report(s) released, and no further work is planned."; - case SUSPENDED: return "The request has been held by originating system/user request."; - case REJECTED: return "The receiving system has declined to fulfill the request."; - case FAILED: return "The diagnostic investigation was attempted, but due to some procedural error, it could not be completed."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case REQUESTED: return "requested"; - case RECEIVED: return "received"; - case ACCEPTED: return "accepted"; - case INPROGRESS: return "in progress"; - case REVIEW: return "review"; - case COMPLETED: return "completed"; - case SUSPENDED: return "suspended"; - case REJECTED: return "rejected"; - case FAILED: return "failed"; - default: return "?"; - } - } - } - - public static class DiagnosticOrderStatusEnumFactory implements EnumFactory { - public DiagnosticOrderStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("requested".equals(codeString)) - return DiagnosticOrderStatus.REQUESTED; - if ("received".equals(codeString)) - return DiagnosticOrderStatus.RECEIVED; - if ("accepted".equals(codeString)) - return DiagnosticOrderStatus.ACCEPTED; - if ("in progress".equals(codeString)) - return DiagnosticOrderStatus.INPROGRESS; - if ("review".equals(codeString)) - return DiagnosticOrderStatus.REVIEW; - if ("completed".equals(codeString)) - return DiagnosticOrderStatus.COMPLETED; - if ("suspended".equals(codeString)) - return DiagnosticOrderStatus.SUSPENDED; - if ("rejected".equals(codeString)) - return DiagnosticOrderStatus.REJECTED; - if ("failed".equals(codeString)) - return DiagnosticOrderStatus.FAILED; - throw new IllegalArgumentException("Unknown DiagnosticOrderStatus code '"+codeString+"'"); - } - public String toCode(DiagnosticOrderStatus code) throws IllegalArgumentException { - if (code == DiagnosticOrderStatus.REQUESTED) - return "requested"; - if (code == DiagnosticOrderStatus.RECEIVED) - return "received"; - if (code == DiagnosticOrderStatus.ACCEPTED) - return "accepted"; - if (code == DiagnosticOrderStatus.INPROGRESS) - return "in progress"; - if (code == DiagnosticOrderStatus.REVIEW) - return "review"; - if (code == DiagnosticOrderStatus.COMPLETED) - return "completed"; - if (code == DiagnosticOrderStatus.SUSPENDED) - return "suspended"; - if (code == DiagnosticOrderStatus.REJECTED) - return "rejected"; - if (code == DiagnosticOrderStatus.FAILED) - return "failed"; - return "?"; - } - } - - public enum DiagnosticOrderPriority implements FhirEnum { - /** - * The order has a normal priority. - */ - ROUTINE, - /** - * The order should be urgently. - */ - URGENT, - /** - * The order is time-critical. - */ - STAT, - /** - * The order should be acted on as soon as possible. - */ - ASAP, - /** - * added to help the parsers - */ - NULL; - - public static final DiagnosticOrderPriorityEnumFactory ENUM_FACTORY = new DiagnosticOrderPriorityEnumFactory(); - - public static DiagnosticOrderPriority fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("routine".equals(codeString)) - return ROUTINE; - if ("urgent".equals(codeString)) - return URGENT; - if ("stat".equals(codeString)) - return STAT; - if ("asap".equals(codeString)) - return ASAP; - throw new IllegalArgumentException("Unknown DiagnosticOrderPriority code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case ROUTINE: return "routine"; - case URGENT: return "urgent"; - case STAT: return "stat"; - case ASAP: return "asap"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case ROUTINE: return ""; - case URGENT: return ""; - case STAT: return ""; - case ASAP: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case ROUTINE: return "The order has a normal priority."; - case URGENT: return "The order should be urgently."; - case STAT: return "The order is time-critical."; - case ASAP: return "The order should be acted on as soon as possible."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case ROUTINE: return "Routine"; - case URGENT: return "Urgent"; - case STAT: return "Stat"; - case ASAP: return "ASAP"; - default: return "?"; - } - } - } - - public static class DiagnosticOrderPriorityEnumFactory implements EnumFactory { - public DiagnosticOrderPriority fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("routine".equals(codeString)) - return DiagnosticOrderPriority.ROUTINE; - if ("urgent".equals(codeString)) - return DiagnosticOrderPriority.URGENT; - if ("stat".equals(codeString)) - return DiagnosticOrderPriority.STAT; - if ("asap".equals(codeString)) - return DiagnosticOrderPriority.ASAP; - throw new IllegalArgumentException("Unknown DiagnosticOrderPriority code '"+codeString+"'"); - } - public String toCode(DiagnosticOrderPriority code) throws IllegalArgumentException { - if (code == DiagnosticOrderPriority.ROUTINE) - return "routine"; - if (code == DiagnosticOrderPriority.URGENT) - return "urgent"; - if (code == DiagnosticOrderPriority.STAT) - return "stat"; - if (code == DiagnosticOrderPriority.ASAP) - return "asap"; - return "?"; - } - } - - @Block() - public static class DiagnosticOrderEventComponent extends BackboneElement { - /** - * The status for the event. - */ - @Child(name="status", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="requested | received | accepted | in progress | review | completed | suspended | rejected | failed", formalDefinition="The status for the event." ) - protected Enumeration status; - - /** - * Additional information about the event that occurred - e.g. if the status remained unchanged. - */ - @Child(name="description", type={CodeableConcept.class}, order=2, min=0, max=1) - @Description(shortDefinition="More information about the event and its context", formalDefinition="Additional information about the event that occurred - e.g. if the status remained unchanged." ) - protected CodeableConcept description; - - /** - * The date/time at which the event occurred. - */ - @Child(name="dateTime", type={DateTimeType.class}, order=3, min=1, max=1) - @Description(shortDefinition="The date at which the event happened", formalDefinition="The date/time at which the event occurred." ) - protected DateTimeType dateTime; - - /** - * The person who was responsible for performing or recording the action. - */ - @Child(name="actor", type={Practitioner.class, Device.class}, order=4, min=0, max=1) - @Description(shortDefinition="Who recorded or did this", formalDefinition="The person who was responsible for performing or recording the action." ) - protected Reference actor; - - /** - * The actual object that is the target of the reference (The person who was responsible for performing or recording the action.) - */ - protected Resource actorTarget; - - private static final long serialVersionUID = -370793723L; - - public DiagnosticOrderEventComponent() { - super(); - } - - public DiagnosticOrderEventComponent(Enumeration status, DateTimeType dateTime) { - super(); - this.status = status; - this.dateTime = dateTime; - } - - /** - * @return {@link #status} (The status for the event.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrderEventComponent.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status for the event.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public DiagnosticOrderEventComponent setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status for the event. - */ - public DiagnosticOrderStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status for the event. - */ - public DiagnosticOrderEventComponent setStatus(DiagnosticOrderStatus value) { - if (this.status == null) - this.status = new Enumeration(DiagnosticOrderStatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #description} (Additional information about the event that occurred - e.g. if the status remained unchanged.) - */ - public CodeableConcept getDescription() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrderEventComponent.description"); - else if (Configuration.doAutoCreate()) - this.description = new CodeableConcept(); - return this.description; - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Additional information about the event that occurred - e.g. if the status remained unchanged.) - */ - public DiagnosticOrderEventComponent setDescription(CodeableConcept value) { - this.description = value; - return this; - } - - /** - * @return {@link #dateTime} (The date/time at which the event occurred.). This is the underlying object with id, value and extensions. The accessor "getDateTime" gives direct access to the value - */ - public DateTimeType getDateTimeElement() { - if (this.dateTime == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrderEventComponent.dateTime"); - else if (Configuration.doAutoCreate()) - this.dateTime = new DateTimeType(); - return this.dateTime; - } - - public boolean hasDateTimeElement() { - return this.dateTime != null && !this.dateTime.isEmpty(); - } - - public boolean hasDateTime() { - return this.dateTime != null && !this.dateTime.isEmpty(); - } - - /** - * @param value {@link #dateTime} (The date/time at which the event occurred.). This is the underlying object with id, value and extensions. The accessor "getDateTime" gives direct access to the value - */ - public DiagnosticOrderEventComponent setDateTimeElement(DateTimeType value) { - this.dateTime = value; - return this; - } - - /** - * @return The date/time at which the event occurred. - */ - public Date getDateTime() { - return this.dateTime == null ? null : this.dateTime.getValue(); - } - - /** - * @param value The date/time at which the event occurred. - */ - public DiagnosticOrderEventComponent setDateTime(Date value) { - if (this.dateTime == null) - this.dateTime = new DateTimeType(); - this.dateTime.setValue(value); - return this; - } - - /** - * @return {@link #actor} (The person who was responsible for performing or recording the action.) - */ - public Reference getActor() { - if (this.actor == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrderEventComponent.actor"); - else if (Configuration.doAutoCreate()) - this.actor = new Reference(); - return this.actor; - } - - public boolean hasActor() { - return this.actor != null && !this.actor.isEmpty(); - } - - /** - * @param value {@link #actor} (The person who was responsible for performing or recording the action.) - */ - public DiagnosticOrderEventComponent setActor(Reference value) { - this.actor = value; - return this; - } - - /** - * @return {@link #actor} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person who was responsible for performing or recording the action.) - */ - public Resource getActorTarget() { - return this.actorTarget; - } - - /** - * @param value {@link #actor} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person who was responsible for performing or recording the action.) - */ - public DiagnosticOrderEventComponent setActorTarget(Resource value) { - this.actorTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("status", "code", "The status for the event.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("description", "CodeableConcept", "Additional information about the event that occurred - e.g. if the status remained unchanged.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("dateTime", "dateTime", "The date/time at which the event occurred.", 0, java.lang.Integer.MAX_VALUE, dateTime)); - childrenList.add(new Property("actor", "Reference(Practitioner|Device)", "The person who was responsible for performing or recording the action.", 0, java.lang.Integer.MAX_VALUE, actor)); - } - - public DiagnosticOrderEventComponent copy() { - DiagnosticOrderEventComponent dst = new DiagnosticOrderEventComponent(); - copyValues(dst); - dst.status = status == null ? null : status.copy(); - dst.description = description == null ? null : description.copy(); - dst.dateTime = dateTime == null ? null : dateTime.copy(); - dst.actor = actor == null ? null : actor.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (status == null || status.isEmpty()) && (description == null || description.isEmpty()) - && (dateTime == null || dateTime.isEmpty()) && (actor == null || actor.isEmpty()); - } - - } - - @Block() - public static class DiagnosticOrderItemComponent extends BackboneElement { - /** - * A code that identifies a particular diagnostic investigation, or panel of investigations, that have been requested. - */ - @Child(name="code", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="Code to indicate the item (test or panel) being ordered", formalDefinition="A code that identifies a particular diagnostic investigation, or panel of investigations, that have been requested." ) - protected CodeableConcept code; - - /** - * If the item is related to a specific speciment. - */ - @Child(name="specimen", type={Specimen.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="If this item relates to specific specimens", formalDefinition="If the item is related to a specific speciment." ) - protected List specimen; - /** - * The actual objects that are the target of the reference (If the item is related to a specific speciment.) - */ - protected List specimenTarget; - - - /** - * Anatomical location where the request test should be performed. - */ - @Child(name="bodySite", type={CodeableConcept.class}, order=3, min=0, max=1) - @Description(shortDefinition="Location of requested test (if applicable)", formalDefinition="Anatomical location where the request test should be performed." ) - protected CodeableConcept bodySite; - - /** - * The status of this individual item within the order. - */ - @Child(name="status", type={CodeType.class}, order=4, min=0, max=1) - @Description(shortDefinition="requested | received | accepted | in progress | review | completed | suspended | rejected | failed", formalDefinition="The status of this individual item within the order." ) - protected Enumeration status; - - /** - * A summary of the events of interest that have occurred as this item of the request is processed. - */ - @Child(name="event", type={DiagnosticOrderEventComponent.class}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Events specific to this item", formalDefinition="A summary of the events of interest that have occurred as this item of the request is processed." ) - protected List event; - - private static final long serialVersionUID = 381238192L; - - public DiagnosticOrderItemComponent() { - super(); - } - - public DiagnosticOrderItemComponent(CodeableConcept code) { - super(); - this.code = code; - } - - /** - * @return {@link #code} (A code that identifies a particular diagnostic investigation, or panel of investigations, that have been requested.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrderItemComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (A code that identifies a particular diagnostic investigation, or panel of investigations, that have been requested.) - */ - public DiagnosticOrderItemComponent setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #specimen} (If the item is related to a specific speciment.) - */ - public List getSpecimen() { - if (this.specimen == null) - this.specimen = new ArrayList(); - return this.specimen; - } - - public boolean hasSpecimen() { - if (this.specimen == null) - return false; - for (Reference item : this.specimen) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #specimen} (If the item is related to a specific speciment.) - */ - // syntactic sugar - public Reference addSpecimen() { //3 - Reference t = new Reference(); - if (this.specimen == null) - this.specimen = new ArrayList(); - this.specimen.add(t); - return t; - } - - /** - * @return {@link #specimen} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. If the item is related to a specific speciment.) - */ - public List getSpecimenTarget() { - if (this.specimenTarget == null) - this.specimenTarget = new ArrayList(); - return this.specimenTarget; - } - - // syntactic sugar - /** - * @return {@link #specimen} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. If the item is related to a specific speciment.) - */ - public Specimen addSpecimenTarget() { - Specimen r = new Specimen(); - if (this.specimenTarget == null) - this.specimenTarget = new ArrayList(); - this.specimenTarget.add(r); - return r; - } - - /** - * @return {@link #bodySite} (Anatomical location where the request test should be performed.) - */ - public CodeableConcept getBodySite() { - if (this.bodySite == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrderItemComponent.bodySite"); - else if (Configuration.doAutoCreate()) - this.bodySite = new CodeableConcept(); - return this.bodySite; - } - - public boolean hasBodySite() { - return this.bodySite != null && !this.bodySite.isEmpty(); - } - - /** - * @param value {@link #bodySite} (Anatomical location where the request test should be performed.) - */ - public DiagnosticOrderItemComponent setBodySite(CodeableConcept value) { - this.bodySite = value; - return this; - } - - /** - * @return {@link #status} (The status of this individual item within the order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrderItemComponent.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of this individual item within the order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public DiagnosticOrderItemComponent setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of this individual item within the order. - */ - public DiagnosticOrderStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of this individual item within the order. - */ - public DiagnosticOrderItemComponent setStatus(DiagnosticOrderStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(DiagnosticOrderStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #event} (A summary of the events of interest that have occurred as this item of the request is processed.) - */ - public List getEvent() { - if (this.event == null) - this.event = new ArrayList(); - return this.event; - } - - public boolean hasEvent() { - if (this.event == null) - return false; - for (DiagnosticOrderEventComponent item : this.event) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #event} (A summary of the events of interest that have occurred as this item of the request is processed.) - */ - // syntactic sugar - public DiagnosticOrderEventComponent addEvent() { //3 - DiagnosticOrderEventComponent t = new DiagnosticOrderEventComponent(); - if (this.event == null) - this.event = new ArrayList(); - this.event.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "CodeableConcept", "A code that identifies a particular diagnostic investigation, or panel of investigations, that have been requested.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("specimen", "Reference(Specimen)", "If the item is related to a specific speciment.", 0, java.lang.Integer.MAX_VALUE, specimen)); - childrenList.add(new Property("bodySite", "CodeableConcept", "Anatomical location where the request test should be performed.", 0, java.lang.Integer.MAX_VALUE, bodySite)); - childrenList.add(new Property("status", "code", "The status of this individual item within the order.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("event", "@DiagnosticOrder.event", "A summary of the events of interest that have occurred as this item of the request is processed.", 0, java.lang.Integer.MAX_VALUE, event)); - } - - public DiagnosticOrderItemComponent copy() { - DiagnosticOrderItemComponent dst = new DiagnosticOrderItemComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - if (specimen != null) { - dst.specimen = new ArrayList(); - for (Reference i : specimen) - dst.specimen.add(i.copy()); - }; - dst.bodySite = bodySite == null ? null : bodySite.copy(); - dst.status = status == null ? null : status.copy(); - if (event != null) { - dst.event = new ArrayList(); - for (DiagnosticOrderEventComponent i : event) - dst.event.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (specimen == null || specimen.isEmpty()) - && (bodySite == null || bodySite.isEmpty()) && (status == null || status.isEmpty()) && (event == null || event.isEmpty()) - ; - } - - } - - /** - * Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans). - */ - @Child(name="subject", type={Patient.class, Group.class, Location.class, Device.class}, order=-1, min=1, max=1) - @Description(shortDefinition="Who and/or what test is about", formalDefinition="Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans)." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).) - */ - protected Resource subjectTarget; - - /** - * The practitioner that holds legal responsibility for ordering the investigation. - */ - @Child(name="orderer", type={Practitioner.class}, order=0, min=0, max=1) - @Description(shortDefinition="Who ordered the test", formalDefinition="The practitioner that holds legal responsibility for ordering the investigation." ) - protected Reference orderer; - - /** - * The actual object that is the target of the reference (The practitioner that holds legal responsibility for ordering the investigation.) - */ - protected Practitioner ordererTarget; - - /** - * Identifiers assigned to this order by the order or by the receiver. - */ - @Child(name="identifier", type={Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Identifiers assigned to this order", formalDefinition="Identifiers assigned to this order by the order or by the receiver." ) - protected List identifier; - - /** - * An encounter that provides additional information about the healthcare context in which this request is made. - */ - @Child(name="encounter", type={Encounter.class}, order=2, min=0, max=1) - @Description(shortDefinition="The encounter that this diagnostic order is associated with", formalDefinition="An encounter that provides additional information about the healthcare context in which this request is made." ) - protected Reference encounter; - - /** - * The actual object that is the target of the reference (An encounter that provides additional information about the healthcare context in which this request is made.) - */ - protected Encounter encounterTarget; - - /** - * An explanation or justification for why this diagnostic investigation is being requested. - */ - @Child(name="clinicalNotes", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Explanation/Justification for test", formalDefinition="An explanation or justification for why this diagnostic investigation is being requested." ) - protected StringType clinicalNotes; - - /** - * Additional clinical information about the patient or specimen that may influence test interpretations. - */ - @Child(name="supportingInformation", type={Observation.class, Condition.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Supporting observations or conditions for this request", formalDefinition="Additional clinical information about the patient or specimen that may influence test interpretations." ) - protected List supportingInformation; - /** - * The actual objects that are the target of the reference (Additional clinical information about the patient or specimen that may influence test interpretations.) - */ - protected List supportingInformationTarget; - - - /** - * One or more specimens that the diagnostic investigation is about. - */ - @Child(name="specimen", type={Specimen.class}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="If the whole order relates to specific specimens", formalDefinition="One or more specimens that the diagnostic investigation is about." ) - protected List specimen; - /** - * The actual objects that are the target of the reference (One or more specimens that the diagnostic investigation is about.) - */ - protected List specimenTarget; - - - /** - * The status of the order. - */ - @Child(name="status", type={CodeType.class}, order=6, min=0, max=1) - @Description(shortDefinition="requested | received | accepted | in progress | review | completed | suspended | rejected | failed", formalDefinition="The status of the order." ) - protected Enumeration status; - - /** - * The clinical priority associated with this order. - */ - @Child(name="priority", type={CodeType.class}, order=7, min=0, max=1) - @Description(shortDefinition="routine | urgent | stat | asap", formalDefinition="The clinical priority associated with this order." ) - protected Enumeration priority; - - /** - * A summary of the events of interest that have occurred as the request is processed. E.g. when the order was made, various processing steps (specimens received), when it was completed. - */ - @Child(name="event", type={}, order=8, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="A list of events of interest in the lifecycle", formalDefinition="A summary of the events of interest that have occurred as the request is processed. E.g. when the order was made, various processing steps (specimens received), when it was completed." ) - protected List event; - - /** - * The specific diagnostic investigations that are requested as part of this request. Sometimes, there can only be one item per request, but in most contexts, more than one investigation can be requested. - */ - @Child(name="item", type={}, order=9, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="The items the orderer requested", formalDefinition="The specific diagnostic investigations that are requested as part of this request. Sometimes, there can only be one item per request, but in most contexts, more than one investigation can be requested." ) - protected List item; - - private static final long serialVersionUID = 1028294242L; - - public DiagnosticOrder() { - super(); - } - - public DiagnosticOrder(Reference subject) { - super(); - this.subject = subject; - } - - /** - * @return {@link #subject} (Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrder.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).) - */ - public DiagnosticOrder setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).) - */ - public Resource getSubjectTarget() { - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).) - */ - public DiagnosticOrder setSubjectTarget(Resource value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #orderer} (The practitioner that holds legal responsibility for ordering the investigation.) - */ - public Reference getOrderer() { - if (this.orderer == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrder.orderer"); - else if (Configuration.doAutoCreate()) - this.orderer = new Reference(); - return this.orderer; - } - - public boolean hasOrderer() { - return this.orderer != null && !this.orderer.isEmpty(); - } - - /** - * @param value {@link #orderer} (The practitioner that holds legal responsibility for ordering the investigation.) - */ - public DiagnosticOrder setOrderer(Reference value) { - this.orderer = value; - return this; - } - - /** - * @return {@link #orderer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner that holds legal responsibility for ordering the investigation.) - */ - public Practitioner getOrdererTarget() { - if (this.ordererTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrder.orderer"); - else if (Configuration.doAutoCreate()) - this.ordererTarget = new Practitioner(); - return this.ordererTarget; - } - - /** - * @param value {@link #orderer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner that holds legal responsibility for ordering the investigation.) - */ - public DiagnosticOrder setOrdererTarget(Practitioner value) { - this.ordererTarget = value; - return this; - } - - /** - * @return {@link #identifier} (Identifiers assigned to this order by the order or by the receiver.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Identifiers assigned to this order by the order or by the receiver.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #encounter} (An encounter that provides additional information about the healthcare context in which this request is made.) - */ - public Reference getEncounter() { - if (this.encounter == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrder.encounter"); - else if (Configuration.doAutoCreate()) - this.encounter = new Reference(); - return this.encounter; - } - - public boolean hasEncounter() { - return this.encounter != null && !this.encounter.isEmpty(); - } - - /** - * @param value {@link #encounter} (An encounter that provides additional information about the healthcare context in which this request is made.) - */ - public DiagnosticOrder setEncounter(Reference value) { - this.encounter = value; - return this; - } - - /** - * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (An encounter that provides additional information about the healthcare context in which this request is made.) - */ - public Encounter getEncounterTarget() { - if (this.encounterTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrder.encounter"); - else if (Configuration.doAutoCreate()) - this.encounterTarget = new Encounter(); - return this.encounterTarget; - } - - /** - * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (An encounter that provides additional information about the healthcare context in which this request is made.) - */ - public DiagnosticOrder setEncounterTarget(Encounter value) { - this.encounterTarget = value; - return this; - } - - /** - * @return {@link #clinicalNotes} (An explanation or justification for why this diagnostic investigation is being requested.). This is the underlying object with id, value and extensions. The accessor "getClinicalNotes" gives direct access to the value - */ - public StringType getClinicalNotesElement() { - if (this.clinicalNotes == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrder.clinicalNotes"); - else if (Configuration.doAutoCreate()) - this.clinicalNotes = new StringType(); - return this.clinicalNotes; - } - - public boolean hasClinicalNotesElement() { - return this.clinicalNotes != null && !this.clinicalNotes.isEmpty(); - } - - public boolean hasClinicalNotes() { - return this.clinicalNotes != null && !this.clinicalNotes.isEmpty(); - } - - /** - * @param value {@link #clinicalNotes} (An explanation or justification for why this diagnostic investigation is being requested.). This is the underlying object with id, value and extensions. The accessor "getClinicalNotes" gives direct access to the value - */ - public DiagnosticOrder setClinicalNotesElement(StringType value) { - this.clinicalNotes = value; - return this; - } - - /** - * @return An explanation or justification for why this diagnostic investigation is being requested. - */ - public String getClinicalNotes() { - return this.clinicalNotes == null ? null : this.clinicalNotes.getValue(); - } - - /** - * @param value An explanation or justification for why this diagnostic investigation is being requested. - */ - public DiagnosticOrder setClinicalNotes(String value) { - if (Utilities.noString(value)) - this.clinicalNotes = null; - else { - if (this.clinicalNotes == null) - this.clinicalNotes = new StringType(); - this.clinicalNotes.setValue(value); - } - return this; - } - - /** - * @return {@link #supportingInformation} (Additional clinical information about the patient or specimen that may influence test interpretations.) - */ - public List getSupportingInformation() { - if (this.supportingInformation == null) - this.supportingInformation = new ArrayList(); - return this.supportingInformation; - } - - public boolean hasSupportingInformation() { - if (this.supportingInformation == null) - return false; - for (Reference item : this.supportingInformation) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #supportingInformation} (Additional clinical information about the patient or specimen that may influence test interpretations.) - */ - // syntactic sugar - public Reference addSupportingInformation() { //3 - Reference t = new Reference(); - if (this.supportingInformation == null) - this.supportingInformation = new ArrayList(); - this.supportingInformation.add(t); - return t; - } - - /** - * @return {@link #supportingInformation} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Additional clinical information about the patient or specimen that may influence test interpretations.) - */ - public List getSupportingInformationTarget() { - if (this.supportingInformationTarget == null) - this.supportingInformationTarget = new ArrayList(); - return this.supportingInformationTarget; - } - - /** - * @return {@link #specimen} (One or more specimens that the diagnostic investigation is about.) - */ - public List getSpecimen() { - if (this.specimen == null) - this.specimen = new ArrayList(); - return this.specimen; - } - - public boolean hasSpecimen() { - if (this.specimen == null) - return false; - for (Reference item : this.specimen) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #specimen} (One or more specimens that the diagnostic investigation is about.) - */ - // syntactic sugar - public Reference addSpecimen() { //3 - Reference t = new Reference(); - if (this.specimen == null) - this.specimen = new ArrayList(); - this.specimen.add(t); - return t; - } - - /** - * @return {@link #specimen} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. One or more specimens that the diagnostic investigation is about.) - */ - public List getSpecimenTarget() { - if (this.specimenTarget == null) - this.specimenTarget = new ArrayList(); - return this.specimenTarget; - } - - // syntactic sugar - /** - * @return {@link #specimen} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. One or more specimens that the diagnostic investigation is about.) - */ - public Specimen addSpecimenTarget() { - Specimen r = new Specimen(); - if (this.specimenTarget == null) - this.specimenTarget = new ArrayList(); - this.specimenTarget.add(r); - return r; - } - - /** - * @return {@link #status} (The status of the order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrder.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of the order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public DiagnosticOrder setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of the order. - */ - public DiagnosticOrderStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of the order. - */ - public DiagnosticOrder setStatus(DiagnosticOrderStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(DiagnosticOrderStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #priority} (The clinical priority associated with this order.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value - */ - public Enumeration getPriorityElement() { - if (this.priority == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticOrder.priority"); - else if (Configuration.doAutoCreate()) - this.priority = new Enumeration(); - return this.priority; - } - - public boolean hasPriorityElement() { - return this.priority != null && !this.priority.isEmpty(); - } - - public boolean hasPriority() { - return this.priority != null && !this.priority.isEmpty(); - } - - /** - * @param value {@link #priority} (The clinical priority associated with this order.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value - */ - public DiagnosticOrder setPriorityElement(Enumeration value) { - this.priority = value; - return this; - } - - /** - * @return The clinical priority associated with this order. - */ - public DiagnosticOrderPriority getPriority() { - return this.priority == null ? null : this.priority.getValue(); - } - - /** - * @param value The clinical priority associated with this order. - */ - public DiagnosticOrder setPriority(DiagnosticOrderPriority value) { - if (value == null) - this.priority = null; - else { - if (this.priority == null) - this.priority = new Enumeration(DiagnosticOrderPriority.ENUM_FACTORY); - this.priority.setValue(value); - } - return this; - } - - /** - * @return {@link #event} (A summary of the events of interest that have occurred as the request is processed. E.g. when the order was made, various processing steps (specimens received), when it was completed.) - */ - public List getEvent() { - if (this.event == null) - this.event = new ArrayList(); - return this.event; - } - - public boolean hasEvent() { - if (this.event == null) - return false; - for (DiagnosticOrderEventComponent item : this.event) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #event} (A summary of the events of interest that have occurred as the request is processed. E.g. when the order was made, various processing steps (specimens received), when it was completed.) - */ - // syntactic sugar - public DiagnosticOrderEventComponent addEvent() { //3 - DiagnosticOrderEventComponent t = new DiagnosticOrderEventComponent(); - if (this.event == null) - this.event = new ArrayList(); - this.event.add(t); - return t; - } - - /** - * @return {@link #item} (The specific diagnostic investigations that are requested as part of this request. Sometimes, there can only be one item per request, but in most contexts, more than one investigation can be requested.) - */ - public List getItem() { - if (this.item == null) - this.item = new ArrayList(); - return this.item; - } - - public boolean hasItem() { - if (this.item == null) - return false; - for (DiagnosticOrderItemComponent item : this.item) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #item} (The specific diagnostic investigations that are requested as part of this request. Sometimes, there can only be one item per request, but in most contexts, more than one investigation can be requested.) - */ - // syntactic sugar - public DiagnosticOrderItemComponent addItem() { //3 - DiagnosticOrderItemComponent t = new DiagnosticOrderItemComponent(); - if (this.item == null) - this.item = new ArrayList(); - this.item.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("subject", "Reference(Patient|Group|Location|Device)", "Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("orderer", "Reference(Practitioner)", "The practitioner that holds legal responsibility for ordering the investigation.", 0, java.lang.Integer.MAX_VALUE, orderer)); - childrenList.add(new Property("identifier", "Identifier", "Identifiers assigned to this order by the order or by the receiver.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("encounter", "Reference(Encounter)", "An encounter that provides additional information about the healthcare context in which this request is made.", 0, java.lang.Integer.MAX_VALUE, encounter)); - childrenList.add(new Property("clinicalNotes", "string", "An explanation or justification for why this diagnostic investigation is being requested.", 0, java.lang.Integer.MAX_VALUE, clinicalNotes)); - childrenList.add(new Property("supportingInformation", "Reference(Observation|Condition)", "Additional clinical information about the patient or specimen that may influence test interpretations.", 0, java.lang.Integer.MAX_VALUE, supportingInformation)); - childrenList.add(new Property("specimen", "Reference(Specimen)", "One or more specimens that the diagnostic investigation is about.", 0, java.lang.Integer.MAX_VALUE, specimen)); - childrenList.add(new Property("status", "code", "The status of the order.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("priority", "code", "The clinical priority associated with this order.", 0, java.lang.Integer.MAX_VALUE, priority)); - childrenList.add(new Property("event", "", "A summary of the events of interest that have occurred as the request is processed. E.g. when the order was made, various processing steps (specimens received), when it was completed.", 0, java.lang.Integer.MAX_VALUE, event)); - childrenList.add(new Property("item", "", "The specific diagnostic investigations that are requested as part of this request. Sometimes, there can only be one item per request, but in most contexts, more than one investigation can be requested.", 0, java.lang.Integer.MAX_VALUE, item)); - } - - public DiagnosticOrder copy() { - DiagnosticOrder dst = new DiagnosticOrder(); - copyValues(dst); - dst.subject = subject == null ? null : subject.copy(); - dst.orderer = orderer == null ? null : orderer.copy(); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.encounter = encounter == null ? null : encounter.copy(); - dst.clinicalNotes = clinicalNotes == null ? null : clinicalNotes.copy(); - if (supportingInformation != null) { - dst.supportingInformation = new ArrayList(); - for (Reference i : supportingInformation) - dst.supportingInformation.add(i.copy()); - }; - if (specimen != null) { - dst.specimen = new ArrayList(); - for (Reference i : specimen) - dst.specimen.add(i.copy()); - }; - dst.status = status == null ? null : status.copy(); - dst.priority = priority == null ? null : priority.copy(); - if (event != null) { - dst.event = new ArrayList(); - for (DiagnosticOrderEventComponent i : event) - dst.event.add(i.copy()); - }; - if (item != null) { - dst.item = new ArrayList(); - for (DiagnosticOrderItemComponent i : item) - dst.item.add(i.copy()); - }; - return dst; - } - - protected DiagnosticOrder typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (subject == null || subject.isEmpty()) && (orderer == null || orderer.isEmpty()) - && (identifier == null || identifier.isEmpty()) && (encounter == null || encounter.isEmpty()) - && (clinicalNotes == null || clinicalNotes.isEmpty()) && (supportingInformation == null || supportingInformation.isEmpty()) - && (specimen == null || specimen.isEmpty()) && (status == null || status.isEmpty()) && (priority == null || priority.isEmpty()) - && (event == null || event.isEmpty()) && (item == null || item.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.DiagnosticOrder; - } - - @SearchParamDefinition(name="orderer", path="DiagnosticOrder.orderer", description="Who ordered the test", type="reference" ) - public static final String SP_ORDERER = "orderer"; - @SearchParamDefinition(name="status", path="DiagnosticOrder.status", description="requested | received | accepted | in progress | review | completed | suspended | rejected | failed", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="subject", path="DiagnosticOrder.subject", description="Who and/or what test is about", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="item-status", path="DiagnosticOrder.item.status", description="requested | received | accepted | in progress | review | completed | suspended | rejected | failed", type="token" ) - public static final String SP_ITEMSTATUS = "item-status"; - @SearchParamDefinition(name="event-status", path="DiagnosticOrder.event.status", description="requested | received | accepted | in progress | review | completed | suspended | rejected | failed", type="token" ) - public static final String SP_EVENTSTATUS = "event-status"; - @SearchParamDefinition(name="actor", path="DiagnosticOrder.event.actor|DiagnosticOrder.item.event.actor", description="Who recorded or did this", type="reference" ) - public static final String SP_ACTOR = "actor"; - @SearchParamDefinition(name="code", path="DiagnosticOrder.item.code", description="Code to indicate the item (test or panel) being ordered", type="token" ) - public static final String SP_CODE = "code"; - @SearchParamDefinition(name="encounter", path="DiagnosticOrder.encounter", description="The encounter that this diagnostic order is associated with", type="reference" ) - public static final String SP_ENCOUNTER = "encounter"; - @SearchParamDefinition(name="item-past-status", path="DiagnosticOrder.item.event.status", description="requested | received | accepted | in progress | review | completed | suspended | rejected | failed", type="token" ) - public static final String SP_ITEMPASTSTATUS = "item-past-status"; - @SearchParamDefinition(name="patient", path="DiagnosticOrder.subject", description="Who and/or what test is about", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="bodysite", path="DiagnosticOrder.item.bodySite", description="Location of requested test (if applicable)", type="token" ) - public static final String SP_BODYSITE = "bodysite"; - @SearchParamDefinition(name="item-date", path="DiagnosticOrder.item.event.dateTime", description="The date at which the event happened", type="date" ) - public static final String SP_ITEMDATE = "item-date"; - @SearchParamDefinition(name="specimen", path="DiagnosticOrder.specimen|DiagnosticOrder.item.specimen", description="If the whole order relates to specific specimens", type="reference" ) - public static final String SP_SPECIMEN = "specimen"; - @SearchParamDefinition(name="event-status-date", path="", description="A combination of past-status and date", type="composite" ) - public static final String SP_EVENTSTATUSDATE = "event-status-date"; - @SearchParamDefinition(name="event-date", path="DiagnosticOrder.event.dateTime", description="The date at which the event happened", type="date" ) - public static final String SP_EVENTDATE = "event-date"; - @SearchParamDefinition(name="identifier", path="DiagnosticOrder.identifier", description="Identifiers assigned to this order", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - @SearchParamDefinition(name="item-status-date", path="", description="A combination of item-past-status and item-date", type="composite" ) - public static final String SP_ITEMSTATUSDATE = "item-status-date"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A request for a diagnostic investigation service to be performed. + */ +@ResourceDef(name="DiagnosticOrder", profile="http://hl7.org/fhir/Profile/DiagnosticOrder") +public class DiagnosticOrder extends DomainResource { + + public enum DiagnosticOrderStatus { + /** + * The request has been placed. + */ + REQUESTED, + /** + * The receiving system has received the order, but not yet decided whether it will be performed. + */ + RECEIVED, + /** + * The receiving system has accepted the order, but work has not yet commenced. + */ + ACCEPTED, + /** + * The work to fulfill the order is happening. + */ + INPROGRESS, + /** + * The work is complete, and the outcomes are being reviewed for approval. + */ + REVIEW, + /** + * The work has been complete, the report(s) released, and no further work is planned. + */ + COMPLETED, + /** + * The request has been held by originating system/user request. + */ + SUSPENDED, + /** + * The receiving system has declined to fulfill the request. + */ + REJECTED, + /** + * The diagnostic investigation was attempted, but due to some procedural error, it could not be completed. + */ + FAILED, + /** + * added to help the parsers + */ + NULL; + public static DiagnosticOrderStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("requested".equals(codeString)) + return REQUESTED; + if ("received".equals(codeString)) + return RECEIVED; + if ("accepted".equals(codeString)) + return ACCEPTED; + if ("in-progress".equals(codeString)) + return INPROGRESS; + if ("review".equals(codeString)) + return REVIEW; + if ("completed".equals(codeString)) + return COMPLETED; + if ("suspended".equals(codeString)) + return SUSPENDED; + if ("rejected".equals(codeString)) + return REJECTED; + if ("failed".equals(codeString)) + return FAILED; + throw new Exception("Unknown DiagnosticOrderStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case REQUESTED: return "requested"; + case RECEIVED: return "received"; + case ACCEPTED: return "accepted"; + case INPROGRESS: return "in-progress"; + case REVIEW: return "review"; + case COMPLETED: return "completed"; + case SUSPENDED: return "suspended"; + case REJECTED: return "rejected"; + case FAILED: return "failed"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case REQUESTED: return ""; + case RECEIVED: return ""; + case ACCEPTED: return ""; + case INPROGRESS: return ""; + case REVIEW: return ""; + case COMPLETED: return ""; + case SUSPENDED: return ""; + case REJECTED: return ""; + case FAILED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case REQUESTED: return "The request has been placed."; + case RECEIVED: return "The receiving system has received the order, but not yet decided whether it will be performed."; + case ACCEPTED: return "The receiving system has accepted the order, but work has not yet commenced."; + case INPROGRESS: return "The work to fulfill the order is happening."; + case REVIEW: return "The work is complete, and the outcomes are being reviewed for approval."; + case COMPLETED: return "The work has been complete, the report(s) released, and no further work is planned."; + case SUSPENDED: return "The request has been held by originating system/user request."; + case REJECTED: return "The receiving system has declined to fulfill the request."; + case FAILED: return "The diagnostic investigation was attempted, but due to some procedural error, it could not be completed."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case REQUESTED: return "requested"; + case RECEIVED: return "received"; + case ACCEPTED: return "accepted"; + case INPROGRESS: return "in-progress"; + case REVIEW: return "review"; + case COMPLETED: return "completed"; + case SUSPENDED: return "suspended"; + case REJECTED: return "rejected"; + case FAILED: return "failed"; + default: return "?"; + } + } + } + + public static class DiagnosticOrderStatusEnumFactory implements EnumFactory { + public DiagnosticOrderStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("requested".equals(codeString)) + return DiagnosticOrderStatus.REQUESTED; + if ("received".equals(codeString)) + return DiagnosticOrderStatus.RECEIVED; + if ("accepted".equals(codeString)) + return DiagnosticOrderStatus.ACCEPTED; + if ("in-progress".equals(codeString)) + return DiagnosticOrderStatus.INPROGRESS; + if ("review".equals(codeString)) + return DiagnosticOrderStatus.REVIEW; + if ("completed".equals(codeString)) + return DiagnosticOrderStatus.COMPLETED; + if ("suspended".equals(codeString)) + return DiagnosticOrderStatus.SUSPENDED; + if ("rejected".equals(codeString)) + return DiagnosticOrderStatus.REJECTED; + if ("failed".equals(codeString)) + return DiagnosticOrderStatus.FAILED; + throw new IllegalArgumentException("Unknown DiagnosticOrderStatus code '"+codeString+"'"); + } + public String toCode(DiagnosticOrderStatus code) { + if (code == DiagnosticOrderStatus.REQUESTED) + return "requested"; + if (code == DiagnosticOrderStatus.RECEIVED) + return "received"; + if (code == DiagnosticOrderStatus.ACCEPTED) + return "accepted"; + if (code == DiagnosticOrderStatus.INPROGRESS) + return "in-progress"; + if (code == DiagnosticOrderStatus.REVIEW) + return "review"; + if (code == DiagnosticOrderStatus.COMPLETED) + return "completed"; + if (code == DiagnosticOrderStatus.SUSPENDED) + return "suspended"; + if (code == DiagnosticOrderStatus.REJECTED) + return "rejected"; + if (code == DiagnosticOrderStatus.FAILED) + return "failed"; + return "?"; + } + } + + public enum DiagnosticOrderPriority { + /** + * The order has a normal priority. + */ + ROUTINE, + /** + * The order should be urgently. + */ + URGENT, + /** + * The order is time-critical. + */ + STAT, + /** + * The order should be acted on as soon as possible. + */ + ASAP, + /** + * added to help the parsers + */ + NULL; + public static DiagnosticOrderPriority fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("routine".equals(codeString)) + return ROUTINE; + if ("urgent".equals(codeString)) + return URGENT; + if ("stat".equals(codeString)) + return STAT; + if ("asap".equals(codeString)) + return ASAP; + throw new Exception("Unknown DiagnosticOrderPriority code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case ROUTINE: return "routine"; + case URGENT: return "urgent"; + case STAT: return "stat"; + case ASAP: return "asap"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case ROUTINE: return ""; + case URGENT: return ""; + case STAT: return ""; + case ASAP: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case ROUTINE: return "The order has a normal priority."; + case URGENT: return "The order should be urgently."; + case STAT: return "The order is time-critical."; + case ASAP: return "The order should be acted on as soon as possible."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case ROUTINE: return "Routine"; + case URGENT: return "Urgent"; + case STAT: return "Stat"; + case ASAP: return "ASAP"; + default: return "?"; + } + } + } + + public static class DiagnosticOrderPriorityEnumFactory implements EnumFactory { + public DiagnosticOrderPriority fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("routine".equals(codeString)) + return DiagnosticOrderPriority.ROUTINE; + if ("urgent".equals(codeString)) + return DiagnosticOrderPriority.URGENT; + if ("stat".equals(codeString)) + return DiagnosticOrderPriority.STAT; + if ("asap".equals(codeString)) + return DiagnosticOrderPriority.ASAP; + throw new IllegalArgumentException("Unknown DiagnosticOrderPriority code '"+codeString+"'"); + } + public String toCode(DiagnosticOrderPriority code) { + if (code == DiagnosticOrderPriority.ROUTINE) + return "routine"; + if (code == DiagnosticOrderPriority.URGENT) + return "urgent"; + if (code == DiagnosticOrderPriority.STAT) + return "stat"; + if (code == DiagnosticOrderPriority.ASAP) + return "asap"; + return "?"; + } + } + + @Block() + public static class DiagnosticOrderEventComponent extends BackboneElement { + /** + * The status for the event. + */ + @Child(name="status", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="requested | received | accepted | in-progress | review | completed | suspended | rejected | failed", formalDefinition="The status for the event." ) + protected Enumeration status; + + /** + * Additional information about the event that occurred - e.g. if the status remained unchanged. + */ + @Child(name="description", type={CodeableConcept.class}, order=2, min=0, max=1) + @Description(shortDefinition="More information about the event and its context", formalDefinition="Additional information about the event that occurred - e.g. if the status remained unchanged." ) + protected CodeableConcept description; + + /** + * The date/time at which the event occurred. + */ + @Child(name="dateTime", type={DateTimeType.class}, order=3, min=1, max=1) + @Description(shortDefinition="The date at which the event happened", formalDefinition="The date/time at which the event occurred." ) + protected DateTimeType dateTime; + + /** + * The person who was responsible for performing or recording the action. + */ + @Child(name="actor", type={Practitioner.class, Device.class}, order=4, min=0, max=1) + @Description(shortDefinition="Who recorded or did this", formalDefinition="The person who was responsible for performing or recording the action." ) + protected Reference actor; + + /** + * The actual object that is the target of the reference (The person who was responsible for performing or recording the action.) + */ + protected Resource actorTarget; + + private static final long serialVersionUID = -370793723L; + + public DiagnosticOrderEventComponent() { + super(); + } + + public DiagnosticOrderEventComponent(Enumeration status, DateTimeType dateTime) { + super(); + this.status = status; + this.dateTime = dateTime; + } + + /** + * @return {@link #status} (The status for the event.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrderEventComponent.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new DiagnosticOrderStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status for the event.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public DiagnosticOrderEventComponent setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status for the event. + */ + public DiagnosticOrderStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status for the event. + */ + public DiagnosticOrderEventComponent setStatus(DiagnosticOrderStatus value) { + if (this.status == null) + this.status = new Enumeration(new DiagnosticOrderStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #description} (Additional information about the event that occurred - e.g. if the status remained unchanged.) + */ + public CodeableConcept getDescription() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrderEventComponent.description"); + else if (Configuration.doAutoCreate()) + this.description = new CodeableConcept(); // cc + return this.description; + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Additional information about the event that occurred - e.g. if the status remained unchanged.) + */ + public DiagnosticOrderEventComponent setDescription(CodeableConcept value) { + this.description = value; + return this; + } + + /** + * @return {@link #dateTime} (The date/time at which the event occurred.). This is the underlying object with id, value and extensions. The accessor "getDateTime" gives direct access to the value + */ + public DateTimeType getDateTimeElement() { + if (this.dateTime == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrderEventComponent.dateTime"); + else if (Configuration.doAutoCreate()) + this.dateTime = new DateTimeType(); // bb + return this.dateTime; + } + + public boolean hasDateTimeElement() { + return this.dateTime != null && !this.dateTime.isEmpty(); + } + + public boolean hasDateTime() { + return this.dateTime != null && !this.dateTime.isEmpty(); + } + + /** + * @param value {@link #dateTime} (The date/time at which the event occurred.). This is the underlying object with id, value and extensions. The accessor "getDateTime" gives direct access to the value + */ + public DiagnosticOrderEventComponent setDateTimeElement(DateTimeType value) { + this.dateTime = value; + return this; + } + + /** + * @return The date/time at which the event occurred. + */ + public Date getDateTime() { + return this.dateTime == null ? null : this.dateTime.getValue(); + } + + /** + * @param value The date/time at which the event occurred. + */ + public DiagnosticOrderEventComponent setDateTime(Date value) { + if (this.dateTime == null) + this.dateTime = new DateTimeType(); + this.dateTime.setValue(value); + return this; + } + + /** + * @return {@link #actor} (The person who was responsible for performing or recording the action.) + */ + public Reference getActor() { + if (this.actor == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrderEventComponent.actor"); + else if (Configuration.doAutoCreate()) + this.actor = new Reference(); // cc + return this.actor; + } + + public boolean hasActor() { + return this.actor != null && !this.actor.isEmpty(); + } + + /** + * @param value {@link #actor} (The person who was responsible for performing or recording the action.) + */ + public DiagnosticOrderEventComponent setActor(Reference value) { + this.actor = value; + return this; + } + + /** + * @return {@link #actor} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person who was responsible for performing or recording the action.) + */ + public Resource getActorTarget() { + return this.actorTarget; + } + + /** + * @param value {@link #actor} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person who was responsible for performing or recording the action.) + */ + public DiagnosticOrderEventComponent setActorTarget(Resource value) { + this.actorTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("status", "code", "The status for the event.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("description", "CodeableConcept", "Additional information about the event that occurred - e.g. if the status remained unchanged.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("dateTime", "dateTime", "The date/time at which the event occurred.", 0, java.lang.Integer.MAX_VALUE, dateTime)); + childrenList.add(new Property("actor", "Reference(Practitioner|Device)", "The person who was responsible for performing or recording the action.", 0, java.lang.Integer.MAX_VALUE, actor)); + } + + public DiagnosticOrderEventComponent copy() { + DiagnosticOrderEventComponent dst = new DiagnosticOrderEventComponent(); + copyValues(dst); + dst.status = status == null ? null : status.copy(); + dst.description = description == null ? null : description.copy(); + dst.dateTime = dateTime == null ? null : dateTime.copy(); + dst.actor = actor == null ? null : actor.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DiagnosticOrderEventComponent)) + return false; + DiagnosticOrderEventComponent o = (DiagnosticOrderEventComponent) other; + return compareDeep(status, o.status, true) && compareDeep(description, o.description, true) && compareDeep(dateTime, o.dateTime, true) + && compareDeep(actor, o.actor, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DiagnosticOrderEventComponent)) + return false; + DiagnosticOrderEventComponent o = (DiagnosticOrderEventComponent) other; + return compareValues(status, o.status, true) && compareValues(dateTime, o.dateTime, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (status == null || status.isEmpty()) && (description == null || description.isEmpty()) + && (dateTime == null || dateTime.isEmpty()) && (actor == null || actor.isEmpty()); + } + + } + + @Block() + public static class DiagnosticOrderItemComponent extends BackboneElement { + /** + * A code that identifies a particular diagnostic investigation, or panel of investigations, that have been requested. + */ + @Child(name="code", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="Code to indicate the item (test or panel) being ordered", formalDefinition="A code that identifies a particular diagnostic investigation, or panel of investigations, that have been requested." ) + protected CodeableConcept code; + + /** + * If the item is related to a specific specimen. + */ + @Child(name="specimen", type={Specimen.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="If this item relates to specific specimens", formalDefinition="If the item is related to a specific specimen." ) + protected List specimen; + /** + * The actual objects that are the target of the reference (If the item is related to a specific specimen.) + */ + protected List specimenTarget; + + + /** + * Anatomical location where the request test should be performed. + */ + @Child(name="bodySite", type={CodeableConcept.class, BodySite.class}, order=3, min=0, max=1) + @Description(shortDefinition="Location of requested test (if applicable)", formalDefinition="Anatomical location where the request test should be performed." ) + protected Type bodySite; + + /** + * The status of this individual item within the order. + */ + @Child(name="status", type={CodeType.class}, order=4, min=0, max=1) + @Description(shortDefinition="requested | received | accepted | in-progress | review | completed | suspended | rejected | failed", formalDefinition="The status of this individual item within the order." ) + protected Enumeration status; + + /** + * A summary of the events of interest that have occurred as this item of the request is processed. + */ + @Child(name="event", type={DiagnosticOrderEventComponent.class}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Events specific to this item", formalDefinition="A summary of the events of interest that have occurred as this item of the request is processed." ) + protected List event; + + private static final long serialVersionUID = 1960490281L; + + public DiagnosticOrderItemComponent() { + super(); + } + + public DiagnosticOrderItemComponent(CodeableConcept code) { + super(); + this.code = code; + } + + /** + * @return {@link #code} (A code that identifies a particular diagnostic investigation, or panel of investigations, that have been requested.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrderItemComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (A code that identifies a particular diagnostic investigation, or panel of investigations, that have been requested.) + */ + public DiagnosticOrderItemComponent setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #specimen} (If the item is related to a specific specimen.) + */ + public List getSpecimen() { + if (this.specimen == null) + this.specimen = new ArrayList(); + return this.specimen; + } + + public boolean hasSpecimen() { + if (this.specimen == null) + return false; + for (Reference item : this.specimen) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #specimen} (If the item is related to a specific specimen.) + */ + // syntactic sugar + public Reference addSpecimen() { //3 + Reference t = new Reference(); + if (this.specimen == null) + this.specimen = new ArrayList(); + this.specimen.add(t); + return t; + } + + /** + * @return {@link #specimen} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. If the item is related to a specific specimen.) + */ + public List getSpecimenTarget() { + if (this.specimenTarget == null) + this.specimenTarget = new ArrayList(); + return this.specimenTarget; + } + + // syntactic sugar + /** + * @return {@link #specimen} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. If the item is related to a specific specimen.) + */ + public Specimen addSpecimenTarget() { + Specimen r = new Specimen(); + if (this.specimenTarget == null) + this.specimenTarget = new ArrayList(); + this.specimenTarget.add(r); + return r; + } + + /** + * @return {@link #bodySite} (Anatomical location where the request test should be performed.) + */ + public Type getBodySite() { + return this.bodySite; + } + + /** + * @return {@link #bodySite} (Anatomical location where the request test should be performed.) + */ + public CodeableConcept getBodySiteCodeableConcept() throws Exception { + if (!(this.bodySite instanceof CodeableConcept)) + throw new Exception("Type mismatch: the type CodeableConcept was expected, but "+this.bodySite.getClass().getName()+" was encountered"); + return (CodeableConcept) this.bodySite; + } + + /** + * @return {@link #bodySite} (Anatomical location where the request test should be performed.) + */ + public Reference getBodySiteReference() throws Exception { + if (!(this.bodySite instanceof Reference)) + throw new Exception("Type mismatch: the type Reference was expected, but "+this.bodySite.getClass().getName()+" was encountered"); + return (Reference) this.bodySite; + } + + public boolean hasBodySite() { + return this.bodySite != null && !this.bodySite.isEmpty(); + } + + /** + * @param value {@link #bodySite} (Anatomical location where the request test should be performed.) + */ + public DiagnosticOrderItemComponent setBodySite(Type value) { + this.bodySite = value; + return this; + } + + /** + * @return {@link #status} (The status of this individual item within the order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrderItemComponent.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new DiagnosticOrderStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of this individual item within the order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public DiagnosticOrderItemComponent setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of this individual item within the order. + */ + public DiagnosticOrderStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of this individual item within the order. + */ + public DiagnosticOrderItemComponent setStatus(DiagnosticOrderStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new DiagnosticOrderStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #event} (A summary of the events of interest that have occurred as this item of the request is processed.) + */ + public List getEvent() { + if (this.event == null) + this.event = new ArrayList(); + return this.event; + } + + public boolean hasEvent() { + if (this.event == null) + return false; + for (DiagnosticOrderEventComponent item : this.event) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #event} (A summary of the events of interest that have occurred as this item of the request is processed.) + */ + // syntactic sugar + public DiagnosticOrderEventComponent addEvent() { //3 + DiagnosticOrderEventComponent t = new DiagnosticOrderEventComponent(); + if (this.event == null) + this.event = new ArrayList(); + this.event.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "CodeableConcept", "A code that identifies a particular diagnostic investigation, or panel of investigations, that have been requested.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("specimen", "Reference(Specimen)", "If the item is related to a specific specimen.", 0, java.lang.Integer.MAX_VALUE, specimen)); + childrenList.add(new Property("bodySite[x]", "CodeableConcept|Reference(BodySite)", "Anatomical location where the request test should be performed.", 0, java.lang.Integer.MAX_VALUE, bodySite)); + childrenList.add(new Property("status", "code", "The status of this individual item within the order.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("event", "@DiagnosticOrder.event", "A summary of the events of interest that have occurred as this item of the request is processed.", 0, java.lang.Integer.MAX_VALUE, event)); + } + + public DiagnosticOrderItemComponent copy() { + DiagnosticOrderItemComponent dst = new DiagnosticOrderItemComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + if (specimen != null) { + dst.specimen = new ArrayList(); + for (Reference i : specimen) + dst.specimen.add(i.copy()); + }; + dst.bodySite = bodySite == null ? null : bodySite.copy(); + dst.status = status == null ? null : status.copy(); + if (event != null) { + dst.event = new ArrayList(); + for (DiagnosticOrderEventComponent i : event) + dst.event.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DiagnosticOrderItemComponent)) + return false; + DiagnosticOrderItemComponent o = (DiagnosticOrderItemComponent) other; + return compareDeep(code, o.code, true) && compareDeep(specimen, o.specimen, true) && compareDeep(bodySite, o.bodySite, true) + && compareDeep(status, o.status, true) && compareDeep(event, o.event, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DiagnosticOrderItemComponent)) + return false; + DiagnosticOrderItemComponent o = (DiagnosticOrderItemComponent) other; + return compareValues(status, o.status, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (specimen == null || specimen.isEmpty()) + && (bodySite == null || bodySite.isEmpty()) && (status == null || status.isEmpty()) && (event == null || event.isEmpty()) + ; + } + + } + + /** + * Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans). + */ + @Child(name="subject", type={Patient.class, Group.class, Location.class, Device.class}, order=-1, min=1, max=1) + @Description(shortDefinition="Who and/or what test is about", formalDefinition="Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans)." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).) + */ + protected Resource subjectTarget; + + /** + * The practitioner that holds legal responsibility for ordering the investigation. + */ + @Child(name="orderer", type={Practitioner.class}, order=0, min=0, max=1) + @Description(shortDefinition="Who ordered the test", formalDefinition="The practitioner that holds legal responsibility for ordering the investigation." ) + protected Reference orderer; + + /** + * The actual object that is the target of the reference (The practitioner that holds legal responsibility for ordering the investigation.) + */ + protected Practitioner ordererTarget; + + /** + * Identifiers assigned to this order by the order or by the receiver. + */ + @Child(name="identifier", type={Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Identifiers assigned to this order", formalDefinition="Identifiers assigned to this order by the order or by the receiver." ) + protected List identifier; + + /** + * An encounter that provides additional information about the healthcare context in which this request is made. + */ + @Child(name="encounter", type={Encounter.class}, order=2, min=0, max=1) + @Description(shortDefinition="The encounter that this diagnostic order is associated with", formalDefinition="An encounter that provides additional information about the healthcare context in which this request is made." ) + protected Reference encounter; + + /** + * The actual object that is the target of the reference (An encounter that provides additional information about the healthcare context in which this request is made.) + */ + protected Encounter encounterTarget; + + /** + * An explanation or justification for why this diagnostic investigation is being requested. + */ + @Child(name="clinicalNotes", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Explanation/Justification for test", formalDefinition="An explanation or justification for why this diagnostic investigation is being requested." ) + protected StringType clinicalNotes; + + /** + * Additional clinical information about the patient or specimen that may influence test interpretations. + */ + @Child(name="supportingInformation", type={Observation.class, Condition.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Supporting observations or conditions for this request", formalDefinition="Additional clinical information about the patient or specimen that may influence test interpretations." ) + protected List supportingInformation; + /** + * The actual objects that are the target of the reference (Additional clinical information about the patient or specimen that may influence test interpretations.) + */ + protected List supportingInformationTarget; + + + /** + * One or more specimens that the diagnostic investigation is about. + */ + @Child(name="specimen", type={Specimen.class}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="If the whole order relates to specific specimens", formalDefinition="One or more specimens that the diagnostic investigation is about." ) + protected List specimen; + /** + * The actual objects that are the target of the reference (One or more specimens that the diagnostic investigation is about.) + */ + protected List specimenTarget; + + + /** + * The status of the order. + */ + @Child(name="status", type={CodeType.class}, order=6, min=0, max=1) + @Description(shortDefinition="requested | received | accepted | in-progress | review | completed | suspended | rejected | failed", formalDefinition="The status of the order." ) + protected Enumeration status; + + /** + * The clinical priority associated with this order. + */ + @Child(name="priority", type={CodeType.class}, order=7, min=0, max=1) + @Description(shortDefinition="routine | urgent | stat | asap", formalDefinition="The clinical priority associated with this order." ) + protected Enumeration priority; + + /** + * A summary of the events of interest that have occurred as the request is processed. E.g. when the order was made, various processing steps (specimens received), when it was completed. + */ + @Child(name="event", type={}, order=8, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="A list of events of interest in the lifecycle", formalDefinition="A summary of the events of interest that have occurred as the request is processed. E.g. when the order was made, various processing steps (specimens received), when it was completed." ) + protected List event; + + /** + * The specific diagnostic investigations that are requested as part of this request. Sometimes, there can only be one item per request, but in most contexts, more than one investigation can be requested. + */ + @Child(name="item", type={}, order=9, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="The items the orderer requested", formalDefinition="The specific diagnostic investigations that are requested as part of this request. Sometimes, there can only be one item per request, but in most contexts, more than one investigation can be requested." ) + protected List item; + + private static final long serialVersionUID = 1028294242L; + + public DiagnosticOrder() { + super(); + } + + public DiagnosticOrder(Reference subject) { + super(); + this.subject = subject; + } + + /** + * @return {@link #subject} (Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrder.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).) + */ + public DiagnosticOrder setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).) + */ + public Resource getSubjectTarget() { + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).) + */ + public DiagnosticOrder setSubjectTarget(Resource value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #orderer} (The practitioner that holds legal responsibility for ordering the investigation.) + */ + public Reference getOrderer() { + if (this.orderer == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrder.orderer"); + else if (Configuration.doAutoCreate()) + this.orderer = new Reference(); // cc + return this.orderer; + } + + public boolean hasOrderer() { + return this.orderer != null && !this.orderer.isEmpty(); + } + + /** + * @param value {@link #orderer} (The practitioner that holds legal responsibility for ordering the investigation.) + */ + public DiagnosticOrder setOrderer(Reference value) { + this.orderer = value; + return this; + } + + /** + * @return {@link #orderer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner that holds legal responsibility for ordering the investigation.) + */ + public Practitioner getOrdererTarget() { + if (this.ordererTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrder.orderer"); + else if (Configuration.doAutoCreate()) + this.ordererTarget = new Practitioner(); // aa + return this.ordererTarget; + } + + /** + * @param value {@link #orderer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner that holds legal responsibility for ordering the investigation.) + */ + public DiagnosticOrder setOrdererTarget(Practitioner value) { + this.ordererTarget = value; + return this; + } + + /** + * @return {@link #identifier} (Identifiers assigned to this order by the order or by the receiver.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Identifiers assigned to this order by the order or by the receiver.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #encounter} (An encounter that provides additional information about the healthcare context in which this request is made.) + */ + public Reference getEncounter() { + if (this.encounter == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrder.encounter"); + else if (Configuration.doAutoCreate()) + this.encounter = new Reference(); // cc + return this.encounter; + } + + public boolean hasEncounter() { + return this.encounter != null && !this.encounter.isEmpty(); + } + + /** + * @param value {@link #encounter} (An encounter that provides additional information about the healthcare context in which this request is made.) + */ + public DiagnosticOrder setEncounter(Reference value) { + this.encounter = value; + return this; + } + + /** + * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (An encounter that provides additional information about the healthcare context in which this request is made.) + */ + public Encounter getEncounterTarget() { + if (this.encounterTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrder.encounter"); + else if (Configuration.doAutoCreate()) + this.encounterTarget = new Encounter(); // aa + return this.encounterTarget; + } + + /** + * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (An encounter that provides additional information about the healthcare context in which this request is made.) + */ + public DiagnosticOrder setEncounterTarget(Encounter value) { + this.encounterTarget = value; + return this; + } + + /** + * @return {@link #clinicalNotes} (An explanation or justification for why this diagnostic investigation is being requested.). This is the underlying object with id, value and extensions. The accessor "getClinicalNotes" gives direct access to the value + */ + public StringType getClinicalNotesElement() { + if (this.clinicalNotes == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrder.clinicalNotes"); + else if (Configuration.doAutoCreate()) + this.clinicalNotes = new StringType(); // bb + return this.clinicalNotes; + } + + public boolean hasClinicalNotesElement() { + return this.clinicalNotes != null && !this.clinicalNotes.isEmpty(); + } + + public boolean hasClinicalNotes() { + return this.clinicalNotes != null && !this.clinicalNotes.isEmpty(); + } + + /** + * @param value {@link #clinicalNotes} (An explanation or justification for why this diagnostic investigation is being requested.). This is the underlying object with id, value and extensions. The accessor "getClinicalNotes" gives direct access to the value + */ + public DiagnosticOrder setClinicalNotesElement(StringType value) { + this.clinicalNotes = value; + return this; + } + + /** + * @return An explanation or justification for why this diagnostic investigation is being requested. + */ + public String getClinicalNotes() { + return this.clinicalNotes == null ? null : this.clinicalNotes.getValue(); + } + + /** + * @param value An explanation or justification for why this diagnostic investigation is being requested. + */ + public DiagnosticOrder setClinicalNotes(String value) { + if (Utilities.noString(value)) + this.clinicalNotes = null; + else { + if (this.clinicalNotes == null) + this.clinicalNotes = new StringType(); + this.clinicalNotes.setValue(value); + } + return this; + } + + /** + * @return {@link #supportingInformation} (Additional clinical information about the patient or specimen that may influence test interpretations.) + */ + public List getSupportingInformation() { + if (this.supportingInformation == null) + this.supportingInformation = new ArrayList(); + return this.supportingInformation; + } + + public boolean hasSupportingInformation() { + if (this.supportingInformation == null) + return false; + for (Reference item : this.supportingInformation) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #supportingInformation} (Additional clinical information about the patient or specimen that may influence test interpretations.) + */ + // syntactic sugar + public Reference addSupportingInformation() { //3 + Reference t = new Reference(); + if (this.supportingInformation == null) + this.supportingInformation = new ArrayList(); + this.supportingInformation.add(t); + return t; + } + + /** + * @return {@link #supportingInformation} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Additional clinical information about the patient or specimen that may influence test interpretations.) + */ + public List getSupportingInformationTarget() { + if (this.supportingInformationTarget == null) + this.supportingInformationTarget = new ArrayList(); + return this.supportingInformationTarget; + } + + /** + * @return {@link #specimen} (One or more specimens that the diagnostic investigation is about.) + */ + public List getSpecimen() { + if (this.specimen == null) + this.specimen = new ArrayList(); + return this.specimen; + } + + public boolean hasSpecimen() { + if (this.specimen == null) + return false; + for (Reference item : this.specimen) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #specimen} (One or more specimens that the diagnostic investigation is about.) + */ + // syntactic sugar + public Reference addSpecimen() { //3 + Reference t = new Reference(); + if (this.specimen == null) + this.specimen = new ArrayList(); + this.specimen.add(t); + return t; + } + + /** + * @return {@link #specimen} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. One or more specimens that the diagnostic investigation is about.) + */ + public List getSpecimenTarget() { + if (this.specimenTarget == null) + this.specimenTarget = new ArrayList(); + return this.specimenTarget; + } + + // syntactic sugar + /** + * @return {@link #specimen} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. One or more specimens that the diagnostic investigation is about.) + */ + public Specimen addSpecimenTarget() { + Specimen r = new Specimen(); + if (this.specimenTarget == null) + this.specimenTarget = new ArrayList(); + this.specimenTarget.add(r); + return r; + } + + /** + * @return {@link #status} (The status of the order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrder.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new DiagnosticOrderStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of the order.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public DiagnosticOrder setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of the order. + */ + public DiagnosticOrderStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of the order. + */ + public DiagnosticOrder setStatus(DiagnosticOrderStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new DiagnosticOrderStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #priority} (The clinical priority associated with this order.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value + */ + public Enumeration getPriorityElement() { + if (this.priority == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticOrder.priority"); + else if (Configuration.doAutoCreate()) + this.priority = new Enumeration(new DiagnosticOrderPriorityEnumFactory()); // bb + return this.priority; + } + + public boolean hasPriorityElement() { + return this.priority != null && !this.priority.isEmpty(); + } + + public boolean hasPriority() { + return this.priority != null && !this.priority.isEmpty(); + } + + /** + * @param value {@link #priority} (The clinical priority associated with this order.). This is the underlying object with id, value and extensions. The accessor "getPriority" gives direct access to the value + */ + public DiagnosticOrder setPriorityElement(Enumeration value) { + this.priority = value; + return this; + } + + /** + * @return The clinical priority associated with this order. + */ + public DiagnosticOrderPriority getPriority() { + return this.priority == null ? null : this.priority.getValue(); + } + + /** + * @param value The clinical priority associated with this order. + */ + public DiagnosticOrder setPriority(DiagnosticOrderPriority value) { + if (value == null) + this.priority = null; + else { + if (this.priority == null) + this.priority = new Enumeration(new DiagnosticOrderPriorityEnumFactory()); + this.priority.setValue(value); + } + return this; + } + + /** + * @return {@link #event} (A summary of the events of interest that have occurred as the request is processed. E.g. when the order was made, various processing steps (specimens received), when it was completed.) + */ + public List getEvent() { + if (this.event == null) + this.event = new ArrayList(); + return this.event; + } + + public boolean hasEvent() { + if (this.event == null) + return false; + for (DiagnosticOrderEventComponent item : this.event) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #event} (A summary of the events of interest that have occurred as the request is processed. E.g. when the order was made, various processing steps (specimens received), when it was completed.) + */ + // syntactic sugar + public DiagnosticOrderEventComponent addEvent() { //3 + DiagnosticOrderEventComponent t = new DiagnosticOrderEventComponent(); + if (this.event == null) + this.event = new ArrayList(); + this.event.add(t); + return t; + } + + /** + * @return {@link #item} (The specific diagnostic investigations that are requested as part of this request. Sometimes, there can only be one item per request, but in most contexts, more than one investigation can be requested.) + */ + public List getItem() { + if (this.item == null) + this.item = new ArrayList(); + return this.item; + } + + public boolean hasItem() { + if (this.item == null) + return false; + for (DiagnosticOrderItemComponent item : this.item) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #item} (The specific diagnostic investigations that are requested as part of this request. Sometimes, there can only be one item per request, but in most contexts, more than one investigation can be requested.) + */ + // syntactic sugar + public DiagnosticOrderItemComponent addItem() { //3 + DiagnosticOrderItemComponent t = new DiagnosticOrderItemComponent(); + if (this.item == null) + this.item = new ArrayList(); + this.item.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("subject", "Reference(Patient|Group|Location|Device)", "Who or what the investigation is to be performed on. This is usually a human patient, but diagnostic tests can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans).", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("orderer", "Reference(Practitioner)", "The practitioner that holds legal responsibility for ordering the investigation.", 0, java.lang.Integer.MAX_VALUE, orderer)); + childrenList.add(new Property("identifier", "Identifier", "Identifiers assigned to this order by the order or by the receiver.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("encounter", "Reference(Encounter)", "An encounter that provides additional information about the healthcare context in which this request is made.", 0, java.lang.Integer.MAX_VALUE, encounter)); + childrenList.add(new Property("clinicalNotes", "string", "An explanation or justification for why this diagnostic investigation is being requested.", 0, java.lang.Integer.MAX_VALUE, clinicalNotes)); + childrenList.add(new Property("supportingInformation", "Reference(Observation|Condition)", "Additional clinical information about the patient or specimen that may influence test interpretations.", 0, java.lang.Integer.MAX_VALUE, supportingInformation)); + childrenList.add(new Property("specimen", "Reference(Specimen)", "One or more specimens that the diagnostic investigation is about.", 0, java.lang.Integer.MAX_VALUE, specimen)); + childrenList.add(new Property("status", "code", "The status of the order.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("priority", "code", "The clinical priority associated with this order.", 0, java.lang.Integer.MAX_VALUE, priority)); + childrenList.add(new Property("event", "", "A summary of the events of interest that have occurred as the request is processed. E.g. when the order was made, various processing steps (specimens received), when it was completed.", 0, java.lang.Integer.MAX_VALUE, event)); + childrenList.add(new Property("item", "", "The specific diagnostic investigations that are requested as part of this request. Sometimes, there can only be one item per request, but in most contexts, more than one investigation can be requested.", 0, java.lang.Integer.MAX_VALUE, item)); + } + + public DiagnosticOrder copy() { + DiagnosticOrder dst = new DiagnosticOrder(); + copyValues(dst); + dst.subject = subject == null ? null : subject.copy(); + dst.orderer = orderer == null ? null : orderer.copy(); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.encounter = encounter == null ? null : encounter.copy(); + dst.clinicalNotes = clinicalNotes == null ? null : clinicalNotes.copy(); + if (supportingInformation != null) { + dst.supportingInformation = new ArrayList(); + for (Reference i : supportingInformation) + dst.supportingInformation.add(i.copy()); + }; + if (specimen != null) { + dst.specimen = new ArrayList(); + for (Reference i : specimen) + dst.specimen.add(i.copy()); + }; + dst.status = status == null ? null : status.copy(); + dst.priority = priority == null ? null : priority.copy(); + if (event != null) { + dst.event = new ArrayList(); + for (DiagnosticOrderEventComponent i : event) + dst.event.add(i.copy()); + }; + if (item != null) { + dst.item = new ArrayList(); + for (DiagnosticOrderItemComponent i : item) + dst.item.add(i.copy()); + }; + return dst; + } + + protected DiagnosticOrder typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DiagnosticOrder)) + return false; + DiagnosticOrder o = (DiagnosticOrder) other; + return compareDeep(subject, o.subject, true) && compareDeep(orderer, o.orderer, true) && compareDeep(identifier, o.identifier, true) + && compareDeep(encounter, o.encounter, true) && compareDeep(clinicalNotes, o.clinicalNotes, true) + && compareDeep(supportingInformation, o.supportingInformation, true) && compareDeep(specimen, o.specimen, true) + && compareDeep(status, o.status, true) && compareDeep(priority, o.priority, true) && compareDeep(event, o.event, true) + && compareDeep(item, o.item, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DiagnosticOrder)) + return false; + DiagnosticOrder o = (DiagnosticOrder) other; + return compareValues(clinicalNotes, o.clinicalNotes, true) && compareValues(status, o.status, true) + && compareValues(priority, o.priority, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (subject == null || subject.isEmpty()) && (orderer == null || orderer.isEmpty()) + && (identifier == null || identifier.isEmpty()) && (encounter == null || encounter.isEmpty()) + && (clinicalNotes == null || clinicalNotes.isEmpty()) && (supportingInformation == null || supportingInformation.isEmpty()) + && (specimen == null || specimen.isEmpty()) && (status == null || status.isEmpty()) && (priority == null || priority.isEmpty()) + && (event == null || event.isEmpty()) && (item == null || item.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.DiagnosticOrder; + } + + @SearchParamDefinition(name="orderer", path="DiagnosticOrder.orderer", description="Who ordered the test", type="reference" ) + public static final String SP_ORDERER = "orderer"; + @SearchParamDefinition(name="status", path="DiagnosticOrder.status", description="requested | received | accepted | in-progress | review | completed | suspended | rejected | failed", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="subject", path="DiagnosticOrder.subject", description="Who and/or what test is about", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="item-status", path="DiagnosticOrder.item.status", description="requested | received | accepted | in-progress | review | completed | suspended | rejected | failed", type="token" ) + public static final String SP_ITEMSTATUS = "item-status"; + @SearchParamDefinition(name="event-status", path="DiagnosticOrder.event.status", description="requested | received | accepted | in-progress | review | completed | suspended | rejected | failed", type="token" ) + public static final String SP_EVENTSTATUS = "event-status"; + @SearchParamDefinition(name="actor", path="DiagnosticOrder.event.actor|DiagnosticOrder.item.event.actor", description="Who recorded or did this", type="reference" ) + public static final String SP_ACTOR = "actor"; + @SearchParamDefinition(name="code", path="DiagnosticOrder.item.code", description="Code to indicate the item (test or panel) being ordered", type="token" ) + public static final String SP_CODE = "code"; + @SearchParamDefinition(name="encounter", path="DiagnosticOrder.encounter", description="The encounter that this diagnostic order is associated with", type="reference" ) + public static final String SP_ENCOUNTER = "encounter"; + @SearchParamDefinition(name="item-past-status", path="DiagnosticOrder.item.event.status", description="requested | received | accepted | in-progress | review | completed | suspended | rejected | failed", type="token" ) + public static final String SP_ITEMPASTSTATUS = "item-past-status"; + @SearchParamDefinition(name="patient", path="DiagnosticOrder.subject", description="Who and/or what test is about", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="bodysite", path="DiagnosticOrder.item.bodySite[x]", description="Location of requested test (if applicable)", type="token" ) + public static final String SP_BODYSITE = "bodysite"; + @SearchParamDefinition(name="item-date", path="DiagnosticOrder.item.event.dateTime", description="The date at which the event happened", type="date" ) + public static final String SP_ITEMDATE = "item-date"; + @SearchParamDefinition(name="specimen", path="DiagnosticOrder.specimen|DiagnosticOrder.item.specimen", description="If the whole order relates to specific specimens", type="reference" ) + public static final String SP_SPECIMEN = "specimen"; + @SearchParamDefinition(name="event-status-date", path="", description="A combination of past-status and date", type="composite" ) + public static final String SP_EVENTSTATUSDATE = "event-status-date"; + @SearchParamDefinition(name="event-date", path="DiagnosticOrder.event.dateTime", description="The date at which the event happened", type="date" ) + public static final String SP_EVENTDATE = "event-date"; + @SearchParamDefinition(name="identifier", path="DiagnosticOrder.identifier", description="Identifiers assigned to this order", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + @SearchParamDefinition(name="item-status-date", path="", description="A combination of item-past-status and item-date", type="composite" ) + public static final String SP_ITEMSTATUSDATE = "item-status-date"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4c944b1c08268341d68534029be67e513e9e0a30 GIT binary patch literal 1206 zcmb_c*>2NN5Ir|d;v}T4S-P?nYPvwFX;})iLPU-W5s4Ey5j^w-*D;A(*RE`*ydojK zg=auQ2%&xeABC7PRH<5cs8q>1Gv|8d&iLH9{`u?sK7hMeE8rq7y((df z$u)-S4ATq>!wrTRhFJ-75^f0?O7pE7+ufSAs{~<3>3S>5o30xwt{=sgZ#&9P&~`kf z>{=Z^h+@|^o!uaek1aG~EAB-Csf~(2Zq4>w-;JLL49v~H6i92di@QKoVXjbB`ip|U4)7| zMGQkOVhPJd(&(PRB&VpJ<#$vgX!h*xy6bptJq&}ei2EG&fMJE33B}3DzRbC#_jikYfp_^vil&9!24bkNi@;HwX zd&uD|&XGM&WDo=70Uy3W?EffyLFzL<17DF&*FPftBB5ELnLd?>X8SZpRO-__(OjPv zh{}he&oDm}US$3!{u8y9#|4ZbgKS&-zwuRTQ$+oeJh-{2^ zcuzJ(`9L=LsBMgpe-rX638Sd}0}Nj41Bo$487ZnhK{k!aBp)PKii9L4=jd-UiN&WA FzX4qfCK~_% literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport$DiagnosticReportImageComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport$DiagnosticReportImageComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..59663366d5b9d5611f4038c87a6fd7e66c4ed73f GIT binary patch literal 5538 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport$DiagnosticReportStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport$DiagnosticReportStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..04210e9400161dc551af9f5ccd1a7006d3801911 GIT binary patch literal 2342 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport.java similarity index 86% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport.java index afcdb2ab716..7a78e8d324b 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DiagnosticReport.java @@ -1,1272 +1,1355 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * The findings and interpretation of diagnostic tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretation, and formatted representation of diagnostic reports. - */ -@ResourceDef(name="DiagnosticReport", profile="http://hl7.org/fhir/Profile/DiagnosticReport") -public class DiagnosticReport extends DomainResource { - - public enum DiagnosticReportStatus implements FhirEnum { - /** - * The existence of the report is registered, but there is nothing yet available. - */ - REGISTERED, - /** - * This is a partial (e.g. initial, interim or preliminary) report: data in the report may be incomplete or unverified. - */ - PARTIAL, - /** - * The report is complete and verified by an authorized person. - */ - FINAL, - /** - * The report has been modified subsequent to being Final, and is complete and verified by an authorized person. - */ - CORRECTED, - /** - * The report has been modified subsequent to being Final, and is complete and verified by an authorized person, and data has been changed. - */ - AMENDED, - /** - * The report has been modified subsequent to being Final, and is complete and verified by an authorized person. New content has been added, but existing content hasn't changed. - */ - APPENDED, - /** - * The report is unavailable because the measurement was not started or not completed (also sometimes called "aborted"). - */ - CANCELLED, - /** - * The report has been withdrawn following previous Final release. - */ - ENTEREDINERROR, - /** - * added to help the parsers - */ - NULL; - - public static final DiagnosticReportStatusEnumFactory ENUM_FACTORY = new DiagnosticReportStatusEnumFactory(); - - public static DiagnosticReportStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("registered".equals(codeString)) - return REGISTERED; - if ("partial".equals(codeString)) - return PARTIAL; - if ("final".equals(codeString)) - return FINAL; - if ("corrected".equals(codeString)) - return CORRECTED; - if ("amended".equals(codeString)) - return AMENDED; - if ("appended".equals(codeString)) - return APPENDED; - if ("cancelled".equals(codeString)) - return CANCELLED; - if ("entered in error".equals(codeString)) - return ENTEREDINERROR; - throw new IllegalArgumentException("Unknown DiagnosticReportStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case REGISTERED: return "registered"; - case PARTIAL: return "partial"; - case FINAL: return "final"; - case CORRECTED: return "corrected"; - case AMENDED: return "amended"; - case APPENDED: return "appended"; - case CANCELLED: return "cancelled"; - case ENTEREDINERROR: return "entered in error"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case REGISTERED: return ""; - case PARTIAL: return ""; - case FINAL: return ""; - case CORRECTED: return ""; - case AMENDED: return ""; - case APPENDED: return ""; - case CANCELLED: return ""; - case ENTEREDINERROR: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case REGISTERED: return "The existence of the report is registered, but there is nothing yet available."; - case PARTIAL: return "This is a partial (e.g. initial, interim or preliminary) report: data in the report may be incomplete or unverified."; - case FINAL: return "The report is complete and verified by an authorized person."; - case CORRECTED: return "The report has been modified subsequent to being Final, and is complete and verified by an authorized person."; - case AMENDED: return "The report has been modified subsequent to being Final, and is complete and verified by an authorized person, and data has been changed."; - case APPENDED: return "The report has been modified subsequent to being Final, and is complete and verified by an authorized person. New content has been added, but existing content hasn't changed."; - case CANCELLED: return "The report is unavailable because the measurement was not started or not completed (also sometimes called 'aborted')."; - case ENTEREDINERROR: return "The report has been withdrawn following previous Final release."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case REGISTERED: return "registered"; - case PARTIAL: return "partial"; - case FINAL: return "final"; - case CORRECTED: return "corrected"; - case AMENDED: return "amended"; - case APPENDED: return "appended"; - case CANCELLED: return "cancelled"; - case ENTEREDINERROR: return "entered in error"; - default: return "?"; - } - } - } - - public static class DiagnosticReportStatusEnumFactory implements EnumFactory { - public DiagnosticReportStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("registered".equals(codeString)) - return DiagnosticReportStatus.REGISTERED; - if ("partial".equals(codeString)) - return DiagnosticReportStatus.PARTIAL; - if ("final".equals(codeString)) - return DiagnosticReportStatus.FINAL; - if ("corrected".equals(codeString)) - return DiagnosticReportStatus.CORRECTED; - if ("amended".equals(codeString)) - return DiagnosticReportStatus.AMENDED; - if ("appended".equals(codeString)) - return DiagnosticReportStatus.APPENDED; - if ("cancelled".equals(codeString)) - return DiagnosticReportStatus.CANCELLED; - if ("entered in error".equals(codeString)) - return DiagnosticReportStatus.ENTEREDINERROR; - throw new IllegalArgumentException("Unknown DiagnosticReportStatus code '"+codeString+"'"); - } - public String toCode(DiagnosticReportStatus code) throws IllegalArgumentException { - if (code == DiagnosticReportStatus.REGISTERED) - return "registered"; - if (code == DiagnosticReportStatus.PARTIAL) - return "partial"; - if (code == DiagnosticReportStatus.FINAL) - return "final"; - if (code == DiagnosticReportStatus.CORRECTED) - return "corrected"; - if (code == DiagnosticReportStatus.AMENDED) - return "amended"; - if (code == DiagnosticReportStatus.APPENDED) - return "appended"; - if (code == DiagnosticReportStatus.CANCELLED) - return "cancelled"; - if (code == DiagnosticReportStatus.ENTEREDINERROR) - return "entered in error"; - return "?"; - } - } - - @Block() - public static class DiagnosticReportImageComponent extends BackboneElement { - /** - * A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features. - */ - @Child(name="comment", type={StringType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Comment about the image (e.g. explanation)", formalDefinition="A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features." ) - protected StringType comment; - - /** - * Reference to the image source. - */ - @Child(name="link", type={Media.class}, order=2, min=1, max=1) - @Description(shortDefinition="Reference to the image source", formalDefinition="Reference to the image source." ) - protected Reference link; - - /** - * The actual object that is the target of the reference (Reference to the image source.) - */ - protected Media linkTarget; - - private static final long serialVersionUID = 935791940L; - - public DiagnosticReportImageComponent() { - super(); - } - - public DiagnosticReportImageComponent(Reference link) { - super(); - this.link = link; - } - - /** - * @return {@link #comment} (A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value - */ - public StringType getCommentElement() { - if (this.comment == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticReportImageComponent.comment"); - else if (Configuration.doAutoCreate()) - this.comment = new StringType(); - return this.comment; - } - - public boolean hasCommentElement() { - return this.comment != null && !this.comment.isEmpty(); - } - - public boolean hasComment() { - return this.comment != null && !this.comment.isEmpty(); - } - - /** - * @param value {@link #comment} (A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value - */ - public DiagnosticReportImageComponent setCommentElement(StringType value) { - this.comment = value; - return this; - } - - /** - * @return A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features. - */ - public String getComment() { - return this.comment == null ? null : this.comment.getValue(); - } - - /** - * @param value A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features. - */ - public DiagnosticReportImageComponent setComment(String value) { - if (Utilities.noString(value)) - this.comment = null; - else { - if (this.comment == null) - this.comment = new StringType(); - this.comment.setValue(value); - } - return this; - } - - /** - * @return {@link #link} (Reference to the image source.) - */ - public Reference getLink() { - if (this.link == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticReportImageComponent.link"); - else if (Configuration.doAutoCreate()) - this.link = new Reference(); - return this.link; - } - - public boolean hasLink() { - return this.link != null && !this.link.isEmpty(); - } - - /** - * @param value {@link #link} (Reference to the image source.) - */ - public DiagnosticReportImageComponent setLink(Reference value) { - this.link = value; - return this; - } - - /** - * @return {@link #link} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Reference to the image source.) - */ - public Media getLinkTarget() { - if (this.linkTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticReportImageComponent.link"); - else if (Configuration.doAutoCreate()) - this.linkTarget = new Media(); - return this.linkTarget; - } - - /** - * @param value {@link #link} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Reference to the image source.) - */ - public DiagnosticReportImageComponent setLinkTarget(Media value) { - this.linkTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("comment", "string", "A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features.", 0, java.lang.Integer.MAX_VALUE, comment)); - childrenList.add(new Property("link", "Reference(Media)", "Reference to the image source.", 0, java.lang.Integer.MAX_VALUE, link)); - } - - public DiagnosticReportImageComponent copy() { - DiagnosticReportImageComponent dst = new DiagnosticReportImageComponent(); - copyValues(dst); - dst.comment = comment == null ? null : comment.copy(); - dst.link = link == null ? null : link.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (comment == null || comment.isEmpty()) && (link == null || link.isEmpty()) - ; - } - - } - - /** - * A code or name that describes this diagnostic report. - */ - @Child(name="name", type={CodeableConcept.class}, order=-1, min=1, max=1) - @Description(shortDefinition="Name/Code for this diagnostic report", formalDefinition="A code or name that describes this diagnostic report." ) - protected CodeableConcept name; - - /** - * The status of the diagnostic report as a whole. - */ - @Child(name="status", type={CodeType.class}, order=0, min=1, max=1) - @Description(shortDefinition="registered | partial | final | corrected +", formalDefinition="The status of the diagnostic report as a whole." ) - protected Enumeration status; - - /** - * The date and/or time that this version of the report was released from the source diagnostic service. - */ - @Child(name="issued", type={DateTimeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Date this version was released", formalDefinition="The date and/or time that this version of the report was released from the source diagnostic service." ) - protected DateTimeType issued; - - /** - * The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources. - */ - @Child(name="subject", type={Patient.class, Group.class, Device.class, Location.class}, order=2, min=1, max=1) - @Description(shortDefinition="The subject of the report, usually, but not always, the patient", formalDefinition="The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.) - */ - protected Resource subjectTarget; - - /** - * The diagnostic service that is responsible for issuing the report. - */ - @Child(name="performer", type={Practitioner.class, Organization.class}, order=3, min=1, max=1) - @Description(shortDefinition="Responsible Diagnostic Service", formalDefinition="The diagnostic service that is responsible for issuing the report." ) - protected Reference performer; - - /** - * The actual object that is the target of the reference (The diagnostic service that is responsible for issuing the report.) - */ - protected Resource performerTarget; - - /** - * The local ID assigned to the report by the order filler, usually by the Information System of the diagnostic service provider. - */ - @Child(name="identifier", type={Identifier.class}, order=4, min=0, max=1) - @Description(shortDefinition="Id for external references to this report", formalDefinition="The local ID assigned to the report by the order filler, usually by the Information System of the diagnostic service provider." ) - protected Identifier identifier; - - /** - * Details concerning a test requested. - */ - @Child(name="requestDetail", type={DiagnosticOrder.class}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="What was requested", formalDefinition="Details concerning a test requested." ) - protected List requestDetail; - /** - * The actual objects that are the target of the reference (Details concerning a test requested.) - */ - protected List requestDetailTarget; - - - /** - * The section of the diagnostic service that performs the examination e.g. biochemistry, hematology, MRI. - */ - @Child(name="serviceCategory", type={CodeableConcept.class}, order=6, min=0, max=1) - @Description(shortDefinition="Biochemistry, Hematology etc.", formalDefinition="The section of the diagnostic service that performs the examination e.g. biochemistry, hematology, MRI." ) - protected CodeableConcept serviceCategory; - - /** - * The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself. - */ - @Child(name="diagnostic", type={DateTimeType.class, Period.class}, order=7, min=1, max=1) - @Description(shortDefinition="Physiologically Relevant time/time-period for report", formalDefinition="The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself." ) - protected Type diagnostic; - - /** - * Details about the specimens on which this Disagnostic report is based. - */ - @Child(name="specimen", type={Specimen.class}, order=8, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Specimens this report is based on", formalDefinition="Details about the specimens on which this Disagnostic report is based." ) - protected List specimen; - /** - * The actual objects that are the target of the reference (Details about the specimens on which this Disagnostic report is based.) - */ - protected List specimenTarget; - - - /** - * Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels"). - */ - @Child(name="result", type={Observation.class}, order=9, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Observations - simple, or complex nested groups", formalDefinition="Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. 'atomic' results), or they can be grouping observations that include references to other members of the group (e.g. 'panels')." ) - protected List result; - /** - * The actual objects that are the target of the reference (Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels").) - */ - protected List resultTarget; - - - /** - * One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images. - */ - @Child(name="imagingStudy", type={ImagingStudy.class}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Reference to full details of imaging associated with the diagnostic report", formalDefinition="One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images." ) - protected List imagingStudy; - /** - * The actual objects that are the target of the reference (One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.) - */ - protected List imagingStudyTarget; - - - /** - * A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest). - */ - @Child(name="image", type={}, order=11, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Key images associated with this report", formalDefinition="A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest)." ) - protected List image; - - /** - * Concise and clinically contextualized narrative interpretation of the diagnostic report. - */ - @Child(name="conclusion", type={StringType.class}, order=12, min=0, max=1) - @Description(shortDefinition="Clinical Interpretation of test results", formalDefinition="Concise and clinically contextualized narrative interpretation of the diagnostic report." ) - protected StringType conclusion; - - /** - * Codes for the conclusion. - */ - @Child(name="codedDiagnosis", type={CodeableConcept.class}, order=13, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Codes for the conclusion", formalDefinition="Codes for the conclusion." ) - protected List codedDiagnosis; - - /** - * Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent. - */ - @Child(name="presentedForm", type={Attachment.class}, order=14, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Entire Report as issued", formalDefinition="Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent." ) - protected List presentedForm; - - private static final long serialVersionUID = -1414376119L; - - public DiagnosticReport() { - super(); - } - - public DiagnosticReport(CodeableConcept name, Enumeration status, DateTimeType issued, Reference subject, Reference performer, Type diagnostic) { - super(); - this.name = name; - this.status = status; - this.issued = issued; - this.subject = subject; - this.performer = performer; - this.diagnostic = diagnostic; - } - - /** - * @return {@link #name} (A code or name that describes this diagnostic report.) - */ - public CodeableConcept getName() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticReport.name"); - else if (Configuration.doAutoCreate()) - this.name = new CodeableConcept(); - return this.name; - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (A code or name that describes this diagnostic report.) - */ - public DiagnosticReport setName(CodeableConcept value) { - this.name = value; - return this; - } - - /** - * @return {@link #status} (The status of the diagnostic report as a whole.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticReport.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of the diagnostic report as a whole.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public DiagnosticReport setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of the diagnostic report as a whole. - */ - public DiagnosticReportStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of the diagnostic report as a whole. - */ - public DiagnosticReport setStatus(DiagnosticReportStatus value) { - if (this.status == null) - this.status = new Enumeration(DiagnosticReportStatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #issued} (The date and/or time that this version of the report was released from the source diagnostic service.). This is the underlying object with id, value and extensions. The accessor "getIssued" gives direct access to the value - */ - public DateTimeType getIssuedElement() { - if (this.issued == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticReport.issued"); - else if (Configuration.doAutoCreate()) - this.issued = new DateTimeType(); - return this.issued; - } - - public boolean hasIssuedElement() { - return this.issued != null && !this.issued.isEmpty(); - } - - public boolean hasIssued() { - return this.issued != null && !this.issued.isEmpty(); - } - - /** - * @param value {@link #issued} (The date and/or time that this version of the report was released from the source diagnostic service.). This is the underlying object with id, value and extensions. The accessor "getIssued" gives direct access to the value - */ - public DiagnosticReport setIssuedElement(DateTimeType value) { - this.issued = value; - return this; - } - - /** - * @return The date and/or time that this version of the report was released from the source diagnostic service. - */ - public Date getIssued() { - return this.issued == null ? null : this.issued.getValue(); - } - - /** - * @param value The date and/or time that this version of the report was released from the source diagnostic service. - */ - public DiagnosticReport setIssued(Date value) { - if (this.issued == null) - this.issued = new DateTimeType(); - this.issued.setValue(value); - return this; - } - - /** - * @return {@link #subject} (The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticReport.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.) - */ - public DiagnosticReport setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.) - */ - public Resource getSubjectTarget() { - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.) - */ - public DiagnosticReport setSubjectTarget(Resource value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #performer} (The diagnostic service that is responsible for issuing the report.) - */ - public Reference getPerformer() { - if (this.performer == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticReport.performer"); - else if (Configuration.doAutoCreate()) - this.performer = new Reference(); - return this.performer; - } - - public boolean hasPerformer() { - return this.performer != null && !this.performer.isEmpty(); - } - - /** - * @param value {@link #performer} (The diagnostic service that is responsible for issuing the report.) - */ - public DiagnosticReport setPerformer(Reference value) { - this.performer = value; - return this; - } - - /** - * @return {@link #performer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The diagnostic service that is responsible for issuing the report.) - */ - public Resource getPerformerTarget() { - return this.performerTarget; - } - - /** - * @param value {@link #performer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The diagnostic service that is responsible for issuing the report.) - */ - public DiagnosticReport setPerformerTarget(Resource value) { - this.performerTarget = value; - return this; - } - - /** - * @return {@link #identifier} (The local ID assigned to the report by the order filler, usually by the Information System of the diagnostic service provider.) - */ - public Identifier getIdentifier() { - if (this.identifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticReport.identifier"); - else if (Configuration.doAutoCreate()) - this.identifier = new Identifier(); - return this.identifier; - } - - public boolean hasIdentifier() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - /** - * @param value {@link #identifier} (The local ID assigned to the report by the order filler, usually by the Information System of the diagnostic service provider.) - */ - public DiagnosticReport setIdentifier(Identifier value) { - this.identifier = value; - return this; - } - - /** - * @return {@link #requestDetail} (Details concerning a test requested.) - */ - public List getRequestDetail() { - if (this.requestDetail == null) - this.requestDetail = new ArrayList(); - return this.requestDetail; - } - - public boolean hasRequestDetail() { - if (this.requestDetail == null) - return false; - for (Reference item : this.requestDetail) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #requestDetail} (Details concerning a test requested.) - */ - // syntactic sugar - public Reference addRequestDetail() { //3 - Reference t = new Reference(); - if (this.requestDetail == null) - this.requestDetail = new ArrayList(); - this.requestDetail.add(t); - return t; - } - - /** - * @return {@link #requestDetail} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Details concerning a test requested.) - */ - public List getRequestDetailTarget() { - if (this.requestDetailTarget == null) - this.requestDetailTarget = new ArrayList(); - return this.requestDetailTarget; - } - - // syntactic sugar - /** - * @return {@link #requestDetail} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Details concerning a test requested.) - */ - public DiagnosticOrder addRequestDetailTarget() { - DiagnosticOrder r = new DiagnosticOrder(); - if (this.requestDetailTarget == null) - this.requestDetailTarget = new ArrayList(); - this.requestDetailTarget.add(r); - return r; - } - - /** - * @return {@link #serviceCategory} (The section of the diagnostic service that performs the examination e.g. biochemistry, hematology, MRI.) - */ - public CodeableConcept getServiceCategory() { - if (this.serviceCategory == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticReport.serviceCategory"); - else if (Configuration.doAutoCreate()) - this.serviceCategory = new CodeableConcept(); - return this.serviceCategory; - } - - public boolean hasServiceCategory() { - return this.serviceCategory != null && !this.serviceCategory.isEmpty(); - } - - /** - * @param value {@link #serviceCategory} (The section of the diagnostic service that performs the examination e.g. biochemistry, hematology, MRI.) - */ - public DiagnosticReport setServiceCategory(CodeableConcept value) { - this.serviceCategory = value; - return this; - } - - /** - * @return {@link #diagnostic} (The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.) - */ - public Type getDiagnostic() { - return this.diagnostic; - } - - /** - * @return {@link #diagnostic} (The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.) - */ - public DateTimeType getDiagnosticDateTimeType() throws Exception { - if (!(this.diagnostic instanceof DateTimeType)) - throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.diagnostic.getClass().getName()+" was encountered"); - return (DateTimeType) this.diagnostic; - } - - /** - * @return {@link #diagnostic} (The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.) - */ - public Period getDiagnosticPeriod() throws Exception { - if (!(this.diagnostic instanceof Period)) - throw new Exception("Type mismatch: the type Period was expected, but "+this.diagnostic.getClass().getName()+" was encountered"); - return (Period) this.diagnostic; - } - - public boolean hasDiagnostic() { - return this.diagnostic != null && !this.diagnostic.isEmpty(); - } - - /** - * @param value {@link #diagnostic} (The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.) - */ - public DiagnosticReport setDiagnostic(Type value) { - this.diagnostic = value; - return this; - } - - /** - * @return {@link #specimen} (Details about the specimens on which this Disagnostic report is based.) - */ - public List getSpecimen() { - if (this.specimen == null) - this.specimen = new ArrayList(); - return this.specimen; - } - - public boolean hasSpecimen() { - if (this.specimen == null) - return false; - for (Reference item : this.specimen) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #specimen} (Details about the specimens on which this Disagnostic report is based.) - */ - // syntactic sugar - public Reference addSpecimen() { //3 - Reference t = new Reference(); - if (this.specimen == null) - this.specimen = new ArrayList(); - this.specimen.add(t); - return t; - } - - /** - * @return {@link #specimen} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Details about the specimens on which this Disagnostic report is based.) - */ - public List getSpecimenTarget() { - if (this.specimenTarget == null) - this.specimenTarget = new ArrayList(); - return this.specimenTarget; - } - - // syntactic sugar - /** - * @return {@link #specimen} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Details about the specimens on which this Disagnostic report is based.) - */ - public Specimen addSpecimenTarget() { - Specimen r = new Specimen(); - if (this.specimenTarget == null) - this.specimenTarget = new ArrayList(); - this.specimenTarget.add(r); - return r; - } - - /** - * @return {@link #result} (Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels").) - */ - public List getResult() { - if (this.result == null) - this.result = new ArrayList(); - return this.result; - } - - public boolean hasResult() { - if (this.result == null) - return false; - for (Reference item : this.result) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #result} (Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels").) - */ - // syntactic sugar - public Reference addResult() { //3 - Reference t = new Reference(); - if (this.result == null) - this.result = new ArrayList(); - this.result.add(t); - return t; - } - - /** - * @return {@link #result} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels").) - */ - public List getResultTarget() { - if (this.resultTarget == null) - this.resultTarget = new ArrayList(); - return this.resultTarget; - } - - // syntactic sugar - /** - * @return {@link #result} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels").) - */ - public Observation addResultTarget() { - Observation r = new Observation(); - if (this.resultTarget == null) - this.resultTarget = new ArrayList(); - this.resultTarget.add(r); - return r; - } - - /** - * @return {@link #imagingStudy} (One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.) - */ - public List getImagingStudy() { - if (this.imagingStudy == null) - this.imagingStudy = new ArrayList(); - return this.imagingStudy; - } - - public boolean hasImagingStudy() { - if (this.imagingStudy == null) - return false; - for (Reference item : this.imagingStudy) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #imagingStudy} (One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.) - */ - // syntactic sugar - public Reference addImagingStudy() { //3 - Reference t = new Reference(); - if (this.imagingStudy == null) - this.imagingStudy = new ArrayList(); - this.imagingStudy.add(t); - return t; - } - - /** - * @return {@link #imagingStudy} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.) - */ - public List getImagingStudyTarget() { - if (this.imagingStudyTarget == null) - this.imagingStudyTarget = new ArrayList(); - return this.imagingStudyTarget; - } - - // syntactic sugar - /** - * @return {@link #imagingStudy} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.) - */ - public ImagingStudy addImagingStudyTarget() { - ImagingStudy r = new ImagingStudy(); - if (this.imagingStudyTarget == null) - this.imagingStudyTarget = new ArrayList(); - this.imagingStudyTarget.add(r); - return r; - } - - /** - * @return {@link #image} (A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest).) - */ - public List getImage() { - if (this.image == null) - this.image = new ArrayList(); - return this.image; - } - - public boolean hasImage() { - if (this.image == null) - return false; - for (DiagnosticReportImageComponent item : this.image) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #image} (A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest).) - */ - // syntactic sugar - public DiagnosticReportImageComponent addImage() { //3 - DiagnosticReportImageComponent t = new DiagnosticReportImageComponent(); - if (this.image == null) - this.image = new ArrayList(); - this.image.add(t); - return t; - } - - /** - * @return {@link #conclusion} (Concise and clinically contextualized narrative interpretation of the diagnostic report.). This is the underlying object with id, value and extensions. The accessor "getConclusion" gives direct access to the value - */ - public StringType getConclusionElement() { - if (this.conclusion == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosticReport.conclusion"); - else if (Configuration.doAutoCreate()) - this.conclusion = new StringType(); - return this.conclusion; - } - - public boolean hasConclusionElement() { - return this.conclusion != null && !this.conclusion.isEmpty(); - } - - public boolean hasConclusion() { - return this.conclusion != null && !this.conclusion.isEmpty(); - } - - /** - * @param value {@link #conclusion} (Concise and clinically contextualized narrative interpretation of the diagnostic report.). This is the underlying object with id, value and extensions. The accessor "getConclusion" gives direct access to the value - */ - public DiagnosticReport setConclusionElement(StringType value) { - this.conclusion = value; - return this; - } - - /** - * @return Concise and clinically contextualized narrative interpretation of the diagnostic report. - */ - public String getConclusion() { - return this.conclusion == null ? null : this.conclusion.getValue(); - } - - /** - * @param value Concise and clinically contextualized narrative interpretation of the diagnostic report. - */ - public DiagnosticReport setConclusion(String value) { - if (Utilities.noString(value)) - this.conclusion = null; - else { - if (this.conclusion == null) - this.conclusion = new StringType(); - this.conclusion.setValue(value); - } - return this; - } - - /** - * @return {@link #codedDiagnosis} (Codes for the conclusion.) - */ - public List getCodedDiagnosis() { - if (this.codedDiagnosis == null) - this.codedDiagnosis = new ArrayList(); - return this.codedDiagnosis; - } - - public boolean hasCodedDiagnosis() { - if (this.codedDiagnosis == null) - return false; - for (CodeableConcept item : this.codedDiagnosis) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #codedDiagnosis} (Codes for the conclusion.) - */ - // syntactic sugar - public CodeableConcept addCodedDiagnosis() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.codedDiagnosis == null) - this.codedDiagnosis = new ArrayList(); - this.codedDiagnosis.add(t); - return t; - } - - /** - * @return {@link #presentedForm} (Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent.) - */ - public List getPresentedForm() { - if (this.presentedForm == null) - this.presentedForm = new ArrayList(); - return this.presentedForm; - } - - public boolean hasPresentedForm() { - if (this.presentedForm == null) - return false; - for (Attachment item : this.presentedForm) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #presentedForm} (Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent.) - */ - // syntactic sugar - public Attachment addPresentedForm() { //3 - Attachment t = new Attachment(); - if (this.presentedForm == null) - this.presentedForm = new ArrayList(); - this.presentedForm.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("name", "CodeableConcept", "A code or name that describes this diagnostic report.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("status", "code", "The status of the diagnostic report as a whole.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("issued", "dateTime", "The date and/or time that this version of the report was released from the source diagnostic service.", 0, java.lang.Integer.MAX_VALUE, issued)); - childrenList.add(new Property("subject", "Reference(Patient|Group|Device|Location)", "The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("performer", "Reference(Practitioner|Organization)", "The diagnostic service that is responsible for issuing the report.", 0, java.lang.Integer.MAX_VALUE, performer)); - childrenList.add(new Property("identifier", "Identifier", "The local ID assigned to the report by the order filler, usually by the Information System of the diagnostic service provider.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("requestDetail", "Reference(DiagnosticOrder)", "Details concerning a test requested.", 0, java.lang.Integer.MAX_VALUE, requestDetail)); - childrenList.add(new Property("serviceCategory", "CodeableConcept", "The section of the diagnostic service that performs the examination e.g. biochemistry, hematology, MRI.", 0, java.lang.Integer.MAX_VALUE, serviceCategory)); - childrenList.add(new Property("diagnostic[x]", "dateTime|Period", "The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.", 0, java.lang.Integer.MAX_VALUE, diagnostic)); - childrenList.add(new Property("specimen", "Reference(Specimen)", "Details about the specimens on which this Disagnostic report is based.", 0, java.lang.Integer.MAX_VALUE, specimen)); - childrenList.add(new Property("result", "Reference(Observation)", "Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. 'atomic' results), or they can be grouping observations that include references to other members of the group (e.g. 'panels').", 0, java.lang.Integer.MAX_VALUE, result)); - childrenList.add(new Property("imagingStudy", "Reference(ImagingStudy)", "One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.", 0, java.lang.Integer.MAX_VALUE, imagingStudy)); - childrenList.add(new Property("image", "", "A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest).", 0, java.lang.Integer.MAX_VALUE, image)); - childrenList.add(new Property("conclusion", "string", "Concise and clinically contextualized narrative interpretation of the diagnostic report.", 0, java.lang.Integer.MAX_VALUE, conclusion)); - childrenList.add(new Property("codedDiagnosis", "CodeableConcept", "Codes for the conclusion.", 0, java.lang.Integer.MAX_VALUE, codedDiagnosis)); - childrenList.add(new Property("presentedForm", "Attachment", "Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent.", 0, java.lang.Integer.MAX_VALUE, presentedForm)); - } - - public DiagnosticReport copy() { - DiagnosticReport dst = new DiagnosticReport(); - copyValues(dst); - dst.name = name == null ? null : name.copy(); - dst.status = status == null ? null : status.copy(); - dst.issued = issued == null ? null : issued.copy(); - dst.subject = subject == null ? null : subject.copy(); - dst.performer = performer == null ? null : performer.copy(); - dst.identifier = identifier == null ? null : identifier.copy(); - if (requestDetail != null) { - dst.requestDetail = new ArrayList(); - for (Reference i : requestDetail) - dst.requestDetail.add(i.copy()); - }; - dst.serviceCategory = serviceCategory == null ? null : serviceCategory.copy(); - dst.diagnostic = diagnostic == null ? null : diagnostic.copy(); - if (specimen != null) { - dst.specimen = new ArrayList(); - for (Reference i : specimen) - dst.specimen.add(i.copy()); - }; - if (result != null) { - dst.result = new ArrayList(); - for (Reference i : result) - dst.result.add(i.copy()); - }; - if (imagingStudy != null) { - dst.imagingStudy = new ArrayList(); - for (Reference i : imagingStudy) - dst.imagingStudy.add(i.copy()); - }; - if (image != null) { - dst.image = new ArrayList(); - for (DiagnosticReportImageComponent i : image) - dst.image.add(i.copy()); - }; - dst.conclusion = conclusion == null ? null : conclusion.copy(); - if (codedDiagnosis != null) { - dst.codedDiagnosis = new ArrayList(); - for (CodeableConcept i : codedDiagnosis) - dst.codedDiagnosis.add(i.copy()); - }; - if (presentedForm != null) { - dst.presentedForm = new ArrayList(); - for (Attachment i : presentedForm) - dst.presentedForm.add(i.copy()); - }; - return dst; - } - - protected DiagnosticReport typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (name == null || name.isEmpty()) && (status == null || status.isEmpty()) - && (issued == null || issued.isEmpty()) && (subject == null || subject.isEmpty()) && (performer == null || performer.isEmpty()) - && (identifier == null || identifier.isEmpty()) && (requestDetail == null || requestDetail.isEmpty()) - && (serviceCategory == null || serviceCategory.isEmpty()) && (diagnostic == null || diagnostic.isEmpty()) - && (specimen == null || specimen.isEmpty()) && (result == null || result.isEmpty()) && (imagingStudy == null || imagingStudy.isEmpty()) - && (image == null || image.isEmpty()) && (conclusion == null || conclusion.isEmpty()) && (codedDiagnosis == null || codedDiagnosis.isEmpty()) - && (presentedForm == null || presentedForm.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.DiagnosticReport; - } - - @SearchParamDefinition(name="result", path="DiagnosticReport.result", description="Link to an atomic result (observation resource)", type="reference" ) - public static final String SP_RESULT = "result"; - @SearchParamDefinition(name="status", path="DiagnosticReport.status", description="The status of the report", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="subject", path="DiagnosticReport.subject", description="The subject of the report", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="issued", path="DiagnosticReport.issued", description="When the report was issued", type="date" ) - public static final String SP_ISSUED = "issued"; - @SearchParamDefinition(name="diagnosis", path="DiagnosticReport.codedDiagnosis", description="A coded diagnosis on the report", type="token" ) - public static final String SP_DIAGNOSIS = "diagnosis"; - @SearchParamDefinition(name="image", path="DiagnosticReport.image.link", description="Reference to the image source", type="reference" ) - public static final String SP_IMAGE = "image"; - @SearchParamDefinition(name="date", path="DiagnosticReport.diagnostic[x]", description="The clinically relevant time of the report", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="patient", path="DiagnosticReport.subject", description="The subject of the report if a patient", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="request", path="DiagnosticReport.requestDetail", description="What was requested", type="reference" ) - public static final String SP_REQUEST = "request"; - @SearchParamDefinition(name="specimen", path="DiagnosticReport.specimen", description="The specimen details", type="reference" ) - public static final String SP_SPECIMEN = "specimen"; - @SearchParamDefinition(name="name", path="DiagnosticReport.name", description="The name of the report (e.g. the code for the report as a whole, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result)", type="token" ) - public static final String SP_NAME = "name"; - @SearchParamDefinition(name="service", path="DiagnosticReport.serviceCategory", description="Which diagnostic discipline/department created the report", type="token" ) - public static final String SP_SERVICE = "service"; - @SearchParamDefinition(name="performer", path="DiagnosticReport.performer", description="Who was the source of the report (organization)", type="reference" ) - public static final String SP_PERFORMER = "performer"; - @SearchParamDefinition(name="identifier", path="DiagnosticReport.identifier", description="An identifier for the report", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * The findings and interpretation of diagnostic tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretation, and formatted representation of diagnostic reports. + */ +@ResourceDef(name="DiagnosticReport", profile="http://hl7.org/fhir/Profile/DiagnosticReport") +public class DiagnosticReport extends DomainResource { + + public enum DiagnosticReportStatus { + /** + * The existence of the report is registered, but there is nothing yet available. + */ + REGISTERED, + /** + * This is a partial (e.g. initial, interim or preliminary) report: data in the report may be incomplete or unverified. + */ + PARTIAL, + /** + * The report is complete and verified by an authorized person. + */ + FINAL, + /** + * The report has been modified subsequent to being Final, and is complete and verified by an authorized person. + */ + CORRECTED, + /** + * The report has been modified subsequent to being Final, and is complete and verified by an authorized person, and data has been changed. + */ + AMENDED, + /** + * The report has been modified subsequent to being Final, and is complete and verified by an authorized person. New content has been added, but existing content hasn't changed. + */ + APPENDED, + /** + * The report is unavailable because the measurement was not started or not completed (also sometimes called "aborted"). + */ + CANCELLED, + /** + * The report has been withdrawn following previous Final release. + */ + ENTEREDINERROR, + /** + * added to help the parsers + */ + NULL; + public static DiagnosticReportStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("registered".equals(codeString)) + return REGISTERED; + if ("partial".equals(codeString)) + return PARTIAL; + if ("final".equals(codeString)) + return FINAL; + if ("corrected".equals(codeString)) + return CORRECTED; + if ("amended".equals(codeString)) + return AMENDED; + if ("appended".equals(codeString)) + return APPENDED; + if ("cancelled".equals(codeString)) + return CANCELLED; + if ("entered-in-error".equals(codeString)) + return ENTEREDINERROR; + throw new Exception("Unknown DiagnosticReportStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case REGISTERED: return "registered"; + case PARTIAL: return "partial"; + case FINAL: return "final"; + case CORRECTED: return "corrected"; + case AMENDED: return "amended"; + case APPENDED: return "appended"; + case CANCELLED: return "cancelled"; + case ENTEREDINERROR: return "entered-in-error"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case REGISTERED: return ""; + case PARTIAL: return ""; + case FINAL: return ""; + case CORRECTED: return ""; + case AMENDED: return ""; + case APPENDED: return ""; + case CANCELLED: return ""; + case ENTEREDINERROR: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case REGISTERED: return "The existence of the report is registered, but there is nothing yet available."; + case PARTIAL: return "This is a partial (e.g. initial, interim or preliminary) report: data in the report may be incomplete or unverified."; + case FINAL: return "The report is complete and verified by an authorized person."; + case CORRECTED: return "The report has been modified subsequent to being Final, and is complete and verified by an authorized person."; + case AMENDED: return "The report has been modified subsequent to being Final, and is complete and verified by an authorized person, and data has been changed."; + case APPENDED: return "The report has been modified subsequent to being Final, and is complete and verified by an authorized person. New content has been added, but existing content hasn't changed."; + case CANCELLED: return "The report is unavailable because the measurement was not started or not completed (also sometimes called 'aborted')."; + case ENTEREDINERROR: return "The report has been withdrawn following previous Final release."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case REGISTERED: return "registered"; + case PARTIAL: return "partial"; + case FINAL: return "final"; + case CORRECTED: return "corrected"; + case AMENDED: return "amended"; + case APPENDED: return "appended"; + case CANCELLED: return "cancelled"; + case ENTEREDINERROR: return "entered-in-error"; + default: return "?"; + } + } + } + + public static class DiagnosticReportStatusEnumFactory implements EnumFactory { + public DiagnosticReportStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("registered".equals(codeString)) + return DiagnosticReportStatus.REGISTERED; + if ("partial".equals(codeString)) + return DiagnosticReportStatus.PARTIAL; + if ("final".equals(codeString)) + return DiagnosticReportStatus.FINAL; + if ("corrected".equals(codeString)) + return DiagnosticReportStatus.CORRECTED; + if ("amended".equals(codeString)) + return DiagnosticReportStatus.AMENDED; + if ("appended".equals(codeString)) + return DiagnosticReportStatus.APPENDED; + if ("cancelled".equals(codeString)) + return DiagnosticReportStatus.CANCELLED; + if ("entered-in-error".equals(codeString)) + return DiagnosticReportStatus.ENTEREDINERROR; + throw new IllegalArgumentException("Unknown DiagnosticReportStatus code '"+codeString+"'"); + } + public String toCode(DiagnosticReportStatus code) { + if (code == DiagnosticReportStatus.REGISTERED) + return "registered"; + if (code == DiagnosticReportStatus.PARTIAL) + return "partial"; + if (code == DiagnosticReportStatus.FINAL) + return "final"; + if (code == DiagnosticReportStatus.CORRECTED) + return "corrected"; + if (code == DiagnosticReportStatus.AMENDED) + return "amended"; + if (code == DiagnosticReportStatus.APPENDED) + return "appended"; + if (code == DiagnosticReportStatus.CANCELLED) + return "cancelled"; + if (code == DiagnosticReportStatus.ENTEREDINERROR) + return "entered-in-error"; + return "?"; + } + } + + @Block() + public static class DiagnosticReportImageComponent extends BackboneElement { + /** + * A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features. + */ + @Child(name="comment", type={StringType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Comment about the image (e.g. explanation)", formalDefinition="A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features." ) + protected StringType comment; + + /** + * Reference to the image source. + */ + @Child(name="link", type={Media.class}, order=2, min=1, max=1) + @Description(shortDefinition="Reference to the image source", formalDefinition="Reference to the image source." ) + protected Reference link; + + /** + * The actual object that is the target of the reference (Reference to the image source.) + */ + protected Media linkTarget; + + private static final long serialVersionUID = 935791940L; + + public DiagnosticReportImageComponent() { + super(); + } + + public DiagnosticReportImageComponent(Reference link) { + super(); + this.link = link; + } + + /** + * @return {@link #comment} (A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value + */ + public StringType getCommentElement() { + if (this.comment == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReportImageComponent.comment"); + else if (Configuration.doAutoCreate()) + this.comment = new StringType(); // bb + return this.comment; + } + + public boolean hasCommentElement() { + return this.comment != null && !this.comment.isEmpty(); + } + + public boolean hasComment() { + return this.comment != null && !this.comment.isEmpty(); + } + + /** + * @param value {@link #comment} (A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value + */ + public DiagnosticReportImageComponent setCommentElement(StringType value) { + this.comment = value; + return this; + } + + /** + * @return A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features. + */ + public String getComment() { + return this.comment == null ? null : this.comment.getValue(); + } + + /** + * @param value A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features. + */ + public DiagnosticReportImageComponent setComment(String value) { + if (Utilities.noString(value)) + this.comment = null; + else { + if (this.comment == null) + this.comment = new StringType(); + this.comment.setValue(value); + } + return this; + } + + /** + * @return {@link #link} (Reference to the image source.) + */ + public Reference getLink() { + if (this.link == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReportImageComponent.link"); + else if (Configuration.doAutoCreate()) + this.link = new Reference(); // cc + return this.link; + } + + public boolean hasLink() { + return this.link != null && !this.link.isEmpty(); + } + + /** + * @param value {@link #link} (Reference to the image source.) + */ + public DiagnosticReportImageComponent setLink(Reference value) { + this.link = value; + return this; + } + + /** + * @return {@link #link} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Reference to the image source.) + */ + public Media getLinkTarget() { + if (this.linkTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReportImageComponent.link"); + else if (Configuration.doAutoCreate()) + this.linkTarget = new Media(); // aa + return this.linkTarget; + } + + /** + * @param value {@link #link} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Reference to the image source.) + */ + public DiagnosticReportImageComponent setLinkTarget(Media value) { + this.linkTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("comment", "string", "A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features.", 0, java.lang.Integer.MAX_VALUE, comment)); + childrenList.add(new Property("link", "Reference(Media)", "Reference to the image source.", 0, java.lang.Integer.MAX_VALUE, link)); + } + + public DiagnosticReportImageComponent copy() { + DiagnosticReportImageComponent dst = new DiagnosticReportImageComponent(); + copyValues(dst); + dst.comment = comment == null ? null : comment.copy(); + dst.link = link == null ? null : link.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DiagnosticReportImageComponent)) + return false; + DiagnosticReportImageComponent o = (DiagnosticReportImageComponent) other; + return compareDeep(comment, o.comment, true) && compareDeep(link, o.link, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DiagnosticReportImageComponent)) + return false; + DiagnosticReportImageComponent o = (DiagnosticReportImageComponent) other; + return compareValues(comment, o.comment, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (comment == null || comment.isEmpty()) && (link == null || link.isEmpty()) + ; + } + + } + + /** + * A code or name that describes this diagnostic report. + */ + @Child(name="name", type={CodeableConcept.class}, order=-1, min=1, max=1) + @Description(shortDefinition="Name/Code for this diagnostic report", formalDefinition="A code or name that describes this diagnostic report." ) + protected CodeableConcept name; + + /** + * The status of the diagnostic report as a whole. + */ + @Child(name="status", type={CodeType.class}, order=0, min=1, max=1) + @Description(shortDefinition="registered | partial | final | corrected +", formalDefinition="The status of the diagnostic report as a whole." ) + protected Enumeration status; + + /** + * The date and/or time that this version of the report was released from the source diagnostic service. + */ + @Child(name="issued", type={DateTimeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Date this version was released", formalDefinition="The date and/or time that this version of the report was released from the source diagnostic service." ) + protected DateTimeType issued; + + /** + * The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources. + */ + @Child(name="subject", type={Patient.class, Group.class, Device.class, Location.class}, order=2, min=1, max=1) + @Description(shortDefinition="The subject of the report, usually, but not always, the patient", formalDefinition="The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.) + */ + protected Resource subjectTarget; + + /** + * The diagnostic service that is responsible for issuing the report. + */ + @Child(name="performer", type={Practitioner.class, Organization.class}, order=3, min=1, max=1) + @Description(shortDefinition="Responsible Diagnostic Service", formalDefinition="The diagnostic service that is responsible for issuing the report." ) + protected Reference performer; + + /** + * The actual object that is the target of the reference (The diagnostic service that is responsible for issuing the report.) + */ + protected Resource performerTarget; + + /** + * The link to the health care event (encounter) when the order was made. + */ + @Child(name="encounter", type={Encounter.class}, order=4, min=0, max=1) + @Description(shortDefinition="Health care event when test ordered", formalDefinition="The link to the health care event (encounter) when the order was made." ) + protected Reference encounter; + + /** + * The actual object that is the target of the reference (The link to the health care event (encounter) when the order was made.) + */ + protected Encounter encounterTarget; + + /** + * The local ID assigned to the report by the order filler, usually by the Information System of the diagnostic service provider. + */ + @Child(name="identifier", type={Identifier.class}, order=5, min=0, max=1) + @Description(shortDefinition="Id for external references to this report", formalDefinition="The local ID assigned to the report by the order filler, usually by the Information System of the diagnostic service provider." ) + protected Identifier identifier; + + /** + * Details concerning a test requested. + */ + @Child(name="requestDetail", type={DiagnosticOrder.class}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="What was requested", formalDefinition="Details concerning a test requested." ) + protected List requestDetail; + /** + * The actual objects that are the target of the reference (Details concerning a test requested.) + */ + protected List requestDetailTarget; + + + /** + * The section of the diagnostic service that performs the examination e.g. biochemistry, hematology, MRI. + */ + @Child(name="serviceCategory", type={CodeableConcept.class}, order=7, min=0, max=1) + @Description(shortDefinition="Biochemistry, Hematology etc.", formalDefinition="The section of the diagnostic service that performs the examination e.g. biochemistry, hematology, MRI." ) + protected CodeableConcept serviceCategory; + + /** + * The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself. + */ + @Child(name="diagnostic", type={DateTimeType.class, Period.class}, order=8, min=1, max=1) + @Description(shortDefinition="Physiologically Relevant time/time-period for report", formalDefinition="The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself." ) + protected Type diagnostic; + + /** + * Details about the specimens on which this diagnostic report is based. + */ + @Child(name="specimen", type={Specimen.class}, order=9, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Specimens this report is based on", formalDefinition="Details about the specimens on which this diagnostic report is based." ) + protected List specimen; + /** + * The actual objects that are the target of the reference (Details about the specimens on which this diagnostic report is based.) + */ + protected List specimenTarget; + + + /** + * Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels"). + */ + @Child(name="result", type={Observation.class}, order=10, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Observations - simple, or complex nested groups", formalDefinition="Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. 'atomic' results), or they can be grouping observations that include references to other members of the group (e.g. 'panels')." ) + protected List result; + /** + * The actual objects that are the target of the reference (Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels").) + */ + protected List resultTarget; + + + /** + * One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images. + */ + @Child(name="imagingStudy", type={ImagingStudy.class}, order=11, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Reference to full details of imaging associated with the diagnostic report", formalDefinition="One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images." ) + protected List imagingStudy; + /** + * The actual objects that are the target of the reference (One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.) + */ + protected List imagingStudyTarget; + + + /** + * A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest). + */ + @Child(name="image", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Key images associated with this report", formalDefinition="A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest)." ) + protected List image; + + /** + * Concise and clinically contextualized narrative interpretation of the diagnostic report. + */ + @Child(name="conclusion", type={StringType.class}, order=13, min=0, max=1) + @Description(shortDefinition="Clinical Interpretation of test results", formalDefinition="Concise and clinically contextualized narrative interpretation of the diagnostic report." ) + protected StringType conclusion; + + /** + * Codes for the conclusion. + */ + @Child(name="codedDiagnosis", type={CodeableConcept.class}, order=14, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Codes for the conclusion", formalDefinition="Codes for the conclusion." ) + protected List codedDiagnosis; + + /** + * Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent. + */ + @Child(name="presentedForm", type={Attachment.class}, order=15, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Entire Report as issued", formalDefinition="Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent." ) + protected List presentedForm; + + private static final long serialVersionUID = -1237974006L; + + public DiagnosticReport() { + super(); + } + + public DiagnosticReport(CodeableConcept name, Enumeration status, DateTimeType issued, Reference subject, Reference performer, Type diagnostic) { + super(); + this.name = name; + this.status = status; + this.issued = issued; + this.subject = subject; + this.performer = performer; + this.diagnostic = diagnostic; + } + + /** + * @return {@link #name} (A code or name that describes this diagnostic report.) + */ + public CodeableConcept getName() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReport.name"); + else if (Configuration.doAutoCreate()) + this.name = new CodeableConcept(); // cc + return this.name; + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (A code or name that describes this diagnostic report.) + */ + public DiagnosticReport setName(CodeableConcept value) { + this.name = value; + return this; + } + + /** + * @return {@link #status} (The status of the diagnostic report as a whole.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReport.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new DiagnosticReportStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of the diagnostic report as a whole.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public DiagnosticReport setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of the diagnostic report as a whole. + */ + public DiagnosticReportStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of the diagnostic report as a whole. + */ + public DiagnosticReport setStatus(DiagnosticReportStatus value) { + if (this.status == null) + this.status = new Enumeration(new DiagnosticReportStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #issued} (The date and/or time that this version of the report was released from the source diagnostic service.). This is the underlying object with id, value and extensions. The accessor "getIssued" gives direct access to the value + */ + public DateTimeType getIssuedElement() { + if (this.issued == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReport.issued"); + else if (Configuration.doAutoCreate()) + this.issued = new DateTimeType(); // bb + return this.issued; + } + + public boolean hasIssuedElement() { + return this.issued != null && !this.issued.isEmpty(); + } + + public boolean hasIssued() { + return this.issued != null && !this.issued.isEmpty(); + } + + /** + * @param value {@link #issued} (The date and/or time that this version of the report was released from the source diagnostic service.). This is the underlying object with id, value and extensions. The accessor "getIssued" gives direct access to the value + */ + public DiagnosticReport setIssuedElement(DateTimeType value) { + this.issued = value; + return this; + } + + /** + * @return The date and/or time that this version of the report was released from the source diagnostic service. + */ + public Date getIssued() { + return this.issued == null ? null : this.issued.getValue(); + } + + /** + * @param value The date and/or time that this version of the report was released from the source diagnostic service. + */ + public DiagnosticReport setIssued(Date value) { + if (this.issued == null) + this.issued = new DateTimeType(); + this.issued.setValue(value); + return this; + } + + /** + * @return {@link #subject} (The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReport.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.) + */ + public DiagnosticReport setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.) + */ + public Resource getSubjectTarget() { + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.) + */ + public DiagnosticReport setSubjectTarget(Resource value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #performer} (The diagnostic service that is responsible for issuing the report.) + */ + public Reference getPerformer() { + if (this.performer == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReport.performer"); + else if (Configuration.doAutoCreate()) + this.performer = new Reference(); // cc + return this.performer; + } + + public boolean hasPerformer() { + return this.performer != null && !this.performer.isEmpty(); + } + + /** + * @param value {@link #performer} (The diagnostic service that is responsible for issuing the report.) + */ + public DiagnosticReport setPerformer(Reference value) { + this.performer = value; + return this; + } + + /** + * @return {@link #performer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The diagnostic service that is responsible for issuing the report.) + */ + public Resource getPerformerTarget() { + return this.performerTarget; + } + + /** + * @param value {@link #performer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The diagnostic service that is responsible for issuing the report.) + */ + public DiagnosticReport setPerformerTarget(Resource value) { + this.performerTarget = value; + return this; + } + + /** + * @return {@link #encounter} (The link to the health care event (encounter) when the order was made.) + */ + public Reference getEncounter() { + if (this.encounter == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReport.encounter"); + else if (Configuration.doAutoCreate()) + this.encounter = new Reference(); // cc + return this.encounter; + } + + public boolean hasEncounter() { + return this.encounter != null && !this.encounter.isEmpty(); + } + + /** + * @param value {@link #encounter} (The link to the health care event (encounter) when the order was made.) + */ + public DiagnosticReport setEncounter(Reference value) { + this.encounter = value; + return this; + } + + /** + * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The link to the health care event (encounter) when the order was made.) + */ + public Encounter getEncounterTarget() { + if (this.encounterTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReport.encounter"); + else if (Configuration.doAutoCreate()) + this.encounterTarget = new Encounter(); // aa + return this.encounterTarget; + } + + /** + * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The link to the health care event (encounter) when the order was made.) + */ + public DiagnosticReport setEncounterTarget(Encounter value) { + this.encounterTarget = value; + return this; + } + + /** + * @return {@link #identifier} (The local ID assigned to the report by the order filler, usually by the Information System of the diagnostic service provider.) + */ + public Identifier getIdentifier() { + if (this.identifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReport.identifier"); + else if (Configuration.doAutoCreate()) + this.identifier = new Identifier(); // cc + return this.identifier; + } + + public boolean hasIdentifier() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + /** + * @param value {@link #identifier} (The local ID assigned to the report by the order filler, usually by the Information System of the diagnostic service provider.) + */ + public DiagnosticReport setIdentifier(Identifier value) { + this.identifier = value; + return this; + } + + /** + * @return {@link #requestDetail} (Details concerning a test requested.) + */ + public List getRequestDetail() { + if (this.requestDetail == null) + this.requestDetail = new ArrayList(); + return this.requestDetail; + } + + public boolean hasRequestDetail() { + if (this.requestDetail == null) + return false; + for (Reference item : this.requestDetail) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #requestDetail} (Details concerning a test requested.) + */ + // syntactic sugar + public Reference addRequestDetail() { //3 + Reference t = new Reference(); + if (this.requestDetail == null) + this.requestDetail = new ArrayList(); + this.requestDetail.add(t); + return t; + } + + /** + * @return {@link #requestDetail} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Details concerning a test requested.) + */ + public List getRequestDetailTarget() { + if (this.requestDetailTarget == null) + this.requestDetailTarget = new ArrayList(); + return this.requestDetailTarget; + } + + // syntactic sugar + /** + * @return {@link #requestDetail} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Details concerning a test requested.) + */ + public DiagnosticOrder addRequestDetailTarget() { + DiagnosticOrder r = new DiagnosticOrder(); + if (this.requestDetailTarget == null) + this.requestDetailTarget = new ArrayList(); + this.requestDetailTarget.add(r); + return r; + } + + /** + * @return {@link #serviceCategory} (The section of the diagnostic service that performs the examination e.g. biochemistry, hematology, MRI.) + */ + public CodeableConcept getServiceCategory() { + if (this.serviceCategory == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReport.serviceCategory"); + else if (Configuration.doAutoCreate()) + this.serviceCategory = new CodeableConcept(); // cc + return this.serviceCategory; + } + + public boolean hasServiceCategory() { + return this.serviceCategory != null && !this.serviceCategory.isEmpty(); + } + + /** + * @param value {@link #serviceCategory} (The section of the diagnostic service that performs the examination e.g. biochemistry, hematology, MRI.) + */ + public DiagnosticReport setServiceCategory(CodeableConcept value) { + this.serviceCategory = value; + return this; + } + + /** + * @return {@link #diagnostic} (The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.) + */ + public Type getDiagnostic() { + return this.diagnostic; + } + + /** + * @return {@link #diagnostic} (The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.) + */ + public DateTimeType getDiagnosticDateTimeType() throws Exception { + if (!(this.diagnostic instanceof DateTimeType)) + throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.diagnostic.getClass().getName()+" was encountered"); + return (DateTimeType) this.diagnostic; + } + + /** + * @return {@link #diagnostic} (The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.) + */ + public Period getDiagnosticPeriod() throws Exception { + if (!(this.diagnostic instanceof Period)) + throw new Exception("Type mismatch: the type Period was expected, but "+this.diagnostic.getClass().getName()+" was encountered"); + return (Period) this.diagnostic; + } + + public boolean hasDiagnostic() { + return this.diagnostic != null && !this.diagnostic.isEmpty(); + } + + /** + * @param value {@link #diagnostic} (The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.) + */ + public DiagnosticReport setDiagnostic(Type value) { + this.diagnostic = value; + return this; + } + + /** + * @return {@link #specimen} (Details about the specimens on which this diagnostic report is based.) + */ + public List getSpecimen() { + if (this.specimen == null) + this.specimen = new ArrayList(); + return this.specimen; + } + + public boolean hasSpecimen() { + if (this.specimen == null) + return false; + for (Reference item : this.specimen) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #specimen} (Details about the specimens on which this diagnostic report is based.) + */ + // syntactic sugar + public Reference addSpecimen() { //3 + Reference t = new Reference(); + if (this.specimen == null) + this.specimen = new ArrayList(); + this.specimen.add(t); + return t; + } + + /** + * @return {@link #specimen} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Details about the specimens on which this diagnostic report is based.) + */ + public List getSpecimenTarget() { + if (this.specimenTarget == null) + this.specimenTarget = new ArrayList(); + return this.specimenTarget; + } + + // syntactic sugar + /** + * @return {@link #specimen} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Details about the specimens on which this diagnostic report is based.) + */ + public Specimen addSpecimenTarget() { + Specimen r = new Specimen(); + if (this.specimenTarget == null) + this.specimenTarget = new ArrayList(); + this.specimenTarget.add(r); + return r; + } + + /** + * @return {@link #result} (Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels").) + */ + public List getResult() { + if (this.result == null) + this.result = new ArrayList(); + return this.result; + } + + public boolean hasResult() { + if (this.result == null) + return false; + for (Reference item : this.result) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #result} (Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels").) + */ + // syntactic sugar + public Reference addResult() { //3 + Reference t = new Reference(); + if (this.result == null) + this.result = new ArrayList(); + this.result.add(t); + return t; + } + + /** + * @return {@link #result} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels").) + */ + public List getResultTarget() { + if (this.resultTarget == null) + this.resultTarget = new ArrayList(); + return this.resultTarget; + } + + // syntactic sugar + /** + * @return {@link #result} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. "atomic" results), or they can be grouping observations that include references to other members of the group (e.g. "panels").) + */ + public Observation addResultTarget() { + Observation r = new Observation(); + if (this.resultTarget == null) + this.resultTarget = new ArrayList(); + this.resultTarget.add(r); + return r; + } + + /** + * @return {@link #imagingStudy} (One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.) + */ + public List getImagingStudy() { + if (this.imagingStudy == null) + this.imagingStudy = new ArrayList(); + return this.imagingStudy; + } + + public boolean hasImagingStudy() { + if (this.imagingStudy == null) + return false; + for (Reference item : this.imagingStudy) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #imagingStudy} (One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.) + */ + // syntactic sugar + public Reference addImagingStudy() { //3 + Reference t = new Reference(); + if (this.imagingStudy == null) + this.imagingStudy = new ArrayList(); + this.imagingStudy.add(t); + return t; + } + + /** + * @return {@link #imagingStudy} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.) + */ + public List getImagingStudyTarget() { + if (this.imagingStudyTarget == null) + this.imagingStudyTarget = new ArrayList(); + return this.imagingStudyTarget; + } + + // syntactic sugar + /** + * @return {@link #imagingStudy} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.) + */ + public ImagingStudy addImagingStudyTarget() { + ImagingStudy r = new ImagingStudy(); + if (this.imagingStudyTarget == null) + this.imagingStudyTarget = new ArrayList(); + this.imagingStudyTarget.add(r); + return r; + } + + /** + * @return {@link #image} (A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest).) + */ + public List getImage() { + if (this.image == null) + this.image = new ArrayList(); + return this.image; + } + + public boolean hasImage() { + if (this.image == null) + return false; + for (DiagnosticReportImageComponent item : this.image) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #image} (A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest).) + */ + // syntactic sugar + public DiagnosticReportImageComponent addImage() { //3 + DiagnosticReportImageComponent t = new DiagnosticReportImageComponent(); + if (this.image == null) + this.image = new ArrayList(); + this.image.add(t); + return t; + } + + /** + * @return {@link #conclusion} (Concise and clinically contextualized narrative interpretation of the diagnostic report.). This is the underlying object with id, value and extensions. The accessor "getConclusion" gives direct access to the value + */ + public StringType getConclusionElement() { + if (this.conclusion == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosticReport.conclusion"); + else if (Configuration.doAutoCreate()) + this.conclusion = new StringType(); // bb + return this.conclusion; + } + + public boolean hasConclusionElement() { + return this.conclusion != null && !this.conclusion.isEmpty(); + } + + public boolean hasConclusion() { + return this.conclusion != null && !this.conclusion.isEmpty(); + } + + /** + * @param value {@link #conclusion} (Concise and clinically contextualized narrative interpretation of the diagnostic report.). This is the underlying object with id, value and extensions. The accessor "getConclusion" gives direct access to the value + */ + public DiagnosticReport setConclusionElement(StringType value) { + this.conclusion = value; + return this; + } + + /** + * @return Concise and clinically contextualized narrative interpretation of the diagnostic report. + */ + public String getConclusion() { + return this.conclusion == null ? null : this.conclusion.getValue(); + } + + /** + * @param value Concise and clinically contextualized narrative interpretation of the diagnostic report. + */ + public DiagnosticReport setConclusion(String value) { + if (Utilities.noString(value)) + this.conclusion = null; + else { + if (this.conclusion == null) + this.conclusion = new StringType(); + this.conclusion.setValue(value); + } + return this; + } + + /** + * @return {@link #codedDiagnosis} (Codes for the conclusion.) + */ + public List getCodedDiagnosis() { + if (this.codedDiagnosis == null) + this.codedDiagnosis = new ArrayList(); + return this.codedDiagnosis; + } + + public boolean hasCodedDiagnosis() { + if (this.codedDiagnosis == null) + return false; + for (CodeableConcept item : this.codedDiagnosis) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #codedDiagnosis} (Codes for the conclusion.) + */ + // syntactic sugar + public CodeableConcept addCodedDiagnosis() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.codedDiagnosis == null) + this.codedDiagnosis = new ArrayList(); + this.codedDiagnosis.add(t); + return t; + } + + /** + * @return {@link #presentedForm} (Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent.) + */ + public List getPresentedForm() { + if (this.presentedForm == null) + this.presentedForm = new ArrayList(); + return this.presentedForm; + } + + public boolean hasPresentedForm() { + if (this.presentedForm == null) + return false; + for (Attachment item : this.presentedForm) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #presentedForm} (Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent.) + */ + // syntactic sugar + public Attachment addPresentedForm() { //3 + Attachment t = new Attachment(); + if (this.presentedForm == null) + this.presentedForm = new ArrayList(); + this.presentedForm.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("name", "CodeableConcept", "A code or name that describes this diagnostic report.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("status", "code", "The status of the diagnostic report as a whole.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("issued", "dateTime", "The date and/or time that this version of the report was released from the source diagnostic service.", 0, java.lang.Integer.MAX_VALUE, issued)); + childrenList.add(new Property("subject", "Reference(Patient|Group|Device|Location)", "The subject of the report. Usually, but not always, this is a patient. However diagnostic services also perform analyses on specimens collected from a variety of other sources.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("performer", "Reference(Practitioner|Organization)", "The diagnostic service that is responsible for issuing the report.", 0, java.lang.Integer.MAX_VALUE, performer)); + childrenList.add(new Property("encounter", "Reference(Encounter)", "The link to the health care event (encounter) when the order was made.", 0, java.lang.Integer.MAX_VALUE, encounter)); + childrenList.add(new Property("identifier", "Identifier", "The local ID assigned to the report by the order filler, usually by the Information System of the diagnostic service provider.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("requestDetail", "Reference(DiagnosticOrder)", "Details concerning a test requested.", 0, java.lang.Integer.MAX_VALUE, requestDetail)); + childrenList.add(new Property("serviceCategory", "CodeableConcept", "The section of the diagnostic service that performs the examination e.g. biochemistry, hematology, MRI.", 0, java.lang.Integer.MAX_VALUE, serviceCategory)); + childrenList.add(new Property("diagnostic[x]", "dateTime|Period", "The time or time-period the observed values are related to. This is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.", 0, java.lang.Integer.MAX_VALUE, diagnostic)); + childrenList.add(new Property("specimen", "Reference(Specimen)", "Details about the specimens on which this diagnostic report is based.", 0, java.lang.Integer.MAX_VALUE, specimen)); + childrenList.add(new Property("result", "Reference(Observation)", "Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. 'atomic' results), or they can be grouping observations that include references to other members of the group (e.g. 'panels').", 0, java.lang.Integer.MAX_VALUE, result)); + childrenList.add(new Property("imagingStudy", "Reference(ImagingStudy)", "One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.", 0, java.lang.Integer.MAX_VALUE, imagingStudy)); + childrenList.add(new Property("image", "", "A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest).", 0, java.lang.Integer.MAX_VALUE, image)); + childrenList.add(new Property("conclusion", "string", "Concise and clinically contextualized narrative interpretation of the diagnostic report.", 0, java.lang.Integer.MAX_VALUE, conclusion)); + childrenList.add(new Property("codedDiagnosis", "CodeableConcept", "Codes for the conclusion.", 0, java.lang.Integer.MAX_VALUE, codedDiagnosis)); + childrenList.add(new Property("presentedForm", "Attachment", "Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent.", 0, java.lang.Integer.MAX_VALUE, presentedForm)); + } + + public DiagnosticReport copy() { + DiagnosticReport dst = new DiagnosticReport(); + copyValues(dst); + dst.name = name == null ? null : name.copy(); + dst.status = status == null ? null : status.copy(); + dst.issued = issued == null ? null : issued.copy(); + dst.subject = subject == null ? null : subject.copy(); + dst.performer = performer == null ? null : performer.copy(); + dst.encounter = encounter == null ? null : encounter.copy(); + dst.identifier = identifier == null ? null : identifier.copy(); + if (requestDetail != null) { + dst.requestDetail = new ArrayList(); + for (Reference i : requestDetail) + dst.requestDetail.add(i.copy()); + }; + dst.serviceCategory = serviceCategory == null ? null : serviceCategory.copy(); + dst.diagnostic = diagnostic == null ? null : diagnostic.copy(); + if (specimen != null) { + dst.specimen = new ArrayList(); + for (Reference i : specimen) + dst.specimen.add(i.copy()); + }; + if (result != null) { + dst.result = new ArrayList(); + for (Reference i : result) + dst.result.add(i.copy()); + }; + if (imagingStudy != null) { + dst.imagingStudy = new ArrayList(); + for (Reference i : imagingStudy) + dst.imagingStudy.add(i.copy()); + }; + if (image != null) { + dst.image = new ArrayList(); + for (DiagnosticReportImageComponent i : image) + dst.image.add(i.copy()); + }; + dst.conclusion = conclusion == null ? null : conclusion.copy(); + if (codedDiagnosis != null) { + dst.codedDiagnosis = new ArrayList(); + for (CodeableConcept i : codedDiagnosis) + dst.codedDiagnosis.add(i.copy()); + }; + if (presentedForm != null) { + dst.presentedForm = new ArrayList(); + for (Attachment i : presentedForm) + dst.presentedForm.add(i.copy()); + }; + return dst; + } + + protected DiagnosticReport typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DiagnosticReport)) + return false; + DiagnosticReport o = (DiagnosticReport) other; + return compareDeep(name, o.name, true) && compareDeep(status, o.status, true) && compareDeep(issued, o.issued, true) + && compareDeep(subject, o.subject, true) && compareDeep(performer, o.performer, true) && compareDeep(encounter, o.encounter, true) + && compareDeep(identifier, o.identifier, true) && compareDeep(requestDetail, o.requestDetail, true) + && compareDeep(serviceCategory, o.serviceCategory, true) && compareDeep(diagnostic, o.diagnostic, true) + && compareDeep(specimen, o.specimen, true) && compareDeep(result, o.result, true) && compareDeep(imagingStudy, o.imagingStudy, true) + && compareDeep(image, o.image, true) && compareDeep(conclusion, o.conclusion, true) && compareDeep(codedDiagnosis, o.codedDiagnosis, true) + && compareDeep(presentedForm, o.presentedForm, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DiagnosticReport)) + return false; + DiagnosticReport o = (DiagnosticReport) other; + return compareValues(status, o.status, true) && compareValues(issued, o.issued, true) && compareValues(conclusion, o.conclusion, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (name == null || name.isEmpty()) && (status == null || status.isEmpty()) + && (issued == null || issued.isEmpty()) && (subject == null || subject.isEmpty()) && (performer == null || performer.isEmpty()) + && (encounter == null || encounter.isEmpty()) && (identifier == null || identifier.isEmpty()) + && (requestDetail == null || requestDetail.isEmpty()) && (serviceCategory == null || serviceCategory.isEmpty()) + && (diagnostic == null || diagnostic.isEmpty()) && (specimen == null || specimen.isEmpty()) + && (result == null || result.isEmpty()) && (imagingStudy == null || imagingStudy.isEmpty()) + && (image == null || image.isEmpty()) && (conclusion == null || conclusion.isEmpty()) && (codedDiagnosis == null || codedDiagnosis.isEmpty()) + && (presentedForm == null || presentedForm.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.DiagnosticReport; + } + + @SearchParamDefinition(name="result", path="DiagnosticReport.result", description="Link to an atomic result (observation resource)", type="reference" ) + public static final String SP_RESULT = "result"; + @SearchParamDefinition(name="status", path="DiagnosticReport.status", description="The status of the report", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="subject", path="DiagnosticReport.subject", description="The subject of the report", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="issued", path="DiagnosticReport.issued", description="When the report was issued", type="date" ) + public static final String SP_ISSUED = "issued"; + @SearchParamDefinition(name="diagnosis", path="DiagnosticReport.codedDiagnosis", description="A coded diagnosis on the report", type="token" ) + public static final String SP_DIAGNOSIS = "diagnosis"; + @SearchParamDefinition(name="image", path="DiagnosticReport.image.link", description="Reference to the image source", type="reference" ) + public static final String SP_IMAGE = "image"; + @SearchParamDefinition(name="encounter", path="DiagnosticReport.encounter", description="The Encounter when the order was made", type="reference" ) + public static final String SP_ENCOUNTER = "encounter"; + @SearchParamDefinition(name="date", path="DiagnosticReport.diagnostic[x]", description="The clinically relevant time of the report", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="patient", path="DiagnosticReport.subject", description="The subject of the report if a patient", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="request", path="DiagnosticReport.requestDetail", description="What was requested", type="reference" ) + public static final String SP_REQUEST = "request"; + @SearchParamDefinition(name="specimen", path="DiagnosticReport.specimen", description="The specimen details", type="reference" ) + public static final String SP_SPECIMEN = "specimen"; + @SearchParamDefinition(name="name", path="DiagnosticReport.name", description="The name of the report (e.g. the code for the report as a whole, as opposed to codes for the atomic results, which are the names on the observation resource referred to from the result)", type="token" ) + public static final String SP_NAME = "name"; + @SearchParamDefinition(name="service", path="DiagnosticReport.serviceCategory", description="Which diagnostic discipline/department created the report", type="token" ) + public static final String SP_SERVICE = "service"; + @SearchParamDefinition(name="performer", path="DiagnosticReport.performer", description="Who was the source of the report (organization)", type="reference" ) + public static final String SP_PERFORMER = "performer"; + @SearchParamDefinition(name="identifier", path="DiagnosticReport.identifier", description="An identifier for the report", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Distance.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Distance.class new file mode 100644 index 0000000000000000000000000000000000000000..7e1f9f89fb1b23a8a3d7597892155afa06102079 GIT binary patch literal 2984 zcma)8Yf~F#6n-`rmTWebTCIS$v6K)J+Em+0Ezm*<MZoYnZ@2$xUj=U`lfLHB4hha zA5L%Wn5DGoy3L8S#e?~D#*|TVVuT^Hj*)w|XcS!!%!`T-ReYr4v5IvSA1jDBdquH1 z={nZL^NNu#XM`v!=uh|txo4Ec$ly9dc!#n(Mm}HoLV;?Qr>vqwoV*RcZ-;id!i<>C z9?@QIbFmddrP)9mv#GqWgzeB$%N8o7oVahw?8WMNx%$-DH5BwbsxYu6*37cW^iJ4z z!7&^btgPUs@7;}tX*y%@5OHP176XQC!(yn;dMF+5;1Vx(mU8KMf=_gOiqBXi9sT%R zhk*^2OA0w1n-DCV6t;A1V}~V_f~n&vp0Sux$V(E}k;XM07Hl2wO0IySj`wg~$5q7J z;HejciS~spa;9bEWlh>xPT3Vpl-$%Ri2M1>IwjNI_FVS)8LpO0&&oHma*jMRO-_zG zb}Vkfzq9M@BS$g3D@Rp9n}KVjf<2IG)1H|V)hLLyo zZR|$=86er_9w&@D%6nx;SX>*v0gmfN@9l=TVacs0*J0e(alO>^+-~7CnMS?jb9m*( zoAFPMyYYNMxEAZ~QapBCZ@G1U*AGjkWjf}r+pQzMF;1E?7&lCS?bIvuD1_x4G*~71lQV^eDe>`;%jI}=s`e5g1=Bmj(ESi>^%pU zTB?(+)v4C%q1Ngv2+0NOWw9yYHJp>T;o>Fr5AW-@h%uI~^IzDWI! zfXDoXz#>x=9^zl2 z2?!Wva>t9QgCLcAtTE#p$)l;yQ zFII7ziioFR7r$1;AQe$h!3OTGqMM4Cr(o~)oJQ+aeAz{&LGAA1CpfNjW!Nk?j&U`n zvxeUPH%q*0g45Z`^i*HPU9UIK?zNR^3$GHu`z^elHf3K8yWMq*Lkf2Z-R8lOGDiOc DM*6=& literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Distance.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Distance.java similarity index 72% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Distance.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Distance.java index 1c0e51998cd..fab94b7bb90 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Distance.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Distance.java @@ -1,87 +1,88 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import org.hl7.fhir.instance.model.annotations.DatatypeDef; -/** - * A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies. - */ -@DatatypeDef(name="Distance") -public class Distance extends Quantity { - - private static final long serialVersionUID = -483422721L; - - public Distance copy() { - Distance dst = new Distance(); - copyValues(dst); - dst.value = value == null ? null : value.copy(); - dst.comparator = comparator == null ? null : comparator.copy(); - dst.units = units == null ? null : units.copy(); - dst.system = system == null ? null : system.copy(); - dst.code = code == null ? null : code.copy(); - return dst; - } - - protected Distance typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (value == null || value.isEmpty()) && (comparator == null || comparator.isEmpty()) - && (units == null || units.isEmpty()) && (system == null || system.isEmpty()) && (code == null || code.isEmpty()) - ; - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +/** + * A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies. + */ +@DatatypeDef(name="Distance") +public class Distance extends Quantity { + + private static final long serialVersionUID = -483422721L; + + public Distance copy() { + Distance dst = new Distance(); + copyValues(dst); + dst.value = value == null ? null : value.copy(); + dst.comparator = comparator == null ? null : comparator.copy(); + dst.units = units == null ? null : units.copy(); + dst.system = system == null ? null : system.copy(); + dst.code = code == null ? null : code.copy(); + return dst; + } + + protected Distance typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Distance)) + return false; + Distance o = (Distance) other; + return compareDeep(value, o.value, true) && compareDeep(comparator, o.comparator, true) && compareDeep(units, o.units, true) + && compareDeep(system, o.system, true) && compareDeep(code, o.code, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Distance)) + return false; + Distance o = (Distance) other; + return compareValues(value, o.value, true) && compareValues(comparator, o.comparator, true) && compareValues(units, o.units, true) + && compareValues(system, o.system, true) && compareValues(code, o.code, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (value == null || value.isEmpty()) && (comparator == null || comparator.isEmpty()) + && (units == null || units.isEmpty()) && (system == null || system.isEmpty()) && (code == null || code.isEmpty()) + ; + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentManifest$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentManifest$1.class new file mode 100644 index 0000000000000000000000000000000000000000..1b687408261309bcceba629ffd2e936f9e1885ee GIT binary patch literal 965 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DocumentManifest.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentManifest.java similarity index 85% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DocumentManifest.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentManifest.java index 170981e27b3..2f62ac3bc2e 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DocumentManifest.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentManifest.java @@ -1,881 +1,879 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A manifest that defines a set of documents. - */ -@ResourceDef(name="DocumentManifest", profile="http://hl7.org/fhir/Profile/DocumentManifest") -public class DocumentManifest extends DomainResource { - - public enum DocumentReferenceStatus implements FhirEnum { - /** - * This is the current reference for this document. - */ - CURRENT, - /** - * This reference has been superseded by another reference. - */ - SUPERCEDED, - /** - * This reference was created in error. - */ - ENTEREDINERROR, - /** - * added to help the parsers - */ - NULL; - - public static final DocumentReferenceStatusEnumFactory ENUM_FACTORY = new DocumentReferenceStatusEnumFactory(); - - public static DocumentReferenceStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("current".equals(codeString)) - return CURRENT; - if ("superceded".equals(codeString)) - return SUPERCEDED; - if ("entered in error".equals(codeString)) - return ENTEREDINERROR; - throw new IllegalArgumentException("Unknown DocumentReferenceStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case CURRENT: return "current"; - case SUPERCEDED: return "superceded"; - case ENTEREDINERROR: return "entered in error"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case CURRENT: return ""; - case SUPERCEDED: return ""; - case ENTEREDINERROR: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case CURRENT: return "This is the current reference for this document."; - case SUPERCEDED: return "This reference has been superseded by another reference."; - case ENTEREDINERROR: return "This reference was created in error."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case CURRENT: return "current"; - case SUPERCEDED: return "superceded"; - case ENTEREDINERROR: return "entered in error"; - default: return "?"; - } - } - } - - public static class DocumentReferenceStatusEnumFactory implements EnumFactory { - public DocumentReferenceStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("current".equals(codeString)) - return DocumentReferenceStatus.CURRENT; - if ("superceded".equals(codeString)) - return DocumentReferenceStatus.SUPERCEDED; - if ("entered in error".equals(codeString)) - return DocumentReferenceStatus.ENTEREDINERROR; - throw new IllegalArgumentException("Unknown DocumentReferenceStatus code '"+codeString+"'"); - } - public String toCode(DocumentReferenceStatus code) throws IllegalArgumentException { - if (code == DocumentReferenceStatus.CURRENT) - return "current"; - if (code == DocumentReferenceStatus.SUPERCEDED) - return "superceded"; - if (code == DocumentReferenceStatus.ENTEREDINERROR) - return "entered in error"; - return "?"; - } - } - - /** - * A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts. - */ - @Child(name="masterIdentifier", type={Identifier.class}, order=-1, min=1, max=1) - @Description(shortDefinition="Unique Identifier for the set of documents", formalDefinition="A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts." ) - protected Identifier masterIdentifier; - - /** - * Other identifiers associated with the document, including version independent, source record and workflow related identifiers. - */ - @Child(name="identifier", type={Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Other identifiers for the manifest", formalDefinition="Other identifiers associated with the document, including version independent, source record and workflow related identifiers." ) - protected List identifier; - - /** - * Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case). - */ - @Child(name="subject", type={Patient.class, Practitioner.class, Group.class, Device.class}, order=1, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="The subject of the set of documents", formalDefinition="Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case)." ) - protected List subject; - /** - * The actual objects that are the target of the reference (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) - */ - protected List subjectTarget; - - - /** - * A patient, practitioner, or organization for which this set of documents is intended. - */ - @Child(name="recipient", type={Patient.class, Practitioner.class, Organization.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Intended to get notified about this set of documents", formalDefinition="A patient, practitioner, or organization for which this set of documents is intended." ) - protected List recipient; - /** - * The actual objects that are the target of the reference (A patient, practitioner, or organization for which this set of documents is intended.) - */ - protected List recipientTarget; - - - /** - * Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider. - */ - @Child(name="type", type={CodeableConcept.class}, order=3, min=0, max=1) - @Description(shortDefinition="What kind of document set this is", formalDefinition="Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider." ) - protected CodeableConcept type; - - /** - * Identifies who is responsible for adding the information to the document. - */ - @Child(name="author", type={Practitioner.class, Device.class, Patient.class, RelatedPerson.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Who and/or what authored the document", formalDefinition="Identifies who is responsible for adding the information to the document." ) - protected List author; - /** - * The actual objects that are the target of the reference (Identifies who is responsible for adding the information to the document.) - */ - protected List authorTarget; - - - /** - * When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc). - */ - @Child(name="created", type={DateTimeType.class}, order=5, min=0, max=1) - @Description(shortDefinition="When this document manifest created", formalDefinition="When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc)." ) - protected DateTimeType created; - - /** - * Identifies the source system, application, or software that produced the document manifest. - */ - @Child(name="source", type={UriType.class}, order=6, min=0, max=1) - @Description(shortDefinition="The source system/application/software", formalDefinition="Identifies the source system, application, or software that produced the document manifest." ) - protected UriType source; - - /** - * The status of this document manifest. - */ - @Child(name="status", type={CodeType.class}, order=7, min=1, max=1) - @Description(shortDefinition="current | superceded | entered in error", formalDefinition="The status of this document manifest." ) - protected Enumeration status; - - /** - * Whether this document manifest replaces another. - */ - @Child(name="supercedes", type={DocumentManifest.class}, order=8, min=0, max=1) - @Description(shortDefinition="If this document manifest replaces another", formalDefinition="Whether this document manifest replaces another." ) - protected Reference supercedes; - - /** - * The actual object that is the target of the reference (Whether this document manifest replaces another.) - */ - protected DocumentManifest supercedesTarget; - - /** - * Human-readable description of the source document. This is sometimes known as the "title". - */ - @Child(name="description", type={StringType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Human-readable description (title)", formalDefinition="Human-readable description of the source document. This is sometimes known as the 'title'." ) - protected StringType description; - - /** - * A code specifying the level of confidentiality of this set of Documents. - */ - @Child(name="confidentiality", type={CodeableConcept.class}, order=10, min=0, max=1) - @Description(shortDefinition="Sensitivity of set of documents", formalDefinition="A code specifying the level of confidentiality of this set of Documents." ) - protected CodeableConcept confidentiality; - - /** - * The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed. - */ - @Child(name="content", type={DocumentReference.class, Binary.class, Media.class}, order=11, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Contents of this set of documents", formalDefinition="The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed." ) - protected List content; - /** - * The actual objects that are the target of the reference (The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed.) - */ - protected List contentTarget; - - - private static final long serialVersionUID = 388610018L; - - public DocumentManifest() { - super(); - } - - public DocumentManifest(Identifier masterIdentifier, Enumeration status) { - super(); - this.masterIdentifier = masterIdentifier; - this.status = status; - } - - /** - * @return {@link #masterIdentifier} (A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.) - */ - public Identifier getMasterIdentifier() { - if (this.masterIdentifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentManifest.masterIdentifier"); - else if (Configuration.doAutoCreate()) - this.masterIdentifier = new Identifier(); - return this.masterIdentifier; - } - - public boolean hasMasterIdentifier() { - return this.masterIdentifier != null && !this.masterIdentifier.isEmpty(); - } - - /** - * @param value {@link #masterIdentifier} (A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.) - */ - public DocumentManifest setMasterIdentifier(Identifier value) { - this.masterIdentifier = value; - return this; - } - - /** - * @return {@link #identifier} (Other identifiers associated with the document, including version independent, source record and workflow related identifiers.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Other identifiers associated with the document, including version independent, source record and workflow related identifiers.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #subject} (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) - */ - public List getSubject() { - if (this.subject == null) - this.subject = new ArrayList(); - return this.subject; - } - - public boolean hasSubject() { - if (this.subject == null) - return false; - for (Reference item : this.subject) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #subject} (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) - */ - // syntactic sugar - public Reference addSubject() { //3 - Reference t = new Reference(); - if (this.subject == null) - this.subject = new ArrayList(); - this.subject.add(t); - return t; - } - - /** - * @return {@link #subject} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) - */ - public List getSubjectTarget() { - if (this.subjectTarget == null) - this.subjectTarget = new ArrayList(); - return this.subjectTarget; - } - - /** - * @return {@link #recipient} (A patient, practitioner, or organization for which this set of documents is intended.) - */ - public List getRecipient() { - if (this.recipient == null) - this.recipient = new ArrayList(); - return this.recipient; - } - - public boolean hasRecipient() { - if (this.recipient == null) - return false; - for (Reference item : this.recipient) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #recipient} (A patient, practitioner, or organization for which this set of documents is intended.) - */ - // syntactic sugar - public Reference addRecipient() { //3 - Reference t = new Reference(); - if (this.recipient == null) - this.recipient = new ArrayList(); - this.recipient.add(t); - return t; - } - - /** - * @return {@link #recipient} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A patient, practitioner, or organization for which this set of documents is intended.) - */ - public List getRecipientTarget() { - if (this.recipientTarget == null) - this.recipientTarget = new ArrayList(); - return this.recipientTarget; - } - - /** - * @return {@link #type} (Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider.) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentManifest.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider.) - */ - public DocumentManifest setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #author} (Identifies who is responsible for adding the information to the document.) - */ - public List getAuthor() { - if (this.author == null) - this.author = new ArrayList(); - return this.author; - } - - public boolean hasAuthor() { - if (this.author == null) - return false; - for (Reference item : this.author) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #author} (Identifies who is responsible for adding the information to the document.) - */ - // syntactic sugar - public Reference addAuthor() { //3 - Reference t = new Reference(); - if (this.author == null) - this.author = new ArrayList(); - this.author.add(t); - return t; - } - - /** - * @return {@link #author} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies who is responsible for adding the information to the document.) - */ - public List getAuthorTarget() { - if (this.authorTarget == null) - this.authorTarget = new ArrayList(); - return this.authorTarget; - } - - /** - * @return {@link #created} (When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc).). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DateTimeType getCreatedElement() { - if (this.created == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentManifest.created"); - else if (Configuration.doAutoCreate()) - this.created = new DateTimeType(); - return this.created; - } - - public boolean hasCreatedElement() { - return this.created != null && !this.created.isEmpty(); - } - - public boolean hasCreated() { - return this.created != null && !this.created.isEmpty(); - } - - /** - * @param value {@link #created} (When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc).). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DocumentManifest setCreatedElement(DateTimeType value) { - this.created = value; - return this; - } - - /** - * @return When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc). - */ - public Date getCreated() { - return this.created == null ? null : this.created.getValue(); - } - - /** - * @param value When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc). - */ - public DocumentManifest setCreated(Date value) { - if (value == null) - this.created = null; - else { - if (this.created == null) - this.created = new DateTimeType(); - this.created.setValue(value); - } - return this; - } - - /** - * @return {@link #source} (Identifies the source system, application, or software that produced the document manifest.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value - */ - public UriType getSourceElement() { - if (this.source == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentManifest.source"); - else if (Configuration.doAutoCreate()) - this.source = new UriType(); - return this.source; - } - - public boolean hasSourceElement() { - return this.source != null && !this.source.isEmpty(); - } - - public boolean hasSource() { - return this.source != null && !this.source.isEmpty(); - } - - /** - * @param value {@link #source} (Identifies the source system, application, or software that produced the document manifest.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value - */ - public DocumentManifest setSourceElement(UriType value) { - this.source = value; - return this; - } - - /** - * @return Identifies the source system, application, or software that produced the document manifest. - */ - public String getSource() { - return this.source == null ? null : this.source.getValue(); - } - - /** - * @param value Identifies the source system, application, or software that produced the document manifest. - */ - public DocumentManifest setSource(String value) { - if (Utilities.noString(value)) - this.source = null; - else { - if (this.source == null) - this.source = new UriType(); - this.source.setValue(value); - } - return this; - } - - /** - * @return {@link #status} (The status of this document manifest.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentManifest.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of this document manifest.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public DocumentManifest setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of this document manifest. - */ - public DocumentReferenceStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of this document manifest. - */ - public DocumentManifest setStatus(DocumentReferenceStatus value) { - if (this.status == null) - this.status = new Enumeration(DocumentReferenceStatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #supercedes} (Whether this document manifest replaces another.) - */ - public Reference getSupercedes() { - if (this.supercedes == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentManifest.supercedes"); - else if (Configuration.doAutoCreate()) - this.supercedes = new Reference(); - return this.supercedes; - } - - public boolean hasSupercedes() { - return this.supercedes != null && !this.supercedes.isEmpty(); - } - - /** - * @param value {@link #supercedes} (Whether this document manifest replaces another.) - */ - public DocumentManifest setSupercedes(Reference value) { - this.supercedes = value; - return this; - } - - /** - * @return {@link #supercedes} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Whether this document manifest replaces another.) - */ - public DocumentManifest getSupercedesTarget() { - if (this.supercedesTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentManifest.supercedes"); - else if (Configuration.doAutoCreate()) - this.supercedesTarget = new DocumentManifest(); - return this.supercedesTarget; - } - - /** - * @param value {@link #supercedes} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Whether this document manifest replaces another.) - */ - public DocumentManifest setSupercedesTarget(DocumentManifest value) { - this.supercedesTarget = value; - return this; - } - - /** - * @return {@link #description} (Human-readable description of the source document. This is sometimes known as the "title".). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentManifest.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Human-readable description of the source document. This is sometimes known as the "title".). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public DocumentManifest setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Human-readable description of the source document. This is sometimes known as the "title". - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Human-readable description of the source document. This is sometimes known as the "title". - */ - public DocumentManifest setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #confidentiality} (A code specifying the level of confidentiality of this set of Documents.) - */ - public CodeableConcept getConfidentiality() { - if (this.confidentiality == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentManifest.confidentiality"); - else if (Configuration.doAutoCreate()) - this.confidentiality = new CodeableConcept(); - return this.confidentiality; - } - - public boolean hasConfidentiality() { - return this.confidentiality != null && !this.confidentiality.isEmpty(); - } - - /** - * @param value {@link #confidentiality} (A code specifying the level of confidentiality of this set of Documents.) - */ - public DocumentManifest setConfidentiality(CodeableConcept value) { - this.confidentiality = value; - return this; - } - - /** - * @return {@link #content} (The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed.) - */ - public List getContent() { - if (this.content == null) - this.content = new ArrayList(); - return this.content; - } - - public boolean hasContent() { - if (this.content == null) - return false; - for (Reference item : this.content) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #content} (The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed.) - */ - // syntactic sugar - public Reference addContent() { //3 - Reference t = new Reference(); - if (this.content == null) - this.content = new ArrayList(); - this.content.add(t); - return t; - } - - /** - * @return {@link #content} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed.) - */ - public List getContentTarget() { - if (this.contentTarget == null) - this.contentTarget = new ArrayList(); - return this.contentTarget; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("masterIdentifier", "Identifier", "A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.", 0, java.lang.Integer.MAX_VALUE, masterIdentifier)); - childrenList.add(new Property("identifier", "Identifier", "Other identifiers associated with the document, including version independent, source record and workflow related identifiers.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device)", "Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("recipient", "Reference(Patient|Practitioner|Organization)", "A patient, practitioner, or organization for which this set of documents is intended.", 0, java.lang.Integer.MAX_VALUE, recipient)); - childrenList.add(new Property("type", "CodeableConcept", "Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("author", "Reference(Practitioner|Device|Patient|RelatedPerson)", "Identifies who is responsible for adding the information to the document.", 0, java.lang.Integer.MAX_VALUE, author)); - childrenList.add(new Property("created", "dateTime", "When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc).", 0, java.lang.Integer.MAX_VALUE, created)); - childrenList.add(new Property("source", "uri", "Identifies the source system, application, or software that produced the document manifest.", 0, java.lang.Integer.MAX_VALUE, source)); - childrenList.add(new Property("status", "code", "The status of this document manifest.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("supercedes", "Reference(DocumentManifest)", "Whether this document manifest replaces another.", 0, java.lang.Integer.MAX_VALUE, supercedes)); - childrenList.add(new Property("description", "string", "Human-readable description of the source document. This is sometimes known as the 'title'.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("confidentiality", "CodeableConcept", "A code specifying the level of confidentiality of this set of Documents.", 0, java.lang.Integer.MAX_VALUE, confidentiality)); - childrenList.add(new Property("content", "Reference(DocumentReference|Binary|Media)", "The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed.", 0, java.lang.Integer.MAX_VALUE, content)); - } - - public DocumentManifest copy() { - DocumentManifest dst = new DocumentManifest(); - copyValues(dst); - dst.masterIdentifier = masterIdentifier == null ? null : masterIdentifier.copy(); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - if (subject != null) { - dst.subject = new ArrayList(); - for (Reference i : subject) - dst.subject.add(i.copy()); - }; - if (recipient != null) { - dst.recipient = new ArrayList(); - for (Reference i : recipient) - dst.recipient.add(i.copy()); - }; - dst.type = type == null ? null : type.copy(); - if (author != null) { - dst.author = new ArrayList(); - for (Reference i : author) - dst.author.add(i.copy()); - }; - dst.created = created == null ? null : created.copy(); - dst.source = source == null ? null : source.copy(); - dst.status = status == null ? null : status.copy(); - dst.supercedes = supercedes == null ? null : supercedes.copy(); - dst.description = description == null ? null : description.copy(); - dst.confidentiality = confidentiality == null ? null : confidentiality.copy(); - if (content != null) { - dst.content = new ArrayList(); - for (Reference i : content) - dst.content.add(i.copy()); - }; - return dst; - } - - protected DocumentManifest typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (masterIdentifier == null || masterIdentifier.isEmpty()) && (identifier == null || identifier.isEmpty()) - && (subject == null || subject.isEmpty()) && (recipient == null || recipient.isEmpty()) && (type == null || type.isEmpty()) - && (author == null || author.isEmpty()) && (created == null || created.isEmpty()) && (source == null || source.isEmpty()) - && (status == null || status.isEmpty()) && (supercedes == null || supercedes.isEmpty()) && (description == null || description.isEmpty()) - && (confidentiality == null || confidentiality.isEmpty()) && (content == null || content.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.DocumentManifest; - } - - @SearchParamDefinition(name="content", path="DocumentManifest.content", description="Contents of this set of documents", type="reference" ) - public static final String SP_CONTENT = "content"; - @SearchParamDefinition(name="author", path="DocumentManifest.author", description="Who and/or what authored the document", type="reference" ) - public static final String SP_AUTHOR = "author"; - @SearchParamDefinition(name="patient", path="DocumentManifest.subject", description="The subject of the set of documents", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="supersedes", path="DocumentManifest.supercedes", description="If this document manifest replaces another", type="reference" ) - public static final String SP_SUPERSEDES = "supersedes"; - @SearchParamDefinition(name="status", path="DocumentManifest.status", description="current | superceded | entered in error", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="created", path="DocumentManifest.created", description="When this document manifest created", type="date" ) - public static final String SP_CREATED = "created"; - @SearchParamDefinition(name="confidentiality", path="DocumentManifest.confidentiality", description="Sensitivity of set of documents", type="token" ) - public static final String SP_CONFIDENTIALITY = "confidentiality"; - @SearchParamDefinition(name="description", path="DocumentManifest.description", description="Human-readable description (title)", type="string" ) - public static final String SP_DESCRIPTION = "description"; - @SearchParamDefinition(name="subject", path="DocumentManifest.subject", description="The subject of the set of documents", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="type", path="DocumentManifest.type", description="What kind of document set this is", type="token" ) - public static final String SP_TYPE = "type"; - @SearchParamDefinition(name="identifier", path="DocumentManifest.masterIdentifier|DocumentManifest.identifier", description="Unique Identifier for the set of documents", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - @SearchParamDefinition(name="recipient", path="DocumentManifest.recipient", description="Intended to get notified about this set of documents", type="reference" ) - public static final String SP_RECIPIENT = "recipient"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A manifest that defines a set of documents. + */ +@ResourceDef(name="DocumentManifest", profile="http://hl7.org/fhir/Profile/DocumentManifest") +public class DocumentManifest extends DomainResource { + + public enum DocumentReferenceStatus { + /** + * This is the current reference for this document. + */ + CURRENT, + /** + * This reference has been superseded by another reference. + */ + SUPERCEDED, + /** + * This reference was created in error. + */ + ENTEREDINERROR, + /** + * added to help the parsers + */ + NULL; + public static DocumentReferenceStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("current".equals(codeString)) + return CURRENT; + if ("superceded".equals(codeString)) + return SUPERCEDED; + if ("entered-in-error".equals(codeString)) + return ENTEREDINERROR; + throw new Exception("Unknown DocumentReferenceStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case CURRENT: return "current"; + case SUPERCEDED: return "superceded"; + case ENTEREDINERROR: return "entered-in-error"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case CURRENT: return ""; + case SUPERCEDED: return ""; + case ENTEREDINERROR: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case CURRENT: return "This is the current reference for this document."; + case SUPERCEDED: return "This reference has been superseded by another reference."; + case ENTEREDINERROR: return "This reference was created in error."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case CURRENT: return "current"; + case SUPERCEDED: return "superceded"; + case ENTEREDINERROR: return "entered-in-error"; + default: return "?"; + } + } + } + + public static class DocumentReferenceStatusEnumFactory implements EnumFactory { + public DocumentReferenceStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("current".equals(codeString)) + return DocumentReferenceStatus.CURRENT; + if ("superceded".equals(codeString)) + return DocumentReferenceStatus.SUPERCEDED; + if ("entered-in-error".equals(codeString)) + return DocumentReferenceStatus.ENTEREDINERROR; + throw new IllegalArgumentException("Unknown DocumentReferenceStatus code '"+codeString+"'"); + } + public String toCode(DocumentReferenceStatus code) { + if (code == DocumentReferenceStatus.CURRENT) + return "current"; + if (code == DocumentReferenceStatus.SUPERCEDED) + return "superceded"; + if (code == DocumentReferenceStatus.ENTEREDINERROR) + return "entered-in-error"; + return "?"; + } + } + + /** + * A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts. + */ + @Child(name="masterIdentifier", type={Identifier.class}, order=-1, min=0, max=1) + @Description(shortDefinition="Unique Identifier for the set of documents", formalDefinition="A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts." ) + protected Identifier masterIdentifier; + + /** + * Other identifiers associated with the document, including version independent, source record and workflow related identifiers. + */ + @Child(name="identifier", type={Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Other identifiers for the manifest", formalDefinition="Other identifiers associated with the document, including version independent, source record and workflow related identifiers." ) + protected List identifier; + + /** + * Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case). + */ + @Child(name="subject", type={Patient.class, Practitioner.class, Group.class, Device.class}, order=1, min=0, max=1) + @Description(shortDefinition="The subject of the set of documents", formalDefinition="Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case)." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) + */ + protected Resource subjectTarget; + + /** + * A patient, practitioner, or organization for which this set of documents is intended. + */ + @Child(name="recipient", type={Patient.class, Practitioner.class, Organization.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Intended to get notified about this set of documents", formalDefinition="A patient, practitioner, or organization for which this set of documents is intended." ) + protected List recipient; + /** + * The actual objects that are the target of the reference (A patient, practitioner, or organization for which this set of documents is intended.) + */ + protected List recipientTarget; + + + /** + * Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider. + */ + @Child(name="type", type={CodeableConcept.class}, order=3, min=0, max=1) + @Description(shortDefinition="What kind of document set this is", formalDefinition="Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider." ) + protected CodeableConcept type; + + /** + * Identifies who is responsible for adding the information to the document. + */ + @Child(name="author", type={Practitioner.class, Organization.class, Device.class, Patient.class, RelatedPerson.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Who and/or what authored the document", formalDefinition="Identifies who is responsible for adding the information to the document." ) + protected List author; + /** + * The actual objects that are the target of the reference (Identifies who is responsible for adding the information to the document.) + */ + protected List authorTarget; + + + /** + * When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc). + */ + @Child(name="created", type={DateTimeType.class}, order=5, min=0, max=1) + @Description(shortDefinition="When this document manifest created", formalDefinition="When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc)." ) + protected DateTimeType created; + + /** + * Identifies the source system, application, or software that produced the document manifest. + */ + @Child(name="source", type={UriType.class}, order=6, min=0, max=1) + @Description(shortDefinition="The source system/application/software", formalDefinition="Identifies the source system, application, or software that produced the document manifest." ) + protected UriType source; + + /** + * The status of this document manifest. + */ + @Child(name="status", type={CodeType.class}, order=7, min=1, max=1) + @Description(shortDefinition="current | superceded | entered-in-error", formalDefinition="The status of this document manifest." ) + protected Enumeration status; + + /** + * Whether this document manifest replaces another. + */ + @Child(name="supercedes", type={DocumentManifest.class}, order=8, min=0, max=1) + @Description(shortDefinition="If this document manifest replaces another", formalDefinition="Whether this document manifest replaces another." ) + protected Reference supercedes; + + /** + * The actual object that is the target of the reference (Whether this document manifest replaces another.) + */ + protected DocumentManifest supercedesTarget; + + /** + * Human-readable description of the source document. This is sometimes known as the "title". + */ + @Child(name="description", type={StringType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Human-readable description (title)", formalDefinition="Human-readable description of the source document. This is sometimes known as the 'title'." ) + protected StringType description; + + /** + * A code specifying the level of confidentiality of this set of Documents. + */ + @Child(name="confidentiality", type={CodeableConcept.class}, order=10, min=0, max=1) + @Description(shortDefinition="Sensitivity of set of documents", formalDefinition="A code specifying the level of confidentiality of this set of Documents." ) + protected CodeableConcept confidentiality; + + /** + * The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed. + */ + @Child(name="content", type={DocumentReference.class, Binary.class, Media.class}, order=11, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Contents of this set of documents", formalDefinition="The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed." ) + protected List content; + /** + * The actual objects that are the target of the reference (The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed.) + */ + protected List contentTarget; + + + private static final long serialVersionUID = -383334336L; + + public DocumentManifest() { + super(); + } + + public DocumentManifest(Enumeration status) { + super(); + this.status = status; + } + + /** + * @return {@link #masterIdentifier} (A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.) + */ + public Identifier getMasterIdentifier() { + if (this.masterIdentifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentManifest.masterIdentifier"); + else if (Configuration.doAutoCreate()) + this.masterIdentifier = new Identifier(); // cc + return this.masterIdentifier; + } + + public boolean hasMasterIdentifier() { + return this.masterIdentifier != null && !this.masterIdentifier.isEmpty(); + } + + /** + * @param value {@link #masterIdentifier} (A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.) + */ + public DocumentManifest setMasterIdentifier(Identifier value) { + this.masterIdentifier = value; + return this; + } + + /** + * @return {@link #identifier} (Other identifiers associated with the document, including version independent, source record and workflow related identifiers.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Other identifiers associated with the document, including version independent, source record and workflow related identifiers.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #subject} (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentManifest.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) + */ + public DocumentManifest setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) + */ + public Resource getSubjectTarget() { + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).) + */ + public DocumentManifest setSubjectTarget(Resource value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #recipient} (A patient, practitioner, or organization for which this set of documents is intended.) + */ + public List getRecipient() { + if (this.recipient == null) + this.recipient = new ArrayList(); + return this.recipient; + } + + public boolean hasRecipient() { + if (this.recipient == null) + return false; + for (Reference item : this.recipient) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #recipient} (A patient, practitioner, or organization for which this set of documents is intended.) + */ + // syntactic sugar + public Reference addRecipient() { //3 + Reference t = new Reference(); + if (this.recipient == null) + this.recipient = new ArrayList(); + this.recipient.add(t); + return t; + } + + /** + * @return {@link #recipient} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A patient, practitioner, or organization for which this set of documents is intended.) + */ + public List getRecipientTarget() { + if (this.recipientTarget == null) + this.recipientTarget = new ArrayList(); + return this.recipientTarget; + } + + /** + * @return {@link #type} (Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider.) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentManifest.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider.) + */ + public DocumentManifest setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #author} (Identifies who is responsible for adding the information to the document.) + */ + public List getAuthor() { + if (this.author == null) + this.author = new ArrayList(); + return this.author; + } + + public boolean hasAuthor() { + if (this.author == null) + return false; + for (Reference item : this.author) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #author} (Identifies who is responsible for adding the information to the document.) + */ + // syntactic sugar + public Reference addAuthor() { //3 + Reference t = new Reference(); + if (this.author == null) + this.author = new ArrayList(); + this.author.add(t); + return t; + } + + /** + * @return {@link #author} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies who is responsible for adding the information to the document.) + */ + public List getAuthorTarget() { + if (this.authorTarget == null) + this.authorTarget = new ArrayList(); + return this.authorTarget; + } + + /** + * @return {@link #created} (When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc).). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DateTimeType getCreatedElement() { + if (this.created == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentManifest.created"); + else if (Configuration.doAutoCreate()) + this.created = new DateTimeType(); // bb + return this.created; + } + + public boolean hasCreatedElement() { + return this.created != null && !this.created.isEmpty(); + } + + public boolean hasCreated() { + return this.created != null && !this.created.isEmpty(); + } + + /** + * @param value {@link #created} (When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc).). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DocumentManifest setCreatedElement(DateTimeType value) { + this.created = value; + return this; + } + + /** + * @return When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc). + */ + public Date getCreated() { + return this.created == null ? null : this.created.getValue(); + } + + /** + * @param value When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc). + */ + public DocumentManifest setCreated(Date value) { + if (value == null) + this.created = null; + else { + if (this.created == null) + this.created = new DateTimeType(); + this.created.setValue(value); + } + return this; + } + + /** + * @return {@link #source} (Identifies the source system, application, or software that produced the document manifest.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value + */ + public UriType getSourceElement() { + if (this.source == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentManifest.source"); + else if (Configuration.doAutoCreate()) + this.source = new UriType(); // bb + return this.source; + } + + public boolean hasSourceElement() { + return this.source != null && !this.source.isEmpty(); + } + + public boolean hasSource() { + return this.source != null && !this.source.isEmpty(); + } + + /** + * @param value {@link #source} (Identifies the source system, application, or software that produced the document manifest.). This is the underlying object with id, value and extensions. The accessor "getSource" gives direct access to the value + */ + public DocumentManifest setSourceElement(UriType value) { + this.source = value; + return this; + } + + /** + * @return Identifies the source system, application, or software that produced the document manifest. + */ + public String getSource() { + return this.source == null ? null : this.source.getValue(); + } + + /** + * @param value Identifies the source system, application, or software that produced the document manifest. + */ + public DocumentManifest setSource(String value) { + if (Utilities.noString(value)) + this.source = null; + else { + if (this.source == null) + this.source = new UriType(); + this.source.setValue(value); + } + return this; + } + + /** + * @return {@link #status} (The status of this document manifest.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentManifest.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new DocumentReferenceStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of this document manifest.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public DocumentManifest setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of this document manifest. + */ + public DocumentReferenceStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of this document manifest. + */ + public DocumentManifest setStatus(DocumentReferenceStatus value) { + if (this.status == null) + this.status = new Enumeration(new DocumentReferenceStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #supercedes} (Whether this document manifest replaces another.) + */ + public Reference getSupercedes() { + if (this.supercedes == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentManifest.supercedes"); + else if (Configuration.doAutoCreate()) + this.supercedes = new Reference(); // cc + return this.supercedes; + } + + public boolean hasSupercedes() { + return this.supercedes != null && !this.supercedes.isEmpty(); + } + + /** + * @param value {@link #supercedes} (Whether this document manifest replaces another.) + */ + public DocumentManifest setSupercedes(Reference value) { + this.supercedes = value; + return this; + } + + /** + * @return {@link #supercedes} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Whether this document manifest replaces another.) + */ + public DocumentManifest getSupercedesTarget() { + if (this.supercedesTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentManifest.supercedes"); + else if (Configuration.doAutoCreate()) + this.supercedesTarget = new DocumentManifest(); // aa + return this.supercedesTarget; + } + + /** + * @param value {@link #supercedes} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Whether this document manifest replaces another.) + */ + public DocumentManifest setSupercedesTarget(DocumentManifest value) { + this.supercedesTarget = value; + return this; + } + + /** + * @return {@link #description} (Human-readable description of the source document. This is sometimes known as the "title".). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentManifest.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Human-readable description of the source document. This is sometimes known as the "title".). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public DocumentManifest setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Human-readable description of the source document. This is sometimes known as the "title". + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Human-readable description of the source document. This is sometimes known as the "title". + */ + public DocumentManifest setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #confidentiality} (A code specifying the level of confidentiality of this set of Documents.) + */ + public CodeableConcept getConfidentiality() { + if (this.confidentiality == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentManifest.confidentiality"); + else if (Configuration.doAutoCreate()) + this.confidentiality = new CodeableConcept(); // cc + return this.confidentiality; + } + + public boolean hasConfidentiality() { + return this.confidentiality != null && !this.confidentiality.isEmpty(); + } + + /** + * @param value {@link #confidentiality} (A code specifying the level of confidentiality of this set of Documents.) + */ + public DocumentManifest setConfidentiality(CodeableConcept value) { + this.confidentiality = value; + return this; + } + + /** + * @return {@link #content} (The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed.) + */ + public List getContent() { + if (this.content == null) + this.content = new ArrayList(); + return this.content; + } + + public boolean hasContent() { + if (this.content == null) + return false; + for (Reference item : this.content) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #content} (The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed.) + */ + // syntactic sugar + public Reference addContent() { //3 + Reference t = new Reference(); + if (this.content == null) + this.content = new ArrayList(); + this.content.add(t); + return t; + } + + /** + * @return {@link #content} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed.) + */ + public List getContentTarget() { + if (this.contentTarget == null) + this.contentTarget = new ArrayList(); + return this.contentTarget; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("masterIdentifier", "Identifier", "A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.", 0, java.lang.Integer.MAX_VALUE, masterIdentifier)); + childrenList.add(new Property("identifier", "Identifier", "Other identifiers associated with the document, including version independent, source record and workflow related identifiers.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device)", "Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("recipient", "Reference(Patient|Practitioner|Organization)", "A patient, practitioner, or organization for which this set of documents is intended.", 0, java.lang.Integer.MAX_VALUE, recipient)); + childrenList.add(new Property("type", "CodeableConcept", "Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("author", "Reference(Practitioner|Organization|Device|Patient|RelatedPerson)", "Identifies who is responsible for adding the information to the document.", 0, java.lang.Integer.MAX_VALUE, author)); + childrenList.add(new Property("created", "dateTime", "When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc).", 0, java.lang.Integer.MAX_VALUE, created)); + childrenList.add(new Property("source", "uri", "Identifies the source system, application, or software that produced the document manifest.", 0, java.lang.Integer.MAX_VALUE, source)); + childrenList.add(new Property("status", "code", "The status of this document manifest.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("supercedes", "Reference(DocumentManifest)", "Whether this document manifest replaces another.", 0, java.lang.Integer.MAX_VALUE, supercedes)); + childrenList.add(new Property("description", "string", "Human-readable description of the source document. This is sometimes known as the 'title'.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("confidentiality", "CodeableConcept", "A code specifying the level of confidentiality of this set of Documents.", 0, java.lang.Integer.MAX_VALUE, confidentiality)); + childrenList.add(new Property("content", "Reference(DocumentReference|Binary|Media)", "The list of resources that describe the parts of this document reference. Usually, these would be document references, but direct references to binary attachments and images are also allowed.", 0, java.lang.Integer.MAX_VALUE, content)); + } + + public DocumentManifest copy() { + DocumentManifest dst = new DocumentManifest(); + copyValues(dst); + dst.masterIdentifier = masterIdentifier == null ? null : masterIdentifier.copy(); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.subject = subject == null ? null : subject.copy(); + if (recipient != null) { + dst.recipient = new ArrayList(); + for (Reference i : recipient) + dst.recipient.add(i.copy()); + }; + dst.type = type == null ? null : type.copy(); + if (author != null) { + dst.author = new ArrayList(); + for (Reference i : author) + dst.author.add(i.copy()); + }; + dst.created = created == null ? null : created.copy(); + dst.source = source == null ? null : source.copy(); + dst.status = status == null ? null : status.copy(); + dst.supercedes = supercedes == null ? null : supercedes.copy(); + dst.description = description == null ? null : description.copy(); + dst.confidentiality = confidentiality == null ? null : confidentiality.copy(); + if (content != null) { + dst.content = new ArrayList(); + for (Reference i : content) + dst.content.add(i.copy()); + }; + return dst; + } + + protected DocumentManifest typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DocumentManifest)) + return false; + DocumentManifest o = (DocumentManifest) other; + return compareDeep(masterIdentifier, o.masterIdentifier, true) && compareDeep(identifier, o.identifier, true) + && compareDeep(subject, o.subject, true) && compareDeep(recipient, o.recipient, true) && compareDeep(type, o.type, true) + && compareDeep(author, o.author, true) && compareDeep(created, o.created, true) && compareDeep(source, o.source, true) + && compareDeep(status, o.status, true) && compareDeep(supercedes, o.supercedes, true) && compareDeep(description, o.description, true) + && compareDeep(confidentiality, o.confidentiality, true) && compareDeep(content, o.content, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DocumentManifest)) + return false; + DocumentManifest o = (DocumentManifest) other; + return compareValues(created, o.created, true) && compareValues(source, o.source, true) && compareValues(status, o.status, true) + && compareValues(description, o.description, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (masterIdentifier == null || masterIdentifier.isEmpty()) && (identifier == null || identifier.isEmpty()) + && (subject == null || subject.isEmpty()) && (recipient == null || recipient.isEmpty()) && (type == null || type.isEmpty()) + && (author == null || author.isEmpty()) && (created == null || created.isEmpty()) && (source == null || source.isEmpty()) + && (status == null || status.isEmpty()) && (supercedes == null || supercedes.isEmpty()) && (description == null || description.isEmpty()) + && (confidentiality == null || confidentiality.isEmpty()) && (content == null || content.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.DocumentManifest; + } + + @SearchParamDefinition(name="supersedes", path="DocumentManifest.supercedes", description="If this document manifest replaces another", type="reference" ) + public static final String SP_SUPERSEDES = "supersedes"; + @SearchParamDefinition(name="status", path="DocumentManifest.status", description="current | superceded | entered-in-error", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="subject", path="DocumentManifest.subject", description="The subject of the set of documents", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="type", path="DocumentManifest.type", description="What kind of document set this is", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="recipient", path="DocumentManifest.recipient", description="Intended to get notified about this set of documents", type="reference" ) + public static final String SP_RECIPIENT = "recipient"; + @SearchParamDefinition(name="content", path="DocumentManifest.content", description="Contents of this set of documents", type="reference" ) + public static final String SP_CONTENT = "content"; + @SearchParamDefinition(name="author", path="DocumentManifest.author", description="Who and/or what authored the document", type="reference" ) + public static final String SP_AUTHOR = "author"; + @SearchParamDefinition(name="patient", path="DocumentManifest.subject", description="The subject of the set of documents", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="source", path="DocumentManifest.source", description="The source system/application/software", type="string" ) + public static final String SP_SOURCE = "source"; + @SearchParamDefinition(name="created", path="DocumentManifest.created", description="When this document manifest created", type="date" ) + public static final String SP_CREATED = "created"; + @SearchParamDefinition(name="description", path="DocumentManifest.description", description="Human-readable description (title)", type="string" ) + public static final String SP_DESCRIPTION = "description"; + @SearchParamDefinition(name="confidentiality", path="DocumentManifest.confidentiality", description="Sensitivity of set of documents", type="token" ) + public static final String SP_CONFIDENTIALITY = "confidentiality"; + @SearchParamDefinition(name="identifier", path="DocumentManifest.masterIdentifier|DocumentManifest.identifier", description="Unique Identifier for the set of documents", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$1.class new file mode 100644 index 0000000000000000000000000000000000000000..26d62c8a223d784eb47345fc3e96b888c993f5a2 GIT binary patch literal 1560 zcmb_cZBNrs7(I6k%4&i6#+#xDkNH)Ci+Z;Y~Aoc0Om=S1dV zfQLa5Lm1|xMq-rR=CqGzcX+rfU{t_;hP-U-I-ym{n%lA;tji^LT3#zTf$VtY(DW=@ z-tvpKE2n&`vSoXrZm-#a&D&437@-+f$_$Z}48yB)&~?qw@x5}%*)F`_wi%jdE!Xj! zaE_s2cx0I&nxxto+7=zp)+$@8c2F=^U218eTC7c)Q}yu;dp7j0qT*@Bot%F5{AfDNIXvh(`?F{1e4By>&(Njfz!DJGNU? zgTN0YJm$k@c$mesfG1qysf3GMVjc+z&v-~8!Jv@u3i+;Z-<6v0O4WDeM4|E+0~n-? z=h;EhHOpn2Jdf9F$*peKR>&}VDp`i~smA}a{KuE6vtIM@uBIK+t?+smhDTNw&*z6T zv@vuwznDm>2E&WvaAe zsM_)AsM~j}=jH#Hc0`Lj6Ov21u4)B_=V!L;xTa_<?ay113n&r9ex+TBC^MyhJ8e%xlf2LRB02@ z#yS;5nfEd-(fkt$qAA^KL7{?^x z6cR`gYIuXUgzr$oCZUU6d?1X_SAa+ee1?iFDF6d#eJ!91*`s0kD5a@))8GiM;W}Xy cJrossyQ!y*vv@Pz?LC;7@1lZwFgM@z8#||{3jhEB literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentReferenceContextComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentReferenceContextComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..39449b619665fc084293f485542de84c5de738d6 GIT binary patch literal 5595 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 Nm*ltwpMggG{{T_c&SL-o literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentReferenceRelatesToComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentReferenceRelatesToComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..484e6d7c183ca176e25fc32d1c273d864277f85b GIT binary patch literal 6506 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentReferenceStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentReferenceStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..cfbcf400b9f0c73bacb03096cb6dee2df947624b GIT binary patch literal 1983 zcmb_dT~pge6g>;JB`bmuK|<3O3MmQLuH!aoleQ2DF(RcUKt#^Y8C}0JsXrz$i*O z-ZD_eWgV3~hVizJchr1E$5l1ItKmHj*9@FeuGiK4zK##n{GkB@vpVK9%o{j|1vT8% zu&AM`VTmC(=L67U$CrJjfpe*|msJfW&f`@EXs}Hz<2Hll#gc>(nfM4R6r>e5IYp`Qnu(9q z&JcYh>D0=;D03-8Y2p*Lf8l_Wl_21CH&~SQj@I@smtpk4DdF-~><2Y287^&!ha!9; zCQ?8X)l7J#vWaOEtGL6!$XLU=g1~rIj_?an>Dz zQ`dq?dTvL-@Cv==S(>R+Xnc)UV>DCKAY0r6`;`oa*J;dkHU*6&9`towe?f*Uz$^U? z)9NejqW>pYy^AbsTbX2E`wiK)mD^uvZA;%@M`SIDjE+I5%S-R6}YK4MckZ^LycCzs)^GG~1 zWjJxeD!7`J(&ITht()7X!e@JiCWMoN=hqM0KdqTX5znbebREt5dYJ|Z8;1-_A1>x5b!S|gG^q)A zcq17J7a~I!wP`JGYF0L$a2>TY7T;OaREO?>auGr}3t ziNzMOQOKLxECIVx=8~J|Rv7BHin*@!O2tvZu!LQ7Qu=@)O0ca;#U*maL?J?WOtfW3 z2su~**b)ZThv6X{Mm~h6@r(ona5)4AB%JK%OhQU8gb=|2`sg~ERmj**j+%o)(@#<(K+ETKD@`#b#LZRiR4OB3dsSOz)bXNWrgcZ4GYxGM)+NiHvD9h?YMW6_k+y1E z2rh~eB)&|eTP&Ul;7SOycrAq2@diH~lh8XpWfau((uSd$cGgH~ra7xF2d3JNS}5jq zWO?9hENP{LCyd)?crJ6E(-Ws|A(f;cTz zO?eV~T)$k@O!9Q=N}EfbMbB|UnUHjH<%BgbYM4kc*|nEJYHTkrrrc6ad9Y~y+E z@7^ie7U0Nc^+xuoH?l#!ktGLOTE)J?6^;Bo&i?~QMM`@(iYqt=X&!ZVP+y|N3i9dq zzFp<~!#J`ue=q7h?S{?pwf~HUJMgVuP$xDSP80yUQO_SYoc05|7T~|W%KEd^)S;6o zT|_A_y3Xi?U#a%H2q}T~dC2dhK`JSY<=4O*f+b}`MF^FYri##9QZ`nEmeL|NB^RM2 z7qD5`GLNnNv{l*0$2_(#V8?9_UW6ON20lMT6F$O5e2g9V1iSDl_Te)`@i~+B1rzZl zj^Qix;%hv|*)sf1QivChQW8#Y;(ZL=e2VDvOX)f?hn)m&ja{RX*FoMQKp$_F_g>!n zc}JB-#>HqDLrHl^q_)nhMJuZTe8XB_V>Q2}v){3r-xK5q&yfHcB6YlIwdVoQ10|*M zw+elZ=r@S|Bhh~%`aIDW?nOWT0O-3)%EKk)k&?1|jo257{wvXM68#p@Zxj8_z39CU zfc~GE|BdLs6a6mH{~-FGME|Q6T}B^iT(0}OUS)yoB78|jtzW>SHxTrMJw8tedBWZX zPiXdpu-_9}JYiqJ6ZXqDX`!BcPb7VF2qlsYb7)Q^{c~tZB-sc16E`4LyQ<8Sw@Bi* q(TaDtN4!T*KOiZtvJK0<){g;?S0~WUQ6a;8IE5&8kV%eck^cqD2K`q6 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentRelationshipTypeEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference$DocumentRelationshipTypeEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..e2737fd5243d2c3da49a7f25b89fe8d27902c906 GIT binary patch literal 2048 zcmb_d+in|G6kR8=J(o^sIwWlav`yR4#4)KMg%(Ii>N<8CaGW$wK}EbwoQX5-c*cy! zKtF(w;0Jg%JR}m8C=wD6JRn-`AaRG!K&)fCzK}M&#FEdx%s%_KmmM#C_sRh*OZSryMod0xc@DW6yHf`S)y49G1rQqHP)Ny<4L2If^< zRB%bhQKaRvpdh2*vVtoDv02A+!a0HdiTJAmk+i>I3mnWjo}I6i*X>}7Cp}n(ympl+Esx!CUQ5dx2&XVd8K3_3>>dC z6VLfUDY@ldNN#R9LDKQ6q2(3rWSIxM$xiA`JFw{=>v(z(n-Lf&gjVt9l2vKdsAt|O z+LcB{1QzhOix~VqE%w0u`CV6s#I)mgXW4fPjx!8=(={va#KO6 zLAv%G3moYLH9LB#=C~VnATWN-yXpCFd!wCdd)YHuB;7{G4P3>lfS^*qngnr;*1Q6a zLUw;xW8g`gF>nH>1g`E+%C3tRIQ=k)JyC<5RyC=_9_>}k!!|ej%;~b2TTmd{Wgs2w=r;i2alKsw=u{^gXSSF+c0eqinr$~}Vk ziZuTkaeRYme2eq=4)gdPY5c(H|B*BO6Har724%ny27ef%86hl#e@+Nj*#(~mNN9-! z%YGj*Gg7CfNG&EcO=_yt4oFR}n?rSmH>*0s{J_tA3H<^czv2*n!w`OFlmB4VfAW~W zFoC}tmBbLyHBB2#(L3Hc{ABBJZ8Gr*hPQE8rtY~0hM!=H<~1B|g~uk@rz5*!yAbxX cF|x=>BpUK5@&GXD8Ab}D7e~m76td9%1-A$!IRF3v literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference.class new file mode 100644 index 0000000000000000000000000000000000000000..63c315f800ddad005c826c35229f8339a559b19d GIT binary patch literal 28820 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 H>6HHio{No$ literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DocumentReference.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference.java similarity index 64% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DocumentReference.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference.java index ed477bde6b5..30bcf7e62c5 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DocumentReference.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DocumentReference.java @@ -1,2125 +1,1577 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A reference to a document. - */ -@ResourceDef(name="DocumentReference", profile="http://hl7.org/fhir/Profile/DocumentReference") -public class DocumentReference extends DomainResource { - - public enum DocumentReferenceStatus implements FhirEnum { - /** - * This is the current reference for this document. - */ - CURRENT, - /** - * This reference has been superseded by another reference. - */ - SUPERCEDED, - /** - * This reference was created in error. - */ - ENTEREDINERROR, - /** - * added to help the parsers - */ - NULL; - - public static final DocumentReferenceStatusEnumFactory ENUM_FACTORY = new DocumentReferenceStatusEnumFactory(); - - public static DocumentReferenceStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("current".equals(codeString)) - return CURRENT; - if ("superceded".equals(codeString)) - return SUPERCEDED; - if ("entered in error".equals(codeString)) - return ENTEREDINERROR; - throw new IllegalArgumentException("Unknown DocumentReferenceStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case CURRENT: return "current"; - case SUPERCEDED: return "superceded"; - case ENTEREDINERROR: return "entered in error"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case CURRENT: return ""; - case SUPERCEDED: return ""; - case ENTEREDINERROR: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case CURRENT: return "This is the current reference for this document."; - case SUPERCEDED: return "This reference has been superseded by another reference."; - case ENTEREDINERROR: return "This reference was created in error."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case CURRENT: return "current"; - case SUPERCEDED: return "superceded"; - case ENTEREDINERROR: return "entered in error"; - default: return "?"; - } - } - } - - public static class DocumentReferenceStatusEnumFactory implements EnumFactory { - public DocumentReferenceStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("current".equals(codeString)) - return DocumentReferenceStatus.CURRENT; - if ("superceded".equals(codeString)) - return DocumentReferenceStatus.SUPERCEDED; - if ("entered in error".equals(codeString)) - return DocumentReferenceStatus.ENTEREDINERROR; - throw new IllegalArgumentException("Unknown DocumentReferenceStatus code '"+codeString+"'"); - } - public String toCode(DocumentReferenceStatus code) throws IllegalArgumentException { - if (code == DocumentReferenceStatus.CURRENT) - return "current"; - if (code == DocumentReferenceStatus.SUPERCEDED) - return "superceded"; - if (code == DocumentReferenceStatus.ENTEREDINERROR) - return "entered in error"; - return "?"; - } - } - - public enum DocumentRelationshipType implements FhirEnum { - /** - * This document logically replaces or supercedes the target document. - */ - REPLACES, - /** - * This document was generated by transforming the target document (e.g. format or language conversion). - */ - TRANSFORMS, - /** - * This document is a signature of the target document. - */ - SIGNS, - /** - * This document adds additional information to the target document. - */ - APPENDS, - /** - * added to help the parsers - */ - NULL; - - public static final DocumentRelationshipTypeEnumFactory ENUM_FACTORY = new DocumentRelationshipTypeEnumFactory(); - - public static DocumentRelationshipType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("replaces".equals(codeString)) - return REPLACES; - if ("transforms".equals(codeString)) - return TRANSFORMS; - if ("signs".equals(codeString)) - return SIGNS; - if ("appends".equals(codeString)) - return APPENDS; - throw new IllegalArgumentException("Unknown DocumentRelationshipType code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case REPLACES: return "replaces"; - case TRANSFORMS: return "transforms"; - case SIGNS: return "signs"; - case APPENDS: return "appends"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case REPLACES: return ""; - case TRANSFORMS: return ""; - case SIGNS: return ""; - case APPENDS: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case REPLACES: return "This document logically replaces or supercedes the target document."; - case TRANSFORMS: return "This document was generated by transforming the target document (e.g. format or language conversion)."; - case SIGNS: return "This document is a signature of the target document."; - case APPENDS: return "This document adds additional information to the target document."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case REPLACES: return "replaces"; - case TRANSFORMS: return "transforms"; - case SIGNS: return "signs"; - case APPENDS: return "appends"; - default: return "?"; - } - } - } - - public static class DocumentRelationshipTypeEnumFactory implements EnumFactory { - public DocumentRelationshipType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("replaces".equals(codeString)) - return DocumentRelationshipType.REPLACES; - if ("transforms".equals(codeString)) - return DocumentRelationshipType.TRANSFORMS; - if ("signs".equals(codeString)) - return DocumentRelationshipType.SIGNS; - if ("appends".equals(codeString)) - return DocumentRelationshipType.APPENDS; - throw new IllegalArgumentException("Unknown DocumentRelationshipType code '"+codeString+"'"); - } - public String toCode(DocumentRelationshipType code) throws IllegalArgumentException { - if (code == DocumentRelationshipType.REPLACES) - return "replaces"; - if (code == DocumentRelationshipType.TRANSFORMS) - return "transforms"; - if (code == DocumentRelationshipType.SIGNS) - return "signs"; - if (code == DocumentRelationshipType.APPENDS) - return "appends"; - return "?"; - } - } - - @Block() - public static class DocumentReferenceRelatesToComponent extends BackboneElement { - /** - * The type of relationship that this document has with anther document. - */ - @Child(name="code", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="replaces | transforms | signs | appends", formalDefinition="The type of relationship that this document has with anther document." ) - protected Enumeration code; - - /** - * The target document of this relationship. - */ - @Child(name="target", type={DocumentReference.class}, order=2, min=1, max=1) - @Description(shortDefinition="Target of the relationship", formalDefinition="The target document of this relationship." ) - protected Reference target; - - /** - * The actual object that is the target of the reference (The target document of this relationship.) - */ - protected DocumentReference targetTarget; - - private static final long serialVersionUID = -347257495L; - - public DocumentReferenceRelatesToComponent() { - super(); - } - - public DocumentReferenceRelatesToComponent(Enumeration code, Reference target) { - super(); - this.code = code; - this.target = target; - } - - /** - * @return {@link #code} (The type of relationship that this document has with anther document.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public Enumeration getCodeElement() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReferenceRelatesToComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new Enumeration(); - return this.code; - } - - public boolean hasCodeElement() { - return this.code != null && !this.code.isEmpty(); - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (The type of relationship that this document has with anther document.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public DocumentReferenceRelatesToComponent setCodeElement(Enumeration value) { - this.code = value; - return this; - } - - /** - * @return The type of relationship that this document has with anther document. - */ - public DocumentRelationshipType getCode() { - return this.code == null ? null : this.code.getValue(); - } - - /** - * @param value The type of relationship that this document has with anther document. - */ - public DocumentReferenceRelatesToComponent setCode(DocumentRelationshipType value) { - if (this.code == null) - this.code = new Enumeration(DocumentRelationshipType.ENUM_FACTORY); - this.code.setValue(value); - return this; - } - - /** - * @return {@link #target} (The target document of this relationship.) - */ - public Reference getTarget() { - if (this.target == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReferenceRelatesToComponent.target"); - else if (Configuration.doAutoCreate()) - this.target = new Reference(); - return this.target; - } - - public boolean hasTarget() { - return this.target != null && !this.target.isEmpty(); - } - - /** - * @param value {@link #target} (The target document of this relationship.) - */ - public DocumentReferenceRelatesToComponent setTarget(Reference value) { - this.target = value; - return this; - } - - /** - * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The target document of this relationship.) - */ - public DocumentReference getTargetTarget() { - if (this.targetTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReferenceRelatesToComponent.target"); - else if (Configuration.doAutoCreate()) - this.targetTarget = new DocumentReference(); - return this.targetTarget; - } - - /** - * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The target document of this relationship.) - */ - public DocumentReferenceRelatesToComponent setTargetTarget(DocumentReference value) { - this.targetTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "code", "The type of relationship that this document has with anther document.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("target", "Reference(DocumentReference)", "The target document of this relationship.", 0, java.lang.Integer.MAX_VALUE, target)); - } - - public DocumentReferenceRelatesToComponent copy() { - DocumentReferenceRelatesToComponent dst = new DocumentReferenceRelatesToComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.target = target == null ? null : target.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (target == null || target.isEmpty()) - ; - } - - } - - @Block() - public static class DocumentReferenceServiceComponent extends BackboneElement { - /** - * The type of the service that can be used to access the documents. - */ - @Child(name="type", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="Type of service (i.e. XDS.b)", formalDefinition="The type of the service that can be used to access the documents." ) - protected CodeableConcept type; - - /** - * Where the service end-point is located. - */ - @Child(name="address", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Where service is located (usually a URL)", formalDefinition="Where the service end-point is located." ) - protected StringType address; - - /** - * A list of named parameters that is used in the service call. - */ - @Child(name="parameter", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Service call parameters", formalDefinition="A list of named parameters that is used in the service call." ) - protected List parameter; - - private static final long serialVersionUID = 1797455740L; - - public DocumentReferenceServiceComponent() { - super(); - } - - public DocumentReferenceServiceComponent(CodeableConcept type) { - super(); - this.type = type; - } - - /** - * @return {@link #type} (The type of the service that can be used to access the documents.) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReferenceServiceComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The type of the service that can be used to access the documents.) - */ - public DocumentReferenceServiceComponent setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #address} (Where the service end-point is located.). This is the underlying object with id, value and extensions. The accessor "getAddress" gives direct access to the value - */ - public StringType getAddressElement() { - if (this.address == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReferenceServiceComponent.address"); - else if (Configuration.doAutoCreate()) - this.address = new StringType(); - return this.address; - } - - public boolean hasAddressElement() { - return this.address != null && !this.address.isEmpty(); - } - - public boolean hasAddress() { - return this.address != null && !this.address.isEmpty(); - } - - /** - * @param value {@link #address} (Where the service end-point is located.). This is the underlying object with id, value and extensions. The accessor "getAddress" gives direct access to the value - */ - public DocumentReferenceServiceComponent setAddressElement(StringType value) { - this.address = value; - return this; - } - - /** - * @return Where the service end-point is located. - */ - public String getAddress() { - return this.address == null ? null : this.address.getValue(); - } - - /** - * @param value Where the service end-point is located. - */ - public DocumentReferenceServiceComponent setAddress(String value) { - if (Utilities.noString(value)) - this.address = null; - else { - if (this.address == null) - this.address = new StringType(); - this.address.setValue(value); - } - return this; - } - - /** - * @return {@link #parameter} (A list of named parameters that is used in the service call.) - */ - public List getParameter() { - if (this.parameter == null) - this.parameter = new ArrayList(); - return this.parameter; - } - - public boolean hasParameter() { - if (this.parameter == null) - return false; - for (DocumentReferenceServiceParameterComponent item : this.parameter) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #parameter} (A list of named parameters that is used in the service call.) - */ - // syntactic sugar - public DocumentReferenceServiceParameterComponent addParameter() { //3 - DocumentReferenceServiceParameterComponent t = new DocumentReferenceServiceParameterComponent(); - if (this.parameter == null) - this.parameter = new ArrayList(); - this.parameter.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "CodeableConcept", "The type of the service that can be used to access the documents.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("address", "string", "Where the service end-point is located.", 0, java.lang.Integer.MAX_VALUE, address)); - childrenList.add(new Property("parameter", "", "A list of named parameters that is used in the service call.", 0, java.lang.Integer.MAX_VALUE, parameter)); - } - - public DocumentReferenceServiceComponent copy() { - DocumentReferenceServiceComponent dst = new DocumentReferenceServiceComponent(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - dst.address = address == null ? null : address.copy(); - if (parameter != null) { - dst.parameter = new ArrayList(); - for (DocumentReferenceServiceParameterComponent i : parameter) - dst.parameter.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (address == null || address.isEmpty()) - && (parameter == null || parameter.isEmpty()); - } - - } - - @Block() - public static class DocumentReferenceServiceParameterComponent extends BackboneElement { - /** - * The name of a parameter. - */ - @Child(name="name", type={StringType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Parameter name in service call", formalDefinition="The name of a parameter." ) - protected StringType name; - - /** - * The value of the named parameter. - */ - @Child(name="value", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Parameter value for the name", formalDefinition="The value of the named parameter." ) - protected StringType value; - - private static final long serialVersionUID = 395259392L; - - public DocumentReferenceServiceParameterComponent() { - super(); - } - - public DocumentReferenceServiceParameterComponent(StringType name) { - super(); - this.name = name; - } - - /** - * @return {@link #name} (The name of a parameter.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReferenceServiceParameterComponent.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (The name of a parameter.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public DocumentReferenceServiceParameterComponent setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return The name of a parameter. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value The name of a parameter. - */ - public DocumentReferenceServiceParameterComponent setName(String value) { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - return this; - } - - /** - * @return {@link #value} (The value of the named parameter.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public StringType getValueElement() { - if (this.value == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReferenceServiceParameterComponent.value"); - else if (Configuration.doAutoCreate()) - this.value = new StringType(); - return this.value; - } - - public boolean hasValueElement() { - return this.value != null && !this.value.isEmpty(); - } - - public boolean hasValue() { - return this.value != null && !this.value.isEmpty(); - } - - /** - * @param value {@link #value} (The value of the named parameter.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public DocumentReferenceServiceParameterComponent setValueElement(StringType value) { - this.value = value; - return this; - } - - /** - * @return The value of the named parameter. - */ - public String getValue() { - return this.value == null ? null : this.value.getValue(); - } - - /** - * @param value The value of the named parameter. - */ - public DocumentReferenceServiceParameterComponent setValue(String value) { - if (Utilities.noString(value)) - this.value = null; - else { - if (this.value == null) - this.value = new StringType(); - this.value.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("name", "string", "The name of a parameter.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("value", "string", "The value of the named parameter.", 0, java.lang.Integer.MAX_VALUE, value)); - } - - public DocumentReferenceServiceParameterComponent copy() { - DocumentReferenceServiceParameterComponent dst = new DocumentReferenceServiceParameterComponent(); - copyValues(dst); - dst.name = name == null ? null : name.copy(); - dst.value = value == null ? null : value.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (name == null || name.isEmpty()) && (value == null || value.isEmpty()) - ; - } - - } - - @Block() - public static class DocumentReferenceContextComponent extends BackboneElement { - /** - * This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act. - */ - @Child(name="event", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Main Clinical Acts Documented", formalDefinition="This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a 'History and Physical Report' in which the procedure being documented is necessarily a 'History and Physical' act." ) - protected List event; - - /** - * The time period over which the service that is described by the document was provided. - */ - @Child(name="period", type={Period.class}, order=2, min=0, max=1) - @Description(shortDefinition="Time of service that is being documented", formalDefinition="The time period over which the service that is described by the document was provided." ) - protected Period period; - - /** - * The kind of facility where the patient was seen. - */ - @Child(name="facilityType", type={CodeableConcept.class}, order=3, min=0, max=1) - @Description(shortDefinition="Kind of facility where patient was seen", formalDefinition="The kind of facility where the patient was seen." ) - protected CodeableConcept facilityType; - - private static final long serialVersionUID = -1762960949L; - - public DocumentReferenceContextComponent() { - super(); - } - - /** - * @return {@link #event} (This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.) - */ - public List getEvent() { - if (this.event == null) - this.event = new ArrayList(); - return this.event; - } - - public boolean hasEvent() { - if (this.event == null) - return false; - for (CodeableConcept item : this.event) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #event} (This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.) - */ - // syntactic sugar - public CodeableConcept addEvent() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.event == null) - this.event = new ArrayList(); - this.event.add(t); - return t; - } - - /** - * @return {@link #period} (The time period over which the service that is described by the document was provided.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReferenceContextComponent.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (The time period over which the service that is described by the document was provided.) - */ - public DocumentReferenceContextComponent setPeriod(Period value) { - this.period = value; - return this; - } - - /** - * @return {@link #facilityType} (The kind of facility where the patient was seen.) - */ - public CodeableConcept getFacilityType() { - if (this.facilityType == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReferenceContextComponent.facilityType"); - else if (Configuration.doAutoCreate()) - this.facilityType = new CodeableConcept(); - return this.facilityType; - } - - public boolean hasFacilityType() { - return this.facilityType != null && !this.facilityType.isEmpty(); - } - - /** - * @param value {@link #facilityType} (The kind of facility where the patient was seen.) - */ - public DocumentReferenceContextComponent setFacilityType(CodeableConcept value) { - this.facilityType = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("event", "CodeableConcept", "This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a 'History and Physical Report' in which the procedure being documented is necessarily a 'History and Physical' act.", 0, java.lang.Integer.MAX_VALUE, event)); - childrenList.add(new Property("period", "Period", "The time period over which the service that is described by the document was provided.", 0, java.lang.Integer.MAX_VALUE, period)); - childrenList.add(new Property("facilityType", "CodeableConcept", "The kind of facility where the patient was seen.", 0, java.lang.Integer.MAX_VALUE, facilityType)); - } - - public DocumentReferenceContextComponent copy() { - DocumentReferenceContextComponent dst = new DocumentReferenceContextComponent(); - copyValues(dst); - if (event != null) { - dst.event = new ArrayList(); - for (CodeableConcept i : event) - dst.event.add(i.copy()); - }; - dst.period = period == null ? null : period.copy(); - dst.facilityType = facilityType == null ? null : facilityType.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (event == null || event.isEmpty()) && (period == null || period.isEmpty()) - && (facilityType == null || facilityType.isEmpty()); - } - - } - - /** - * Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document. - */ - @Child(name="masterIdentifier", type={Identifier.class}, order=-1, min=1, max=1) - @Description(shortDefinition="Master Version Specific Identifier", formalDefinition="Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document." ) - protected Identifier masterIdentifier; - - /** - * Other identifiers associated with the document, including version independent, source record and workflow related identifiers. - */ - @Child(name="identifier", type={Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Other identifiers for the document", formalDefinition="Other identifiers associated with the document, including version independent, source record and workflow related identifiers." ) - protected List identifier; - - /** - * Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). - */ - @Child(name="subject", type={Patient.class, Practitioner.class, Group.class, Device.class}, order=1, min=1, max=1) - @Description(shortDefinition="Who|what is the subject of the document", formalDefinition="Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure)." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).) - */ - protected Resource subjectTarget; - - /** - * Specifies the particular kind of document (e.g. Patient Summary, Discharge Summary, Prescription, etc.). - */ - @Child(name="type", type={CodeableConcept.class}, order=2, min=1, max=1) - @Description(shortDefinition="What kind of document this is (LOINC if possible)", formalDefinition="Specifies the particular kind of document (e.g. Patient Summary, Discharge Summary, Prescription, etc.)." ) - protected CodeableConcept type; - - /** - * A categorization for the type of the document. This may be implied by or derived from the code specified in the Document Type. - */ - @Child(name="class_", type={CodeableConcept.class}, order=3, min=0, max=1) - @Description(shortDefinition="Categorization of Document", formalDefinition="A categorization for the type of the document. This may be implied by or derived from the code specified in the Document Type." ) - protected CodeableConcept class_; - - /** - * Identifies who is responsible for adding the information to the document. - */ - @Child(name="author", type={Practitioner.class, Device.class, Patient.class, RelatedPerson.class}, order=4, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Who and/or what authored the document", formalDefinition="Identifies who is responsible for adding the information to the document." ) - protected List author; - /** - * The actual objects that are the target of the reference (Identifies who is responsible for adding the information to the document.) - */ - protected List authorTarget; - - - /** - * Identifies the organization or group who is responsible for ongoing maintenance of and access to the document. - */ - @Child(name="custodian", type={Organization.class}, order=5, min=0, max=1) - @Description(shortDefinition="Org which maintains the document", formalDefinition="Identifies the organization or group who is responsible for ongoing maintenance of and access to the document." ) - protected Reference custodian; - - /** - * The actual object that is the target of the reference (Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.) - */ - protected Organization custodianTarget; - - /** - * A reference to a domain or server that manages policies under which the document is accessed and/or made available. - */ - @Child(name="policyManager", type={UriType.class}, order=6, min=0, max=1) - @Description(shortDefinition="Manages access policies for the document", formalDefinition="A reference to a domain or server that manages policies under which the document is accessed and/or made available." ) - protected UriType policyManager; - - /** - * Which person or organization authenticates that this document is valid. - */ - @Child(name="authenticator", type={Practitioner.class, Organization.class}, order=7, min=0, max=1) - @Description(shortDefinition="Who/What authenticated the document", formalDefinition="Which person or organization authenticates that this document is valid." ) - protected Reference authenticator; - - /** - * The actual object that is the target of the reference (Which person or organization authenticates that this document is valid.) - */ - protected Resource authenticatorTarget; - - /** - * When the document was created. - */ - @Child(name="created", type={DateTimeType.class}, order=8, min=0, max=1) - @Description(shortDefinition="Document creation time", formalDefinition="When the document was created." ) - protected DateTimeType created; - - /** - * When the document reference was created. - */ - @Child(name="indexed", type={InstantType.class}, order=9, min=1, max=1) - @Description(shortDefinition="When this document reference created", formalDefinition="When the document reference was created." ) - protected InstantType indexed; - - /** - * The status of this document reference. - */ - @Child(name="status", type={CodeType.class}, order=10, min=1, max=1) - @Description(shortDefinition="current | superceded | entered in error", formalDefinition="The status of this document reference." ) - protected Enumeration status; - - /** - * The status of the underlying document. - */ - @Child(name="docStatus", type={CodeableConcept.class}, order=11, min=0, max=1) - @Description(shortDefinition="preliminary | final | appended | amended | entered in error", formalDefinition="The status of the underlying document." ) - protected CodeableConcept docStatus; - - /** - * Relationships that this document has with other document references that already exist. - */ - @Child(name="relatesTo", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Relationships to other documents", formalDefinition="Relationships that this document has with other document references that already exist." ) - protected List relatesTo; - - /** - * Human-readable description of the source document. This is sometimes known as the "title". - */ - @Child(name="description", type={StringType.class}, order=13, min=0, max=1) - @Description(shortDefinition="Human-readable description (title)", formalDefinition="Human-readable description of the source document. This is sometimes known as the 'title'." ) - protected StringType description; - - /** - * A code specifying the level of confidentiality of the XDS Document. - */ - @Child(name="confidentiality", type={CodeableConcept.class}, order=14, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Sensitivity of source document", formalDefinition="A code specifying the level of confidentiality of the XDS Document." ) - protected List confidentiality; - - /** - * The primary language in which the source document is written. - */ - @Child(name="primaryLanguage", type={CodeType.class}, order=15, min=0, max=1) - @Description(shortDefinition="The marked primary language for the document", formalDefinition="The primary language in which the source document is written." ) - protected CodeType primaryLanguage; - - /** - * The mime type of the source document. - */ - @Child(name="mimeType", type={CodeType.class}, order=16, min=1, max=1) - @Description(shortDefinition="Mime type, + maybe character encoding", formalDefinition="The mime type of the source document." ) - protected CodeType mimeType; - - /** - * An identifier that identifies that the format and content of the document conforms to additional rules beyond the base format indicated in the mimeType. - */ - @Child(name="format", type={UriType.class}, order=17, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Format/content rules for the document", formalDefinition="An identifier that identifies that the format and content of the document conforms to additional rules beyond the base format indicated in the mimeType." ) - protected List format; - - /** - * The size of the source document this reference refers to in bytes. - */ - @Child(name="size", type={IntegerType.class}, order=18, min=0, max=1) - @Description(shortDefinition="Size of the document in bytes", formalDefinition="The size of the source document this reference refers to in bytes." ) - protected IntegerType size; - - /** - * A hash of the source document to ensure that changes have not occurred. - */ - @Child(name="hash", type={Base64BinaryType.class}, order=19, min=0, max=1) - @Description(shortDefinition="Base64 representation of SHA1", formalDefinition="A hash of the source document to ensure that changes have not occurred." ) - protected Base64BinaryType hash; - - /** - * A url at which the document can be accessed. - */ - @Child(name="location", type={UriType.class}, order=20, min=0, max=1) - @Description(shortDefinition="Where to access the document", formalDefinition="A url at which the document can be accessed." ) - protected UriType location; - - /** - * A description of a service call that can be used to retrieve the document. - */ - @Child(name="service", type={}, order=21, min=0, max=1) - @Description(shortDefinition="If access is not fully described by location", formalDefinition="A description of a service call that can be used to retrieve the document." ) - protected DocumentReferenceServiceComponent service; - - /** - * The clinical context in which the document was prepared. - */ - @Child(name="context", type={}, order=22, min=0, max=1) - @Description(shortDefinition="Clinical context of document", formalDefinition="The clinical context in which the document was prepared." ) - protected DocumentReferenceContextComponent context; - - private static final long serialVersionUID = -752030368L; - - public DocumentReference() { - super(); - } - - public DocumentReference(Identifier masterIdentifier, Reference subject, CodeableConcept type, InstantType indexed, Enumeration status, CodeType mimeType) { - super(); - this.masterIdentifier = masterIdentifier; - this.subject = subject; - this.type = type; - this.indexed = indexed; - this.status = status; - this.mimeType = mimeType; - } - - /** - * @return {@link #masterIdentifier} (Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document.) - */ - public Identifier getMasterIdentifier() { - if (this.masterIdentifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.masterIdentifier"); - else if (Configuration.doAutoCreate()) - this.masterIdentifier = new Identifier(); - return this.masterIdentifier; - } - - public boolean hasMasterIdentifier() { - return this.masterIdentifier != null && !this.masterIdentifier.isEmpty(); - } - - /** - * @param value {@link #masterIdentifier} (Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document.) - */ - public DocumentReference setMasterIdentifier(Identifier value) { - this.masterIdentifier = value; - return this; - } - - /** - * @return {@link #identifier} (Other identifiers associated with the document, including version independent, source record and workflow related identifiers.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Other identifiers associated with the document, including version independent, source record and workflow related identifiers.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #subject} (Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).) - */ - public DocumentReference setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).) - */ - public Resource getSubjectTarget() { - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).) - */ - public DocumentReference setSubjectTarget(Resource value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #type} (Specifies the particular kind of document (e.g. Patient Summary, Discharge Summary, Prescription, etc.).) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Specifies the particular kind of document (e.g. Patient Summary, Discharge Summary, Prescription, etc.).) - */ - public DocumentReference setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #class_} (A categorization for the type of the document. This may be implied by or derived from the code specified in the Document Type.) - */ - public CodeableConcept getClass_() { - if (this.class_ == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.class_"); - else if (Configuration.doAutoCreate()) - this.class_ = new CodeableConcept(); - return this.class_; - } - - public boolean hasClass_() { - return this.class_ != null && !this.class_.isEmpty(); - } - - /** - * @param value {@link #class_} (A categorization for the type of the document. This may be implied by or derived from the code specified in the Document Type.) - */ - public DocumentReference setClass_(CodeableConcept value) { - this.class_ = value; - return this; - } - - /** - * @return {@link #author} (Identifies who is responsible for adding the information to the document.) - */ - public List getAuthor() { - if (this.author == null) - this.author = new ArrayList(); - return this.author; - } - - public boolean hasAuthor() { - if (this.author == null) - return false; - for (Reference item : this.author) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #author} (Identifies who is responsible for adding the information to the document.) - */ - // syntactic sugar - public Reference addAuthor() { //3 - Reference t = new Reference(); - if (this.author == null) - this.author = new ArrayList(); - this.author.add(t); - return t; - } - - /** - * @return {@link #author} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies who is responsible for adding the information to the document.) - */ - public List getAuthorTarget() { - if (this.authorTarget == null) - this.authorTarget = new ArrayList(); - return this.authorTarget; - } - - /** - * @return {@link #custodian} (Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.) - */ - public Reference getCustodian() { - if (this.custodian == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.custodian"); - else if (Configuration.doAutoCreate()) - this.custodian = new Reference(); - return this.custodian; - } - - public boolean hasCustodian() { - return this.custodian != null && !this.custodian.isEmpty(); - } - - /** - * @param value {@link #custodian} (Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.) - */ - public DocumentReference setCustodian(Reference value) { - this.custodian = value; - return this; - } - - /** - * @return {@link #custodian} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.) - */ - public Organization getCustodianTarget() { - if (this.custodianTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.custodian"); - else if (Configuration.doAutoCreate()) - this.custodianTarget = new Organization(); - return this.custodianTarget; - } - - /** - * @param value {@link #custodian} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.) - */ - public DocumentReference setCustodianTarget(Organization value) { - this.custodianTarget = value; - return this; - } - - /** - * @return {@link #policyManager} (A reference to a domain or server that manages policies under which the document is accessed and/or made available.). This is the underlying object with id, value and extensions. The accessor "getPolicyManager" gives direct access to the value - */ - public UriType getPolicyManagerElement() { - if (this.policyManager == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.policyManager"); - else if (Configuration.doAutoCreate()) - this.policyManager = new UriType(); - return this.policyManager; - } - - public boolean hasPolicyManagerElement() { - return this.policyManager != null && !this.policyManager.isEmpty(); - } - - public boolean hasPolicyManager() { - return this.policyManager != null && !this.policyManager.isEmpty(); - } - - /** - * @param value {@link #policyManager} (A reference to a domain or server that manages policies under which the document is accessed and/or made available.). This is the underlying object with id, value and extensions. The accessor "getPolicyManager" gives direct access to the value - */ - public DocumentReference setPolicyManagerElement(UriType value) { - this.policyManager = value; - return this; - } - - /** - * @return A reference to a domain or server that manages policies under which the document is accessed and/or made available. - */ - public String getPolicyManager() { - return this.policyManager == null ? null : this.policyManager.getValue(); - } - - /** - * @param value A reference to a domain or server that manages policies under which the document is accessed and/or made available. - */ - public DocumentReference setPolicyManager(String value) { - if (Utilities.noString(value)) - this.policyManager = null; - else { - if (this.policyManager == null) - this.policyManager = new UriType(); - this.policyManager.setValue(value); - } - return this; - } - - /** - * @return {@link #authenticator} (Which person or organization authenticates that this document is valid.) - */ - public Reference getAuthenticator() { - if (this.authenticator == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.authenticator"); - else if (Configuration.doAutoCreate()) - this.authenticator = new Reference(); - return this.authenticator; - } - - public boolean hasAuthenticator() { - return this.authenticator != null && !this.authenticator.isEmpty(); - } - - /** - * @param value {@link #authenticator} (Which person or organization authenticates that this document is valid.) - */ - public DocumentReference setAuthenticator(Reference value) { - this.authenticator = value; - return this; - } - - /** - * @return {@link #authenticator} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Which person or organization authenticates that this document is valid.) - */ - public Resource getAuthenticatorTarget() { - return this.authenticatorTarget; - } - - /** - * @param value {@link #authenticator} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Which person or organization authenticates that this document is valid.) - */ - public DocumentReference setAuthenticatorTarget(Resource value) { - this.authenticatorTarget = value; - return this; - } - - /** - * @return {@link #created} (When the document was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DateTimeType getCreatedElement() { - if (this.created == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.created"); - else if (Configuration.doAutoCreate()) - this.created = new DateTimeType(); - return this.created; - } - - public boolean hasCreatedElement() { - return this.created != null && !this.created.isEmpty(); - } - - public boolean hasCreated() { - return this.created != null && !this.created.isEmpty(); - } - - /** - * @param value {@link #created} (When the document was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DocumentReference setCreatedElement(DateTimeType value) { - this.created = value; - return this; - } - - /** - * @return When the document was created. - */ - public Date getCreated() { - return this.created == null ? null : this.created.getValue(); - } - - /** - * @param value When the document was created. - */ - public DocumentReference setCreated(Date value) { - if (value == null) - this.created = null; - else { - if (this.created == null) - this.created = new DateTimeType(); - this.created.setValue(value); - } - return this; - } - - /** - * @return {@link #indexed} (When the document reference was created.). This is the underlying object with id, value and extensions. The accessor "getIndexed" gives direct access to the value - */ - public InstantType getIndexedElement() { - if (this.indexed == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.indexed"); - else if (Configuration.doAutoCreate()) - this.indexed = new InstantType(); - return this.indexed; - } - - public boolean hasIndexedElement() { - return this.indexed != null && !this.indexed.isEmpty(); - } - - public boolean hasIndexed() { - return this.indexed != null && !this.indexed.isEmpty(); - } - - /** - * @param value {@link #indexed} (When the document reference was created.). This is the underlying object with id, value and extensions. The accessor "getIndexed" gives direct access to the value - */ - public DocumentReference setIndexedElement(InstantType value) { - this.indexed = value; - return this; - } - - /** - * @return When the document reference was created. - */ - public Date getIndexed() { - return this.indexed == null ? null : this.indexed.getValue(); - } - - /** - * @param value When the document reference was created. - */ - public DocumentReference setIndexed(Date value) { - if (this.indexed == null) - this.indexed = new InstantType(); - this.indexed.setValue(value); - return this; - } - - /** - * @return {@link #status} (The status of this document reference.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of this document reference.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public DocumentReference setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of this document reference. - */ - public DocumentReferenceStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of this document reference. - */ - public DocumentReference setStatus(DocumentReferenceStatus value) { - if (this.status == null) - this.status = new Enumeration(DocumentReferenceStatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #docStatus} (The status of the underlying document.) - */ - public CodeableConcept getDocStatus() { - if (this.docStatus == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.docStatus"); - else if (Configuration.doAutoCreate()) - this.docStatus = new CodeableConcept(); - return this.docStatus; - } - - public boolean hasDocStatus() { - return this.docStatus != null && !this.docStatus.isEmpty(); - } - - /** - * @param value {@link #docStatus} (The status of the underlying document.) - */ - public DocumentReference setDocStatus(CodeableConcept value) { - this.docStatus = value; - return this; - } - - /** - * @return {@link #relatesTo} (Relationships that this document has with other document references that already exist.) - */ - public List getRelatesTo() { - if (this.relatesTo == null) - this.relatesTo = new ArrayList(); - return this.relatesTo; - } - - public boolean hasRelatesTo() { - if (this.relatesTo == null) - return false; - for (DocumentReferenceRelatesToComponent item : this.relatesTo) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #relatesTo} (Relationships that this document has with other document references that already exist.) - */ - // syntactic sugar - public DocumentReferenceRelatesToComponent addRelatesTo() { //3 - DocumentReferenceRelatesToComponent t = new DocumentReferenceRelatesToComponent(); - if (this.relatesTo == null) - this.relatesTo = new ArrayList(); - this.relatesTo.add(t); - return t; - } - - /** - * @return {@link #description} (Human-readable description of the source document. This is sometimes known as the "title".). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Human-readable description of the source document. This is sometimes known as the "title".). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public DocumentReference setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Human-readable description of the source document. This is sometimes known as the "title". - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Human-readable description of the source document. This is sometimes known as the "title". - */ - public DocumentReference setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #confidentiality} (A code specifying the level of confidentiality of the XDS Document.) - */ - public List getConfidentiality() { - if (this.confidentiality == null) - this.confidentiality = new ArrayList(); - return this.confidentiality; - } - - public boolean hasConfidentiality() { - if (this.confidentiality == null) - return false; - for (CodeableConcept item : this.confidentiality) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #confidentiality} (A code specifying the level of confidentiality of the XDS Document.) - */ - // syntactic sugar - public CodeableConcept addConfidentiality() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.confidentiality == null) - this.confidentiality = new ArrayList(); - this.confidentiality.add(t); - return t; - } - - /** - * @return {@link #primaryLanguage} (The primary language in which the source document is written.). This is the underlying object with id, value and extensions. The accessor "getPrimaryLanguage" gives direct access to the value - */ - public CodeType getPrimaryLanguageElement() { - if (this.primaryLanguage == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.primaryLanguage"); - else if (Configuration.doAutoCreate()) - this.primaryLanguage = new CodeType(); - return this.primaryLanguage; - } - - public boolean hasPrimaryLanguageElement() { - return this.primaryLanguage != null && !this.primaryLanguage.isEmpty(); - } - - public boolean hasPrimaryLanguage() { - return this.primaryLanguage != null && !this.primaryLanguage.isEmpty(); - } - - /** - * @param value {@link #primaryLanguage} (The primary language in which the source document is written.). This is the underlying object with id, value and extensions. The accessor "getPrimaryLanguage" gives direct access to the value - */ - public DocumentReference setPrimaryLanguageElement(CodeType value) { - this.primaryLanguage = value; - return this; - } - - /** - * @return The primary language in which the source document is written. - */ - public String getPrimaryLanguage() { - return this.primaryLanguage == null ? null : this.primaryLanguage.getValue(); - } - - /** - * @param value The primary language in which the source document is written. - */ - public DocumentReference setPrimaryLanguage(String value) { - if (Utilities.noString(value)) - this.primaryLanguage = null; - else { - if (this.primaryLanguage == null) - this.primaryLanguage = new CodeType(); - this.primaryLanguage.setValue(value); - } - return this; - } - - /** - * @return {@link #mimeType} (The mime type of the source document.). This is the underlying object with id, value and extensions. The accessor "getMimeType" gives direct access to the value - */ - public CodeType getMimeTypeElement() { - if (this.mimeType == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.mimeType"); - else if (Configuration.doAutoCreate()) - this.mimeType = new CodeType(); - return this.mimeType; - } - - public boolean hasMimeTypeElement() { - return this.mimeType != null && !this.mimeType.isEmpty(); - } - - public boolean hasMimeType() { - return this.mimeType != null && !this.mimeType.isEmpty(); - } - - /** - * @param value {@link #mimeType} (The mime type of the source document.). This is the underlying object with id, value and extensions. The accessor "getMimeType" gives direct access to the value - */ - public DocumentReference setMimeTypeElement(CodeType value) { - this.mimeType = value; - return this; - } - - /** - * @return The mime type of the source document. - */ - public String getMimeType() { - return this.mimeType == null ? null : this.mimeType.getValue(); - } - - /** - * @param value The mime type of the source document. - */ - public DocumentReference setMimeType(String value) { - if (this.mimeType == null) - this.mimeType = new CodeType(); - this.mimeType.setValue(value); - return this; - } - - /** - * @return {@link #format} (An identifier that identifies that the format and content of the document conforms to additional rules beyond the base format indicated in the mimeType.) - */ - public List getFormat() { - if (this.format == null) - this.format = new ArrayList(); - return this.format; - } - - public boolean hasFormat() { - if (this.format == null) - return false; - for (UriType item : this.format) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #format} (An identifier that identifies that the format and content of the document conforms to additional rules beyond the base format indicated in the mimeType.) - */ - // syntactic sugar - public UriType addFormatElement() {//2 - UriType t = new UriType(); - if (this.format == null) - this.format = new ArrayList(); - this.format.add(t); - return t; - } - - /** - * @param value {@link #format} (An identifier that identifies that the format and content of the document conforms to additional rules beyond the base format indicated in the mimeType.) - */ - public DocumentReference addFormat(String value) { //1 - UriType t = new UriType(); - t.setValue(value); - if (this.format == null) - this.format = new ArrayList(); - this.format.add(t); - return this; - } - - /** - * @param value {@link #format} (An identifier that identifies that the format and content of the document conforms to additional rules beyond the base format indicated in the mimeType.) - */ - public boolean hasFormat(String value) { - if (this.format == null) - return false; - for (UriType v : this.format) - if (v.equals(value)) // uri - return true; - return false; - } - - /** - * @return {@link #size} (The size of the source document this reference refers to in bytes.). This is the underlying object with id, value and extensions. The accessor "getSize" gives direct access to the value - */ - public IntegerType getSizeElement() { - if (this.size == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.size"); - else if (Configuration.doAutoCreate()) - this.size = new IntegerType(); - return this.size; - } - - public boolean hasSizeElement() { - return this.size != null && !this.size.isEmpty(); - } - - public boolean hasSize() { - return this.size != null && !this.size.isEmpty(); - } - - /** - * @param value {@link #size} (The size of the source document this reference refers to in bytes.). This is the underlying object with id, value and extensions. The accessor "getSize" gives direct access to the value - */ - public DocumentReference setSizeElement(IntegerType value) { - this.size = value; - return this; - } - - /** - * @return The size of the source document this reference refers to in bytes. - */ - public int getSize() { - return this.size == null ? null : this.size.getValue(); - } - - /** - * @param value The size of the source document this reference refers to in bytes. - */ - public DocumentReference setSize(int value) { - if (value == -1) - this.size = null; - else { - if (this.size == null) - this.size = new IntegerType(); - this.size.setValue(value); - } - return this; - } - - /** - * @return {@link #hash} (A hash of the source document to ensure that changes have not occurred.). This is the underlying object with id, value and extensions. The accessor "getHash" gives direct access to the value - */ - public Base64BinaryType getHashElement() { - if (this.hash == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.hash"); - else if (Configuration.doAutoCreate()) - this.hash = new Base64BinaryType(); - return this.hash; - } - - public boolean hasHashElement() { - return this.hash != null && !this.hash.isEmpty(); - } - - public boolean hasHash() { - return this.hash != null && !this.hash.isEmpty(); - } - - /** - * @param value {@link #hash} (A hash of the source document to ensure that changes have not occurred.). This is the underlying object with id, value and extensions. The accessor "getHash" gives direct access to the value - */ - public DocumentReference setHashElement(Base64BinaryType value) { - this.hash = value; - return this; - } - - /** - * @return A hash of the source document to ensure that changes have not occurred. - */ - public byte[] getHash() { - return this.hash == null ? null : this.hash.getValue(); - } - - /** - * @param value A hash of the source document to ensure that changes have not occurred. - */ - public DocumentReference setHash(byte[] value) { - if (value == null) - this.hash = null; - else { - if (this.hash == null) - this.hash = new Base64BinaryType(); - this.hash.setValue(value); - } - return this; - } - - /** - * @return {@link #location} (A url at which the document can be accessed.). This is the underlying object with id, value and extensions. The accessor "getLocation" gives direct access to the value - */ - public UriType getLocationElement() { - if (this.location == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.location"); - else if (Configuration.doAutoCreate()) - this.location = new UriType(); - return this.location; - } - - public boolean hasLocationElement() { - return this.location != null && !this.location.isEmpty(); - } - - public boolean hasLocation() { - return this.location != null && !this.location.isEmpty(); - } - - /** - * @param value {@link #location} (A url at which the document can be accessed.). This is the underlying object with id, value and extensions. The accessor "getLocation" gives direct access to the value - */ - public DocumentReference setLocationElement(UriType value) { - this.location = value; - return this; - } - - /** - * @return A url at which the document can be accessed. - */ - public String getLocation() { - return this.location == null ? null : this.location.getValue(); - } - - /** - * @param value A url at which the document can be accessed. - */ - public DocumentReference setLocation(String value) { - if (Utilities.noString(value)) - this.location = null; - else { - if (this.location == null) - this.location = new UriType(); - this.location.setValue(value); - } - return this; - } - - /** - * @return {@link #service} (A description of a service call that can be used to retrieve the document.) - */ - public DocumentReferenceServiceComponent getService() { - if (this.service == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.service"); - else if (Configuration.doAutoCreate()) - this.service = new DocumentReferenceServiceComponent(); - return this.service; - } - - public boolean hasService() { - return this.service != null && !this.service.isEmpty(); - } - - /** - * @param value {@link #service} (A description of a service call that can be used to retrieve the document.) - */ - public DocumentReference setService(DocumentReferenceServiceComponent value) { - this.service = value; - return this; - } - - /** - * @return {@link #context} (The clinical context in which the document was prepared.) - */ - public DocumentReferenceContextComponent getContext() { - if (this.context == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DocumentReference.context"); - else if (Configuration.doAutoCreate()) - this.context = new DocumentReferenceContextComponent(); - return this.context; - } - - public boolean hasContext() { - return this.context != null && !this.context.isEmpty(); - } - - /** - * @param value {@link #context} (The clinical context in which the document was prepared.) - */ - public DocumentReference setContext(DocumentReferenceContextComponent value) { - this.context = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("masterIdentifier", "Identifier", "Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document.", 0, java.lang.Integer.MAX_VALUE, masterIdentifier)); - childrenList.add(new Property("identifier", "Identifier", "Other identifiers associated with the document, including version independent, source record and workflow related identifiers.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device)", "Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("type", "CodeableConcept", "Specifies the particular kind of document (e.g. Patient Summary, Discharge Summary, Prescription, etc.).", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("class", "CodeableConcept", "A categorization for the type of the document. This may be implied by or derived from the code specified in the Document Type.", 0, java.lang.Integer.MAX_VALUE, class_)); - childrenList.add(new Property("author", "Reference(Practitioner|Device|Patient|RelatedPerson)", "Identifies who is responsible for adding the information to the document.", 0, java.lang.Integer.MAX_VALUE, author)); - childrenList.add(new Property("custodian", "Reference(Organization)", "Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.", 0, java.lang.Integer.MAX_VALUE, custodian)); - childrenList.add(new Property("policyManager", "uri", "A reference to a domain or server that manages policies under which the document is accessed and/or made available.", 0, java.lang.Integer.MAX_VALUE, policyManager)); - childrenList.add(new Property("authenticator", "Reference(Practitioner|Organization)", "Which person or organization authenticates that this document is valid.", 0, java.lang.Integer.MAX_VALUE, authenticator)); - childrenList.add(new Property("created", "dateTime", "When the document was created.", 0, java.lang.Integer.MAX_VALUE, created)); - childrenList.add(new Property("indexed", "instant", "When the document reference was created.", 0, java.lang.Integer.MAX_VALUE, indexed)); - childrenList.add(new Property("status", "code", "The status of this document reference.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("docStatus", "CodeableConcept", "The status of the underlying document.", 0, java.lang.Integer.MAX_VALUE, docStatus)); - childrenList.add(new Property("relatesTo", "", "Relationships that this document has with other document references that already exist.", 0, java.lang.Integer.MAX_VALUE, relatesTo)); - childrenList.add(new Property("description", "string", "Human-readable description of the source document. This is sometimes known as the 'title'.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("confidentiality", "CodeableConcept", "A code specifying the level of confidentiality of the XDS Document.", 0, java.lang.Integer.MAX_VALUE, confidentiality)); - childrenList.add(new Property("primaryLanguage", "code", "The primary language in which the source document is written.", 0, java.lang.Integer.MAX_VALUE, primaryLanguage)); - childrenList.add(new Property("mimeType", "code", "The mime type of the source document.", 0, java.lang.Integer.MAX_VALUE, mimeType)); - childrenList.add(new Property("format", "uri", "An identifier that identifies that the format and content of the document conforms to additional rules beyond the base format indicated in the mimeType.", 0, java.lang.Integer.MAX_VALUE, format)); - childrenList.add(new Property("size", "integer", "The size of the source document this reference refers to in bytes.", 0, java.lang.Integer.MAX_VALUE, size)); - childrenList.add(new Property("hash", "base64Binary", "A hash of the source document to ensure that changes have not occurred.", 0, java.lang.Integer.MAX_VALUE, hash)); - childrenList.add(new Property("location", "uri", "A url at which the document can be accessed.", 0, java.lang.Integer.MAX_VALUE, location)); - childrenList.add(new Property("service", "", "A description of a service call that can be used to retrieve the document.", 0, java.lang.Integer.MAX_VALUE, service)); - childrenList.add(new Property("context", "", "The clinical context in which the document was prepared.", 0, java.lang.Integer.MAX_VALUE, context)); - } - - public DocumentReference copy() { - DocumentReference dst = new DocumentReference(); - copyValues(dst); - dst.masterIdentifier = masterIdentifier == null ? null : masterIdentifier.copy(); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.subject = subject == null ? null : subject.copy(); - dst.type = type == null ? null : type.copy(); - dst.class_ = class_ == null ? null : class_.copy(); - if (author != null) { - dst.author = new ArrayList(); - for (Reference i : author) - dst.author.add(i.copy()); - }; - dst.custodian = custodian == null ? null : custodian.copy(); - dst.policyManager = policyManager == null ? null : policyManager.copy(); - dst.authenticator = authenticator == null ? null : authenticator.copy(); - dst.created = created == null ? null : created.copy(); - dst.indexed = indexed == null ? null : indexed.copy(); - dst.status = status == null ? null : status.copy(); - dst.docStatus = docStatus == null ? null : docStatus.copy(); - if (relatesTo != null) { - dst.relatesTo = new ArrayList(); - for (DocumentReferenceRelatesToComponent i : relatesTo) - dst.relatesTo.add(i.copy()); - }; - dst.description = description == null ? null : description.copy(); - if (confidentiality != null) { - dst.confidentiality = new ArrayList(); - for (CodeableConcept i : confidentiality) - dst.confidentiality.add(i.copy()); - }; - dst.primaryLanguage = primaryLanguage == null ? null : primaryLanguage.copy(); - dst.mimeType = mimeType == null ? null : mimeType.copy(); - if (format != null) { - dst.format = new ArrayList(); - for (UriType i : format) - dst.format.add(i.copy()); - }; - dst.size = size == null ? null : size.copy(); - dst.hash = hash == null ? null : hash.copy(); - dst.location = location == null ? null : location.copy(); - dst.service = service == null ? null : service.copy(); - dst.context = context == null ? null : context.copy(); - return dst; - } - - protected DocumentReference typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (masterIdentifier == null || masterIdentifier.isEmpty()) && (identifier == null || identifier.isEmpty()) - && (subject == null || subject.isEmpty()) && (type == null || type.isEmpty()) && (class_ == null || class_.isEmpty()) - && (author == null || author.isEmpty()) && (custodian == null || custodian.isEmpty()) && (policyManager == null || policyManager.isEmpty()) - && (authenticator == null || authenticator.isEmpty()) && (created == null || created.isEmpty()) - && (indexed == null || indexed.isEmpty()) && (status == null || status.isEmpty()) && (docStatus == null || docStatus.isEmpty()) - && (relatesTo == null || relatesTo.isEmpty()) && (description == null || description.isEmpty()) - && (confidentiality == null || confidentiality.isEmpty()) && (primaryLanguage == null || primaryLanguage.isEmpty()) - && (mimeType == null || mimeType.isEmpty()) && (format == null || format.isEmpty()) && (size == null || size.isEmpty()) - && (hash == null || hash.isEmpty()) && (location == null || location.isEmpty()) && (service == null || service.isEmpty()) - && (context == null || context.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.DocumentReference; - } - - @SearchParamDefinition(name="location", path="DocumentReference.location", description="Where to access the document", type="string" ) - public static final String SP_LOCATION = "location"; - @SearchParamDefinition(name="indexed", path="DocumentReference.indexed", description="When this document reference created", type="date" ) - public static final String SP_INDEXED = "indexed"; - @SearchParamDefinition(name="status", path="DocumentReference.status", description="current | superceded | entered in error", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="subject", path="DocumentReference.subject", description="Who|what is the subject of the document", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="relatesto", path="DocumentReference.relatesTo.target", description="Target of the relationship", type="reference" ) - public static final String SP_RELATESTO = "relatesto"; - @SearchParamDefinition(name="relation", path="DocumentReference.relatesTo.code", description="replaces | transforms | signs | appends", type="token" ) - public static final String SP_RELATION = "relation"; - @SearchParamDefinition(name="class", path="DocumentReference.class", description="Categorization of Document", type="token" ) - public static final String SP_CLASS = "class"; - @SearchParamDefinition(name="format", path="DocumentReference.format", description="Format/content rules for the document", type="token" ) - public static final String SP_FORMAT = "format"; - @SearchParamDefinition(name="period", path="DocumentReference.context.period", description="Time of service that is being documented", type="date" ) - public static final String SP_PERIOD = "period"; - @SearchParamDefinition(name="type", path="DocumentReference.type", description="What kind of document this is (LOINC if possible)", type="token" ) - public static final String SP_TYPE = "type"; - @SearchParamDefinition(name="authenticator", path="DocumentReference.authenticator", description="Who/What authenticated the document", type="reference" ) - public static final String SP_AUTHENTICATOR = "authenticator"; - @SearchParamDefinition(name="size", path="DocumentReference.size", description="Size of the document in bytes", type="number" ) - public static final String SP_SIZE = "size"; - @SearchParamDefinition(name="relationship", path="", description="Combination of relation and relatesTo", type="composite" ) - public static final String SP_RELATIONSHIP = "relationship"; - @SearchParamDefinition(name="author", path="DocumentReference.author", description="Who and/or what authored the document", type="reference" ) - public static final String SP_AUTHOR = "author"; - @SearchParamDefinition(name="patient", path="DocumentReference.subject", description="Who|what is the subject of the document", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="custodian", path="DocumentReference.custodian", description="Org which maintains the document", type="reference" ) - public static final String SP_CUSTODIAN = "custodian"; - @SearchParamDefinition(name="facility", path="DocumentReference.context.facilityType", description="Kind of facility where patient was seen", type="token" ) - public static final String SP_FACILITY = "facility"; - @SearchParamDefinition(name="created", path="DocumentReference.created", description="Document creation time", type="date" ) - public static final String SP_CREATED = "created"; - @SearchParamDefinition(name="event", path="DocumentReference.context.event", description="Main Clinical Acts Documented", type="token" ) - public static final String SP_EVENT = "event"; - @SearchParamDefinition(name="confidentiality", path="DocumentReference.confidentiality", description="Sensitivity of source document", type="token" ) - public static final String SP_CONFIDENTIALITY = "confidentiality"; - @SearchParamDefinition(name="description", path="DocumentReference.description", description="Human-readable description (title)", type="string" ) - public static final String SP_DESCRIPTION = "description"; - @SearchParamDefinition(name="language", path="DocumentReference.primaryLanguage", description="The marked primary language for the document", type="token" ) - public static final String SP_LANGUAGE = "language"; - @SearchParamDefinition(name="identifier", path="DocumentReference.masterIdentifier|DocumentReference.identifier", description="Master Version Specific Identifier", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A reference to a document. + */ +@ResourceDef(name="DocumentReference", profile="http://hl7.org/fhir/Profile/DocumentReference") +public class DocumentReference extends DomainResource { + + public enum DocumentReferenceStatus { + /** + * This is the current reference for this document. + */ + CURRENT, + /** + * This reference has been superseded by another reference. + */ + SUPERCEDED, + /** + * This reference was created in error. + */ + ENTEREDINERROR, + /** + * added to help the parsers + */ + NULL; + public static DocumentReferenceStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("current".equals(codeString)) + return CURRENT; + if ("superceded".equals(codeString)) + return SUPERCEDED; + if ("entered-in-error".equals(codeString)) + return ENTEREDINERROR; + throw new Exception("Unknown DocumentReferenceStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case CURRENT: return "current"; + case SUPERCEDED: return "superceded"; + case ENTEREDINERROR: return "entered-in-error"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case CURRENT: return ""; + case SUPERCEDED: return ""; + case ENTEREDINERROR: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case CURRENT: return "This is the current reference for this document."; + case SUPERCEDED: return "This reference has been superseded by another reference."; + case ENTEREDINERROR: return "This reference was created in error."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case CURRENT: return "current"; + case SUPERCEDED: return "superceded"; + case ENTEREDINERROR: return "entered-in-error"; + default: return "?"; + } + } + } + + public static class DocumentReferenceStatusEnumFactory implements EnumFactory { + public DocumentReferenceStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("current".equals(codeString)) + return DocumentReferenceStatus.CURRENT; + if ("superceded".equals(codeString)) + return DocumentReferenceStatus.SUPERCEDED; + if ("entered-in-error".equals(codeString)) + return DocumentReferenceStatus.ENTEREDINERROR; + throw new IllegalArgumentException("Unknown DocumentReferenceStatus code '"+codeString+"'"); + } + public String toCode(DocumentReferenceStatus code) { + if (code == DocumentReferenceStatus.CURRENT) + return "current"; + if (code == DocumentReferenceStatus.SUPERCEDED) + return "superceded"; + if (code == DocumentReferenceStatus.ENTEREDINERROR) + return "entered-in-error"; + return "?"; + } + } + + public enum DocumentRelationshipType { + /** + * This document logically replaces or supercedes the target document. + */ + REPLACES, + /** + * This document was generated by transforming the target document (e.g. format or language conversion). + */ + TRANSFORMS, + /** + * This document is a signature of the target document. + */ + SIGNS, + /** + * This document adds additional information to the target document. + */ + APPENDS, + /** + * added to help the parsers + */ + NULL; + public static DocumentRelationshipType fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("replaces".equals(codeString)) + return REPLACES; + if ("transforms".equals(codeString)) + return TRANSFORMS; + if ("signs".equals(codeString)) + return SIGNS; + if ("appends".equals(codeString)) + return APPENDS; + throw new Exception("Unknown DocumentRelationshipType code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case REPLACES: return "replaces"; + case TRANSFORMS: return "transforms"; + case SIGNS: return "signs"; + case APPENDS: return "appends"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case REPLACES: return ""; + case TRANSFORMS: return ""; + case SIGNS: return ""; + case APPENDS: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case REPLACES: return "This document logically replaces or supercedes the target document."; + case TRANSFORMS: return "This document was generated by transforming the target document (e.g. format or language conversion)."; + case SIGNS: return "This document is a signature of the target document."; + case APPENDS: return "This document adds additional information to the target document."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case REPLACES: return "replaces"; + case TRANSFORMS: return "transforms"; + case SIGNS: return "signs"; + case APPENDS: return "appends"; + default: return "?"; + } + } + } + + public static class DocumentRelationshipTypeEnumFactory implements EnumFactory { + public DocumentRelationshipType fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("replaces".equals(codeString)) + return DocumentRelationshipType.REPLACES; + if ("transforms".equals(codeString)) + return DocumentRelationshipType.TRANSFORMS; + if ("signs".equals(codeString)) + return DocumentRelationshipType.SIGNS; + if ("appends".equals(codeString)) + return DocumentRelationshipType.APPENDS; + throw new IllegalArgumentException("Unknown DocumentRelationshipType code '"+codeString+"'"); + } + public String toCode(DocumentRelationshipType code) { + if (code == DocumentRelationshipType.REPLACES) + return "replaces"; + if (code == DocumentRelationshipType.TRANSFORMS) + return "transforms"; + if (code == DocumentRelationshipType.SIGNS) + return "signs"; + if (code == DocumentRelationshipType.APPENDS) + return "appends"; + return "?"; + } + } + + @Block() + public static class DocumentReferenceRelatesToComponent extends BackboneElement { + /** + * The type of relationship that this document has with anther document. + */ + @Child(name="code", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="replaces | transforms | signs | appends", formalDefinition="The type of relationship that this document has with anther document." ) + protected Enumeration code; + + /** + * The target document of this relationship. + */ + @Child(name="target", type={DocumentReference.class}, order=2, min=1, max=1) + @Description(shortDefinition="Target of the relationship", formalDefinition="The target document of this relationship." ) + protected Reference target; + + /** + * The actual object that is the target of the reference (The target document of this relationship.) + */ + protected DocumentReference targetTarget; + + private static final long serialVersionUID = -347257495L; + + public DocumentReferenceRelatesToComponent() { + super(); + } + + public DocumentReferenceRelatesToComponent(Enumeration code, Reference target) { + super(); + this.code = code; + this.target = target; + } + + /** + * @return {@link #code} (The type of relationship that this document has with anther document.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public Enumeration getCodeElement() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReferenceRelatesToComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new Enumeration(new DocumentRelationshipTypeEnumFactory()); // bb + return this.code; + } + + public boolean hasCodeElement() { + return this.code != null && !this.code.isEmpty(); + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (The type of relationship that this document has with anther document.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public DocumentReferenceRelatesToComponent setCodeElement(Enumeration value) { + this.code = value; + return this; + } + + /** + * @return The type of relationship that this document has with anther document. + */ + public DocumentRelationshipType getCode() { + return this.code == null ? null : this.code.getValue(); + } + + /** + * @param value The type of relationship that this document has with anther document. + */ + public DocumentReferenceRelatesToComponent setCode(DocumentRelationshipType value) { + if (this.code == null) + this.code = new Enumeration(new DocumentRelationshipTypeEnumFactory()); + this.code.setValue(value); + return this; + } + + /** + * @return {@link #target} (The target document of this relationship.) + */ + public Reference getTarget() { + if (this.target == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReferenceRelatesToComponent.target"); + else if (Configuration.doAutoCreate()) + this.target = new Reference(); // cc + return this.target; + } + + public boolean hasTarget() { + return this.target != null && !this.target.isEmpty(); + } + + /** + * @param value {@link #target} (The target document of this relationship.) + */ + public DocumentReferenceRelatesToComponent setTarget(Reference value) { + this.target = value; + return this; + } + + /** + * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The target document of this relationship.) + */ + public DocumentReference getTargetTarget() { + if (this.targetTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReferenceRelatesToComponent.target"); + else if (Configuration.doAutoCreate()) + this.targetTarget = new DocumentReference(); // aa + return this.targetTarget; + } + + /** + * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The target document of this relationship.) + */ + public DocumentReferenceRelatesToComponent setTargetTarget(DocumentReference value) { + this.targetTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "code", "The type of relationship that this document has with anther document.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("target", "Reference(DocumentReference)", "The target document of this relationship.", 0, java.lang.Integer.MAX_VALUE, target)); + } + + public DocumentReferenceRelatesToComponent copy() { + DocumentReferenceRelatesToComponent dst = new DocumentReferenceRelatesToComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.target = target == null ? null : target.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DocumentReferenceRelatesToComponent)) + return false; + DocumentReferenceRelatesToComponent o = (DocumentReferenceRelatesToComponent) other; + return compareDeep(code, o.code, true) && compareDeep(target, o.target, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DocumentReferenceRelatesToComponent)) + return false; + DocumentReferenceRelatesToComponent o = (DocumentReferenceRelatesToComponent) other; + return compareValues(code, o.code, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (target == null || target.isEmpty()) + ; + } + + } + + @Block() + public static class DocumentReferenceContextComponent extends BackboneElement { + /** + * This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act. + */ + @Child(name="event", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Main Clinical Acts Documented", formalDefinition="This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a 'History and Physical Report' in which the procedure being documented is necessarily a 'History and Physical' act." ) + protected List event; + + /** + * The time period over which the service that is described by the document was provided. + */ + @Child(name="period", type={Period.class}, order=2, min=0, max=1) + @Description(shortDefinition="Time of service that is being documented", formalDefinition="The time period over which the service that is described by the document was provided." ) + protected Period period; + + /** + * The kind of facility where the patient was seen. + */ + @Child(name="facilityType", type={CodeableConcept.class}, order=3, min=0, max=1) + @Description(shortDefinition="Kind of facility where patient was seen", formalDefinition="The kind of facility where the patient was seen." ) + protected CodeableConcept facilityType; + + private static final long serialVersionUID = -1762960949L; + + public DocumentReferenceContextComponent() { + super(); + } + + /** + * @return {@link #event} (This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.) + */ + public List getEvent() { + if (this.event == null) + this.event = new ArrayList(); + return this.event; + } + + public boolean hasEvent() { + if (this.event == null) + return false; + for (CodeableConcept item : this.event) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #event} (This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.) + */ + // syntactic sugar + public CodeableConcept addEvent() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.event == null) + this.event = new ArrayList(); + this.event.add(t); + return t; + } + + /** + * @return {@link #period} (The time period over which the service that is described by the document was provided.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReferenceContextComponent.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (The time period over which the service that is described by the document was provided.) + */ + public DocumentReferenceContextComponent setPeriod(Period value) { + this.period = value; + return this; + } + + /** + * @return {@link #facilityType} (The kind of facility where the patient was seen.) + */ + public CodeableConcept getFacilityType() { + if (this.facilityType == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReferenceContextComponent.facilityType"); + else if (Configuration.doAutoCreate()) + this.facilityType = new CodeableConcept(); // cc + return this.facilityType; + } + + public boolean hasFacilityType() { + return this.facilityType != null && !this.facilityType.isEmpty(); + } + + /** + * @param value {@link #facilityType} (The kind of facility where the patient was seen.) + */ + public DocumentReferenceContextComponent setFacilityType(CodeableConcept value) { + this.facilityType = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("event", "CodeableConcept", "This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a 'History and Physical Report' in which the procedure being documented is necessarily a 'History and Physical' act.", 0, java.lang.Integer.MAX_VALUE, event)); + childrenList.add(new Property("period", "Period", "The time period over which the service that is described by the document was provided.", 0, java.lang.Integer.MAX_VALUE, period)); + childrenList.add(new Property("facilityType", "CodeableConcept", "The kind of facility where the patient was seen.", 0, java.lang.Integer.MAX_VALUE, facilityType)); + } + + public DocumentReferenceContextComponent copy() { + DocumentReferenceContextComponent dst = new DocumentReferenceContextComponent(); + copyValues(dst); + if (event != null) { + dst.event = new ArrayList(); + for (CodeableConcept i : event) + dst.event.add(i.copy()); + }; + dst.period = period == null ? null : period.copy(); + dst.facilityType = facilityType == null ? null : facilityType.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DocumentReferenceContextComponent)) + return false; + DocumentReferenceContextComponent o = (DocumentReferenceContextComponent) other; + return compareDeep(event, o.event, true) && compareDeep(period, o.period, true) && compareDeep(facilityType, o.facilityType, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DocumentReferenceContextComponent)) + return false; + DocumentReferenceContextComponent o = (DocumentReferenceContextComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (event == null || event.isEmpty()) && (period == null || period.isEmpty()) + && (facilityType == null || facilityType.isEmpty()); + } + + } + + /** + * Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document. + */ + @Child(name="masterIdentifier", type={Identifier.class}, order=-1, min=0, max=1) + @Description(shortDefinition="Master Version Specific Identifier", formalDefinition="Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document." ) + protected Identifier masterIdentifier; + + /** + * Other identifiers associated with the document, including version independent, source record and workflow related identifiers. + */ + @Child(name="identifier", type={Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Other identifiers for the document", formalDefinition="Other identifiers associated with the document, including version independent, source record and workflow related identifiers." ) + protected List identifier; + + /** + * Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). + */ + @Child(name="subject", type={Patient.class, Practitioner.class, Group.class, Device.class}, order=1, min=0, max=1) + @Description(shortDefinition="Who|what is the subject of the document", formalDefinition="Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure)." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).) + */ + protected Resource subjectTarget; + + /** + * The type code specifies the precise type of document from the user perspective. It is recommended that the value Set be drawn from a coding scheme providing a fine level of granularity such as LOINC. (e.g. Patient Summary, Discharge Summary, Prescription, etc.). + */ + @Child(name="type", type={CodeableConcept.class}, order=2, min=1, max=1) + @Description(shortDefinition="Precice type of document", formalDefinition="The type code specifies the precise type of document from the user perspective. It is recommended that the value Set be drawn from a coding scheme providing a fine level of granularity such as LOINC. (e.g. Patient Summary, Discharge Summary, Prescription, etc.)." ) + protected CodeableConcept type; + + /** + * The class code specifying the high-level use classification of the document type (e.g., Report, Summary, Images, Treatment Plan, Patient Preferences, Workflow). + */ + @Child(name="class_", type={CodeableConcept.class}, order=3, min=0, max=1) + @Description(shortDefinition="High-level classification of document", formalDefinition="The class code specifying the high-level use classification of the document type (e.g., Report, Summary, Images, Treatment Plan, Patient Preferences, Workflow)." ) + protected CodeableConcept class_; + + /** + * An identifier that identifies the the document encoding, structure and template that the document conforms to beyond the base format indicated in the mimeType. + */ + @Child(name="format", type={UriType.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Format/content rules for the document", formalDefinition="An identifier that identifies the the document encoding, structure and template that the document conforms to beyond the base format indicated in the mimeType." ) + protected List format; + + /** + * Identifies who is responsible for adding the information to the document. + */ + @Child(name="author", type={Practitioner.class, Organization.class, Device.class, Patient.class, RelatedPerson.class}, order=5, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Who and/or what authored the document", formalDefinition="Identifies who is responsible for adding the information to the document." ) + protected List author; + /** + * The actual objects that are the target of the reference (Identifies who is responsible for adding the information to the document.) + */ + protected List authorTarget; + + + /** + * Identifies the organization or group who is responsible for ongoing maintenance of and access to the document. + */ + @Child(name="custodian", type={Organization.class}, order=6, min=0, max=1) + @Description(shortDefinition="Org which maintains the document", formalDefinition="Identifies the organization or group who is responsible for ongoing maintenance of and access to the document." ) + protected Reference custodian; + + /** + * The actual object that is the target of the reference (Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.) + */ + protected Organization custodianTarget; + + /** + * A reference to a domain or server that manages policies under which the document is accessed and/or made available. + */ + @Child(name="policyManager", type={UriType.class}, order=7, min=0, max=1) + @Description(shortDefinition="Manages access policies for the document", formalDefinition="A reference to a domain or server that manages policies under which the document is accessed and/or made available." ) + protected UriType policyManager; + + /** + * Which person or organization authenticates that this document is valid. + */ + @Child(name="authenticator", type={Practitioner.class, Organization.class}, order=8, min=0, max=1) + @Description(shortDefinition="Who/What authenticated the document", formalDefinition="Which person or organization authenticates that this document is valid." ) + protected Reference authenticator; + + /** + * The actual object that is the target of the reference (Which person or organization authenticates that this document is valid.) + */ + protected Resource authenticatorTarget; + + /** + * When the document was created. + */ + @Child(name="created", type={DateTimeType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Document creation time", formalDefinition="When the document was created." ) + protected DateTimeType created; + + /** + * When the document reference was created. + */ + @Child(name="indexed", type={InstantType.class}, order=10, min=1, max=1) + @Description(shortDefinition="When this document reference created", formalDefinition="When the document reference was created." ) + protected InstantType indexed; + + /** + * The status of this document reference. + */ + @Child(name="status", type={CodeType.class}, order=11, min=1, max=1) + @Description(shortDefinition="current | superceded | entered-in-error", formalDefinition="The status of this document reference." ) + protected Enumeration status; + + /** + * The status of the underlying document. + */ + @Child(name="docStatus", type={CodeableConcept.class}, order=12, min=0, max=1) + @Description(shortDefinition="preliminary | final | appended | amended | entered-in-error", formalDefinition="The status of the underlying document." ) + protected CodeableConcept docStatus; + + /** + * Relationships that this document has with other document references that already exist. + */ + @Child(name="relatesTo", type={}, order=13, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Relationships to other documents", formalDefinition="Relationships that this document has with other document references that already exist." ) + protected List relatesTo; + + /** + * Human-readable description of the source document. This is sometimes known as the "title". + */ + @Child(name="description", type={StringType.class}, order=14, min=0, max=1) + @Description(shortDefinition="Human-readable description (title)", formalDefinition="Human-readable description of the source document. This is sometimes known as the 'title'." ) + protected StringType description; + + /** + * A set of Security-Tag codes specifying the level of privacy/security of the Document. + */ + @Child(name="confidentiality", type={CodeableConcept.class}, order=15, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Sensitivity of source document", formalDefinition="A set of Security-Tag codes specifying the level of privacy/security of the Document." ) + protected List confidentiality; + + /** + * The document or url to the document along with critical metadata to prove content has integrity. + */ + @Child(name="content", type={Attachment.class}, order=16, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Where to access the document", formalDefinition="The document or url to the document along with critical metadata to prove content has integrity." ) + protected List content; + + /** + * The clinical context in which the document was prepared. + */ + @Child(name="context", type={}, order=17, min=0, max=1) + @Description(shortDefinition="Clinical context of document", formalDefinition="The clinical context in which the document was prepared." ) + protected DocumentReferenceContextComponent context; + + private static final long serialVersionUID = -392974585L; + + public DocumentReference() { + super(); + } + + public DocumentReference(CodeableConcept type, InstantType indexed, Enumeration status) { + super(); + this.type = type; + this.indexed = indexed; + this.status = status; + } + + /** + * @return {@link #masterIdentifier} (Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document.) + */ + public Identifier getMasterIdentifier() { + if (this.masterIdentifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.masterIdentifier"); + else if (Configuration.doAutoCreate()) + this.masterIdentifier = new Identifier(); // cc + return this.masterIdentifier; + } + + public boolean hasMasterIdentifier() { + return this.masterIdentifier != null && !this.masterIdentifier.isEmpty(); + } + + /** + * @param value {@link #masterIdentifier} (Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document.) + */ + public DocumentReference setMasterIdentifier(Identifier value) { + this.masterIdentifier = value; + return this; + } + + /** + * @return {@link #identifier} (Other identifiers associated with the document, including version independent, source record and workflow related identifiers.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Other identifiers associated with the document, including version independent, source record and workflow related identifiers.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #subject} (Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).) + */ + public DocumentReference setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).) + */ + public Resource getSubjectTarget() { + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).) + */ + public DocumentReference setSubjectTarget(Resource value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #type} (The type code specifies the precise type of document from the user perspective. It is recommended that the value Set be drawn from a coding scheme providing a fine level of granularity such as LOINC. (e.g. Patient Summary, Discharge Summary, Prescription, etc.).) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The type code specifies the precise type of document from the user perspective. It is recommended that the value Set be drawn from a coding scheme providing a fine level of granularity such as LOINC. (e.g. Patient Summary, Discharge Summary, Prescription, etc.).) + */ + public DocumentReference setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #class_} (The class code specifying the high-level use classification of the document type (e.g., Report, Summary, Images, Treatment Plan, Patient Preferences, Workflow).) + */ + public CodeableConcept getClass_() { + if (this.class_ == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.class_"); + else if (Configuration.doAutoCreate()) + this.class_ = new CodeableConcept(); // cc + return this.class_; + } + + public boolean hasClass_() { + return this.class_ != null && !this.class_.isEmpty(); + } + + /** + * @param value {@link #class_} (The class code specifying the high-level use classification of the document type (e.g., Report, Summary, Images, Treatment Plan, Patient Preferences, Workflow).) + */ + public DocumentReference setClass_(CodeableConcept value) { + this.class_ = value; + return this; + } + + /** + * @return {@link #format} (An identifier that identifies the the document encoding, structure and template that the document conforms to beyond the base format indicated in the mimeType.) + */ + public List getFormat() { + if (this.format == null) + this.format = new ArrayList(); + return this.format; + } + + public boolean hasFormat() { + if (this.format == null) + return false; + for (UriType item : this.format) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #format} (An identifier that identifies the the document encoding, structure and template that the document conforms to beyond the base format indicated in the mimeType.) + */ + // syntactic sugar + public UriType addFormatElement() {//2 + UriType t = new UriType(); + if (this.format == null) + this.format = new ArrayList(); + this.format.add(t); + return t; + } + + /** + * @param value {@link #format} (An identifier that identifies the the document encoding, structure and template that the document conforms to beyond the base format indicated in the mimeType.) + */ + public DocumentReference addFormat(String value) { //1 + UriType t = new UriType(); + t.setValue(value); + if (this.format == null) + this.format = new ArrayList(); + this.format.add(t); + return this; + } + + /** + * @param value {@link #format} (An identifier that identifies the the document encoding, structure and template that the document conforms to beyond the base format indicated in the mimeType.) + */ + public boolean hasFormat(String value) { + if (this.format == null) + return false; + for (UriType v : this.format) + if (v.equals(value)) // uri + return true; + return false; + } + + /** + * @return {@link #author} (Identifies who is responsible for adding the information to the document.) + */ + public List getAuthor() { + if (this.author == null) + this.author = new ArrayList(); + return this.author; + } + + public boolean hasAuthor() { + if (this.author == null) + return false; + for (Reference item : this.author) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #author} (Identifies who is responsible for adding the information to the document.) + */ + // syntactic sugar + public Reference addAuthor() { //3 + Reference t = new Reference(); + if (this.author == null) + this.author = new ArrayList(); + this.author.add(t); + return t; + } + + /** + * @return {@link #author} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies who is responsible for adding the information to the document.) + */ + public List getAuthorTarget() { + if (this.authorTarget == null) + this.authorTarget = new ArrayList(); + return this.authorTarget; + } + + /** + * @return {@link #custodian} (Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.) + */ + public Reference getCustodian() { + if (this.custodian == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.custodian"); + else if (Configuration.doAutoCreate()) + this.custodian = new Reference(); // cc + return this.custodian; + } + + public boolean hasCustodian() { + return this.custodian != null && !this.custodian.isEmpty(); + } + + /** + * @param value {@link #custodian} (Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.) + */ + public DocumentReference setCustodian(Reference value) { + this.custodian = value; + return this; + } + + /** + * @return {@link #custodian} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.) + */ + public Organization getCustodianTarget() { + if (this.custodianTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.custodian"); + else if (Configuration.doAutoCreate()) + this.custodianTarget = new Organization(); // aa + return this.custodianTarget; + } + + /** + * @param value {@link #custodian} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.) + */ + public DocumentReference setCustodianTarget(Organization value) { + this.custodianTarget = value; + return this; + } + + /** + * @return {@link #policyManager} (A reference to a domain or server that manages policies under which the document is accessed and/or made available.). This is the underlying object with id, value and extensions. The accessor "getPolicyManager" gives direct access to the value + */ + public UriType getPolicyManagerElement() { + if (this.policyManager == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.policyManager"); + else if (Configuration.doAutoCreate()) + this.policyManager = new UriType(); // bb + return this.policyManager; + } + + public boolean hasPolicyManagerElement() { + return this.policyManager != null && !this.policyManager.isEmpty(); + } + + public boolean hasPolicyManager() { + return this.policyManager != null && !this.policyManager.isEmpty(); + } + + /** + * @param value {@link #policyManager} (A reference to a domain or server that manages policies under which the document is accessed and/or made available.). This is the underlying object with id, value and extensions. The accessor "getPolicyManager" gives direct access to the value + */ + public DocumentReference setPolicyManagerElement(UriType value) { + this.policyManager = value; + return this; + } + + /** + * @return A reference to a domain or server that manages policies under which the document is accessed and/or made available. + */ + public String getPolicyManager() { + return this.policyManager == null ? null : this.policyManager.getValue(); + } + + /** + * @param value A reference to a domain or server that manages policies under which the document is accessed and/or made available. + */ + public DocumentReference setPolicyManager(String value) { + if (Utilities.noString(value)) + this.policyManager = null; + else { + if (this.policyManager == null) + this.policyManager = new UriType(); + this.policyManager.setValue(value); + } + return this; + } + + /** + * @return {@link #authenticator} (Which person or organization authenticates that this document is valid.) + */ + public Reference getAuthenticator() { + if (this.authenticator == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.authenticator"); + else if (Configuration.doAutoCreate()) + this.authenticator = new Reference(); // cc + return this.authenticator; + } + + public boolean hasAuthenticator() { + return this.authenticator != null && !this.authenticator.isEmpty(); + } + + /** + * @param value {@link #authenticator} (Which person or organization authenticates that this document is valid.) + */ + public DocumentReference setAuthenticator(Reference value) { + this.authenticator = value; + return this; + } + + /** + * @return {@link #authenticator} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Which person or organization authenticates that this document is valid.) + */ + public Resource getAuthenticatorTarget() { + return this.authenticatorTarget; + } + + /** + * @param value {@link #authenticator} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Which person or organization authenticates that this document is valid.) + */ + public DocumentReference setAuthenticatorTarget(Resource value) { + this.authenticatorTarget = value; + return this; + } + + /** + * @return {@link #created} (When the document was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DateTimeType getCreatedElement() { + if (this.created == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.created"); + else if (Configuration.doAutoCreate()) + this.created = new DateTimeType(); // bb + return this.created; + } + + public boolean hasCreatedElement() { + return this.created != null && !this.created.isEmpty(); + } + + public boolean hasCreated() { + return this.created != null && !this.created.isEmpty(); + } + + /** + * @param value {@link #created} (When the document was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DocumentReference setCreatedElement(DateTimeType value) { + this.created = value; + return this; + } + + /** + * @return When the document was created. + */ + public Date getCreated() { + return this.created == null ? null : this.created.getValue(); + } + + /** + * @param value When the document was created. + */ + public DocumentReference setCreated(Date value) { + if (value == null) + this.created = null; + else { + if (this.created == null) + this.created = new DateTimeType(); + this.created.setValue(value); + } + return this; + } + + /** + * @return {@link #indexed} (When the document reference was created.). This is the underlying object with id, value and extensions. The accessor "getIndexed" gives direct access to the value + */ + public InstantType getIndexedElement() { + if (this.indexed == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.indexed"); + else if (Configuration.doAutoCreate()) + this.indexed = new InstantType(); // bb + return this.indexed; + } + + public boolean hasIndexedElement() { + return this.indexed != null && !this.indexed.isEmpty(); + } + + public boolean hasIndexed() { + return this.indexed != null && !this.indexed.isEmpty(); + } + + /** + * @param value {@link #indexed} (When the document reference was created.). This is the underlying object with id, value and extensions. The accessor "getIndexed" gives direct access to the value + */ + public DocumentReference setIndexedElement(InstantType value) { + this.indexed = value; + return this; + } + + /** + * @return When the document reference was created. + */ + public Date getIndexed() { + return this.indexed == null ? null : this.indexed.getValue(); + } + + /** + * @param value When the document reference was created. + */ + public DocumentReference setIndexed(Date value) { + if (this.indexed == null) + this.indexed = new InstantType(); + this.indexed.setValue(value); + return this; + } + + /** + * @return {@link #status} (The status of this document reference.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new DocumentReferenceStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of this document reference.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public DocumentReference setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of this document reference. + */ + public DocumentReferenceStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of this document reference. + */ + public DocumentReference setStatus(DocumentReferenceStatus value) { + if (this.status == null) + this.status = new Enumeration(new DocumentReferenceStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #docStatus} (The status of the underlying document.) + */ + public CodeableConcept getDocStatus() { + if (this.docStatus == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.docStatus"); + else if (Configuration.doAutoCreate()) + this.docStatus = new CodeableConcept(); // cc + return this.docStatus; + } + + public boolean hasDocStatus() { + return this.docStatus != null && !this.docStatus.isEmpty(); + } + + /** + * @param value {@link #docStatus} (The status of the underlying document.) + */ + public DocumentReference setDocStatus(CodeableConcept value) { + this.docStatus = value; + return this; + } + + /** + * @return {@link #relatesTo} (Relationships that this document has with other document references that already exist.) + */ + public List getRelatesTo() { + if (this.relatesTo == null) + this.relatesTo = new ArrayList(); + return this.relatesTo; + } + + public boolean hasRelatesTo() { + if (this.relatesTo == null) + return false; + for (DocumentReferenceRelatesToComponent item : this.relatesTo) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #relatesTo} (Relationships that this document has with other document references that already exist.) + */ + // syntactic sugar + public DocumentReferenceRelatesToComponent addRelatesTo() { //3 + DocumentReferenceRelatesToComponent t = new DocumentReferenceRelatesToComponent(); + if (this.relatesTo == null) + this.relatesTo = new ArrayList(); + this.relatesTo.add(t); + return t; + } + + /** + * @return {@link #description} (Human-readable description of the source document. This is sometimes known as the "title".). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Human-readable description of the source document. This is sometimes known as the "title".). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public DocumentReference setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Human-readable description of the source document. This is sometimes known as the "title". + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Human-readable description of the source document. This is sometimes known as the "title". + */ + public DocumentReference setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #confidentiality} (A set of Security-Tag codes specifying the level of privacy/security of the Document.) + */ + public List getConfidentiality() { + if (this.confidentiality == null) + this.confidentiality = new ArrayList(); + return this.confidentiality; + } + + public boolean hasConfidentiality() { + if (this.confidentiality == null) + return false; + for (CodeableConcept item : this.confidentiality) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #confidentiality} (A set of Security-Tag codes specifying the level of privacy/security of the Document.) + */ + // syntactic sugar + public CodeableConcept addConfidentiality() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.confidentiality == null) + this.confidentiality = new ArrayList(); + this.confidentiality.add(t); + return t; + } + + /** + * @return {@link #content} (The document or url to the document along with critical metadata to prove content has integrity.) + */ + public List getContent() { + if (this.content == null) + this.content = new ArrayList(); + return this.content; + } + + public boolean hasContent() { + if (this.content == null) + return false; + for (Attachment item : this.content) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #content} (The document or url to the document along with critical metadata to prove content has integrity.) + */ + // syntactic sugar + public Attachment addContent() { //3 + Attachment t = new Attachment(); + if (this.content == null) + this.content = new ArrayList(); + this.content.add(t); + return t; + } + + /** + * @return {@link #context} (The clinical context in which the document was prepared.) + */ + public DocumentReferenceContextComponent getContext() { + if (this.context == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DocumentReference.context"); + else if (Configuration.doAutoCreate()) + this.context = new DocumentReferenceContextComponent(); // cc + return this.context; + } + + public boolean hasContext() { + return this.context != null && !this.context.isEmpty(); + } + + /** + * @param value {@link #context} (The clinical context in which the document was prepared.) + */ + public DocumentReference setContext(DocumentReferenceContextComponent value) { + this.context = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("masterIdentifier", "Identifier", "Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document.", 0, java.lang.Integer.MAX_VALUE, masterIdentifier)); + childrenList.add(new Property("identifier", "Identifier", "Other identifiers associated with the document, including version independent, source record and workflow related identifiers.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device)", "Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("type", "CodeableConcept", "The type code specifies the precise type of document from the user perspective. It is recommended that the value Set be drawn from a coding scheme providing a fine level of granularity such as LOINC. (e.g. Patient Summary, Discharge Summary, Prescription, etc.).", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("class", "CodeableConcept", "The class code specifying the high-level use classification of the document type (e.g., Report, Summary, Images, Treatment Plan, Patient Preferences, Workflow).", 0, java.lang.Integer.MAX_VALUE, class_)); + childrenList.add(new Property("format", "uri", "An identifier that identifies the the document encoding, structure and template that the document conforms to beyond the base format indicated in the mimeType.", 0, java.lang.Integer.MAX_VALUE, format)); + childrenList.add(new Property("author", "Reference(Practitioner|Organization|Device|Patient|RelatedPerson)", "Identifies who is responsible for adding the information to the document.", 0, java.lang.Integer.MAX_VALUE, author)); + childrenList.add(new Property("custodian", "Reference(Organization)", "Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.", 0, java.lang.Integer.MAX_VALUE, custodian)); + childrenList.add(new Property("policyManager", "uri", "A reference to a domain or server that manages policies under which the document is accessed and/or made available.", 0, java.lang.Integer.MAX_VALUE, policyManager)); + childrenList.add(new Property("authenticator", "Reference(Practitioner|Organization)", "Which person or organization authenticates that this document is valid.", 0, java.lang.Integer.MAX_VALUE, authenticator)); + childrenList.add(new Property("created", "dateTime", "When the document was created.", 0, java.lang.Integer.MAX_VALUE, created)); + childrenList.add(new Property("indexed", "instant", "When the document reference was created.", 0, java.lang.Integer.MAX_VALUE, indexed)); + childrenList.add(new Property("status", "code", "The status of this document reference.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("docStatus", "CodeableConcept", "The status of the underlying document.", 0, java.lang.Integer.MAX_VALUE, docStatus)); + childrenList.add(new Property("relatesTo", "", "Relationships that this document has with other document references that already exist.", 0, java.lang.Integer.MAX_VALUE, relatesTo)); + childrenList.add(new Property("description", "string", "Human-readable description of the source document. This is sometimes known as the 'title'.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("confidentiality", "CodeableConcept", "A set of Security-Tag codes specifying the level of privacy/security of the Document.", 0, java.lang.Integer.MAX_VALUE, confidentiality)); + childrenList.add(new Property("content", "Attachment", "The document or url to the document along with critical metadata to prove content has integrity.", 0, java.lang.Integer.MAX_VALUE, content)); + childrenList.add(new Property("context", "", "The clinical context in which the document was prepared.", 0, java.lang.Integer.MAX_VALUE, context)); + } + + public DocumentReference copy() { + DocumentReference dst = new DocumentReference(); + copyValues(dst); + dst.masterIdentifier = masterIdentifier == null ? null : masterIdentifier.copy(); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.subject = subject == null ? null : subject.copy(); + dst.type = type == null ? null : type.copy(); + dst.class_ = class_ == null ? null : class_.copy(); + if (format != null) { + dst.format = new ArrayList(); + for (UriType i : format) + dst.format.add(i.copy()); + }; + if (author != null) { + dst.author = new ArrayList(); + for (Reference i : author) + dst.author.add(i.copy()); + }; + dst.custodian = custodian == null ? null : custodian.copy(); + dst.policyManager = policyManager == null ? null : policyManager.copy(); + dst.authenticator = authenticator == null ? null : authenticator.copy(); + dst.created = created == null ? null : created.copy(); + dst.indexed = indexed == null ? null : indexed.copy(); + dst.status = status == null ? null : status.copy(); + dst.docStatus = docStatus == null ? null : docStatus.copy(); + if (relatesTo != null) { + dst.relatesTo = new ArrayList(); + for (DocumentReferenceRelatesToComponent i : relatesTo) + dst.relatesTo.add(i.copy()); + }; + dst.description = description == null ? null : description.copy(); + if (confidentiality != null) { + dst.confidentiality = new ArrayList(); + for (CodeableConcept i : confidentiality) + dst.confidentiality.add(i.copy()); + }; + if (content != null) { + dst.content = new ArrayList(); + for (Attachment i : content) + dst.content.add(i.copy()); + }; + dst.context = context == null ? null : context.copy(); + return dst; + } + + protected DocumentReference typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DocumentReference)) + return false; + DocumentReference o = (DocumentReference) other; + return compareDeep(masterIdentifier, o.masterIdentifier, true) && compareDeep(identifier, o.identifier, true) + && compareDeep(subject, o.subject, true) && compareDeep(type, o.type, true) && compareDeep(class_, o.class_, true) + && compareDeep(format, o.format, true) && compareDeep(author, o.author, true) && compareDeep(custodian, o.custodian, true) + && compareDeep(policyManager, o.policyManager, true) && compareDeep(authenticator, o.authenticator, true) + && compareDeep(created, o.created, true) && compareDeep(indexed, o.indexed, true) && compareDeep(status, o.status, true) + && compareDeep(docStatus, o.docStatus, true) && compareDeep(relatesTo, o.relatesTo, true) && compareDeep(description, o.description, true) + && compareDeep(confidentiality, o.confidentiality, true) && compareDeep(content, o.content, true) + && compareDeep(context, o.context, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DocumentReference)) + return false; + DocumentReference o = (DocumentReference) other; + return compareValues(format, o.format, true) && compareValues(policyManager, o.policyManager, true) + && compareValues(created, o.created, true) && compareValues(indexed, o.indexed, true) && compareValues(status, o.status, true) + && compareValues(description, o.description, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (masterIdentifier == null || masterIdentifier.isEmpty()) && (identifier == null || identifier.isEmpty()) + && (subject == null || subject.isEmpty()) && (type == null || type.isEmpty()) && (class_ == null || class_.isEmpty()) + && (format == null || format.isEmpty()) && (author == null || author.isEmpty()) && (custodian == null || custodian.isEmpty()) + && (policyManager == null || policyManager.isEmpty()) && (authenticator == null || authenticator.isEmpty()) + && (created == null || created.isEmpty()) && (indexed == null || indexed.isEmpty()) && (status == null || status.isEmpty()) + && (docStatus == null || docStatus.isEmpty()) && (relatesTo == null || relatesTo.isEmpty()) + && (description == null || description.isEmpty()) && (confidentiality == null || confidentiality.isEmpty()) + && (content == null || content.isEmpty()) && (context == null || context.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.DocumentReference; + } + + @SearchParamDefinition(name="location", path="DocumentReference.content.url", description="Uri where the data can be found", type="string" ) + public static final String SP_LOCATION = "location"; + @SearchParamDefinition(name="indexed", path="DocumentReference.indexed", description="When this document reference created", type="date" ) + public static final String SP_INDEXED = "indexed"; + @SearchParamDefinition(name="status", path="DocumentReference.status", description="current | superceded | entered-in-error", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="subject", path="DocumentReference.subject", description="Who|what is the subject of the document", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="relatesto", path="DocumentReference.relatesTo.target", description="Target of the relationship", type="reference" ) + public static final String SP_RELATESTO = "relatesto"; + @SearchParamDefinition(name="relation", path="DocumentReference.relatesTo.code", description="replaces | transforms | signs | appends", type="token" ) + public static final String SP_RELATION = "relation"; + @SearchParamDefinition(name="class", path="DocumentReference.class", description="High-level classification of document", type="token" ) + public static final String SP_CLASS = "class"; + @SearchParamDefinition(name="format", path="DocumentReference.format", description="Format/content rules for the document", type="token" ) + public static final String SP_FORMAT = "format"; + @SearchParamDefinition(name="period", path="DocumentReference.context.period", description="Time of service that is being documented", type="date" ) + public static final String SP_PERIOD = "period"; + @SearchParamDefinition(name="type", path="DocumentReference.type", description="Precice type of document", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="authenticator", path="DocumentReference.authenticator", description="Who/What authenticated the document", type="reference" ) + public static final String SP_AUTHENTICATOR = "authenticator"; + @SearchParamDefinition(name="relationship", path="", description="Combination of relation and relatesTo", type="composite" ) + public static final String SP_RELATIONSHIP = "relationship"; + @SearchParamDefinition(name="author", path="DocumentReference.author", description="Who and/or what authored the document", type="reference" ) + public static final String SP_AUTHOR = "author"; + @SearchParamDefinition(name="patient", path="DocumentReference.subject", description="Who|what is the subject of the document", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="custodian", path="DocumentReference.custodian", description="Org which maintains the document", type="reference" ) + public static final String SP_CUSTODIAN = "custodian"; + @SearchParamDefinition(name="facility", path="DocumentReference.context.facilityType", description="Kind of facility where patient was seen", type="token" ) + public static final String SP_FACILITY = "facility"; + @SearchParamDefinition(name="created", path="DocumentReference.created", description="Document creation time", type="date" ) + public static final String SP_CREATED = "created"; + @SearchParamDefinition(name="event", path="DocumentReference.context.event", description="Main Clinical Acts Documented", type="token" ) + public static final String SP_EVENT = "event"; + @SearchParamDefinition(name="confidentiality", path="DocumentReference.confidentiality", description="Sensitivity of source document", type="token" ) + public static final String SP_CONFIDENTIALITY = "confidentiality"; + @SearchParamDefinition(name="description", path="DocumentReference.description", description="Human-readable description (title)", type="string" ) + public static final String SP_DESCRIPTION = "description"; + @SearchParamDefinition(name="language", path="DocumentReference.content.language", description="Human language of the content (BCP-47)", type="token" ) + public static final String SP_LANGUAGE = "language"; + @SearchParamDefinition(name="identifier", path="DocumentReference.masterIdentifier|DocumentReference.identifier", description="Master Version Specific Identifier", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DomainResource.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DomainResource.class new file mode 100644 index 0000000000000000000000000000000000000000..84763245c5a18af2a4ed65956c49a3615ad7a241 GIT binary patch literal 7167 zcmds5`FC7p8Gddu=}ab*E|b!xt<+m-X`2<6<8k-+gShjq@YNVr*57gR z+P#qd-Nee(9T7}mz{bPVfb*bu`;k^77QKPy;Ym#1$;@y$5lo|DUd8F^lG zp|B3TU?AeFy}p6P{W*82dpL7h_u#PYcH55UTTV)KXLD(l>0WQSuI1aiRgZx=8}p8D zXVq5Qvj;M&*Ku+_=W>o`pt~lDRa)A;YS_-Ci579JtP(9oM|f+a(^} zPu3xi)?Rru3|w-?B33Ie<=P{n8U;=BhI6jJS`FHcEkgz_-Av0(FQ3g??x>j?H2q;^ zy2{Jt-IVGu2Xn4DoX=X0X*<4hM_d({X<$01vR0-H%XqpsSlj6;D{YY$(N_}Sr)&|NCI>bVa@2E| zGHu^noXU{U6mdsQ&l*&VHE*FdvT$eK^9gGavRtz+b7ROfK?^?dwE6m7nR^PfiC{V} zpGgZdMMkKk?Now_Jmq*a%Pgp+mGVcs3^a!Js5Cv;zth@nb?1FM)7@`-KI5ZtlRe~E zLWzOPtEQLNjJbj#Jy#Lt{4-l>VBV@AB2>DAc929>WQ2+IW4h5RMWbh?bJ~r=)^0jc zLNcvJ6ffjP?WG0uFDFJU*Ea{H9KX+sF~6^DZJW(We?h#)*^Uj zw1eU#gj`u0Y|=__yX~5}J(arnuH|@EN)pWUQn?W4w46`gZeoE5Wc3L7=GwM$fK zt%1(obXq65l`)0pAaogJG;Uzjw6h}_mE~Yqwv30@ohs|B5|HiawAZF-LYXd-S(@`O zBL^(cPL&08b*6TieU7PXTrr2pqh!0REb`>(sMW-?{#ZjwDoTft&&Z}&))3#dQ%nn` zi@{KCw{jh+*Cu0NBqL5_DhPBbxis7aNm4L!`JrLXmJy>|Ehdx6?Fpd5oMZ$Pm8{e! zP$VoL!mUT~jJi$N^!E2ld}X=9@+#OW(=Ft$2+pvX!PX=3=oURI9iYy@g5p3Zqb!Jr z7^qC}I`zNuXpkP-)KFhhiY{ety3#|_wlh=+0~Lf_z)V<+@5j{tNl2N!k{SVNn%9)_Jn@djrV@00(_(^E^uS@2 z+NE1s$uotb{v9TFQQuzs;cG-l%v*@o0np6}J z#fyQ+Vnr~}bC&4Et-8kud~t->tp8=Nr}IT|X%A2I24<3sb=5_T!;~@EFl9|LoXD`d z>(jEU90M&&stJ`i>Zu;B&FFP5JG1ML(qtWlY}BI$x=s^m6Pz8FeLBMB=wCacsx~j( z%C8cBEE$ON#A#)`)k=*RSX3KirRAv}3FPKr)23k-&D#lpx%B529U`;c zmD>`y5!({D5En)9QUV8X3rmGgr;Ozcb+2*VoNJ)1*Y_2TmyU1c{aj~?r)^)El~`TA z+UpD8w-Wfa04+MB@4W;*g1s1lJQYQEEb8u7+&QW|PftT?LGckeh%FfmliMjX2B&W#~S3B;ezAxnvUf z1a2dfR=JKJ7E-Ek~DjQTM&A4Oza zvSA!k-a3rv7^b!zMQqzR8V{mQ*1b%qIt@D)Q~10EQEWvsZoq76axQgQLS1g=Oayha zr&GYkaZ4z08SkRsYymok8FD*>_!Edm_9Ie%pa?xhFS}X8G@$OB6|&F50Iy=_dDK8m zing_jR-#h5rHVl^$dMG%TqYYv;qShWVj3P});x|ybcRG_48{q}jnc;k zeLPu!v{r~{rO?(AbPym<)1+s};=@~QKZ3zLh2sg|m#^EtIRm})IfmFisJ_M@1GH*hJw zhwJesS$HeVT`ywD354ny%q+=W#+V^77U9@$+eORch#LD5m&Zd`5>&jVV^~gm%Ik&p z;JS`5#pm-ONb&XU%>T|qSQ^-~|KwkY)KaluC*>*j&y@Ww+}~EdzqMk&4#!&iTPyYp zIYG5vhN*o10cPQctkTC=rH_-CAF+17!$kWDE6Pu?4?knZ{2Wi>7mTxCa^( z{9?rVqu6_rMZb=B{)P9^6PVA!^d8PTfq7LAB$=nifNJJoy)KvA+uFy`&T>(Ip#A&k z2p-->$2y_Cga47k=o|~GDqoxU+BJqnLM2~Yg4bDmZRKlg@LJtKg5LBy#_sRg{{Fzz z#2?u!|AbcjSzD7pBpy3~)ih&;^cJ2^LoKf(UsBZPik97zXc;NBsX)qKDdk;C`5UGD zol^cmDgV?`*a73LH}bs@qTkNDbif$#yW4Q+?;VX1II f4-Iy9kcK-rR)(9hS literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DomainResource.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DomainResource.java similarity index 91% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DomainResource.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DomainResource.java index 8413e09b847..a42fd6c2dc2 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/DomainResource.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/DomainResource.java @@ -1,243 +1,243 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * - */ -@ResourceDef(name="DomainResource", profile="http://hl7.org/fhir/Profile/DomainResource") -public abstract class DomainResource extends Resource { - - /** - * A human-readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety. - */ - @Child(name="text", type={Narrative.class}, order=-1, min=0, max=1) - @Description(shortDefinition="Text summary of the resource, for human interpretation", formalDefinition="A human-readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it 'clinically safe' for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety." ) - protected Narrative text; - - /** - * These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope. - */ - @Child(name="contained", type={Resource.class}, order=0, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Contained, inline Resources", formalDefinition="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope." ) - protected List contained; - - /** - * May be used to represent additional information that is not part of the basic definition of the resource. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. - */ - @Child(name="extension", type={Extension.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Additional Content defined by implementations", formalDefinition="May be used to represent additional information that is not part of the basic definition of the resource. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." ) - protected List extension; - - /** - * May be used to represent additional information that is not part of the basic definition of the resource, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. - */ - @Child(name="modifierExtension", type={Extension.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Extensions that cannot be ignored", formalDefinition="May be used to represent additional information that is not part of the basic definition of the resource, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions." ) - protected List modifierExtension; - - private static final long serialVersionUID = -970285559L; - - public DomainResource() { - super(); - } - - /** - * @return {@link #text} (A human-readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.) - */ - public Narrative getText() { - if (this.text == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DomainResource.text"); - else if (Configuration.doAutoCreate()) - this.text = new Narrative(); - return this.text; - } - - public boolean hasText() { - return this.text != null && !this.text.isEmpty(); - } - - /** - * @param value {@link #text} (A human-readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.) - */ - public DomainResource setText(Narrative value) { - this.text = value; - return this; - } - - /** - * @return {@link #contained} (These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.) - */ - public List getContained() { - if (this.contained == null) - this.contained = new ArrayList(); - return this.contained; - } - - public boolean hasContained() { - if (this.contained == null) - return false; - for (Resource item : this.contained) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #contained} (These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.) - */ - /** - * @return {@link #extension} (May be used to represent additional information that is not part of the basic definition of the resource. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.) - */ - public List getExtension() { - if (this.extension == null) - this.extension = new ArrayList(); - return this.extension; - } - - public boolean hasExtension() { - if (this.extension == null) - return false; - for (Extension item : this.extension) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #extension} (May be used to represent additional information that is not part of the basic definition of the resource. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.) - */ - // syntactic sugar - public Extension addExtension() { //3 - Extension t = new Extension(); - if (this.extension == null) - this.extension = new ArrayList(); - this.extension.add(t); - return t; - } - - /** - * @return {@link #modifierExtension} (May be used to represent additional information that is not part of the basic definition of the resource, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.) - */ - public List getModifierExtension() { - if (this.modifierExtension == null) - this.modifierExtension = new ArrayList(); - return this.modifierExtension; - } - - public boolean hasModifierExtension() { - if (this.modifierExtension == null) - return false; - for (Extension item : this.modifierExtension) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #modifierExtension} (May be used to represent additional information that is not part of the basic definition of the resource, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.) - */ - // syntactic sugar - public Extension addModifierExtension() { //3 - Extension t = new Extension(); - if (this.modifierExtension == null) - this.modifierExtension = new ArrayList(); - this.modifierExtension.add(t); - return t; - } - - protected void listChildren(List childrenList) { - childrenList.add(new Property("text", "Narrative", "A human-readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it 'clinically safe' for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.", 0, java.lang.Integer.MAX_VALUE, text)); - childrenList.add(new Property("contained", "Resource", "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.", 0, java.lang.Integer.MAX_VALUE, contained)); - childrenList.add(new Property("extension", "Extension", "May be used to represent additional information that is not part of the basic definition of the resource. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", 0, java.lang.Integer.MAX_VALUE, extension)); - childrenList.add(new Property("modifierExtension", "Extension", "May be used to represent additional information that is not part of the basic definition of the resource, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", 0, java.lang.Integer.MAX_VALUE, modifierExtension)); - } - - public abstract DomainResource copy(); - - public void copyValues(DomainResource dst) { - dst.text = text == null ? null : text.copy(); - if (contained != null) { - dst.contained = new ArrayList(); - for (Resource i : contained) - dst.contained.add(i.copy()); - }; - if (extension != null) { - dst.extension = new ArrayList(); - for (Extension i : extension) - dst.extension.add(i.copy()); - }; - if (modifierExtension != null) { - dst.modifierExtension = new ArrayList(); - for (Extension i : modifierExtension) - dst.modifierExtension.add(i.copy()); - }; - } - - public boolean isEmpty() { - return super.isEmpty() && (text == null || text.isEmpty()) && (contained == null || contained.isEmpty()) - && (extension == null || extension.isEmpty()) && (modifierExtension == null || modifierExtension.isEmpty()) - ; - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.ArrayList; +import java.util.List; + +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.api.IDomainResource; +/** + * A resource that includes narrative, extensions, and contained resources. + */ +@ResourceDef(name="DomainResource", profile="http://hl7.org/fhir/Profile/DomainResource") +public abstract class DomainResource extends Resource implements IDomainResource { + + /** + * A human-readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety. + */ + @Child(name="text", type={Narrative.class}, order=-1, min=0, max=1) + @Description(shortDefinition="Text summary of the resource, for human interpretation", formalDefinition="A human-readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it 'clinically safe' for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety." ) + protected Narrative text; + + /** + * These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope. + */ + @Child(name="contained", type={Resource.class}, order=0, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Contained, inline Resources", formalDefinition="These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope." ) + protected List contained; + + /** + * May be used to represent additional information that is not part of the basic definition of the resource. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. + */ + @Child(name="extension", type={Extension.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Additional Content defined by implementations", formalDefinition="May be used to represent additional information that is not part of the basic definition of the resource. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." ) + protected List extension; + + /** + * May be used to represent additional information that is not part of the basic definition of the resource, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. + */ + @Child(name="modifierExtension", type={Extension.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Extensions that cannot be ignored", formalDefinition="May be used to represent additional information that is not part of the basic definition of the resource, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions." ) + protected List modifierExtension; + + private static final long serialVersionUID = -970285559L; + + public DomainResource() { + super(); + } + + /** + * @return {@link #text} (A human-readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.) + */ + public Narrative getText() { + if (this.text == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DomainResource.text"); + else if (Configuration.doAutoCreate()) + this.text = new Narrative(); // cc + return this.text; + } + + public boolean hasText() { + return this.text != null && !this.text.isEmpty(); + } + + /** + * @param value {@link #text} (A human-readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.) + */ + public DomainResource setText(Narrative value) { + this.text = value; + return this; + } + + /** + * @return {@link #contained} (These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.) + */ + public List getContained() { + if (this.contained == null) + this.contained = new ArrayList(); + return this.contained; + } + + public boolean hasContained() { + if (this.contained == null) + return false; + for (Resource item : this.contained) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #contained} (These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.) + */ + /** + * @return {@link #extension} (May be used to represent additional information that is not part of the basic definition of the resource. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.) + */ + public List getExtension() { + if (this.extension == null) + this.extension = new ArrayList(); + return this.extension; + } + + public boolean hasExtension() { + if (this.extension == null) + return false; + for (Extension item : this.extension) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #extension} (May be used to represent additional information that is not part of the basic definition of the resource. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.) + */ + // syntactic sugar + public Extension addExtension() { //3 + Extension t = new Extension(); + if (this.extension == null) + this.extension = new ArrayList(); + this.extension.add(t); + return t; + } + + /** + * @return {@link #modifierExtension} (May be used to represent additional information that is not part of the basic definition of the resource, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.) + */ + public List getModifierExtension() { + if (this.modifierExtension == null) + this.modifierExtension = new ArrayList(); + return this.modifierExtension; + } + + public boolean hasModifierExtension() { + if (this.modifierExtension == null) + return false; + for (Extension item : this.modifierExtension) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #modifierExtension} (May be used to represent additional information that is not part of the basic definition of the resource, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.) + */ + // syntactic sugar + public Extension addModifierExtension() { //3 + Extension t = new Extension(); + if (this.modifierExtension == null) + this.modifierExtension = new ArrayList(); + this.modifierExtension.add(t); + return t; + } + + protected void listChildren(List childrenList) { + childrenList.add(new Property("text", "Narrative", "A human-readable narrative that contains a summary of the resource, and may be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it 'clinically safe' for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.", 0, java.lang.Integer.MAX_VALUE, text)); + childrenList.add(new Property("contained", "Resource", "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.", 0, java.lang.Integer.MAX_VALUE, contained)); + childrenList.add(new Property("extension", "Extension", "May be used to represent additional information that is not part of the basic definition of the resource. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", 0, java.lang.Integer.MAX_VALUE, extension)); + childrenList.add(new Property("modifierExtension", "Extension", "May be used to represent additional information that is not part of the basic definition of the resource, and that modifies the understanding of the element that contains it. Usually modifier elements provide negation or qualification. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.", 0, java.lang.Integer.MAX_VALUE, modifierExtension)); + } + + public abstract DomainResource copy(); + + public void copyValues(DomainResource dst) { + dst.text = text == null ? null : text.copy(); + if (contained != null) { + dst.contained = new ArrayList(); + for (Resource i : contained) + dst.contained.add(i.copy()); + }; + if (extension != null) { + dst.extension = new ArrayList(); + for (Extension i : extension) + dst.extension.add(i.copy()); + }; + if (modifierExtension != null) { + dst.modifierExtension = new ArrayList(); + for (Extension i : modifierExtension) + dst.modifierExtension.add(i.copy()); + }; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DomainResource)) + return false; + DomainResource o = (DomainResource) other; + return compareDeep(text, o.text, true) && compareDeep(contained, o.contained, true) && compareDeep(extension, o.extension, true) + && compareDeep(modifierExtension, o.modifierExtension, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DomainResource)) + return false; + DomainResource o = (DomainResource) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (text == null || text.isEmpty()) && (contained == null || contained.isEmpty()) + && (extension == null || extension.isEmpty()) && (modifierExtension == null || modifierExtension.isEmpty()) + ; + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Duration.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Duration.class new file mode 100644 index 0000000000000000000000000000000000000000..fe122e3e1fc9f48c367a039bb841c277e8468e70 GIT binary patch literal 2984 zcma)8Yf~F#6n-`rmTWebTCIS$v6K)J+Em+0Ezm*<5+rFpeMm z>Wn`i{sF%9gU(2BbjHyyI^*B)Z#d%f?vhE6%q{`Wo^x{EbDsCymcRb}`Bwnf@m#^{ z7?W{FK?q}l+>McpE11AN!A&a2VM=iK6-;ABaI*^LFfX_T1&de`#~uhr4+Xa@xJQD^ z3vNZYBFPCdEy$c8i-Lr(Dq~GTS4A%ynz^QzD@M^?oy|#*<|HI0i+07)Y-dd~t9tZ^ zpTD!;9!cmJHEhGVBO#m`$ae0Egm$pxoTN+7zvETMQVnHH)D-8=+LZgG;>FS<0p22|iKrDL!M7RP^I> z6&f~JE+G_DY(i(@gs`Pz8#^qa5DXPh@r=b3f+}LKMARTaz6UH5ty^5n-TpPXtj_XG6K||cMxgfRlco&D4HM#f36Ri>H}EE(Z&3>2 zZN$lQ|B&`kBfgRNjHVAE{oo$BOxocp2S~X%NNFnF;_(o_`|1~j9v>pSkj~T*$)tZo z^iRmrJ`};$(Q$yN(8^7%Tu0{tWTA~UwXr&s1H^EsNk6Ywb(E`3Gq6HIyUtAS5HjUq~cJykA51o`Xwm z)#>)?OndcEd-WAW#Dev**pl!%&WYP_@sfH8AEv}5eQdgqFn<6eojF9;cZh~xWPV4; zV}3(uktvD}@h|cd&et$WQKl$+;th&1iZM^@rx>Rg_r!}76BHAkC`a}Y3BO=4FS)%0 z1dKAdV^DAh=W!PoFph5ipCgj0BBFHugFLe~E*gmMlXjqA_6L38Bxs7QpeeS3rq~La zVtdfj1U*C0vjjay(DMYn&=xdbeaE1`;Zsb(2B+Ya8lEsY(Laz7k2+qhVV<1qDcH&v zYq(8C%u}$7U#nq|inym>19#WZO+~^}uy=b-qxCAj>>^VjcX#m<9+$duY?d3xxSG>h zNALfeCD}E>>1=0us;`o+*PCbe+Rn6%R{`MtHeOGgvag2S?z+Vxg}a1q^WaDYqyGU) CG{3C? literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Duration.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Duration.java similarity index 72% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Duration.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Duration.java index 9fb66c3ff89..08bfcd03eab 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Duration.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Duration.java @@ -1,87 +1,88 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import org.hl7.fhir.instance.model.annotations.DatatypeDef; -/** - * A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies. - */ -@DatatypeDef(name="Duration") -public class Duration extends Quantity { - - private static final long serialVersionUID = -483422721L; - - public Duration copy() { - Duration dst = new Duration(); - copyValues(dst); - dst.value = value == null ? null : value.copy(); - dst.comparator = comparator == null ? null : comparator.copy(); - dst.units = units == null ? null : units.copy(); - dst.system = system == null ? null : system.copy(); - dst.code = code == null ? null : code.copy(); - return dst; - } - - protected Duration typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (value == null || value.isEmpty()) && (comparator == null || comparator.isEmpty()) - && (units == null || units.isEmpty()) && (system == null || system.isEmpty()) && (code == null || code.isEmpty()) - ; - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +/** + * A measured amount (or an amount that can potentially be measured). Note that measured amounts include amounts that are not precisely quantified, including amounts involving arbitrary units and floating currencies. + */ +@DatatypeDef(name="Duration") +public class Duration extends Quantity { + + private static final long serialVersionUID = -483422721L; + + public Duration copy() { + Duration dst = new Duration(); + copyValues(dst); + dst.value = value == null ? null : value.copy(); + dst.comparator = comparator == null ? null : comparator.copy(); + dst.units = units == null ? null : units.copy(); + dst.system = system == null ? null : system.copy(); + dst.code = code == null ? null : code.copy(); + return dst; + } + + protected Duration typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Duration)) + return false; + Duration o = (Duration) other; + return compareDeep(value, o.value, true) && compareDeep(comparator, o.comparator, true) && compareDeep(units, o.units, true) + && compareDeep(system, o.system, true) && compareDeep(code, o.code, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Duration)) + return false; + Duration o = (Duration) other; + return compareValues(value, o.value, true) && compareValues(comparator, o.comparator, true) && compareValues(units, o.units, true) + && compareValues(system, o.system, true) && compareValues(code, o.code, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (value == null || value.isEmpty()) && (comparator == null || comparator.isEmpty()) + && (units == null || units.isEmpty()) && (system == null || system.isEmpty()) && (code == null || code.isEmpty()) + ; + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Element.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Element.class new file mode 100644 index 0000000000000000000000000000000000000000..eaadc9f7ab2a0d2d0a06e55c2334984aec027f04 GIT binary patch literal 4965 zcmbVQ`*##)8Ga_aVK$o$fzWWZakvC>CAOu-5=u!)kfljL0zp93$?haOusgfV%!Z`2 z(t7PxrLEe~TD2FWHf_Np1mqmWU*H`734if#@P{6b@p)%vFG<=ZdLZ9?^UeFc&+}ft zFZsuR{_UbpM>70a#fwoi%C1KL+e<25j-WGwCqftJ=H{YUhgTxl6Tzzy z^vc_7qVp#r|5Ks$GZmMj1bAJBH)Q2anf+X57X<8rieD(GGLs6n^k?m{u2gzw*J#SL zyG+Y*bt_?XWwJ>l-4#zBoy-~C3f3LTTdtWghE2yDNgF+um34L3%vz3uu8J!3l4#ey zl$lOaTiDVw1|Ke!E2z%eNy84&vN;8zjA@1FVaQaUkg1~J(IrFl8cxDCb3%J!X_>O5plKqL-eo4WmaMHA=kn&bo;EC3GcE1l(4oOr1uI6gc1BN^@7bTX%yW4| z<2HWO+?1giX(J>1&YNzEdv(n=oNV4s7+Q;nn3ikUmY(MFs9_s)sMES#L5(rt8kXY` zS{-&>VI@i&d zE?Q2vT`fE6`ENvb%!Ci+;TP5ezi!v!mgc2}pk(y3hPR8bB3SgIqdEGhq3KqVGL}AO z=*-Oy5w#gDhhcGC+f2BcV|d78*>MRA!=Y(iFGXAt3WxZppNmBT6Tx^bl#|z>iYMaSN^16*={L@J*=;m)?pUmK2|y_ zrJq3`%x6Xn`>1$PL2S%$Q{kkI(?a(OWM&Pub1yPy*dcswo3}da1c+&(24CT z-il!gM_4+g-0HLKtgT>UkLwy#CCy9EyV=f!ZRoC{6*QSi(Q`S5w`KpP`=7uuWN{>h zcknCLdkM}@Wfkwn@N4`ghTr1781~>v#?%w?BHCly`lOsND&CLb1ANE~is5&nZ(8&< zSAs8QP7J@tA9!7;BwWY=G478%&dN3)#78lV;*bn|O!RljY0; zn92?8ux(}tI&K6vyyYc_NwQG8S@hfLdF`vC{ zr=TSG>5({g;L$i9!_GLqipMFl%Rx7GJ9vV-*?zdPm%FRbvrx;PK+992<*}lc9R)4> zL`yH$qYwMZ;cK3j1NrRQRlJn}u?f69oetqXY!u!z7?!5QjL5c!EZW zcxT(6QFRwvZXh&;x?2dJXsDjWvcKJcI)&wJw-7loi<)bw61gkfQ01vzk7b4kkMg&38QL_@cTNB1c1Bv6u>p2=nhuO<2s_3p@yds4$Tx*FZ09(JvG&+ zYTPUPhW=kYN9OA}ieuC!4%kdf#5HPLyI3ctm3!<21ALMz!#Eyn=;l)lSnYdERi;tr z8&P{3v65?i{&qN+Bo;v3v}!c$jpy&!kA-$30IYTFbNm`0PYccIVQuVeXfk6yXw zQ}n!vdYr{-9vd5xK^qT4@q9Hx^(!L;JcV!4Kmptv#9CZmf7grZ3PyG1HPp*WiTZL1 z0^`(u9u1iA^f65us6hgMnp(eA48(c9iTDm*YjtQwCO6SQ|F+-6Duwreb(}n);5Hfu zI<8~&WmJb}rsw`u7VRd20nc)L4mJEkz*byjRXxuVxrm4Hf=8ha;hKA>QSt2!pOJ=w z??C4$rky4Q@#VH#XrxJN`aj=9(pX!CGaqJ3cjZx@`qkgSW!^g1^AMOl9byUD0Lpk53H zI)WH9apK2du$=+wypGL2qv^SS3aRq6dW-2a#X`Q!LVla&{SNd0UC$?*5bjrTW{!1V z#V7v<&$IW?#K?Tcf>PuL6A*uf#3eg+x3$k=3j-gTY5zN#{mE@K4~P*R{0ZN{)+w*3 z>iJsF*KJdadV=3>-ea`hXGi-0EAb&#@wT>>mo-WH7{bxWJ!~bdy;7yT6a_p^1w5LC zM@wZMtuqVUF+;$Q3HS*CKPBK50$%k1+25j4WW0a|K*M}Wdw7Wbw`~euyzUe_M05)4 hX)t5uRoqRqOLcsH=ey extension; - - private static final long serialVersionUID = -158027598L; - - public Element() { - super(); - } - - /** - * @return {@link #id} (unique id for the element within a resource (for internal references).). This is the underlying object with id, value and extensions. The accessor "getId" gives direct access to the value - */ - public IdType getIdElement() { - if (this.id == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Element.id"); - else if (Configuration.doAutoCreate()) - this.id = new IdType(); - return this.id; - } - - public boolean hasIdElement() { - return this.id != null && !this.id.isEmpty(); - } - - public boolean hasId() { - return this.id != null && !this.id.isEmpty(); - } - - /** - * @param value {@link #id} (unique id for the element within a resource (for internal references).). This is the underlying object with id, value and extensions. The accessor "getId" gives direct access to the value - */ - public Element setIdElement(IdType value) { - this.id = value; - return this; - } - - /** - * @return unique id for the element within a resource (for internal references). - */ - public String getId() { - return this.id == null ? null : this.id.getValue(); - } - - /** - * @param value unique id for the element within a resource (for internal references). - */ - public Element setId(String value) { - if (Utilities.noString(value)) - this.id = null; - else { - if (this.id == null) - this.id = new IdType(); - this.id.setValue(value); - } - return this; - } - - /** - * @return {@link #extension} (May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.) - */ - public List getExtension() { - if (this.extension == null) - this.extension = new ArrayList(); - return this.extension; - } - - public boolean hasExtension() { - if (this.extension == null) - return false; - for (Extension item : this.extension) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #extension} (May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.) - */ - // syntactic sugar - public Extension addExtension() { //3 - Extension t = new Extension(); - if (this.extension == null) - this.extension = new ArrayList(); - this.extension.add(t); - return t; - } - - protected void listChildren(List childrenList) { - childrenList.add(new Property("id", "id", "unique id for the element within a resource (for internal references).", 0, java.lang.Integer.MAX_VALUE, id)); - childrenList.add(new Property("extension", "Extension", "May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", 0, java.lang.Integer.MAX_VALUE, extension)); - } - - public abstract Element copy(); - - public void copyValues(Element dst) { - dst.id = id == null ? null : id.copy(); - if (extension != null) { - dst.extension = new ArrayList(); - for (Extension i : extension) - dst.extension.add(i.copy()); - }; - } - - public boolean isEmpty() { - return super.isEmpty() && (id == null || id.isEmpty()) && (extension == null || extension.isEmpty()) - ; - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.ArrayList; +import java.util.List; + +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.api.IBaseElement; +import org.hl7.fhir.utilities.Utilities; +/** + * Base definition for all elements in a resource. + */ +public abstract class Element extends Base implements IBaseElement { + + /** + * unique id for the element within a resource (for internal references). + */ + @Child(name="id", type={IdType.class}, order=-1, min=0, max=1) + @Description(shortDefinition="xml:id (or equivalent in JSON)", formalDefinition="unique id for the element within a resource (for internal references)." ) + protected IdType id; + + /** + * May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. + */ + @Child(name="extension", type={Extension.class}, order=0, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Additional Content defined by implementations", formalDefinition="May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension." ) + protected List extension; + + private static final long serialVersionUID = -158027598L; + + public Element() { + super(); + } + + /** + * @return {@link #id} (unique id for the element within a resource (for internal references).). This is the underlying object with id, value and extensions. The accessor "getId" gives direct access to the value + */ + public IdType getIdElement() { + if (this.id == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Element.id"); + else if (Configuration.doAutoCreate()) + this.id = new IdType(); // bb + return this.id; + } + + public boolean hasIdElement() { + return this.id != null && !this.id.isEmpty(); + } + + public boolean hasId() { + return this.id != null && !this.id.isEmpty(); + } + + /** + * @param value {@link #id} (unique id for the element within a resource (for internal references).). This is the underlying object with id, value and extensions. The accessor "getId" gives direct access to the value + */ + public Element setIdElement(IdType value) { + this.id = value; + return this; + } + + /** + * @return unique id for the element within a resource (for internal references). + */ + public String getId() { + return this.id == null ? null : this.id.getValue(); + } + + /** + * @param value unique id for the element within a resource (for internal references). + */ + public Element setId(String value) { + if (Utilities.noString(value)) + this.id = null; + else { + if (this.id == null) + this.id = new IdType(); + this.id.setValue(value); + } + return this; + } + + /** + * @return {@link #extension} (May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.) + */ + public List getExtension() { + if (this.extension == null) + this.extension = new ArrayList(); + return this.extension; + } + + public boolean hasExtension() { + if (this.extension == null) + return false; + for (Extension item : this.extension) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #extension} (May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.) + */ + // syntactic sugar + public Extension addExtension() { //3 + Extension t = new Extension(); + if (this.extension == null) + this.extension = new ArrayList(); + this.extension.add(t); + return t; + } + + protected void listChildren(List childrenList) { + childrenList.add(new Property("id", "id", "unique id for the element within a resource (for internal references).", 0, java.lang.Integer.MAX_VALUE, id)); + childrenList.add(new Property("extension", "Extension", "May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", 0, java.lang.Integer.MAX_VALUE, extension)); + } + + public abstract Element copy(); + + public void copyValues(Element dst) { + dst.id = id == null ? null : id.copy(); + if (extension != null) { + dst.extension = new ArrayList(); + for (Extension i : extension) + dst.extension.add(i.copy()); + }; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Element)) + return false; + Element o = (Element) other; + return compareDeep(id, o.id, true) && compareDeep(extension, o.extension, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Element)) + return false; + Element o = (Element) other; + return compareValues(id, o.id, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (id == null || id.isEmpty()) && (extension == null || extension.isEmpty()) + ; + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$1.class new file mode 100644 index 0000000000000000000000000000000000000000..8e2ff1eae88be4622c4031ce5d843e957aa3c94b GIT binary patch literal 2884 zcmb_eU2hvj6g`_b+1PA}2_YZltH9DGl*TlnEzpq0b~dRKd+plJ2c)HJoQ=KdW;b20 zgYt$1JR`v?@0CD8B1l%KP~VV%M_v&U;)fv4Y%!t4ez1cyJ7><^xo2kY+@0B<|GfVI zz!dxlVt6f#XK^vi)})|QGF}(tlBh06a0PFO0dI!cdP~qL(YhMJG~O15nJ`<|1f^jb zv!aSekU&yc=fZ4hg3_A6yr>o;xQ>*tE{54!5|p#1Wn?8})xrmsU#et`UDfrnRDD zj%D*^)vb9YvtU~#%PHq;wpo>sJF#B8T=vXzu*MAENWxObl1Z1b@eIrH3+A5bS^oY> z)Do7n$rq*Qmh0_^kW1*BF4-c^GZMPT##bbSlEIq$)0SiEwVe&qD;gU%N1iJ9M(GZB zFW}5236Vk&zPGbH?;5?xu{Kj2j9HC@N5KM!_;x6s%%R z!fD|Wvkj*l)7?U?RGGI-dsFi~*HiG081^n!WULGCTMAwh-tXbIg7@T zlTLD#X_VJ)ET{6?oP@;xp(nc@Q`NA8tmIc7&gHdvEgwuEYisdLF0Hj4o@QUuK(o#c zqH?!yZ2XOMe~F#xT++NE_m$1EdY{Cj+m+ z1F$?*$56wIbeOc^MLI&-@EQ%gP9K2f={lZy==BX0gfWO=^k9S+>RIABOyUyp8Wxcu z>b!by61Q*{KCy-m@e%Q3e2UMAU*I0TBz}cDz9Zhp5BQPz3x31z#4e06mP2eo+Q((- zJZ|Ave2!1>6XzJGZ3ZK&GG0OEpNhBq-}I;zSesGq)_JOQ;ZA?NB;t2)=EqO literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$BindingConformance.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$BindingConformance.class new file mode 100644 index 0000000000000000000000000000000000000000..a28292d03b442486fbb393534b508f3ca6c1ee5b GIT binary patch literal 3223 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ConstraintSeverity.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ConstraintSeverity.class new file mode 100644 index 0000000000000000000000000000000000000000..556abcae28e62ed45b03b0bcb85ce956ee34ee60 GIT binary patch literal 2670 zcmb_e-B#O15dPK}BpextAcRmF6c7RPW0xc(O`wFIIH?;4S`4Iw^hby_2xN)MGL#4C zL-ZMXO~)_r?WC(``Cz3YLamRngvzBA|mh0%XCdV11*V7Ag zsks*n;kl)Bng;ac>GV=E!!Wyg6#xyphFuWuCI@0yVlX^Q@i8=~Er-t)a%AJscf{sUej0qYq}4VMt973&Z*V`epZ9r=Axi!7&N4)V zY~^=sgJ>d8nD&XAixq~FP9Zn(;YpYz(nK8fBD-z$hC!2k&au?CZBhI^jtDbUbMB-k@NhxS{6F2vR{56*JUaI-vGV#iFu zve!A;h+~xD&XTk3xOi0~J!P0oWi@}3 z)0)#-)~vj?Yq_@J^Y!6i&g1zYmtw|oeW9Cmy`16rafaLl4U`uTYik8xv*=ec>u{6j z^M+^H`&!nuZFi4yq^02g`2bopSC-T-*&XC{@CE2uHheEC<=lt3hH+^En z$c6TnVXU%#f)j1Lf~sdFTkQqmw3J6mN>n%ehk{{K0o|yydE!~@4JjBqJKR|(Co2`s z!KmT_fyusm3Q}eJbSV{g;zDujM6Q>5X3z4?O*#d1TCCIgt&8(pKRv(o;QZEWs_LBc zn<2ECBF?+sy5$(eIy!MuQ={}X>85X4c(jUgiiGD9a!HR3G2oL^-`u7OeE(nQoB}DB8RGAs25xSe?iR_1JJ?>dM)UFc*QdC*4WE-`o< Y69g8*X8{pZ>V+|lJ5+~@)S^ZH52s~toB#j- literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ConstraintSeverityEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ConstraintSeverityEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..95a52072cf6a57bae94e2f70774d4076550ddfc1 GIT binary patch literal 1838 zcmbtUOH&g;5dIpH>}FjARuta?q7Wj+_X|WG28;wyqWHKiVTh}nSsXS#PW}wbKj1lf zfGVw0PagbHmOV*?U?|Ee4%vIOq8@OO0u3au_eaXaSt*=-xan-~%12-&mU`UH$12+xaGB8Sr4SUiHM+nXRi3LJr zB3KfH)~qMRY^k^?)B|_X=RfAM3X0WDXCjcRp>jPL=EN(Zyzni-&PXZLgzv7didDiw zfA+ci%1!yMETnRw@?>EskquNK^~}GTT7KrKl*d6_nHQ-dr}R^4UlfH5Z;NFO$O~j| zW11mCOD=TtFJ|188ZImSCNEaBKWB}FK@}pW-*v7;V+DlX`nuAxROG4}3jN1zqx?@`Vgu%dSQybmf^eU41sDaECy=$l$I9H_a9^J4+bdEdy+HqsPV( z94AcgHkh7xZCr$7jRkGlZ`*81l?sHu9Rbt_uRC1rC*KS4vgG=FLH5_vx5l!>QyyY^ zetvGAFur>xF$o@x&Ch0Lr#P>>vLfUXVX!{$Huqu6;F*eM82rWF(ZB5t+fvEji2Q&J z?%1b)uL4iFgCAC=JHN6~*352}huAvCnu(6+z&hv?F9?TO#`I6R!;*P{ri$x(M0f=( zB!9wonv!d1{s5=mh*H^!RR0^F5iL8h4Z|pZh56(w;!oCLIeXS%^Oo(juvo+1b+mrx z$W4{pJ^Yq~?xKaJahS3=N;5b`vq;b!F3>$(q5C+&-UgyAHrY11*oZJxlRxG%OI=xp z!)dskNrv(fF(*>ym7!O$veQ=Pt!lml+!D|O81xVpEuftqp@SY*a&W~~ylsrbo~(uK zu7!;cB!8fN4UP`9rD^Pb1ikF0QRwDr6tMxWcVB~V9rk9Nsz5r8zKZVW*#HioZpU>T N9X-S|yp9pX{{Uk3;MM>D literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ElementDefinitionBindingComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ElementDefinitionBindingComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..6497a5f9ec8ab92ca3d5194ddbb2602e77435f79 GIT binary patch literal 10744 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ElementDefinitionConstraintComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ElementDefinitionConstraintComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..6ea1e56e042e7d69ea2e66e00c4bd9e103c18ed2 GIT binary patch literal 9912 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ElementDefinitionMappingComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ElementDefinitionMappingComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..bcf853657cc5f5654f41d9d0f7c9c608af417389 GIT binary patch literal 5084 zcmcIoTX!2*75B61%obojOj4Q>S(*%~(3NCY46Y z%qW+pw51oWy#fUsZY@yCL)W5ZQ9C8jh6hsU3)ct!0RMpp7UnxMBU`qF;+3_!mVIXC zoV~w&`S#i8*dP4&H}3+t9Y2qw7iU_b!&ZY6hl@%SXJa@QM+?rY?+Z~p5=Se}sNtd- z9*yFQ>iJj|ZnRkaV)PSym1ae!Y_~ z+3t{>F)dR~3Fyb=jI<>K)7_F@G|FYun$>eMTQF=d41tcBl3g?kwOacJEZwwRX_hsyy5C)!*;7eu3^tgS9i)XYtEQiFBUypvMFCKSvg0A>*h^ImjziQ=k%__k+x|R zCZz2!H}{PU35df2?Smwf+`AJ-p(0yYa*O}!`uC3nv_6%_gAA*?XM&^+vND+CQPYxR zmEyFtPZ+ESfuqd>4oYdQNl~Vf3~eN+)M4L$f!*CbO)-{Awtd_+vJW3I%7K5$yy4WL zF{UYjwwfiHbsCu6891<9A4FDFG*~J!(@d>EV#KnfJyyHu98dm(esLyBZeWw!V6>*Thsn$}QXJa>4m@$?di%QF?D;0#I0 zhIdQzjNfHAGNX1|yRS5!HwuN)If1C@3>VAlFuHYZ-m=2uijFfj!upKn8tLd@F%(V~o9Pc{dE(cF7hP7;s%lA5^1u5Wgv^|Z^!ri#Ab}r39S@Fol11@j9s$ij>T-GgQcK_!yqbW-y=s_B;4~gi;3xQL z0tNN=MkMc!-9%HVGHU@d}AY^J`G*UyZMG;JvU zer0s)y!u>fRJ;fnx!kH`R2}E`-rFq6bw$9ftU8sK44#?Y&3j0o?sd4fEKgp;mVWcO zr@5jR%=N>a^7>N%T=i+HIrK_8n%YVH;I6!T7xO(kOpxvjmKU1%LP-!2+cJyO_+IOj& zC(f2MR zHivboD`=fuKwRNd?oBF$JioR>Bm6^%YNyby8Q7vtV~3VSx0b^wr6LGz>7aol7z+#@ z;8PjgqJXYpgL=%P?GmDq*AWT7u>`FtF)i=Gv>>#(U+EpaQJlg`oMTXVR2l4IB+MG@ z4m0)2@(v$pb&`AMvF>DQ8P8|(Nv8TKB(06}qS01)UX++%>SRkrMPw^iPs#N+?y$jgfdj*}7$t}sP$!+1}c2zwKxal2y zB!rXx(vIXulOOY!!b?l5d%`@^umD}VjEwdUvP2Id$F%T>5AygLXOz{<73eILouerR zaC5I;t}01!^*WC(wgojCq)yE;b-P$uy~}0Q$rcOkw}@%KV_Ch6F6}+ssa^Hr?L%Y{ z+YpLkmOl_27TH*;-~KZ{)^OUSv%IMUE_6B|$NE)M;6164 zAGbF5qkE+v{A}#UpXtY6=*M5_$KUA3-|5Fc8v4QOZs5lWK2@_y^L*%;LyrpoTD4!b z&0(wJ%AZhMw%)Yg#s2A;i6XMKBit`K23RCkU|~mKp(Qnsnyu#R^|O9TG#^44$N7v? LSjSiKIkf%{;jaxC literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ElementDefinitionSlicingComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ElementDefinitionSlicingComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..33769eeae481d02c4478ae18900033741eb6f3be GIT binary patch literal 9927 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 b?x6X*@eLf_vYN-RZ{YO|{7%0A4h{bc4nfJc literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$PropertyRepresentation.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$PropertyRepresentation.class new file mode 100644 index 0000000000000000000000000000000000000000..09b92daf36badf03d5d4a3d628824fb8b5e934ce GIT binary patch literal 2448 zcmb_dSyS6q6#lLkBnz?B5J(7ZRH7D4z%EI%6$&_Ds2c+b0?N`&HWyGLORg*@;ivRB z^o5cc=#*)jr#|#Yb$YIBVta5Om_Zud<=k_=vtRx5@9%#CxCb6X1dkPbfk_EN624S$ z6Vqatkuj?vjVChZ1k=2PjD!URDi&pYCFZP*uf_aSK|69WEMZw8&J`KYWIUHKD0Ztd zG$C(DSYwbjmvZT~wN-|`XP#T)o`1N?OCB$C$2Wb;br{sF<8W`zHp^vRW?0C%-hS%9 zewf-ju)LJzlzr1F@Kn*=<#sA#^CF4P^F7P4guLDwc9J2oyq?RE1^Pxhx1KQ=7I&@+ zy6u%|SA?Zxcldw5{whY>(t#n6J!~Z94lY!}ly_ ze=>1pPECoBPE)2@Xvrov7-ELC@0fnYBcsA2f+FvEZn0{2hvA!rmrG`;X0?)eQ{W|$ zB8pR+?^d~bM-mrZAmn}S8;50|7a2NeUC%FrBKB6fWSfViaH?R}%-n1M$~cwc)YSxH zno378+=^G=3zi6f--Vh>iX^D`STxX(igj#A_=aKrDhgM{Fg8^rFv$ZzzGDHiu>rnWcD`qACf){*B(fFl;&2Yc5sDsO9vY~$7 z_foSJq^G-1sWMS9^PeiFO;vrZ5wm7lVw)JuQi(ehsqsdJ7CM@;M9O5}Jy+6%eJ)BJ zm%5bS`UJy@ZoIbq!U46WPQp4}t-82c_4BJ$53W}ILYe>1)yfds$x=nS-mc}Cc5oGB zXD8^&ze&HC@azpyq5#d5SfG1AGzy)>=)DacREV@2qFFr3G1v)0?+`ws9mA(IwgqQN z;vdFHjsG@60kypckQXv}a&(6Ftuv@wr|5`xo}i14y5ik5oZy2~#QzF# zg&%#0()b7+c#JOk4`wSB_3fprvXNQi_L+HK9Ux-Lg zKYhYH@%6@INAYVS2B9Emoq@MAq+phOPX|gO2n~v`-Mu8T)B-s}$P0wL*o1uVlE{56 zke?EAj*yp{kUzg9a;s=OC*)N^HX4v++^3{hHK#+t8Q4vssK!8N40}H#4#DoMmUCo5pB#V^g=Ix|w%0GsUA>f;FNEgJ&t+4Brr> zC}vM}s2D?F$WCY-{L7JRyz*@PiiU0vUkU7JN|Eh$En2fl2x!%JgJNR zx1QXXdtPy*Go^g%C`UZi0OZrZCOG$e2Mwa7xl@Lc$}4nez~Uf@=sWXvYLojo#bHEx&jxDN==5zs7rl;6 zU}&bt)MZm!Ts+CW{=^#j~w0ke_cP}I7}K3t!m zRxUhjPj#2}rLXYpeTR4TJEYYE_*DNsWcnnl7iidra)7{33RYKy>mWd24FSAB2VN57 zEA-+u{R`d@LqW$KP?&;FvfV^V&?Dv2C~_E~D1ulZLZF}FRo#1P{T^+Ug4e@E_B!3= z6lA1}0bO8nW1M1im1A_3WBB_cztFIcMsfZ`Ey%qc-Q*@9JIn6ge#+_M8Q%(`E?h4% a>7j%KqZ_zPvr1M2hS4$EPWCV!!2b_@G2@&7 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ResourceAggregationMode.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ResourceAggregationMode.class new file mode 100644 index 0000000000000000000000000000000000000000..bb8f0e1760a9ce6577de26f51da5908c87f4003b GIT binary patch literal 2965 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ResourceSlicingRulesEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$ResourceSlicingRulesEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..1d4fb6f32f0a5ef96472833d7e70856f495680b5 GIT binary patch literal 1930 zcmb_dT~ixX7=8{U*^e$QU1+f?6j~}Ikw#l>RVXxsplErS2cAsXgi}`dEt+8d`^-=C>h3?_9E~5p0m$+Kc92*&%Y1<0B{)_CPt9e@v?~- zT-1>>FoaihysGpi9ha4UO~dONu9!HcpjVZCL&uv+zh%P2td2Pi^CnJXL5b@c@)`;n zmIP9BUf{*^0{zqJ4+Rp1a7zlDD0zWgt5-K=bko`Nxub7KVYU5ncth60dgRKo@3~%3 z*{J)nCSa`ufs6{iQ>&@vN7JP{&Sy@}cY;c;97hDsrb}T|$=&v^=C*HpQO*l$u@ks5 zS7lH?SM+672Jw>IRw;R5Fxe~6tiV7ycHFzG&Q2#cv-pK8chm{SO~qk5O(yURqNNX4 zAu!opTQR6tS=pgtpMdSPU?12zDPWYnO5nuxh;9C=%g_4e9qGoiM_0k%%Z?j|(U)^a z1OH!h=h~3uYjVrNJ6Iu)!W|h{cvsnm zvh#5<;K%pW#<~3#toXjHIDS5=)Ya_w1}QMI4{En=vF`a>G7>odL2x$+KM%%x(PP{t zm&T_ol&~rwXslsfWqX6G1r6^DEIvIgES$%rg;9(PtUkRvMTE{21i}YKzcp=+ z2uvNBM7R5{!|lFubn?@>gIKae(8@1D3sRAMZOkG&w^uQ$NG)p8i}D){$_Da zy+h6pS+XTC)15<)OLKq>WUC&BkLwto?s*LlRQ1>+-@2J2d-mjg!31B<5ePiThdD{j z3qbh-SEJOt3rJ>mAs)~Wc#$&I+Pp_eo}jM8_mHC z`x(iGo!VPy4O`z^7>!3TZ#}}XTf6i$(8O_mI&Pn!Xku^|C;w!azE&a`{s#cxU;y7T z=kK`pJuct}q;VgY@FT9^CoG_W0v@nRKu2o85|(A*99IbzVDd-CQ>uDDp}yzr@gG-p{AmCH literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$TypeRefComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ElementDefinition$TypeRefComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..c7aa0d7033990bb5e44605f3f9bd042c4f9a65e6 GIT binary patch literal 7775 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 { - public PropertyRepresentation fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("xmlAttr".equals(codeString)) - return PropertyRepresentation.XMLATTR; - throw new IllegalArgumentException("Unknown PropertyRepresentation code '"+codeString+"'"); - } - public String toCode(PropertyRepresentation code) throws IllegalArgumentException { - if (code == PropertyRepresentation.XMLATTR) - return "xmlAttr"; - return "?"; - } - } - - public enum ResourceSlicingRules implements FhirEnum { - /** - * No additional content is allowed other than that described by the slices in this profile. - */ - CLOSED, - /** - * Additional content is allowed anywhere in the list. - */ - OPEN, - /** - * Additional content is allowed, but only at the end of the list. - */ - OPENATEND, - /** - * added to help the parsers - */ - NULL; - - public static final ResourceSlicingRulesEnumFactory ENUM_FACTORY = new ResourceSlicingRulesEnumFactory(); - - public static ResourceSlicingRules fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("closed".equals(codeString)) - return CLOSED; - if ("open".equals(codeString)) - return OPEN; - if ("openAtEnd".equals(codeString)) - return OPENATEND; - throw new IllegalArgumentException("Unknown ResourceSlicingRules code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case CLOSED: return "closed"; - case OPEN: return "open"; - case OPENATEND: return "openAtEnd"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case CLOSED: return ""; - case OPEN: return ""; - case OPENATEND: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case CLOSED: return "No additional content is allowed other than that described by the slices in this profile."; - case OPEN: return "Additional content is allowed anywhere in the list."; - case OPENATEND: return "Additional content is allowed, but only at the end of the list."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case CLOSED: return "closed"; - case OPEN: return "open"; - case OPENATEND: return "openAtEnd"; - default: return "?"; - } - } - } - - public static class ResourceSlicingRulesEnumFactory implements EnumFactory { - public ResourceSlicingRules fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("closed".equals(codeString)) - return ResourceSlicingRules.CLOSED; - if ("open".equals(codeString)) - return ResourceSlicingRules.OPEN; - if ("openAtEnd".equals(codeString)) - return ResourceSlicingRules.OPENATEND; - throw new IllegalArgumentException("Unknown ResourceSlicingRules code '"+codeString+"'"); - } - public String toCode(ResourceSlicingRules code) throws IllegalArgumentException { - if (code == ResourceSlicingRules.CLOSED) - return "closed"; - if (code == ResourceSlicingRules.OPEN) - return "open"; - if (code == ResourceSlicingRules.OPENATEND) - return "openAtEnd"; - return "?"; - } - } - - public enum ResourceAggregationMode implements FhirEnum { - /** - * The reference is a local reference to a contained resource. - */ - CONTAINED, - /** - * The reference to a resource that has to be resolved externally to the resource that includes the reference. - */ - REFERENCED, - /** - * The resource the reference points to will be found in the same bundle as the resource that includes the reference. - */ - BUNDLED, - /** - * added to help the parsers - */ - NULL; - - public static final ResourceAggregationModeEnumFactory ENUM_FACTORY = new ResourceAggregationModeEnumFactory(); - - public static ResourceAggregationMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("contained".equals(codeString)) - return CONTAINED; - if ("referenced".equals(codeString)) - return REFERENCED; - if ("bundled".equals(codeString)) - return BUNDLED; - throw new IllegalArgumentException("Unknown ResourceAggregationMode code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case CONTAINED: return "contained"; - case REFERENCED: return "referenced"; - case BUNDLED: return "bundled"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case CONTAINED: return ""; - case REFERENCED: return ""; - case BUNDLED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case CONTAINED: return "The reference is a local reference to a contained resource."; - case REFERENCED: return "The reference to a resource that has to be resolved externally to the resource that includes the reference."; - case BUNDLED: return "The resource the reference points to will be found in the same bundle as the resource that includes the reference."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case CONTAINED: return "contained"; - case REFERENCED: return "referenced"; - case BUNDLED: return "bundled"; - default: return "?"; - } - } - } - - public static class ResourceAggregationModeEnumFactory implements EnumFactory { - public ResourceAggregationMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("contained".equals(codeString)) - return ResourceAggregationMode.CONTAINED; - if ("referenced".equals(codeString)) - return ResourceAggregationMode.REFERENCED; - if ("bundled".equals(codeString)) - return ResourceAggregationMode.BUNDLED; - throw new IllegalArgumentException("Unknown ResourceAggregationMode code '"+codeString+"'"); - } - public String toCode(ResourceAggregationMode code) throws IllegalArgumentException { - if (code == ResourceAggregationMode.CONTAINED) - return "contained"; - if (code == ResourceAggregationMode.REFERENCED) - return "referenced"; - if (code == ResourceAggregationMode.BUNDLED) - return "bundled"; - return "?"; - } - } - - public enum ConstraintSeverity implements FhirEnum { - /** - * If the constraint is violated, the resource is not conformant. - */ - ERROR, - /** - * If the constraint is violated, the resource is conformant, but it is not necessarily following best practice. - */ - WARNING, - /** - * added to help the parsers - */ - NULL; - - public static final ConstraintSeverityEnumFactory ENUM_FACTORY = new ConstraintSeverityEnumFactory(); - - public static ConstraintSeverity fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("error".equals(codeString)) - return ERROR; - if ("warning".equals(codeString)) - return WARNING; - throw new IllegalArgumentException("Unknown ConstraintSeverity code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case ERROR: return "error"; - case WARNING: return "warning"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case ERROR: return ""; - case WARNING: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case ERROR: return "If the constraint is violated, the resource is not conformant."; - case WARNING: return "If the constraint is violated, the resource is conformant, but it is not necessarily following best practice."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case ERROR: return "error"; - case WARNING: return "warning"; - default: return "?"; - } - } - } - - public static class ConstraintSeverityEnumFactory implements EnumFactory { - public ConstraintSeverity fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("error".equals(codeString)) - return ConstraintSeverity.ERROR; - if ("warning".equals(codeString)) - return ConstraintSeverity.WARNING; - throw new IllegalArgumentException("Unknown ConstraintSeverity code '"+codeString+"'"); - } - public String toCode(ConstraintSeverity code) throws IllegalArgumentException { - if (code == ConstraintSeverity.ERROR) - return "error"; - if (code == ConstraintSeverity.WARNING) - return "warning"; - return "?"; - } - } - - public enum BindingConformance implements FhirEnum { - /** - * Only codes in the specified set are allowed. If the binding is extensible, other codes may be used for concepts not covered by the bound set of codes. - */ - REQUIRED, - /** - * For greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in derived profiles and implementations if necessary without being considered non-conformant. - */ - PREFERRED, - /** - * The codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use nor any assertion that the provided values are sufficient to meet implementation needs. - */ - EXAMPLE, - /** - * added to help the parsers - */ - NULL; - - public static final BindingConformanceEnumFactory ENUM_FACTORY = new BindingConformanceEnumFactory(); - - public static BindingConformance fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("required".equals(codeString)) - return REQUIRED; - if ("preferred".equals(codeString)) - return PREFERRED; - if ("example".equals(codeString)) - return EXAMPLE; - throw new IllegalArgumentException("Unknown BindingConformance code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case REQUIRED: return "required"; - case PREFERRED: return "preferred"; - case EXAMPLE: return "example"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case REQUIRED: return ""; - case PREFERRED: return ""; - case EXAMPLE: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case REQUIRED: return "Only codes in the specified set are allowed. If the binding is extensible, other codes may be used for concepts not covered by the bound set of codes."; - case PREFERRED: return "For greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in derived profiles and implementations if necessary without being considered non-conformant."; - case EXAMPLE: return "The codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use nor any assertion that the provided values are sufficient to meet implementation needs."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case REQUIRED: return "required"; - case PREFERRED: return "preferred"; - case EXAMPLE: return "example"; - default: return "?"; - } - } - } - - public static class BindingConformanceEnumFactory implements EnumFactory { - public BindingConformance fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("required".equals(codeString)) - return BindingConformance.REQUIRED; - if ("preferred".equals(codeString)) - return BindingConformance.PREFERRED; - if ("example".equals(codeString)) - return BindingConformance.EXAMPLE; - throw new IllegalArgumentException("Unknown BindingConformance code '"+codeString+"'"); - } - public String toCode(BindingConformance code) throws IllegalArgumentException { - if (code == BindingConformance.REQUIRED) - return "required"; - if (code == BindingConformance.PREFERRED) - return "preferred"; - if (code == BindingConformance.EXAMPLE) - return "example"; - return "?"; - } - } - - public static class ElementDefinitionSlicingComponent extends Element { - /** - * Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices. - */ - @Child(name="discriminator", type={IdType.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Element values that used to distinguish the slices", formalDefinition="Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices." ) - protected List discriminator; - - /** - * A humane readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated. - */ - @Child(name="description", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Text description of how slicing works (or not)", formalDefinition="A humane readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated." ) - protected StringType description; - - /** - * If the matching elements have to occur in the same order as defined in the profile. - */ - @Child(name="ordered", type={BooleanType.class}, order=3, min=0, max=1) - @Description(shortDefinition="If elements must be in same order as slices", formalDefinition="If the matching elements have to occur in the same order as defined in the profile." ) - protected BooleanType ordered; - - /** - * Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end. - */ - @Child(name="rules", type={CodeType.class}, order=4, min=1, max=1) - @Description(shortDefinition="closed | open | openAtEnd", formalDefinition="Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end." ) - protected Enumeration rules; - - private static final long serialVersionUID = 598129403L; - - public ElementDefinitionSlicingComponent() { - super(); - } - - public ElementDefinitionSlicingComponent(Enumeration rules) { - super(); - this.rules = rules; - } - - /** - * @return {@link #discriminator} (Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.) - */ - public List getDiscriminator() { - if (this.discriminator == null) - this.discriminator = new ArrayList(); - return this.discriminator; - } - - public boolean hasDiscriminator() { - if (this.discriminator == null) - return false; - for (IdType item : this.discriminator) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #discriminator} (Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.) - */ - // syntactic sugar - public IdType addDiscriminatorElement() {//2 - IdType t = new IdType(); - if (this.discriminator == null) - this.discriminator = new ArrayList(); - this.discriminator.add(t); - return t; - } - - /** - * @param value {@link #discriminator} (Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.) - */ - public ElementDefinitionSlicingComponent addDiscriminator(String value) { //1 - IdType t = new IdType(); - t.setValue(value); - if (this.discriminator == null) - this.discriminator = new ArrayList(); - this.discriminator.add(t); - return this; - } - - /** - * @param value {@link #discriminator} (Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.) - */ - public boolean hasDiscriminator(String value) { - if (this.discriminator == null) - return false; - for (IdType v : this.discriminator) - if (v.equals(value)) // id - return true; - return false; - } - - /** - * @return {@link #description} (A humane readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionSlicingComponent.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (A humane readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public ElementDefinitionSlicingComponent setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return A humane readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value A humane readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated. - */ - public ElementDefinitionSlicingComponent setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #ordered} (If the matching elements have to occur in the same order as defined in the profile.). This is the underlying object with id, value and extensions. The accessor "getOrdered" gives direct access to the value - */ - public BooleanType getOrderedElement() { - if (this.ordered == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionSlicingComponent.ordered"); - else if (Configuration.doAutoCreate()) - this.ordered = new BooleanType(); - return this.ordered; - } - - public boolean hasOrderedElement() { - return this.ordered != null && !this.ordered.isEmpty(); - } - - public boolean hasOrdered() { - return this.ordered != null && !this.ordered.isEmpty(); - } - - /** - * @param value {@link #ordered} (If the matching elements have to occur in the same order as defined in the profile.). This is the underlying object with id, value and extensions. The accessor "getOrdered" gives direct access to the value - */ - public ElementDefinitionSlicingComponent setOrderedElement(BooleanType value) { - this.ordered = value; - return this; - } - - /** - * @return If the matching elements have to occur in the same order as defined in the profile. - */ - public boolean getOrdered() { - return this.ordered == null ? false : this.ordered.getValue(); - } - - /** - * @param value If the matching elements have to occur in the same order as defined in the profile. - */ - public ElementDefinitionSlicingComponent setOrdered(boolean value) { - if (value == false) - this.ordered = null; - else { - if (this.ordered == null) - this.ordered = new BooleanType(); - this.ordered.setValue(value); - } - return this; - } - - /** - * @return {@link #rules} (Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end.). This is the underlying object with id, value and extensions. The accessor "getRules" gives direct access to the value - */ - public Enumeration getRulesElement() { - if (this.rules == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionSlicingComponent.rules"); - else if (Configuration.doAutoCreate()) - this.rules = new Enumeration(); - return this.rules; - } - - public boolean hasRulesElement() { - return this.rules != null && !this.rules.isEmpty(); - } - - public boolean hasRules() { - return this.rules != null && !this.rules.isEmpty(); - } - - /** - * @param value {@link #rules} (Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end.). This is the underlying object with id, value and extensions. The accessor "getRules" gives direct access to the value - */ - public ElementDefinitionSlicingComponent setRulesElement(Enumeration value) { - this.rules = value; - return this; - } - - /** - * @return Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end. - */ - public ResourceSlicingRules getRules() { - return this.rules == null ? null : this.rules.getValue(); - } - - /** - * @param value Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end. - */ - public ElementDefinitionSlicingComponent setRules(ResourceSlicingRules value) { - if (this.rules == null) - this.rules = new Enumeration(ResourceSlicingRules.ENUM_FACTORY); - this.rules.setValue(value); - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("discriminator", "id", "Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.", 0, java.lang.Integer.MAX_VALUE, discriminator)); - childrenList.add(new Property("description", "string", "A humane readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("ordered", "boolean", "If the matching elements have to occur in the same order as defined in the profile.", 0, java.lang.Integer.MAX_VALUE, ordered)); - childrenList.add(new Property("rules", "code", "Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end.", 0, java.lang.Integer.MAX_VALUE, rules)); - } - - public ElementDefinitionSlicingComponent copy() { - ElementDefinitionSlicingComponent dst = new ElementDefinitionSlicingComponent(); - copyValues(dst); - if (discriminator != null) { - dst.discriminator = new ArrayList(); - for (IdType i : discriminator) - dst.discriminator.add(i.copy()); - }; - dst.description = description == null ? null : description.copy(); - dst.ordered = ordered == null ? null : ordered.copy(); - dst.rules = rules == null ? null : rules.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (discriminator == null || discriminator.isEmpty()) && (description == null || description.isEmpty()) - && (ordered == null || ordered.isEmpty()) && (rules == null || rules.isEmpty()); - } - - } - - public static class TypeRefComponent extends Element { - /** - * Name of Data type or Resource that is a(or the) type used for this element. - */ - @Child(name="code", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Name of Data type or Resource", formalDefinition="Name of Data type or Resource that is a(or the) type used for this element." ) - protected CodeType code; - - /** - * Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. - */ - @Child(name="profile", type={UriType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Profile.structure to apply", formalDefinition="Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile." ) - protected UriType profile; - - /** - * If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle. - */ - @Child(name="aggregation", type={CodeType.class}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="contained | referenced | bundled - how aggregated", formalDefinition="If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle." ) - protected List> aggregation; - - private static final long serialVersionUID = -1527133887L; - - public TypeRefComponent() { - super(); - } - - public TypeRefComponent(CodeType code) { - super(); - this.code = code; - } - - /** - * @return {@link #code} (Name of Data type or Resource that is a(or the) type used for this element.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public CodeType getCodeElement() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create TypeRefComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeType(); - return this.code; - } - - public boolean hasCodeElement() { - return this.code != null && !this.code.isEmpty(); - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Name of Data type or Resource that is a(or the) type used for this element.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value - */ - public TypeRefComponent setCodeElement(CodeType value) { - this.code = value; - return this; - } - - /** - * @return Name of Data type or Resource that is a(or the) type used for this element. - */ - public String getCode() { - return this.code == null ? null : this.code.getValue(); - } - - /** - * @param value Name of Data type or Resource that is a(or the) type used for this element. - */ - public TypeRefComponent setCode(String value) { - if (this.code == null) - this.code = new CodeType(); - this.code.setValue(value); - return this; - } - - /** - * @return {@link #profile} (Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile.). This is the underlying object with id, value and extensions. The accessor "getProfile" gives direct access to the value - */ - public UriType getProfileElement() { - if (this.profile == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create TypeRefComponent.profile"); - else if (Configuration.doAutoCreate()) - this.profile = new UriType(); - return this.profile; - } - - public boolean hasProfileElement() { - return this.profile != null && !this.profile.isEmpty(); - } - - public boolean hasProfile() { - return this.profile != null && !this.profile.isEmpty(); - } - - /** - * @param value {@link #profile} (Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile.). This is the underlying object with id, value and extensions. The accessor "getProfile" gives direct access to the value - */ - public TypeRefComponent setProfileElement(UriType value) { - this.profile = value; - return this; - } - - /** - * @return Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. - */ - public String getProfile() { - return this.profile == null ? null : this.profile.getValue(); - } - - /** - * @param value Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. - */ - public TypeRefComponent setProfile(String value) { - if (Utilities.noString(value)) - this.profile = null; - else { - if (this.profile == null) - this.profile = new UriType(); - this.profile.setValue(value); - } - return this; - } - - /** - * @return {@link #aggregation} (If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle.) - */ - public List> getAggregation() { - if (this.aggregation == null) - this.aggregation = new ArrayList>(); - return this.aggregation; - } - - public boolean hasAggregation() { - if (this.aggregation == null) - return false; - for (Enumeration item : this.aggregation) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #aggregation} (If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle.) - */ - // syntactic sugar - public Enumeration addAggregationElement() {//2 - Enumeration t = new Enumeration(); - if (this.aggregation == null) - this.aggregation = new ArrayList>(); - this.aggregation.add(t); - return t; - } - - /** - * @param value {@link #aggregation} (If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle.) - */ - public TypeRefComponent addAggregation(ResourceAggregationMode value) { //1 - Enumeration t = new Enumeration(); - t.setValue(value); - if (this.aggregation == null) - this.aggregation = new ArrayList>(); - this.aggregation.add(t); - return this; - } - - /** - * @param value {@link #aggregation} (If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle.) - */ - public boolean hasAggregation(ResourceAggregationMode value) { - if (this.aggregation == null) - return false; - for (Enumeration v : this.aggregation) - if (v.equals(value)) // code - return true; - return false; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "code", "Name of Data type or Resource that is a(or the) type used for this element.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("profile", "uri", "Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile.", 0, java.lang.Integer.MAX_VALUE, profile)); - childrenList.add(new Property("aggregation", "code", "If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle.", 0, java.lang.Integer.MAX_VALUE, aggregation)); - } - - public TypeRefComponent copy() { - TypeRefComponent dst = new TypeRefComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.profile = profile == null ? null : profile.copy(); - if (aggregation != null) { - dst.aggregation = new ArrayList>(); - for (Enumeration i : aggregation) - dst.aggregation.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (profile == null || profile.isEmpty()) - && (aggregation == null || aggregation.isEmpty()); - } - - } - - public static class ElementDefinitionConstraintComponent extends Element { - /** - * Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality. - */ - @Child(name="key", type={IdType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Target of 'condition' reference above", formalDefinition="Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality." ) - protected IdType key; - - /** - * Used to label the constraint in OCL or in short displays incapable of displaying the full human description. - */ - @Child(name="name", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Short human label", formalDefinition="Used to label the constraint in OCL or in short displays incapable of displaying the full human description." ) - protected StringType name; - - /** - * Identifies the impact constraint violation has on the conformance of the instance. - */ - @Child(name="severity", type={CodeType.class}, order=3, min=1, max=1) - @Description(shortDefinition="error | warning", formalDefinition="Identifies the impact constraint violation has on the conformance of the instance." ) - protected Enumeration severity; - - /** - * Text that can be used to describe the constraint in messages identifying that the constraint has been violated. - */ - @Child(name="human", type={StringType.class}, order=4, min=1, max=1) - @Description(shortDefinition="Human description of constraint", formalDefinition="Text that can be used to describe the constraint in messages identifying that the constraint has been violated." ) - protected StringType human; - - /** - * An XPath expression of constraint that can be executed to see if this constraint is met. - */ - @Child(name="xpath", type={StringType.class}, order=5, min=1, max=1) - @Description(shortDefinition="XPath expression of constraint", formalDefinition="An XPath expression of constraint that can be executed to see if this constraint is met." ) - protected StringType xpath; - - private static final long serialVersionUID = -1195616532L; - - public ElementDefinitionConstraintComponent() { - super(); - } - - public ElementDefinitionConstraintComponent(IdType key, Enumeration severity, StringType human, StringType xpath) { - super(); - this.key = key; - this.severity = severity; - this.human = human; - this.xpath = xpath; - } - - /** - * @return {@link #key} (Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality.). This is the underlying object with id, value and extensions. The accessor "getKey" gives direct access to the value - */ - public IdType getKeyElement() { - if (this.key == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionConstraintComponent.key"); - else if (Configuration.doAutoCreate()) - this.key = new IdType(); - return this.key; - } - - public boolean hasKeyElement() { - return this.key != null && !this.key.isEmpty(); - } - - public boolean hasKey() { - return this.key != null && !this.key.isEmpty(); - } - - /** - * @param value {@link #key} (Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality.). This is the underlying object with id, value and extensions. The accessor "getKey" gives direct access to the value - */ - public ElementDefinitionConstraintComponent setKeyElement(IdType value) { - this.key = value; - return this; - } - - /** - * @return Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality. - */ - public String getKey() { - return this.key == null ? null : this.key.getValue(); - } - - /** - * @param value Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality. - */ - public ElementDefinitionConstraintComponent setKey(String value) { - if (this.key == null) - this.key = new IdType(); - this.key.setValue(value); - return this; - } - - /** - * @return {@link #name} (Used to label the constraint in OCL or in short displays incapable of displaying the full human description.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionConstraintComponent.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (Used to label the constraint in OCL or in short displays incapable of displaying the full human description.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public ElementDefinitionConstraintComponent setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return Used to label the constraint in OCL or in short displays incapable of displaying the full human description. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value Used to label the constraint in OCL or in short displays incapable of displaying the full human description. - */ - public ElementDefinitionConstraintComponent setName(String value) { - if (Utilities.noString(value)) - this.name = null; - else { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - } - return this; - } - - /** - * @return {@link #severity} (Identifies the impact constraint violation has on the conformance of the instance.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value - */ - public Enumeration getSeverityElement() { - if (this.severity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionConstraintComponent.severity"); - else if (Configuration.doAutoCreate()) - this.severity = new Enumeration(); - return this.severity; - } - - public boolean hasSeverityElement() { - return this.severity != null && !this.severity.isEmpty(); - } - - public boolean hasSeverity() { - return this.severity != null && !this.severity.isEmpty(); - } - - /** - * @param value {@link #severity} (Identifies the impact constraint violation has on the conformance of the instance.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value - */ - public ElementDefinitionConstraintComponent setSeverityElement(Enumeration value) { - this.severity = value; - return this; - } - - /** - * @return Identifies the impact constraint violation has on the conformance of the instance. - */ - public ConstraintSeverity getSeverity() { - return this.severity == null ? null : this.severity.getValue(); - } - - /** - * @param value Identifies the impact constraint violation has on the conformance of the instance. - */ - public ElementDefinitionConstraintComponent setSeverity(ConstraintSeverity value) { - if (this.severity == null) - this.severity = new Enumeration(ConstraintSeverity.ENUM_FACTORY); - this.severity.setValue(value); - return this; - } - - /** - * @return {@link #human} (Text that can be used to describe the constraint in messages identifying that the constraint has been violated.). This is the underlying object with id, value and extensions. The accessor "getHuman" gives direct access to the value - */ - public StringType getHumanElement() { - if (this.human == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionConstraintComponent.human"); - else if (Configuration.doAutoCreate()) - this.human = new StringType(); - return this.human; - } - - public boolean hasHumanElement() { - return this.human != null && !this.human.isEmpty(); - } - - public boolean hasHuman() { - return this.human != null && !this.human.isEmpty(); - } - - /** - * @param value {@link #human} (Text that can be used to describe the constraint in messages identifying that the constraint has been violated.). This is the underlying object with id, value and extensions. The accessor "getHuman" gives direct access to the value - */ - public ElementDefinitionConstraintComponent setHumanElement(StringType value) { - this.human = value; - return this; - } - - /** - * @return Text that can be used to describe the constraint in messages identifying that the constraint has been violated. - */ - public String getHuman() { - return this.human == null ? null : this.human.getValue(); - } - - /** - * @param value Text that can be used to describe the constraint in messages identifying that the constraint has been violated. - */ - public ElementDefinitionConstraintComponent setHuman(String value) { - if (this.human == null) - this.human = new StringType(); - this.human.setValue(value); - return this; - } - - /** - * @return {@link #xpath} (An XPath expression of constraint that can be executed to see if this constraint is met.). This is the underlying object with id, value and extensions. The accessor "getXpath" gives direct access to the value - */ - public StringType getXpathElement() { - if (this.xpath == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionConstraintComponent.xpath"); - else if (Configuration.doAutoCreate()) - this.xpath = new StringType(); - return this.xpath; - } - - public boolean hasXpathElement() { - return this.xpath != null && !this.xpath.isEmpty(); - } - - public boolean hasXpath() { - return this.xpath != null && !this.xpath.isEmpty(); - } - - /** - * @param value {@link #xpath} (An XPath expression of constraint that can be executed to see if this constraint is met.). This is the underlying object with id, value and extensions. The accessor "getXpath" gives direct access to the value - */ - public ElementDefinitionConstraintComponent setXpathElement(StringType value) { - this.xpath = value; - return this; - } - - /** - * @return An XPath expression of constraint that can be executed to see if this constraint is met. - */ - public String getXpath() { - return this.xpath == null ? null : this.xpath.getValue(); - } - - /** - * @param value An XPath expression of constraint that can be executed to see if this constraint is met. - */ - public ElementDefinitionConstraintComponent setXpath(String value) { - if (this.xpath == null) - this.xpath = new StringType(); - this.xpath.setValue(value); - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("key", "id", "Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality.", 0, java.lang.Integer.MAX_VALUE, key)); - childrenList.add(new Property("name", "string", "Used to label the constraint in OCL or in short displays incapable of displaying the full human description.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("severity", "code", "Identifies the impact constraint violation has on the conformance of the instance.", 0, java.lang.Integer.MAX_VALUE, severity)); - childrenList.add(new Property("human", "string", "Text that can be used to describe the constraint in messages identifying that the constraint has been violated.", 0, java.lang.Integer.MAX_VALUE, human)); - childrenList.add(new Property("xpath", "string", "An XPath expression of constraint that can be executed to see if this constraint is met.", 0, java.lang.Integer.MAX_VALUE, xpath)); - } - - public ElementDefinitionConstraintComponent copy() { - ElementDefinitionConstraintComponent dst = new ElementDefinitionConstraintComponent(); - copyValues(dst); - dst.key = key == null ? null : key.copy(); - dst.name = name == null ? null : name.copy(); - dst.severity = severity == null ? null : severity.copy(); - dst.human = human == null ? null : human.copy(); - dst.xpath = xpath == null ? null : xpath.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (key == null || key.isEmpty()) && (name == null || name.isEmpty()) - && (severity == null || severity.isEmpty()) && (human == null || human.isEmpty()) && (xpath == null || xpath.isEmpty()) - ; - } - - } - - public static class ElementDefinitionBindingComponent extends Element { - /** - * A descriptive name for this - can be useful for generating implementation artifacts. - */ - @Child(name="name", type={StringType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Descriptive Name", formalDefinition="A descriptive name for this - can be useful for generating implementation artifacts." ) - protected StringType name; - - /** - * If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone. - */ - @Child(name="isExtensible", type={BooleanType.class}, order=2, min=1, max=1) - @Description(shortDefinition="Can additional codes be used?", formalDefinition="If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone." ) - protected BooleanType isExtensible; - - /** - * Indicates the degree of conformance expectations associated with this binding. - */ - @Child(name="conformance", type={CodeType.class}, order=3, min=0, max=1) - @Description(shortDefinition="required | preferred | example", formalDefinition="Indicates the degree of conformance expectations associated with this binding." ) - protected Enumeration conformance; - - /** - * Describes the intended use of this particular set of codes. - */ - @Child(name="description", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Human explanation of the value set", formalDefinition="Describes the intended use of this particular set of codes." ) - protected StringType description; - - /** - * Points to the value set or external definition that identifies the set of codes to be used. - */ - @Child(name="reference", type={UriType.class, ValueSet.class}, order=5, min=0, max=1) - @Description(shortDefinition="Source of value set", formalDefinition="Points to the value set or external definition that identifies the set of codes to be used." ) - protected Type reference; - - private static final long serialVersionUID = 1041151319L; - - public ElementDefinitionBindingComponent() { - super(); - } - - public ElementDefinitionBindingComponent(StringType name, BooleanType isExtensible) { - super(); - this.name = name; - this.isExtensible = isExtensible; - } - - /** - * @return {@link #name} (A descriptive name for this - can be useful for generating implementation artifacts.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionBindingComponent.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (A descriptive name for this - can be useful for generating implementation artifacts.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public ElementDefinitionBindingComponent setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return A descriptive name for this - can be useful for generating implementation artifacts. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value A descriptive name for this - can be useful for generating implementation artifacts. - */ - public ElementDefinitionBindingComponent setName(String value) { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - return this; - } - - /** - * @return {@link #isExtensible} (If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.). This is the underlying object with id, value and extensions. The accessor "getIsExtensible" gives direct access to the value - */ - public BooleanType getIsExtensibleElement() { - if (this.isExtensible == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionBindingComponent.isExtensible"); - else if (Configuration.doAutoCreate()) - this.isExtensible = new BooleanType(); - return this.isExtensible; - } - - public boolean hasIsExtensibleElement() { - return this.isExtensible != null && !this.isExtensible.isEmpty(); - } - - public boolean hasIsExtensible() { - return this.isExtensible != null && !this.isExtensible.isEmpty(); - } - - /** - * @param value {@link #isExtensible} (If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.). This is the underlying object with id, value and extensions. The accessor "getIsExtensible" gives direct access to the value - */ - public ElementDefinitionBindingComponent setIsExtensibleElement(BooleanType value) { - this.isExtensible = value; - return this; - } - - /** - * @return If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone. - */ - public boolean getIsExtensible() { - return this.isExtensible == null ? false : this.isExtensible.getValue(); - } - - /** - * @param value If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone. - */ - public ElementDefinitionBindingComponent setIsExtensible(boolean value) { - if (this.isExtensible == null) - this.isExtensible = new BooleanType(); - this.isExtensible.setValue(value); - return this; - } - - /** - * @return {@link #conformance} (Indicates the degree of conformance expectations associated with this binding.). This is the underlying object with id, value and extensions. The accessor "getConformance" gives direct access to the value - */ - public Enumeration getConformanceElement() { - if (this.conformance == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionBindingComponent.conformance"); - else if (Configuration.doAutoCreate()) - this.conformance = new Enumeration(); - return this.conformance; - } - - public boolean hasConformanceElement() { - return this.conformance != null && !this.conformance.isEmpty(); - } - - public boolean hasConformance() { - return this.conformance != null && !this.conformance.isEmpty(); - } - - /** - * @param value {@link #conformance} (Indicates the degree of conformance expectations associated with this binding.). This is the underlying object with id, value and extensions. The accessor "getConformance" gives direct access to the value - */ - public ElementDefinitionBindingComponent setConformanceElement(Enumeration value) { - this.conformance = value; - return this; - } - - /** - * @return Indicates the degree of conformance expectations associated with this binding. - */ - public BindingConformance getConformance() { - return this.conformance == null ? null : this.conformance.getValue(); - } - - /** - * @param value Indicates the degree of conformance expectations associated with this binding. - */ - public ElementDefinitionBindingComponent setConformance(BindingConformance value) { - if (value == null) - this.conformance = null; - else { - if (this.conformance == null) - this.conformance = new Enumeration(BindingConformance.ENUM_FACTORY); - this.conformance.setValue(value); - } - return this; - } - - /** - * @return {@link #description} (Describes the intended use of this particular set of codes.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionBindingComponent.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Describes the intended use of this particular set of codes.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public ElementDefinitionBindingComponent setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Describes the intended use of this particular set of codes. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Describes the intended use of this particular set of codes. - */ - public ElementDefinitionBindingComponent setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #reference} (Points to the value set or external definition that identifies the set of codes to be used.) - */ - public Type getReference() { - return this.reference; - } - - /** - * @return {@link #reference} (Points to the value set or external definition that identifies the set of codes to be used.) - */ - public UriType getReferenceUriType() throws Exception { - if (!(this.reference instanceof UriType)) - throw new Exception("Type mismatch: the type UriType was expected, but "+this.reference.getClass().getName()+" was encountered"); - return (UriType) this.reference; - } - - /** - * @return {@link #reference} (Points to the value set or external definition that identifies the set of codes to be used.) - */ - public Reference getReferenceReference() throws Exception { - if (!(this.reference instanceof Reference)) - throw new Exception("Type mismatch: the type Reference was expected, but "+this.reference.getClass().getName()+" was encountered"); - return (Reference) this.reference; - } - - public boolean hasReference() { - return this.reference != null && !this.reference.isEmpty(); - } - - /** - * @param value {@link #reference} (Points to the value set or external definition that identifies the set of codes to be used.) - */ - public ElementDefinitionBindingComponent setReference(Type value) { - this.reference = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("name", "string", "A descriptive name for this - can be useful for generating implementation artifacts.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("isExtensible", "boolean", "If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.", 0, java.lang.Integer.MAX_VALUE, isExtensible)); - childrenList.add(new Property("conformance", "code", "Indicates the degree of conformance expectations associated with this binding.", 0, java.lang.Integer.MAX_VALUE, conformance)); - childrenList.add(new Property("description", "string", "Describes the intended use of this particular set of codes.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("reference[x]", "uri|Reference(ValueSet)", "Points to the value set or external definition that identifies the set of codes to be used.", 0, java.lang.Integer.MAX_VALUE, reference)); - } - - public ElementDefinitionBindingComponent copy() { - ElementDefinitionBindingComponent dst = new ElementDefinitionBindingComponent(); - copyValues(dst); - dst.name = name == null ? null : name.copy(); - dst.isExtensible = isExtensible == null ? null : isExtensible.copy(); - dst.conformance = conformance == null ? null : conformance.copy(); - dst.description = description == null ? null : description.copy(); - dst.reference = reference == null ? null : reference.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (name == null || name.isEmpty()) && (isExtensible == null || isExtensible.isEmpty()) - && (conformance == null || conformance.isEmpty()) && (description == null || description.isEmpty()) - && (reference == null || reference.isEmpty()); - } - - } - - public static class ElementDefinitionMappingComponent extends Element { - /** - * An internal reference to the definition of a mapping. - */ - @Child(name="identity", type={IdType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Reference to mapping declaration", formalDefinition="An internal reference to the definition of a mapping." ) - protected IdType identity; - - /** - * Expresses what part of the target specification corresponds to this element. - */ - @Child(name="map", type={StringType.class}, order=2, min=1, max=1) - @Description(shortDefinition="Details of the mapping", formalDefinition="Expresses what part of the target specification corresponds to this element." ) - protected StringType map; - - private static final long serialVersionUID = -450627426L; - - public ElementDefinitionMappingComponent() { - super(); - } - - public ElementDefinitionMappingComponent(IdType identity, StringType map) { - super(); - this.identity = identity; - this.map = map; - } - - /** - * @return {@link #identity} (An internal reference to the definition of a mapping.). This is the underlying object with id, value and extensions. The accessor "getIdentity" gives direct access to the value - */ - public IdType getIdentityElement() { - if (this.identity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionMappingComponent.identity"); - else if (Configuration.doAutoCreate()) - this.identity = new IdType(); - return this.identity; - } - - public boolean hasIdentityElement() { - return this.identity != null && !this.identity.isEmpty(); - } - - public boolean hasIdentity() { - return this.identity != null && !this.identity.isEmpty(); - } - - /** - * @param value {@link #identity} (An internal reference to the definition of a mapping.). This is the underlying object with id, value and extensions. The accessor "getIdentity" gives direct access to the value - */ - public ElementDefinitionMappingComponent setIdentityElement(IdType value) { - this.identity = value; - return this; - } - - /** - * @return An internal reference to the definition of a mapping. - */ - public String getIdentity() { - return this.identity == null ? null : this.identity.getValue(); - } - - /** - * @param value An internal reference to the definition of a mapping. - */ - public ElementDefinitionMappingComponent setIdentity(String value) { - if (this.identity == null) - this.identity = new IdType(); - this.identity.setValue(value); - return this; - } - - /** - * @return {@link #map} (Expresses what part of the target specification corresponds to this element.). This is the underlying object with id, value and extensions. The accessor "getMap" gives direct access to the value - */ - public StringType getMapElement() { - if (this.map == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinitionMappingComponent.map"); - else if (Configuration.doAutoCreate()) - this.map = new StringType(); - return this.map; - } - - public boolean hasMapElement() { - return this.map != null && !this.map.isEmpty(); - } - - public boolean hasMap() { - return this.map != null && !this.map.isEmpty(); - } - - /** - * @param value {@link #map} (Expresses what part of the target specification corresponds to this element.). This is the underlying object with id, value and extensions. The accessor "getMap" gives direct access to the value - */ - public ElementDefinitionMappingComponent setMapElement(StringType value) { - this.map = value; - return this; - } - - /** - * @return Expresses what part of the target specification corresponds to this element. - */ - public String getMap() { - return this.map == null ? null : this.map.getValue(); - } - - /** - * @param value Expresses what part of the target specification corresponds to this element. - */ - public ElementDefinitionMappingComponent setMap(String value) { - if (this.map == null) - this.map = new StringType(); - this.map.setValue(value); - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identity", "id", "An internal reference to the definition of a mapping.", 0, java.lang.Integer.MAX_VALUE, identity)); - childrenList.add(new Property("map", "string", "Expresses what part of the target specification corresponds to this element.", 0, java.lang.Integer.MAX_VALUE, map)); - } - - public ElementDefinitionMappingComponent copy() { - ElementDefinitionMappingComponent dst = new ElementDefinitionMappingComponent(); - copyValues(dst); - dst.identity = identity == null ? null : identity.copy(); - dst.map = map == null ? null : map.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (identity == null || identity.isEmpty()) && (map == null || map.isEmpty()) - ; - } - - } - - /** - * The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource or extension. - */ - @Child(name="path", type={StringType.class}, order=-1, min=1, max=1) - @Description(shortDefinition="The path of the element (see the Detailed Descriptions)", formalDefinition="The path identifies the element and is expressed as a '.'-separated list of ancestor elements, beginning with the name of the resource or extension." ) - protected StringType path; - - /** - * Codes that define how this element is represented in instances, when the deviation varies from the normal case. - */ - @Child(name="representation", type={CodeType.class}, order=0, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="How this element is represented in instances", formalDefinition="Codes that define how this element is represented in instances, when the deviation varies from the normal case." ) - protected List> representation; - - /** - * The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element. - */ - @Child(name="name", type={StringType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Name for this particular element definition (reference target)", formalDefinition="The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element." ) - protected StringType name; - - /** - * Indicates that the element is sliced into a set of alternative definitions (there are multiple definitions on a single element in the base resource). The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set). - */ - @Child(name="slicing", type={}, order=2, min=0, max=1) - @Description(shortDefinition="This element is sliced - slices follow", formalDefinition="Indicates that the element is sliced into a set of alternative definitions (there are multiple definitions on a single element in the base resource). The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set)." ) - protected ElementDefinitionSlicingComponent slicing; - - /** - * A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification). - */ - @Child(name="short_", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Concise definition for xml presentation", formalDefinition="A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification)." ) - protected StringType short_; - - /** - * The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource. - */ - @Child(name="formal", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Full formal definition in human language", formalDefinition="The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource." ) - protected StringType formal; - - /** - * Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. - */ - @Child(name="comments", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Comments about the use of this element", formalDefinition="Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc." ) - protected StringType comments; - - /** - * Explains why this element is needed and why it's been constrained as it has. - */ - @Child(name="requirements", type={StringType.class}, order=6, min=0, max=1) - @Description(shortDefinition="Why is this needed?", formalDefinition="Explains why this element is needed and why it's been constrained as it has." ) - protected StringType requirements; - - /** - * Identifies additional names by which this element might also be known. - */ - @Child(name="synonym", type={StringType.class}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Other names", formalDefinition="Identifies additional names by which this element might also be known." ) - protected List synonym; - - /** - * The minimum number of times this element SHALL appear in the instance. - */ - @Child(name="min", type={IntegerType.class}, order=8, min=0, max=1) - @Description(shortDefinition="Minimum Cardinality", formalDefinition="The minimum number of times this element SHALL appear in the instance." ) - protected IntegerType min; - - /** - * The maximum number of times this element is permitted to appear in the instance. - */ - @Child(name="max", type={StringType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Maximum Cardinality (a number or *)", formalDefinition="The maximum number of times this element is permitted to appear in the instance." ) - protected StringType max; - - /** - * The data type or resource that the value of this element is permitted to be. - */ - @Child(name="type", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Data type and Profile for this element", formalDefinition="The data type or resource that the value of this element is permitted to be." ) - protected List type; - - /** - * Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element. - */ - @Child(name="nameReference", type={StringType.class}, order=11, min=0, max=1) - @Description(shortDefinition="To another element constraint (by element.name)", formalDefinition="Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element." ) - protected StringType nameReference; - - /** - * The value that should be used if there is no value stated in the instance. - */ - @Child(name="defaultValue", type={}, order=12, min=0, max=1) - @Description(shortDefinition="Specified value it missing from instance", formalDefinition="The value that should be used if there is no value stated in the instance." ) - protected org.hl7.fhir.instance.model.Type defaultValue; - - /** - * The Implicit meaning that is to be understood when this element is missing. - */ - @Child(name="meaningWhenMissing", type={StringType.class}, order=13, min=0, max=1) - @Description(shortDefinition="Implicit meaning when this element is missing", formalDefinition="The Implicit meaning that is to be understood when this element is missing." ) - protected StringType meaningWhenMissing; - - /** - * Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-signficant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing. - */ - @Child(name="fixed", type={}, order=14, min=0, max=1) - @Description(shortDefinition="Value must be exactly this", formalDefinition="Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-signficant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing." ) - protected org.hl7.fhir.instance.model.Type fixed; - - /** - * Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-senstive, accent-sensitive, etc.). - */ - @Child(name="pattern", type={}, order=15, min=0, max=1) - @Description(shortDefinition="Value must have at least these property values", formalDefinition="Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-senstive, accent-sensitive, etc.)." ) - protected org.hl7.fhir.instance.model.Type pattern; - - /** - * An example value for this element. - */ - @Child(name="example", type={}, order=16, min=0, max=1) - @Description(shortDefinition="Example value: [as defined for type]", formalDefinition="An example value for this element." ) - protected org.hl7.fhir.instance.model.Type example; - - /** - * Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element. - */ - @Child(name="maxLength", type={IntegerType.class}, order=17, min=0, max=1) - @Description(shortDefinition="Max length for strings", formalDefinition="Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element." ) - protected IntegerType maxLength; - - /** - * A reference to an invariant that may make additional statements about the cardinality or value in the instance. - */ - @Child(name="condition", type={IdType.class}, order=18, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Reference to invariant about presence", formalDefinition="A reference to an invariant that may make additional statements about the cardinality or value in the instance." ) - protected List condition; - - /** - * Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance. - */ - @Child(name="constraint", type={}, order=19, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Condition that must evaluate to true", formalDefinition="Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance." ) - protected List constraint; - - /** - * If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported. - */ - @Child(name="mustSupport", type={BooleanType.class}, order=20, min=0, max=1) - @Description(shortDefinition="If the element must supported", formalDefinition="If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported." ) - protected BooleanType mustSupport; - - /** - * If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system. - */ - @Child(name="isModifier", type={BooleanType.class}, order=21, min=0, max=1) - @Description(shortDefinition="If this modifies the meaning of other elements", formalDefinition="If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system." ) - protected BooleanType isModifier; - - /** - * Whether the element should be included if a client requests a search with the parameter _summary=true. - */ - @Child(name="isSummary", type={BooleanType.class}, order=22, min=0, max=1) - @Description(shortDefinition="Include when _summary = true?", formalDefinition="Whether the element should be included if a client requests a search with the parameter _summary=true." ) - protected BooleanType isSummary; - - /** - * Binds to a value set if this element is coded (code, Coding, CodeableConcept). - */ - @Child(name="binding", type={}, order=23, min=0, max=1) - @Description(shortDefinition="ValueSet details if this is coded", formalDefinition="Binds to a value set if this element is coded (code, Coding, CodeableConcept)." ) - protected ElementDefinitionBindingComponent binding; - - /** - * Identifies a concept from an external specification that roughly corresponds to this element. - */ - @Child(name="mapping", type={}, order=24, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Map element to another set of definitions", formalDefinition="Identifies a concept from an external specification that roughly corresponds to this element." ) - protected List mapping; - - private static final long serialVersionUID = 2094512467L; - - public ElementDefinition() { - super(); - } - - public ElementDefinition(StringType path) { - super(); - this.path = path; - } - - /** - * @return {@link #path} (The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource or extension.). This is the underlying object with id, value and extensions. The accessor "getPath" gives direct access to the value - */ - public StringType getPathElement() { - if (this.path == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.path"); - else if (Configuration.doAutoCreate()) - this.path = new StringType(); - return this.path; - } - - public boolean hasPathElement() { - return this.path != null && !this.path.isEmpty(); - } - - public boolean hasPath() { - return this.path != null && !this.path.isEmpty(); - } - - /** - * @param value {@link #path} (The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource or extension.). This is the underlying object with id, value and extensions. The accessor "getPath" gives direct access to the value - */ - public ElementDefinition setPathElement(StringType value) { - this.path = value; - return this; - } - - /** - * @return The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource or extension. - */ - public String getPath() { - return this.path == null ? null : this.path.getValue(); - } - - /** - * @param value The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource or extension. - */ - public ElementDefinition setPath(String value) { - if (this.path == null) - this.path = new StringType(); - this.path.setValue(value); - return this; - } - - /** - * @return {@link #representation} (Codes that define how this element is represented in instances, when the deviation varies from the normal case.) - */ - public List> getRepresentation() { - if (this.representation == null) - this.representation = new ArrayList>(); - return this.representation; - } - - public boolean hasRepresentation() { - if (this.representation == null) - return false; - for (Enumeration item : this.representation) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #representation} (Codes that define how this element is represented in instances, when the deviation varies from the normal case.) - */ - // syntactic sugar - public Enumeration addRepresentationElement() {//2 - Enumeration t = new Enumeration(); - if (this.representation == null) - this.representation = new ArrayList>(); - this.representation.add(t); - return t; - } - - /** - * @param value {@link #representation} (Codes that define how this element is represented in instances, when the deviation varies from the normal case.) - */ - public ElementDefinition addRepresentation(PropertyRepresentation value) { //1 - Enumeration t = new Enumeration(); - t.setValue(value); - if (this.representation == null) - this.representation = new ArrayList>(); - this.representation.add(t); - return this; - } - - /** - * @param value {@link #representation} (Codes that define how this element is represented in instances, when the deviation varies from the normal case.) - */ - public boolean hasRepresentation(PropertyRepresentation value) { - if (this.representation == null) - return false; - for (Enumeration v : this.representation) - if (v.equals(value)) // code - return true; - return false; - } - - /** - * @return {@link #name} (The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public ElementDefinition setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element. - */ - public ElementDefinition setName(String value) { - if (Utilities.noString(value)) - this.name = null; - else { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - } - return this; - } - - /** - * @return {@link #slicing} (Indicates that the element is sliced into a set of alternative definitions (there are multiple definitions on a single element in the base resource). The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set).) - */ - public ElementDefinitionSlicingComponent getSlicing() { - if (this.slicing == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.slicing"); - else if (Configuration.doAutoCreate()) - this.slicing = new ElementDefinitionSlicingComponent(); - return this.slicing; - } - - public boolean hasSlicing() { - return this.slicing != null && !this.slicing.isEmpty(); - } - - /** - * @param value {@link #slicing} (Indicates that the element is sliced into a set of alternative definitions (there are multiple definitions on a single element in the base resource). The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set).) - */ - public ElementDefinition setSlicing(ElementDefinitionSlicingComponent value) { - this.slicing = value; - return this; - } - - /** - * @return {@link #short_} (A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification).). This is the underlying object with id, value and extensions. The accessor "getShort" gives direct access to the value - */ - public StringType getShortElement() { - if (this.short_ == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.short_"); - else if (Configuration.doAutoCreate()) - this.short_ = new StringType(); - return this.short_; - } - - public boolean hasShortElement() { - return this.short_ != null && !this.short_.isEmpty(); - } - - public boolean hasShort() { - return this.short_ != null && !this.short_.isEmpty(); - } - - /** - * @param value {@link #short_} (A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification).). This is the underlying object with id, value and extensions. The accessor "getShort" gives direct access to the value - */ - public ElementDefinition setShortElement(StringType value) { - this.short_ = value; - return this; - } - - /** - * @return A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification). - */ - public String getShort() { - return this.short_ == null ? null : this.short_.getValue(); - } - - /** - * @param value A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification). - */ - public ElementDefinition setShort(String value) { - if (Utilities.noString(value)) - this.short_ = null; - else { - if (this.short_ == null) - this.short_ = new StringType(); - this.short_.setValue(value); - } - return this; - } - - /** - * @return {@link #formal} (The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource.). This is the underlying object with id, value and extensions. The accessor "getFormal" gives direct access to the value - */ - public StringType getFormalElement() { - if (this.formal == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.formal"); - else if (Configuration.doAutoCreate()) - this.formal = new StringType(); - return this.formal; - } - - public boolean hasFormalElement() { - return this.formal != null && !this.formal.isEmpty(); - } - - public boolean hasFormal() { - return this.formal != null && !this.formal.isEmpty(); - } - - /** - * @param value {@link #formal} (The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource.). This is the underlying object with id, value and extensions. The accessor "getFormal" gives direct access to the value - */ - public ElementDefinition setFormalElement(StringType value) { - this.formal = value; - return this; - } - - /** - * @return The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource. - */ - public String getFormal() { - return this.formal == null ? null : this.formal.getValue(); - } - - /** - * @param value The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource. - */ - public ElementDefinition setFormal(String value) { - if (Utilities.noString(value)) - this.formal = null; - else { - if (this.formal == null) - this.formal = new StringType(); - this.formal.setValue(value); - } - return this; - } - - /** - * @return {@link #comments} (Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value - */ - public StringType getCommentsElement() { - if (this.comments == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.comments"); - else if (Configuration.doAutoCreate()) - this.comments = new StringType(); - return this.comments; - } - - public boolean hasCommentsElement() { - return this.comments != null && !this.comments.isEmpty(); - } - - public boolean hasComments() { - return this.comments != null && !this.comments.isEmpty(); - } - - /** - * @param value {@link #comments} (Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value - */ - public ElementDefinition setCommentsElement(StringType value) { - this.comments = value; - return this; - } - - /** - * @return Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. - */ - public String getComments() { - return this.comments == null ? null : this.comments.getValue(); - } - - /** - * @param value Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. - */ - public ElementDefinition setComments(String value) { - if (Utilities.noString(value)) - this.comments = null; - else { - if (this.comments == null) - this.comments = new StringType(); - this.comments.setValue(value); - } - return this; - } - - /** - * @return {@link #requirements} (Explains why this element is needed and why it's been constrained as it has.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value - */ - public StringType getRequirementsElement() { - if (this.requirements == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.requirements"); - else if (Configuration.doAutoCreate()) - this.requirements = new StringType(); - return this.requirements; - } - - public boolean hasRequirementsElement() { - return this.requirements != null && !this.requirements.isEmpty(); - } - - public boolean hasRequirements() { - return this.requirements != null && !this.requirements.isEmpty(); - } - - /** - * @param value {@link #requirements} (Explains why this element is needed and why it's been constrained as it has.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value - */ - public ElementDefinition setRequirementsElement(StringType value) { - this.requirements = value; - return this; - } - - /** - * @return Explains why this element is needed and why it's been constrained as it has. - */ - public String getRequirements() { - return this.requirements == null ? null : this.requirements.getValue(); - } - - /** - * @param value Explains why this element is needed and why it's been constrained as it has. - */ - public ElementDefinition setRequirements(String value) { - if (Utilities.noString(value)) - this.requirements = null; - else { - if (this.requirements == null) - this.requirements = new StringType(); - this.requirements.setValue(value); - } - return this; - } - - /** - * @return {@link #synonym} (Identifies additional names by which this element might also be known.) - */ - public List getSynonym() { - if (this.synonym == null) - this.synonym = new ArrayList(); - return this.synonym; - } - - public boolean hasSynonym() { - if (this.synonym == null) - return false; - for (StringType item : this.synonym) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #synonym} (Identifies additional names by which this element might also be known.) - */ - // syntactic sugar - public StringType addSynonymElement() {//2 - StringType t = new StringType(); - if (this.synonym == null) - this.synonym = new ArrayList(); - this.synonym.add(t); - return t; - } - - /** - * @param value {@link #synonym} (Identifies additional names by which this element might also be known.) - */ - public ElementDefinition addSynonym(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.synonym == null) - this.synonym = new ArrayList(); - this.synonym.add(t); - return this; - } - - /** - * @param value {@link #synonym} (Identifies additional names by which this element might also be known.) - */ - public boolean hasSynonym(String value) { - if (this.synonym == null) - return false; - for (StringType v : this.synonym) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #min} (The minimum number of times this element SHALL appear in the instance.). This is the underlying object with id, value and extensions. The accessor "getMin" gives direct access to the value - */ - public IntegerType getMinElement() { - if (this.min == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.min"); - else if (Configuration.doAutoCreate()) - this.min = new IntegerType(); - return this.min; - } - - public boolean hasMinElement() { - return this.min != null && !this.min.isEmpty(); - } - - public boolean hasMin() { - return this.min != null && !this.min.isEmpty(); - } - - /** - * @param value {@link #min} (The minimum number of times this element SHALL appear in the instance.). This is the underlying object with id, value and extensions. The accessor "getMin" gives direct access to the value - */ - public ElementDefinition setMinElement(IntegerType value) { - this.min = value; - return this; - } - - /** - * @return The minimum number of times this element SHALL appear in the instance. - */ - public int getMin() { - return this.min == null ? null : this.min.getValue(); - } - - /** - * @param value The minimum number of times this element SHALL appear in the instance. - */ - public ElementDefinition setMin(int value) { - if (value == -1) - this.min = null; - else { - if (this.min == null) - this.min = new IntegerType(); - this.min.setValue(value); - } - return this; - } - - /** - * @return {@link #max} (The maximum number of times this element is permitted to appear in the instance.). This is the underlying object with id, value and extensions. The accessor "getMax" gives direct access to the value - */ - public StringType getMaxElement() { - if (this.max == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.max"); - else if (Configuration.doAutoCreate()) - this.max = new StringType(); - return this.max; - } - - public boolean hasMaxElement() { - return this.max != null && !this.max.isEmpty(); - } - - public boolean hasMax() { - return this.max != null && !this.max.isEmpty(); - } - - /** - * @param value {@link #max} (The maximum number of times this element is permitted to appear in the instance.). This is the underlying object with id, value and extensions. The accessor "getMax" gives direct access to the value - */ - public ElementDefinition setMaxElement(StringType value) { - this.max = value; - return this; - } - - /** - * @return The maximum number of times this element is permitted to appear in the instance. - */ - public String getMax() { - return this.max == null ? null : this.max.getValue(); - } - - /** - * @param value The maximum number of times this element is permitted to appear in the instance. - */ - public ElementDefinition setMax(String value) { - if (Utilities.noString(value)) - this.max = null; - else { - if (this.max == null) - this.max = new StringType(); - this.max.setValue(value); - } - return this; - } - - /** - * @return {@link #type} (The data type or resource that the value of this element is permitted to be.) - */ - public List getType() { - if (this.type == null) - this.type = new ArrayList(); - return this.type; - } - - public boolean hasType() { - if (this.type == null) - return false; - for (TypeRefComponent item : this.type) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #type} (The data type or resource that the value of this element is permitted to be.) - */ - // syntactic sugar - public TypeRefComponent addType() { //3 - TypeRefComponent t = new TypeRefComponent(); - if (this.type == null) - this.type = new ArrayList(); - this.type.add(t); - return t; - } - - /** - * @return {@link #nameReference} (Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element.). This is the underlying object with id, value and extensions. The accessor "getNameReference" gives direct access to the value - */ - public StringType getNameReferenceElement() { - if (this.nameReference == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.nameReference"); - else if (Configuration.doAutoCreate()) - this.nameReference = new StringType(); - return this.nameReference; - } - - public boolean hasNameReferenceElement() { - return this.nameReference != null && !this.nameReference.isEmpty(); - } - - public boolean hasNameReference() { - return this.nameReference != null && !this.nameReference.isEmpty(); - } - - /** - * @param value {@link #nameReference} (Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element.). This is the underlying object with id, value and extensions. The accessor "getNameReference" gives direct access to the value - */ - public ElementDefinition setNameReferenceElement(StringType value) { - this.nameReference = value; - return this; - } - - /** - * @return Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element. - */ - public String getNameReference() { - return this.nameReference == null ? null : this.nameReference.getValue(); - } - - /** - * @param value Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element. - */ - public ElementDefinition setNameReference(String value) { - if (Utilities.noString(value)) - this.nameReference = null; - else { - if (this.nameReference == null) - this.nameReference = new StringType(); - this.nameReference.setValue(value); - } - return this; - } - - /** - * @return {@link #defaultValue} (The value that should be used if there is no value stated in the instance.) - */ - public org.hl7.fhir.instance.model.Type getDefaultValue() { - return this.defaultValue; - } - - public boolean hasDefaultValue() { - return this.defaultValue != null && !this.defaultValue.isEmpty(); - } - - /** - * @param value {@link #defaultValue} (The value that should be used if there is no value stated in the instance.) - */ - public ElementDefinition setDefaultValue(org.hl7.fhir.instance.model.Type value) { - this.defaultValue = value; - return this; - } - - /** - * @return {@link #meaningWhenMissing} (The Implicit meaning that is to be understood when this element is missing.). This is the underlying object with id, value and extensions. The accessor "getMeaningWhenMissing" gives direct access to the value - */ - public StringType getMeaningWhenMissingElement() { - if (this.meaningWhenMissing == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.meaningWhenMissing"); - else if (Configuration.doAutoCreate()) - this.meaningWhenMissing = new StringType(); - return this.meaningWhenMissing; - } - - public boolean hasMeaningWhenMissingElement() { - return this.meaningWhenMissing != null && !this.meaningWhenMissing.isEmpty(); - } - - public boolean hasMeaningWhenMissing() { - return this.meaningWhenMissing != null && !this.meaningWhenMissing.isEmpty(); - } - - /** - * @param value {@link #meaningWhenMissing} (The Implicit meaning that is to be understood when this element is missing.). This is the underlying object with id, value and extensions. The accessor "getMeaningWhenMissing" gives direct access to the value - */ - public ElementDefinition setMeaningWhenMissingElement(StringType value) { - this.meaningWhenMissing = value; - return this; - } - - /** - * @return The Implicit meaning that is to be understood when this element is missing. - */ - public String getMeaningWhenMissing() { - return this.meaningWhenMissing == null ? null : this.meaningWhenMissing.getValue(); - } - - /** - * @param value The Implicit meaning that is to be understood when this element is missing. - */ - public ElementDefinition setMeaningWhenMissing(String value) { - if (Utilities.noString(value)) - this.meaningWhenMissing = null; - else { - if (this.meaningWhenMissing == null) - this.meaningWhenMissing = new StringType(); - this.meaningWhenMissing.setValue(value); - } - return this; - } - - /** - * @return {@link #fixed} (Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-signficant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.) - */ - public org.hl7.fhir.instance.model.Type getFixed() { - return this.fixed; - } - - public boolean hasFixed() { - return this.fixed != null && !this.fixed.isEmpty(); - } - - /** - * @param value {@link #fixed} (Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-signficant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.) - */ - public ElementDefinition setFixed(org.hl7.fhir.instance.model.Type value) { - this.fixed = value; - return this; - } - - /** - * @return {@link #pattern} (Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-senstive, accent-sensitive, etc.).) - */ - public org.hl7.fhir.instance.model.Type getPattern() { - return this.pattern; - } - - public boolean hasPattern() { - return this.pattern != null && !this.pattern.isEmpty(); - } - - /** - * @param value {@link #pattern} (Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-senstive, accent-sensitive, etc.).) - */ - public ElementDefinition setPattern(org.hl7.fhir.instance.model.Type value) { - this.pattern = value; - return this; - } - - /** - * @return {@link #example} (An example value for this element.) - */ - public org.hl7.fhir.instance.model.Type getExample() { - return this.example; - } - - public boolean hasExample() { - return this.example != null && !this.example.isEmpty(); - } - - /** - * @param value {@link #example} (An example value for this element.) - */ - public ElementDefinition setExample(org.hl7.fhir.instance.model.Type value) { - this.example = value; - return this; - } - - /** - * @return {@link #maxLength} (Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element.). This is the underlying object with id, value and extensions. The accessor "getMaxLength" gives direct access to the value - */ - public IntegerType getMaxLengthElement() { - if (this.maxLength == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.maxLength"); - else if (Configuration.doAutoCreate()) - this.maxLength = new IntegerType(); - return this.maxLength; - } - - public boolean hasMaxLengthElement() { - return this.maxLength != null && !this.maxLength.isEmpty(); - } - - public boolean hasMaxLength() { - return this.maxLength != null && !this.maxLength.isEmpty(); - } - - /** - * @param value {@link #maxLength} (Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element.). This is the underlying object with id, value and extensions. The accessor "getMaxLength" gives direct access to the value - */ - public ElementDefinition setMaxLengthElement(IntegerType value) { - this.maxLength = value; - return this; - } - - /** - * @return Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element. - */ - public int getMaxLength() { - return this.maxLength == null ? null : this.maxLength.getValue(); - } - - /** - * @param value Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element. - */ - public ElementDefinition setMaxLength(int value) { - if (value == -1) - this.maxLength = null; - else { - if (this.maxLength == null) - this.maxLength = new IntegerType(); - this.maxLength.setValue(value); - } - return this; - } - - /** - * @return {@link #condition} (A reference to an invariant that may make additional statements about the cardinality or value in the instance.) - */ - public List getCondition() { - if (this.condition == null) - this.condition = new ArrayList(); - return this.condition; - } - - public boolean hasCondition() { - if (this.condition == null) - return false; - for (IdType item : this.condition) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #condition} (A reference to an invariant that may make additional statements about the cardinality or value in the instance.) - */ - // syntactic sugar - public IdType addConditionElement() {//2 - IdType t = new IdType(); - if (this.condition == null) - this.condition = new ArrayList(); - this.condition.add(t); - return t; - } - - /** - * @param value {@link #condition} (A reference to an invariant that may make additional statements about the cardinality or value in the instance.) - */ - public ElementDefinition addCondition(String value) { //1 - IdType t = new IdType(); - t.setValue(value); - if (this.condition == null) - this.condition = new ArrayList(); - this.condition.add(t); - return this; - } - - /** - * @param value {@link #condition} (A reference to an invariant that may make additional statements about the cardinality or value in the instance.) - */ - public boolean hasCondition(String value) { - if (this.condition == null) - return false; - for (IdType v : this.condition) - if (v.equals(value)) // id - return true; - return false; - } - - /** - * @return {@link #constraint} (Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance.) - */ - public List getConstraint() { - if (this.constraint == null) - this.constraint = new ArrayList(); - return this.constraint; - } - - public boolean hasConstraint() { - if (this.constraint == null) - return false; - for (ElementDefinitionConstraintComponent item : this.constraint) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #constraint} (Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance.) - */ - // syntactic sugar - public ElementDefinitionConstraintComponent addConstraint() { //3 - ElementDefinitionConstraintComponent t = new ElementDefinitionConstraintComponent(); - if (this.constraint == null) - this.constraint = new ArrayList(); - this.constraint.add(t); - return t; - } - - /** - * @return {@link #mustSupport} (If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported.). This is the underlying object with id, value and extensions. The accessor "getMustSupport" gives direct access to the value - */ - public BooleanType getMustSupportElement() { - if (this.mustSupport == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.mustSupport"); - else if (Configuration.doAutoCreate()) - this.mustSupport = new BooleanType(); - return this.mustSupport; - } - - public boolean hasMustSupportElement() { - return this.mustSupport != null && !this.mustSupport.isEmpty(); - } - - public boolean hasMustSupport() { - return this.mustSupport != null && !this.mustSupport.isEmpty(); - } - - /** - * @param value {@link #mustSupport} (If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported.). This is the underlying object with id, value and extensions. The accessor "getMustSupport" gives direct access to the value - */ - public ElementDefinition setMustSupportElement(BooleanType value) { - this.mustSupport = value; - return this; - } - - /** - * @return If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported. - */ - public boolean getMustSupport() { - return this.mustSupport == null ? false : this.mustSupport.getValue(); - } - - /** - * @param value If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported. - */ - public ElementDefinition setMustSupport(boolean value) { - if (value == false) - this.mustSupport = null; - else { - if (this.mustSupport == null) - this.mustSupport = new BooleanType(); - this.mustSupport.setValue(value); - } - return this; - } - - /** - * @return {@link #isModifier} (If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system.). This is the underlying object with id, value and extensions. The accessor "getIsModifier" gives direct access to the value - */ - public BooleanType getIsModifierElement() { - if (this.isModifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.isModifier"); - else if (Configuration.doAutoCreate()) - this.isModifier = new BooleanType(); - return this.isModifier; - } - - public boolean hasIsModifierElement() { - return this.isModifier != null && !this.isModifier.isEmpty(); - } - - public boolean hasIsModifier() { - return this.isModifier != null && !this.isModifier.isEmpty(); - } - - /** - * @param value {@link #isModifier} (If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system.). This is the underlying object with id, value and extensions. The accessor "getIsModifier" gives direct access to the value - */ - public ElementDefinition setIsModifierElement(BooleanType value) { - this.isModifier = value; - return this; - } - - /** - * @return If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system. - */ - public boolean getIsModifier() { - return this.isModifier == null ? false : this.isModifier.getValue(); - } - - /** - * @param value If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system. - */ - public ElementDefinition setIsModifier(boolean value) { - if (value == false) - this.isModifier = null; - else { - if (this.isModifier == null) - this.isModifier = new BooleanType(); - this.isModifier.setValue(value); - } - return this; - } - - /** - * @return {@link #isSummary} (Whether the element should be included if a client requests a search with the parameter _summary=true.). This is the underlying object with id, value and extensions. The accessor "getIsSummary" gives direct access to the value - */ - public BooleanType getIsSummaryElement() { - if (this.isSummary == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.isSummary"); - else if (Configuration.doAutoCreate()) - this.isSummary = new BooleanType(); - return this.isSummary; - } - - public boolean hasIsSummaryElement() { - return this.isSummary != null && !this.isSummary.isEmpty(); - } - - public boolean hasIsSummary() { - return this.isSummary != null && !this.isSummary.isEmpty(); - } - - /** - * @param value {@link #isSummary} (Whether the element should be included if a client requests a search with the parameter _summary=true.). This is the underlying object with id, value and extensions. The accessor "getIsSummary" gives direct access to the value - */ - public ElementDefinition setIsSummaryElement(BooleanType value) { - this.isSummary = value; - return this; - } - - /** - * @return Whether the element should be included if a client requests a search with the parameter _summary=true. - */ - public boolean getIsSummary() { - return this.isSummary == null ? false : this.isSummary.getValue(); - } - - /** - * @param value Whether the element should be included if a client requests a search with the parameter _summary=true. - */ - public ElementDefinition setIsSummary(boolean value) { - if (value == false) - this.isSummary = null; - else { - if (this.isSummary == null) - this.isSummary = new BooleanType(); - this.isSummary.setValue(value); - } - return this; - } - - /** - * @return {@link #binding} (Binds to a value set if this element is coded (code, Coding, CodeableConcept).) - */ - public ElementDefinitionBindingComponent getBinding() { - if (this.binding == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ElementDefinition.binding"); - else if (Configuration.doAutoCreate()) - this.binding = new ElementDefinitionBindingComponent(); - return this.binding; - } - - public boolean hasBinding() { - return this.binding != null && !this.binding.isEmpty(); - } - - /** - * @param value {@link #binding} (Binds to a value set if this element is coded (code, Coding, CodeableConcept).) - */ - public ElementDefinition setBinding(ElementDefinitionBindingComponent value) { - this.binding = value; - return this; - } - - /** - * @return {@link #mapping} (Identifies a concept from an external specification that roughly corresponds to this element.) - */ - public List getMapping() { - if (this.mapping == null) - this.mapping = new ArrayList(); - return this.mapping; - } - - public boolean hasMapping() { - if (this.mapping == null) - return false; - for (ElementDefinitionMappingComponent item : this.mapping) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #mapping} (Identifies a concept from an external specification that roughly corresponds to this element.) - */ - // syntactic sugar - public ElementDefinitionMappingComponent addMapping() { //3 - ElementDefinitionMappingComponent t = new ElementDefinitionMappingComponent(); - if (this.mapping == null) - this.mapping = new ArrayList(); - this.mapping.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("path", "string", "The path identifies the element and is expressed as a '.'-separated list of ancestor elements, beginning with the name of the resource or extension.", 0, java.lang.Integer.MAX_VALUE, path)); - childrenList.add(new Property("representation", "code", "Codes that define how this element is represented in instances, when the deviation varies from the normal case.", 0, java.lang.Integer.MAX_VALUE, representation)); - childrenList.add(new Property("name", "string", "The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("slicing", "", "Indicates that the element is sliced into a set of alternative definitions (there are multiple definitions on a single element in the base resource). The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set).", 0, java.lang.Integer.MAX_VALUE, slicing)); - childrenList.add(new Property("short", "string", "A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification).", 0, java.lang.Integer.MAX_VALUE, short_)); - childrenList.add(new Property("formal", "string", "The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource.", 0, java.lang.Integer.MAX_VALUE, formal)); - childrenList.add(new Property("comments", "string", "Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.", 0, java.lang.Integer.MAX_VALUE, comments)); - childrenList.add(new Property("requirements", "string", "Explains why this element is needed and why it's been constrained as it has.", 0, java.lang.Integer.MAX_VALUE, requirements)); - childrenList.add(new Property("synonym", "string", "Identifies additional names by which this element might also be known.", 0, java.lang.Integer.MAX_VALUE, synonym)); - childrenList.add(new Property("min", "integer", "The minimum number of times this element SHALL appear in the instance.", 0, java.lang.Integer.MAX_VALUE, min)); - childrenList.add(new Property("max", "string", "The maximum number of times this element is permitted to appear in the instance.", 0, java.lang.Integer.MAX_VALUE, max)); - childrenList.add(new Property("type", "", "The data type or resource that the value of this element is permitted to be.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("nameReference", "string", "Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element.", 0, java.lang.Integer.MAX_VALUE, nameReference)); - childrenList.add(new Property("defaultValue[x]", "*", "The value that should be used if there is no value stated in the instance.", 0, java.lang.Integer.MAX_VALUE, defaultValue)); - childrenList.add(new Property("meaningWhenMissing", "string", "The Implicit meaning that is to be understood when this element is missing.", 0, java.lang.Integer.MAX_VALUE, meaningWhenMissing)); - childrenList.add(new Property("fixed[x]", "*", "Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-signficant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.", 0, java.lang.Integer.MAX_VALUE, fixed)); - childrenList.add(new Property("pattern[x]", "*", "Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-senstive, accent-sensitive, etc.).", 0, java.lang.Integer.MAX_VALUE, pattern)); - childrenList.add(new Property("example[x]", "*", "An example value for this element.", 0, java.lang.Integer.MAX_VALUE, example)); - childrenList.add(new Property("maxLength", "integer", "Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element.", 0, java.lang.Integer.MAX_VALUE, maxLength)); - childrenList.add(new Property("condition", "id", "A reference to an invariant that may make additional statements about the cardinality or value in the instance.", 0, java.lang.Integer.MAX_VALUE, condition)); - childrenList.add(new Property("constraint", "", "Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance.", 0, java.lang.Integer.MAX_VALUE, constraint)); - childrenList.add(new Property("mustSupport", "boolean", "If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported.", 0, java.lang.Integer.MAX_VALUE, mustSupport)); - childrenList.add(new Property("isModifier", "boolean", "If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system.", 0, java.lang.Integer.MAX_VALUE, isModifier)); - childrenList.add(new Property("isSummary", "boolean", "Whether the element should be included if a client requests a search with the parameter _summary=true.", 0, java.lang.Integer.MAX_VALUE, isSummary)); - childrenList.add(new Property("binding", "", "Binds to a value set if this element is coded (code, Coding, CodeableConcept).", 0, java.lang.Integer.MAX_VALUE, binding)); - childrenList.add(new Property("mapping", "", "Identifies a concept from an external specification that roughly corresponds to this element.", 0, java.lang.Integer.MAX_VALUE, mapping)); - } - - public ElementDefinition copy() { - ElementDefinition dst = new ElementDefinition(); - copyValues(dst); - dst.path = path == null ? null : path.copy(); - if (representation != null) { - dst.representation = new ArrayList>(); - for (Enumeration i : representation) - dst.representation.add(i.copy()); - }; - dst.name = name == null ? null : name.copy(); - dst.slicing = slicing == null ? null : slicing.copy(); - dst.short_ = short_ == null ? null : short_.copy(); - dst.formal = formal == null ? null : formal.copy(); - dst.comments = comments == null ? null : comments.copy(); - dst.requirements = requirements == null ? null : requirements.copy(); - if (synonym != null) { - dst.synonym = new ArrayList(); - for (StringType i : synonym) - dst.synonym.add(i.copy()); - }; - dst.min = min == null ? null : min.copy(); - dst.max = max == null ? null : max.copy(); - if (type != null) { - dst.type = new ArrayList(); - for (TypeRefComponent i : type) - dst.type.add(i.copy()); - }; - dst.nameReference = nameReference == null ? null : nameReference.copy(); - dst.defaultValue = defaultValue == null ? null : defaultValue.copy(); - dst.meaningWhenMissing = meaningWhenMissing == null ? null : meaningWhenMissing.copy(); - dst.fixed = fixed == null ? null : fixed.copy(); - dst.pattern = pattern == null ? null : pattern.copy(); - dst.example = example == null ? null : example.copy(); - dst.maxLength = maxLength == null ? null : maxLength.copy(); - if (condition != null) { - dst.condition = new ArrayList(); - for (IdType i : condition) - dst.condition.add(i.copy()); - }; - if (constraint != null) { - dst.constraint = new ArrayList(); - for (ElementDefinitionConstraintComponent i : constraint) - dst.constraint.add(i.copy()); - }; - dst.mustSupport = mustSupport == null ? null : mustSupport.copy(); - dst.isModifier = isModifier == null ? null : isModifier.copy(); - dst.isSummary = isSummary == null ? null : isSummary.copy(); - dst.binding = binding == null ? null : binding.copy(); - if (mapping != null) { - dst.mapping = new ArrayList(); - for (ElementDefinitionMappingComponent i : mapping) - dst.mapping.add(i.copy()); - }; - return dst; - } - - protected ElementDefinition typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (path == null || path.isEmpty()) && (representation == null || representation.isEmpty()) - && (name == null || name.isEmpty()) && (slicing == null || slicing.isEmpty()) && (short_ == null || short_.isEmpty()) - && (formal == null || formal.isEmpty()) && (comments == null || comments.isEmpty()) && (requirements == null || requirements.isEmpty()) - && (synonym == null || synonym.isEmpty()) && (min == null || min.isEmpty()) && (max == null || max.isEmpty()) - && (type == null || type.isEmpty()) && (nameReference == null || nameReference.isEmpty()) - && (defaultValue == null || defaultValue.isEmpty()) && (meaningWhenMissing == null || meaningWhenMissing.isEmpty()) - && (fixed == null || fixed.isEmpty()) && (pattern == null || pattern.isEmpty()) && (example == null || example.isEmpty()) - && (maxLength == null || maxLength.isEmpty()) && (condition == null || condition.isEmpty()) - && (constraint == null || constraint.isEmpty()) && (mustSupport == null || mustSupport.isEmpty()) - && (isModifier == null || isModifier.isEmpty()) && (isSummary == null || isSummary.isEmpty()) - && (binding == null || binding.isEmpty()) && (mapping == null || mapping.isEmpty()); - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +import org.hl7.fhir.instance.model.api.IDatatypeElement; +/** + * Captures constraints on each element within the resource, profile, or extension. + */ +@DatatypeDef(name="ElementDefinition") +public class ElementDefinition extends Type implements ICompositeType { + + public enum PropertyRepresentation { + /** + * In XML, this property is represented as an attribute not an element. + */ + XMLATTR, + /** + * added to help the parsers + */ + NULL; + public static PropertyRepresentation fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("xmlAttr".equals(codeString)) + return XMLATTR; + throw new Exception("Unknown PropertyRepresentation code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case XMLATTR: return "xmlAttr"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case XMLATTR: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case XMLATTR: return "In XML, this property is represented as an attribute not an element."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case XMLATTR: return "xmlAttr"; + default: return "?"; + } + } + } + + public static class PropertyRepresentationEnumFactory implements EnumFactory { + public PropertyRepresentation fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("xmlAttr".equals(codeString)) + return PropertyRepresentation.XMLATTR; + throw new IllegalArgumentException("Unknown PropertyRepresentation code '"+codeString+"'"); + } + public String toCode(PropertyRepresentation code) { + if (code == PropertyRepresentation.XMLATTR) + return "xmlAttr"; + return "?"; + } + } + + public enum ResourceSlicingRules { + /** + * No additional content is allowed other than that described by the slices in this profile. + */ + CLOSED, + /** + * Additional content is allowed anywhere in the list. + */ + OPEN, + /** + * Additional content is allowed, but only at the end of the list. + */ + OPENATEND, + /** + * added to help the parsers + */ + NULL; + public static ResourceSlicingRules fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("closed".equals(codeString)) + return CLOSED; + if ("open".equals(codeString)) + return OPEN; + if ("openAtEnd".equals(codeString)) + return OPENATEND; + throw new Exception("Unknown ResourceSlicingRules code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case CLOSED: return "closed"; + case OPEN: return "open"; + case OPENATEND: return "openAtEnd"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case CLOSED: return ""; + case OPEN: return ""; + case OPENATEND: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case CLOSED: return "No additional content is allowed other than that described by the slices in this profile."; + case OPEN: return "Additional content is allowed anywhere in the list."; + case OPENATEND: return "Additional content is allowed, but only at the end of the list."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case CLOSED: return "closed"; + case OPEN: return "open"; + case OPENATEND: return "openAtEnd"; + default: return "?"; + } + } + } + + public static class ResourceSlicingRulesEnumFactory implements EnumFactory { + public ResourceSlicingRules fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("closed".equals(codeString)) + return ResourceSlicingRules.CLOSED; + if ("open".equals(codeString)) + return ResourceSlicingRules.OPEN; + if ("openAtEnd".equals(codeString)) + return ResourceSlicingRules.OPENATEND; + throw new IllegalArgumentException("Unknown ResourceSlicingRules code '"+codeString+"'"); + } + public String toCode(ResourceSlicingRules code) { + if (code == ResourceSlicingRules.CLOSED) + return "closed"; + if (code == ResourceSlicingRules.OPEN) + return "open"; + if (code == ResourceSlicingRules.OPENATEND) + return "openAtEnd"; + return "?"; + } + } + + public enum ResourceAggregationMode { + /** + * The reference is a local reference to a contained resource. + */ + CONTAINED, + /** + * The reference to a resource that has to be resolved externally to the resource that includes the reference. + */ + REFERENCED, + /** + * The resource the reference points to will be found in the same bundle as the resource that includes the reference. + */ + BUNDLED, + /** + * added to help the parsers + */ + NULL; + public static ResourceAggregationMode fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("contained".equals(codeString)) + return CONTAINED; + if ("referenced".equals(codeString)) + return REFERENCED; + if ("bundled".equals(codeString)) + return BUNDLED; + throw new Exception("Unknown ResourceAggregationMode code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case CONTAINED: return "contained"; + case REFERENCED: return "referenced"; + case BUNDLED: return "bundled"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case CONTAINED: return ""; + case REFERENCED: return ""; + case BUNDLED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case CONTAINED: return "The reference is a local reference to a contained resource."; + case REFERENCED: return "The reference to a resource that has to be resolved externally to the resource that includes the reference."; + case BUNDLED: return "The resource the reference points to will be found in the same bundle as the resource that includes the reference."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case CONTAINED: return "contained"; + case REFERENCED: return "referenced"; + case BUNDLED: return "bundled"; + default: return "?"; + } + } + } + + public static class ResourceAggregationModeEnumFactory implements EnumFactory { + public ResourceAggregationMode fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("contained".equals(codeString)) + return ResourceAggregationMode.CONTAINED; + if ("referenced".equals(codeString)) + return ResourceAggregationMode.REFERENCED; + if ("bundled".equals(codeString)) + return ResourceAggregationMode.BUNDLED; + throw new IllegalArgumentException("Unknown ResourceAggregationMode code '"+codeString+"'"); + } + public String toCode(ResourceAggregationMode code) { + if (code == ResourceAggregationMode.CONTAINED) + return "contained"; + if (code == ResourceAggregationMode.REFERENCED) + return "referenced"; + if (code == ResourceAggregationMode.BUNDLED) + return "bundled"; + return "?"; + } + } + + public enum ConstraintSeverity { + /** + * If the constraint is violated, the resource is not conformant. + */ + ERROR, + /** + * If the constraint is violated, the resource is conformant, but it is not necessarily following best practice. + */ + WARNING, + /** + * added to help the parsers + */ + NULL; + public static ConstraintSeverity fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("error".equals(codeString)) + return ERROR; + if ("warning".equals(codeString)) + return WARNING; + throw new Exception("Unknown ConstraintSeverity code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case ERROR: return "error"; + case WARNING: return "warning"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case ERROR: return ""; + case WARNING: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case ERROR: return "If the constraint is violated, the resource is not conformant."; + case WARNING: return "If the constraint is violated, the resource is conformant, but it is not necessarily following best practice."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case ERROR: return "error"; + case WARNING: return "warning"; + default: return "?"; + } + } + } + + public static class ConstraintSeverityEnumFactory implements EnumFactory { + public ConstraintSeverity fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("error".equals(codeString)) + return ConstraintSeverity.ERROR; + if ("warning".equals(codeString)) + return ConstraintSeverity.WARNING; + throw new IllegalArgumentException("Unknown ConstraintSeverity code '"+codeString+"'"); + } + public String toCode(ConstraintSeverity code) { + if (code == ConstraintSeverity.ERROR) + return "error"; + if (code == ConstraintSeverity.WARNING) + return "warning"; + return "?"; + } + } + + public enum BindingConformance { + /** + * Only codes in the specified set are allowed. If the binding is extensible, other codes may be used for concepts not covered by the bound set of codes. + */ + REQUIRED, + /** + * For greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in derived profiles and implementations if necessary without being considered non-conformant. + */ + PREFERRED, + /** + * The codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use nor any assertion that the provided values are sufficient to meet implementation needs. + */ + EXAMPLE, + /** + * added to help the parsers + */ + NULL; + public static BindingConformance fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("required".equals(codeString)) + return REQUIRED; + if ("preferred".equals(codeString)) + return PREFERRED; + if ("example".equals(codeString)) + return EXAMPLE; + throw new Exception("Unknown BindingConformance code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case REQUIRED: return "required"; + case PREFERRED: return "preferred"; + case EXAMPLE: return "example"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case REQUIRED: return ""; + case PREFERRED: return ""; + case EXAMPLE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case REQUIRED: return "Only codes in the specified set are allowed. If the binding is extensible, other codes may be used for concepts not covered by the bound set of codes."; + case PREFERRED: return "For greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in derived profiles and implementations if necessary without being considered non-conformant."; + case EXAMPLE: return "The codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use nor any assertion that the provided values are sufficient to meet implementation needs."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case REQUIRED: return "required"; + case PREFERRED: return "preferred"; + case EXAMPLE: return "example"; + default: return "?"; + } + } + } + + public static class BindingConformanceEnumFactory implements EnumFactory { + public BindingConformance fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("required".equals(codeString)) + return BindingConformance.REQUIRED; + if ("preferred".equals(codeString)) + return BindingConformance.PREFERRED; + if ("example".equals(codeString)) + return BindingConformance.EXAMPLE; + throw new IllegalArgumentException("Unknown BindingConformance code '"+codeString+"'"); + } + public String toCode(BindingConformance code) { + if (code == BindingConformance.REQUIRED) + return "required"; + if (code == BindingConformance.PREFERRED) + return "preferred"; + if (code == BindingConformance.EXAMPLE) + return "example"; + return "?"; + } + } + + @Block + public static class ElementDefinitionSlicingComponent extends Element implements IDatatypeElement { + /** + * Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices. + */ + @Child(name="discriminator", type={StringType.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Element values that used to distinguish the slices", formalDefinition="Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices." ) + protected List discriminator; + + /** + * A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated. + */ + @Child(name="description", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Text description of how slicing works (or not)", formalDefinition="A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated." ) + protected StringType description; + + /** + * If the matching elements have to occur in the same order as defined in the profile. + */ + @Child(name="ordered", type={BooleanType.class}, order=3, min=0, max=1) + @Description(shortDefinition="If elements must be in same order as slices", formalDefinition="If the matching elements have to occur in the same order as defined in the profile." ) + protected BooleanType ordered; + + /** + * Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end. + */ + @Child(name="rules", type={CodeType.class}, order=4, min=1, max=1) + @Description(shortDefinition="closed | open | openAtEnd", formalDefinition="Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end." ) + protected Enumeration rules; + + private static final long serialVersionUID = -321298491L; + + public ElementDefinitionSlicingComponent() { + super(); + } + + public ElementDefinitionSlicingComponent(Enumeration rules) { + super(); + this.rules = rules; + } + + /** + * @return {@link #discriminator} (Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.) + */ + public List getDiscriminator() { + if (this.discriminator == null) + this.discriminator = new ArrayList(); + return this.discriminator; + } + + public boolean hasDiscriminator() { + if (this.discriminator == null) + return false; + for (StringType item : this.discriminator) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #discriminator} (Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.) + */ + // syntactic sugar + public StringType addDiscriminatorElement() {//2 + StringType t = new StringType(); + if (this.discriminator == null) + this.discriminator = new ArrayList(); + this.discriminator.add(t); + return t; + } + + /** + * @param value {@link #discriminator} (Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.) + */ + public ElementDefinitionSlicingComponent addDiscriminator(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.discriminator == null) + this.discriminator = new ArrayList(); + this.discriminator.add(t); + return this; + } + + /** + * @param value {@link #discriminator} (Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.) + */ + public boolean hasDiscriminator(String value) { + if (this.discriminator == null) + return false; + for (StringType v : this.discriminator) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #description} (A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionSlicingComponent.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public ElementDefinitionSlicingComponent setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated. + */ + public ElementDefinitionSlicingComponent setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #ordered} (If the matching elements have to occur in the same order as defined in the profile.). This is the underlying object with id, value and extensions. The accessor "getOrdered" gives direct access to the value + */ + public BooleanType getOrderedElement() { + if (this.ordered == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionSlicingComponent.ordered"); + else if (Configuration.doAutoCreate()) + this.ordered = new BooleanType(); // bb + return this.ordered; + } + + public boolean hasOrderedElement() { + return this.ordered != null && !this.ordered.isEmpty(); + } + + public boolean hasOrdered() { + return this.ordered != null && !this.ordered.isEmpty(); + } + + /** + * @param value {@link #ordered} (If the matching elements have to occur in the same order as defined in the profile.). This is the underlying object with id, value and extensions. The accessor "getOrdered" gives direct access to the value + */ + public ElementDefinitionSlicingComponent setOrderedElement(BooleanType value) { + this.ordered = value; + return this; + } + + /** + * @return If the matching elements have to occur in the same order as defined in the profile. + */ + public boolean getOrdered() { + return this.ordered == null ? false : this.ordered.getValue(); + } + + /** + * @param value If the matching elements have to occur in the same order as defined in the profile. + */ + public ElementDefinitionSlicingComponent setOrdered(boolean value) { + if (this.ordered == null) + this.ordered = new BooleanType(); + this.ordered.setValue(value); + return this; + } + + /** + * @return {@link #rules} (Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end.). This is the underlying object with id, value and extensions. The accessor "getRules" gives direct access to the value + */ + public Enumeration getRulesElement() { + if (this.rules == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionSlicingComponent.rules"); + else if (Configuration.doAutoCreate()) + this.rules = new Enumeration(new ResourceSlicingRulesEnumFactory()); // bb + return this.rules; + } + + public boolean hasRulesElement() { + return this.rules != null && !this.rules.isEmpty(); + } + + public boolean hasRules() { + return this.rules != null && !this.rules.isEmpty(); + } + + /** + * @param value {@link #rules} (Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end.). This is the underlying object with id, value and extensions. The accessor "getRules" gives direct access to the value + */ + public ElementDefinitionSlicingComponent setRulesElement(Enumeration value) { + this.rules = value; + return this; + } + + /** + * @return Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end. + */ + public ResourceSlicingRules getRules() { + return this.rules == null ? null : this.rules.getValue(); + } + + /** + * @param value Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end. + */ + public ElementDefinitionSlicingComponent setRules(ResourceSlicingRules value) { + if (this.rules == null) + this.rules = new Enumeration(new ResourceSlicingRulesEnumFactory()); + this.rules.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("discriminator", "string", "Designates which child elements are used to discriminate between the slices when processing an instance. If one or more discriminators are provided, the value of the child elements in the instance data SHALL completely distinguish which slice the element in the resource matches based on the allowed values for those elements in each of the slices.", 0, java.lang.Integer.MAX_VALUE, discriminator)); + childrenList.add(new Property("description", "string", "A human-readable text description of how the slicing works. If there is no discriminator, this is required to be present to provide whatever information is possible about how the slices can be differentiated.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("ordered", "boolean", "If the matching elements have to occur in the same order as defined in the profile.", 0, java.lang.Integer.MAX_VALUE, ordered)); + childrenList.add(new Property("rules", "code", "Whether additional slices are allowed or not. When the slices are ordered, profile authors can also say that additional slices are only allowed at the end.", 0, java.lang.Integer.MAX_VALUE, rules)); + } + + public ElementDefinitionSlicingComponent copy() { + ElementDefinitionSlicingComponent dst = new ElementDefinitionSlicingComponent(); + copyValues(dst); + if (discriminator != null) { + dst.discriminator = new ArrayList(); + for (StringType i : discriminator) + dst.discriminator.add(i.copy()); + }; + dst.description = description == null ? null : description.copy(); + dst.ordered = ordered == null ? null : ordered.copy(); + dst.rules = rules == null ? null : rules.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ElementDefinitionSlicingComponent)) + return false; + ElementDefinitionSlicingComponent o = (ElementDefinitionSlicingComponent) other; + return compareDeep(discriminator, o.discriminator, true) && compareDeep(description, o.description, true) + && compareDeep(ordered, o.ordered, true) && compareDeep(rules, o.rules, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ElementDefinitionSlicingComponent)) + return false; + ElementDefinitionSlicingComponent o = (ElementDefinitionSlicingComponent) other; + return compareValues(discriminator, o.discriminator, true) && compareValues(description, o.description, true) + && compareValues(ordered, o.ordered, true) && compareValues(rules, o.rules, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (discriminator == null || discriminator.isEmpty()) && (description == null || description.isEmpty()) + && (ordered == null || ordered.isEmpty()) && (rules == null || rules.isEmpty()); + } + + } + + @Block + public static class TypeRefComponent extends Element implements IDatatypeElement { + /** + * Name of Data type or Resource that is a(or the) type used for this element. + */ + @Child(name="code", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Name of Data type or Resource", formalDefinition="Name of Data type or Resource that is a(or the) type used for this element." ) + protected CodeType code; + + /** + * Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. + */ + @Child(name="profile", type={UriType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Profile.structure to apply", formalDefinition="Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile." ) + protected UriType profile; + + /** + * If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle. + */ + @Child(name="aggregation", type={CodeType.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="contained | referenced | bundled - how aggregated", formalDefinition="If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle." ) + protected List> aggregation; + + private static final long serialVersionUID = -1527133887L; + + public TypeRefComponent() { + super(); + } + + public TypeRefComponent(CodeType code) { + super(); + this.code = code; + } + + /** + * @return {@link #code} (Name of Data type or Resource that is a(or the) type used for this element.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public CodeType getCodeElement() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create TypeRefComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeType(); // bb + return this.code; + } + + public boolean hasCodeElement() { + return this.code != null && !this.code.isEmpty(); + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Name of Data type or Resource that is a(or the) type used for this element.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value + */ + public TypeRefComponent setCodeElement(CodeType value) { + this.code = value; + return this; + } + + /** + * @return Name of Data type or Resource that is a(or the) type used for this element. + */ + public String getCode() { + return this.code == null ? null : this.code.getValue(); + } + + /** + * @param value Name of Data type or Resource that is a(or the) type used for this element. + */ + public TypeRefComponent setCode(String value) { + if (this.code == null) + this.code = new CodeType(); + this.code.setValue(value); + return this; + } + + /** + * @return {@link #profile} (Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile.). This is the underlying object with id, value and extensions. The accessor "getProfile" gives direct access to the value + */ + public UriType getProfileElement() { + if (this.profile == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create TypeRefComponent.profile"); + else if (Configuration.doAutoCreate()) + this.profile = new UriType(); // bb + return this.profile; + } + + public boolean hasProfileElement() { + return this.profile != null && !this.profile.isEmpty(); + } + + public boolean hasProfile() { + return this.profile != null && !this.profile.isEmpty(); + } + + /** + * @param value {@link #profile} (Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile.). This is the underlying object with id, value and extensions. The accessor "getProfile" gives direct access to the value + */ + public TypeRefComponent setProfileElement(UriType value) { + this.profile = value; + return this; + } + + /** + * @return Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. + */ + public String getProfile() { + return this.profile == null ? null : this.profile.getValue(); + } + + /** + * @param value Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile. + */ + public TypeRefComponent setProfile(String value) { + if (Utilities.noString(value)) + this.profile = null; + else { + if (this.profile == null) + this.profile = new UriType(); + this.profile.setValue(value); + } + return this; + } + + /** + * @return {@link #aggregation} (If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle.) + */ + public List> getAggregation() { + if (this.aggregation == null) + this.aggregation = new ArrayList>(); + return this.aggregation; + } + + public boolean hasAggregation() { + if (this.aggregation == null) + return false; + for (Enumeration item : this.aggregation) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #aggregation} (If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle.) + */ + // syntactic sugar + public Enumeration addAggregationElement() {//2 + Enumeration t = new Enumeration(new ResourceAggregationModeEnumFactory()); + if (this.aggregation == null) + this.aggregation = new ArrayList>(); + this.aggregation.add(t); + return t; + } + + /** + * @param value {@link #aggregation} (If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle.) + */ + public TypeRefComponent addAggregation(ResourceAggregationMode value) { //1 + Enumeration t = new Enumeration(new ResourceAggregationModeEnumFactory()); + t.setValue(value); + if (this.aggregation == null) + this.aggregation = new ArrayList>(); + this.aggregation.add(t); + return this; + } + + /** + * @param value {@link #aggregation} (If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle.) + */ + public boolean hasAggregation(ResourceAggregationMode value) { + if (this.aggregation == null) + return false; + for (Enumeration v : this.aggregation) + if (v.equals(value)) // code + return true; + return false; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "code", "Name of Data type or Resource that is a(or the) type used for this element.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("profile", "uri", "Identifies a profile structure that SHALL hold for resources or datatypes referenced as the type of this element. Can be a local reference - to another structure in this profile, or a reference to a structure in another profile.", 0, java.lang.Integer.MAX_VALUE, profile)); + childrenList.add(new Property("aggregation", "code", "If the type is a reference to another resource, how the resource is or can be aggreated - is it a contained resource, or a reference, and if the context is a bundle, is it included in the bundle.", 0, java.lang.Integer.MAX_VALUE, aggregation)); + } + + public TypeRefComponent copy() { + TypeRefComponent dst = new TypeRefComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.profile = profile == null ? null : profile.copy(); + if (aggregation != null) { + dst.aggregation = new ArrayList>(); + for (Enumeration i : aggregation) + dst.aggregation.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof TypeRefComponent)) + return false; + TypeRefComponent o = (TypeRefComponent) other; + return compareDeep(code, o.code, true) && compareDeep(profile, o.profile, true) && compareDeep(aggregation, o.aggregation, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof TypeRefComponent)) + return false; + TypeRefComponent o = (TypeRefComponent) other; + return compareValues(code, o.code, true) && compareValues(profile, o.profile, true) && compareValues(aggregation, o.aggregation, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (profile == null || profile.isEmpty()) + && (aggregation == null || aggregation.isEmpty()); + } + + } + + @Block + public static class ElementDefinitionConstraintComponent extends Element implements IDatatypeElement { + /** + * Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality. + */ + @Child(name="key", type={IdType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Target of 'condition' reference above", formalDefinition="Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality." ) + protected IdType key; + + /** + * Used to label the constraint in OCL or in short displays incapable of displaying the full human description. + */ + @Child(name="name", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Short human label", formalDefinition="Used to label the constraint in OCL or in short displays incapable of displaying the full human description." ) + protected StringType name; + + /** + * Identifies the impact constraint violation has on the conformance of the instance. + */ + @Child(name="severity", type={CodeType.class}, order=3, min=1, max=1) + @Description(shortDefinition="error | warning", formalDefinition="Identifies the impact constraint violation has on the conformance of the instance." ) + protected Enumeration severity; + + /** + * Text that can be used to describe the constraint in messages identifying that the constraint has been violated. + */ + @Child(name="human", type={StringType.class}, order=4, min=1, max=1) + @Description(shortDefinition="Human description of constraint", formalDefinition="Text that can be used to describe the constraint in messages identifying that the constraint has been violated." ) + protected StringType human; + + /** + * An XPath expression of constraint that can be executed to see if this constraint is met. + */ + @Child(name="xpath", type={StringType.class}, order=5, min=1, max=1) + @Description(shortDefinition="XPath expression of constraint", formalDefinition="An XPath expression of constraint that can be executed to see if this constraint is met." ) + protected StringType xpath; + + private static final long serialVersionUID = -1195616532L; + + public ElementDefinitionConstraintComponent() { + super(); + } + + public ElementDefinitionConstraintComponent(IdType key, Enumeration severity, StringType human, StringType xpath) { + super(); + this.key = key; + this.severity = severity; + this.human = human; + this.xpath = xpath; + } + + /** + * @return {@link #key} (Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality.). This is the underlying object with id, value and extensions. The accessor "getKey" gives direct access to the value + */ + public IdType getKeyElement() { + if (this.key == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionConstraintComponent.key"); + else if (Configuration.doAutoCreate()) + this.key = new IdType(); // bb + return this.key; + } + + public boolean hasKeyElement() { + return this.key != null && !this.key.isEmpty(); + } + + public boolean hasKey() { + return this.key != null && !this.key.isEmpty(); + } + + /** + * @param value {@link #key} (Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality.). This is the underlying object with id, value and extensions. The accessor "getKey" gives direct access to the value + */ + public ElementDefinitionConstraintComponent setKeyElement(IdType value) { + this.key = value; + return this; + } + + /** + * @return Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality. + */ + public String getKey() { + return this.key == null ? null : this.key.getValue(); + } + + /** + * @param value Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality. + */ + public ElementDefinitionConstraintComponent setKey(String value) { + if (this.key == null) + this.key = new IdType(); + this.key.setValue(value); + return this; + } + + /** + * @return {@link #name} (Used to label the constraint in OCL or in short displays incapable of displaying the full human description.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionConstraintComponent.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (Used to label the constraint in OCL or in short displays incapable of displaying the full human description.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public ElementDefinitionConstraintComponent setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return Used to label the constraint in OCL or in short displays incapable of displaying the full human description. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value Used to label the constraint in OCL or in short displays incapable of displaying the full human description. + */ + public ElementDefinitionConstraintComponent setName(String value) { + if (Utilities.noString(value)) + this.name = null; + else { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + } + return this; + } + + /** + * @return {@link #severity} (Identifies the impact constraint violation has on the conformance of the instance.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value + */ + public Enumeration getSeverityElement() { + if (this.severity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionConstraintComponent.severity"); + else if (Configuration.doAutoCreate()) + this.severity = new Enumeration(new ConstraintSeverityEnumFactory()); // bb + return this.severity; + } + + public boolean hasSeverityElement() { + return this.severity != null && !this.severity.isEmpty(); + } + + public boolean hasSeverity() { + return this.severity != null && !this.severity.isEmpty(); + } + + /** + * @param value {@link #severity} (Identifies the impact constraint violation has on the conformance of the instance.). This is the underlying object with id, value and extensions. The accessor "getSeverity" gives direct access to the value + */ + public ElementDefinitionConstraintComponent setSeverityElement(Enumeration value) { + this.severity = value; + return this; + } + + /** + * @return Identifies the impact constraint violation has on the conformance of the instance. + */ + public ConstraintSeverity getSeverity() { + return this.severity == null ? null : this.severity.getValue(); + } + + /** + * @param value Identifies the impact constraint violation has on the conformance of the instance. + */ + public ElementDefinitionConstraintComponent setSeverity(ConstraintSeverity value) { + if (this.severity == null) + this.severity = new Enumeration(new ConstraintSeverityEnumFactory()); + this.severity.setValue(value); + return this; + } + + /** + * @return {@link #human} (Text that can be used to describe the constraint in messages identifying that the constraint has been violated.). This is the underlying object with id, value and extensions. The accessor "getHuman" gives direct access to the value + */ + public StringType getHumanElement() { + if (this.human == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionConstraintComponent.human"); + else if (Configuration.doAutoCreate()) + this.human = new StringType(); // bb + return this.human; + } + + public boolean hasHumanElement() { + return this.human != null && !this.human.isEmpty(); + } + + public boolean hasHuman() { + return this.human != null && !this.human.isEmpty(); + } + + /** + * @param value {@link #human} (Text that can be used to describe the constraint in messages identifying that the constraint has been violated.). This is the underlying object with id, value and extensions. The accessor "getHuman" gives direct access to the value + */ + public ElementDefinitionConstraintComponent setHumanElement(StringType value) { + this.human = value; + return this; + } + + /** + * @return Text that can be used to describe the constraint in messages identifying that the constraint has been violated. + */ + public String getHuman() { + return this.human == null ? null : this.human.getValue(); + } + + /** + * @param value Text that can be used to describe the constraint in messages identifying that the constraint has been violated. + */ + public ElementDefinitionConstraintComponent setHuman(String value) { + if (this.human == null) + this.human = new StringType(); + this.human.setValue(value); + return this; + } + + /** + * @return {@link #xpath} (An XPath expression of constraint that can be executed to see if this constraint is met.). This is the underlying object with id, value and extensions. The accessor "getXpath" gives direct access to the value + */ + public StringType getXpathElement() { + if (this.xpath == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionConstraintComponent.xpath"); + else if (Configuration.doAutoCreate()) + this.xpath = new StringType(); // bb + return this.xpath; + } + + public boolean hasXpathElement() { + return this.xpath != null && !this.xpath.isEmpty(); + } + + public boolean hasXpath() { + return this.xpath != null && !this.xpath.isEmpty(); + } + + /** + * @param value {@link #xpath} (An XPath expression of constraint that can be executed to see if this constraint is met.). This is the underlying object with id, value and extensions. The accessor "getXpath" gives direct access to the value + */ + public ElementDefinitionConstraintComponent setXpathElement(StringType value) { + this.xpath = value; + return this; + } + + /** + * @return An XPath expression of constraint that can be executed to see if this constraint is met. + */ + public String getXpath() { + return this.xpath == null ? null : this.xpath.getValue(); + } + + /** + * @param value An XPath expression of constraint that can be executed to see if this constraint is met. + */ + public ElementDefinitionConstraintComponent setXpath(String value) { + if (this.xpath == null) + this.xpath = new StringType(); + this.xpath.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("key", "id", "Allows identification of which elements have their cardinalities impacted by the constraint. Will not be referenced for constraints that do not affect cardinality.", 0, java.lang.Integer.MAX_VALUE, key)); + childrenList.add(new Property("name", "string", "Used to label the constraint in OCL or in short displays incapable of displaying the full human description.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("severity", "code", "Identifies the impact constraint violation has on the conformance of the instance.", 0, java.lang.Integer.MAX_VALUE, severity)); + childrenList.add(new Property("human", "string", "Text that can be used to describe the constraint in messages identifying that the constraint has been violated.", 0, java.lang.Integer.MAX_VALUE, human)); + childrenList.add(new Property("xpath", "string", "An XPath expression of constraint that can be executed to see if this constraint is met.", 0, java.lang.Integer.MAX_VALUE, xpath)); + } + + public ElementDefinitionConstraintComponent copy() { + ElementDefinitionConstraintComponent dst = new ElementDefinitionConstraintComponent(); + copyValues(dst); + dst.key = key == null ? null : key.copy(); + dst.name = name == null ? null : name.copy(); + dst.severity = severity == null ? null : severity.copy(); + dst.human = human == null ? null : human.copy(); + dst.xpath = xpath == null ? null : xpath.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ElementDefinitionConstraintComponent)) + return false; + ElementDefinitionConstraintComponent o = (ElementDefinitionConstraintComponent) other; + return compareDeep(key, o.key, true) && compareDeep(name, o.name, true) && compareDeep(severity, o.severity, true) + && compareDeep(human, o.human, true) && compareDeep(xpath, o.xpath, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ElementDefinitionConstraintComponent)) + return false; + ElementDefinitionConstraintComponent o = (ElementDefinitionConstraintComponent) other; + return compareValues(key, o.key, true) && compareValues(name, o.name, true) && compareValues(severity, o.severity, true) + && compareValues(human, o.human, true) && compareValues(xpath, o.xpath, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (key == null || key.isEmpty()) && (name == null || name.isEmpty()) + && (severity == null || severity.isEmpty()) && (human == null || human.isEmpty()) && (xpath == null || xpath.isEmpty()) + ; + } + + } + + @Block + public static class ElementDefinitionBindingComponent extends Element implements IDatatypeElement { + /** + * A descriptive name for this - can be useful for generating implementation artifacts. + */ + @Child(name="name", type={StringType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Descriptive Name", formalDefinition="A descriptive name for this - can be useful for generating implementation artifacts." ) + protected StringType name; + + /** + * If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone. + */ + @Child(name="isExtensible", type={BooleanType.class}, order=2, min=1, max=1) + @Description(shortDefinition="Can additional codes be used?", formalDefinition="If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone." ) + protected BooleanType isExtensible; + + /** + * Indicates the degree of conformance expectations associated with this binding. + */ + @Child(name="conformance", type={CodeType.class}, order=3, min=0, max=1) + @Description(shortDefinition="required | preferred | example", formalDefinition="Indicates the degree of conformance expectations associated with this binding." ) + protected Enumeration conformance; + + /** + * Describes the intended use of this particular set of codes. + */ + @Child(name="description", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Human explanation of the value set", formalDefinition="Describes the intended use of this particular set of codes." ) + protected StringType description; + + /** + * Points to the value set or external definition that identifies the set of codes to be used. + */ + @Child(name="reference", type={UriType.class, ValueSet.class}, order=5, min=0, max=1) + @Description(shortDefinition="Source of value set", formalDefinition="Points to the value set or external definition that identifies the set of codes to be used." ) + protected Type reference; + + private static final long serialVersionUID = 1041151319L; + + public ElementDefinitionBindingComponent() { + super(); + } + + public ElementDefinitionBindingComponent(StringType name, BooleanType isExtensible) { + super(); + this.name = name; + this.isExtensible = isExtensible; + } + + /** + * @return {@link #name} (A descriptive name for this - can be useful for generating implementation artifacts.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionBindingComponent.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (A descriptive name for this - can be useful for generating implementation artifacts.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public ElementDefinitionBindingComponent setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return A descriptive name for this - can be useful for generating implementation artifacts. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value A descriptive name for this - can be useful for generating implementation artifacts. + */ + public ElementDefinitionBindingComponent setName(String value) { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + return this; + } + + /** + * @return {@link #isExtensible} (If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.). This is the underlying object with id, value and extensions. The accessor "getIsExtensible" gives direct access to the value + */ + public BooleanType getIsExtensibleElement() { + if (this.isExtensible == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionBindingComponent.isExtensible"); + else if (Configuration.doAutoCreate()) + this.isExtensible = new BooleanType(); // bb + return this.isExtensible; + } + + public boolean hasIsExtensibleElement() { + return this.isExtensible != null && !this.isExtensible.isEmpty(); + } + + public boolean hasIsExtensible() { + return this.isExtensible != null && !this.isExtensible.isEmpty(); + } + + /** + * @param value {@link #isExtensible} (If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.). This is the underlying object with id, value and extensions. The accessor "getIsExtensible" gives direct access to the value + */ + public ElementDefinitionBindingComponent setIsExtensibleElement(BooleanType value) { + this.isExtensible = value; + return this; + } + + /** + * @return If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone. + */ + public boolean getIsExtensible() { + return this.isExtensible == null ? false : this.isExtensible.getValue(); + } + + /** + * @param value If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone. + */ + public ElementDefinitionBindingComponent setIsExtensible(boolean value) { + if (this.isExtensible == null) + this.isExtensible = new BooleanType(); + this.isExtensible.setValue(value); + return this; + } + + /** + * @return {@link #conformance} (Indicates the degree of conformance expectations associated with this binding.). This is the underlying object with id, value and extensions. The accessor "getConformance" gives direct access to the value + */ + public Enumeration getConformanceElement() { + if (this.conformance == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionBindingComponent.conformance"); + else if (Configuration.doAutoCreate()) + this.conformance = new Enumeration(new BindingConformanceEnumFactory()); // bb + return this.conformance; + } + + public boolean hasConformanceElement() { + return this.conformance != null && !this.conformance.isEmpty(); + } + + public boolean hasConformance() { + return this.conformance != null && !this.conformance.isEmpty(); + } + + /** + * @param value {@link #conformance} (Indicates the degree of conformance expectations associated with this binding.). This is the underlying object with id, value and extensions. The accessor "getConformance" gives direct access to the value + */ + public ElementDefinitionBindingComponent setConformanceElement(Enumeration value) { + this.conformance = value; + return this; + } + + /** + * @return Indicates the degree of conformance expectations associated with this binding. + */ + public BindingConformance getConformance() { + return this.conformance == null ? null : this.conformance.getValue(); + } + + /** + * @param value Indicates the degree of conformance expectations associated with this binding. + */ + public ElementDefinitionBindingComponent setConformance(BindingConformance value) { + if (value == null) + this.conformance = null; + else { + if (this.conformance == null) + this.conformance = new Enumeration(new BindingConformanceEnumFactory()); + this.conformance.setValue(value); + } + return this; + } + + /** + * @return {@link #description} (Describes the intended use of this particular set of codes.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionBindingComponent.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Describes the intended use of this particular set of codes.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public ElementDefinitionBindingComponent setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Describes the intended use of this particular set of codes. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Describes the intended use of this particular set of codes. + */ + public ElementDefinitionBindingComponent setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #reference} (Points to the value set or external definition that identifies the set of codes to be used.) + */ + public Type getReference() { + return this.reference; + } + + /** + * @return {@link #reference} (Points to the value set or external definition that identifies the set of codes to be used.) + */ + public UriType getReferenceUriType() throws Exception { + if (!(this.reference instanceof UriType)) + throw new Exception("Type mismatch: the type UriType was expected, but "+this.reference.getClass().getName()+" was encountered"); + return (UriType) this.reference; + } + + /** + * @return {@link #reference} (Points to the value set or external definition that identifies the set of codes to be used.) + */ + public Reference getReferenceReference() throws Exception { + if (!(this.reference instanceof Reference)) + throw new Exception("Type mismatch: the type Reference was expected, but "+this.reference.getClass().getName()+" was encountered"); + return (Reference) this.reference; + } + + public boolean hasReference() { + return this.reference != null && !this.reference.isEmpty(); + } + + /** + * @param value {@link #reference} (Points to the value set or external definition that identifies the set of codes to be used.) + */ + public ElementDefinitionBindingComponent setReference(Type value) { + this.reference = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("name", "string", "A descriptive name for this - can be useful for generating implementation artifacts.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("isExtensible", "boolean", "If true, then conformant systems may use additional codes or (where the data type permits) text alone to convey concepts not covered by the set of codes identified in the binding. If false, then conformant systems are constrained to the provided codes alone.", 0, java.lang.Integer.MAX_VALUE, isExtensible)); + childrenList.add(new Property("conformance", "code", "Indicates the degree of conformance expectations associated with this binding.", 0, java.lang.Integer.MAX_VALUE, conformance)); + childrenList.add(new Property("description", "string", "Describes the intended use of this particular set of codes.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("reference[x]", "uri|Reference(ValueSet)", "Points to the value set or external definition that identifies the set of codes to be used.", 0, java.lang.Integer.MAX_VALUE, reference)); + } + + public ElementDefinitionBindingComponent copy() { + ElementDefinitionBindingComponent dst = new ElementDefinitionBindingComponent(); + copyValues(dst); + dst.name = name == null ? null : name.copy(); + dst.isExtensible = isExtensible == null ? null : isExtensible.copy(); + dst.conformance = conformance == null ? null : conformance.copy(); + dst.description = description == null ? null : description.copy(); + dst.reference = reference == null ? null : reference.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ElementDefinitionBindingComponent)) + return false; + ElementDefinitionBindingComponent o = (ElementDefinitionBindingComponent) other; + return compareDeep(name, o.name, true) && compareDeep(isExtensible, o.isExtensible, true) && compareDeep(conformance, o.conformance, true) + && compareDeep(description, o.description, true) && compareDeep(reference, o.reference, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ElementDefinitionBindingComponent)) + return false; + ElementDefinitionBindingComponent o = (ElementDefinitionBindingComponent) other; + return compareValues(name, o.name, true) && compareValues(isExtensible, o.isExtensible, true) && compareValues(conformance, o.conformance, true) + && compareValues(description, o.description, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (name == null || name.isEmpty()) && (isExtensible == null || isExtensible.isEmpty()) + && (conformance == null || conformance.isEmpty()) && (description == null || description.isEmpty()) + && (reference == null || reference.isEmpty()); + } + + } + + @Block + public static class ElementDefinitionMappingComponent extends Element implements IDatatypeElement { + /** + * An internal reference to the definition of a mapping. + */ + @Child(name="identity", type={IdType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Reference to mapping declaration", formalDefinition="An internal reference to the definition of a mapping." ) + protected IdType identity; + + /** + * Expresses what part of the target specification corresponds to this element. + */ + @Child(name="map", type={StringType.class}, order=2, min=1, max=1) + @Description(shortDefinition="Details of the mapping", formalDefinition="Expresses what part of the target specification corresponds to this element." ) + protected StringType map; + + private static final long serialVersionUID = -450627426L; + + public ElementDefinitionMappingComponent() { + super(); + } + + public ElementDefinitionMappingComponent(IdType identity, StringType map) { + super(); + this.identity = identity; + this.map = map; + } + + /** + * @return {@link #identity} (An internal reference to the definition of a mapping.). This is the underlying object with id, value and extensions. The accessor "getIdentity" gives direct access to the value + */ + public IdType getIdentityElement() { + if (this.identity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionMappingComponent.identity"); + else if (Configuration.doAutoCreate()) + this.identity = new IdType(); // bb + return this.identity; + } + + public boolean hasIdentityElement() { + return this.identity != null && !this.identity.isEmpty(); + } + + public boolean hasIdentity() { + return this.identity != null && !this.identity.isEmpty(); + } + + /** + * @param value {@link #identity} (An internal reference to the definition of a mapping.). This is the underlying object with id, value and extensions. The accessor "getIdentity" gives direct access to the value + */ + public ElementDefinitionMappingComponent setIdentityElement(IdType value) { + this.identity = value; + return this; + } + + /** + * @return An internal reference to the definition of a mapping. + */ + public String getIdentity() { + return this.identity == null ? null : this.identity.getValue(); + } + + /** + * @param value An internal reference to the definition of a mapping. + */ + public ElementDefinitionMappingComponent setIdentity(String value) { + if (this.identity == null) + this.identity = new IdType(); + this.identity.setValue(value); + return this; + } + + /** + * @return {@link #map} (Expresses what part of the target specification corresponds to this element.). This is the underlying object with id, value and extensions. The accessor "getMap" gives direct access to the value + */ + public StringType getMapElement() { + if (this.map == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinitionMappingComponent.map"); + else if (Configuration.doAutoCreate()) + this.map = new StringType(); // bb + return this.map; + } + + public boolean hasMapElement() { + return this.map != null && !this.map.isEmpty(); + } + + public boolean hasMap() { + return this.map != null && !this.map.isEmpty(); + } + + /** + * @param value {@link #map} (Expresses what part of the target specification corresponds to this element.). This is the underlying object with id, value and extensions. The accessor "getMap" gives direct access to the value + */ + public ElementDefinitionMappingComponent setMapElement(StringType value) { + this.map = value; + return this; + } + + /** + * @return Expresses what part of the target specification corresponds to this element. + */ + public String getMap() { + return this.map == null ? null : this.map.getValue(); + } + + /** + * @param value Expresses what part of the target specification corresponds to this element. + */ + public ElementDefinitionMappingComponent setMap(String value) { + if (this.map == null) + this.map = new StringType(); + this.map.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identity", "id", "An internal reference to the definition of a mapping.", 0, java.lang.Integer.MAX_VALUE, identity)); + childrenList.add(new Property("map", "string", "Expresses what part of the target specification corresponds to this element.", 0, java.lang.Integer.MAX_VALUE, map)); + } + + public ElementDefinitionMappingComponent copy() { + ElementDefinitionMappingComponent dst = new ElementDefinitionMappingComponent(); + copyValues(dst); + dst.identity = identity == null ? null : identity.copy(); + dst.map = map == null ? null : map.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ElementDefinitionMappingComponent)) + return false; + ElementDefinitionMappingComponent o = (ElementDefinitionMappingComponent) other; + return compareDeep(identity, o.identity, true) && compareDeep(map, o.map, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ElementDefinitionMappingComponent)) + return false; + ElementDefinitionMappingComponent o = (ElementDefinitionMappingComponent) other; + return compareValues(identity, o.identity, true) && compareValues(map, o.map, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identity == null || identity.isEmpty()) && (map == null || map.isEmpty()) + ; + } + + } + + /** + * The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource or extension. + */ + @Child(name="path", type={StringType.class}, order=-1, min=1, max=1) + @Description(shortDefinition="The path of the element (see the Detailed Descriptions)", formalDefinition="The path identifies the element and is expressed as a '.'-separated list of ancestor elements, beginning with the name of the resource or extension." ) + protected StringType path; + + /** + * Codes that define how this element is represented in instances, when the deviation varies from the normal case. + */ + @Child(name="representation", type={CodeType.class}, order=0, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="How this element is represented in instances", formalDefinition="Codes that define how this element is represented in instances, when the deviation varies from the normal case." ) + protected List> representation; + + /** + * The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element. + */ + @Child(name="name", type={StringType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Name for this particular element definition (reference target)", formalDefinition="The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element." ) + protected StringType name; + + /** + * Indicates that the element is sliced into a set of alternative definitions (there are multiple definitions on a single element in the base resource). The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set). + */ + @Child(name="slicing", type={}, order=2, min=0, max=1) + @Description(shortDefinition="This element is sliced - slices follow", formalDefinition="Indicates that the element is sliced into a set of alternative definitions (there are multiple definitions on a single element in the base resource). The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set)." ) + protected ElementDefinitionSlicingComponent slicing; + + /** + * A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification). + */ + @Child(name="short_", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Concise definition for xml presentation", formalDefinition="A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification)." ) + protected StringType short_; + + /** + * The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource. + */ + @Child(name="formal", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Full formal definition in human language", formalDefinition="The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource." ) + protected StringType formal; + + /** + * Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. + */ + @Child(name="comments", type={StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Comments about the use of this element", formalDefinition="Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc." ) + protected StringType comments; + + /** + * Explains why this element is needed and why it's been constrained as it has. + */ + @Child(name="requirements", type={StringType.class}, order=6, min=0, max=1) + @Description(shortDefinition="Why is this needed?", formalDefinition="Explains why this element is needed and why it's been constrained as it has." ) + protected StringType requirements; + + /** + * Identifies additional names by which this element might also be known. + */ + @Child(name="synonym", type={StringType.class}, order=7, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Other names", formalDefinition="Identifies additional names by which this element might also be known." ) + protected List synonym; + + /** + * The minimum number of times this element SHALL appear in the instance. + */ + @Child(name="min", type={IntegerType.class}, order=8, min=0, max=1) + @Description(shortDefinition="Minimum Cardinality", formalDefinition="The minimum number of times this element SHALL appear in the instance." ) + protected IntegerType min; + + /** + * The maximum number of times this element is permitted to appear in the instance. + */ + @Child(name="max", type={StringType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Maximum Cardinality (a number or *)", formalDefinition="The maximum number of times this element is permitted to appear in the instance." ) + protected StringType max; + + /** + * The data type or resource that the value of this element is permitted to be. + */ + @Child(name="type", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Data type and Profile for this element", formalDefinition="The data type or resource that the value of this element is permitted to be." ) + protected List type; + + /** + * Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element. + */ + @Child(name="nameReference", type={StringType.class}, order=11, min=0, max=1) + @Description(shortDefinition="To another element constraint (by element.name)", formalDefinition="Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element." ) + protected StringType nameReference; + + /** + * The value that should be used if there is no value stated in the instance. + */ + @Child(name="defaultValue", type={}, order=12, min=0, max=1) + @Description(shortDefinition="Specified value it missing from instance", formalDefinition="The value that should be used if there is no value stated in the instance." ) + protected org.hl7.fhir.instance.model.Type defaultValue; + + /** + * The Implicit meaning that is to be understood when this element is missing. + */ + @Child(name="meaningWhenMissing", type={StringType.class}, order=13, min=0, max=1) + @Description(shortDefinition="Implicit meaning when this element is missing", formalDefinition="The Implicit meaning that is to be understood when this element is missing." ) + protected StringType meaningWhenMissing; + + /** + * Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-signficant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing. + */ + @Child(name="fixed", type={}, order=14, min=0, max=1) + @Description(shortDefinition="Value must be exactly this", formalDefinition="Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-signficant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing." ) + protected org.hl7.fhir.instance.model.Type fixed; + + /** + * Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-senstive, accent-sensitive, etc.). + */ + @Child(name="pattern", type={}, order=15, min=0, max=1) + @Description(shortDefinition="Value must have at least these property values", formalDefinition="Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-senstive, accent-sensitive, etc.)." ) + protected org.hl7.fhir.instance.model.Type pattern; + + /** + * An example value for this element. + */ + @Child(name="example", type={}, order=16, min=0, max=1) + @Description(shortDefinition="Example value: [as defined for type]", formalDefinition="An example value for this element." ) + protected org.hl7.fhir.instance.model.Type example; + + /** + * Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element. + */ + @Child(name="maxLength", type={IntegerType.class}, order=17, min=0, max=1) + @Description(shortDefinition="Max length for strings", formalDefinition="Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element." ) + protected IntegerType maxLength; + + /** + * A reference to an invariant that may make additional statements about the cardinality or value in the instance. + */ + @Child(name="condition", type={IdType.class}, order=18, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Reference to invariant about presence", formalDefinition="A reference to an invariant that may make additional statements about the cardinality or value in the instance." ) + protected List condition; + + /** + * Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance. + */ + @Child(name="constraint", type={}, order=19, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Condition that must evaluate to true", formalDefinition="Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance." ) + protected List constraint; + + /** + * If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported. + */ + @Child(name="mustSupport", type={BooleanType.class}, order=20, min=0, max=1) + @Description(shortDefinition="If the element must supported", formalDefinition="If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported." ) + protected BooleanType mustSupport; + + /** + * If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system. + */ + @Child(name="isModifier", type={BooleanType.class}, order=21, min=0, max=1) + @Description(shortDefinition="If this modifies the meaning of other elements", formalDefinition="If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system." ) + protected BooleanType isModifier; + + /** + * Whether the element should be included if a client requests a search with the parameter _summary=true. + */ + @Child(name="isSummary", type={BooleanType.class}, order=22, min=0, max=1) + @Description(shortDefinition="Include when _summary = true?", formalDefinition="Whether the element should be included if a client requests a search with the parameter _summary=true." ) + protected BooleanType isSummary; + + /** + * Binds to a value set if this element is coded (code, Coding, CodeableConcept). + */ + @Child(name="binding", type={}, order=23, min=0, max=1) + @Description(shortDefinition="ValueSet details if this is coded", formalDefinition="Binds to a value set if this element is coded (code, Coding, CodeableConcept)." ) + protected ElementDefinitionBindingComponent binding; + + /** + * Identifies a concept from an external specification that roughly corresponds to this element. + */ + @Child(name="mapping", type={}, order=24, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Map element to another set of definitions", formalDefinition="Identifies a concept from an external specification that roughly corresponds to this element." ) + protected List mapping; + + private static final long serialVersionUID = 2094512467L; + + public ElementDefinition() { + super(); + } + + public ElementDefinition(StringType path) { + super(); + this.path = path; + } + + /** + * @return {@link #path} (The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource or extension.). This is the underlying object with id, value and extensions. The accessor "getPath" gives direct access to the value + */ + public StringType getPathElement() { + if (this.path == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.path"); + else if (Configuration.doAutoCreate()) + this.path = new StringType(); // bb + return this.path; + } + + public boolean hasPathElement() { + return this.path != null && !this.path.isEmpty(); + } + + public boolean hasPath() { + return this.path != null && !this.path.isEmpty(); + } + + /** + * @param value {@link #path} (The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource or extension.). This is the underlying object with id, value and extensions. The accessor "getPath" gives direct access to the value + */ + public ElementDefinition setPathElement(StringType value) { + this.path = value; + return this; + } + + /** + * @return The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource or extension. + */ + public String getPath() { + return this.path == null ? null : this.path.getValue(); + } + + /** + * @param value The path identifies the element and is expressed as a "."-separated list of ancestor elements, beginning with the name of the resource or extension. + */ + public ElementDefinition setPath(String value) { + if (this.path == null) + this.path = new StringType(); + this.path.setValue(value); + return this; + } + + /** + * @return {@link #representation} (Codes that define how this element is represented in instances, when the deviation varies from the normal case.) + */ + public List> getRepresentation() { + if (this.representation == null) + this.representation = new ArrayList>(); + return this.representation; + } + + public boolean hasRepresentation() { + if (this.representation == null) + return false; + for (Enumeration item : this.representation) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #representation} (Codes that define how this element is represented in instances, when the deviation varies from the normal case.) + */ + // syntactic sugar + public Enumeration addRepresentationElement() {//2 + Enumeration t = new Enumeration(new PropertyRepresentationEnumFactory()); + if (this.representation == null) + this.representation = new ArrayList>(); + this.representation.add(t); + return t; + } + + /** + * @param value {@link #representation} (Codes that define how this element is represented in instances, when the deviation varies from the normal case.) + */ + public ElementDefinition addRepresentation(PropertyRepresentation value) { //1 + Enumeration t = new Enumeration(new PropertyRepresentationEnumFactory()); + t.setValue(value); + if (this.representation == null) + this.representation = new ArrayList>(); + this.representation.add(t); + return this; + } + + /** + * @param value {@link #representation} (Codes that define how this element is represented in instances, when the deviation varies from the normal case.) + */ + public boolean hasRepresentation(PropertyRepresentation value) { + if (this.representation == null) + return false; + for (Enumeration v : this.representation) + if (v.equals(value)) // code + return true; + return false; + } + + /** + * @return {@link #name} (The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public ElementDefinition setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element. + */ + public ElementDefinition setName(String value) { + if (Utilities.noString(value)) + this.name = null; + else { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + } + return this; + } + + /** + * @return {@link #slicing} (Indicates that the element is sliced into a set of alternative definitions (there are multiple definitions on a single element in the base resource). The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set).) + */ + public ElementDefinitionSlicingComponent getSlicing() { + if (this.slicing == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.slicing"); + else if (Configuration.doAutoCreate()) + this.slicing = new ElementDefinitionSlicingComponent(); // cc + return this.slicing; + } + + public boolean hasSlicing() { + return this.slicing != null && !this.slicing.isEmpty(); + } + + /** + * @param value {@link #slicing} (Indicates that the element is sliced into a set of alternative definitions (there are multiple definitions on a single element in the base resource). The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set).) + */ + public ElementDefinition setSlicing(ElementDefinitionSlicingComponent value) { + this.slicing = value; + return this; + } + + /** + * @return {@link #short_} (A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification).). This is the underlying object with id, value and extensions. The accessor "getShort" gives direct access to the value + */ + public StringType getShortElement() { + if (this.short_ == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.short_"); + else if (Configuration.doAutoCreate()) + this.short_ = new StringType(); // bb + return this.short_; + } + + public boolean hasShortElement() { + return this.short_ != null && !this.short_.isEmpty(); + } + + public boolean hasShort() { + return this.short_ != null && !this.short_.isEmpty(); + } + + /** + * @param value {@link #short_} (A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification).). This is the underlying object with id, value and extensions. The accessor "getShort" gives direct access to the value + */ + public ElementDefinition setShortElement(StringType value) { + this.short_ = value; + return this; + } + + /** + * @return A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification). + */ + public String getShort() { + return this.short_ == null ? null : this.short_.getValue(); + } + + /** + * @param value A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification). + */ + public ElementDefinition setShort(String value) { + if (Utilities.noString(value)) + this.short_ = null; + else { + if (this.short_ == null) + this.short_ = new StringType(); + this.short_.setValue(value); + } + return this; + } + + /** + * @return {@link #formal} (The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource.). This is the underlying object with id, value and extensions. The accessor "getFormal" gives direct access to the value + */ + public StringType getFormalElement() { + if (this.formal == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.formal"); + else if (Configuration.doAutoCreate()) + this.formal = new StringType(); // bb + return this.formal; + } + + public boolean hasFormalElement() { + return this.formal != null && !this.formal.isEmpty(); + } + + public boolean hasFormal() { + return this.formal != null && !this.formal.isEmpty(); + } + + /** + * @param value {@link #formal} (The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource.). This is the underlying object with id, value and extensions. The accessor "getFormal" gives direct access to the value + */ + public ElementDefinition setFormalElement(StringType value) { + this.formal = value; + return this; + } + + /** + * @return The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource. + */ + public String getFormal() { + return this.formal == null ? null : this.formal.getValue(); + } + + /** + * @param value The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource. + */ + public ElementDefinition setFormal(String value) { + if (Utilities.noString(value)) + this.formal = null; + else { + if (this.formal == null) + this.formal = new StringType(); + this.formal.setValue(value); + } + return this; + } + + /** + * @return {@link #comments} (Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value + */ + public StringType getCommentsElement() { + if (this.comments == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.comments"); + else if (Configuration.doAutoCreate()) + this.comments = new StringType(); // bb + return this.comments; + } + + public boolean hasCommentsElement() { + return this.comments != null && !this.comments.isEmpty(); + } + + public boolean hasComments() { + return this.comments != null && !this.comments.isEmpty(); + } + + /** + * @param value {@link #comments} (Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value + */ + public ElementDefinition setCommentsElement(StringType value) { + this.comments = value; + return this; + } + + /** + * @return Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. + */ + public String getComments() { + return this.comments == null ? null : this.comments.getValue(); + } + + /** + * @param value Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc. + */ + public ElementDefinition setComments(String value) { + if (Utilities.noString(value)) + this.comments = null; + else { + if (this.comments == null) + this.comments = new StringType(); + this.comments.setValue(value); + } + return this; + } + + /** + * @return {@link #requirements} (Explains why this element is needed and why it's been constrained as it has.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value + */ + public StringType getRequirementsElement() { + if (this.requirements == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.requirements"); + else if (Configuration.doAutoCreate()) + this.requirements = new StringType(); // bb + return this.requirements; + } + + public boolean hasRequirementsElement() { + return this.requirements != null && !this.requirements.isEmpty(); + } + + public boolean hasRequirements() { + return this.requirements != null && !this.requirements.isEmpty(); + } + + /** + * @param value {@link #requirements} (Explains why this element is needed and why it's been constrained as it has.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value + */ + public ElementDefinition setRequirementsElement(StringType value) { + this.requirements = value; + return this; + } + + /** + * @return Explains why this element is needed and why it's been constrained as it has. + */ + public String getRequirements() { + return this.requirements == null ? null : this.requirements.getValue(); + } + + /** + * @param value Explains why this element is needed and why it's been constrained as it has. + */ + public ElementDefinition setRequirements(String value) { + if (Utilities.noString(value)) + this.requirements = null; + else { + if (this.requirements == null) + this.requirements = new StringType(); + this.requirements.setValue(value); + } + return this; + } + + /** + * @return {@link #synonym} (Identifies additional names by which this element might also be known.) + */ + public List getSynonym() { + if (this.synonym == null) + this.synonym = new ArrayList(); + return this.synonym; + } + + public boolean hasSynonym() { + if (this.synonym == null) + return false; + for (StringType item : this.synonym) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #synonym} (Identifies additional names by which this element might also be known.) + */ + // syntactic sugar + public StringType addSynonymElement() {//2 + StringType t = new StringType(); + if (this.synonym == null) + this.synonym = new ArrayList(); + this.synonym.add(t); + return t; + } + + /** + * @param value {@link #synonym} (Identifies additional names by which this element might also be known.) + */ + public ElementDefinition addSynonym(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.synonym == null) + this.synonym = new ArrayList(); + this.synonym.add(t); + return this; + } + + /** + * @param value {@link #synonym} (Identifies additional names by which this element might also be known.) + */ + public boolean hasSynonym(String value) { + if (this.synonym == null) + return false; + for (StringType v : this.synonym) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #min} (The minimum number of times this element SHALL appear in the instance.). This is the underlying object with id, value and extensions. The accessor "getMin" gives direct access to the value + */ + public IntegerType getMinElement() { + if (this.min == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.min"); + else if (Configuration.doAutoCreate()) + this.min = new IntegerType(); // bb + return this.min; + } + + public boolean hasMinElement() { + return this.min != null && !this.min.isEmpty(); + } + + public boolean hasMin() { + return this.min != null && !this.min.isEmpty(); + } + + /** + * @param value {@link #min} (The minimum number of times this element SHALL appear in the instance.). This is the underlying object with id, value and extensions. The accessor "getMin" gives direct access to the value + */ + public ElementDefinition setMinElement(IntegerType value) { + this.min = value; + return this; + } + + /** + * @return The minimum number of times this element SHALL appear in the instance. + */ + public int getMin() { + return this.min == null ? 0 : this.min.getValue(); + } + + /** + * @param value The minimum number of times this element SHALL appear in the instance. + */ + public ElementDefinition setMin(int value) { + if (this.min == null) + this.min = new IntegerType(); + this.min.setValue(value); + return this; + } + + /** + * @return {@link #max} (The maximum number of times this element is permitted to appear in the instance.). This is the underlying object with id, value and extensions. The accessor "getMax" gives direct access to the value + */ + public StringType getMaxElement() { + if (this.max == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.max"); + else if (Configuration.doAutoCreate()) + this.max = new StringType(); // bb + return this.max; + } + + public boolean hasMaxElement() { + return this.max != null && !this.max.isEmpty(); + } + + public boolean hasMax() { + return this.max != null && !this.max.isEmpty(); + } + + /** + * @param value {@link #max} (The maximum number of times this element is permitted to appear in the instance.). This is the underlying object with id, value and extensions. The accessor "getMax" gives direct access to the value + */ + public ElementDefinition setMaxElement(StringType value) { + this.max = value; + return this; + } + + /** + * @return The maximum number of times this element is permitted to appear in the instance. + */ + public String getMax() { + return this.max == null ? null : this.max.getValue(); + } + + /** + * @param value The maximum number of times this element is permitted to appear in the instance. + */ + public ElementDefinition setMax(String value) { + if (Utilities.noString(value)) + this.max = null; + else { + if (this.max == null) + this.max = new StringType(); + this.max.setValue(value); + } + return this; + } + + /** + * @return {@link #type} (The data type or resource that the value of this element is permitted to be.) + */ + public List getType() { + if (this.type == null) + this.type = new ArrayList(); + return this.type; + } + + public boolean hasType() { + if (this.type == null) + return false; + for (TypeRefComponent item : this.type) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #type} (The data type or resource that the value of this element is permitted to be.) + */ + // syntactic sugar + public TypeRefComponent addType() { //3 + TypeRefComponent t = new TypeRefComponent(); + if (this.type == null) + this.type = new ArrayList(); + this.type.add(t); + return t; + } + + /** + * @return {@link #nameReference} (Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element.). This is the underlying object with id, value and extensions. The accessor "getNameReference" gives direct access to the value + */ + public StringType getNameReferenceElement() { + if (this.nameReference == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.nameReference"); + else if (Configuration.doAutoCreate()) + this.nameReference = new StringType(); // bb + return this.nameReference; + } + + public boolean hasNameReferenceElement() { + return this.nameReference != null && !this.nameReference.isEmpty(); + } + + public boolean hasNameReference() { + return this.nameReference != null && !this.nameReference.isEmpty(); + } + + /** + * @param value {@link #nameReference} (Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element.). This is the underlying object with id, value and extensions. The accessor "getNameReference" gives direct access to the value + */ + public ElementDefinition setNameReferenceElement(StringType value) { + this.nameReference = value; + return this; + } + + /** + * @return Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element. + */ + public String getNameReference() { + return this.nameReference == null ? null : this.nameReference.getValue(); + } + + /** + * @param value Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element. + */ + public ElementDefinition setNameReference(String value) { + if (Utilities.noString(value)) + this.nameReference = null; + else { + if (this.nameReference == null) + this.nameReference = new StringType(); + this.nameReference.setValue(value); + } + return this; + } + + /** + * @return {@link #defaultValue} (The value that should be used if there is no value stated in the instance.) + */ + public org.hl7.fhir.instance.model.Type getDefaultValue() { + return this.defaultValue; + } + + public boolean hasDefaultValue() { + return this.defaultValue != null && !this.defaultValue.isEmpty(); + } + + /** + * @param value {@link #defaultValue} (The value that should be used if there is no value stated in the instance.) + */ + public ElementDefinition setDefaultValue(org.hl7.fhir.instance.model.Type value) { + this.defaultValue = value; + return this; + } + + /** + * @return {@link #meaningWhenMissing} (The Implicit meaning that is to be understood when this element is missing.). This is the underlying object with id, value and extensions. The accessor "getMeaningWhenMissing" gives direct access to the value + */ + public StringType getMeaningWhenMissingElement() { + if (this.meaningWhenMissing == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.meaningWhenMissing"); + else if (Configuration.doAutoCreate()) + this.meaningWhenMissing = new StringType(); // bb + return this.meaningWhenMissing; + } + + public boolean hasMeaningWhenMissingElement() { + return this.meaningWhenMissing != null && !this.meaningWhenMissing.isEmpty(); + } + + public boolean hasMeaningWhenMissing() { + return this.meaningWhenMissing != null && !this.meaningWhenMissing.isEmpty(); + } + + /** + * @param value {@link #meaningWhenMissing} (The Implicit meaning that is to be understood when this element is missing.). This is the underlying object with id, value and extensions. The accessor "getMeaningWhenMissing" gives direct access to the value + */ + public ElementDefinition setMeaningWhenMissingElement(StringType value) { + this.meaningWhenMissing = value; + return this; + } + + /** + * @return The Implicit meaning that is to be understood when this element is missing. + */ + public String getMeaningWhenMissing() { + return this.meaningWhenMissing == null ? null : this.meaningWhenMissing.getValue(); + } + + /** + * @param value The Implicit meaning that is to be understood when this element is missing. + */ + public ElementDefinition setMeaningWhenMissing(String value) { + if (Utilities.noString(value)) + this.meaningWhenMissing = null; + else { + if (this.meaningWhenMissing == null) + this.meaningWhenMissing = new StringType(); + this.meaningWhenMissing.setValue(value); + } + return this; + } + + /** + * @return {@link #fixed} (Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-signficant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.) + */ + public org.hl7.fhir.instance.model.Type getFixed() { + return this.fixed; + } + + public boolean hasFixed() { + return this.fixed != null && !this.fixed.isEmpty(); + } + + /** + * @param value {@link #fixed} (Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-signficant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.) + */ + public ElementDefinition setFixed(org.hl7.fhir.instance.model.Type value) { + this.fixed = value; + return this; + } + + /** + * @return {@link #pattern} (Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-senstive, accent-sensitive, etc.).) + */ + public org.hl7.fhir.instance.model.Type getPattern() { + return this.pattern; + } + + public boolean hasPattern() { + return this.pattern != null && !this.pattern.isEmpty(); + } + + /** + * @param value {@link #pattern} (Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-senstive, accent-sensitive, etc.).) + */ + public ElementDefinition setPattern(org.hl7.fhir.instance.model.Type value) { + this.pattern = value; + return this; + } + + /** + * @return {@link #example} (An example value for this element.) + */ + public org.hl7.fhir.instance.model.Type getExample() { + return this.example; + } + + public boolean hasExample() { + return this.example != null && !this.example.isEmpty(); + } + + /** + * @param value {@link #example} (An example value for this element.) + */ + public ElementDefinition setExample(org.hl7.fhir.instance.model.Type value) { + this.example = value; + return this; + } + + /** + * @return {@link #maxLength} (Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element.). This is the underlying object with id, value and extensions. The accessor "getMaxLength" gives direct access to the value + */ + public IntegerType getMaxLengthElement() { + if (this.maxLength == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.maxLength"); + else if (Configuration.doAutoCreate()) + this.maxLength = new IntegerType(); // bb + return this.maxLength; + } + + public boolean hasMaxLengthElement() { + return this.maxLength != null && !this.maxLength.isEmpty(); + } + + public boolean hasMaxLength() { + return this.maxLength != null && !this.maxLength.isEmpty(); + } + + /** + * @param value {@link #maxLength} (Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element.). This is the underlying object with id, value and extensions. The accessor "getMaxLength" gives direct access to the value + */ + public ElementDefinition setMaxLengthElement(IntegerType value) { + this.maxLength = value; + return this; + } + + /** + * @return Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element. + */ + public int getMaxLength() { + return this.maxLength == null ? 0 : this.maxLength.getValue(); + } + + /** + * @param value Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element. + */ + public ElementDefinition setMaxLength(int value) { + if (this.maxLength == null) + this.maxLength = new IntegerType(); + this.maxLength.setValue(value); + return this; + } + + /** + * @return {@link #condition} (A reference to an invariant that may make additional statements about the cardinality or value in the instance.) + */ + public List getCondition() { + if (this.condition == null) + this.condition = new ArrayList(); + return this.condition; + } + + public boolean hasCondition() { + if (this.condition == null) + return false; + for (IdType item : this.condition) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #condition} (A reference to an invariant that may make additional statements about the cardinality or value in the instance.) + */ + // syntactic sugar + public IdType addConditionElement() {//2 + IdType t = new IdType(); + if (this.condition == null) + this.condition = new ArrayList(); + this.condition.add(t); + return t; + } + + /** + * @param value {@link #condition} (A reference to an invariant that may make additional statements about the cardinality or value in the instance.) + */ + public ElementDefinition addCondition(String value) { //1 + IdType t = new IdType(); + t.setValue(value); + if (this.condition == null) + this.condition = new ArrayList(); + this.condition.add(t); + return this; + } + + /** + * @param value {@link #condition} (A reference to an invariant that may make additional statements about the cardinality or value in the instance.) + */ + public boolean hasCondition(String value) { + if (this.condition == null) + return false; + for (IdType v : this.condition) + if (v.equals(value)) // id + return true; + return false; + } + + /** + * @return {@link #constraint} (Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance.) + */ + public List getConstraint() { + if (this.constraint == null) + this.constraint = new ArrayList(); + return this.constraint; + } + + public boolean hasConstraint() { + if (this.constraint == null) + return false; + for (ElementDefinitionConstraintComponent item : this.constraint) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #constraint} (Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance.) + */ + // syntactic sugar + public ElementDefinitionConstraintComponent addConstraint() { //3 + ElementDefinitionConstraintComponent t = new ElementDefinitionConstraintComponent(); + if (this.constraint == null) + this.constraint = new ArrayList(); + this.constraint.add(t); + return t; + } + + /** + * @return {@link #mustSupport} (If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported.). This is the underlying object with id, value and extensions. The accessor "getMustSupport" gives direct access to the value + */ + public BooleanType getMustSupportElement() { + if (this.mustSupport == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.mustSupport"); + else if (Configuration.doAutoCreate()) + this.mustSupport = new BooleanType(); // bb + return this.mustSupport; + } + + public boolean hasMustSupportElement() { + return this.mustSupport != null && !this.mustSupport.isEmpty(); + } + + public boolean hasMustSupport() { + return this.mustSupport != null && !this.mustSupport.isEmpty(); + } + + /** + * @param value {@link #mustSupport} (If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported.). This is the underlying object with id, value and extensions. The accessor "getMustSupport" gives direct access to the value + */ + public ElementDefinition setMustSupportElement(BooleanType value) { + this.mustSupport = value; + return this; + } + + /** + * @return If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported. + */ + public boolean getMustSupport() { + return this.mustSupport == null ? false : this.mustSupport.getValue(); + } + + /** + * @param value If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported. + */ + public ElementDefinition setMustSupport(boolean value) { + if (this.mustSupport == null) + this.mustSupport = new BooleanType(); + this.mustSupport.setValue(value); + return this; + } + + /** + * @return {@link #isModifier} (If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system.). This is the underlying object with id, value and extensions. The accessor "getIsModifier" gives direct access to the value + */ + public BooleanType getIsModifierElement() { + if (this.isModifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.isModifier"); + else if (Configuration.doAutoCreate()) + this.isModifier = new BooleanType(); // bb + return this.isModifier; + } + + public boolean hasIsModifierElement() { + return this.isModifier != null && !this.isModifier.isEmpty(); + } + + public boolean hasIsModifier() { + return this.isModifier != null && !this.isModifier.isEmpty(); + } + + /** + * @param value {@link #isModifier} (If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system.). This is the underlying object with id, value and extensions. The accessor "getIsModifier" gives direct access to the value + */ + public ElementDefinition setIsModifierElement(BooleanType value) { + this.isModifier = value; + return this; + } + + /** + * @return If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system. + */ + public boolean getIsModifier() { + return this.isModifier == null ? false : this.isModifier.getValue(); + } + + /** + * @param value If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system. + */ + public ElementDefinition setIsModifier(boolean value) { + if (this.isModifier == null) + this.isModifier = new BooleanType(); + this.isModifier.setValue(value); + return this; + } + + /** + * @return {@link #isSummary} (Whether the element should be included if a client requests a search with the parameter _summary=true.). This is the underlying object with id, value and extensions. The accessor "getIsSummary" gives direct access to the value + */ + public BooleanType getIsSummaryElement() { + if (this.isSummary == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.isSummary"); + else if (Configuration.doAutoCreate()) + this.isSummary = new BooleanType(); // bb + return this.isSummary; + } + + public boolean hasIsSummaryElement() { + return this.isSummary != null && !this.isSummary.isEmpty(); + } + + public boolean hasIsSummary() { + return this.isSummary != null && !this.isSummary.isEmpty(); + } + + /** + * @param value {@link #isSummary} (Whether the element should be included if a client requests a search with the parameter _summary=true.). This is the underlying object with id, value and extensions. The accessor "getIsSummary" gives direct access to the value + */ + public ElementDefinition setIsSummaryElement(BooleanType value) { + this.isSummary = value; + return this; + } + + /** + * @return Whether the element should be included if a client requests a search with the parameter _summary=true. + */ + public boolean getIsSummary() { + return this.isSummary == null ? false : this.isSummary.getValue(); + } + + /** + * @param value Whether the element should be included if a client requests a search with the parameter _summary=true. + */ + public ElementDefinition setIsSummary(boolean value) { + if (this.isSummary == null) + this.isSummary = new BooleanType(); + this.isSummary.setValue(value); + return this; + } + + /** + * @return {@link #binding} (Binds to a value set if this element is coded (code, Coding, CodeableConcept).) + */ + public ElementDefinitionBindingComponent getBinding() { + if (this.binding == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ElementDefinition.binding"); + else if (Configuration.doAutoCreate()) + this.binding = new ElementDefinitionBindingComponent(); // cc + return this.binding; + } + + public boolean hasBinding() { + return this.binding != null && !this.binding.isEmpty(); + } + + /** + * @param value {@link #binding} (Binds to a value set if this element is coded (code, Coding, CodeableConcept).) + */ + public ElementDefinition setBinding(ElementDefinitionBindingComponent value) { + this.binding = value; + return this; + } + + /** + * @return {@link #mapping} (Identifies a concept from an external specification that roughly corresponds to this element.) + */ + public List getMapping() { + if (this.mapping == null) + this.mapping = new ArrayList(); + return this.mapping; + } + + public boolean hasMapping() { + if (this.mapping == null) + return false; + for (ElementDefinitionMappingComponent item : this.mapping) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #mapping} (Identifies a concept from an external specification that roughly corresponds to this element.) + */ + // syntactic sugar + public ElementDefinitionMappingComponent addMapping() { //3 + ElementDefinitionMappingComponent t = new ElementDefinitionMappingComponent(); + if (this.mapping == null) + this.mapping = new ArrayList(); + this.mapping.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("path", "string", "The path identifies the element and is expressed as a '.'-separated list of ancestor elements, beginning with the name of the resource or extension.", 0, java.lang.Integer.MAX_VALUE, path)); + childrenList.add(new Property("representation", "code", "Codes that define how this element is represented in instances, when the deviation varies from the normal case.", 0, java.lang.Integer.MAX_VALUE, representation)); + childrenList.add(new Property("name", "string", "The name of this element definition (to refer to it from other element definitions using ElementDefinition.nameReference). This is a unique name referring to a specific set of constraints applied to this element. One use of this is to provide a name to different slices of the same element.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("slicing", "", "Indicates that the element is sliced into a set of alternative definitions (there are multiple definitions on a single element in the base resource). The set of slices is any elements that come after this in the element sequence that have the same path, until a shorter path occurs (the shorter path terminates the set).", 0, java.lang.Integer.MAX_VALUE, slicing)); + childrenList.add(new Property("short", "string", "A concise definition that is shown in the generated XML format that summarizes profiles (used throughout the specification).", 0, java.lang.Integer.MAX_VALUE, short_)); + childrenList.add(new Property("formal", "string", "The definition SHALL be consistent with the base definition, but convey the meaning of the element in the particular context of use of the resource.", 0, java.lang.Integer.MAX_VALUE, formal)); + childrenList.add(new Property("comments", "string", "Comments about the use of the element, including notes about how to use the data properly, exceptions to proper use, etc.", 0, java.lang.Integer.MAX_VALUE, comments)); + childrenList.add(new Property("requirements", "string", "Explains why this element is needed and why it's been constrained as it has.", 0, java.lang.Integer.MAX_VALUE, requirements)); + childrenList.add(new Property("synonym", "string", "Identifies additional names by which this element might also be known.", 0, java.lang.Integer.MAX_VALUE, synonym)); + childrenList.add(new Property("min", "integer", "The minimum number of times this element SHALL appear in the instance.", 0, java.lang.Integer.MAX_VALUE, min)); + childrenList.add(new Property("max", "string", "The maximum number of times this element is permitted to appear in the instance.", 0, java.lang.Integer.MAX_VALUE, max)); + childrenList.add(new Property("type", "", "The data type or resource that the value of this element is permitted to be.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("nameReference", "string", "Identifies the name of a slice defined elsewhere in the profile whose constraints should be applied to the current element.", 0, java.lang.Integer.MAX_VALUE, nameReference)); + childrenList.add(new Property("defaultValue[x]", "*", "The value that should be used if there is no value stated in the instance.", 0, java.lang.Integer.MAX_VALUE, defaultValue)); + childrenList.add(new Property("meaningWhenMissing", "string", "The Implicit meaning that is to be understood when this element is missing.", 0, java.lang.Integer.MAX_VALUE, meaningWhenMissing)); + childrenList.add(new Property("fixed[x]", "*", "Specifies a value that SHALL be exactly the value for this element in the instance. For purposes of comparison, non-signficant whitespace is ignored, and all values must be an exact match (case and accent sensitive). Missing elements/attributes must also be missing.", 0, java.lang.Integer.MAX_VALUE, fixed)); + childrenList.add(new Property("pattern[x]", "*", "Specifies a value that the value in the instance SHALL follow - that is, any value in the pattern must be found in the instance. Other additional values may be found too. This is effectively constraint by example. The values of elements present in the pattern must match exactly (case-senstive, accent-sensitive, etc.).", 0, java.lang.Integer.MAX_VALUE, pattern)); + childrenList.add(new Property("example[x]", "*", "An example value for this element.", 0, java.lang.Integer.MAX_VALUE, example)); + childrenList.add(new Property("maxLength", "integer", "Indicates the maximum length in characters that is permitted to be present in conformant instances and which is expected to be supported by conformant consumers that support the element.", 0, java.lang.Integer.MAX_VALUE, maxLength)); + childrenList.add(new Property("condition", "id", "A reference to an invariant that may make additional statements about the cardinality or value in the instance.", 0, java.lang.Integer.MAX_VALUE, condition)); + childrenList.add(new Property("constraint", "", "Formal constraints such as co-occurrence and other constraints that can be computationally evaluated within the context of the instance.", 0, java.lang.Integer.MAX_VALUE, constraint)); + childrenList.add(new Property("mustSupport", "boolean", "If true, conformant resource authors SHALL be capable of providing a value for the element and resource consumers SHALL be capable of extracting and doing something useful with the data element. If false, the element may be ignored and not supported.", 0, java.lang.Integer.MAX_VALUE, mustSupport)); + childrenList.add(new Property("isModifier", "boolean", "If true, the value of this element affects the interpretation of the element or resource that contains it, and the value of the element cannot be ignored. Typically, this is used for status, negation and qualification codes. The effect of this is that the element cannot be ignored by systems: they SHALL either recognize the element and process it, and/or a pre-determination has been made that it is not relevant to their particular system.", 0, java.lang.Integer.MAX_VALUE, isModifier)); + childrenList.add(new Property("isSummary", "boolean", "Whether the element should be included if a client requests a search with the parameter _summary=true.", 0, java.lang.Integer.MAX_VALUE, isSummary)); + childrenList.add(new Property("binding", "", "Binds to a value set if this element is coded (code, Coding, CodeableConcept).", 0, java.lang.Integer.MAX_VALUE, binding)); + childrenList.add(new Property("mapping", "", "Identifies a concept from an external specification that roughly corresponds to this element.", 0, java.lang.Integer.MAX_VALUE, mapping)); + } + + public ElementDefinition copy() { + ElementDefinition dst = new ElementDefinition(); + copyValues(dst); + dst.path = path == null ? null : path.copy(); + if (representation != null) { + dst.representation = new ArrayList>(); + for (Enumeration i : representation) + dst.representation.add(i.copy()); + }; + dst.name = name == null ? null : name.copy(); + dst.slicing = slicing == null ? null : slicing.copy(); + dst.short_ = short_ == null ? null : short_.copy(); + dst.formal = formal == null ? null : formal.copy(); + dst.comments = comments == null ? null : comments.copy(); + dst.requirements = requirements == null ? null : requirements.copy(); + if (synonym != null) { + dst.synonym = new ArrayList(); + for (StringType i : synonym) + dst.synonym.add(i.copy()); + }; + dst.min = min == null ? null : min.copy(); + dst.max = max == null ? null : max.copy(); + if (type != null) { + dst.type = new ArrayList(); + for (TypeRefComponent i : type) + dst.type.add(i.copy()); + }; + dst.nameReference = nameReference == null ? null : nameReference.copy(); + dst.defaultValue = defaultValue == null ? null : defaultValue.copy(); + dst.meaningWhenMissing = meaningWhenMissing == null ? null : meaningWhenMissing.copy(); + dst.fixed = fixed == null ? null : fixed.copy(); + dst.pattern = pattern == null ? null : pattern.copy(); + dst.example = example == null ? null : example.copy(); + dst.maxLength = maxLength == null ? null : maxLength.copy(); + if (condition != null) { + dst.condition = new ArrayList(); + for (IdType i : condition) + dst.condition.add(i.copy()); + }; + if (constraint != null) { + dst.constraint = new ArrayList(); + for (ElementDefinitionConstraintComponent i : constraint) + dst.constraint.add(i.copy()); + }; + dst.mustSupport = mustSupport == null ? null : mustSupport.copy(); + dst.isModifier = isModifier == null ? null : isModifier.copy(); + dst.isSummary = isSummary == null ? null : isSummary.copy(); + dst.binding = binding == null ? null : binding.copy(); + if (mapping != null) { + dst.mapping = new ArrayList(); + for (ElementDefinitionMappingComponent i : mapping) + dst.mapping.add(i.copy()); + }; + return dst; + } + + protected ElementDefinition typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ElementDefinition)) + return false; + ElementDefinition o = (ElementDefinition) other; + return compareDeep(path, o.path, true) && compareDeep(representation, o.representation, true) && compareDeep(name, o.name, true) + && compareDeep(slicing, o.slicing, true) && compareDeep(short_, o.short_, true) && compareDeep(formal, o.formal, true) + && compareDeep(comments, o.comments, true) && compareDeep(requirements, o.requirements, true) && compareDeep(synonym, o.synonym, true) + && compareDeep(min, o.min, true) && compareDeep(max, o.max, true) && compareDeep(type, o.type, true) + && compareDeep(nameReference, o.nameReference, true) && compareDeep(defaultValue, o.defaultValue, true) + && compareDeep(meaningWhenMissing, o.meaningWhenMissing, true) && compareDeep(fixed, o.fixed, true) + && compareDeep(pattern, o.pattern, true) && compareDeep(example, o.example, true) && compareDeep(maxLength, o.maxLength, true) + && compareDeep(condition, o.condition, true) && compareDeep(constraint, o.constraint, true) && compareDeep(mustSupport, o.mustSupport, true) + && compareDeep(isModifier, o.isModifier, true) && compareDeep(isSummary, o.isSummary, true) && compareDeep(binding, o.binding, true) + && compareDeep(mapping, o.mapping, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ElementDefinition)) + return false; + ElementDefinition o = (ElementDefinition) other; + return compareValues(path, o.path, true) && compareValues(representation, o.representation, true) && compareValues(name, o.name, true) + && compareValues(short_, o.short_, true) && compareValues(formal, o.formal, true) && compareValues(comments, o.comments, true) + && compareValues(requirements, o.requirements, true) && compareValues(synonym, o.synonym, true) && compareValues(min, o.min, true) + && compareValues(max, o.max, true) && compareValues(nameReference, o.nameReference, true) && compareValues(meaningWhenMissing, o.meaningWhenMissing, true) + && compareValues(maxLength, o.maxLength, true) && compareValues(condition, o.condition, true) && compareValues(mustSupport, o.mustSupport, true) + && compareValues(isModifier, o.isModifier, true) && compareValues(isSummary, o.isSummary, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (path == null || path.isEmpty()) && (representation == null || representation.isEmpty()) + && (name == null || name.isEmpty()) && (slicing == null || slicing.isEmpty()) && (short_ == null || short_.isEmpty()) + && (formal == null || formal.isEmpty()) && (comments == null || comments.isEmpty()) && (requirements == null || requirements.isEmpty()) + && (synonym == null || synonym.isEmpty()) && (min == null || min.isEmpty()) && (max == null || max.isEmpty()) + && (type == null || type.isEmpty()) && (nameReference == null || nameReference.isEmpty()) + && (defaultValue == null || defaultValue.isEmpty()) && (meaningWhenMissing == null || meaningWhenMissing.isEmpty()) + && (fixed == null || fixed.isEmpty()) && (pattern == null || pattern.isEmpty()) && (example == null || example.isEmpty()) + && (maxLength == null || maxLength.isEmpty()) && (condition == null || condition.isEmpty()) + && (constraint == null || constraint.isEmpty()) && (mustSupport == null || mustSupport.isEmpty()) + && (isModifier == null || isModifier.isEmpty()) && (isSummary == null || isSummary.isEmpty()) + && (binding == null || binding.isEmpty()) && (mapping == null || mapping.isEmpty()); + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityRequest.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..4aa5607f9285d6af1061d60bade5ad2b6794f989 GIT binary patch literal 10531 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 identifier; - - /** - * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. - */ - @Child(name="ruleset", type={Coding.class}, order=0, min=0, max=1) - @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." ) - protected Coding ruleset; - - /** - * The style (standard) and version of the original material which was converted into this resource. - */ - @Child(name="originalRuleset", type={Coding.class}, order=1, min=0, max=1) - @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) - protected Coding originalRuleset; - - /** - * The date when this resource was created. - */ - @Child(name="created", type={DateTimeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Creation date", formalDefinition="The date when this resource was created." ) - protected DateTimeType created; - - /** - * The Insurer who is target of the request. - */ - @Child(name="target", type={Organization.class}, order=3, min=0, max=1) - @Description(shortDefinition="Insurer", formalDefinition="The Insurer who is target of the request." ) - protected Reference target; - - /** - * The actual object that is the target of the reference (The Insurer who is target of the request.) - */ - protected Organization targetTarget; - - /** - * The practitioner who is responsible for the services rendered to the patient. - */ - @Child(name="provider", type={Practitioner.class}, order=4, min=0, max=1) - @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) - protected Reference provider; - - /** - * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) - */ - protected Practitioner providerTarget; - - /** - * The organization which is responsible for the services rendered to the patient. - */ - @Child(name="organization", type={Organization.class}, order=5, min=0, max=1) - @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) - protected Reference organization; - - /** - * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) - */ - protected Organization organizationTarget; - - private static final long serialVersionUID = 1836339504L; - - public EligibilityRequest() { - super(); - } - - /** - * @return {@link #identifier} (The Response Business Identifier.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (The Response Business Identifier.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) - */ - public Coding getRuleset() { - if (this.ruleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityRequest.ruleset"); - else if (Configuration.doAutoCreate()) - this.ruleset = new Coding(); - return this.ruleset; - } - - public boolean hasRuleset() { - return this.ruleset != null && !this.ruleset.isEmpty(); - } - - /** - * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) - */ - public EligibilityRequest setRuleset(Coding value) { - this.ruleset = value; - return this; - } - - /** - * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public Coding getOriginalRuleset() { - if (this.originalRuleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityRequest.originalRuleset"); - else if (Configuration.doAutoCreate()) - this.originalRuleset = new Coding(); - return this.originalRuleset; - } - - public boolean hasOriginalRuleset() { - return this.originalRuleset != null && !this.originalRuleset.isEmpty(); - } - - /** - * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public EligibilityRequest setOriginalRuleset(Coding value) { - this.originalRuleset = value; - return this; - } - - /** - * @return {@link #created} (The date when this resource was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DateTimeType getCreatedElement() { - if (this.created == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityRequest.created"); - else if (Configuration.doAutoCreate()) - this.created = new DateTimeType(); - return this.created; - } - - public boolean hasCreatedElement() { - return this.created != null && !this.created.isEmpty(); - } - - public boolean hasCreated() { - return this.created != null && !this.created.isEmpty(); - } - - /** - * @param value {@link #created} (The date when this resource was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public EligibilityRequest setCreatedElement(DateTimeType value) { - this.created = value; - return this; - } - - /** - * @return The date when this resource was created. - */ - public Date getCreated() { - return this.created == null ? null : this.created.getValue(); - } - - /** - * @param value The date when this resource was created. - */ - public EligibilityRequest setCreated(Date value) { - if (value == null) - this.created = null; - else { - if (this.created == null) - this.created = new DateTimeType(); - this.created.setValue(value); - } - return this; - } - - /** - * @return {@link #target} (The Insurer who is target of the request.) - */ - public Reference getTarget() { - if (this.target == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityRequest.target"); - else if (Configuration.doAutoCreate()) - this.target = new Reference(); - return this.target; - } - - public boolean hasTarget() { - return this.target != null && !this.target.isEmpty(); - } - - /** - * @param value {@link #target} (The Insurer who is target of the request.) - */ - public EligibilityRequest setTarget(Reference value) { - this.target = value; - return this; - } - - /** - * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who is target of the request.) - */ - public Organization getTargetTarget() { - if (this.targetTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityRequest.target"); - else if (Configuration.doAutoCreate()) - this.targetTarget = new Organization(); - return this.targetTarget; - } - - /** - * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who is target of the request.) - */ - public EligibilityRequest setTargetTarget(Organization value) { - this.targetTarget = value; - return this; - } - - /** - * @return {@link #provider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public Reference getProvider() { - if (this.provider == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityRequest.provider"); - else if (Configuration.doAutoCreate()) - this.provider = new Reference(); - return this.provider; - } - - public boolean hasProvider() { - return this.provider != null && !this.provider.isEmpty(); - } - - /** - * @param value {@link #provider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public EligibilityRequest setProvider(Reference value) { - this.provider = value; - return this; - } - - /** - * @return {@link #provider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public Practitioner getProviderTarget() { - if (this.providerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityRequest.provider"); - else if (Configuration.doAutoCreate()) - this.providerTarget = new Practitioner(); - return this.providerTarget; - } - - /** - * @param value {@link #provider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public EligibilityRequest setProviderTarget(Practitioner value) { - this.providerTarget = value; - return this; - } - - /** - * @return {@link #organization} (The organization which is responsible for the services rendered to the patient.) - */ - public Reference getOrganization() { - if (this.organization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityRequest.organization"); - else if (Configuration.doAutoCreate()) - this.organization = new Reference(); - return this.organization; - } - - public boolean hasOrganization() { - return this.organization != null && !this.organization.isEmpty(); - } - - /** - * @param value {@link #organization} (The organization which is responsible for the services rendered to the patient.) - */ - public EligibilityRequest setOrganization(Reference value) { - this.organization = value; - return this; - } - - /** - * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) - */ - public Organization getOrganizationTarget() { - if (this.organizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityRequest.organization"); - else if (Configuration.doAutoCreate()) - this.organizationTarget = new Organization(); - return this.organizationTarget; - } - - /** - * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) - */ - public EligibilityRequest setOrganizationTarget(Organization value) { - this.organizationTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "The Response Business Identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset)); - childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); - childrenList.add(new Property("created", "dateTime", "The date when this resource was created.", 0, java.lang.Integer.MAX_VALUE, created)); - childrenList.add(new Property("target", "Reference(Organization)", "The Insurer who is target of the request.", 0, java.lang.Integer.MAX_VALUE, target)); - childrenList.add(new Property("provider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, provider)); - childrenList.add(new Property("organization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, organization)); - } - - public EligibilityRequest copy() { - EligibilityRequest dst = new EligibilityRequest(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.ruleset = ruleset == null ? null : ruleset.copy(); - dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); - dst.created = created == null ? null : created.copy(); - dst.target = target == null ? null : target.copy(); - dst.provider = provider == null ? null : provider.copy(); - dst.organization = organization == null ? null : organization.copy(); - return dst; - } - - protected EligibilityRequest typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (ruleset == null || ruleset.isEmpty()) - && (originalRuleset == null || originalRuleset.isEmpty()) && (created == null || created.isEmpty()) - && (target == null || target.isEmpty()) && (provider == null || provider.isEmpty()) && (organization == null || organization.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.EligibilityRequest; - } - - @SearchParamDefinition(name="identifier", path="EligibilityRequest.identifier", description="The business identifier of the Eligibility", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * This resource provides the insurance eligibility details from the insurer regarding a specified coverage and optionally some class of service. + */ +@ResourceDef(name="EligibilityRequest", profile="http://hl7.org/fhir/Profile/EligibilityRequest") +public class EligibilityRequest extends DomainResource { + + /** + * The Response Business Identifier. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Business Identifier", formalDefinition="The Response Business Identifier." ) + protected List identifier; + + /** + * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. + */ + @Child(name="ruleset", type={Coding.class}, order=0, min=0, max=1) + @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." ) + protected Coding ruleset; + + /** + * The style (standard) and version of the original material which was converted into this resource. + */ + @Child(name="originalRuleset", type={Coding.class}, order=1, min=0, max=1) + @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) + protected Coding originalRuleset; + + /** + * The date when this resource was created. + */ + @Child(name="created", type={DateTimeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Creation date", formalDefinition="The date when this resource was created." ) + protected DateTimeType created; + + /** + * The Insurer who is target of the request. + */ + @Child(name="target", type={Organization.class}, order=3, min=0, max=1) + @Description(shortDefinition="Insurer", formalDefinition="The Insurer who is target of the request." ) + protected Reference target; + + /** + * The actual object that is the target of the reference (The Insurer who is target of the request.) + */ + protected Organization targetTarget; + + /** + * The practitioner who is responsible for the services rendered to the patient. + */ + @Child(name="provider", type={Practitioner.class}, order=4, min=0, max=1) + @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) + protected Reference provider; + + /** + * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) + */ + protected Practitioner providerTarget; + + /** + * The organization which is responsible for the services rendered to the patient. + */ + @Child(name="organization", type={Organization.class}, order=5, min=0, max=1) + @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) + protected Reference organization; + + /** + * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) + */ + protected Organization organizationTarget; + + private static final long serialVersionUID = 1836339504L; + + public EligibilityRequest() { + super(); + } + + /** + * @return {@link #identifier} (The Response Business Identifier.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (The Response Business Identifier.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) + */ + public Coding getRuleset() { + if (this.ruleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityRequest.ruleset"); + else if (Configuration.doAutoCreate()) + this.ruleset = new Coding(); // cc + return this.ruleset; + } + + public boolean hasRuleset() { + return this.ruleset != null && !this.ruleset.isEmpty(); + } + + /** + * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) + */ + public EligibilityRequest setRuleset(Coding value) { + this.ruleset = value; + return this; + } + + /** + * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public Coding getOriginalRuleset() { + if (this.originalRuleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityRequest.originalRuleset"); + else if (Configuration.doAutoCreate()) + this.originalRuleset = new Coding(); // cc + return this.originalRuleset; + } + + public boolean hasOriginalRuleset() { + return this.originalRuleset != null && !this.originalRuleset.isEmpty(); + } + + /** + * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public EligibilityRequest setOriginalRuleset(Coding value) { + this.originalRuleset = value; + return this; + } + + /** + * @return {@link #created} (The date when this resource was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DateTimeType getCreatedElement() { + if (this.created == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityRequest.created"); + else if (Configuration.doAutoCreate()) + this.created = new DateTimeType(); // bb + return this.created; + } + + public boolean hasCreatedElement() { + return this.created != null && !this.created.isEmpty(); + } + + public boolean hasCreated() { + return this.created != null && !this.created.isEmpty(); + } + + /** + * @param value {@link #created} (The date when this resource was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public EligibilityRequest setCreatedElement(DateTimeType value) { + this.created = value; + return this; + } + + /** + * @return The date when this resource was created. + */ + public Date getCreated() { + return this.created == null ? null : this.created.getValue(); + } + + /** + * @param value The date when this resource was created. + */ + public EligibilityRequest setCreated(Date value) { + if (value == null) + this.created = null; + else { + if (this.created == null) + this.created = new DateTimeType(); + this.created.setValue(value); + } + return this; + } + + /** + * @return {@link #target} (The Insurer who is target of the request.) + */ + public Reference getTarget() { + if (this.target == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityRequest.target"); + else if (Configuration.doAutoCreate()) + this.target = new Reference(); // cc + return this.target; + } + + public boolean hasTarget() { + return this.target != null && !this.target.isEmpty(); + } + + /** + * @param value {@link #target} (The Insurer who is target of the request.) + */ + public EligibilityRequest setTarget(Reference value) { + this.target = value; + return this; + } + + /** + * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who is target of the request.) + */ + public Organization getTargetTarget() { + if (this.targetTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityRequest.target"); + else if (Configuration.doAutoCreate()) + this.targetTarget = new Organization(); // aa + return this.targetTarget; + } + + /** + * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who is target of the request.) + */ + public EligibilityRequest setTargetTarget(Organization value) { + this.targetTarget = value; + return this; + } + + /** + * @return {@link #provider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public Reference getProvider() { + if (this.provider == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityRequest.provider"); + else if (Configuration.doAutoCreate()) + this.provider = new Reference(); // cc + return this.provider; + } + + public boolean hasProvider() { + return this.provider != null && !this.provider.isEmpty(); + } + + /** + * @param value {@link #provider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public EligibilityRequest setProvider(Reference value) { + this.provider = value; + return this; + } + + /** + * @return {@link #provider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public Practitioner getProviderTarget() { + if (this.providerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityRequest.provider"); + else if (Configuration.doAutoCreate()) + this.providerTarget = new Practitioner(); // aa + return this.providerTarget; + } + + /** + * @param value {@link #provider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public EligibilityRequest setProviderTarget(Practitioner value) { + this.providerTarget = value; + return this; + } + + /** + * @return {@link #organization} (The organization which is responsible for the services rendered to the patient.) + */ + public Reference getOrganization() { + if (this.organization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityRequest.organization"); + else if (Configuration.doAutoCreate()) + this.organization = new Reference(); // cc + return this.organization; + } + + public boolean hasOrganization() { + return this.organization != null && !this.organization.isEmpty(); + } + + /** + * @param value {@link #organization} (The organization which is responsible for the services rendered to the patient.) + */ + public EligibilityRequest setOrganization(Reference value) { + this.organization = value; + return this; + } + + /** + * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) + */ + public Organization getOrganizationTarget() { + if (this.organizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityRequest.organization"); + else if (Configuration.doAutoCreate()) + this.organizationTarget = new Organization(); // aa + return this.organizationTarget; + } + + /** + * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) + */ + public EligibilityRequest setOrganizationTarget(Organization value) { + this.organizationTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "The Response Business Identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset)); + childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); + childrenList.add(new Property("created", "dateTime", "The date when this resource was created.", 0, java.lang.Integer.MAX_VALUE, created)); + childrenList.add(new Property("target", "Reference(Organization)", "The Insurer who is target of the request.", 0, java.lang.Integer.MAX_VALUE, target)); + childrenList.add(new Property("provider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, provider)); + childrenList.add(new Property("organization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, organization)); + } + + public EligibilityRequest copy() { + EligibilityRequest dst = new EligibilityRequest(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.ruleset = ruleset == null ? null : ruleset.copy(); + dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); + dst.created = created == null ? null : created.copy(); + dst.target = target == null ? null : target.copy(); + dst.provider = provider == null ? null : provider.copy(); + dst.organization = organization == null ? null : organization.copy(); + return dst; + } + + protected EligibilityRequest typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof EligibilityRequest)) + return false; + EligibilityRequest o = (EligibilityRequest) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(ruleset, o.ruleset, true) && compareDeep(originalRuleset, o.originalRuleset, true) + && compareDeep(created, o.created, true) && compareDeep(target, o.target, true) && compareDeep(provider, o.provider, true) + && compareDeep(organization, o.organization, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof EligibilityRequest)) + return false; + EligibilityRequest o = (EligibilityRequest) other; + return compareValues(created, o.created, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (ruleset == null || ruleset.isEmpty()) + && (originalRuleset == null || originalRuleset.isEmpty()) && (created == null || created.isEmpty()) + && (target == null || target.isEmpty()) && (provider == null || provider.isEmpty()) && (organization == null || organization.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.EligibilityRequest; + } + + @SearchParamDefinition(name="identifier", path="EligibilityRequest.identifier", description="The business identifier of the Eligibility", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse$1.class new file mode 100644 index 0000000000000000000000000000000000000000..31b6e542b6dad5563eb5ec4eaeb0fd70bec1fe17 GIT binary patch literal 842 zcmbVL!EVz)5Pj=7aS~i=N}*{%P{4$Q16G9uNJR(~xu_y(kX^x{r?s;r+iusD?G*7v zoB;_Tg!%z|6k^s=;nGVh*`9f`o;UM6vAx4djfCNx{c1SK^WHOUZCR%?$e?)&n zzofVpbd}ZCPyNsz)zy7xf8+kt{ zXO`USnZ+e1$T(gtw7sItRQ!^3Gg;RuI}48Mgm0&1t?GL5f2z0Q2TP`XxTr7}MW2aVi z?Y9IRD!NUY_qRC8diBcCUPB+I6jBAh9u(yrN2U1qE~@EQsWxyXTlV}nUOEwK2I;`i&DV`Smaz(W~_focoWdQ<7fjEIKl_-7t(IHgHyjvwxGgsvd(ay1qwN z+a)r&@Jbd#Rw(n4nHIRZRmahJF}OuCA2!T(9z^QgoQaL7U-^CAb}8f|TYWaU^**72 zU9C#5Byee~!7dovibOCy^fy4Z`QBK{O*Zh6kz1_$m{nkric8#&7MEK*A1!r0S{vu1 z6`haPE=q5nj{=FOIUYBDP;xw*lHiWdjSlc=?&gOfIeJ1#6ktnrMlH(dugcj|* zde94jK8{YaRln2<#3~Z+(bC{Z-~yj*(YwpEzlcjs`!h&Hv-=Jq+4n12-y^wmK|*aH z8Y+NpwD96)>buajhPGdJc)!e<1O|xmB~ju&#&Qt*|~~?e09(?`B=rFH5~pk0#QMo;KfsU#($teSKQ++}s{u^u_PydQzKqQy$6TBxkTd~yXwVZL<*rwZ>NHZ>d9?g|BQ11B*=2A3)B aSiyrFs~Ue33BhD9Nojq-eK^Awo%+9S4=fr0 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse$RSLinkEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse$RSLinkEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..e98df93b84e4f64ab71678fc5577c8e827e68c90 GIT binary patch literal 1748 zcmbVN!BQJX5PbuZcC}stY{1yYNq~@mQ0$Gd4cHKDAR-|VAtgCfk=r5$v9Q_|tCelO z#N{9GS@r>{;;O_aAM#PDywM5}fpFlUp6QuZ_v?O7qrd<8<4*whv1*_n866V_viL^F zoiuuJSBI_EZ#CT0FlivILhh^efsTi2oid}JMa4PmwIJWhR>W$k0<(e7*yiRRH4Z0JppsY_hq=`IklRs3FOD~ zyUugR_8h-#7o*Vi%d?q$5SHy7Z`$78aYNhnYmwuZq+MYd&(3*n+1+$KH##WDS~c)% zax_jpE6`PpoYLN^Q*9wIaxY7=8o7)j>?nxAu;>*lWX_`%7;Wz%=hrLj;9OJx2|H=^ zG_d(ifppO=`%Y93Ily{bp0&+gS&C*aN6zBQPALk)gSpEC|9^<{9HUVT>S0MPyNbmd z7fk%Ff^A{|Hw2(z!Nek#NO&ozR6Q9<6W=2zkd$EI6jbJla(X3VR=*rlb~6SjRho)M)j_v?;FjrX@}u_c+z z?__3aZS~iD?iqQQxvDbAXRc6KE3lkXtxA7O;7)tF3p9O(Lkdfef@8>i;}`x)&NOhG zk&ldh>3Gh|nI!h{`4hO#w=l_-TBW^7?=!BHEs_&Q5O28=xJ8?49&XW+dUP~HUm?LA zu%7)0)9T0`qVqMZb|)zsRw6#v-XYnrQYVhqcn^K!J<=OTFsy5bFnMKKT{MUI^<=_6T2GU>jX1)8D~uxcCaY$Y2kX@Gyl6zF>rgWS1#S6GLO8>Fm6gF8*_QVpx8!K=95b&dq6GT%N7g#16Kaa>We20J#=Jqt|xWh?D)D{Xor z`vJX&uvDTmLu2?LMj571sNpFTsR{P`>ABc8?44{-@Fm>IRn;JNoVH%f18Nrioqc55(`FBk7y5wg+VG23r2}WqGOck6pQ)s<$yRp zNUG@KhuL-k_g)edOU1H)Sgwi{K^iSqa{0o5=nhgyEZ|2McUu(@tAjK_&Tx?`)&#`b zfVenFr*NmqVjVvqda_s_5F7Y+BM-Yo6_*CYWkIUpZZ+JahI?Ed6cMqB3ud>dDq;bl z2Wd8Un=Pl@tcooxqem6-fY=(OdE7XUWz1t4+xR!ZJ$hA<s8P!I{yx{^sfy(kee4BZekwtLmmcye23vcGq6B$`R3cM2LI>jVYkF+G`yZ;tC} zL1UI~jckuJ_GjXW#-(v1(<*4>s`!>h8xpz51HC5#N;1+mp#uCX$J#l0ew#D=3od+PJ7Eo`^wO zX)@9aM5URXefX*M9q#}ls4SI^>FE+!_qd>v-gvSE>jgS1>5W_|=uBThP9Pn+5lzSY zm;m5Z7(J`cVB#5ctg@yyO{DZ7;wAwUIw6YmYDZBc@1 zR;1B68A+hhgn?fp)t`>)xn2NSZndtCq_^mR8c6kLqA9jgoj(-#rJgoj0kESd+SlLt zT>PYNYoyDY&N#z&mPPR2)o?7p83P7=2|c5SuMX?!bP9{4W_3D}G_a6h=P*1z({HrM zwpn4jH`FmI7RS7XlPk-k1X7S5zh$dN=MwIhOUAl#QuZH@zB7%Kx! z7!ygx!bX2z9~Kl4WknkxQ<1Vfv0IX2Wt9SL)nIOwoB1Y>5Dv z(bI7_`Hr4=v?shHV!)b7^v(cwJZS<4I-4o0Hk#HkC?=@hSG67Jv>H2K*1ly}EQ@$7 zdr%Cmg1Q(lzhZhlY3c~;IFT|ixzQg-J+y4->Fx0-bhQJkJlvnIna4Q^rP3w;Uv96?n4IjQfmtk2YAWN~iV*ODzq-iSK*H8h)m|GYCgq#5E z?V!Ti9#*DP+i~VVxWCp`rg@36iuAMzEFh=~ZpoAI0Rkww4uY03QfHM3R~jrkMEV#U z!&W3VOF&^d(l7gMM894J&@{T|Y^gZg)x@&P)XE*F8&-p|o zxusEVP1p(Be0|(`G_KMk>1fZ&NIKG+JLn*x6x!_(G}U8oo&%4_Mj@jddmN5rR^2B1 zFwOO|_n^)z`v6p~C9IK!dJ?BFw!5-SYMY)!q%)t- z($lMXAA%BaXgQDSP;FgaxC091t1^-3wq=n%Yta0HPX5PIZUXZdD({IHxhfMPBH4#9 zPb3y|Hq>JtxX+2iT8Qfr)qza69W&Gw8SIQ2f~sk+RjTI$Rf^!~6~#izv~-WH{P;=!C`pKd27}7_XzOVp@t>$Qe_+6^~0W7G+Mc zg0>Z*JhZIg@Tde2M?{%*(PI0GBQV902ruyxGTL2_jv(sQaf3f+$7I9dINHro(0JI( zyw5rhG9()WjdlYR)LC2Db2u2xeb)}SXB6=loJ1UQ!!e*hE25QNk}a(D*O(2S4uv1(oc!`IWrinIWtm%R1AnB79wOF!mWtmM?-eVb#fvD8Iuc{t9tTF&wq9 z0kZ(yAppy6MV?8TDBEd~SUpS!IhUqHO1o*5Qz5AGG3&+^v9pu&@#c3o5G$hug@DDZq8PK;&L1-j-BE2QERw z(ZPfq38y{5x`*G-Gn5xnPt8VsbM65k(%V>Uu=;nGl*a}k}x`S zy-(0||4m|H#L!#o)+5T6gI4vJ=?L6=<3?w1Uj`6)IpVHqra<`GE~uDCIeTMC%_+jM zBh?#;C+$HPP+Mexqib-LiEA;^CU9L3ZO!3R?_`phws2h60A-wqNGJzaf6mk(TicV# z^tCkdWn@kYml8Ai3sZAzqsLf{en5Y((RFk^Wakph?df!6Cwo>vd{q+D8Hj zxH#)?Wmg5Y`}Q0%`lLILI841Z+ zKY-3439)c)MREgM=UI(jp$7z=eNy0afr&=1(W^y3tZ?KVH9Er6os6!ms5jy6wI=qy=DQHS|=cp~*7V5au zL1e9>X4YziVSXq;QcF6SATINGT5JDQCA? z{=tu9FE>Z4h;+<+FjRp6(Ryw3;^3QsT$zsdB3r-R{&2?G?%e6kmm{?5M&m{H8|F)< zB#j}sL1zn`@#YC!t~j)FZf`Kk5+@Z)ZH1Tp!kVrwhcjdYU|a|C50ususev??Lh`oMW@#q7Eqo3x{&tNnnqQcS7I!AxAaP&bQ{TxOk8Y&$9yfyj-p8LhZ z(J%4nmoXXvP2uQQtkJLX=tG602YK{ij7B_T+5mA%p_C(*l-F6x(LyQTVkvJx3Styf z3Sy5!DQ`Nl94nOa7E5^>QV?@M%4GUW`VOSLgLj4ArAhQx^j*Bka+m2JlhOXy7-9PA z_YC?z{f$9?OSc;IcXSTga4p00A0S~Ge(|S6R91hO#7lS)^g}#@5J>bRi1P}N3=LUJ>YpLy zU+6tN8N?3!a`$;sYFWuaemO#Af|fQMA$*t~phA?fXKQ1|l zadOJ3n2hKnJpYYG(#JG|{+(viC)9}FX8M^4p`1!beoi9;^y5=L!!QAa?^_@)0R$#J z^C+pH6kO^}5imw6w6-Bfbpkd8qTi58zoiQLPZ;QTG@bs-oKGe3IZX~g0fIiD53Q-9 ztO|^ojVZKuspd5*AE5H1GqgP^UvftfN4E1EXR{4u26rSZow(K8D8S04LK*Kc*AFbmAeZ1hUFJrf`~o z7)Rw|JWUjpG(}9HS~1bZ^b?rZ17T$W!l^)b8oK@meF`G%ds|^WRt@`J)w|T-u*IaT zEh^#Xlh+-kQ-Jc+!!+d(RdM%xpfdn;CV#sHz4v`IK0$+D}Gs#6Qm+>+op1U z9i-EaQ8=e6>0%4b`2(bk>Iz`J2&|X?#*;0w1r}i^Yif9xM%4@G`T$LrLWi(J!yrvt zYeJPffw@3L7yd%%0@B1%8Yh;~bg`V~h?N%Y60HhLlm3T(Z%yiS)M~e*o}P6B-tKDP z0@DvsH2_uTNXZ%3!u}V-{_9}>^|1d2IO;}oMte#Aucy7LrQNFsX~s}?zuW?DEy+I& zS5C|==a1M%JQhxMf!(*k?g@1L6ZV@zdqZQky+LB;F{;g}M%vpj=e6wp1w{NAo0SyA zs%Lx8!rH4FkS4D_KvP-6@`!Qj9Ja16wDm5`e-%}TYw)MZ*U~hxo9e~&7S)o9v9L9q zll_w&%xP=*m~;D`<+Al`*m}+(Y5)?)elKl(8)m#6w!Q+t> z2;~jasc?AxIfaY&$JnTUf{ps8*r-3Csp3PLDL%4zmT2bU9p@Q4wYUx4>N2zyJGH>j zEjc#Qr9TDTpTp39inzHZO>;q8%*bbX(O06f$14w+U#O_nh1N@ zqP+m&IY5Y@UQF|}MTZ+rZP8J{^g=N02GbhPb+OowskJT^gX!XYrt83TJ(z9)(~V$y37B5$VmjS>T`Vp@ zr~~0>c*K~1cU1+^*0sxo54QSdZo0{^PE(u*4x=c1T z=QUj(ii9@Frk1>>XebuaWm8*T(`Jm?BAYt0O}QLHGikWG=qp*^oR;8ELC`r0P zNzopqj}9nT(A!Fy-d7CzgOU;Blzw^f!2L?_w+6XXl%+U-N}=t_qtt`d7hhVBV`eLi zuDnC@p?qh8!ptcwn`Pw`rs75B6qYxj`|Ls5CY68S_y-*H;cm{yVvt`4DS<05*W#9F z*Wz;1i~9-JS|Kp^MF^b44Z#c>bA16Sg;1WC<^o4RO)PI|~KHjJCUr=2@G$4uc8J)fa zZ^x04P`C!SUHLm}xo7ok@9H_;)r}`r-Q?YS2qZ&QV;!Gidlr%^@=9A)KS)>b4kD8s zW<;dyffM3emvlm0VN38Y(W|`V)5uPh9Bg=tdgRM7>RAT!D6{Zi>1$*R(A_9%C~7EX z252{mRVY@;VjqgtC|1j21jPmv8)UH?#U>P+WN{IS%_ug@BIhw$P;8M!zBsp`*d~j7 zIqyKRLl*PXKW22K+zTJMkAlkmG*)?l#wia{mGY2jdyPti>gV(bjJtp@RQR}O@xR^T zzl8bsd-Jy$ZXYo3^EN{i8J5ifMQ>P-0M?^`wGXf!1FXjZ>j@{UGi_M-yATW3C-~*0 z#1W)7cMQ-gmd_y0g zUcBKN#}#~y8=#GN!)=Ev__i}ZOYnwE0ax&)V1UdhR90~CI6!r1LIlG-ID#246G}Kn zxq^?;LM2GAd)g#iLE7Xo_CF;H*c4}pvn|f2TAWK?rk(jt`|_A}?3`b+diwb{%{IGo zwwUkC{$25Z8MmO5g47Uy?BM&se4K!{7~))Uo*~-k8q`jPi(G|IEHp-?Q}BB&PRTHS IcQ2Uqe^PE$cmMzZ literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse.java similarity index 89% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse.java index aa017fa4986..549496ca247 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EligibilityResponse.java @@ -1,698 +1,697 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * This resource provides eligibility and plan details from the processing of an Eligibility resource. - */ -@ResourceDef(name="EligibilityResponse", profile="http://hl7.org/fhir/Profile/EligibilityResponse") -public class EligibilityResponse extends DomainResource { - - public enum RSLink implements FhirEnum { - /** - * The processing completed without errors. - */ - COMPLETE, - /** - * The processing identified with errors. - */ - ERROR, - /** - * added to help the parsers - */ - NULL; - - public static final RSLinkEnumFactory ENUM_FACTORY = new RSLinkEnumFactory(); - - public static RSLink fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("complete".equals(codeString)) - return COMPLETE; - if ("error".equals(codeString)) - return ERROR; - throw new IllegalArgumentException("Unknown RSLink code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case COMPLETE: return "complete"; - case ERROR: return "error"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case COMPLETE: return ""; - case ERROR: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case COMPLETE: return "The processing completed without errors."; - case ERROR: return "The processing identified with errors."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case COMPLETE: return "complete"; - case ERROR: return "error"; - default: return "?"; - } - } - } - - public static class RSLinkEnumFactory implements EnumFactory { - public RSLink fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("complete".equals(codeString)) - return RSLink.COMPLETE; - if ("error".equals(codeString)) - return RSLink.ERROR; - throw new IllegalArgumentException("Unknown RSLink code '"+codeString+"'"); - } - public String toCode(RSLink code) throws IllegalArgumentException { - if (code == RSLink.COMPLETE) - return "complete"; - if (code == RSLink.ERROR) - return "error"; - return "?"; - } - } - - /** - * The Response Business Identifier. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Business Identifier", formalDefinition="The Response Business Identifier." ) - protected List identifier; - - /** - * Original request resource referrence. - */ - @Child(name="request", type={EligibilityRequest.class}, order=0, min=0, max=1) - @Description(shortDefinition="Claim reference", formalDefinition="Original request resource referrence." ) - protected Reference request; - - /** - * The actual object that is the target of the reference (Original request resource referrence.) - */ - protected EligibilityRequest requestTarget; - - /** - * Transaction status: error, complete. - */ - @Child(name="outcome", type={CodeType.class}, order=1, min=0, max=1) - @Description(shortDefinition="complete | error", formalDefinition="Transaction status: error, complete." ) - protected Enumeration outcome; - - /** - * A description of the status of the adjudication. - */ - @Child(name="disposition", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Disposition Message", formalDefinition="A description of the status of the adjudication." ) - protected StringType disposition; - - /** - * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. - */ - @Child(name="ruleset", type={Coding.class}, order=3, min=0, max=1) - @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." ) - protected Coding ruleset; - - /** - * The style (standard) and version of the original material which was converted into this resource. - */ - @Child(name="originalRuleset", type={Coding.class}, order=4, min=0, max=1) - @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) - protected Coding originalRuleset; - - /** - * The date when the enclosed suite of services were performed or completed. - */ - @Child(name="created", type={DateTimeType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Creation date", formalDefinition="The date when the enclosed suite of services were performed or completed." ) - protected DateTimeType created; - - /** - * The Insurer who produced this adjudicated response. - */ - @Child(name="organization", type={Organization.class}, order=6, min=0, max=1) - @Description(shortDefinition="Insurer", formalDefinition="The Insurer who produced this adjudicated response." ) - protected Reference organization; - - /** - * The actual object that is the target of the reference (The Insurer who produced this adjudicated response.) - */ - protected Organization organizationTarget; - - /** - * The practitioner who is responsible for the services rendered to the patient. - */ - @Child(name="requestProvider", type={Practitioner.class}, order=7, min=0, max=1) - @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) - protected Reference requestProvider; - - /** - * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) - */ - protected Practitioner requestProviderTarget; - - /** - * The organization which is responsible for the services rendered to the patient. - */ - @Child(name="requestOrganization", type={Organization.class}, order=8, min=0, max=1) - @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) - protected Reference requestOrganization; - - /** - * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) - */ - protected Organization requestOrganizationTarget; - - private static final long serialVersionUID = 241710852L; - - public EligibilityResponse() { - super(); - } - - /** - * @return {@link #identifier} (The Response Business Identifier.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (The Response Business Identifier.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #request} (Original request resource referrence.) - */ - public Reference getRequest() { - if (this.request == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.request"); - else if (Configuration.doAutoCreate()) - this.request = new Reference(); - return this.request; - } - - public boolean hasRequest() { - return this.request != null && !this.request.isEmpty(); - } - - /** - * @param value {@link #request} (Original request resource referrence.) - */ - public EligibilityResponse setRequest(Reference value) { - this.request = value; - return this; - } - - /** - * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Original request resource referrence.) - */ - public EligibilityRequest getRequestTarget() { - if (this.requestTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.request"); - else if (Configuration.doAutoCreate()) - this.requestTarget = new EligibilityRequest(); - return this.requestTarget; - } - - /** - * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Original request resource referrence.) - */ - public EligibilityResponse setRequestTarget(EligibilityRequest value) { - this.requestTarget = value; - return this; - } - - /** - * @return {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value - */ - public Enumeration getOutcomeElement() { - if (this.outcome == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.outcome"); - else if (Configuration.doAutoCreate()) - this.outcome = new Enumeration(); - return this.outcome; - } - - public boolean hasOutcomeElement() { - return this.outcome != null && !this.outcome.isEmpty(); - } - - public boolean hasOutcome() { - return this.outcome != null && !this.outcome.isEmpty(); - } - - /** - * @param value {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value - */ - public EligibilityResponse setOutcomeElement(Enumeration value) { - this.outcome = value; - return this; - } - - /** - * @return Transaction status: error, complete. - */ - public RSLink getOutcome() { - return this.outcome == null ? null : this.outcome.getValue(); - } - - /** - * @param value Transaction status: error, complete. - */ - public EligibilityResponse setOutcome(RSLink value) { - if (value == null) - this.outcome = null; - else { - if (this.outcome == null) - this.outcome = new Enumeration(RSLink.ENUM_FACTORY); - this.outcome.setValue(value); - } - return this; - } - - /** - * @return {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value - */ - public StringType getDispositionElement() { - if (this.disposition == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.disposition"); - else if (Configuration.doAutoCreate()) - this.disposition = new StringType(); - return this.disposition; - } - - public boolean hasDispositionElement() { - return this.disposition != null && !this.disposition.isEmpty(); - } - - public boolean hasDisposition() { - return this.disposition != null && !this.disposition.isEmpty(); - } - - /** - * @param value {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value - */ - public EligibilityResponse setDispositionElement(StringType value) { - this.disposition = value; - return this; - } - - /** - * @return A description of the status of the adjudication. - */ - public String getDisposition() { - return this.disposition == null ? null : this.disposition.getValue(); - } - - /** - * @param value A description of the status of the adjudication. - */ - public EligibilityResponse setDisposition(String value) { - if (Utilities.noString(value)) - this.disposition = null; - else { - if (this.disposition == null) - this.disposition = new StringType(); - this.disposition.setValue(value); - } - return this; - } - - /** - * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) - */ - public Coding getRuleset() { - if (this.ruleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.ruleset"); - else if (Configuration.doAutoCreate()) - this.ruleset = new Coding(); - return this.ruleset; - } - - public boolean hasRuleset() { - return this.ruleset != null && !this.ruleset.isEmpty(); - } - - /** - * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) - */ - public EligibilityResponse setRuleset(Coding value) { - this.ruleset = value; - return this; - } - - /** - * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public Coding getOriginalRuleset() { - if (this.originalRuleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.originalRuleset"); - else if (Configuration.doAutoCreate()) - this.originalRuleset = new Coding(); - return this.originalRuleset; - } - - public boolean hasOriginalRuleset() { - return this.originalRuleset != null && !this.originalRuleset.isEmpty(); - } - - /** - * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public EligibilityResponse setOriginalRuleset(Coding value) { - this.originalRuleset = value; - return this; - } - - /** - * @return {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DateTimeType getCreatedElement() { - if (this.created == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.created"); - else if (Configuration.doAutoCreate()) - this.created = new DateTimeType(); - return this.created; - } - - public boolean hasCreatedElement() { - return this.created != null && !this.created.isEmpty(); - } - - public boolean hasCreated() { - return this.created != null && !this.created.isEmpty(); - } - - /** - * @param value {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public EligibilityResponse setCreatedElement(DateTimeType value) { - this.created = value; - return this; - } - - /** - * @return The date when the enclosed suite of services were performed or completed. - */ - public Date getCreated() { - return this.created == null ? null : this.created.getValue(); - } - - /** - * @param value The date when the enclosed suite of services were performed or completed. - */ - public EligibilityResponse setCreated(Date value) { - if (value == null) - this.created = null; - else { - if (this.created == null) - this.created = new DateTimeType(); - this.created.setValue(value); - } - return this; - } - - /** - * @return {@link #organization} (The Insurer who produced this adjudicated response.) - */ - public Reference getOrganization() { - if (this.organization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.organization"); - else if (Configuration.doAutoCreate()) - this.organization = new Reference(); - return this.organization; - } - - public boolean hasOrganization() { - return this.organization != null && !this.organization.isEmpty(); - } - - /** - * @param value {@link #organization} (The Insurer who produced this adjudicated response.) - */ - public EligibilityResponse setOrganization(Reference value) { - this.organization = value; - return this; - } - - /** - * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) - */ - public Organization getOrganizationTarget() { - if (this.organizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.organization"); - else if (Configuration.doAutoCreate()) - this.organizationTarget = new Organization(); - return this.organizationTarget; - } - - /** - * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) - */ - public EligibilityResponse setOrganizationTarget(Organization value) { - this.organizationTarget = value; - return this; - } - - /** - * @return {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public Reference getRequestProvider() { - if (this.requestProvider == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.requestProvider"); - else if (Configuration.doAutoCreate()) - this.requestProvider = new Reference(); - return this.requestProvider; - } - - public boolean hasRequestProvider() { - return this.requestProvider != null && !this.requestProvider.isEmpty(); - } - - /** - * @param value {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public EligibilityResponse setRequestProvider(Reference value) { - this.requestProvider = value; - return this; - } - - /** - * @return {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public Practitioner getRequestProviderTarget() { - if (this.requestProviderTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.requestProvider"); - else if (Configuration.doAutoCreate()) - this.requestProviderTarget = new Practitioner(); - return this.requestProviderTarget; - } - - /** - * @param value {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public EligibilityResponse setRequestProviderTarget(Practitioner value) { - this.requestProviderTarget = value; - return this; - } - - /** - * @return {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) - */ - public Reference getRequestOrganization() { - if (this.requestOrganization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.requestOrganization"); - else if (Configuration.doAutoCreate()) - this.requestOrganization = new Reference(); - return this.requestOrganization; - } - - public boolean hasRequestOrganization() { - return this.requestOrganization != null && !this.requestOrganization.isEmpty(); - } - - /** - * @param value {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) - */ - public EligibilityResponse setRequestOrganization(Reference value) { - this.requestOrganization = value; - return this; - } - - /** - * @return {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) - */ - public Organization getRequestOrganizationTarget() { - if (this.requestOrganizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EligibilityResponse.requestOrganization"); - else if (Configuration.doAutoCreate()) - this.requestOrganizationTarget = new Organization(); - return this.requestOrganizationTarget; - } - - /** - * @param value {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) - */ - public EligibilityResponse setRequestOrganizationTarget(Organization value) { - this.requestOrganizationTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "The Response Business Identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("request", "Reference(EligibilityRequest)", "Original request resource referrence.", 0, java.lang.Integer.MAX_VALUE, request)); - childrenList.add(new Property("outcome", "code", "Transaction status: error, complete.", 0, java.lang.Integer.MAX_VALUE, outcome)); - childrenList.add(new Property("disposition", "string", "A description of the status of the adjudication.", 0, java.lang.Integer.MAX_VALUE, disposition)); - childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset)); - childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); - childrenList.add(new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, created)); - childrenList.add(new Property("organization", "Reference(Organization)", "The Insurer who produced this adjudicated response.", 0, java.lang.Integer.MAX_VALUE, organization)); - childrenList.add(new Property("requestProvider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestProvider)); - childrenList.add(new Property("requestOrganization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestOrganization)); - } - - public EligibilityResponse copy() { - EligibilityResponse dst = new EligibilityResponse(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.request = request == null ? null : request.copy(); - dst.outcome = outcome == null ? null : outcome.copy(); - dst.disposition = disposition == null ? null : disposition.copy(); - dst.ruleset = ruleset == null ? null : ruleset.copy(); - dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); - dst.created = created == null ? null : created.copy(); - dst.organization = organization == null ? null : organization.copy(); - dst.requestProvider = requestProvider == null ? null : requestProvider.copy(); - dst.requestOrganization = requestOrganization == null ? null : requestOrganization.copy(); - return dst; - } - - protected EligibilityResponse typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (request == null || request.isEmpty()) - && (outcome == null || outcome.isEmpty()) && (disposition == null || disposition.isEmpty()) - && (ruleset == null || ruleset.isEmpty()) && (originalRuleset == null || originalRuleset.isEmpty()) - && (created == null || created.isEmpty()) && (organization == null || organization.isEmpty()) - && (requestProvider == null || requestProvider.isEmpty()) && (requestOrganization == null || requestOrganization.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.EligibilityResponse; - } - - @SearchParamDefinition(name="identifier", path="EligibilityResponse.identifier", description="The business identifier of the Explanation of Benefit", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * This resource provides eligibility and plan details from the processing of an Eligibility resource. + */ +@ResourceDef(name="EligibilityResponse", profile="http://hl7.org/fhir/Profile/EligibilityResponse") +public class EligibilityResponse extends DomainResource { + + public enum RSLink { + /** + * The processing completed without errors. + */ + COMPLETE, + /** + * The processing identified with errors. + */ + ERROR, + /** + * added to help the parsers + */ + NULL; + public static RSLink fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("complete".equals(codeString)) + return COMPLETE; + if ("error".equals(codeString)) + return ERROR; + throw new Exception("Unknown RSLink code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case COMPLETE: return "complete"; + case ERROR: return "error"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case COMPLETE: return ""; + case ERROR: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case COMPLETE: return "The processing completed without errors."; + case ERROR: return "The processing identified with errors."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case COMPLETE: return "complete"; + case ERROR: return "error"; + default: return "?"; + } + } + } + + public static class RSLinkEnumFactory implements EnumFactory { + public RSLink fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("complete".equals(codeString)) + return RSLink.COMPLETE; + if ("error".equals(codeString)) + return RSLink.ERROR; + throw new IllegalArgumentException("Unknown RSLink code '"+codeString+"'"); + } + public String toCode(RSLink code) { + if (code == RSLink.COMPLETE) + return "complete"; + if (code == RSLink.ERROR) + return "error"; + return "?"; + } + } + + /** + * The Response Business Identifier. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Business Identifier", formalDefinition="The Response Business Identifier." ) + protected List identifier; + + /** + * Original request resource reference. + */ + @Child(name="request", type={EligibilityRequest.class}, order=0, min=0, max=1) + @Description(shortDefinition="Claim reference", formalDefinition="Original request resource reference." ) + protected Reference request; + + /** + * The actual object that is the target of the reference (Original request resource reference.) + */ + protected EligibilityRequest requestTarget; + + /** + * Transaction status: error, complete. + */ + @Child(name="outcome", type={CodeType.class}, order=1, min=0, max=1) + @Description(shortDefinition="complete | error", formalDefinition="Transaction status: error, complete." ) + protected Enumeration outcome; + + /** + * A description of the status of the adjudication. + */ + @Child(name="disposition", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Disposition Message", formalDefinition="A description of the status of the adjudication." ) + protected StringType disposition; + + /** + * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. + */ + @Child(name="ruleset", type={Coding.class}, order=3, min=0, max=1) + @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." ) + protected Coding ruleset; + + /** + * The style (standard) and version of the original material which was converted into this resource. + */ + @Child(name="originalRuleset", type={Coding.class}, order=4, min=0, max=1) + @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) + protected Coding originalRuleset; + + /** + * The date when the enclosed suite of services were performed or completed. + */ + @Child(name="created", type={DateTimeType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Creation date", formalDefinition="The date when the enclosed suite of services were performed or completed." ) + protected DateTimeType created; + + /** + * The Insurer who produced this adjudicated response. + */ + @Child(name="organization", type={Organization.class}, order=6, min=0, max=1) + @Description(shortDefinition="Insurer", formalDefinition="The Insurer who produced this adjudicated response." ) + protected Reference organization; + + /** + * The actual object that is the target of the reference (The Insurer who produced this adjudicated response.) + */ + protected Organization organizationTarget; + + /** + * The practitioner who is responsible for the services rendered to the patient. + */ + @Child(name="requestProvider", type={Practitioner.class}, order=7, min=0, max=1) + @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) + protected Reference requestProvider; + + /** + * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) + */ + protected Practitioner requestProviderTarget; + + /** + * The organization which is responsible for the services rendered to the patient. + */ + @Child(name="requestOrganization", type={Organization.class}, order=8, min=0, max=1) + @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) + protected Reference requestOrganization; + + /** + * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) + */ + protected Organization requestOrganizationTarget; + + private static final long serialVersionUID = 241710852L; + + public EligibilityResponse() { + super(); + } + + /** + * @return {@link #identifier} (The Response Business Identifier.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (The Response Business Identifier.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #request} (Original request resource reference.) + */ + public Reference getRequest() { + if (this.request == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.request"); + else if (Configuration.doAutoCreate()) + this.request = new Reference(); // cc + return this.request; + } + + public boolean hasRequest() { + return this.request != null && !this.request.isEmpty(); + } + + /** + * @param value {@link #request} (Original request resource reference.) + */ + public EligibilityResponse setRequest(Reference value) { + this.request = value; + return this; + } + + /** + * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Original request resource reference.) + */ + public EligibilityRequest getRequestTarget() { + if (this.requestTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.request"); + else if (Configuration.doAutoCreate()) + this.requestTarget = new EligibilityRequest(); // aa + return this.requestTarget; + } + + /** + * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Original request resource reference.) + */ + public EligibilityResponse setRequestTarget(EligibilityRequest value) { + this.requestTarget = value; + return this; + } + + /** + * @return {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value + */ + public Enumeration getOutcomeElement() { + if (this.outcome == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.outcome"); + else if (Configuration.doAutoCreate()) + this.outcome = new Enumeration(new RSLinkEnumFactory()); // bb + return this.outcome; + } + + public boolean hasOutcomeElement() { + return this.outcome != null && !this.outcome.isEmpty(); + } + + public boolean hasOutcome() { + return this.outcome != null && !this.outcome.isEmpty(); + } + + /** + * @param value {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value + */ + public EligibilityResponse setOutcomeElement(Enumeration value) { + this.outcome = value; + return this; + } + + /** + * @return Transaction status: error, complete. + */ + public RSLink getOutcome() { + return this.outcome == null ? null : this.outcome.getValue(); + } + + /** + * @param value Transaction status: error, complete. + */ + public EligibilityResponse setOutcome(RSLink value) { + if (value == null) + this.outcome = null; + else { + if (this.outcome == null) + this.outcome = new Enumeration(new RSLinkEnumFactory()); + this.outcome.setValue(value); + } + return this; + } + + /** + * @return {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value + */ + public StringType getDispositionElement() { + if (this.disposition == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.disposition"); + else if (Configuration.doAutoCreate()) + this.disposition = new StringType(); // bb + return this.disposition; + } + + public boolean hasDispositionElement() { + return this.disposition != null && !this.disposition.isEmpty(); + } + + public boolean hasDisposition() { + return this.disposition != null && !this.disposition.isEmpty(); + } + + /** + * @param value {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value + */ + public EligibilityResponse setDispositionElement(StringType value) { + this.disposition = value; + return this; + } + + /** + * @return A description of the status of the adjudication. + */ + public String getDisposition() { + return this.disposition == null ? null : this.disposition.getValue(); + } + + /** + * @param value A description of the status of the adjudication. + */ + public EligibilityResponse setDisposition(String value) { + if (Utilities.noString(value)) + this.disposition = null; + else { + if (this.disposition == null) + this.disposition = new StringType(); + this.disposition.setValue(value); + } + return this; + } + + /** + * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) + */ + public Coding getRuleset() { + if (this.ruleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.ruleset"); + else if (Configuration.doAutoCreate()) + this.ruleset = new Coding(); // cc + return this.ruleset; + } + + public boolean hasRuleset() { + return this.ruleset != null && !this.ruleset.isEmpty(); + } + + /** + * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) + */ + public EligibilityResponse setRuleset(Coding value) { + this.ruleset = value; + return this; + } + + /** + * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public Coding getOriginalRuleset() { + if (this.originalRuleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.originalRuleset"); + else if (Configuration.doAutoCreate()) + this.originalRuleset = new Coding(); // cc + return this.originalRuleset; + } + + public boolean hasOriginalRuleset() { + return this.originalRuleset != null && !this.originalRuleset.isEmpty(); + } + + /** + * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public EligibilityResponse setOriginalRuleset(Coding value) { + this.originalRuleset = value; + return this; + } + + /** + * @return {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DateTimeType getCreatedElement() { + if (this.created == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.created"); + else if (Configuration.doAutoCreate()) + this.created = new DateTimeType(); // bb + return this.created; + } + + public boolean hasCreatedElement() { + return this.created != null && !this.created.isEmpty(); + } + + public boolean hasCreated() { + return this.created != null && !this.created.isEmpty(); + } + + /** + * @param value {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public EligibilityResponse setCreatedElement(DateTimeType value) { + this.created = value; + return this; + } + + /** + * @return The date when the enclosed suite of services were performed or completed. + */ + public Date getCreated() { + return this.created == null ? null : this.created.getValue(); + } + + /** + * @param value The date when the enclosed suite of services were performed or completed. + */ + public EligibilityResponse setCreated(Date value) { + if (value == null) + this.created = null; + else { + if (this.created == null) + this.created = new DateTimeType(); + this.created.setValue(value); + } + return this; + } + + /** + * @return {@link #organization} (The Insurer who produced this adjudicated response.) + */ + public Reference getOrganization() { + if (this.organization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.organization"); + else if (Configuration.doAutoCreate()) + this.organization = new Reference(); // cc + return this.organization; + } + + public boolean hasOrganization() { + return this.organization != null && !this.organization.isEmpty(); + } + + /** + * @param value {@link #organization} (The Insurer who produced this adjudicated response.) + */ + public EligibilityResponse setOrganization(Reference value) { + this.organization = value; + return this; + } + + /** + * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) + */ + public Organization getOrganizationTarget() { + if (this.organizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.organization"); + else if (Configuration.doAutoCreate()) + this.organizationTarget = new Organization(); // aa + return this.organizationTarget; + } + + /** + * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) + */ + public EligibilityResponse setOrganizationTarget(Organization value) { + this.organizationTarget = value; + return this; + } + + /** + * @return {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public Reference getRequestProvider() { + if (this.requestProvider == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.requestProvider"); + else if (Configuration.doAutoCreate()) + this.requestProvider = new Reference(); // cc + return this.requestProvider; + } + + public boolean hasRequestProvider() { + return this.requestProvider != null && !this.requestProvider.isEmpty(); + } + + /** + * @param value {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public EligibilityResponse setRequestProvider(Reference value) { + this.requestProvider = value; + return this; + } + + /** + * @return {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public Practitioner getRequestProviderTarget() { + if (this.requestProviderTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.requestProvider"); + else if (Configuration.doAutoCreate()) + this.requestProviderTarget = new Practitioner(); // aa + return this.requestProviderTarget; + } + + /** + * @param value {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public EligibilityResponse setRequestProviderTarget(Practitioner value) { + this.requestProviderTarget = value; + return this; + } + + /** + * @return {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) + */ + public Reference getRequestOrganization() { + if (this.requestOrganization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.requestOrganization"); + else if (Configuration.doAutoCreate()) + this.requestOrganization = new Reference(); // cc + return this.requestOrganization; + } + + public boolean hasRequestOrganization() { + return this.requestOrganization != null && !this.requestOrganization.isEmpty(); + } + + /** + * @param value {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) + */ + public EligibilityResponse setRequestOrganization(Reference value) { + this.requestOrganization = value; + return this; + } + + /** + * @return {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) + */ + public Organization getRequestOrganizationTarget() { + if (this.requestOrganizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EligibilityResponse.requestOrganization"); + else if (Configuration.doAutoCreate()) + this.requestOrganizationTarget = new Organization(); // aa + return this.requestOrganizationTarget; + } + + /** + * @param value {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) + */ + public EligibilityResponse setRequestOrganizationTarget(Organization value) { + this.requestOrganizationTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "The Response Business Identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("request", "Reference(EligibilityRequest)", "Original request resource reference.", 0, java.lang.Integer.MAX_VALUE, request)); + childrenList.add(new Property("outcome", "code", "Transaction status: error, complete.", 0, java.lang.Integer.MAX_VALUE, outcome)); + childrenList.add(new Property("disposition", "string", "A description of the status of the adjudication.", 0, java.lang.Integer.MAX_VALUE, disposition)); + childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset)); + childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); + childrenList.add(new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, created)); + childrenList.add(new Property("organization", "Reference(Organization)", "The Insurer who produced this adjudicated response.", 0, java.lang.Integer.MAX_VALUE, organization)); + childrenList.add(new Property("requestProvider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestProvider)); + childrenList.add(new Property("requestOrganization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestOrganization)); + } + + public EligibilityResponse copy() { + EligibilityResponse dst = new EligibilityResponse(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.request = request == null ? null : request.copy(); + dst.outcome = outcome == null ? null : outcome.copy(); + dst.disposition = disposition == null ? null : disposition.copy(); + dst.ruleset = ruleset == null ? null : ruleset.copy(); + dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); + dst.created = created == null ? null : created.copy(); + dst.organization = organization == null ? null : organization.copy(); + dst.requestProvider = requestProvider == null ? null : requestProvider.copy(); + dst.requestOrganization = requestOrganization == null ? null : requestOrganization.copy(); + return dst; + } + + protected EligibilityResponse typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof EligibilityResponse)) + return false; + EligibilityResponse o = (EligibilityResponse) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(request, o.request, true) && compareDeep(outcome, o.outcome, true) + && compareDeep(disposition, o.disposition, true) && compareDeep(ruleset, o.ruleset, true) && compareDeep(originalRuleset, o.originalRuleset, true) + && compareDeep(created, o.created, true) && compareDeep(organization, o.organization, true) && compareDeep(requestProvider, o.requestProvider, true) + && compareDeep(requestOrganization, o.requestOrganization, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof EligibilityResponse)) + return false; + EligibilityResponse o = (EligibilityResponse) other; + return compareValues(outcome, o.outcome, true) && compareValues(disposition, o.disposition, true) && compareValues(created, o.created, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (request == null || request.isEmpty()) + && (outcome == null || outcome.isEmpty()) && (disposition == null || disposition.isEmpty()) + && (ruleset == null || ruleset.isEmpty()) && (originalRuleset == null || originalRuleset.isEmpty()) + && (created == null || created.isEmpty()) && (organization == null || organization.isEmpty()) + && (requestProvider == null || requestProvider.isEmpty()) && (requestOrganization == null || requestOrganization.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.EligibilityResponse; + } + + @SearchParamDefinition(name="identifier", path="EligibilityResponse.identifier", description="The business identifier of the Explanation of Benefit", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$1.class new file mode 100644 index 0000000000000000000000000000000000000000..ffd6b7ae1dacc0f078da1785fc466eda750c4b78 GIT binary patch literal 2255 zcmbtWOK%%h6#i~vXJXe)Oey36DW$k1DQQjGl2ZCeCe9>w8IObQq=YoU#F@sEIy1H{0&fXi5x6RFP2jq~q`*`Z zI;O=o6`?jGl(sqyfmwk$fwVwI!wn5tg~>!=+pU$#S^J}eUtLd>E0+?t%WgH{dRsNy zD>;cxf6b{R46o$Zy_!>PYlWI!a}+w3Gl$wHRk63W6w(I|#Pmyc&GkJAsLrjrua+vV z=hm((bdHQJDuhzZL7~@lJ;$nVt~%ACy;|YOQJR$QF!zA76AICSU$2&&Sy$$JT4|r# zu(X|OcpVt5Dn7*6423iQ3o9|aFYtlDhXS_1sz6C#O~Ap5hTCFUj^U-pe%%;0 zK)54N5!e*);3^EWw@LOkDZNcLdz%b;n`|YS7*~KoEaQ1jHRy}Oa>m}!SgYFDN)aFEIbrmW1qtI;&n^n5-OG&suQ=5urGc!62wEYr{znQ!-O#>y1Zas(nN z-AWmzY0Sh=^3p!RFGOd&UtVT_lGi~Xd8u%QmUsmT%F{rHj!tS&$@@?be~f;QjvaYA zcM%HZzDDTnfOe6F+f*a%3g~@w2Ud|C@QLo?NYjcmM%uI@Jxco6Dp=e@sx|iHY%ghd zo5o4wdsaUqe9!V@!uPCyR(PZl)A1mt=XSv7`CariVY%q!!bl~9DN9*pXGd&av10N?F?fQH;|>Yu*6F^j1`o5k%oDXZsTLhPw*)| zqx>9S;7iJ{a1Y;5ev4iFK=}Ya;b+QU@GE|!{2hPbPs+dWH~vLfK^;*&l)Y+D4N;y@ zXVh8FcQ6W|hYf|=#st?t;?+OQv0F&o)G&f<3l>{ido0lS4H}UT(O&rf#q>8yA00S@ j*C<06Bbxl3qCO-n-p&6bW0;>BV135$9;HsXJ~i+kS>ZpG literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterClass.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterClass.class new file mode 100644 index 0000000000000000000000000000000000000000..0353388c4f6aa200cb4f9c2b9a6d06cfd01a24a3 GIT binary patch literal 4293 zcmb_fX>b(B75+wAX-CUStcTMa))+)U7)!y%5Q7W|X+evH1gr#EAjfF8wL367v!0oi zkQ2vFVmtSJ*|`trPbxnqatd4_2R~A&B$cYIOvb?<5=m7qc>cGdgl z^>n}f`g^b6Ykl?KpZPq1d-3r$#9$>bfqWcC;}8k#!=(Hv>L?{(;rI^Lk;jXK_>wTUP|t-NT+=>@7Ka zdM8V^-)p-;Xt{aOTlNaV>1|BzYCI`3`!pm*$HyA0B>ImX8XxW-8$Frh^66vglSk4c z1ALARjUG#DXgQoo4-aaH5BBHAGO{OrDsysdynmSQM#qNICpmOve3)vy>s0^ncsi?L z&)J*B);eW5Rk^$Sw{_pNk=Ot!(6D^icEw1wJR$rsYr>UAu) z*qaS~+b!#~&5)3EP(NedAiet@i!M?mx zhdH#sP};4Q`)+RI`(-R;y{exVhiyske8l!ha+Ao&GkP?Mcj4V}yhp>Xn~B&YM)6b< zC%{NU98V|lUc8SRx7~^r+QJQ!=)(a*@v32?=b-Ab$`e(`3O#=&iGJDBCd$Gu3OCP= zL$V`Q^2#EK0r}iAX$z;2#Gq8-1#2d><-4>}r))p0T22y&)le@i2|tM=Qduz{Ne$0w zSTo;Si?2gf+bPINC&1IaaooM°4C_;{LmhOW6aiTC3J8Zd0{g60-LUr#QUPiu=D8~Mvdo|C6-CgH;eX^oKT1L)b(K1m#=N5 z?2*8V?>U}Zr0+ssSfMgVd$v0zg3vB<0&@kIwp@v$?)PAaIZ+K651v`@OzAXf(F{H1 zd`Y;(Iu{v>V&RcR&}cU_xmgj^_qx=pGNdXC>8!6WD3f?{KCf=_M8hwA@ZX1bN?{;GQNp+NBRB)s|`# zYlWo8JY5e#PU0UIFPOG6Aud)3LNX$4k~+IwahM-u#WkmG$00>|r%IplowyhZHz3WX zvMX6E$V@B9uVjZz5;_w^9kv2%2R$lpB{3xPM8|wakXe@rCr__3Z!S*lqZ8+ei@9~n z4P{FW_bseCwIaVD!8eNA;?-$CHQ!Sk#A+iR;vQIbRxPwyN7Q|W1FT9#xCIS&FC1`< zH5TPOE~bax+#-u?&rM}X+xAFTRhN0mYwM~@rlbD5e2~Ahg98uFS!rxZ)F5>u69Iubx zj3(8)Yz1Q5pF_)4#FkEIl7*53(cVxxB4c?&NkztO4aJCz6%A!&WUOi^ zt0QAgLs=Ucw>Ok^(G{%EUBQOjWo$I=xP(r=>NHILT*94~vFQs6zvSx_R`K`SXvcT3 z9N)!Se2+Kv?_&#ofNuN{_uxm^jUUq+KVh-|DShxW?)c}(;TL!jeu+u^3g_`_1o#c6 z@moBG-{Eomo_0Z-%i6W%+y|%GB`I3Z_Cgw{IrEcs=bV|vW}@us`2>gYGs-6EY-8KS zwufym+XHL|*#_7Svt`(ZjW#k%KFK1vBV*)=?2wbl*dl%1q=KUd%lP~U2I(KUp+E5^ z^Jm^t{=zKtSBBT$IOgw+f`8Dl|0LRfsZAu2=xdt$5Yd@ij65D0*ZW(7{6FX;B?mMO zhqNZ7wPp-yF+8ZXU_@)h2`$bGl8)0_+clA&y~W6%7a3b4V_Rf&N5=NZxGOStM8@5b z(X*6ut)0j_hN8>n#k8&6ZyGYjQszI7HvI|Zy@rGM1BX6 zcM`ctI!9+9zHoO9LM z`ZQ1db6AJZVk@rl;C_++KYW=7>uWfNZ!lAQ6BqFCcG5;DGffw OP{0GMAx}^urT-W6d^(Q+ literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterClassEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterClassEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..2be03adf4f91f304a5eaa5f3cf4af47b4a061361 GIT binary patch literal 2266 zcmbVONmCnF5dIp3W+V@b#~1=Oo0ovVATJm%U_gKXVJ#R04kRQQ#2^MnGh`Uq@hyj3 zbI37&Am?!oP!(4tIpvT;eo`v^Br!LGlMxqkUdDoui!u^IF3ETtWo$OR;<*VMD@~622k?Ck)GQCkgcfk##~~*51(x%}K-3 z)5XHJ?qs!XlP&VDV;9PsO>rw{7cEzJW=-wrh@d1atD@+vE)692wO3ly)U14T)pZOj zKORZiPCmM4K8o({8BWx&j$F;k>CploXGZ;iw|rCzJx*v`b+z0_m-o?VamUC_A&BP}hD>w2!fs;&Oc-1aCIep#`_jq=BBO+A=xA8dv61Eh4jc+(# z!#dPlL$_Q7-$LWZ?V{^jwo4YRuw67Yk(Pp-u!Qu2?&NhV$A%qY2<+JfU4bre!>*y5 zI|_D%BJF5zTtn>TOX@4baf_O%V6WtAyL-B$z!1ufGcFURspmB_=H!b7&dl!tLi?Fh z`3`1^hPk6VgswH~z_MRky|q2no8y-2?N_jm0|GHHQ4lm(tW8O<38NS3B?VF3RS>}) z!qi0qh<>SDHld?7>6*Qkvy#hAMCkwcfmMO49xn66Q>1^#H^Ad`wYu>u{TbQh+fAgG zW7$MJoh6K2tPi=3GHY2sN;sC9Sxd&UnUxI=A5XtxLf98 z8`*@gNb8A}>{=|zdztKFe1+524i9x}hcH~7_6G*BrZ0FNWY<0|y>;M&qg_M9X+(ZI z-u^hvl^H}IzhiHL-w^!DZ(zwI#%n)oT`YOp&@gxcddq+?z-v$#X^>ZLAJhp~x`zNG z;O)@gP}I7iW7PiwwOVN)PYsmq(r;++)S$0Oo+|rF$Wz0
    -K_UupEzCSPgx)D~a4 z?5V1+T=CRaU%BeNL)*qXv~Qf?GqvLwoxIhlUgPB$*H6&(CnsH3Dr=K}dq8*4NWvxVZatA7k_YQ#6WMdWa;AVVNFbgC1jxo?w@rVxPuwL=$*T&+r3H;zydo zPc)66DTZM_r3p%-Ldxj}BWw#WiEaGlVdPbC{x4@Eh};@tl72-{4S0+sfr0{s1d;{1 zBv4qOMu8N8ngwbS=(0d90$mYE73iu!t)ANL@d4$c)40M#&q1O%!ZeS|w18Gx#5GEw zo0gb>=NO zw(4qk+o~--u+q?qwbkN-7TuKqva7VKV%zQRwza$6-CB2B?PFhU?LMkf>Hpk&XXf6S zn+YJl-~N7Z=X;#*obx~D`_4Jvmv6rJ-19_qk=Pa>mEJC)etIWB@6sth{Z6L$0wmFC z^ac5a2#`!~<0FbdCVaAx{GvEOWjt7B4Nmh5e}JZ&jD#$U62AxpXeLw4v?xktq44rD zzbFsTTzb1yREWw_FjiI*T=w)q#!@AL?$C4>E7S`HE;t?&{mZfYLG^c+Q%SN=#dQu;V zYMrrIJf)_ZG1C8TArD z)8d9cq=RK+LFM|jLCw%$QK+-9AZ2enY+AFOp%)3deABQNirRyrK_fmA+BvL;heIih zCqN1(hQcsnXh4JNS||fc(6V!03uKCgY?EpXX(>Ua%r~_$K5B&FsKo^_bYa)1*c)AO zAWo!AC_X_euC%m=B{G`tRFkI0sgxE8H6@0}l6qKIVUe() z07{DJT8b?z399c#TQ$ZYE15F%u(^jru%Xkmf*Q_*46G}X2@R@8yI`V}mK+mQ*?XgU zliD_#(xYv?dNKvymu%FBVrpvCfDJoxrk9_UO;?y!E%qVaoW`EoXbBI6E$O*jEw3j-5j_bdustJ!TF-(S@}@iF zrFZy@48LwYnTRLNSi#E3VBe*tw4pdQ3%190Jr)VY2eYSA9ZYFPRvjFVvms|&J4CBP zG00A`;1WT*_y{9#sZsE^r$R&eO&ug0DtlIAg3eqyo&&xUqdS5mIq5!|{gDo;M0yR=qXF9KC)3%`Iroslu(!z3O8&hg{`#Lp|W<0DW zCu0nqwn21qa?!P`V~9#I9FeQ+{b*aV3tKH7LtH_!>50WOqbsT=lN#!XA=Am_Up6L`JyT8*HXG@77ERa`Bbmk47Z3%(Q0}XPd`Nb6&S0j;(^V2d~@X1JH6cjyc^U3z#nQ>P0AM?x1g+cdgeI=E*{CwR>;YzH?x z5nHf5$K9MV^m9G=q;;O^q&kw@Tu%XMMpK;H44?D4tJy^T+2pf2YL<+sEBvMdxsx+|*Ma=*T4tuX4-!)DJ&DzAE z3|KecD|Ifk$}^Cca8N#*caK%kczAoeLI>z^g$5|>7b_IeL5Glg&G;V0U8`-iVZ`w$ z)7ObxF`)4UNF7bZ7l%=JrnFE-`ee1tl7x{xh}p^xQpHL|bh5OCXZGHs&~NCFLI$BI z>o{k1td|71xRB6HIi%1oLT;=tM4YZW6dI$O1$CdZYO1r&XelHzry@}3R+fClIZKY9 z0#N7<`WOyxHnnq-9OK6VzgVS+F42u_tccZcg1AzwQN&fEN1?muV+!qNpPW1JNH(=9 zbU#6rJ&b4F`@oZ*I2GE;-xP(WTrPI5_gi7XJzyG6C~>y6=u0A?X+r03tYgj*LHzgikUw%(v+sO zzJVLHFu(ixPzL8{V$X3(lTkdFmwsG?ZSUD#|4sZB&^L&udoCaHb{<&EC^T&94kywy z|AOxx8w?%yEIcQfFCT)gcXF_8<&Zk*NKa2eF{{kvje=zDx$}3s$Mj&qe3IGSIAUDL zm^MN%S~^vo;Vu%m5Gv(IF+7f0h00Y^F+ia*wKcY}qu&uBL zZl@Mh#Z3xfRExhhsd#!S#~Bb(~PEl@+ zfF_otI3<#_1FKOq3Or;hu%Ed+oX_P8%;gcPp)b;xu=-Kc zA&*fT+Nh)PeF7u3_!amqZazZd88ieviEjX!lCO&-UpGdcqJ#J{d6;}A`Qqkhspurt zA0^*7l^rK(Yq0nTO?%-e`Nyfe`8dg2k5I{BDq^~)v9QQwTSL>p_G4_TmuCCc z(LCRJYV!5bS3o6E(do=Pjy-d^jXMzIz$S)m$b_X-8r!kptqsgY2 zie|3lbx+fu{^l0eidAwV-A2VeoKJd|4%-WyNK4&F6&KPnAT2*krO>Q2 z7wG_yhJiE!q#BS80_l(o>4YcJQVVJ61XWCibh{hr5jyIHv@{Q?0i?VikI{1;NGl5= zoereI!&C{RmAOc72GWlJ=|_R|79hP9NN;l?Jx+h&rD0{Bh98H9p8)A!((@h~R=G8t z;qt{yXgKRIRYAk5Tn%?a!+W6Nz0mMJXm~#~+~d;l1y5g8S-z;6pxKl8Vz1j5C+KTl zNUQRY?g!F`LHc!1q}6VubG(pN18H?G(k}z)0U&)GNS^@GCxP@S7t+7-L|SbjtuBD{ zkQ?cX-bkzSkWK(80t~%GFXI^Ufm~@v57HS3ZeTQVMqH--4*W z_OxQH%ZjxSTAO8US@DN}^ct-ABQGm{+tZ5RYFV-N+^qOxi2Mnx_y(-_Cam~VSn*9* z@n_yv{F{PS^nf^-6@LjU{t8z7HLUm+toWNeEB>u#tgmyQx&^LNXUF$1b-AZb3Q)0B ziv99k&sbky2&ow&aB2dNZ9@~xsWX$H-fX3{)q7Bxw;T}Z#@9qa4!G@K6&FMx)x zX58+~yA5s)7rK05$NC0n*pRE?LTK0s4V$3hB52qQ4O?6qe&5p<4VEt&CXawpo7)$E z?;Qaf@{nE%q?ZBdKX~rCMmN$X7gBrIH3Dg4F47f1+5x01fwU7yR{?343+WF$kv3XL z8w>2ZHEyK;=)LP2^N_9w(mo*lC;Df6Io8j^uT^9|ON$tRReG5vo3t6dAJS|1=GAG7 z@_1hl-Zy~sNA$YAz`0+V-BxUIS+Nz_W$|HZh80b=j*3*$V8uaLaR^o%h81;K@kW;w z|Hada&6X9LCuqqewSg3KTk&7dm5<@(^JDsnm&Ka%EH(y<@$Kb}jNs+yu{Y+hB~Bu0 z9WYBefM`2GODE`qIYqT}ds=j9FRy%)eu^(UYn`3wLKY{k`<+&vdz3Dmpo_LR%pF9D zPtqr0?mH0Gqobv5nO3aRpm@|VrrE&Rh=`{g{f|9s^$o-cFMXEQ){fL z+MKDYphk~1RhPr?YOGpoO*Q09^#<1k*IQGKIa7VX4Z#mvQ@Ehnkh9mc3rT@F?}3Z& zrI2(VwM+NYW@!)YkRG5_ zWo&vBl_f^GX03Udmcyyeiq9-B*0tJ2+I%#uB5i#O$QNU!<%0vKU&s1d*Lt(oDYU-U zwVt&?nonzm%nJl{Jc@*q9z_m-t_?hj;G7;syaa6{kMhy6ErX+TEh3Afl3PzzaLhv_ zOZyR49;OA-7wB^75$cn^NSgE|ib{{tPU$gvK>9L0COu9Er6=f!^d!A1Jw|Cjghw`?&aQ`5N_GjT6+r4yG?^#eeB2 zZ5yZE=$4{eYISczw+h`VtD8W#8r^EEtD;+jZVkHEjZ;6mwdmGb-7a+N(5v~bPPH@2StvXzEnsG$fsyOth$n8 zD&GHX{MXs|8yNo|c;inCzCIhNErBmW;7bsQv?QH`z*iv9x~`xG4d4pFf0(od{T#oX z296`J+%Qgu0SFH)W&DE&mT`I%ExbeU0KY?w(;l>N8Rh}L43E!+3Y4{HY(>N-^_gTUY_^* zy|eHC@7?nNR^x9Gti=m8h~dQuUc#3{_(~XGjUb2-@%(ZKUyC4&7sT?4Ap3d<--tkQ zc)l6Nw?g=K2;Yfdwjipt9&VEaKBKMdjZ2$}_1v!GauGa>vajCEnW z5ystBC$C(&62Xo5aV_4&TVeEs@slw6!srj9z5}ly1iLY~E6{2`!#6l3F^x zOB>Wojn5qt7VIiyEj^dW8jq9vPbm`Tm7V!R{?RT-TYRAtm-64v-iC`GVI%O^}dC(Nh7>+&hXv^HsjdRBKl zve;7>wNhG?#v8O-GozMzM9W8WX*EH>^@E0)QPZV-EBi_AIW{_+qT{BQ&@Q3QqwQDC zA7a*mg6|`k4bABBlYcK*A05G65%}4@YyRme;Zt@5GIHR7*-Y zFFfryD{2hdPR^;Or6=^9nza}snNF8P)URFKbXjc8JN~O7`Tf5R$T`;)eBfI+{|C5=53sl#C`-ON)#8Vd$%KwoVC4 zeEqw_rm{U#C84vQ%u$Ea!#|wT6Ddb66GHfDSoQ3;CWDmF^>IZIdp)C|tLXvF%(H@a z_iU0N-78^Mw_&#qYd}pGG@1SD%0Dl>wu83bAu4MF>$G+G01I9OoMqRmXSHpG%puL} zSJ_P@w6*&BVxkiXDYYyZFUMIgt^O4=!AqPhiNukuYR*+#n^N-=l8A9XrRPhfH&03K zZX=U3vh=ouBQr+rYh6*r)JiHUV=2upG281Jtrd*-j1%l7c6scF{S7E``+InX`0I(^ zX-S*YTE=!@tOESN8gySzK`#ZYXZ2Y zm;!7^6{A_{eBoHdBamtBL`lNqmHbgj;x#kUY2G~kDj4ZDd78n@@|c84-hIm7B$xl1 z;8xOl-m)h&4t)~lwDulWkE-#4rKjV)eAOX(Z^z_a|IFH98ad6hj&l~U`+vg79hb1F zf>&nLP&fs1Cbx&~*Cj->2McOCze&?_5?cJ7wo%P%9ir9Ga+vy3YC3HUO9<)t&6%7< zgz*XpH}V)c#8bfSWNfd?DsW6tM*56`nb5ZA;^3<*+S)F>{b7dbjcFrsq(i~|ctF8A z+#bRO1s5^I^VJRLR$X45oG3G2HoOQUH~%ZRE4%UGE(HI5|FqIR#<7Z03vO1H;M zq2N6QzYv03X7stB;0qX1a1VIyFY)8>lq%=}r-*eQ9%SAfahLh2De1c*{8GX_{=^lU zgpjsHO<0D>JXt)&f$oVhK_vY5D+RyCB?)(aEX@io<2MTWvHK(WiiOBgmze!PI1NR? zWB5#k;CZFZPEj1OSa(j+EEiV)HiY*T{0_h8;FqumziLN3$5}rNMW6c2Lkj+YKPvbv zl48k;<%EJ~@Hqv4!k-msF8QuRt zSW8&!Rbd`5F2!A?P+bE5(`1LKXZW#v)cJ6e@TpP>uCXObr`_r4@g0htCe0J4uKX0@ zr-Yhh7MJ36wz z3+{ob+E2S;VWvtK2pQ=`G$!P`O437r}oa82mSP z?#Cgn2f5$IeZE0NkhjIoA~3;I2mTNd{118li<;mEFXasd_;|T8?Lk-0Wx;M!Xu;DbLnh*mB$yJyo2hk|YSSVMcRSrQT zRS<#3dMX&ikgIS#uR>v?5OfK%#bp$cmk|n{MzHEkQFOH+lWT1;G6M5D1z!q>xgI3Z z&91>A+t@Y%sl-Ea17vv)ca9+KGL%|c>u0G#OJ|)$Es@nuwzQd+UQbJJprs3G>5a7X zrZP)2$X*R$?G%JdiEtT74diHwFzGN;S-9plYOcGCSV=6dE5>3TV^P0v9J7hCVGMK5 zGCCxm478m<;{>{jKyM+?TM?I67lAgqiT@z=nO6->ofDe6QOun#G;7O4lmDo4I?Cl( zD7gM83vt~P2X3STyIn($(vV>s<0>54!K-lOe8-U?=`?1E+fmHBi1`z)a#HMGTYm_F z+MW=OlkwAd$Q3lih={6M6}!xQkm&2vXmNy26NlI+8u!>xOABNtg7PjXazEzCyU`*K zpk3bUnq8$dg{kggoN$$vCTdf8qAn<=fhfslroi=Q(L_K^6Gk~D`2gd8knvX;|3i#_ zf{B{6HF_oa$W`Oj)zYxEVVU!)ZqlpPhUE=y&a0;4tBDRc zpK*k25kLV^`6xQ%VGPK}+~j$j_&HR$R{WiiM9g=NBSr_W=xt+6SH=XM%Mhs)5x1jg zXEPMLtWVx^ z5PqkqQ%<%ntOG8r76EJZ)nV1SIBuIbDIA5*QsHw{_&gQ9K!q<-;Y(h|M?{J7BhFPc z$g5}&ojfhqj9|Sm_mbTs#91_g<=kKgbeqQ95vRtS4N)2+)0|c#w!SdrruzD-PN}|& zdG$qC=R#Mf+%}3&h+J@vE4v2;|6!AUX-1@U(z9d_;5mD25dxm)^H%;h^WA*Bir&rz Q9GG5(&H|gw>uad_KTEH#2LJ#7 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterLocationStatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterLocationStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..e07b0c6aac46d15b4e7582b203b9d193430acec9 GIT binary patch literal 2841 zcmbtVS##4?6#lMbTZ&PZD(p>*3eMs{VxTOg2_Y<|q%}!ENm@fotH{@}f-D(XP6%|S z+e5d9Zcm;5gFd-oCh3%E%TpivqdGlTGImVzz!2Hey+`+)^POG){`bdU0A9z#c0_SC zfwyo?LR!Mx3H0L~@yN=!p1>5QWy}bs8!~Q+RhKa<);S6D65dUq8}G@;iS?F@+hTn` zfi8T|jyw1;L7X4SFk~#qFlFRra2W*|i!uhpVNu3W8OLM{3#FEXB?f6GdvR(ibA@4F z#xdQh<8v?Tnuc$=j_wL)ES)9iFJ|X5I>W^69RtOe4ZA9AzBHKH zxwhzK@{pk`YdL(XT3X=Vtg&Fz8!3R9E->hW*(GDyNZW?9nAUyIau!EZJ9lHuax8zG zVedBTCsXqb?Ygz-P_{g>rfpEXkqe$%3Jva{M4ET68|AvWiOhYImqmstGI8Gxxpohx zw%Sgb7rC#mR(xJ!=%D=-UJ%BRFhfGnR;6qks{}Y^+I2H;Y*LhQs->|VMqr$3CZW4k z&*WDv5%A7NZHXFG~!KN)_fb5$EB)e=eZ})&N1}QId>g*#nBoLwlDfEai#f0HK|t|j#q z%QuTOL6Rhtq|u)gqd)m{^e2PS-yHbOU2F9+L~c(~;#@CpIffmKs>z8H^fBtEFJx@u zfM_g$R_dr=rA`V~$|%r%Q1m%*w$tx8PJrPgQHN<2S7Hrp9g!z!s}aTMiwnfX8M{UN zr*OK?e*}?0Vpk8ML%$>T1ktSm5z+m`C;$$jjeaxyUp&jMdcka4W4LQB!v{2&JZWG>FdHV|3*nqdT{OmsE8fJ#^Hg z?xx2&_H1D9-vOfVu%A%DY;>>^x|oCg%tbFNqmSJ~ig`H6DmcS@j1sSeSO-%S1!F`A z^SbChk8yemKlAm#9ACpe!rMRcE4`$vk8a_Lh(Ryihv+`6wv+W_b4@)Uq8ACmy%#ZJ zT|tuF#{gTUHhh3#_AmgCBbtmvMCdQPAfi-L!~Yh=LBxYK z_2rt{yN!=u65>~c_%$JZLx|r#gLv@;5nrjPuh!H<+aP{Nh~E?94}|z5A^y~YDB}_p zV3@~`DYxR9eT-;M)!H`j+9MpN6<3pmIMWZ4onRR&>k% E130yy-2eap literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterLocationStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterLocationStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..be5853a5da867d8de90904aba8f2a7c25d3975cc GIT binary patch literal 1899 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterState.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterState.class new file mode 100644 index 0000000000000000000000000000000000000000..4a111a567ccf16c1d3153f3d741ded80dc017e3e GIT binary patch literal 3388 zcmb_eZF3XX6@J#1t!uG1>hcnxq}dWtYy%bq0|7e*#fTuP$c_b06iCTRT3ZY2U9no( zI4{lnOWUMP-=}|}pSI2nbjq~NhfY8AKlHD3`rIp9vJsidcvyS)+;jKbbDneVbImbaKL zhJoWPPK<0D^rYiC;gp8GkMWutnP;_%&Z1|9&43_!hvke|2>hiM&Oz3{a_42MzK$}H zy;rg8q2qh3Lx1SEtacBNbVH`+MLR66HbQ$z!yw0(>;(yii@A$ZcN%rqT4lh=in|W; z$|gryuemh2y~L+TnMBcV1{M3VBg@+%=9nz5jtla%UDWXzK9A#P8pgLnOdVPLT*phe zq5*OILdO^Ql6%RtNc*ae(|De$6$H+*RL@CuhvOZu2mWGUHyS$5D+}LqZEM-qF(FkU z>(r>p6_ZjQsK`U&x^m(LIkBrlkoJaXc&anoqRop<$F16d1b9`$)7QN_p1jS(6PPHbQ)%znabgUADAIu*&99Lm|62z>}5NUR?<(U83eR+SIs5c4oQ4- z#R+SsMHf~jRMfEpMksf~DBFuo&$PU%3Q_Nlo^HL^MJMuP#xwJh zHymDGr;KcW9k!5}I;JFLhC1Ys=So9g#q~X|+>2uI5yyrO6gR6}4V@7E$`Y*GUxZWN8H*_ODdLQCX=+h!&pf!xIArTon z+KL_-gKcFfGIq9=WMq7=tr(H9tF7#g9%4`FA@-IY;3;F@eeCC}{l)=4?&JFpaPXfB zm@LE;cJf)kAZ9q4#Xh`(gP6l%6fuHpcn;Tb2JwMn88@NfG1%?>Z zbamln>N3GSybJW%+KSKDOPgK8(}ePau|Ly{*LmKu82!A5c^~CH#``31Nr|(@0BgYt zFmGnd93$fyxhXwr7Y{*jdNZi`Au5-smWawDDxaw8M0K|t)hkZ`l^Gd7jEqB(@oZ$IBIEF5YSkpFWujUk zs(VDWN>pzV)!Rh%PB*H#CxGflk#R)r;BaJ&M8@c2P`yu79}v}tMD-C-eN0rJ5Y?wd z_1UAS1etktomc-N*W~rpL&QqP(cT9*_B9epIUZAru9UGpr3@)0-LI6SQclE`VkqUL zP|9wlJeO?Qol3_4PVc=um&H75xRIpSCkw$B!RuCG}(59vVNsCgiOIX6v&AV~4LH!Gk z z*FCpTJM2x$oLiQ@%~vsmY$C11~3Mc;NM-4yiQ8YQ}N zPyQpjnF@@w@=wZgf!OZ~=oYg^m`%g#lLDcvotLIx_9#)M7C#HCn^w-Bx(n}eVcyL7 zuJ^|DT@33Lxix_^ltL}*mc5)cZ*v`+#XH7Sbv%F}0VsGz#}cvvN|EX&tu-ANafwvZ z^Xx5Fms#z$3Ftk;Y!Ccw=5mcv8t|9LzOo8i51pEIWDy0@Wy4{c(9qG z6m92CC+_9T1xxyk(h3}C8r4!eSGJus%M%#9B(F&KH96GYDnmKyq@htA&*KFFLEuHa z#L>M>+N^?C1WxRwMRY_kuHy(E5}4hK18#$Q4Fv|;Nw=Man<3YFLtymI7q&QVdAOD@ z8V>8#vgy#2>~HPodfP=VQ)w5|@k}OpMqqMp%|$NaOG~L`cA=#*i%Sb2>gHRtQjegcYWgn% zgn&1re?vDqqTA@a2BTH!5)~s*+gE-=SH%c66s2OQ4JA}Dw1(1MG4zJgQ!#oQN?+v$ z!YenhZ)FFDanCmT>8Rh>Ps=v$-NAuBiA_h9?;L#)fVa_ucW@BzQn>HoDBhu| zbS0-@HcBC0N6-jV2q}z$j6#f5M%|1wMm>ylMtzKWE5>~la#7238DG<;3p zw{OsoZ*d6UQNgZL9N!a_9}vTj6w6OIg`Y8vU#fgn1ho+V!f~P)ty3JXQw)tq|H8mF z4)SGfg(dSNc$myMqQiCb;5g;?&@S7SJal5BO8Xd*Vfv2{Ilv$^fD}ef4^ZM$$RPAT D{<#FD literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterStatusHistoryComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter$EncounterStatusHistoryComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..176605ded079f9a70b3175343b7d477fed921784 GIT binary patch literal 5816 zcmb_gS#%Ux8UAi{hwe0;5Sk@~8Jq?Jgmj=$7-s1VBqTwCVGWCbqf>Nll7jB4o~r6F z8AloS8TVa-`!b><>UfSrP|nfu=oyqJ*9RYb(+AJ-&E-iaez&TUbZ0_!CUOqBxBAxq z|KGpgzqtL%PkstuCw`DX24nR|mFpBb&;TY!&vfDH*>Ox(KpA8kO&yr?) zMvcM{rA1A>NIRnLc!}HQQ2riz=LG4lD~l(TFmR8; zdS<~Q7hN|CRi$Y}x~jIzPG3P5rRfS}+Fnb$Xdrj~;vu~hxGTSK?nN8NV2|p~9JLw7 zv+Q0oFT9MHYukNQ4W{fIFdWyi$9t?|$ud3b?FGjsSIbTFHnmq{vb{XNV9-VT?CvRB zKa(;757vzKyiSlg-ii#CGo5?_mutD;4ubBkU4D`BVyIzPP|SY5O*1KTrk{)9<^=qA zPx)klne1J1w&Z29qHW-UKBi~Ou2IMi@KsLro!s2h@N7D2TP10`^kT}k`Wu9eoyuC*<1OAck}8Hf7~ac)c7 z?s)B80evZnFDuzw7B~&Y@D+i*;l%TorMeaO>v`2%Il)zFC@bD6rM{X(2`7{I8on;D zYcXI+d;{NHynmSE-gL7e4BIc*BqWA82Zd4wRl|`Y&yhlz_*@L%O5!TM&8fo|B+wTo zW5!{%YAA{C;Q1s*aZD|G5=EFvd>7Y}u+-D{@O|~d;H@5pH>V!>!4O8xiE7vwDf?dx z0?Vb!&m(3xbF#-vNr6>Cr}6T4(6tS7#Ooo+A*+&XQy9#Q69hWKJ3>W9c_?w-P~NyF zu#$B>TS-UGUyym1pzmRr>du~qPJ?|~ea~jfZ={Ms8wFIyk*EZv< z*RKP?)4H7v7hUb

    gC)f?+*Bf-{`;BZ#Wz3Ju%UcL`pPH*nvj%fo8Pk*3qZBiQ3$FQu?ML(Jvw3b?x!_r6zi_bBdOtVJL8llzUH4hQ)8 zE>z#=I>3|l+y(c#_DP5z@yK}T^c5OjeaP`JC=e+2CoGB*&NK*LScok=a3MC@lb z5TC%R_M50ba}$X(lUO>5q=F;)3*^&0HP>PZ(SC!N_$?a5@6arMk9Fb?$cjJWIH{u0 znwtasLE@djNv_I}hq){KW+m`tELYogG+aR}dKJ;gwHb&dicI{;6ITaqRhQyBwOBcS zu9kBeX99n0j@ z>bGf{ho>UlM1b@2MkeA%IC32;?+{^aNp)oM7zz}xicG{ay&^JN1M0L!CK@m2Ae4{s zzsZy%JKHmpSe3bn)n`)8sWqvVNNTO}?IiB`G49oH+JCh!^}5u3{;SB$t2qUwrHHZu zX>BEP+NvNAMyMdK*FeqZh^bI>H<6|X*AKKaR2wpWFjZD0)Z=w*WD%)T#$fuCZfT{% zGqc`a&0K)C263$g4cc04)b7DU+P$8OIuV^h3$z$6@E-)1DVE{%Z-2jdc;4dzmF1KW zsQe^TLNyc5QJb!yE^;mNbEN%;mykZBH16PE^aeIhco`ny&xrqXZlQV^qOGUS8<5a8 zV!76e71}1O(KdT}ClO7=|AWm`tV@*)XOuvXbAcY4RKT``>(Msb8GOJD0Xqn|jey$; zm?hv250ELDh!cVnW&m`8yQ+aKyXV#kY*qHXJYB906Ii3-;vc9~otVEFX}dh}F+|ri zMY=>&H?!dJ0AXE#P}hDP6{+eM{|g?ey&zJ$#G$4dT<_XZ0?PcogMVxJZW*3NwyOnc O?r&zkC%C^G_5TArB{FjW literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Encounter.class new file mode 100644 index 0000000000000000000000000000000000000000..1063799bb7363b7e70ccb0efbebee116c649f402 GIT binary patch literal 26050 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 d-m-EgMe!U$`&c~pp* { - public EncounterState fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("planned".equals(codeString)) - return EncounterState.PLANNED; - if ("in progress".equals(codeString)) - return EncounterState.INPROGRESS; - if ("onleave".equals(codeString)) - return EncounterState.ONLEAVE; - if ("finished".equals(codeString)) - return EncounterState.FINISHED; - if ("cancelled".equals(codeString)) - return EncounterState.CANCELLED; - throw new IllegalArgumentException("Unknown EncounterState code '"+codeString+"'"); - } - public String toCode(EncounterState code) throws IllegalArgumentException { - if (code == EncounterState.PLANNED) - return "planned"; - if (code == EncounterState.INPROGRESS) - return "in progress"; - if (code == EncounterState.ONLEAVE) - return "onleave"; - if (code == EncounterState.FINISHED) - return "finished"; - if (code == EncounterState.CANCELLED) - return "cancelled"; - return "?"; - } - } - - public enum EncounterClass implements FhirEnum { - /** - * An encounter during which the patient is hospitalized and stays overnight. - */ - INPATIENT, - /** - * An encounter during which the patient is not hospitalized overnight. - */ - OUTPATIENT, - /** - * An encounter where the patient visits the practitioner in his/her office, e.g. a G.P. visit. - */ - AMBULATORY, - /** - * An encounter where the patient needs urgent care. - */ - EMERGENCY, - /** - * An encounter where the practitioner visits the patient at his/her home. - */ - HOME, - /** - * An encounter taking place outside the regular environment for giving care. - */ - FIELD, - /** - * An encounter where the patient needs more prolonged treatment or investigations than outpatients, but who do not need to stay in the hospital overnight. - */ - DAYTIME, - /** - * An encounter that takes place where the patient and practitioner do not physically meet but use electronic means for contact. - */ - VIRTUAL, - /** - * added to help the parsers - */ - NULL; - - public static final EncounterClassEnumFactory ENUM_FACTORY = new EncounterClassEnumFactory(); - - public static EncounterClass fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("inpatient".equals(codeString)) - return INPATIENT; - if ("outpatient".equals(codeString)) - return OUTPATIENT; - if ("ambulatory".equals(codeString)) - return AMBULATORY; - if ("emergency".equals(codeString)) - return EMERGENCY; - if ("home".equals(codeString)) - return HOME; - if ("field".equals(codeString)) - return FIELD; - if ("daytime".equals(codeString)) - return DAYTIME; - if ("virtual".equals(codeString)) - return VIRTUAL; - throw new IllegalArgumentException("Unknown EncounterClass code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case INPATIENT: return "inpatient"; - case OUTPATIENT: return "outpatient"; - case AMBULATORY: return "ambulatory"; - case EMERGENCY: return "emergency"; - case HOME: return "home"; - case FIELD: return "field"; - case DAYTIME: return "daytime"; - case VIRTUAL: return "virtual"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case INPATIENT: return ""; - case OUTPATIENT: return ""; - case AMBULATORY: return ""; - case EMERGENCY: return ""; - case HOME: return ""; - case FIELD: return ""; - case DAYTIME: return ""; - case VIRTUAL: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case INPATIENT: return "An encounter during which the patient is hospitalized and stays overnight."; - case OUTPATIENT: return "An encounter during which the patient is not hospitalized overnight."; - case AMBULATORY: return "An encounter where the patient visits the practitioner in his/her office, e.g. a G.P. visit."; - case EMERGENCY: return "An encounter where the patient needs urgent care."; - case HOME: return "An encounter where the practitioner visits the patient at his/her home."; - case FIELD: return "An encounter taking place outside the regular environment for giving care."; - case DAYTIME: return "An encounter where the patient needs more prolonged treatment or investigations than outpatients, but who do not need to stay in the hospital overnight."; - case VIRTUAL: return "An encounter that takes place where the patient and practitioner do not physically meet but use electronic means for contact."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case INPATIENT: return "inpatient"; - case OUTPATIENT: return "outpatient"; - case AMBULATORY: return "ambulatory"; - case EMERGENCY: return "emergency"; - case HOME: return "home"; - case FIELD: return "field"; - case DAYTIME: return "daytime"; - case VIRTUAL: return "virtual"; - default: return "?"; - } - } - } - - public static class EncounterClassEnumFactory implements EnumFactory { - public EncounterClass fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("inpatient".equals(codeString)) - return EncounterClass.INPATIENT; - if ("outpatient".equals(codeString)) - return EncounterClass.OUTPATIENT; - if ("ambulatory".equals(codeString)) - return EncounterClass.AMBULATORY; - if ("emergency".equals(codeString)) - return EncounterClass.EMERGENCY; - if ("home".equals(codeString)) - return EncounterClass.HOME; - if ("field".equals(codeString)) - return EncounterClass.FIELD; - if ("daytime".equals(codeString)) - return EncounterClass.DAYTIME; - if ("virtual".equals(codeString)) - return EncounterClass.VIRTUAL; - throw new IllegalArgumentException("Unknown EncounterClass code '"+codeString+"'"); - } - public String toCode(EncounterClass code) throws IllegalArgumentException { - if (code == EncounterClass.INPATIENT) - return "inpatient"; - if (code == EncounterClass.OUTPATIENT) - return "outpatient"; - if (code == EncounterClass.AMBULATORY) - return "ambulatory"; - if (code == EncounterClass.EMERGENCY) - return "emergency"; - if (code == EncounterClass.HOME) - return "home"; - if (code == EncounterClass.FIELD) - return "field"; - if (code == EncounterClass.DAYTIME) - return "daytime"; - if (code == EncounterClass.VIRTUAL) - return "virtual"; - return "?"; - } - } - - @Block() - public static class EncounterParticipantComponent extends BackboneElement { - /** - * Role of participant in encounter. - */ - @Child(name="type", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Role of participant in encounter", formalDefinition="Role of participant in encounter." ) - protected List type; - - /** - * Persons involved in the encounter other than the patient. - */ - @Child(name="individual", type={Practitioner.class, RelatedPerson.class}, order=2, min=0, max=1) - @Description(shortDefinition="Persons involved in the encounter other than the patient", formalDefinition="Persons involved in the encounter other than the patient." ) - protected Reference individual; - - /** - * The actual object that is the target of the reference (Persons involved in the encounter other than the patient.) - */ - protected Resource individualTarget; - - private static final long serialVersionUID = 129909055L; - - public EncounterParticipantComponent() { - super(); - } - - /** - * @return {@link #type} (Role of participant in encounter.) - */ - public List getType() { - if (this.type == null) - this.type = new ArrayList(); - return this.type; - } - - public boolean hasType() { - if (this.type == null) - return false; - for (CodeableConcept item : this.type) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #type} (Role of participant in encounter.) - */ - // syntactic sugar - public CodeableConcept addType() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.type == null) - this.type = new ArrayList(); - this.type.add(t); - return t; - } - - /** - * @return {@link #individual} (Persons involved in the encounter other than the patient.) - */ - public Reference getIndividual() { - if (this.individual == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterParticipantComponent.individual"); - else if (Configuration.doAutoCreate()) - this.individual = new Reference(); - return this.individual; - } - - public boolean hasIndividual() { - return this.individual != null && !this.individual.isEmpty(); - } - - /** - * @param value {@link #individual} (Persons involved in the encounter other than the patient.) - */ - public EncounterParticipantComponent setIndividual(Reference value) { - this.individual = value; - return this; - } - - /** - * @return {@link #individual} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Persons involved in the encounter other than the patient.) - */ - public Resource getIndividualTarget() { - return this.individualTarget; - } - - /** - * @param value {@link #individual} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Persons involved in the encounter other than the patient.) - */ - public EncounterParticipantComponent setIndividualTarget(Resource value) { - this.individualTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "CodeableConcept", "Role of participant in encounter.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("individual", "Reference(Practitioner|RelatedPerson)", "Persons involved in the encounter other than the patient.", 0, java.lang.Integer.MAX_VALUE, individual)); - } - - public EncounterParticipantComponent copy() { - EncounterParticipantComponent dst = new EncounterParticipantComponent(); - copyValues(dst); - if (type != null) { - dst.type = new ArrayList(); - for (CodeableConcept i : type) - dst.type.add(i.copy()); - }; - dst.individual = individual == null ? null : individual.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (individual == null || individual.isEmpty()) - ; - } - - } - - @Block() - public static class EncounterHospitalizationComponent extends BackboneElement { - /** - * Pre-admission identifier. - */ - @Child(name="preAdmissionIdentifier", type={Identifier.class}, order=1, min=0, max=1) - @Description(shortDefinition="Pre-admission identifier", formalDefinition="Pre-admission identifier." ) - protected Identifier preAdmissionIdentifier; - - /** - * The location from which the patient came before admission. - */ - @Child(name="origin", type={Location.class}, order=2, min=0, max=1) - @Description(shortDefinition="The location from which the patient came before admission", formalDefinition="The location from which the patient came before admission." ) - protected Reference origin; - - /** - * The actual object that is the target of the reference (The location from which the patient came before admission.) - */ - protected Location originTarget; - - /** - * From where patient was admitted (physician referral, transfer). - */ - @Child(name="admitSource", type={CodeableConcept.class}, order=3, min=0, max=1) - @Description(shortDefinition="From where patient was admitted (physician referral, transfer)", formalDefinition="From where patient was admitted (physician referral, transfer)." ) - protected CodeableConcept admitSource; - - /** - * Period during which the patient was admitted. - */ - @Child(name="period", type={Period.class}, order=4, min=0, max=1) - @Description(shortDefinition="Period during which the patient was admitted", formalDefinition="Period during which the patient was admitted." ) - protected Period period; - - /** - * Where the patient stays during this encounter. - */ - @Child(name="accomodation", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Where the patient stays during this encounter", formalDefinition="Where the patient stays during this encounter." ) - protected List accomodation; - - /** - * Dietary restrictions for the patient. - */ - @Child(name="diet", type={CodeableConcept.class}, order=6, min=0, max=1) - @Description(shortDefinition="Dietary restrictions for the patient", formalDefinition="Dietary restrictions for the patient." ) - protected CodeableConcept diet; - - /** - * Special courtesies (VIP, board member). - */ - @Child(name="specialCourtesy", type={CodeableConcept.class}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Special courtesies (VIP, board member)", formalDefinition="Special courtesies (VIP, board member)." ) - protected List specialCourtesy; - - /** - * Wheelchair, translator, stretcher, etc. - */ - @Child(name="specialArrangement", type={CodeableConcept.class}, order=8, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Wheelchair, translator, stretcher, etc", formalDefinition="Wheelchair, translator, stretcher, etc." ) - protected List specialArrangement; - - /** - * Location to which the patient is discharged. - */ - @Child(name="destination", type={Location.class}, order=9, min=0, max=1) - @Description(shortDefinition="Location to which the patient is discharged", formalDefinition="Location to which the patient is discharged." ) - protected Reference destination; - - /** - * The actual object that is the target of the reference (Location to which the patient is discharged.) - */ - protected Location destinationTarget; - - /** - * Category or kind of location after discharge. - */ - @Child(name="dischargeDisposition", type={CodeableConcept.class}, order=10, min=0, max=1) - @Description(shortDefinition="Category or kind of location after discharge", formalDefinition="Category or kind of location after discharge." ) - protected CodeableConcept dischargeDisposition; - - /** - * The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete. - */ - @Child(name="dischargeDiagnosis", type={}, order=11, min=0, max=1) - @Description(shortDefinition="The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete", formalDefinition="The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete." ) - protected Reference dischargeDiagnosis; - - /** - * The actual object that is the target of the reference (The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete.) - */ - protected Resource dischargeDiagnosisTarget; - - /** - * Whether this hospitalization is a readmission. - */ - @Child(name="reAdmission", type={BooleanType.class}, order=12, min=0, max=1) - @Description(shortDefinition="Is this hospitalization a readmission?", formalDefinition="Whether this hospitalization is a readmission." ) - protected BooleanType reAdmission; - - private static final long serialVersionUID = 221977130L; - - public EncounterHospitalizationComponent() { - super(); - } - - /** - * @return {@link #preAdmissionIdentifier} (Pre-admission identifier.) - */ - public Identifier getPreAdmissionIdentifier() { - if (this.preAdmissionIdentifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationComponent.preAdmissionIdentifier"); - else if (Configuration.doAutoCreate()) - this.preAdmissionIdentifier = new Identifier(); - return this.preAdmissionIdentifier; - } - - public boolean hasPreAdmissionIdentifier() { - return this.preAdmissionIdentifier != null && !this.preAdmissionIdentifier.isEmpty(); - } - - /** - * @param value {@link #preAdmissionIdentifier} (Pre-admission identifier.) - */ - public EncounterHospitalizationComponent setPreAdmissionIdentifier(Identifier value) { - this.preAdmissionIdentifier = value; - return this; - } - - /** - * @return {@link #origin} (The location from which the patient came before admission.) - */ - public Reference getOrigin() { - if (this.origin == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationComponent.origin"); - else if (Configuration.doAutoCreate()) - this.origin = new Reference(); - return this.origin; - } - - public boolean hasOrigin() { - return this.origin != null && !this.origin.isEmpty(); - } - - /** - * @param value {@link #origin} (The location from which the patient came before admission.) - */ - public EncounterHospitalizationComponent setOrigin(Reference value) { - this.origin = value; - return this; - } - - /** - * @return {@link #origin} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The location from which the patient came before admission.) - */ - public Location getOriginTarget() { - if (this.originTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationComponent.origin"); - else if (Configuration.doAutoCreate()) - this.originTarget = new Location(); - return this.originTarget; - } - - /** - * @param value {@link #origin} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The location from which the patient came before admission.) - */ - public EncounterHospitalizationComponent setOriginTarget(Location value) { - this.originTarget = value; - return this; - } - - /** - * @return {@link #admitSource} (From where patient was admitted (physician referral, transfer).) - */ - public CodeableConcept getAdmitSource() { - if (this.admitSource == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationComponent.admitSource"); - else if (Configuration.doAutoCreate()) - this.admitSource = new CodeableConcept(); - return this.admitSource; - } - - public boolean hasAdmitSource() { - return this.admitSource != null && !this.admitSource.isEmpty(); - } - - /** - * @param value {@link #admitSource} (From where patient was admitted (physician referral, transfer).) - */ - public EncounterHospitalizationComponent setAdmitSource(CodeableConcept value) { - this.admitSource = value; - return this; - } - - /** - * @return {@link #period} (Period during which the patient was admitted.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationComponent.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (Period during which the patient was admitted.) - */ - public EncounterHospitalizationComponent setPeriod(Period value) { - this.period = value; - return this; - } - - /** - * @return {@link #accomodation} (Where the patient stays during this encounter.) - */ - public List getAccomodation() { - if (this.accomodation == null) - this.accomodation = new ArrayList(); - return this.accomodation; - } - - public boolean hasAccomodation() { - if (this.accomodation == null) - return false; - for (EncounterHospitalizationAccomodationComponent item : this.accomodation) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #accomodation} (Where the patient stays during this encounter.) - */ - // syntactic sugar - public EncounterHospitalizationAccomodationComponent addAccomodation() { //3 - EncounterHospitalizationAccomodationComponent t = new EncounterHospitalizationAccomodationComponent(); - if (this.accomodation == null) - this.accomodation = new ArrayList(); - this.accomodation.add(t); - return t; - } - - /** - * @return {@link #diet} (Dietary restrictions for the patient.) - */ - public CodeableConcept getDiet() { - if (this.diet == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationComponent.diet"); - else if (Configuration.doAutoCreate()) - this.diet = new CodeableConcept(); - return this.diet; - } - - public boolean hasDiet() { - return this.diet != null && !this.diet.isEmpty(); - } - - /** - * @param value {@link #diet} (Dietary restrictions for the patient.) - */ - public EncounterHospitalizationComponent setDiet(CodeableConcept value) { - this.diet = value; - return this; - } - - /** - * @return {@link #specialCourtesy} (Special courtesies (VIP, board member).) - */ - public List getSpecialCourtesy() { - if (this.specialCourtesy == null) - this.specialCourtesy = new ArrayList(); - return this.specialCourtesy; - } - - public boolean hasSpecialCourtesy() { - if (this.specialCourtesy == null) - return false; - for (CodeableConcept item : this.specialCourtesy) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #specialCourtesy} (Special courtesies (VIP, board member).) - */ - // syntactic sugar - public CodeableConcept addSpecialCourtesy() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.specialCourtesy == null) - this.specialCourtesy = new ArrayList(); - this.specialCourtesy.add(t); - return t; - } - - /** - * @return {@link #specialArrangement} (Wheelchair, translator, stretcher, etc.) - */ - public List getSpecialArrangement() { - if (this.specialArrangement == null) - this.specialArrangement = new ArrayList(); - return this.specialArrangement; - } - - public boolean hasSpecialArrangement() { - if (this.specialArrangement == null) - return false; - for (CodeableConcept item : this.specialArrangement) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #specialArrangement} (Wheelchair, translator, stretcher, etc.) - */ - // syntactic sugar - public CodeableConcept addSpecialArrangement() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.specialArrangement == null) - this.specialArrangement = new ArrayList(); - this.specialArrangement.add(t); - return t; - } - - /** - * @return {@link #destination} (Location to which the patient is discharged.) - */ - public Reference getDestination() { - if (this.destination == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationComponent.destination"); - else if (Configuration.doAutoCreate()) - this.destination = new Reference(); - return this.destination; - } - - public boolean hasDestination() { - return this.destination != null && !this.destination.isEmpty(); - } - - /** - * @param value {@link #destination} (Location to which the patient is discharged.) - */ - public EncounterHospitalizationComponent setDestination(Reference value) { - this.destination = value; - return this; - } - - /** - * @return {@link #destination} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Location to which the patient is discharged.) - */ - public Location getDestinationTarget() { - if (this.destinationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationComponent.destination"); - else if (Configuration.doAutoCreate()) - this.destinationTarget = new Location(); - return this.destinationTarget; - } - - /** - * @param value {@link #destination} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Location to which the patient is discharged.) - */ - public EncounterHospitalizationComponent setDestinationTarget(Location value) { - this.destinationTarget = value; - return this; - } - - /** - * @return {@link #dischargeDisposition} (Category or kind of location after discharge.) - */ - public CodeableConcept getDischargeDisposition() { - if (this.dischargeDisposition == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationComponent.dischargeDisposition"); - else if (Configuration.doAutoCreate()) - this.dischargeDisposition = new CodeableConcept(); - return this.dischargeDisposition; - } - - public boolean hasDischargeDisposition() { - return this.dischargeDisposition != null && !this.dischargeDisposition.isEmpty(); - } - - /** - * @param value {@link #dischargeDisposition} (Category or kind of location after discharge.) - */ - public EncounterHospitalizationComponent setDischargeDisposition(CodeableConcept value) { - this.dischargeDisposition = value; - return this; - } - - /** - * @return {@link #dischargeDiagnosis} (The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete.) - */ - public Reference getDischargeDiagnosis() { - if (this.dischargeDiagnosis == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationComponent.dischargeDiagnosis"); - else if (Configuration.doAutoCreate()) - this.dischargeDiagnosis = new Reference(); - return this.dischargeDiagnosis; - } - - public boolean hasDischargeDiagnosis() { - return this.dischargeDiagnosis != null && !this.dischargeDiagnosis.isEmpty(); - } - - /** - * @param value {@link #dischargeDiagnosis} (The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete.) - */ - public EncounterHospitalizationComponent setDischargeDiagnosis(Reference value) { - this.dischargeDiagnosis = value; - return this; - } - - /** - * @return {@link #dischargeDiagnosis} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete.) - */ - public Resource getDischargeDiagnosisTarget() { - return this.dischargeDiagnosisTarget; - } - - /** - * @param value {@link #dischargeDiagnosis} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete.) - */ - public EncounterHospitalizationComponent setDischargeDiagnosisTarget(Resource value) { - this.dischargeDiagnosisTarget = value; - return this; - } - - /** - * @return {@link #reAdmission} (Whether this hospitalization is a readmission.). This is the underlying object with id, value and extensions. The accessor "getReAdmission" gives direct access to the value - */ - public BooleanType getReAdmissionElement() { - if (this.reAdmission == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationComponent.reAdmission"); - else if (Configuration.doAutoCreate()) - this.reAdmission = new BooleanType(); - return this.reAdmission; - } - - public boolean hasReAdmissionElement() { - return this.reAdmission != null && !this.reAdmission.isEmpty(); - } - - public boolean hasReAdmission() { - return this.reAdmission != null && !this.reAdmission.isEmpty(); - } - - /** - * @param value {@link #reAdmission} (Whether this hospitalization is a readmission.). This is the underlying object with id, value and extensions. The accessor "getReAdmission" gives direct access to the value - */ - public EncounterHospitalizationComponent setReAdmissionElement(BooleanType value) { - this.reAdmission = value; - return this; - } - - /** - * @return Whether this hospitalization is a readmission. - */ - public boolean getReAdmission() { - return this.reAdmission == null ? false : this.reAdmission.getValue(); - } - - /** - * @param value Whether this hospitalization is a readmission. - */ - public EncounterHospitalizationComponent setReAdmission(boolean value) { - if (value == false) - this.reAdmission = null; - else { - if (this.reAdmission == null) - this.reAdmission = new BooleanType(); - this.reAdmission.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("preAdmissionIdentifier", "Identifier", "Pre-admission identifier.", 0, java.lang.Integer.MAX_VALUE, preAdmissionIdentifier)); - childrenList.add(new Property("origin", "Reference(Location)", "The location from which the patient came before admission.", 0, java.lang.Integer.MAX_VALUE, origin)); - childrenList.add(new Property("admitSource", "CodeableConcept", "From where patient was admitted (physician referral, transfer).", 0, java.lang.Integer.MAX_VALUE, admitSource)); - childrenList.add(new Property("period", "Period", "Period during which the patient was admitted.", 0, java.lang.Integer.MAX_VALUE, period)); - childrenList.add(new Property("accomodation", "", "Where the patient stays during this encounter.", 0, java.lang.Integer.MAX_VALUE, accomodation)); - childrenList.add(new Property("diet", "CodeableConcept", "Dietary restrictions for the patient.", 0, java.lang.Integer.MAX_VALUE, diet)); - childrenList.add(new Property("specialCourtesy", "CodeableConcept", "Special courtesies (VIP, board member).", 0, java.lang.Integer.MAX_VALUE, specialCourtesy)); - childrenList.add(new Property("specialArrangement", "CodeableConcept", "Wheelchair, translator, stretcher, etc.", 0, java.lang.Integer.MAX_VALUE, specialArrangement)); - childrenList.add(new Property("destination", "Reference(Location)", "Location to which the patient is discharged.", 0, java.lang.Integer.MAX_VALUE, destination)); - childrenList.add(new Property("dischargeDisposition", "CodeableConcept", "Category or kind of location after discharge.", 0, java.lang.Integer.MAX_VALUE, dischargeDisposition)); - childrenList.add(new Property("dischargeDiagnosis", "Reference(Any)", "The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete.", 0, java.lang.Integer.MAX_VALUE, dischargeDiagnosis)); - childrenList.add(new Property("reAdmission", "boolean", "Whether this hospitalization is a readmission.", 0, java.lang.Integer.MAX_VALUE, reAdmission)); - } - - public EncounterHospitalizationComponent copy() { - EncounterHospitalizationComponent dst = new EncounterHospitalizationComponent(); - copyValues(dst); - dst.preAdmissionIdentifier = preAdmissionIdentifier == null ? null : preAdmissionIdentifier.copy(); - dst.origin = origin == null ? null : origin.copy(); - dst.admitSource = admitSource == null ? null : admitSource.copy(); - dst.period = period == null ? null : period.copy(); - if (accomodation != null) { - dst.accomodation = new ArrayList(); - for (EncounterHospitalizationAccomodationComponent i : accomodation) - dst.accomodation.add(i.copy()); - }; - dst.diet = diet == null ? null : diet.copy(); - if (specialCourtesy != null) { - dst.specialCourtesy = new ArrayList(); - for (CodeableConcept i : specialCourtesy) - dst.specialCourtesy.add(i.copy()); - }; - if (specialArrangement != null) { - dst.specialArrangement = new ArrayList(); - for (CodeableConcept i : specialArrangement) - dst.specialArrangement.add(i.copy()); - }; - dst.destination = destination == null ? null : destination.copy(); - dst.dischargeDisposition = dischargeDisposition == null ? null : dischargeDisposition.copy(); - dst.dischargeDiagnosis = dischargeDiagnosis == null ? null : dischargeDiagnosis.copy(); - dst.reAdmission = reAdmission == null ? null : reAdmission.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (preAdmissionIdentifier == null || preAdmissionIdentifier.isEmpty()) - && (origin == null || origin.isEmpty()) && (admitSource == null || admitSource.isEmpty()) - && (period == null || period.isEmpty()) && (accomodation == null || accomodation.isEmpty()) - && (diet == null || diet.isEmpty()) && (specialCourtesy == null || specialCourtesy.isEmpty()) - && (specialArrangement == null || specialArrangement.isEmpty()) && (destination == null || destination.isEmpty()) - && (dischargeDisposition == null || dischargeDisposition.isEmpty()) && (dischargeDiagnosis == null || dischargeDiagnosis.isEmpty()) - && (reAdmission == null || reAdmission.isEmpty()); - } - - } - - @Block() - public static class EncounterHospitalizationAccomodationComponent extends BackboneElement { - /** - * The bed that is assigned to the patient. - */ - @Child(name="bed", type={Location.class}, order=1, min=0, max=1) - @Description(shortDefinition="The bed that is assigned to the patient", formalDefinition="The bed that is assigned to the patient." ) - protected Reference bed; - - /** - * The actual object that is the target of the reference (The bed that is assigned to the patient.) - */ - protected Location bedTarget; - - /** - * Period during which the patient was assigned the bed. - */ - @Child(name="period", type={Period.class}, order=2, min=0, max=1) - @Description(shortDefinition="Period during which the patient was assigned the bed", formalDefinition="Period during which the patient was assigned the bed." ) - protected Period period; - - private static final long serialVersionUID = 1058938507L; - - public EncounterHospitalizationAccomodationComponent() { - super(); - } - - /** - * @return {@link #bed} (The bed that is assigned to the patient.) - */ - public Reference getBed() { - if (this.bed == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationAccomodationComponent.bed"); - else if (Configuration.doAutoCreate()) - this.bed = new Reference(); - return this.bed; - } - - public boolean hasBed() { - return this.bed != null && !this.bed.isEmpty(); - } - - /** - * @param value {@link #bed} (The bed that is assigned to the patient.) - */ - public EncounterHospitalizationAccomodationComponent setBed(Reference value) { - this.bed = value; - return this; - } - - /** - * @return {@link #bed} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The bed that is assigned to the patient.) - */ - public Location getBedTarget() { - if (this.bedTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationAccomodationComponent.bed"); - else if (Configuration.doAutoCreate()) - this.bedTarget = new Location(); - return this.bedTarget; - } - - /** - * @param value {@link #bed} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The bed that is assigned to the patient.) - */ - public EncounterHospitalizationAccomodationComponent setBedTarget(Location value) { - this.bedTarget = value; - return this; - } - - /** - * @return {@link #period} (Period during which the patient was assigned the bed.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterHospitalizationAccomodationComponent.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (Period during which the patient was assigned the bed.) - */ - public EncounterHospitalizationAccomodationComponent setPeriod(Period value) { - this.period = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("bed", "Reference(Location)", "The bed that is assigned to the patient.", 0, java.lang.Integer.MAX_VALUE, bed)); - childrenList.add(new Property("period", "Period", "Period during which the patient was assigned the bed.", 0, java.lang.Integer.MAX_VALUE, period)); - } - - public EncounterHospitalizationAccomodationComponent copy() { - EncounterHospitalizationAccomodationComponent dst = new EncounterHospitalizationAccomodationComponent(); - copyValues(dst); - dst.bed = bed == null ? null : bed.copy(); - dst.period = period == null ? null : period.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (bed == null || bed.isEmpty()) && (period == null || period.isEmpty()) - ; - } - - } - - @Block() - public static class EncounterLocationComponent extends BackboneElement { - /** - * The location where the encounter takes place. - */ - @Child(name="location", type={Location.class}, order=1, min=1, max=1) - @Description(shortDefinition="Location the encounter takes place", formalDefinition="The location where the encounter takes place." ) - protected Reference location; - - /** - * The actual object that is the target of the reference (The location where the encounter takes place.) - */ - protected Location locationTarget; - - /** - * Time period during which the patient was present at the location. - */ - @Child(name="period", type={Period.class}, order=2, min=0, max=1) - @Description(shortDefinition="Time period during which the patient was present at the location", formalDefinition="Time period during which the patient was present at the location." ) - protected Period period; - - private static final long serialVersionUID = 1137166303L; - - public EncounterLocationComponent() { - super(); - } - - public EncounterLocationComponent(Reference location) { - super(); - this.location = location; - } - - /** - * @return {@link #location} (The location where the encounter takes place.) - */ - public Reference getLocation() { - if (this.location == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterLocationComponent.location"); - else if (Configuration.doAutoCreate()) - this.location = new Reference(); - return this.location; - } - - public boolean hasLocation() { - return this.location != null && !this.location.isEmpty(); - } - - /** - * @param value {@link #location} (The location where the encounter takes place.) - */ - public EncounterLocationComponent setLocation(Reference value) { - this.location = value; - return this; - } - - /** - * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The location where the encounter takes place.) - */ - public Location getLocationTarget() { - if (this.locationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterLocationComponent.location"); - else if (Configuration.doAutoCreate()) - this.locationTarget = new Location(); - return this.locationTarget; - } - - /** - * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The location where the encounter takes place.) - */ - public EncounterLocationComponent setLocationTarget(Location value) { - this.locationTarget = value; - return this; - } - - /** - * @return {@link #period} (Time period during which the patient was present at the location.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EncounterLocationComponent.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (Time period during which the patient was present at the location.) - */ - public EncounterLocationComponent setPeriod(Period value) { - this.period = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("location", "Reference(Location)", "The location where the encounter takes place.", 0, java.lang.Integer.MAX_VALUE, location)); - childrenList.add(new Property("period", "Period", "Time period during which the patient was present at the location.", 0, java.lang.Integer.MAX_VALUE, period)); - } - - public EncounterLocationComponent copy() { - EncounterLocationComponent dst = new EncounterLocationComponent(); - copyValues(dst); - dst.location = location == null ? null : location.copy(); - dst.period = period == null ? null : period.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (location == null || location.isEmpty()) && (period == null || period.isEmpty()) - ; - } - - } - - /** - * Identifier(s) by which this encounter is known. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Identifier(s) by which this encounter is known", formalDefinition="Identifier(s) by which this encounter is known." ) - protected List identifier; - - /** - * planned | in progress | onleave | finished | cancelled. - */ - @Child(name="status", type={CodeType.class}, order=0, min=1, max=1) - @Description(shortDefinition="planned | in progress | onleave | finished | cancelled", formalDefinition="planned | in progress | onleave | finished | cancelled." ) - protected Enumeration status; - - /** - * inpatient | outpatient | ambulatory | emergency +. - */ - @Child(name="class_", type={CodeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="inpatient | outpatient | ambulatory | emergency +", formalDefinition="inpatient | outpatient | ambulatory | emergency +." ) - protected Enumeration class_; - - /** - * Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation). - */ - @Child(name="type", type={CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Specific type of encounter", formalDefinition="Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation)." ) - protected List type; - - /** - * The patient present at the encounter. - */ - @Child(name="subject", type={Patient.class}, order=3, min=0, max=1) - @Description(shortDefinition="The patient present at the encounter", formalDefinition="The patient present at the encounter." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (The patient present at the encounter.) - */ - protected Patient subjectTarget; - - /** - * The main practitioner responsible for providing the service. - */ - @Child(name="participant", type={}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="List of participants involved in the encounter", formalDefinition="The main practitioner responsible for providing the service." ) - protected List participant; - - /** - * The appointment that scheduled this encounter. - */ - @Child(name="fulfills", type={Appointment.class}, order=5, min=0, max=1) - @Description(shortDefinition="The appointment that scheduled this encounter", formalDefinition="The appointment that scheduled this encounter." ) - protected Reference fulfills; - - /** - * The actual object that is the target of the reference (The appointment that scheduled this encounter.) - */ - protected Appointment fulfillsTarget; - - /** - * The start and end time of the encounter. - */ - @Child(name="period", type={Period.class}, order=6, min=0, max=1) - @Description(shortDefinition="The start and end time of the encounter", formalDefinition="The start and end time of the encounter." ) - protected Period period; - - /** - * Quantity of time the encounter lasted. This excludes the time during leaves of absence. - */ - @Child(name="length", type={Duration.class}, order=7, min=0, max=1) - @Description(shortDefinition="Quantity of time the encounter lasted", formalDefinition="Quantity of time the encounter lasted. This excludes the time during leaves of absence." ) - protected Duration length; - - /** - * Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis. - */ - @Child(name="reason", type={CodeableConcept.class}, order=8, min=0, max=1) - @Description(shortDefinition="Reason the encounter takes place (code)", formalDefinition="Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis." ) - protected CodeableConcept reason; - - /** - * Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. - */ - @Child(name="indication", type={}, order=9, min=0, max=1) - @Description(shortDefinition="Reason the encounter takes place (resource)", formalDefinition="Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis." ) - protected Reference indication; - - /** - * The actual object that is the target of the reference (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.) - */ - protected Resource indicationTarget; - - /** - * Indicates the urgency of the encounter. - */ - @Child(name="priority", type={CodeableConcept.class}, order=10, min=0, max=1) - @Description(shortDefinition="Indicates the urgency of the encounter", formalDefinition="Indicates the urgency of the encounter." ) - protected CodeableConcept priority; - - /** - * Details about an admission to a clinic. - */ - @Child(name="hospitalization", type={}, order=11, min=0, max=1) - @Description(shortDefinition="Details about an admission to a clinic", formalDefinition="Details about an admission to a clinic." ) - protected EncounterHospitalizationComponent hospitalization; - - /** - * List of locations at which the patient has been. - */ - @Child(name="location", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="List of locations the patient has been at", formalDefinition="List of locations at which the patient has been." ) - protected List location; - - /** - * Department or team providing care. - */ - @Child(name="serviceProvider", type={Organization.class}, order=13, min=0, max=1) - @Description(shortDefinition="Department or team providing care", formalDefinition="Department or team providing care." ) - protected Reference serviceProvider; - - /** - * The actual object that is the target of the reference (Department or team providing care.) - */ - protected Organization serviceProviderTarget; - - /** - * Another Encounter of which this encounter is a part of (administratively or in time). - */ - @Child(name="partOf", type={Encounter.class}, order=14, min=0, max=1) - @Description(shortDefinition="Another Encounter this encounter is part of", formalDefinition="Another Encounter of which this encounter is a part of (administratively or in time)." ) - protected Reference partOf; - - /** - * The actual object that is the target of the reference (Another Encounter of which this encounter is a part of (administratively or in time).) - */ - protected Encounter partOfTarget; - - private static final long serialVersionUID = 1294341693L; - - public Encounter() { - super(); - } - - public Encounter(Enumeration status, Enumeration class_) { - super(); - this.status = status; - this.class_ = class_; - } - - /** - * @return {@link #identifier} (Identifier(s) by which this encounter is known.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Identifier(s) by which this encounter is known.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #status} (planned | in progress | onleave | finished | cancelled.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (planned | in progress | onleave | finished | cancelled.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Encounter setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return planned | in progress | onleave | finished | cancelled. - */ - public EncounterState getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value planned | in progress | onleave | finished | cancelled. - */ - public Encounter setStatus(EncounterState value) { - if (this.status == null) - this.status = new Enumeration(EncounterState.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #class_} (inpatient | outpatient | ambulatory | emergency +.). This is the underlying object with id, value and extensions. The accessor "getClass_" gives direct access to the value - */ - public Enumeration getClass_Element() { - if (this.class_ == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.class_"); - else if (Configuration.doAutoCreate()) - this.class_ = new Enumeration(); - return this.class_; - } - - public boolean hasClass_Element() { - return this.class_ != null && !this.class_.isEmpty(); - } - - public boolean hasClass_() { - return this.class_ != null && !this.class_.isEmpty(); - } - - /** - * @param value {@link #class_} (inpatient | outpatient | ambulatory | emergency +.). This is the underlying object with id, value and extensions. The accessor "getClass_" gives direct access to the value - */ - public Encounter setClass_Element(Enumeration value) { - this.class_ = value; - return this; - } - - /** - * @return inpatient | outpatient | ambulatory | emergency +. - */ - public EncounterClass getClass_() { - return this.class_ == null ? null : this.class_.getValue(); - } - - /** - * @param value inpatient | outpatient | ambulatory | emergency +. - */ - public Encounter setClass_(EncounterClass value) { - if (this.class_ == null) - this.class_ = new Enumeration(EncounterClass.ENUM_FACTORY); - this.class_.setValue(value); - return this; - } - - /** - * @return {@link #type} (Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).) - */ - public List getType() { - if (this.type == null) - this.type = new ArrayList(); - return this.type; - } - - public boolean hasType() { - if (this.type == null) - return false; - for (CodeableConcept item : this.type) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #type} (Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).) - */ - // syntactic sugar - public CodeableConcept addType() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.type == null) - this.type = new ArrayList(); - this.type.add(t); - return t; - } - - /** - * @return {@link #subject} (The patient present at the encounter.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (The patient present at the encounter.) - */ - public Encounter setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient present at the encounter.) - */ - public Patient getSubjectTarget() { - if (this.subjectTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.subject"); - else if (Configuration.doAutoCreate()) - this.subjectTarget = new Patient(); - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient present at the encounter.) - */ - public Encounter setSubjectTarget(Patient value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #participant} (The main practitioner responsible for providing the service.) - */ - public List getParticipant() { - if (this.participant == null) - this.participant = new ArrayList(); - return this.participant; - } - - public boolean hasParticipant() { - if (this.participant == null) - return false; - for (EncounterParticipantComponent item : this.participant) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #participant} (The main practitioner responsible for providing the service.) - */ - // syntactic sugar - public EncounterParticipantComponent addParticipant() { //3 - EncounterParticipantComponent t = new EncounterParticipantComponent(); - if (this.participant == null) - this.participant = new ArrayList(); - this.participant.add(t); - return t; - } - - /** - * @return {@link #fulfills} (The appointment that scheduled this encounter.) - */ - public Reference getFulfills() { - if (this.fulfills == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.fulfills"); - else if (Configuration.doAutoCreate()) - this.fulfills = new Reference(); - return this.fulfills; - } - - public boolean hasFulfills() { - return this.fulfills != null && !this.fulfills.isEmpty(); - } - - /** - * @param value {@link #fulfills} (The appointment that scheduled this encounter.) - */ - public Encounter setFulfills(Reference value) { - this.fulfills = value; - return this; - } - - /** - * @return {@link #fulfills} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The appointment that scheduled this encounter.) - */ - public Appointment getFulfillsTarget() { - if (this.fulfillsTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.fulfills"); - else if (Configuration.doAutoCreate()) - this.fulfillsTarget = new Appointment(); - return this.fulfillsTarget; - } - - /** - * @param value {@link #fulfills} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The appointment that scheduled this encounter.) - */ - public Encounter setFulfillsTarget(Appointment value) { - this.fulfillsTarget = value; - return this; - } - - /** - * @return {@link #period} (The start and end time of the encounter.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (The start and end time of the encounter.) - */ - public Encounter setPeriod(Period value) { - this.period = value; - return this; - } - - /** - * @return {@link #length} (Quantity of time the encounter lasted. This excludes the time during leaves of absence.) - */ - public Duration getLength() { - if (this.length == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.length"); - else if (Configuration.doAutoCreate()) - this.length = new Duration(); - return this.length; - } - - public boolean hasLength() { - return this.length != null && !this.length.isEmpty(); - } - - /** - * @param value {@link #length} (Quantity of time the encounter lasted. This excludes the time during leaves of absence.) - */ - public Encounter setLength(Duration value) { - this.length = value; - return this; - } - - /** - * @return {@link #reason} (Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.) - */ - public CodeableConcept getReason() { - if (this.reason == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.reason"); - else if (Configuration.doAutoCreate()) - this.reason = new CodeableConcept(); - return this.reason; - } - - public boolean hasReason() { - return this.reason != null && !this.reason.isEmpty(); - } - - /** - * @param value {@link #reason} (Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.) - */ - public Encounter setReason(CodeableConcept value) { - this.reason = value; - return this; - } - - /** - * @return {@link #indication} (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.) - */ - public Reference getIndication() { - if (this.indication == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.indication"); - else if (Configuration.doAutoCreate()) - this.indication = new Reference(); - return this.indication; - } - - public boolean hasIndication() { - return this.indication != null && !this.indication.isEmpty(); - } - - /** - * @param value {@link #indication} (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.) - */ - public Encounter setIndication(Reference value) { - this.indication = value; - return this; - } - - /** - * @return {@link #indication} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.) - */ - public Resource getIndicationTarget() { - return this.indicationTarget; - } - - /** - * @param value {@link #indication} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.) - */ - public Encounter setIndicationTarget(Resource value) { - this.indicationTarget = value; - return this; - } - - /** - * @return {@link #priority} (Indicates the urgency of the encounter.) - */ - public CodeableConcept getPriority() { - if (this.priority == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.priority"); - else if (Configuration.doAutoCreate()) - this.priority = new CodeableConcept(); - return this.priority; - } - - public boolean hasPriority() { - return this.priority != null && !this.priority.isEmpty(); - } - - /** - * @param value {@link #priority} (Indicates the urgency of the encounter.) - */ - public Encounter setPriority(CodeableConcept value) { - this.priority = value; - return this; - } - - /** - * @return {@link #hospitalization} (Details about an admission to a clinic.) - */ - public EncounterHospitalizationComponent getHospitalization() { - if (this.hospitalization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.hospitalization"); - else if (Configuration.doAutoCreate()) - this.hospitalization = new EncounterHospitalizationComponent(); - return this.hospitalization; - } - - public boolean hasHospitalization() { - return this.hospitalization != null && !this.hospitalization.isEmpty(); - } - - /** - * @param value {@link #hospitalization} (Details about an admission to a clinic.) - */ - public Encounter setHospitalization(EncounterHospitalizationComponent value) { - this.hospitalization = value; - return this; - } - - /** - * @return {@link #location} (List of locations at which the patient has been.) - */ - public List getLocation() { - if (this.location == null) - this.location = new ArrayList(); - return this.location; - } - - public boolean hasLocation() { - if (this.location == null) - return false; - for (EncounterLocationComponent item : this.location) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #location} (List of locations at which the patient has been.) - */ - // syntactic sugar - public EncounterLocationComponent addLocation() { //3 - EncounterLocationComponent t = new EncounterLocationComponent(); - if (this.location == null) - this.location = new ArrayList(); - this.location.add(t); - return t; - } - - /** - * @return {@link #serviceProvider} (Department or team providing care.) - */ - public Reference getServiceProvider() { - if (this.serviceProvider == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.serviceProvider"); - else if (Configuration.doAutoCreate()) - this.serviceProvider = new Reference(); - return this.serviceProvider; - } - - public boolean hasServiceProvider() { - return this.serviceProvider != null && !this.serviceProvider.isEmpty(); - } - - /** - * @param value {@link #serviceProvider} (Department or team providing care.) - */ - public Encounter setServiceProvider(Reference value) { - this.serviceProvider = value; - return this; - } - - /** - * @return {@link #serviceProvider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Department or team providing care.) - */ - public Organization getServiceProviderTarget() { - if (this.serviceProviderTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.serviceProvider"); - else if (Configuration.doAutoCreate()) - this.serviceProviderTarget = new Organization(); - return this.serviceProviderTarget; - } - - /** - * @param value {@link #serviceProvider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Department or team providing care.) - */ - public Encounter setServiceProviderTarget(Organization value) { - this.serviceProviderTarget = value; - return this; - } - - /** - * @return {@link #partOf} (Another Encounter of which this encounter is a part of (administratively or in time).) - */ - public Reference getPartOf() { - if (this.partOf == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.partOf"); - else if (Configuration.doAutoCreate()) - this.partOf = new Reference(); - return this.partOf; - } - - public boolean hasPartOf() { - return this.partOf != null && !this.partOf.isEmpty(); - } - - /** - * @param value {@link #partOf} (Another Encounter of which this encounter is a part of (administratively or in time).) - */ - public Encounter setPartOf(Reference value) { - this.partOf = value; - return this; - } - - /** - * @return {@link #partOf} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Another Encounter of which this encounter is a part of (administratively or in time).) - */ - public Encounter getPartOfTarget() { - if (this.partOfTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Encounter.partOf"); - else if (Configuration.doAutoCreate()) - this.partOfTarget = new Encounter(); - return this.partOfTarget; - } - - /** - * @param value {@link #partOf} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Another Encounter of which this encounter is a part of (administratively or in time).) - */ - public Encounter setPartOfTarget(Encounter value) { - this.partOfTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "Identifier(s) by which this encounter is known.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("status", "code", "planned | in progress | onleave | finished | cancelled.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("class", "code", "inpatient | outpatient | ambulatory | emergency +.", 0, java.lang.Integer.MAX_VALUE, class_)); - childrenList.add(new Property("type", "CodeableConcept", "Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("subject", "Reference(Patient)", "The patient present at the encounter.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("participant", "", "The main practitioner responsible for providing the service.", 0, java.lang.Integer.MAX_VALUE, participant)); - childrenList.add(new Property("fulfills", "Reference(Appointment)", "The appointment that scheduled this encounter.", 0, java.lang.Integer.MAX_VALUE, fulfills)); - childrenList.add(new Property("period", "Period", "The start and end time of the encounter.", 0, java.lang.Integer.MAX_VALUE, period)); - childrenList.add(new Property("length", "Duration", "Quantity of time the encounter lasted. This excludes the time during leaves of absence.", 0, java.lang.Integer.MAX_VALUE, length)); - childrenList.add(new Property("reason", "CodeableConcept", "Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.", 0, java.lang.Integer.MAX_VALUE, reason)); - childrenList.add(new Property("indication", "Reference(Any)", "Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.", 0, java.lang.Integer.MAX_VALUE, indication)); - childrenList.add(new Property("priority", "CodeableConcept", "Indicates the urgency of the encounter.", 0, java.lang.Integer.MAX_VALUE, priority)); - childrenList.add(new Property("hospitalization", "", "Details about an admission to a clinic.", 0, java.lang.Integer.MAX_VALUE, hospitalization)); - childrenList.add(new Property("location", "", "List of locations at which the patient has been.", 0, java.lang.Integer.MAX_VALUE, location)); - childrenList.add(new Property("serviceProvider", "Reference(Organization)", "Department or team providing care.", 0, java.lang.Integer.MAX_VALUE, serviceProvider)); - childrenList.add(new Property("partOf", "Reference(Encounter)", "Another Encounter of which this encounter is a part of (administratively or in time).", 0, java.lang.Integer.MAX_VALUE, partOf)); - } - - public Encounter copy() { - Encounter dst = new Encounter(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.status = status == null ? null : status.copy(); - dst.class_ = class_ == null ? null : class_.copy(); - if (type != null) { - dst.type = new ArrayList(); - for (CodeableConcept i : type) - dst.type.add(i.copy()); - }; - dst.subject = subject == null ? null : subject.copy(); - if (participant != null) { - dst.participant = new ArrayList(); - for (EncounterParticipantComponent i : participant) - dst.participant.add(i.copy()); - }; - dst.fulfills = fulfills == null ? null : fulfills.copy(); - dst.period = period == null ? null : period.copy(); - dst.length = length == null ? null : length.copy(); - dst.reason = reason == null ? null : reason.copy(); - dst.indication = indication == null ? null : indication.copy(); - dst.priority = priority == null ? null : priority.copy(); - dst.hospitalization = hospitalization == null ? null : hospitalization.copy(); - if (location != null) { - dst.location = new ArrayList(); - for (EncounterLocationComponent i : location) - dst.location.add(i.copy()); - }; - dst.serviceProvider = serviceProvider == null ? null : serviceProvider.copy(); - dst.partOf = partOf == null ? null : partOf.copy(); - return dst; - } - - protected Encounter typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (status == null || status.isEmpty()) - && (class_ == null || class_.isEmpty()) && (type == null || type.isEmpty()) && (subject == null || subject.isEmpty()) - && (participant == null || participant.isEmpty()) && (fulfills == null || fulfills.isEmpty()) - && (period == null || period.isEmpty()) && (length == null || length.isEmpty()) && (reason == null || reason.isEmpty()) - && (indication == null || indication.isEmpty()) && (priority == null || priority.isEmpty()) - && (hospitalization == null || hospitalization.isEmpty()) && (location == null || location.isEmpty()) - && (serviceProvider == null || serviceProvider.isEmpty()) && (partOf == null || partOf.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Encounter; - } - - @SearchParamDefinition(name="patient", path="Encounter.subject", description="The patient present at the encounter", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="location", path="Encounter.location.location", description="Location the encounter takes place", type="reference" ) - public static final String SP_LOCATION = "location"; - @SearchParamDefinition(name="status", path="Encounter.status", description="planned | in progress | onleave | finished | cancelled", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="subject", path="Encounter.subject", description="The patient present at the encounter", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="indication", path="Encounter.indication", description="Reason the encounter takes place (resource)", type="reference" ) - public static final String SP_INDICATION = "indication"; - @SearchParamDefinition(name="length", path="Encounter.length", description="Length of encounter in days", type="number" ) - public static final String SP_LENGTH = "length"; - @SearchParamDefinition(name="date", path="Encounter.period", description="A date within the period the Encounter lasted", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="identifier", path="Encounter.identifier", description="Identifier(s) by which this encounter is known", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - @SearchParamDefinition(name="location-period", path="Encounter.location.period", description="Time period during which the patient was present at the location", type="date" ) - public static final String SP_LOCATIONPERIOD = "location-period"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient. + */ +@ResourceDef(name="Encounter", profile="http://hl7.org/fhir/Profile/Encounter") +public class Encounter extends DomainResource { + + public enum EncounterState { + /** + * The Encounter has not yet started. + */ + PLANNED, + /** + * The Patient is present for the encounter, however is not currently meeting with a practitioner. + */ + ARRIVED, + /** + * The Encounter has begun and the patient is present / the practitioner and the patient are meeting. + */ + INPROGRESS, + /** + * The Encounter has begun, but the patient is temporarily on leave. + */ + ONLEAVE, + /** + * The Encounter has ended. + */ + FINISHED, + /** + * The Encounter has ended before it has begun. + */ + CANCELLED, + /** + * added to help the parsers + */ + NULL; + public static EncounterState fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("planned".equals(codeString)) + return PLANNED; + if ("arrived".equals(codeString)) + return ARRIVED; + if ("in-progress".equals(codeString)) + return INPROGRESS; + if ("onleave".equals(codeString)) + return ONLEAVE; + if ("finished".equals(codeString)) + return FINISHED; + if ("cancelled".equals(codeString)) + return CANCELLED; + throw new Exception("Unknown EncounterState code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PLANNED: return "planned"; + case ARRIVED: return "arrived"; + case INPROGRESS: return "in-progress"; + case ONLEAVE: return "onleave"; + case FINISHED: return "finished"; + case CANCELLED: return "cancelled"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PLANNED: return ""; + case ARRIVED: return ""; + case INPROGRESS: return ""; + case ONLEAVE: return ""; + case FINISHED: return ""; + case CANCELLED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PLANNED: return "The Encounter has not yet started."; + case ARRIVED: return "The Patient is present for the encounter, however is not currently meeting with a practitioner."; + case INPROGRESS: return "The Encounter has begun and the patient is present / the practitioner and the patient are meeting."; + case ONLEAVE: return "The Encounter has begun, but the patient is temporarily on leave."; + case FINISHED: return "The Encounter has ended."; + case CANCELLED: return "The Encounter has ended before it has begun."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PLANNED: return "Planned"; + case ARRIVED: return "Arrived"; + case INPROGRESS: return "in-progress"; + case ONLEAVE: return "On Leave"; + case FINISHED: return "Finished"; + case CANCELLED: return "Cancelled"; + default: return "?"; + } + } + } + + public static class EncounterStateEnumFactory implements EnumFactory { + public EncounterState fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("planned".equals(codeString)) + return EncounterState.PLANNED; + if ("arrived".equals(codeString)) + return EncounterState.ARRIVED; + if ("in-progress".equals(codeString)) + return EncounterState.INPROGRESS; + if ("onleave".equals(codeString)) + return EncounterState.ONLEAVE; + if ("finished".equals(codeString)) + return EncounterState.FINISHED; + if ("cancelled".equals(codeString)) + return EncounterState.CANCELLED; + throw new IllegalArgumentException("Unknown EncounterState code '"+codeString+"'"); + } + public String toCode(EncounterState code) { + if (code == EncounterState.PLANNED) + return "planned"; + if (code == EncounterState.ARRIVED) + return "arrived"; + if (code == EncounterState.INPROGRESS) + return "in-progress"; + if (code == EncounterState.ONLEAVE) + return "onleave"; + if (code == EncounterState.FINISHED) + return "finished"; + if (code == EncounterState.CANCELLED) + return "cancelled"; + return "?"; + } + } + + public enum EncounterClass { + /** + * An encounter during which the patient is hospitalized and stays overnight. + */ + INPATIENT, + /** + * An encounter during which the patient is not hospitalized overnight. + */ + OUTPATIENT, + /** + * An encounter where the patient visits the practitioner in his/her office, e.g. a G.P. visit. + */ + AMBULATORY, + /** + * An encounter where the patient needs urgent care. + */ + EMERGENCY, + /** + * An encounter where the practitioner visits the patient at his/her home. + */ + HOME, + /** + * An encounter taking place outside the regular environment for giving care. + */ + FIELD, + /** + * An encounter where the patient needs more prolonged treatment or investigations than outpatients, but who do not need to stay in the hospital overnight. + */ + DAYTIME, + /** + * An encounter that takes place where the patient and practitioner do not physically meet but use electronic means for contact. + */ + VIRTUAL, + /** + * Any other encounter type that is not described by one of the other values. Where this is used it is expected that an implementer will include an extension value to define what the actual other type is. + */ + OTHER, + /** + * added to help the parsers + */ + NULL; + public static EncounterClass fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("inpatient".equals(codeString)) + return INPATIENT; + if ("outpatient".equals(codeString)) + return OUTPATIENT; + if ("ambulatory".equals(codeString)) + return AMBULATORY; + if ("emergency".equals(codeString)) + return EMERGENCY; + if ("home".equals(codeString)) + return HOME; + if ("field".equals(codeString)) + return FIELD; + if ("daytime".equals(codeString)) + return DAYTIME; + if ("virtual".equals(codeString)) + return VIRTUAL; + if ("other".equals(codeString)) + return OTHER; + throw new Exception("Unknown EncounterClass code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case INPATIENT: return "inpatient"; + case OUTPATIENT: return "outpatient"; + case AMBULATORY: return "ambulatory"; + case EMERGENCY: return "emergency"; + case HOME: return "home"; + case FIELD: return "field"; + case DAYTIME: return "daytime"; + case VIRTUAL: return "virtual"; + case OTHER: return "other"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case INPATIENT: return ""; + case OUTPATIENT: return ""; + case AMBULATORY: return ""; + case EMERGENCY: return ""; + case HOME: return ""; + case FIELD: return ""; + case DAYTIME: return ""; + case VIRTUAL: return ""; + case OTHER: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case INPATIENT: return "An encounter during which the patient is hospitalized and stays overnight."; + case OUTPATIENT: return "An encounter during which the patient is not hospitalized overnight."; + case AMBULATORY: return "An encounter where the patient visits the practitioner in his/her office, e.g. a G.P. visit."; + case EMERGENCY: return "An encounter where the patient needs urgent care."; + case HOME: return "An encounter where the practitioner visits the patient at his/her home."; + case FIELD: return "An encounter taking place outside the regular environment for giving care."; + case DAYTIME: return "An encounter where the patient needs more prolonged treatment or investigations than outpatients, but who do not need to stay in the hospital overnight."; + case VIRTUAL: return "An encounter that takes place where the patient and practitioner do not physically meet but use electronic means for contact."; + case OTHER: return "Any other encounter type that is not described by one of the other values. Where this is used it is expected that an implementer will include an extension value to define what the actual other type is."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case INPATIENT: return "inpatient"; + case OUTPATIENT: return "outpatient"; + case AMBULATORY: return "ambulatory"; + case EMERGENCY: return "emergency"; + case HOME: return "home"; + case FIELD: return "field"; + case DAYTIME: return "daytime"; + case VIRTUAL: return "virtual"; + case OTHER: return "other"; + default: return "?"; + } + } + } + + public static class EncounterClassEnumFactory implements EnumFactory { + public EncounterClass fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("inpatient".equals(codeString)) + return EncounterClass.INPATIENT; + if ("outpatient".equals(codeString)) + return EncounterClass.OUTPATIENT; + if ("ambulatory".equals(codeString)) + return EncounterClass.AMBULATORY; + if ("emergency".equals(codeString)) + return EncounterClass.EMERGENCY; + if ("home".equals(codeString)) + return EncounterClass.HOME; + if ("field".equals(codeString)) + return EncounterClass.FIELD; + if ("daytime".equals(codeString)) + return EncounterClass.DAYTIME; + if ("virtual".equals(codeString)) + return EncounterClass.VIRTUAL; + if ("other".equals(codeString)) + return EncounterClass.OTHER; + throw new IllegalArgumentException("Unknown EncounterClass code '"+codeString+"'"); + } + public String toCode(EncounterClass code) { + if (code == EncounterClass.INPATIENT) + return "inpatient"; + if (code == EncounterClass.OUTPATIENT) + return "outpatient"; + if (code == EncounterClass.AMBULATORY) + return "ambulatory"; + if (code == EncounterClass.EMERGENCY) + return "emergency"; + if (code == EncounterClass.HOME) + return "home"; + if (code == EncounterClass.FIELD) + return "field"; + if (code == EncounterClass.DAYTIME) + return "daytime"; + if (code == EncounterClass.VIRTUAL) + return "virtual"; + if (code == EncounterClass.OTHER) + return "other"; + return "?"; + } + } + + public enum EncounterLocationStatus { + /** + * The patient is planned to be moved to this location at some point in the future. + */ + PLANNED, + /** + * The patient is currently at this location, or was between the period specified. + */ + PRESENT, + /** + * This location is held empty for this patient. + */ + RESERVED, + /** + * added to help the parsers + */ + NULL; + public static EncounterLocationStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("planned".equals(codeString)) + return PLANNED; + if ("present".equals(codeString)) + return PRESENT; + if ("reserved".equals(codeString)) + return RESERVED; + throw new Exception("Unknown EncounterLocationStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PLANNED: return "planned"; + case PRESENT: return "present"; + case RESERVED: return "reserved"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PLANNED: return ""; + case PRESENT: return ""; + case RESERVED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PLANNED: return "The patient is planned to be moved to this location at some point in the future."; + case PRESENT: return "The patient is currently at this location, or was between the period specified."; + case RESERVED: return "This location is held empty for this patient."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PLANNED: return "Planned"; + case PRESENT: return "Present"; + case RESERVED: return "Reserved"; + default: return "?"; + } + } + } + + public static class EncounterLocationStatusEnumFactory implements EnumFactory { + public EncounterLocationStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("planned".equals(codeString)) + return EncounterLocationStatus.PLANNED; + if ("present".equals(codeString)) + return EncounterLocationStatus.PRESENT; + if ("reserved".equals(codeString)) + return EncounterLocationStatus.RESERVED; + throw new IllegalArgumentException("Unknown EncounterLocationStatus code '"+codeString+"'"); + } + public String toCode(EncounterLocationStatus code) { + if (code == EncounterLocationStatus.PLANNED) + return "planned"; + if (code == EncounterLocationStatus.PRESENT) + return "present"; + if (code == EncounterLocationStatus.RESERVED) + return "reserved"; + return "?"; + } + } + + @Block() + public static class EncounterStatusHistoryComponent extends BackboneElement { + /** + * planned | arrived | in-progress | onleave | finished | cancelled. + */ + @Child(name="status", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="planned | arrived | in-progress | onleave | finished | cancelled", formalDefinition="planned | arrived | in-progress | onleave | finished | cancelled." ) + protected Enumeration status; + + /** + * The time that the episode was in the specified status. + */ + @Child(name="period", type={Period.class}, order=2, min=1, max=1) + @Description(shortDefinition="The time that the episode was in the specified status", formalDefinition="The time that the episode was in the specified status." ) + protected Period period; + + private static final long serialVersionUID = 919229161L; + + public EncounterStatusHistoryComponent() { + super(); + } + + public EncounterStatusHistoryComponent(Enumeration status, Period period) { + super(); + this.status = status; + this.period = period; + } + + /** + * @return {@link #status} (planned | arrived | in-progress | onleave | finished | cancelled.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterStatusHistoryComponent.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new EncounterStateEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (planned | arrived | in-progress | onleave | finished | cancelled.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public EncounterStatusHistoryComponent setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return planned | arrived | in-progress | onleave | finished | cancelled. + */ + public EncounterState getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value planned | arrived | in-progress | onleave | finished | cancelled. + */ + public EncounterStatusHistoryComponent setStatus(EncounterState value) { + if (this.status == null) + this.status = new Enumeration(new EncounterStateEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #period} (The time that the episode was in the specified status.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterStatusHistoryComponent.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (The time that the episode was in the specified status.) + */ + public EncounterStatusHistoryComponent setPeriod(Period value) { + this.period = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("status", "code", "planned | arrived | in-progress | onleave | finished | cancelled.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("period", "Period", "The time that the episode was in the specified status.", 0, java.lang.Integer.MAX_VALUE, period)); + } + + public EncounterStatusHistoryComponent copy() { + EncounterStatusHistoryComponent dst = new EncounterStatusHistoryComponent(); + copyValues(dst); + dst.status = status == null ? null : status.copy(); + dst.period = period == null ? null : period.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof EncounterStatusHistoryComponent)) + return false; + EncounterStatusHistoryComponent o = (EncounterStatusHistoryComponent) other; + return compareDeep(status, o.status, true) && compareDeep(period, o.period, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof EncounterStatusHistoryComponent)) + return false; + EncounterStatusHistoryComponent o = (EncounterStatusHistoryComponent) other; + return compareValues(status, o.status, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (status == null || status.isEmpty()) && (period == null || period.isEmpty()) + ; + } + + } + + @Block() + public static class EncounterParticipantComponent extends BackboneElement { + /** + * Role of participant in encounter. + */ + @Child(name="type", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Role of participant in encounter", formalDefinition="Role of participant in encounter." ) + protected List type; + + /** + * The period of time that the specified participant was present during the encounter. These can overlap or be sub-sets of the overall encounters period. + */ + @Child(name="period", type={Period.class}, order=2, min=0, max=1) + @Description(shortDefinition="Period of time during the encounter participant was present", formalDefinition="The period of time that the specified participant was present during the encounter. These can overlap or be sub-sets of the overall encounters period." ) + protected Period period; + + /** + * Persons involved in the encounter other than the patient. + */ + @Child(name="individual", type={Practitioner.class, RelatedPerson.class}, order=3, min=0, max=1) + @Description(shortDefinition="Persons involved in the encounter other than the patient", formalDefinition="Persons involved in the encounter other than the patient." ) + protected Reference individual; + + /** + * The actual object that is the target of the reference (Persons involved in the encounter other than the patient.) + */ + protected Resource individualTarget; + + private static final long serialVersionUID = 317095765L; + + public EncounterParticipantComponent() { + super(); + } + + /** + * @return {@link #type} (Role of participant in encounter.) + */ + public List getType() { + if (this.type == null) + this.type = new ArrayList(); + return this.type; + } + + public boolean hasType() { + if (this.type == null) + return false; + for (CodeableConcept item : this.type) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #type} (Role of participant in encounter.) + */ + // syntactic sugar + public CodeableConcept addType() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.type == null) + this.type = new ArrayList(); + this.type.add(t); + return t; + } + + /** + * @return {@link #period} (The period of time that the specified participant was present during the encounter. These can overlap or be sub-sets of the overall encounters period.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterParticipantComponent.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (The period of time that the specified participant was present during the encounter. These can overlap or be sub-sets of the overall encounters period.) + */ + public EncounterParticipantComponent setPeriod(Period value) { + this.period = value; + return this; + } + + /** + * @return {@link #individual} (Persons involved in the encounter other than the patient.) + */ + public Reference getIndividual() { + if (this.individual == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterParticipantComponent.individual"); + else if (Configuration.doAutoCreate()) + this.individual = new Reference(); // cc + return this.individual; + } + + public boolean hasIndividual() { + return this.individual != null && !this.individual.isEmpty(); + } + + /** + * @param value {@link #individual} (Persons involved in the encounter other than the patient.) + */ + public EncounterParticipantComponent setIndividual(Reference value) { + this.individual = value; + return this; + } + + /** + * @return {@link #individual} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Persons involved in the encounter other than the patient.) + */ + public Resource getIndividualTarget() { + return this.individualTarget; + } + + /** + * @param value {@link #individual} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Persons involved in the encounter other than the patient.) + */ + public EncounterParticipantComponent setIndividualTarget(Resource value) { + this.individualTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "CodeableConcept", "Role of participant in encounter.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("period", "Period", "The period of time that the specified participant was present during the encounter. These can overlap or be sub-sets of the overall encounters period.", 0, java.lang.Integer.MAX_VALUE, period)); + childrenList.add(new Property("individual", "Reference(Practitioner|RelatedPerson)", "Persons involved in the encounter other than the patient.", 0, java.lang.Integer.MAX_VALUE, individual)); + } + + public EncounterParticipantComponent copy() { + EncounterParticipantComponent dst = new EncounterParticipantComponent(); + copyValues(dst); + if (type != null) { + dst.type = new ArrayList(); + for (CodeableConcept i : type) + dst.type.add(i.copy()); + }; + dst.period = period == null ? null : period.copy(); + dst.individual = individual == null ? null : individual.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof EncounterParticipantComponent)) + return false; + EncounterParticipantComponent o = (EncounterParticipantComponent) other; + return compareDeep(type, o.type, true) && compareDeep(period, o.period, true) && compareDeep(individual, o.individual, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof EncounterParticipantComponent)) + return false; + EncounterParticipantComponent o = (EncounterParticipantComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (period == null || period.isEmpty()) + && (individual == null || individual.isEmpty()); + } + + } + + @Block() + public static class EncounterHospitalizationComponent extends BackboneElement { + /** + * Pre-admission identifier. + */ + @Child(name="preAdmissionIdentifier", type={Identifier.class}, order=1, min=0, max=1) + @Description(shortDefinition="Pre-admission identifier", formalDefinition="Pre-admission identifier." ) + protected Identifier preAdmissionIdentifier; + + /** + * The location from which the patient came before admission. + */ + @Child(name="origin", type={Location.class}, order=2, min=0, max=1) + @Description(shortDefinition="The location from which the patient came before admission", formalDefinition="The location from which the patient came before admission." ) + protected Reference origin; + + /** + * The actual object that is the target of the reference (The location from which the patient came before admission.) + */ + protected Location originTarget; + + /** + * From where patient was admitted (physician referral, transfer). + */ + @Child(name="admitSource", type={CodeableConcept.class}, order=3, min=0, max=1) + @Description(shortDefinition="From where patient was admitted (physician referral, transfer)", formalDefinition="From where patient was admitted (physician referral, transfer)." ) + protected CodeableConcept admitSource; + + /** + * Dietary restrictions for the patient. + */ + @Child(name="diet", type={CodeableConcept.class}, order=4, min=0, max=1) + @Description(shortDefinition="Dietary restrictions for the patient", formalDefinition="Dietary restrictions for the patient." ) + protected CodeableConcept diet; + + /** + * Special courtesies (VIP, board member). + */ + @Child(name="specialCourtesy", type={CodeableConcept.class}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Special courtesies (VIP, board member)", formalDefinition="Special courtesies (VIP, board member)." ) + protected List specialCourtesy; + + /** + * Wheelchair, translator, stretcher, etc. + */ + @Child(name="specialArrangement", type={CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Wheelchair, translator, stretcher, etc", formalDefinition="Wheelchair, translator, stretcher, etc." ) + protected List specialArrangement; + + /** + * Location to which the patient is discharged. + */ + @Child(name="destination", type={Location.class}, order=7, min=0, max=1) + @Description(shortDefinition="Location to which the patient is discharged", formalDefinition="Location to which the patient is discharged." ) + protected Reference destination; + + /** + * The actual object that is the target of the reference (Location to which the patient is discharged.) + */ + protected Location destinationTarget; + + /** + * Category or kind of location after discharge. + */ + @Child(name="dischargeDisposition", type={CodeableConcept.class}, order=8, min=0, max=1) + @Description(shortDefinition="Category or kind of location after discharge", formalDefinition="Category or kind of location after discharge." ) + protected CodeableConcept dischargeDisposition; + + /** + * The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete. + */ + @Child(name="dischargeDiagnosis", type={}, order=9, min=0, max=1) + @Description(shortDefinition="The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete", formalDefinition="The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete." ) + protected Reference dischargeDiagnosis; + + /** + * The actual object that is the target of the reference (The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete.) + */ + protected Resource dischargeDiagnosisTarget; + + /** + * Whether this hospitalization is a readmission. + */ + @Child(name="reAdmission", type={BooleanType.class}, order=10, min=0, max=1) + @Description(shortDefinition="Is this hospitalization a readmission?", formalDefinition="Whether this hospitalization is a readmission." ) + protected BooleanType reAdmission; + + private static final long serialVersionUID = 1133194252L; + + public EncounterHospitalizationComponent() { + super(); + } + + /** + * @return {@link #preAdmissionIdentifier} (Pre-admission identifier.) + */ + public Identifier getPreAdmissionIdentifier() { + if (this.preAdmissionIdentifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterHospitalizationComponent.preAdmissionIdentifier"); + else if (Configuration.doAutoCreate()) + this.preAdmissionIdentifier = new Identifier(); // cc + return this.preAdmissionIdentifier; + } + + public boolean hasPreAdmissionIdentifier() { + return this.preAdmissionIdentifier != null && !this.preAdmissionIdentifier.isEmpty(); + } + + /** + * @param value {@link #preAdmissionIdentifier} (Pre-admission identifier.) + */ + public EncounterHospitalizationComponent setPreAdmissionIdentifier(Identifier value) { + this.preAdmissionIdentifier = value; + return this; + } + + /** + * @return {@link #origin} (The location from which the patient came before admission.) + */ + public Reference getOrigin() { + if (this.origin == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterHospitalizationComponent.origin"); + else if (Configuration.doAutoCreate()) + this.origin = new Reference(); // cc + return this.origin; + } + + public boolean hasOrigin() { + return this.origin != null && !this.origin.isEmpty(); + } + + /** + * @param value {@link #origin} (The location from which the patient came before admission.) + */ + public EncounterHospitalizationComponent setOrigin(Reference value) { + this.origin = value; + return this; + } + + /** + * @return {@link #origin} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The location from which the patient came before admission.) + */ + public Location getOriginTarget() { + if (this.originTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterHospitalizationComponent.origin"); + else if (Configuration.doAutoCreate()) + this.originTarget = new Location(); // aa + return this.originTarget; + } + + /** + * @param value {@link #origin} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The location from which the patient came before admission.) + */ + public EncounterHospitalizationComponent setOriginTarget(Location value) { + this.originTarget = value; + return this; + } + + /** + * @return {@link #admitSource} (From where patient was admitted (physician referral, transfer).) + */ + public CodeableConcept getAdmitSource() { + if (this.admitSource == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterHospitalizationComponent.admitSource"); + else if (Configuration.doAutoCreate()) + this.admitSource = new CodeableConcept(); // cc + return this.admitSource; + } + + public boolean hasAdmitSource() { + return this.admitSource != null && !this.admitSource.isEmpty(); + } + + /** + * @param value {@link #admitSource} (From where patient was admitted (physician referral, transfer).) + */ + public EncounterHospitalizationComponent setAdmitSource(CodeableConcept value) { + this.admitSource = value; + return this; + } + + /** + * @return {@link #diet} (Dietary restrictions for the patient.) + */ + public CodeableConcept getDiet() { + if (this.diet == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterHospitalizationComponent.diet"); + else if (Configuration.doAutoCreate()) + this.diet = new CodeableConcept(); // cc + return this.diet; + } + + public boolean hasDiet() { + return this.diet != null && !this.diet.isEmpty(); + } + + /** + * @param value {@link #diet} (Dietary restrictions for the patient.) + */ + public EncounterHospitalizationComponent setDiet(CodeableConcept value) { + this.diet = value; + return this; + } + + /** + * @return {@link #specialCourtesy} (Special courtesies (VIP, board member).) + */ + public List getSpecialCourtesy() { + if (this.specialCourtesy == null) + this.specialCourtesy = new ArrayList(); + return this.specialCourtesy; + } + + public boolean hasSpecialCourtesy() { + if (this.specialCourtesy == null) + return false; + for (CodeableConcept item : this.specialCourtesy) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #specialCourtesy} (Special courtesies (VIP, board member).) + */ + // syntactic sugar + public CodeableConcept addSpecialCourtesy() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.specialCourtesy == null) + this.specialCourtesy = new ArrayList(); + this.specialCourtesy.add(t); + return t; + } + + /** + * @return {@link #specialArrangement} (Wheelchair, translator, stretcher, etc.) + */ + public List getSpecialArrangement() { + if (this.specialArrangement == null) + this.specialArrangement = new ArrayList(); + return this.specialArrangement; + } + + public boolean hasSpecialArrangement() { + if (this.specialArrangement == null) + return false; + for (CodeableConcept item : this.specialArrangement) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #specialArrangement} (Wheelchair, translator, stretcher, etc.) + */ + // syntactic sugar + public CodeableConcept addSpecialArrangement() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.specialArrangement == null) + this.specialArrangement = new ArrayList(); + this.specialArrangement.add(t); + return t; + } + + /** + * @return {@link #destination} (Location to which the patient is discharged.) + */ + public Reference getDestination() { + if (this.destination == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterHospitalizationComponent.destination"); + else if (Configuration.doAutoCreate()) + this.destination = new Reference(); // cc + return this.destination; + } + + public boolean hasDestination() { + return this.destination != null && !this.destination.isEmpty(); + } + + /** + * @param value {@link #destination} (Location to which the patient is discharged.) + */ + public EncounterHospitalizationComponent setDestination(Reference value) { + this.destination = value; + return this; + } + + /** + * @return {@link #destination} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Location to which the patient is discharged.) + */ + public Location getDestinationTarget() { + if (this.destinationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterHospitalizationComponent.destination"); + else if (Configuration.doAutoCreate()) + this.destinationTarget = new Location(); // aa + return this.destinationTarget; + } + + /** + * @param value {@link #destination} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Location to which the patient is discharged.) + */ + public EncounterHospitalizationComponent setDestinationTarget(Location value) { + this.destinationTarget = value; + return this; + } + + /** + * @return {@link #dischargeDisposition} (Category or kind of location after discharge.) + */ + public CodeableConcept getDischargeDisposition() { + if (this.dischargeDisposition == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterHospitalizationComponent.dischargeDisposition"); + else if (Configuration.doAutoCreate()) + this.dischargeDisposition = new CodeableConcept(); // cc + return this.dischargeDisposition; + } + + public boolean hasDischargeDisposition() { + return this.dischargeDisposition != null && !this.dischargeDisposition.isEmpty(); + } + + /** + * @param value {@link #dischargeDisposition} (Category or kind of location after discharge.) + */ + public EncounterHospitalizationComponent setDischargeDisposition(CodeableConcept value) { + this.dischargeDisposition = value; + return this; + } + + /** + * @return {@link #dischargeDiagnosis} (The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete.) + */ + public Reference getDischargeDiagnosis() { + if (this.dischargeDiagnosis == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterHospitalizationComponent.dischargeDiagnosis"); + else if (Configuration.doAutoCreate()) + this.dischargeDiagnosis = new Reference(); // cc + return this.dischargeDiagnosis; + } + + public boolean hasDischargeDiagnosis() { + return this.dischargeDiagnosis != null && !this.dischargeDiagnosis.isEmpty(); + } + + /** + * @param value {@link #dischargeDiagnosis} (The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete.) + */ + public EncounterHospitalizationComponent setDischargeDiagnosis(Reference value) { + this.dischargeDiagnosis = value; + return this; + } + + /** + * @return {@link #dischargeDiagnosis} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete.) + */ + public Resource getDischargeDiagnosisTarget() { + return this.dischargeDiagnosisTarget; + } + + /** + * @param value {@link #dischargeDiagnosis} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete.) + */ + public EncounterHospitalizationComponent setDischargeDiagnosisTarget(Resource value) { + this.dischargeDiagnosisTarget = value; + return this; + } + + /** + * @return {@link #reAdmission} (Whether this hospitalization is a readmission.). This is the underlying object with id, value and extensions. The accessor "getReAdmission" gives direct access to the value + */ + public BooleanType getReAdmissionElement() { + if (this.reAdmission == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterHospitalizationComponent.reAdmission"); + else if (Configuration.doAutoCreate()) + this.reAdmission = new BooleanType(); // bb + return this.reAdmission; + } + + public boolean hasReAdmissionElement() { + return this.reAdmission != null && !this.reAdmission.isEmpty(); + } + + public boolean hasReAdmission() { + return this.reAdmission != null && !this.reAdmission.isEmpty(); + } + + /** + * @param value {@link #reAdmission} (Whether this hospitalization is a readmission.). This is the underlying object with id, value and extensions. The accessor "getReAdmission" gives direct access to the value + */ + public EncounterHospitalizationComponent setReAdmissionElement(BooleanType value) { + this.reAdmission = value; + return this; + } + + /** + * @return Whether this hospitalization is a readmission. + */ + public boolean getReAdmission() { + return this.reAdmission == null ? false : this.reAdmission.getValue(); + } + + /** + * @param value Whether this hospitalization is a readmission. + */ + public EncounterHospitalizationComponent setReAdmission(boolean value) { + if (this.reAdmission == null) + this.reAdmission = new BooleanType(); + this.reAdmission.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("preAdmissionIdentifier", "Identifier", "Pre-admission identifier.", 0, java.lang.Integer.MAX_VALUE, preAdmissionIdentifier)); + childrenList.add(new Property("origin", "Reference(Location)", "The location from which the patient came before admission.", 0, java.lang.Integer.MAX_VALUE, origin)); + childrenList.add(new Property("admitSource", "CodeableConcept", "From where patient was admitted (physician referral, transfer).", 0, java.lang.Integer.MAX_VALUE, admitSource)); + childrenList.add(new Property("diet", "CodeableConcept", "Dietary restrictions for the patient.", 0, java.lang.Integer.MAX_VALUE, diet)); + childrenList.add(new Property("specialCourtesy", "CodeableConcept", "Special courtesies (VIP, board member).", 0, java.lang.Integer.MAX_VALUE, specialCourtesy)); + childrenList.add(new Property("specialArrangement", "CodeableConcept", "Wheelchair, translator, stretcher, etc.", 0, java.lang.Integer.MAX_VALUE, specialArrangement)); + childrenList.add(new Property("destination", "Reference(Location)", "Location to which the patient is discharged.", 0, java.lang.Integer.MAX_VALUE, destination)); + childrenList.add(new Property("dischargeDisposition", "CodeableConcept", "Category or kind of location after discharge.", 0, java.lang.Integer.MAX_VALUE, dischargeDisposition)); + childrenList.add(new Property("dischargeDiagnosis", "Reference(Any)", "The final diagnosis given a patient before release from the hospital after all testing, surgery, and workup are complete.", 0, java.lang.Integer.MAX_VALUE, dischargeDiagnosis)); + childrenList.add(new Property("reAdmission", "boolean", "Whether this hospitalization is a readmission.", 0, java.lang.Integer.MAX_VALUE, reAdmission)); + } + + public EncounterHospitalizationComponent copy() { + EncounterHospitalizationComponent dst = new EncounterHospitalizationComponent(); + copyValues(dst); + dst.preAdmissionIdentifier = preAdmissionIdentifier == null ? null : preAdmissionIdentifier.copy(); + dst.origin = origin == null ? null : origin.copy(); + dst.admitSource = admitSource == null ? null : admitSource.copy(); + dst.diet = diet == null ? null : diet.copy(); + if (specialCourtesy != null) { + dst.specialCourtesy = new ArrayList(); + for (CodeableConcept i : specialCourtesy) + dst.specialCourtesy.add(i.copy()); + }; + if (specialArrangement != null) { + dst.specialArrangement = new ArrayList(); + for (CodeableConcept i : specialArrangement) + dst.specialArrangement.add(i.copy()); + }; + dst.destination = destination == null ? null : destination.copy(); + dst.dischargeDisposition = dischargeDisposition == null ? null : dischargeDisposition.copy(); + dst.dischargeDiagnosis = dischargeDiagnosis == null ? null : dischargeDiagnosis.copy(); + dst.reAdmission = reAdmission == null ? null : reAdmission.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof EncounterHospitalizationComponent)) + return false; + EncounterHospitalizationComponent o = (EncounterHospitalizationComponent) other; + return compareDeep(preAdmissionIdentifier, o.preAdmissionIdentifier, true) && compareDeep(origin, o.origin, true) + && compareDeep(admitSource, o.admitSource, true) && compareDeep(diet, o.diet, true) && compareDeep(specialCourtesy, o.specialCourtesy, true) + && compareDeep(specialArrangement, o.specialArrangement, true) && compareDeep(destination, o.destination, true) + && compareDeep(dischargeDisposition, o.dischargeDisposition, true) && compareDeep(dischargeDiagnosis, o.dischargeDiagnosis, true) + && compareDeep(reAdmission, o.reAdmission, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof EncounterHospitalizationComponent)) + return false; + EncounterHospitalizationComponent o = (EncounterHospitalizationComponent) other; + return compareValues(reAdmission, o.reAdmission, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (preAdmissionIdentifier == null || preAdmissionIdentifier.isEmpty()) + && (origin == null || origin.isEmpty()) && (admitSource == null || admitSource.isEmpty()) + && (diet == null || diet.isEmpty()) && (specialCourtesy == null || specialCourtesy.isEmpty()) + && (specialArrangement == null || specialArrangement.isEmpty()) && (destination == null || destination.isEmpty()) + && (dischargeDisposition == null || dischargeDisposition.isEmpty()) && (dischargeDiagnosis == null || dischargeDiagnosis.isEmpty()) + && (reAdmission == null || reAdmission.isEmpty()); + } + + } + + @Block() + public static class EncounterLocationComponent extends BackboneElement { + /** + * The location where the encounter takes place. + */ + @Child(name="location", type={Location.class}, order=1, min=1, max=1) + @Description(shortDefinition="Location the encounter takes place", formalDefinition="The location where the encounter takes place." ) + protected Reference location; + + /** + * The actual object that is the target of the reference (The location where the encounter takes place.) + */ + protected Location locationTarget; + + /** + * The status of the participants presence at the specified location during the period specified. If the participant is is no longer at the location, then the period will have an end date/time. + */ + @Child(name="status", type={CodeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="planned | present | reserved", formalDefinition="The status of the participants presence at the specified location during the period specified. If the participant is is no longer at the location, then the period will have an end date/time." ) + protected Enumeration status; + + /** + * Time period during which the patient was present at the location. + */ + @Child(name="period", type={Period.class}, order=3, min=0, max=1) + @Description(shortDefinition="Time period during which the patient was present at the location", formalDefinition="Time period during which the patient was present at the location." ) + protected Period period; + + private static final long serialVersionUID = -322984880L; + + public EncounterLocationComponent() { + super(); + } + + public EncounterLocationComponent(Reference location) { + super(); + this.location = location; + } + + /** + * @return {@link #location} (The location where the encounter takes place.) + */ + public Reference getLocation() { + if (this.location == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterLocationComponent.location"); + else if (Configuration.doAutoCreate()) + this.location = new Reference(); // cc + return this.location; + } + + public boolean hasLocation() { + return this.location != null && !this.location.isEmpty(); + } + + /** + * @param value {@link #location} (The location where the encounter takes place.) + */ + public EncounterLocationComponent setLocation(Reference value) { + this.location = value; + return this; + } + + /** + * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The location where the encounter takes place.) + */ + public Location getLocationTarget() { + if (this.locationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterLocationComponent.location"); + else if (Configuration.doAutoCreate()) + this.locationTarget = new Location(); // aa + return this.locationTarget; + } + + /** + * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The location where the encounter takes place.) + */ + public EncounterLocationComponent setLocationTarget(Location value) { + this.locationTarget = value; + return this; + } + + /** + * @return {@link #status} (The status of the participants presence at the specified location during the period specified. If the participant is is no longer at the location, then the period will have an end date/time.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterLocationComponent.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new EncounterLocationStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of the participants presence at the specified location during the period specified. If the participant is is no longer at the location, then the period will have an end date/time.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public EncounterLocationComponent setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of the participants presence at the specified location during the period specified. If the participant is is no longer at the location, then the period will have an end date/time. + */ + public EncounterLocationStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of the participants presence at the specified location during the period specified. If the participant is is no longer at the location, then the period will have an end date/time. + */ + public EncounterLocationComponent setStatus(EncounterLocationStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new EncounterLocationStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #period} (Time period during which the patient was present at the location.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EncounterLocationComponent.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (Time period during which the patient was present at the location.) + */ + public EncounterLocationComponent setPeriod(Period value) { + this.period = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("location", "Reference(Location)", "The location where the encounter takes place.", 0, java.lang.Integer.MAX_VALUE, location)); + childrenList.add(new Property("status", "code", "The status of the participants presence at the specified location during the period specified. If the participant is is no longer at the location, then the period will have an end date/time.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("period", "Period", "Time period during which the patient was present at the location.", 0, java.lang.Integer.MAX_VALUE, period)); + } + + public EncounterLocationComponent copy() { + EncounterLocationComponent dst = new EncounterLocationComponent(); + copyValues(dst); + dst.location = location == null ? null : location.copy(); + dst.status = status == null ? null : status.copy(); + dst.period = period == null ? null : period.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof EncounterLocationComponent)) + return false; + EncounterLocationComponent o = (EncounterLocationComponent) other; + return compareDeep(location, o.location, true) && compareDeep(status, o.status, true) && compareDeep(period, o.period, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof EncounterLocationComponent)) + return false; + EncounterLocationComponent o = (EncounterLocationComponent) other; + return compareValues(status, o.status, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (location == null || location.isEmpty()) && (status == null || status.isEmpty()) + && (period == null || period.isEmpty()); + } + + } + + /** + * Identifier(s) by which this encounter is known. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Identifier(s) by which this encounter is known", formalDefinition="Identifier(s) by which this encounter is known." ) + protected List identifier; + + /** + * planned | arrived | in-progress | onleave | finished | cancelled. + */ + @Child(name="status", type={CodeType.class}, order=0, min=1, max=1) + @Description(shortDefinition="planned | arrived | in-progress | onleave | finished | cancelled", formalDefinition="planned | arrived | in-progress | onleave | finished | cancelled." ) + protected Enumeration status; + + /** + * The current status is always found in the current version of the resource. This status history permits the encounter resource to contain the status history without the needing to read through the historical versions of the resource, or even have the server store them. + */ + @Child(name="statusHistory", type={}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="List of Encounter statuses", formalDefinition="The current status is always found in the current version of the resource. This status history permits the encounter resource to contain the status history without the needing to read through the historical versions of the resource, or even have the server store them." ) + protected List statusHistory; + + /** + * inpatient | outpatient | ambulatory | emergency +. + */ + @Child(name="class_", type={CodeType.class}, order=2, min=1, max=1) + @Description(shortDefinition="inpatient | outpatient | ambulatory | emergency +", formalDefinition="inpatient | outpatient | ambulatory | emergency +." ) + protected Enumeration class_; + + /** + * Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation). + */ + @Child(name="type", type={CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Specific type of encounter", formalDefinition="Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation)." ) + protected List type; + + /** + * The patient present at the encounter. + */ + @Child(name="patient", type={Patient.class}, order=4, min=0, max=1) + @Description(shortDefinition="The patient present at the encounter", formalDefinition="The patient present at the encounter." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (The patient present at the encounter.) + */ + protected Patient patientTarget; + + /** + * Where a specific encounter should be classified as a part of a specific episode of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, or issue tracking. + */ + @Child(name="episodeOfCare", type={EpisodeOfCare.class}, order=5, min=0, max=1) + @Description(shortDefinition="An episode of care that this encounter should be recorded against", formalDefinition="Where a specific encounter should be classified as a part of a specific episode of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, or issue tracking." ) + protected Reference episodeOfCare; + + /** + * The actual object that is the target of the reference (Where a specific encounter should be classified as a part of a specific episode of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, or issue tracking.) + */ + protected EpisodeOfCare episodeOfCareTarget; + + /** + * The main practitioner responsible for providing the service. + */ + @Child(name="participant", type={}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="List of participants involved in the encounter", formalDefinition="The main practitioner responsible for providing the service." ) + protected List participant; + + /** + * The appointment that scheduled this encounter. + */ + @Child(name="fulfills", type={Appointment.class}, order=7, min=0, max=1) + @Description(shortDefinition="The appointment that scheduled this encounter", formalDefinition="The appointment that scheduled this encounter." ) + protected Reference fulfills; + + /** + * The actual object that is the target of the reference (The appointment that scheduled this encounter.) + */ + protected Appointment fulfillsTarget; + + /** + * The start and end time of the encounter. + */ + @Child(name="period", type={Period.class}, order=8, min=0, max=1) + @Description(shortDefinition="The start and end time of the encounter", formalDefinition="The start and end time of the encounter." ) + protected Period period; + + /** + * Quantity of time the encounter lasted. This excludes the time during leaves of absence. + */ + @Child(name="length", type={Duration.class}, order=9, min=0, max=1) + @Description(shortDefinition="Quantity of time the encounter lasted", formalDefinition="Quantity of time the encounter lasted. This excludes the time during leaves of absence." ) + protected Duration length; + + /** + * Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis. + */ + @Child(name="reason", type={CodeableConcept.class}, order=10, min=0, max=1) + @Description(shortDefinition="Reason the encounter takes place (code)", formalDefinition="Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis." ) + protected CodeableConcept reason; + + /** + * Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. + */ + @Child(name="indication", type={}, order=11, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Reason the encounter takes place (resource)", formalDefinition="Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis." ) + protected List indication; + /** + * The actual objects that are the target of the reference (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.) + */ + protected List indicationTarget; + + + /** + * Indicates the urgency of the encounter. + */ + @Child(name="priority", type={CodeableConcept.class}, order=12, min=0, max=1) + @Description(shortDefinition="Indicates the urgency of the encounter", formalDefinition="Indicates the urgency of the encounter." ) + protected CodeableConcept priority; + + /** + * Details about an admission to a clinic. + */ + @Child(name="hospitalization", type={}, order=13, min=0, max=1) + @Description(shortDefinition="Details about an admission to a clinic", formalDefinition="Details about an admission to a clinic." ) + protected EncounterHospitalizationComponent hospitalization; + + /** + * List of locations at which the patient has been. + */ + @Child(name="location", type={}, order=14, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="List of locations the patient has been at", formalDefinition="List of locations at which the patient has been." ) + protected List location; + + /** + * Department or team providing care. + */ + @Child(name="serviceProvider", type={Organization.class}, order=15, min=0, max=1) + @Description(shortDefinition="Department or team providing care", formalDefinition="Department or team providing care." ) + protected Reference serviceProvider; + + /** + * The actual object that is the target of the reference (Department or team providing care.) + */ + protected Organization serviceProviderTarget; + + /** + * Another Encounter of which this encounter is a part of (administratively or in time). + */ + @Child(name="partOf", type={Encounter.class}, order=16, min=0, max=1) + @Description(shortDefinition="Another Encounter this encounter is part of", formalDefinition="Another Encounter of which this encounter is a part of (administratively or in time)." ) + protected Reference partOf; + + /** + * The actual object that is the target of the reference (Another Encounter of which this encounter is a part of (administratively or in time).) + */ + protected Encounter partOfTarget; + + private static final long serialVersionUID = -1615639874L; + + public Encounter() { + super(); + } + + public Encounter(Enumeration status, Enumeration class_) { + super(); + this.status = status; + this.class_ = class_; + } + + /** + * @return {@link #identifier} (Identifier(s) by which this encounter is known.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Identifier(s) by which this encounter is known.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #status} (planned | arrived | in-progress | onleave | finished | cancelled.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new EncounterStateEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (planned | arrived | in-progress | onleave | finished | cancelled.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Encounter setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return planned | arrived | in-progress | onleave | finished | cancelled. + */ + public EncounterState getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value planned | arrived | in-progress | onleave | finished | cancelled. + */ + public Encounter setStatus(EncounterState value) { + if (this.status == null) + this.status = new Enumeration(new EncounterStateEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #statusHistory} (The current status is always found in the current version of the resource. This status history permits the encounter resource to contain the status history without the needing to read through the historical versions of the resource, or even have the server store them.) + */ + public List getStatusHistory() { + if (this.statusHistory == null) + this.statusHistory = new ArrayList(); + return this.statusHistory; + } + + public boolean hasStatusHistory() { + if (this.statusHistory == null) + return false; + for (EncounterStatusHistoryComponent item : this.statusHistory) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #statusHistory} (The current status is always found in the current version of the resource. This status history permits the encounter resource to contain the status history without the needing to read through the historical versions of the resource, or even have the server store them.) + */ + // syntactic sugar + public EncounterStatusHistoryComponent addStatusHistory() { //3 + EncounterStatusHistoryComponent t = new EncounterStatusHistoryComponent(); + if (this.statusHistory == null) + this.statusHistory = new ArrayList(); + this.statusHistory.add(t); + return t; + } + + /** + * @return {@link #class_} (inpatient | outpatient | ambulatory | emergency +.). This is the underlying object with id, value and extensions. The accessor "getClass_" gives direct access to the value + */ + public Enumeration getClass_Element() { + if (this.class_ == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.class_"); + else if (Configuration.doAutoCreate()) + this.class_ = new Enumeration(new EncounterClassEnumFactory()); // bb + return this.class_; + } + + public boolean hasClass_Element() { + return this.class_ != null && !this.class_.isEmpty(); + } + + public boolean hasClass_() { + return this.class_ != null && !this.class_.isEmpty(); + } + + /** + * @param value {@link #class_} (inpatient | outpatient | ambulatory | emergency +.). This is the underlying object with id, value and extensions. The accessor "getClass_" gives direct access to the value + */ + public Encounter setClass_Element(Enumeration value) { + this.class_ = value; + return this; + } + + /** + * @return inpatient | outpatient | ambulatory | emergency +. + */ + public EncounterClass getClass_() { + return this.class_ == null ? null : this.class_.getValue(); + } + + /** + * @param value inpatient | outpatient | ambulatory | emergency +. + */ + public Encounter setClass_(EncounterClass value) { + if (this.class_ == null) + this.class_ = new Enumeration(new EncounterClassEnumFactory()); + this.class_.setValue(value); + return this; + } + + /** + * @return {@link #type} (Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).) + */ + public List getType() { + if (this.type == null) + this.type = new ArrayList(); + return this.type; + } + + public boolean hasType() { + if (this.type == null) + return false; + for (CodeableConcept item : this.type) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #type} (Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).) + */ + // syntactic sugar + public CodeableConcept addType() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.type == null) + this.type = new ArrayList(); + this.type.add(t); + return t; + } + + /** + * @return {@link #patient} (The patient present at the encounter.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (The patient present at the encounter.) + */ + public Encounter setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient present at the encounter.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient present at the encounter.) + */ + public Encounter setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #episodeOfCare} (Where a specific encounter should be classified as a part of a specific episode of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, or issue tracking.) + */ + public Reference getEpisodeOfCare() { + if (this.episodeOfCare == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.episodeOfCare"); + else if (Configuration.doAutoCreate()) + this.episodeOfCare = new Reference(); // cc + return this.episodeOfCare; + } + + public boolean hasEpisodeOfCare() { + return this.episodeOfCare != null && !this.episodeOfCare.isEmpty(); + } + + /** + * @param value {@link #episodeOfCare} (Where a specific encounter should be classified as a part of a specific episode of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, or issue tracking.) + */ + public Encounter setEpisodeOfCare(Reference value) { + this.episodeOfCare = value; + return this; + } + + /** + * @return {@link #episodeOfCare} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Where a specific encounter should be classified as a part of a specific episode of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, or issue tracking.) + */ + public EpisodeOfCare getEpisodeOfCareTarget() { + if (this.episodeOfCareTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.episodeOfCare"); + else if (Configuration.doAutoCreate()) + this.episodeOfCareTarget = new EpisodeOfCare(); // aa + return this.episodeOfCareTarget; + } + + /** + * @param value {@link #episodeOfCare} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Where a specific encounter should be classified as a part of a specific episode of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, or issue tracking.) + */ + public Encounter setEpisodeOfCareTarget(EpisodeOfCare value) { + this.episodeOfCareTarget = value; + return this; + } + + /** + * @return {@link #participant} (The main practitioner responsible for providing the service.) + */ + public List getParticipant() { + if (this.participant == null) + this.participant = new ArrayList(); + return this.participant; + } + + public boolean hasParticipant() { + if (this.participant == null) + return false; + for (EncounterParticipantComponent item : this.participant) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #participant} (The main practitioner responsible for providing the service.) + */ + // syntactic sugar + public EncounterParticipantComponent addParticipant() { //3 + EncounterParticipantComponent t = new EncounterParticipantComponent(); + if (this.participant == null) + this.participant = new ArrayList(); + this.participant.add(t); + return t; + } + + /** + * @return {@link #fulfills} (The appointment that scheduled this encounter.) + */ + public Reference getFulfills() { + if (this.fulfills == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.fulfills"); + else if (Configuration.doAutoCreate()) + this.fulfills = new Reference(); // cc + return this.fulfills; + } + + public boolean hasFulfills() { + return this.fulfills != null && !this.fulfills.isEmpty(); + } + + /** + * @param value {@link #fulfills} (The appointment that scheduled this encounter.) + */ + public Encounter setFulfills(Reference value) { + this.fulfills = value; + return this; + } + + /** + * @return {@link #fulfills} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The appointment that scheduled this encounter.) + */ + public Appointment getFulfillsTarget() { + if (this.fulfillsTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.fulfills"); + else if (Configuration.doAutoCreate()) + this.fulfillsTarget = new Appointment(); // aa + return this.fulfillsTarget; + } + + /** + * @param value {@link #fulfills} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The appointment that scheduled this encounter.) + */ + public Encounter setFulfillsTarget(Appointment value) { + this.fulfillsTarget = value; + return this; + } + + /** + * @return {@link #period} (The start and end time of the encounter.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (The start and end time of the encounter.) + */ + public Encounter setPeriod(Period value) { + this.period = value; + return this; + } + + /** + * @return {@link #length} (Quantity of time the encounter lasted. This excludes the time during leaves of absence.) + */ + public Duration getLength() { + if (this.length == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.length"); + else if (Configuration.doAutoCreate()) + this.length = new Duration(); // cc + return this.length; + } + + public boolean hasLength() { + return this.length != null && !this.length.isEmpty(); + } + + /** + * @param value {@link #length} (Quantity of time the encounter lasted. This excludes the time during leaves of absence.) + */ + public Encounter setLength(Duration value) { + this.length = value; + return this; + } + + /** + * @return {@link #reason} (Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.) + */ + public CodeableConcept getReason() { + if (this.reason == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.reason"); + else if (Configuration.doAutoCreate()) + this.reason = new CodeableConcept(); // cc + return this.reason; + } + + public boolean hasReason() { + return this.reason != null && !this.reason.isEmpty(); + } + + /** + * @param value {@link #reason} (Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.) + */ + public Encounter setReason(CodeableConcept value) { + this.reason = value; + return this; + } + + /** + * @return {@link #indication} (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.) + */ + public List getIndication() { + if (this.indication == null) + this.indication = new ArrayList(); + return this.indication; + } + + public boolean hasIndication() { + if (this.indication == null) + return false; + for (Reference item : this.indication) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #indication} (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.) + */ + // syntactic sugar + public Reference addIndication() { //3 + Reference t = new Reference(); + if (this.indication == null) + this.indication = new ArrayList(); + this.indication.add(t); + return t; + } + + /** + * @return {@link #indication} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.) + */ + public List getIndicationTarget() { + if (this.indicationTarget == null) + this.indicationTarget = new ArrayList(); + return this.indicationTarget; + } + + /** + * @return {@link #priority} (Indicates the urgency of the encounter.) + */ + public CodeableConcept getPriority() { + if (this.priority == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.priority"); + else if (Configuration.doAutoCreate()) + this.priority = new CodeableConcept(); // cc + return this.priority; + } + + public boolean hasPriority() { + return this.priority != null && !this.priority.isEmpty(); + } + + /** + * @param value {@link #priority} (Indicates the urgency of the encounter.) + */ + public Encounter setPriority(CodeableConcept value) { + this.priority = value; + return this; + } + + /** + * @return {@link #hospitalization} (Details about an admission to a clinic.) + */ + public EncounterHospitalizationComponent getHospitalization() { + if (this.hospitalization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.hospitalization"); + else if (Configuration.doAutoCreate()) + this.hospitalization = new EncounterHospitalizationComponent(); // cc + return this.hospitalization; + } + + public boolean hasHospitalization() { + return this.hospitalization != null && !this.hospitalization.isEmpty(); + } + + /** + * @param value {@link #hospitalization} (Details about an admission to a clinic.) + */ + public Encounter setHospitalization(EncounterHospitalizationComponent value) { + this.hospitalization = value; + return this; + } + + /** + * @return {@link #location} (List of locations at which the patient has been.) + */ + public List getLocation() { + if (this.location == null) + this.location = new ArrayList(); + return this.location; + } + + public boolean hasLocation() { + if (this.location == null) + return false; + for (EncounterLocationComponent item : this.location) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #location} (List of locations at which the patient has been.) + */ + // syntactic sugar + public EncounterLocationComponent addLocation() { //3 + EncounterLocationComponent t = new EncounterLocationComponent(); + if (this.location == null) + this.location = new ArrayList(); + this.location.add(t); + return t; + } + + /** + * @return {@link #serviceProvider} (Department or team providing care.) + */ + public Reference getServiceProvider() { + if (this.serviceProvider == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.serviceProvider"); + else if (Configuration.doAutoCreate()) + this.serviceProvider = new Reference(); // cc + return this.serviceProvider; + } + + public boolean hasServiceProvider() { + return this.serviceProvider != null && !this.serviceProvider.isEmpty(); + } + + /** + * @param value {@link #serviceProvider} (Department or team providing care.) + */ + public Encounter setServiceProvider(Reference value) { + this.serviceProvider = value; + return this; + } + + /** + * @return {@link #serviceProvider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Department or team providing care.) + */ + public Organization getServiceProviderTarget() { + if (this.serviceProviderTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.serviceProvider"); + else if (Configuration.doAutoCreate()) + this.serviceProviderTarget = new Organization(); // aa + return this.serviceProviderTarget; + } + + /** + * @param value {@link #serviceProvider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Department or team providing care.) + */ + public Encounter setServiceProviderTarget(Organization value) { + this.serviceProviderTarget = value; + return this; + } + + /** + * @return {@link #partOf} (Another Encounter of which this encounter is a part of (administratively or in time).) + */ + public Reference getPartOf() { + if (this.partOf == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.partOf"); + else if (Configuration.doAutoCreate()) + this.partOf = new Reference(); // cc + return this.partOf; + } + + public boolean hasPartOf() { + return this.partOf != null && !this.partOf.isEmpty(); + } + + /** + * @param value {@link #partOf} (Another Encounter of which this encounter is a part of (administratively or in time).) + */ + public Encounter setPartOf(Reference value) { + this.partOf = value; + return this; + } + + /** + * @return {@link #partOf} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Another Encounter of which this encounter is a part of (administratively or in time).) + */ + public Encounter getPartOfTarget() { + if (this.partOfTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Encounter.partOf"); + else if (Configuration.doAutoCreate()) + this.partOfTarget = new Encounter(); // aa + return this.partOfTarget; + } + + /** + * @param value {@link #partOf} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Another Encounter of which this encounter is a part of (administratively or in time).) + */ + public Encounter setPartOfTarget(Encounter value) { + this.partOfTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Identifier(s) by which this encounter is known.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("status", "code", "planned | arrived | in-progress | onleave | finished | cancelled.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("statusHistory", "", "The current status is always found in the current version of the resource. This status history permits the encounter resource to contain the status history without the needing to read through the historical versions of the resource, or even have the server store them.", 0, java.lang.Integer.MAX_VALUE, statusHistory)); + childrenList.add(new Property("class", "code", "inpatient | outpatient | ambulatory | emergency +.", 0, java.lang.Integer.MAX_VALUE, class_)); + childrenList.add(new Property("type", "CodeableConcept", "Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("patient", "Reference(Patient)", "The patient present at the encounter.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("episodeOfCare", "Reference(EpisodeOfCare)", "Where a specific encounter should be classified as a part of a specific episode of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, or issue tracking.", 0, java.lang.Integer.MAX_VALUE, episodeOfCare)); + childrenList.add(new Property("participant", "", "The main practitioner responsible for providing the service.", 0, java.lang.Integer.MAX_VALUE, participant)); + childrenList.add(new Property("fulfills", "Reference(Appointment)", "The appointment that scheduled this encounter.", 0, java.lang.Integer.MAX_VALUE, fulfills)); + childrenList.add(new Property("period", "Period", "The start and end time of the encounter.", 0, java.lang.Integer.MAX_VALUE, period)); + childrenList.add(new Property("length", "Duration", "Quantity of time the encounter lasted. This excludes the time during leaves of absence.", 0, java.lang.Integer.MAX_VALUE, length)); + childrenList.add(new Property("reason", "CodeableConcept", "Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.", 0, java.lang.Integer.MAX_VALUE, reason)); + childrenList.add(new Property("indication", "Reference(Any)", "Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.", 0, java.lang.Integer.MAX_VALUE, indication)); + childrenList.add(new Property("priority", "CodeableConcept", "Indicates the urgency of the encounter.", 0, java.lang.Integer.MAX_VALUE, priority)); + childrenList.add(new Property("hospitalization", "", "Details about an admission to a clinic.", 0, java.lang.Integer.MAX_VALUE, hospitalization)); + childrenList.add(new Property("location", "", "List of locations at which the patient has been.", 0, java.lang.Integer.MAX_VALUE, location)); + childrenList.add(new Property("serviceProvider", "Reference(Organization)", "Department or team providing care.", 0, java.lang.Integer.MAX_VALUE, serviceProvider)); + childrenList.add(new Property("partOf", "Reference(Encounter)", "Another Encounter of which this encounter is a part of (administratively or in time).", 0, java.lang.Integer.MAX_VALUE, partOf)); + } + + public Encounter copy() { + Encounter dst = new Encounter(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.status = status == null ? null : status.copy(); + if (statusHistory != null) { + dst.statusHistory = new ArrayList(); + for (EncounterStatusHistoryComponent i : statusHistory) + dst.statusHistory.add(i.copy()); + }; + dst.class_ = class_ == null ? null : class_.copy(); + if (type != null) { + dst.type = new ArrayList(); + for (CodeableConcept i : type) + dst.type.add(i.copy()); + }; + dst.patient = patient == null ? null : patient.copy(); + dst.episodeOfCare = episodeOfCare == null ? null : episodeOfCare.copy(); + if (participant != null) { + dst.participant = new ArrayList(); + for (EncounterParticipantComponent i : participant) + dst.participant.add(i.copy()); + }; + dst.fulfills = fulfills == null ? null : fulfills.copy(); + dst.period = period == null ? null : period.copy(); + dst.length = length == null ? null : length.copy(); + dst.reason = reason == null ? null : reason.copy(); + if (indication != null) { + dst.indication = new ArrayList(); + for (Reference i : indication) + dst.indication.add(i.copy()); + }; + dst.priority = priority == null ? null : priority.copy(); + dst.hospitalization = hospitalization == null ? null : hospitalization.copy(); + if (location != null) { + dst.location = new ArrayList(); + for (EncounterLocationComponent i : location) + dst.location.add(i.copy()); + }; + dst.serviceProvider = serviceProvider == null ? null : serviceProvider.copy(); + dst.partOf = partOf == null ? null : partOf.copy(); + return dst; + } + + protected Encounter typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Encounter)) + return false; + Encounter o = (Encounter) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(statusHistory, o.statusHistory, true) + && compareDeep(class_, o.class_, true) && compareDeep(type, o.type, true) && compareDeep(patient, o.patient, true) + && compareDeep(episodeOfCare, o.episodeOfCare, true) && compareDeep(participant, o.participant, true) + && compareDeep(fulfills, o.fulfills, true) && compareDeep(period, o.period, true) && compareDeep(length, o.length, true) + && compareDeep(reason, o.reason, true) && compareDeep(indication, o.indication, true) && compareDeep(priority, o.priority, true) + && compareDeep(hospitalization, o.hospitalization, true) && compareDeep(location, o.location, true) + && compareDeep(serviceProvider, o.serviceProvider, true) && compareDeep(partOf, o.partOf, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Encounter)) + return false; + Encounter o = (Encounter) other; + return compareValues(status, o.status, true) && compareValues(class_, o.class_, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (status == null || status.isEmpty()) + && (statusHistory == null || statusHistory.isEmpty()) && (class_ == null || class_.isEmpty()) + && (type == null || type.isEmpty()) && (patient == null || patient.isEmpty()) && (episodeOfCare == null || episodeOfCare.isEmpty()) + && (participant == null || participant.isEmpty()) && (fulfills == null || fulfills.isEmpty()) + && (period == null || period.isEmpty()) && (length == null || length.isEmpty()) && (reason == null || reason.isEmpty()) + && (indication == null || indication.isEmpty()) && (priority == null || priority.isEmpty()) + && (hospitalization == null || hospitalization.isEmpty()) && (location == null || location.isEmpty()) + && (serviceProvider == null || serviceProvider.isEmpty()) && (partOf == null || partOf.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Encounter; + } + + @SearchParamDefinition(name="participant-type", path="Encounter.participant.type", description="Role of participant in encounter", type="token" ) + public static final String SP_PARTICIPANTTYPE = "participant-type"; + @SearchParamDefinition(name="patient", path="Encounter.patient", description="The patient present at the encounter", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="episodeofcare", path="Encounter.episodeOfCare", description="An episode of care that this encounter should be recorded against", type="reference" ) + public static final String SP_EPISODEOFCARE = "episodeofcare"; + @SearchParamDefinition(name="location", path="Encounter.location.location", description="Location the encounter takes place", type="reference" ) + public static final String SP_LOCATION = "location"; + @SearchParamDefinition(name="status", path="Encounter.status", description="planned | arrived | in-progress | onleave | finished | cancelled", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="indication", path="Encounter.indication", description="Reason the encounter takes place (resource)", type="reference" ) + public static final String SP_INDICATION = "indication"; + @SearchParamDefinition(name="length", path="Encounter.length", description="Length of encounter in days", type="number" ) + public static final String SP_LENGTH = "length"; + @SearchParamDefinition(name="type", path="Encounter.type", description="Specific type of encounter", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="date", path="Encounter.period", description="A date within the period the Encounter lasted", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="special-arrangement", path="Encounter.hospitalization.specialArrangement", description="Wheelchair, translator, stretcher, etc", type="token" ) + public static final String SP_SPECIALARRANGEMENT = "special-arrangement"; + @SearchParamDefinition(name="identifier", path="Encounter.identifier", description="Identifier(s) by which this encounter is known", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + @SearchParamDefinition(name="part-of", path="Encounter.partOf", description="Another Encounter this encounter is part of", type="reference" ) + public static final String SP_PARTOF = "part-of"; + @SearchParamDefinition(name="location-period", path="Encounter.location.period", description="Time period during which the patient was present at the location", type="date" ) + public static final String SP_LOCATIONPERIOD = "location-period"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentRequest.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..dcda61bcdc16f9a9f8d4cc5d1c56ec37a6d32bf7 GIT binary patch literal 13745 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 identifier; - - /** - * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. - */ - @Child(name="ruleset", type={Coding.class}, order=0, min=0, max=1) - @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." ) - protected Coding ruleset; - - /** - * The style (standard) and version of the original material which was converted into this resource. - */ - @Child(name="originalRuleset", type={Coding.class}, order=1, min=0, max=1) - @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) - protected Coding originalRuleset; - - /** - * The date when this resource was created. - */ - @Child(name="created", type={DateTimeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Creation date", formalDefinition="The date when this resource was created." ) - protected DateTimeType created; - - /** - * The Insurer who is target of the request. - */ - @Child(name="target", type={Organization.class}, order=3, min=0, max=1) - @Description(shortDefinition="Insurer", formalDefinition="The Insurer who is target of the request." ) - protected Reference target; - - /** - * The actual object that is the target of the reference (The Insurer who is target of the request.) - */ - protected Organization targetTarget; - - /** - * The practitioner who is responsible for the services rendered to the patient. - */ - @Child(name="provider", type={Practitioner.class}, order=4, min=0, max=1) - @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) - protected Reference provider; - - /** - * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) - */ - protected Practitioner providerTarget; - - /** - * The organization which is responsible for the services rendered to the patient. - */ - @Child(name="organization", type={Organization.class}, order=5, min=0, max=1) - @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) - protected Reference organization; - - /** - * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) - */ - protected Organization organizationTarget; - - /** - * Patient Resource. - */ - @Child(name="subject", type={Patient.class}, order=6, min=1, max=1) - @Description(shortDefinition="The subject of the Products and Services", formalDefinition="Patient Resource." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (Patient Resource.) - */ - protected Patient subjectTarget; - - /** - * Reference to the program or plan identification, underwriter or payor. - */ - @Child(name="coverage", type={Coverage.class}, order=7, min=1, max=1) - @Description(shortDefinition="Insurance information", formalDefinition="Reference to the program or plan identification, underwriter or payor." ) - protected Reference coverage; - - /** - * The actual object that is the target of the reference (Reference to the program or plan identification, underwriter or payor.) - */ - protected Coverage coverageTarget; - - /** - * The relationship of the patient to the subscriber. - */ - @Child(name="relationship", type={Coding.class}, order=8, min=1, max=1) - @Description(shortDefinition="Patient relationship to subscriber", formalDefinition="The relationship of the patient to the subscriber." ) - protected Coding relationship; - - private static final long serialVersionUID = -1656505325L; - - public EnrollmentRequest() { - super(); - } - - public EnrollmentRequest(Reference subject, Reference coverage, Coding relationship) { - super(); - this.subject = subject; - this.coverage = coverage; - this.relationship = relationship; - } - - /** - * @return {@link #identifier} (The Response Business Identifier.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (The Response Business Identifier.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) - */ - public Coding getRuleset() { - if (this.ruleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.ruleset"); - else if (Configuration.doAutoCreate()) - this.ruleset = new Coding(); - return this.ruleset; - } - - public boolean hasRuleset() { - return this.ruleset != null && !this.ruleset.isEmpty(); - } - - /** - * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) - */ - public EnrollmentRequest setRuleset(Coding value) { - this.ruleset = value; - return this; - } - - /** - * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public Coding getOriginalRuleset() { - if (this.originalRuleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.originalRuleset"); - else if (Configuration.doAutoCreate()) - this.originalRuleset = new Coding(); - return this.originalRuleset; - } - - public boolean hasOriginalRuleset() { - return this.originalRuleset != null && !this.originalRuleset.isEmpty(); - } - - /** - * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public EnrollmentRequest setOriginalRuleset(Coding value) { - this.originalRuleset = value; - return this; - } - - /** - * @return {@link #created} (The date when this resource was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DateTimeType getCreatedElement() { - if (this.created == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.created"); - else if (Configuration.doAutoCreate()) - this.created = new DateTimeType(); - return this.created; - } - - public boolean hasCreatedElement() { - return this.created != null && !this.created.isEmpty(); - } - - public boolean hasCreated() { - return this.created != null && !this.created.isEmpty(); - } - - /** - * @param value {@link #created} (The date when this resource was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public EnrollmentRequest setCreatedElement(DateTimeType value) { - this.created = value; - return this; - } - - /** - * @return The date when this resource was created. - */ - public Date getCreated() { - return this.created == null ? null : this.created.getValue(); - } - - /** - * @param value The date when this resource was created. - */ - public EnrollmentRequest setCreated(Date value) { - if (value == null) - this.created = null; - else { - if (this.created == null) - this.created = new DateTimeType(); - this.created.setValue(value); - } - return this; - } - - /** - * @return {@link #target} (The Insurer who is target of the request.) - */ - public Reference getTarget() { - if (this.target == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.target"); - else if (Configuration.doAutoCreate()) - this.target = new Reference(); - return this.target; - } - - public boolean hasTarget() { - return this.target != null && !this.target.isEmpty(); - } - - /** - * @param value {@link #target} (The Insurer who is target of the request.) - */ - public EnrollmentRequest setTarget(Reference value) { - this.target = value; - return this; - } - - /** - * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who is target of the request.) - */ - public Organization getTargetTarget() { - if (this.targetTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.target"); - else if (Configuration.doAutoCreate()) - this.targetTarget = new Organization(); - return this.targetTarget; - } - - /** - * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who is target of the request.) - */ - public EnrollmentRequest setTargetTarget(Organization value) { - this.targetTarget = value; - return this; - } - - /** - * @return {@link #provider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public Reference getProvider() { - if (this.provider == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.provider"); - else if (Configuration.doAutoCreate()) - this.provider = new Reference(); - return this.provider; - } - - public boolean hasProvider() { - return this.provider != null && !this.provider.isEmpty(); - } - - /** - * @param value {@link #provider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public EnrollmentRequest setProvider(Reference value) { - this.provider = value; - return this; - } - - /** - * @return {@link #provider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public Practitioner getProviderTarget() { - if (this.providerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.provider"); - else if (Configuration.doAutoCreate()) - this.providerTarget = new Practitioner(); - return this.providerTarget; - } - - /** - * @param value {@link #provider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public EnrollmentRequest setProviderTarget(Practitioner value) { - this.providerTarget = value; - return this; - } - - /** - * @return {@link #organization} (The organization which is responsible for the services rendered to the patient.) - */ - public Reference getOrganization() { - if (this.organization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.organization"); - else if (Configuration.doAutoCreate()) - this.organization = new Reference(); - return this.organization; - } - - public boolean hasOrganization() { - return this.organization != null && !this.organization.isEmpty(); - } - - /** - * @param value {@link #organization} (The organization which is responsible for the services rendered to the patient.) - */ - public EnrollmentRequest setOrganization(Reference value) { - this.organization = value; - return this; - } - - /** - * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) - */ - public Organization getOrganizationTarget() { - if (this.organizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.organization"); - else if (Configuration.doAutoCreate()) - this.organizationTarget = new Organization(); - return this.organizationTarget; - } - - /** - * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) - */ - public EnrollmentRequest setOrganizationTarget(Organization value) { - this.organizationTarget = value; - return this; - } - - /** - * @return {@link #subject} (Patient Resource.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (Patient Resource.) - */ - public EnrollmentRequest setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Patient Resource.) - */ - public Patient getSubjectTarget() { - if (this.subjectTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.subject"); - else if (Configuration.doAutoCreate()) - this.subjectTarget = new Patient(); - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Patient Resource.) - */ - public EnrollmentRequest setSubjectTarget(Patient value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #coverage} (Reference to the program or plan identification, underwriter or payor.) - */ - public Reference getCoverage() { - if (this.coverage == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.coverage"); - else if (Configuration.doAutoCreate()) - this.coverage = new Reference(); - return this.coverage; - } - - public boolean hasCoverage() { - return this.coverage != null && !this.coverage.isEmpty(); - } - - /** - * @param value {@link #coverage} (Reference to the program or plan identification, underwriter or payor.) - */ - public EnrollmentRequest setCoverage(Reference value) { - this.coverage = value; - return this; - } - - /** - * @return {@link #coverage} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Reference to the program or plan identification, underwriter or payor.) - */ - public Coverage getCoverageTarget() { - if (this.coverageTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.coverage"); - else if (Configuration.doAutoCreate()) - this.coverageTarget = new Coverage(); - return this.coverageTarget; - } - - /** - * @param value {@link #coverage} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Reference to the program or plan identification, underwriter or payor.) - */ - public EnrollmentRequest setCoverageTarget(Coverage value) { - this.coverageTarget = value; - return this; - } - - /** - * @return {@link #relationship} (The relationship of the patient to the subscriber.) - */ - public Coding getRelationship() { - if (this.relationship == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentRequest.relationship"); - else if (Configuration.doAutoCreate()) - this.relationship = new Coding(); - return this.relationship; - } - - public boolean hasRelationship() { - return this.relationship != null && !this.relationship.isEmpty(); - } - - /** - * @param value {@link #relationship} (The relationship of the patient to the subscriber.) - */ - public EnrollmentRequest setRelationship(Coding value) { - this.relationship = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "The Response Business Identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset)); - childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); - childrenList.add(new Property("created", "dateTime", "The date when this resource was created.", 0, java.lang.Integer.MAX_VALUE, created)); - childrenList.add(new Property("target", "Reference(Organization)", "The Insurer who is target of the request.", 0, java.lang.Integer.MAX_VALUE, target)); - childrenList.add(new Property("provider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, provider)); - childrenList.add(new Property("organization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, organization)); - childrenList.add(new Property("subject", "Reference(Patient)", "Patient Resource.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("coverage", "Reference(Coverage)", "Reference to the program or plan identification, underwriter or payor.", 0, java.lang.Integer.MAX_VALUE, coverage)); - childrenList.add(new Property("relationship", "Coding", "The relationship of the patient to the subscriber.", 0, java.lang.Integer.MAX_VALUE, relationship)); - } - - public EnrollmentRequest copy() { - EnrollmentRequest dst = new EnrollmentRequest(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.ruleset = ruleset == null ? null : ruleset.copy(); - dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); - dst.created = created == null ? null : created.copy(); - dst.target = target == null ? null : target.copy(); - dst.provider = provider == null ? null : provider.copy(); - dst.organization = organization == null ? null : organization.copy(); - dst.subject = subject == null ? null : subject.copy(); - dst.coverage = coverage == null ? null : coverage.copy(); - dst.relationship = relationship == null ? null : relationship.copy(); - return dst; - } - - protected EnrollmentRequest typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (ruleset == null || ruleset.isEmpty()) - && (originalRuleset == null || originalRuleset.isEmpty()) && (created == null || created.isEmpty()) - && (target == null || target.isEmpty()) && (provider == null || provider.isEmpty()) && (organization == null || organization.isEmpty()) - && (subject == null || subject.isEmpty()) && (coverage == null || coverage.isEmpty()) && (relationship == null || relationship.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.EnrollmentRequest; - } - - @SearchParamDefinition(name="patient", path="EnrollmentRequest.subject", description="The party to be enrolled", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="subject", path="EnrollmentRequest.subject", description="The party to be enrolled", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="identifier", path="EnrollmentRequest.identifier", description="The business identifier of the Enrollment", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * This resource provides the insurance Enrollment details to the insurer regarding a specified coverage. + */ +@ResourceDef(name="EnrollmentRequest", profile="http://hl7.org/fhir/Profile/EnrollmentRequest") +public class EnrollmentRequest extends DomainResource { + + /** + * The Response Business Identifier. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Business Identifier", formalDefinition="The Response Business Identifier." ) + protected List identifier; + + /** + * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. + */ + @Child(name="ruleset", type={Coding.class}, order=0, min=0, max=1) + @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." ) + protected Coding ruleset; + + /** + * The style (standard) and version of the original material which was converted into this resource. + */ + @Child(name="originalRuleset", type={Coding.class}, order=1, min=0, max=1) + @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) + protected Coding originalRuleset; + + /** + * The date when this resource was created. + */ + @Child(name="created", type={DateTimeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Creation date", formalDefinition="The date when this resource was created." ) + protected DateTimeType created; + + /** + * The Insurer who is target of the request. + */ + @Child(name="target", type={Organization.class}, order=3, min=0, max=1) + @Description(shortDefinition="Insurer", formalDefinition="The Insurer who is target of the request." ) + protected Reference target; + + /** + * The actual object that is the target of the reference (The Insurer who is target of the request.) + */ + protected Organization targetTarget; + + /** + * The practitioner who is responsible for the services rendered to the patient. + */ + @Child(name="provider", type={Practitioner.class}, order=4, min=0, max=1) + @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) + protected Reference provider; + + /** + * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) + */ + protected Practitioner providerTarget; + + /** + * The organization which is responsible for the services rendered to the patient. + */ + @Child(name="organization", type={Organization.class}, order=5, min=0, max=1) + @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) + protected Reference organization; + + /** + * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) + */ + protected Organization organizationTarget; + + /** + * Patient Resource. + */ + @Child(name="subject", type={Patient.class}, order=6, min=1, max=1) + @Description(shortDefinition="The subject of the Products and Services", formalDefinition="Patient Resource." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (Patient Resource.) + */ + protected Patient subjectTarget; + + /** + * Reference to the program or plan identification, underwriter or payor. + */ + @Child(name="coverage", type={Coverage.class}, order=7, min=1, max=1) + @Description(shortDefinition="Insurance information", formalDefinition="Reference to the program or plan identification, underwriter or payor." ) + protected Reference coverage; + + /** + * The actual object that is the target of the reference (Reference to the program or plan identification, underwriter or payor.) + */ + protected Coverage coverageTarget; + + /** + * The relationship of the patient to the subscriber. + */ + @Child(name="relationship", type={Coding.class}, order=8, min=1, max=1) + @Description(shortDefinition="Patient relationship to subscriber", formalDefinition="The relationship of the patient to the subscriber." ) + protected Coding relationship; + + private static final long serialVersionUID = -1656505325L; + + public EnrollmentRequest() { + super(); + } + + public EnrollmentRequest(Reference subject, Reference coverage, Coding relationship) { + super(); + this.subject = subject; + this.coverage = coverage; + this.relationship = relationship; + } + + /** + * @return {@link #identifier} (The Response Business Identifier.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (The Response Business Identifier.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) + */ + public Coding getRuleset() { + if (this.ruleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.ruleset"); + else if (Configuration.doAutoCreate()) + this.ruleset = new Coding(); // cc + return this.ruleset; + } + + public boolean hasRuleset() { + return this.ruleset != null && !this.ruleset.isEmpty(); + } + + /** + * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) + */ + public EnrollmentRequest setRuleset(Coding value) { + this.ruleset = value; + return this; + } + + /** + * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public Coding getOriginalRuleset() { + if (this.originalRuleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.originalRuleset"); + else if (Configuration.doAutoCreate()) + this.originalRuleset = new Coding(); // cc + return this.originalRuleset; + } + + public boolean hasOriginalRuleset() { + return this.originalRuleset != null && !this.originalRuleset.isEmpty(); + } + + /** + * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public EnrollmentRequest setOriginalRuleset(Coding value) { + this.originalRuleset = value; + return this; + } + + /** + * @return {@link #created} (The date when this resource was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DateTimeType getCreatedElement() { + if (this.created == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.created"); + else if (Configuration.doAutoCreate()) + this.created = new DateTimeType(); // bb + return this.created; + } + + public boolean hasCreatedElement() { + return this.created != null && !this.created.isEmpty(); + } + + public boolean hasCreated() { + return this.created != null && !this.created.isEmpty(); + } + + /** + * @param value {@link #created} (The date when this resource was created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public EnrollmentRequest setCreatedElement(DateTimeType value) { + this.created = value; + return this; + } + + /** + * @return The date when this resource was created. + */ + public Date getCreated() { + return this.created == null ? null : this.created.getValue(); + } + + /** + * @param value The date when this resource was created. + */ + public EnrollmentRequest setCreated(Date value) { + if (value == null) + this.created = null; + else { + if (this.created == null) + this.created = new DateTimeType(); + this.created.setValue(value); + } + return this; + } + + /** + * @return {@link #target} (The Insurer who is target of the request.) + */ + public Reference getTarget() { + if (this.target == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.target"); + else if (Configuration.doAutoCreate()) + this.target = new Reference(); // cc + return this.target; + } + + public boolean hasTarget() { + return this.target != null && !this.target.isEmpty(); + } + + /** + * @param value {@link #target} (The Insurer who is target of the request.) + */ + public EnrollmentRequest setTarget(Reference value) { + this.target = value; + return this; + } + + /** + * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who is target of the request.) + */ + public Organization getTargetTarget() { + if (this.targetTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.target"); + else if (Configuration.doAutoCreate()) + this.targetTarget = new Organization(); // aa + return this.targetTarget; + } + + /** + * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who is target of the request.) + */ + public EnrollmentRequest setTargetTarget(Organization value) { + this.targetTarget = value; + return this; + } + + /** + * @return {@link #provider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public Reference getProvider() { + if (this.provider == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.provider"); + else if (Configuration.doAutoCreate()) + this.provider = new Reference(); // cc + return this.provider; + } + + public boolean hasProvider() { + return this.provider != null && !this.provider.isEmpty(); + } + + /** + * @param value {@link #provider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public EnrollmentRequest setProvider(Reference value) { + this.provider = value; + return this; + } + + /** + * @return {@link #provider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public Practitioner getProviderTarget() { + if (this.providerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.provider"); + else if (Configuration.doAutoCreate()) + this.providerTarget = new Practitioner(); // aa + return this.providerTarget; + } + + /** + * @param value {@link #provider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public EnrollmentRequest setProviderTarget(Practitioner value) { + this.providerTarget = value; + return this; + } + + /** + * @return {@link #organization} (The organization which is responsible for the services rendered to the patient.) + */ + public Reference getOrganization() { + if (this.organization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.organization"); + else if (Configuration.doAutoCreate()) + this.organization = new Reference(); // cc + return this.organization; + } + + public boolean hasOrganization() { + return this.organization != null && !this.organization.isEmpty(); + } + + /** + * @param value {@link #organization} (The organization which is responsible for the services rendered to the patient.) + */ + public EnrollmentRequest setOrganization(Reference value) { + this.organization = value; + return this; + } + + /** + * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) + */ + public Organization getOrganizationTarget() { + if (this.organizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.organization"); + else if (Configuration.doAutoCreate()) + this.organizationTarget = new Organization(); // aa + return this.organizationTarget; + } + + /** + * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) + */ + public EnrollmentRequest setOrganizationTarget(Organization value) { + this.organizationTarget = value; + return this; + } + + /** + * @return {@link #subject} (Patient Resource.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (Patient Resource.) + */ + public EnrollmentRequest setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Patient Resource.) + */ + public Patient getSubjectTarget() { + if (this.subjectTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.subject"); + else if (Configuration.doAutoCreate()) + this.subjectTarget = new Patient(); // aa + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Patient Resource.) + */ + public EnrollmentRequest setSubjectTarget(Patient value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #coverage} (Reference to the program or plan identification, underwriter or payor.) + */ + public Reference getCoverage() { + if (this.coverage == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.coverage"); + else if (Configuration.doAutoCreate()) + this.coverage = new Reference(); // cc + return this.coverage; + } + + public boolean hasCoverage() { + return this.coverage != null && !this.coverage.isEmpty(); + } + + /** + * @param value {@link #coverage} (Reference to the program or plan identification, underwriter or payor.) + */ + public EnrollmentRequest setCoverage(Reference value) { + this.coverage = value; + return this; + } + + /** + * @return {@link #coverage} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Reference to the program or plan identification, underwriter or payor.) + */ + public Coverage getCoverageTarget() { + if (this.coverageTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.coverage"); + else if (Configuration.doAutoCreate()) + this.coverageTarget = new Coverage(); // aa + return this.coverageTarget; + } + + /** + * @param value {@link #coverage} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Reference to the program or plan identification, underwriter or payor.) + */ + public EnrollmentRequest setCoverageTarget(Coverage value) { + this.coverageTarget = value; + return this; + } + + /** + * @return {@link #relationship} (The relationship of the patient to the subscriber.) + */ + public Coding getRelationship() { + if (this.relationship == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentRequest.relationship"); + else if (Configuration.doAutoCreate()) + this.relationship = new Coding(); // cc + return this.relationship; + } + + public boolean hasRelationship() { + return this.relationship != null && !this.relationship.isEmpty(); + } + + /** + * @param value {@link #relationship} (The relationship of the patient to the subscriber.) + */ + public EnrollmentRequest setRelationship(Coding value) { + this.relationship = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "The Response Business Identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset)); + childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); + childrenList.add(new Property("created", "dateTime", "The date when this resource was created.", 0, java.lang.Integer.MAX_VALUE, created)); + childrenList.add(new Property("target", "Reference(Organization)", "The Insurer who is target of the request.", 0, java.lang.Integer.MAX_VALUE, target)); + childrenList.add(new Property("provider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, provider)); + childrenList.add(new Property("organization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, organization)); + childrenList.add(new Property("subject", "Reference(Patient)", "Patient Resource.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("coverage", "Reference(Coverage)", "Reference to the program or plan identification, underwriter or payor.", 0, java.lang.Integer.MAX_VALUE, coverage)); + childrenList.add(new Property("relationship", "Coding", "The relationship of the patient to the subscriber.", 0, java.lang.Integer.MAX_VALUE, relationship)); + } + + public EnrollmentRequest copy() { + EnrollmentRequest dst = new EnrollmentRequest(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.ruleset = ruleset == null ? null : ruleset.copy(); + dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); + dst.created = created == null ? null : created.copy(); + dst.target = target == null ? null : target.copy(); + dst.provider = provider == null ? null : provider.copy(); + dst.organization = organization == null ? null : organization.copy(); + dst.subject = subject == null ? null : subject.copy(); + dst.coverage = coverage == null ? null : coverage.copy(); + dst.relationship = relationship == null ? null : relationship.copy(); + return dst; + } + + protected EnrollmentRequest typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof EnrollmentRequest)) + return false; + EnrollmentRequest o = (EnrollmentRequest) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(ruleset, o.ruleset, true) && compareDeep(originalRuleset, o.originalRuleset, true) + && compareDeep(created, o.created, true) && compareDeep(target, o.target, true) && compareDeep(provider, o.provider, true) + && compareDeep(organization, o.organization, true) && compareDeep(subject, o.subject, true) && compareDeep(coverage, o.coverage, true) + && compareDeep(relationship, o.relationship, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof EnrollmentRequest)) + return false; + EnrollmentRequest o = (EnrollmentRequest) other; + return compareValues(created, o.created, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (ruleset == null || ruleset.isEmpty()) + && (originalRuleset == null || originalRuleset.isEmpty()) && (created == null || created.isEmpty()) + && (target == null || target.isEmpty()) && (provider == null || provider.isEmpty()) && (organization == null || organization.isEmpty()) + && (subject == null || subject.isEmpty()) && (coverage == null || coverage.isEmpty()) && (relationship == null || relationship.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.EnrollmentRequest; + } + + @SearchParamDefinition(name="patient", path="EnrollmentRequest.subject", description="The party to be enrolled", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="subject", path="EnrollmentRequest.subject", description="The party to be enrolled", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="identifier", path="EnrollmentRequest.identifier", description="The business identifier of the Enrollment", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse$1.class new file mode 100644 index 0000000000000000000000000000000000000000..be3484c105c55c9d60bc9db590a89cc71cce30c9 GIT binary patch literal 835 zcmbVL!EVz)5Ph3CaS~i=N+D@MP{4$QLk&Wx5+GD5a#2OnAiIJ?Pa9{6-EP*^+9{vJ z8ITY{s2{*bA!aQV4n4J!?U^_0c{9&5{{83YDS&5q+`Xn%KVQ59!LdRk! zHRtW~r8W=w2`8>V#WKrNH5-W{$)+|oY}|A30G@*;S`Hqf>);W34C^Mvmt4*Ky)0V9 z$xbTdG|)QJ4*KXaJR!M0$@Ps~|4go5%Jt9p;5}skgR`rY&;!ZyT;vSy|1#srp@<8H z&5Q9eJil1Nzwcf@8$kVp%Z2IYMX!G_ycF9@n&4nOdN&OA1BR_jlh~P_ri#mQ3urBB zK^TrhcY~I&K}*Tpjv18k2w#Cic8SmgRq}w|53ti;t#7D&HCOdJENlE3*4q-+3D!#Z z1r_31MH@AAX#QQY6g}mdf2^cxglfi^*SF5rra5e7- z%b6ATYG!H02{MjX4Q;O|GiARd-AvXCeAg{YFPxUuitkmW75f<$Xw6PfPfZIXCuj3{ z0nM7bk)O>L1g%D!=dr3}^yubklEGKK_MH$T4i!Nuh$oPDTIOJEf4oKPkY4ioN!d&$S2(9`sM`M3(m4`H@XD*IzmRzipQX5m6VwmRI~x0f?LFUzp-rW(q!KnMG`if+r3Qz#3;i*#WV$^Ym;YwXaZ8em z1~4ShHS4W;{%bEC%RODBqSB;a0;3e{Ea8eWUDmK-z`?44HMo2=CeS;xBGZ+?FUo3_ zy5icHTq*t930M4Dn2zXG2L#Uk$J8ltt2s-KjBU3JqlgWhQQ_?0Cay}yV2iHrk=1T} zOf9a;V#xXod|skinVlMr&WYh2a{0JdcGDnG=k`o&MD5BSYPL%eckT4qpw{=426m+) zy^_Giod%!4*i|Ef>7l;`vdj0@Qf{!p&kNjQ)yJ&@OH^FpR0o*N(Hf!xE-L2~@K(kH-{(u`Wx6zDvm_6IH6dG(?X z0{tAFVyk|sb%+flKA@$}k-&LA+oE@aw7-Ch4g1qbM6>%2A=&>9tsjuwyC9)<4-FMS z4_bI}C-tB2-bCB4d%O>FCV?TMd`*;i(NBy<@yhl81;f<(H=zHFR#7+G^y1W;GwxY#KsN`O45=pC@{O>`UB+?X-9un!%Zlr5XA|0!n z$3KBIOQbm>JtoqV-ALayiS$3&dq$+^M0!D_mphSkT&I-cI>{)}z>W7v&YLG%Hu1$< zq@qE0G8!1s;LFx%aI)=p+O<$wh56(A#eF!#7M=RP@jEE0 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse$RSLinkEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse$RSLinkEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..8cc4a09cbec7fa7d4f9be0733f578f8f1f57aa35 GIT binary patch literal 1740 zcmbVNT~iZD6g>?|W-<-}vmm;DA>u-a62H*}SrCJwVcAMttK7FCG+|)U6DJeh{Uuxe zfql;I15|01`s9N@%G%SJ2toX);vu*DcHi84?mZ`+40dNh=76y?qF<~K#izY6m z(T_#{EJXuPoL zK6i7zt17ut6nd&MohbxiCAZ;E<<>X6Fz2ayB z;*7xDp)zP1+Z+h=$8h(Z_3bqob1E?Q?MfX9JH8xGh^m&)8m>=y4|eLXEtkw68q$)^ezF1r-vYK0~Nwp?$sk7P_l zw$qi}M)ylNola6TokV%5UR-!wMwfyTVgs5cPL9J z{~+Zgn%o(BmufnFO!~YYOrG~-8av)=i6z|wbQ02vhUEp z4M!*1H#CNy#3;iw3OziHA~nH&e>f1^fxVkeYDhm}thJ7l8^Ga7KW^jH+zEoZjaj7s E2Ros+^#A|> literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..7a6c8f705aae817313b1cbb3bdbd318801d33a68 GIT binary patch literal 15510 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 A>;M1& literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse.java similarity index 89% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse.java index 008ba652b18..1663d0e8405 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnrollmentResponse.java @@ -1,698 +1,697 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * This resource provides Enrollment and plan details from the processing of an Enrollment resource. - */ -@ResourceDef(name="EnrollmentResponse", profile="http://hl7.org/fhir/Profile/EnrollmentResponse") -public class EnrollmentResponse extends DomainResource { - - public enum RSLink implements FhirEnum { - /** - * The processing completed without errors. - */ - COMPLETE, - /** - * The processing identified with errors. - */ - ERROR, - /** - * added to help the parsers - */ - NULL; - - public static final RSLinkEnumFactory ENUM_FACTORY = new RSLinkEnumFactory(); - - public static RSLink fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("complete".equals(codeString)) - return COMPLETE; - if ("error".equals(codeString)) - return ERROR; - throw new IllegalArgumentException("Unknown RSLink code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case COMPLETE: return "complete"; - case ERROR: return "error"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case COMPLETE: return ""; - case ERROR: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case COMPLETE: return "The processing completed without errors."; - case ERROR: return "The processing identified with errors."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case COMPLETE: return "complete"; - case ERROR: return "error"; - default: return "?"; - } - } - } - - public static class RSLinkEnumFactory implements EnumFactory { - public RSLink fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("complete".equals(codeString)) - return RSLink.COMPLETE; - if ("error".equals(codeString)) - return RSLink.ERROR; - throw new IllegalArgumentException("Unknown RSLink code '"+codeString+"'"); - } - public String toCode(RSLink code) throws IllegalArgumentException { - if (code == RSLink.COMPLETE) - return "complete"; - if (code == RSLink.ERROR) - return "error"; - return "?"; - } - } - - /** - * The Response Business Identifier. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Business Identifier", formalDefinition="The Response Business Identifier." ) - protected List identifier; - - /** - * Original request resource referrence. - */ - @Child(name="request", type={EnrollmentRequest.class}, order=0, min=0, max=1) - @Description(shortDefinition="Claim reference", formalDefinition="Original request resource referrence." ) - protected Reference request; - - /** - * The actual object that is the target of the reference (Original request resource referrence.) - */ - protected EnrollmentRequest requestTarget; - - /** - * Transaction status: error, complete. - */ - @Child(name="outcome", type={CodeType.class}, order=1, min=0, max=1) - @Description(shortDefinition="complete | error", formalDefinition="Transaction status: error, complete." ) - protected Enumeration outcome; - - /** - * A description of the status of the adjudication. - */ - @Child(name="disposition", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Disposition Message", formalDefinition="A description of the status of the adjudication." ) - protected StringType disposition; - - /** - * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. - */ - @Child(name="ruleset", type={Coding.class}, order=3, min=0, max=1) - @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." ) - protected Coding ruleset; - - /** - * The style (standard) and version of the original material which was converted into this resource. - */ - @Child(name="originalRuleset", type={Coding.class}, order=4, min=0, max=1) - @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) - protected Coding originalRuleset; - - /** - * The date when the enclosed suite of services were performed or completed. - */ - @Child(name="created", type={DateTimeType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Creation date", formalDefinition="The date when the enclosed suite of services were performed or completed." ) - protected DateTimeType created; - - /** - * The Insurer who produced this adjudicated response. - */ - @Child(name="organization", type={Organization.class}, order=6, min=0, max=1) - @Description(shortDefinition="Insurer", formalDefinition="The Insurer who produced this adjudicated response." ) - protected Reference organization; - - /** - * The actual object that is the target of the reference (The Insurer who produced this adjudicated response.) - */ - protected Organization organizationTarget; - - /** - * The practitioner who is responsible for the services rendered to the patient. - */ - @Child(name="requestProvider", type={Practitioner.class}, order=7, min=0, max=1) - @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) - protected Reference requestProvider; - - /** - * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) - */ - protected Practitioner requestProviderTarget; - - /** - * The organization which is responsible for the services rendered to the patient. - */ - @Child(name="requestOrganization", type={Organization.class}, order=8, min=0, max=1) - @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) - protected Reference requestOrganization; - - /** - * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) - */ - protected Organization requestOrganizationTarget; - - private static final long serialVersionUID = -318929031L; - - public EnrollmentResponse() { - super(); - } - - /** - * @return {@link #identifier} (The Response Business Identifier.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (The Response Business Identifier.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #request} (Original request resource referrence.) - */ - public Reference getRequest() { - if (this.request == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.request"); - else if (Configuration.doAutoCreate()) - this.request = new Reference(); - return this.request; - } - - public boolean hasRequest() { - return this.request != null && !this.request.isEmpty(); - } - - /** - * @param value {@link #request} (Original request resource referrence.) - */ - public EnrollmentResponse setRequest(Reference value) { - this.request = value; - return this; - } - - /** - * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Original request resource referrence.) - */ - public EnrollmentRequest getRequestTarget() { - if (this.requestTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.request"); - else if (Configuration.doAutoCreate()) - this.requestTarget = new EnrollmentRequest(); - return this.requestTarget; - } - - /** - * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Original request resource referrence.) - */ - public EnrollmentResponse setRequestTarget(EnrollmentRequest value) { - this.requestTarget = value; - return this; - } - - /** - * @return {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value - */ - public Enumeration getOutcomeElement() { - if (this.outcome == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.outcome"); - else if (Configuration.doAutoCreate()) - this.outcome = new Enumeration(); - return this.outcome; - } - - public boolean hasOutcomeElement() { - return this.outcome != null && !this.outcome.isEmpty(); - } - - public boolean hasOutcome() { - return this.outcome != null && !this.outcome.isEmpty(); - } - - /** - * @param value {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value - */ - public EnrollmentResponse setOutcomeElement(Enumeration value) { - this.outcome = value; - return this; - } - - /** - * @return Transaction status: error, complete. - */ - public RSLink getOutcome() { - return this.outcome == null ? null : this.outcome.getValue(); - } - - /** - * @param value Transaction status: error, complete. - */ - public EnrollmentResponse setOutcome(RSLink value) { - if (value == null) - this.outcome = null; - else { - if (this.outcome == null) - this.outcome = new Enumeration(RSLink.ENUM_FACTORY); - this.outcome.setValue(value); - } - return this; - } - - /** - * @return {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value - */ - public StringType getDispositionElement() { - if (this.disposition == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.disposition"); - else if (Configuration.doAutoCreate()) - this.disposition = new StringType(); - return this.disposition; - } - - public boolean hasDispositionElement() { - return this.disposition != null && !this.disposition.isEmpty(); - } - - public boolean hasDisposition() { - return this.disposition != null && !this.disposition.isEmpty(); - } - - /** - * @param value {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value - */ - public EnrollmentResponse setDispositionElement(StringType value) { - this.disposition = value; - return this; - } - - /** - * @return A description of the status of the adjudication. - */ - public String getDisposition() { - return this.disposition == null ? null : this.disposition.getValue(); - } - - /** - * @param value A description of the status of the adjudication. - */ - public EnrollmentResponse setDisposition(String value) { - if (Utilities.noString(value)) - this.disposition = null; - else { - if (this.disposition == null) - this.disposition = new StringType(); - this.disposition.setValue(value); - } - return this; - } - - /** - * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) - */ - public Coding getRuleset() { - if (this.ruleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.ruleset"); - else if (Configuration.doAutoCreate()) - this.ruleset = new Coding(); - return this.ruleset; - } - - public boolean hasRuleset() { - return this.ruleset != null && !this.ruleset.isEmpty(); - } - - /** - * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) - */ - public EnrollmentResponse setRuleset(Coding value) { - this.ruleset = value; - return this; - } - - /** - * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public Coding getOriginalRuleset() { - if (this.originalRuleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.originalRuleset"); - else if (Configuration.doAutoCreate()) - this.originalRuleset = new Coding(); - return this.originalRuleset; - } - - public boolean hasOriginalRuleset() { - return this.originalRuleset != null && !this.originalRuleset.isEmpty(); - } - - /** - * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public EnrollmentResponse setOriginalRuleset(Coding value) { - this.originalRuleset = value; - return this; - } - - /** - * @return {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DateTimeType getCreatedElement() { - if (this.created == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.created"); - else if (Configuration.doAutoCreate()) - this.created = new DateTimeType(); - return this.created; - } - - public boolean hasCreatedElement() { - return this.created != null && !this.created.isEmpty(); - } - - public boolean hasCreated() { - return this.created != null && !this.created.isEmpty(); - } - - /** - * @param value {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public EnrollmentResponse setCreatedElement(DateTimeType value) { - this.created = value; - return this; - } - - /** - * @return The date when the enclosed suite of services were performed or completed. - */ - public Date getCreated() { - return this.created == null ? null : this.created.getValue(); - } - - /** - * @param value The date when the enclosed suite of services were performed or completed. - */ - public EnrollmentResponse setCreated(Date value) { - if (value == null) - this.created = null; - else { - if (this.created == null) - this.created = new DateTimeType(); - this.created.setValue(value); - } - return this; - } - - /** - * @return {@link #organization} (The Insurer who produced this adjudicated response.) - */ - public Reference getOrganization() { - if (this.organization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.organization"); - else if (Configuration.doAutoCreate()) - this.organization = new Reference(); - return this.organization; - } - - public boolean hasOrganization() { - return this.organization != null && !this.organization.isEmpty(); - } - - /** - * @param value {@link #organization} (The Insurer who produced this adjudicated response.) - */ - public EnrollmentResponse setOrganization(Reference value) { - this.organization = value; - return this; - } - - /** - * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) - */ - public Organization getOrganizationTarget() { - if (this.organizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.organization"); - else if (Configuration.doAutoCreate()) - this.organizationTarget = new Organization(); - return this.organizationTarget; - } - - /** - * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) - */ - public EnrollmentResponse setOrganizationTarget(Organization value) { - this.organizationTarget = value; - return this; - } - - /** - * @return {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public Reference getRequestProvider() { - if (this.requestProvider == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.requestProvider"); - else if (Configuration.doAutoCreate()) - this.requestProvider = new Reference(); - return this.requestProvider; - } - - public boolean hasRequestProvider() { - return this.requestProvider != null && !this.requestProvider.isEmpty(); - } - - /** - * @param value {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public EnrollmentResponse setRequestProvider(Reference value) { - this.requestProvider = value; - return this; - } - - /** - * @return {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public Practitioner getRequestProviderTarget() { - if (this.requestProviderTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.requestProvider"); - else if (Configuration.doAutoCreate()) - this.requestProviderTarget = new Practitioner(); - return this.requestProviderTarget; - } - - /** - * @param value {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public EnrollmentResponse setRequestProviderTarget(Practitioner value) { - this.requestProviderTarget = value; - return this; - } - - /** - * @return {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) - */ - public Reference getRequestOrganization() { - if (this.requestOrganization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.requestOrganization"); - else if (Configuration.doAutoCreate()) - this.requestOrganization = new Reference(); - return this.requestOrganization; - } - - public boolean hasRequestOrganization() { - return this.requestOrganization != null && !this.requestOrganization.isEmpty(); - } - - /** - * @param value {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) - */ - public EnrollmentResponse setRequestOrganization(Reference value) { - this.requestOrganization = value; - return this; - } - - /** - * @return {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) - */ - public Organization getRequestOrganizationTarget() { - if (this.requestOrganizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create EnrollmentResponse.requestOrganization"); - else if (Configuration.doAutoCreate()) - this.requestOrganizationTarget = new Organization(); - return this.requestOrganizationTarget; - } - - /** - * @param value {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) - */ - public EnrollmentResponse setRequestOrganizationTarget(Organization value) { - this.requestOrganizationTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "The Response Business Identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("request", "Reference(EnrollmentRequest)", "Original request resource referrence.", 0, java.lang.Integer.MAX_VALUE, request)); - childrenList.add(new Property("outcome", "code", "Transaction status: error, complete.", 0, java.lang.Integer.MAX_VALUE, outcome)); - childrenList.add(new Property("disposition", "string", "A description of the status of the adjudication.", 0, java.lang.Integer.MAX_VALUE, disposition)); - childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset)); - childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); - childrenList.add(new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, created)); - childrenList.add(new Property("organization", "Reference(Organization)", "The Insurer who produced this adjudicated response.", 0, java.lang.Integer.MAX_VALUE, organization)); - childrenList.add(new Property("requestProvider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestProvider)); - childrenList.add(new Property("requestOrganization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestOrganization)); - } - - public EnrollmentResponse copy() { - EnrollmentResponse dst = new EnrollmentResponse(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.request = request == null ? null : request.copy(); - dst.outcome = outcome == null ? null : outcome.copy(); - dst.disposition = disposition == null ? null : disposition.copy(); - dst.ruleset = ruleset == null ? null : ruleset.copy(); - dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); - dst.created = created == null ? null : created.copy(); - dst.organization = organization == null ? null : organization.copy(); - dst.requestProvider = requestProvider == null ? null : requestProvider.copy(); - dst.requestOrganization = requestOrganization == null ? null : requestOrganization.copy(); - return dst; - } - - protected EnrollmentResponse typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (request == null || request.isEmpty()) - && (outcome == null || outcome.isEmpty()) && (disposition == null || disposition.isEmpty()) - && (ruleset == null || ruleset.isEmpty()) && (originalRuleset == null || originalRuleset.isEmpty()) - && (created == null || created.isEmpty()) && (organization == null || organization.isEmpty()) - && (requestProvider == null || requestProvider.isEmpty()) && (requestOrganization == null || requestOrganization.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.EnrollmentResponse; - } - - @SearchParamDefinition(name="identifier", path="EnrollmentResponse.identifier", description="The business identifier of the Explanation of Benefit", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * This resource provides Enrollment and plan details from the processing of an Enrollment resource. + */ +@ResourceDef(name="EnrollmentResponse", profile="http://hl7.org/fhir/Profile/EnrollmentResponse") +public class EnrollmentResponse extends DomainResource { + + public enum RSLink { + /** + * The processing completed without errors. + */ + COMPLETE, + /** + * The processing identified with errors. + */ + ERROR, + /** + * added to help the parsers + */ + NULL; + public static RSLink fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("complete".equals(codeString)) + return COMPLETE; + if ("error".equals(codeString)) + return ERROR; + throw new Exception("Unknown RSLink code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case COMPLETE: return "complete"; + case ERROR: return "error"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case COMPLETE: return ""; + case ERROR: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case COMPLETE: return "The processing completed without errors."; + case ERROR: return "The processing identified with errors."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case COMPLETE: return "complete"; + case ERROR: return "error"; + default: return "?"; + } + } + } + + public static class RSLinkEnumFactory implements EnumFactory { + public RSLink fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("complete".equals(codeString)) + return RSLink.COMPLETE; + if ("error".equals(codeString)) + return RSLink.ERROR; + throw new IllegalArgumentException("Unknown RSLink code '"+codeString+"'"); + } + public String toCode(RSLink code) { + if (code == RSLink.COMPLETE) + return "complete"; + if (code == RSLink.ERROR) + return "error"; + return "?"; + } + } + + /** + * The Response Business Identifier. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Business Identifier", formalDefinition="The Response Business Identifier." ) + protected List identifier; + + /** + * Original request resource reference. + */ + @Child(name="request", type={EnrollmentRequest.class}, order=0, min=0, max=1) + @Description(shortDefinition="Claim reference", formalDefinition="Original request resource reference." ) + protected Reference request; + + /** + * The actual object that is the target of the reference (Original request resource reference.) + */ + protected EnrollmentRequest requestTarget; + + /** + * Transaction status: error, complete. + */ + @Child(name="outcome", type={CodeType.class}, order=1, min=0, max=1) + @Description(shortDefinition="complete | error", formalDefinition="Transaction status: error, complete." ) + protected Enumeration outcome; + + /** + * A description of the status of the adjudication. + */ + @Child(name="disposition", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Disposition Message", formalDefinition="A description of the status of the adjudication." ) + protected StringType disposition; + + /** + * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. + */ + @Child(name="ruleset", type={Coding.class}, order=3, min=0, max=1) + @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." ) + protected Coding ruleset; + + /** + * The style (standard) and version of the original material which was converted into this resource. + */ + @Child(name="originalRuleset", type={Coding.class}, order=4, min=0, max=1) + @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) + protected Coding originalRuleset; + + /** + * The date when the enclosed suite of services were performed or completed. + */ + @Child(name="created", type={DateTimeType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Creation date", formalDefinition="The date when the enclosed suite of services were performed or completed." ) + protected DateTimeType created; + + /** + * The Insurer who produced this adjudicated response. + */ + @Child(name="organization", type={Organization.class}, order=6, min=0, max=1) + @Description(shortDefinition="Insurer", formalDefinition="The Insurer who produced this adjudicated response." ) + protected Reference organization; + + /** + * The actual object that is the target of the reference (The Insurer who produced this adjudicated response.) + */ + protected Organization organizationTarget; + + /** + * The practitioner who is responsible for the services rendered to the patient. + */ + @Child(name="requestProvider", type={Practitioner.class}, order=7, min=0, max=1) + @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) + protected Reference requestProvider; + + /** + * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) + */ + protected Practitioner requestProviderTarget; + + /** + * The organization which is responsible for the services rendered to the patient. + */ + @Child(name="requestOrganization", type={Organization.class}, order=8, min=0, max=1) + @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) + protected Reference requestOrganization; + + /** + * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) + */ + protected Organization requestOrganizationTarget; + + private static final long serialVersionUID = -318929031L; + + public EnrollmentResponse() { + super(); + } + + /** + * @return {@link #identifier} (The Response Business Identifier.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (The Response Business Identifier.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #request} (Original request resource reference.) + */ + public Reference getRequest() { + if (this.request == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.request"); + else if (Configuration.doAutoCreate()) + this.request = new Reference(); // cc + return this.request; + } + + public boolean hasRequest() { + return this.request != null && !this.request.isEmpty(); + } + + /** + * @param value {@link #request} (Original request resource reference.) + */ + public EnrollmentResponse setRequest(Reference value) { + this.request = value; + return this; + } + + /** + * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Original request resource reference.) + */ + public EnrollmentRequest getRequestTarget() { + if (this.requestTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.request"); + else if (Configuration.doAutoCreate()) + this.requestTarget = new EnrollmentRequest(); // aa + return this.requestTarget; + } + + /** + * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Original request resource reference.) + */ + public EnrollmentResponse setRequestTarget(EnrollmentRequest value) { + this.requestTarget = value; + return this; + } + + /** + * @return {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value + */ + public Enumeration getOutcomeElement() { + if (this.outcome == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.outcome"); + else if (Configuration.doAutoCreate()) + this.outcome = new Enumeration(new RSLinkEnumFactory()); // bb + return this.outcome; + } + + public boolean hasOutcomeElement() { + return this.outcome != null && !this.outcome.isEmpty(); + } + + public boolean hasOutcome() { + return this.outcome != null && !this.outcome.isEmpty(); + } + + /** + * @param value {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value + */ + public EnrollmentResponse setOutcomeElement(Enumeration value) { + this.outcome = value; + return this; + } + + /** + * @return Transaction status: error, complete. + */ + public RSLink getOutcome() { + return this.outcome == null ? null : this.outcome.getValue(); + } + + /** + * @param value Transaction status: error, complete. + */ + public EnrollmentResponse setOutcome(RSLink value) { + if (value == null) + this.outcome = null; + else { + if (this.outcome == null) + this.outcome = new Enumeration(new RSLinkEnumFactory()); + this.outcome.setValue(value); + } + return this; + } + + /** + * @return {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value + */ + public StringType getDispositionElement() { + if (this.disposition == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.disposition"); + else if (Configuration.doAutoCreate()) + this.disposition = new StringType(); // bb + return this.disposition; + } + + public boolean hasDispositionElement() { + return this.disposition != null && !this.disposition.isEmpty(); + } + + public boolean hasDisposition() { + return this.disposition != null && !this.disposition.isEmpty(); + } + + /** + * @param value {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value + */ + public EnrollmentResponse setDispositionElement(StringType value) { + this.disposition = value; + return this; + } + + /** + * @return A description of the status of the adjudication. + */ + public String getDisposition() { + return this.disposition == null ? null : this.disposition.getValue(); + } + + /** + * @param value A description of the status of the adjudication. + */ + public EnrollmentResponse setDisposition(String value) { + if (Utilities.noString(value)) + this.disposition = null; + else { + if (this.disposition == null) + this.disposition = new StringType(); + this.disposition.setValue(value); + } + return this; + } + + /** + * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) + */ + public Coding getRuleset() { + if (this.ruleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.ruleset"); + else if (Configuration.doAutoCreate()) + this.ruleset = new Coding(); // cc + return this.ruleset; + } + + public boolean hasRuleset() { + return this.ruleset != null && !this.ruleset.isEmpty(); + } + + /** + * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) + */ + public EnrollmentResponse setRuleset(Coding value) { + this.ruleset = value; + return this; + } + + /** + * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public Coding getOriginalRuleset() { + if (this.originalRuleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.originalRuleset"); + else if (Configuration.doAutoCreate()) + this.originalRuleset = new Coding(); // cc + return this.originalRuleset; + } + + public boolean hasOriginalRuleset() { + return this.originalRuleset != null && !this.originalRuleset.isEmpty(); + } + + /** + * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public EnrollmentResponse setOriginalRuleset(Coding value) { + this.originalRuleset = value; + return this; + } + + /** + * @return {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DateTimeType getCreatedElement() { + if (this.created == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.created"); + else if (Configuration.doAutoCreate()) + this.created = new DateTimeType(); // bb + return this.created; + } + + public boolean hasCreatedElement() { + return this.created != null && !this.created.isEmpty(); + } + + public boolean hasCreated() { + return this.created != null && !this.created.isEmpty(); + } + + /** + * @param value {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public EnrollmentResponse setCreatedElement(DateTimeType value) { + this.created = value; + return this; + } + + /** + * @return The date when the enclosed suite of services were performed or completed. + */ + public Date getCreated() { + return this.created == null ? null : this.created.getValue(); + } + + /** + * @param value The date when the enclosed suite of services were performed or completed. + */ + public EnrollmentResponse setCreated(Date value) { + if (value == null) + this.created = null; + else { + if (this.created == null) + this.created = new DateTimeType(); + this.created.setValue(value); + } + return this; + } + + /** + * @return {@link #organization} (The Insurer who produced this adjudicated response.) + */ + public Reference getOrganization() { + if (this.organization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.organization"); + else if (Configuration.doAutoCreate()) + this.organization = new Reference(); // cc + return this.organization; + } + + public boolean hasOrganization() { + return this.organization != null && !this.organization.isEmpty(); + } + + /** + * @param value {@link #organization} (The Insurer who produced this adjudicated response.) + */ + public EnrollmentResponse setOrganization(Reference value) { + this.organization = value; + return this; + } + + /** + * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) + */ + public Organization getOrganizationTarget() { + if (this.organizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.organization"); + else if (Configuration.doAutoCreate()) + this.organizationTarget = new Organization(); // aa + return this.organizationTarget; + } + + /** + * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) + */ + public EnrollmentResponse setOrganizationTarget(Organization value) { + this.organizationTarget = value; + return this; + } + + /** + * @return {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public Reference getRequestProvider() { + if (this.requestProvider == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.requestProvider"); + else if (Configuration.doAutoCreate()) + this.requestProvider = new Reference(); // cc + return this.requestProvider; + } + + public boolean hasRequestProvider() { + return this.requestProvider != null && !this.requestProvider.isEmpty(); + } + + /** + * @param value {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public EnrollmentResponse setRequestProvider(Reference value) { + this.requestProvider = value; + return this; + } + + /** + * @return {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public Practitioner getRequestProviderTarget() { + if (this.requestProviderTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.requestProvider"); + else if (Configuration.doAutoCreate()) + this.requestProviderTarget = new Practitioner(); // aa + return this.requestProviderTarget; + } + + /** + * @param value {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public EnrollmentResponse setRequestProviderTarget(Practitioner value) { + this.requestProviderTarget = value; + return this; + } + + /** + * @return {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) + */ + public Reference getRequestOrganization() { + if (this.requestOrganization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.requestOrganization"); + else if (Configuration.doAutoCreate()) + this.requestOrganization = new Reference(); // cc + return this.requestOrganization; + } + + public boolean hasRequestOrganization() { + return this.requestOrganization != null && !this.requestOrganization.isEmpty(); + } + + /** + * @param value {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) + */ + public EnrollmentResponse setRequestOrganization(Reference value) { + this.requestOrganization = value; + return this; + } + + /** + * @return {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) + */ + public Organization getRequestOrganizationTarget() { + if (this.requestOrganizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EnrollmentResponse.requestOrganization"); + else if (Configuration.doAutoCreate()) + this.requestOrganizationTarget = new Organization(); // aa + return this.requestOrganizationTarget; + } + + /** + * @param value {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) + */ + public EnrollmentResponse setRequestOrganizationTarget(Organization value) { + this.requestOrganizationTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "The Response Business Identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("request", "Reference(EnrollmentRequest)", "Original request resource reference.", 0, java.lang.Integer.MAX_VALUE, request)); + childrenList.add(new Property("outcome", "code", "Transaction status: error, complete.", 0, java.lang.Integer.MAX_VALUE, outcome)); + childrenList.add(new Property("disposition", "string", "A description of the status of the adjudication.", 0, java.lang.Integer.MAX_VALUE, disposition)); + childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset)); + childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); + childrenList.add(new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, created)); + childrenList.add(new Property("organization", "Reference(Organization)", "The Insurer who produced this adjudicated response.", 0, java.lang.Integer.MAX_VALUE, organization)); + childrenList.add(new Property("requestProvider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestProvider)); + childrenList.add(new Property("requestOrganization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestOrganization)); + } + + public EnrollmentResponse copy() { + EnrollmentResponse dst = new EnrollmentResponse(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.request = request == null ? null : request.copy(); + dst.outcome = outcome == null ? null : outcome.copy(); + dst.disposition = disposition == null ? null : disposition.copy(); + dst.ruleset = ruleset == null ? null : ruleset.copy(); + dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); + dst.created = created == null ? null : created.copy(); + dst.organization = organization == null ? null : organization.copy(); + dst.requestProvider = requestProvider == null ? null : requestProvider.copy(); + dst.requestOrganization = requestOrganization == null ? null : requestOrganization.copy(); + return dst; + } + + protected EnrollmentResponse typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof EnrollmentResponse)) + return false; + EnrollmentResponse o = (EnrollmentResponse) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(request, o.request, true) && compareDeep(outcome, o.outcome, true) + && compareDeep(disposition, o.disposition, true) && compareDeep(ruleset, o.ruleset, true) && compareDeep(originalRuleset, o.originalRuleset, true) + && compareDeep(created, o.created, true) && compareDeep(organization, o.organization, true) && compareDeep(requestProvider, o.requestProvider, true) + && compareDeep(requestOrganization, o.requestOrganization, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof EnrollmentResponse)) + return false; + EnrollmentResponse o = (EnrollmentResponse) other; + return compareValues(outcome, o.outcome, true) && compareValues(disposition, o.disposition, true) && compareValues(created, o.created, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (request == null || request.isEmpty()) + && (outcome == null || outcome.isEmpty()) && (disposition == null || disposition.isEmpty()) + && (ruleset == null || ruleset.isEmpty()) && (originalRuleset == null || originalRuleset.isEmpty()) + && (created == null || created.isEmpty()) && (organization == null || organization.isEmpty()) + && (requestProvider == null || requestProvider.isEmpty()) && (requestOrganization == null || requestOrganization.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.EnrollmentResponse; + } + + @SearchParamDefinition(name="identifier", path="EnrollmentResponse.identifier", description="The business identifier of the Explanation of Benefit", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..f82151bfb4b87f2fd800f8ed14259d7df375b3f5 GIT binary patch literal 440 zcmZvY%}N6?6opUfIMdd@>c+hYS{G*FLU2k!qy<56G4ld(Ow*K1B56kS)m-=hK9qQ; zBX*GPa=&};IXCC)`{NV96^;@dBp5JsXWo@}?pZRNo$kZE#shwmp7rYb9FS*cp!Un}1i0F2?D& z#U7s)vIzC9nX7yur`phQgW7E>is1bFW&KlzGv^hbn`=IsYtOY^24M@yOUlFW);KM% zqiNI`PS)t&7^#H0^{OhR4Sxy63=ADg9Oy(0TZpLIrYa&HBdIyM)ajv5q^Wm^HLqRl IttR$=016FuC;$Ke literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/EnumFactory.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnumFactory.java similarity index 69% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/EnumFactory.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnumFactory.java index 1944367c11d..dc27717ca51 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/EnumFactory.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EnumFactory.java @@ -1,75 +1,54 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - - -/* -Copyright (c) 2011+, HL7, Inc -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -/** - * Helper class to help manage generic enumerated types - */ -public interface EnumFactory> { - - /** - * Read an enumeration value from the string that represents it on the XML or JSON - * @param codeString the value found in the XML or JSON - * @return the enumeration value - * @throws IllegalArgumentException is the value is not known - */ - public T fromCode(String codeString) throws IllegalArgumentException; - - /** - * Get the XML/JSON representation for an enumerated value - * @param code - the enumeration value - * @return the XML/JSON representation - * @throws IllegalArgumentException if the enumeration is not valid (would usually indicate a code generation bug) - */ - public String toCode(T code) throws IllegalArgumentException; - -} +package org.hl7.fhir.instance.model; + + +/* +Copyright (c) 2011+, HL7, Inc +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +*/ + +/** + * Helper class to help manage generic enumerated types + */ +public interface EnumFactory> { + + /** + * Read an enumeration value from the string that represents it on the XML or JSON + * @param codeString the value found in the XML or JSON + * @return the enumeration value + * @throws Exception is the value is not known + */ + public T fromCode(String codeString) throws IllegalArgumentException; + + /** + * Get the XML/JSON representation for an enumerated value + * @param code - the enumeration value + * @return the XML/JSON representation + * @throws Exception if the enumeration is not valid (would usually indicate a code generation bug) + */ + public String toCode(T code); + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Enumeration.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Enumeration.class new file mode 100644 index 0000000000000000000000000000000000000000..508074794e132776997f25406d2cf13b41eee2ad GIT binary patch literal 2464 zcma)-Z&TYw5XPUg!7@gGLr9Y*g*pjIY#A{5pJ2ztF_4fDLSjQFFJ*H$N@U3+%S`!J z=}ZgLW~S|{cBUVy?VfbD1$9AwakBPypWoiz-s!KufB6-_UF;-q4v!Tq#gR`Sg2D(A zc#@!@D2C-xJVi+i&lHq}WktcNc&>@zxfouEVO_yXhGd&NhHma~r)}8Q_WB9~BlB3< zw%V?4xjVYq;ll(LKSmSHgH@~3T+{2W?Hn*iax)ij z%`=QtjE1GV9fvb4gpDgytN9`Y#|nmJxJ8D!blA{*W`|*@OqnoDY#0{b>@;iKsp>V8 zEMpZ{uYY>2x4d_%m4a6cw?nJ@i3vm@bWDEZqrR`_Ox%1jOP1%>M6z|8U_WTqUgCsoBeXeuh0C#kcpAep0zDz+KM`{{`V2*7m} zIV`G}!@Pzw15d7Y4ne3zeon?ro#Yw&p?2hiHlRe(%{uRuy9CYb5Q0O$N z4d|}-#Y*iiJ-+AIP5*|Bxwii&-smx>sKxpzODL|=*W(<04kEaWNt_46l=pUlEVNJb z{AYChSwfmI(Wduw|;)%0TR`9yU!e z)Tk2sgr1_ZQ`(Oh{sZIUk^LF*2tKpVWRE~pb=)h-3n*A8(kqV;1)G!=%#tJ>04XUd zDI`aw)(C0QEAy0M^aQqK-~zqT@sWW-M$Df7g2a0ftQ}(Xcc@1gJ1MX&1#TxxByfkq zM4L?0QwWH_@slC5$rVcSu5`UBlN`~qL^#C6AomRJN%tA)9@DaiNdDJXWN}~mo}L8> N`91!Cnnl$2(Z7-6N`3$U literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Enumeration.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Enumeration.java similarity index 72% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Enumeration.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Enumeration.java index da621371f93..6eaa8ebd3d9 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Enumeration.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Enumeration.java @@ -1,125 +1,92 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* -Copyright (c) 2011+, HL7, Inc -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ - -/** - * Primitive type "code" in FHIR, where the code is tied to an enumerated list of possible values - * - */ -public class Enumeration> extends PrimitiveType { - - private static final long serialVersionUID = 1L; - private EnumFactory myEnumFactory; - - /** - * Constructor - */ - public Enumeration(T theValue) { - setValue(theValue); - } - - /** - * Constructor - */ - public Enumeration(String theValue) { - setValueAsString(theValue); - } - - /** - * Constructor - */ - public Enumeration(EnumFactory theEnumFactory, T theValue) { - myEnumFactory = theEnumFactory; - setValue(theValue); - } - - /** - * Constructor - */ - public Enumeration(EnumFactory theEnumFactory, String theValue) { - myEnumFactory = theEnumFactory; - setValueAsString(theValue); - } - - /** - * Constructor - */ - public Enumeration(EnumFactory theEnumFactory) { - myEnumFactory = theEnumFactory; - } - - /** - * Constructor - */ - public Enumeration() { - // nothing - } - - @Override - protected T parse(String theValue) { - if (myEnumFactory != null) { - return myEnumFactory.fromCode(theValue); - } - return null; - } - - @Override - protected String encode(T theValue) { - return ((FhirEnum)theValue).toCode(); - } - - @Override - public Enumeration copy() { - return new Enumeration(myEnumFactory, getValue()); - } - - -} +package org.hl7.fhir.instance.model; + +import org.hl7.fhir.instance.model.annotations.DatatypeDef; + +/* +Copyright (c) 2011+, HL7, Inc +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +*/ + +/** + * Primitive type "code" in FHIR, where the code is tied to an enumerated list of possible values + * + */ +@DatatypeDef(name="enumeration") +public class Enumeration> extends PrimitiveType { + + private static final long serialVersionUID = 1L; + private EnumFactory myEnumFactory; + + /** + * Constructor + */ + public Enumeration(EnumFactory theEnumFactory) { + if (theEnumFactory == null) + throw new IllegalArgumentException("An enumeration factory must be provided"); + myEnumFactory = theEnumFactory; + } + + /** + * Constructor + */ + public Enumeration(EnumFactory theEnumFactory, T theValue) { + if (theEnumFactory == null) + throw new IllegalArgumentException("An enumeration factory must be provided"); + myEnumFactory = theEnumFactory; + setValue(theValue); + } + + /** + * Constructor + */ + public Enumeration(EnumFactory theEnumFactory, String theValue) { + if (theEnumFactory == null) + throw new IllegalArgumentException("An enumeration factory must be provided"); + myEnumFactory = theEnumFactory; + setValueAsString(theValue); + } + + @Override + protected T parse(String theValue) { + if (myEnumFactory != null) { + return myEnumFactory.fromCode(theValue); + } + return null; + } + + @Override + protected String encode(T theValue) { + return myEnumFactory.toCode(theValue); + } + + @Override + public Enumeration copy() { + return new Enumeration(myEnumFactory, getValue()); + } + + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$1.class new file mode 100644 index 0000000000000000000000000000000000000000..38e32650d630fb2830ed719d0d6c4775d41534e3 GIT binary patch literal 1058 zcmbu8+iuf95QhKF!FGa6P0OJzhX!iVghEUyEf*X^;wTY`UDZ)@(F<@KH*s<8%67^l zaSccaA=C%pmiIx-231j{UR0`N&CF-d&Oe^r{r&gn34jf3<*|sR94_Hzj-p!}Z;QCY zVVRo(H+Q+Y$IXfeRm3VoL$yA6i8E~5M`{=i)S>@O-5+|9>IHFP2ac;AhJDvp^&>B) zz}&CekvmORVke`RA+^_JkX|^x7kJ4lhIFyC%aEzkGKSff7r4ggu;)e{yXVuJ8CvIj zB;7GnuMBxB97T>>_xSg@DarDIeQZ-1J#hRm_JTp%O@?7#L{UUZ#u^^Vn89Tkk5HDO z;W5J!U!wVTFwl(98aczd=lXp;io!_7I!}AT%?3A5x!FXSVU4Ds(G)a31?_YS+IR}u zR7>hQ0~q9H5V%p*x8vBQDJTP@3*HMm@^+w3%I zJC&}%kTp9EeMc$Kk(cQTFlB-7KaU_`77F<*M1PQ`2ylOZo&3swL+UGk(%+HEn4gh( zH%5UlJ3*09n4m-`PB2F(O)yWW{LlUZ0Xba74P>!^72GGkN~dg-{1z&xk=L;ei+l$k z;E+#Yj@lE(O}@uG#RbS+k*c)MFb01|zjTfAQn*e^K!&tHTA)fP8V8Xg(H&pFgEx!+ E03O5tI{*Lx literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$EpisodeOfCareCareTeamComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$EpisodeOfCareCareTeamComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..17d1f22c078da4f64cf0ae3b87c7069bcfcd010d GIT binary patch literal 6048 zcmcIn`Fm956@I_WBr};zLKwCXOFGCFGQd!kiY5g@5=$g3B>@D*ax=L}E=*>|J2yZ? zOBZcxE4FpPhAwVxX*F(D5|&mLTTry^FI|7Ki$C;l@Zm9i&%LuII0HWPd6Mtm?|$Do z=RN1V=X~E>`uNma0B*(~d{~LYrsIeV_S$nI`n(q}chMc1)_d_QFFIxRq8D9WyyV4Q9=zXe)$K55^SA2K0e$-BeiA5jXq7{n1;)z5Rw6HeyLji$(PC zK)gqfhPUXwx~X&Cs4#oWV9YWG^le7c=#J{mu~^*FEF&IEDufGa(Xv~^E&WEchuYjR zZ9wP48cOidP*8resYNV9Oz9>?OXFsbZn~H{rQjMcV)6=k)eb1ED5xqIN~@lXm_|bM zQtOmtf84ZM^JQ zuo_oU+tO>2kf@fp$i;DmR&h#D(s#|`U?lAb1RY0$GS&7PvA%4G_(@L~Nx}%mdxH^8 zTxh!mEld3h#wT9Dj|OUXEQ+Ro?X zf0A#z{-5gUb9Iu?wdgk8Op>r$+glaXoeGsqu#~K|O^XidrBVrzwdYG2qb4EpDwak4 z;%(%Z5P~f4FkgT?iW3kEc|9aMH&T4e7AEs@sKuO-uZXmTet zC$pOC+8i!y>TMwt*;aqg^R>&Vr$|->Cn)rSA~T|6r}2!LIjW&61Jt^6GejV^o8phZhw>=+dkZQUMfth zpBQo}!p4bT3&(u38Bge@HN@s^mvAJW7*gmc5}iDj7vntd61?5;LZaZ)?;F&j$yQxY zC@d%(!L?daZF<{_BWSe7}5q?kDE$8SXSf~&f8`SC6E`f(>#E7TW~ z$n7G2tVah4n63C`)6|CKLgB%0{dfy!Sg(GZ71if(ULjOS^@L*e<8A!Tk1lNe)X^ZN z?X&yFLS~&x_TvFO$Wy-H&Qy^o%*q^3^|=9AEP?+$(>ckNdvSs1q+`m1iwf%s8Olp? zk-GBZ9lYzuAw*;tl;MCM58+`yF5x{H-uL61GChQ^7RkVbLLuR^scpA(Q?rDciwi;L z9ii9g8{}4A9TcYOLg!7fW>UDtX0XDHRBN*7-f5Y<_}ERy-xJT>R+Y6aj8gC#83;33 zzuDz9G#0j;6C3pda?_33kLl^1wzW;&d-RAj02hyt2}n|F(rR{H0ik0r7xUyV?d=7x z5>6{)b6)@H^=G}d@9om83+5w_O6958DYhyiyhrg$<+Sc~#T2l0 z7mvtJ3Hkhq=T&1)f^Ap14RiUcawYGbrToFn2FhPzjhrn<37Yur3rT)lbvIN5tFfjX z%~;!x7PQJ+8~5Ci#22wHiFQh}(^1kb9gHg*_+EmI6Sb{RY1<^)HfOYbDXndbXzQdF zHmS*2x>C|xMS5FCI)i1qNZ-Yu(mSw|(s$b!?!h#^^Mv5In_uSgsrW2y7=wD9FA5q* zAK^mnfLn=ZHzFK&^Lqp?d;8LcH&JpC^H0DvjLOq+?+BERq3p~Fc!p8ca2nnnV<MUnjmY(3569iyG>-`A5L(I$fICab*_?V^#^ahqA8DWSK%e z1Fw1(Q`B>)RnKFAdcn5mg}RJd5BAZ>ejG@d%FT04ex7INF}jvOZa9t_LaE6bbQt|2 z9es&;9$}teW}aVRo?p$&^H3(hxs0xH7+o`p&wLW2->}tW7=1qurhw-$x@HnzPLVIH zOSyKW_;Lv4c2KuBgvKx@bQ*O#0-p^819M%08|hTZ80MwoX)nzWEC?)gma4|ED0ito zusG1*EY)PBvdzOu!WjZMi=aA(Ms*(B)Y~b#eTDdWRY-a9F*EIErVpM*hyh;G(GVKN z(vaY}$edTqW9QG_^grF{vJr|kGcQ8-Aiw1QGE7W_~qTWYD{SiazPj*JyP&SU)DDmKH{Da~! z&hD0;JI}9QMjiS65$3JG;`%oj1zx36v3P{BkkVT(3HltX$~6)?hmiAf7NHFiiY5Ga zpTJGSSior&r&XNZJdBy*9j7(U>csx&5cSXW?Jw}Dzp|eH#z6fYHR>O>KYqA<-pg1) zoNJ_Y@=BM2wVA9DShWJ{mMg$=XS=Xt@e(Vx-_DJOnf5KVtU)!P=r8R+S*BVvb zOxk@rWpz%9x!vCS$W?7+WWGc35`5P_+(p5ooE!Z2@jZkQ^rQTL DEnP`h literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$EpisodeOfCareStatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$EpisodeOfCareStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..c21d105d973b262c7e753f19065c3b306c7c96c0 GIT binary patch literal 3954 zcmb_fTXPi075+xIZLLS33>O9}Aol7!nv3I4>|Fa6#$&B!y26q^?en&df}V8`w8d_Tn%vXA5Ia zB(sT=RAK|>R1nB$%y;5glDse-MvDVQ|Lj1a=tTow5GPLH%7GFW`U6c8GEG!X-jIQg z(XqLy8xwq)otd1SrebkkCj4+?l*{~A1^0KEKZZ+jxzjC>Wi)w$4n)oq(lEP07oZnRno4Aah znV7_s0i^JA6TiSO8EP8Kosu{43cgG4Id0;uNE7EY6$Zu7=eHq63FWA`sCb7J-MQ)| z#eC$f1}4s{iS{rl%E-isBKB?N&1QHEJi9ep%ce^e&(Etxlel8w=zOpogsXww}>JFTciBweB}5{MN+p@Ou+~z#sYPf?=3*MK88xtuokQ!FE|2Y);k9 zwUf|}6DLY+C$Wjz&O3>;u6Xp4wzeUr-+=ujces@(B0#dN zKZ%7_sU$d|9nxfM(TQ!}D|tymj}cLs8_-+ud@otI>4BOD=@%-nd*X^)q)Y78A~W8m zP_@8IWG{6uJxO;X;~G(FQqL#^VPeZQMlGp3hu*6BK+)O@^oojaxrT$v{xe7N(acy? z$QtQvt5Va50)tRUWI)oV8XB5!WC4ZN_Kr%1MX8M2rb(wl(P20jL&jYCv0UZukUFS} z&-Eg=QsPqfq1e`(Zjoh{Dx4s{)7vz+5})3Q9TipNz4z zYwhENN?W-`t74V2aWSm;d6j6Dn96mk((#g^s&9_E)JQrp`MsFhQdeuXtH!8H2B&5N zdy<)=I%B<3sLt5%s_KkHp||>!i3_So?Aa;@s;-j7^$FNObMc;CSfcM)G<&~t2{dqK zdvDPPfuU_>e6yD|BcP7%t(h7VO_X;lj?d zA_*Hxnq)VYvhf}N$~I?C8JNsuna6IC-7&+386J5u>d2F69CT8tH z$=@Z6!N54Fqa4+h-hgo*EnlLwO3J_lpB?(!N%CLD_v-vFpheF@xmXg8`> zXYDn$fppb+W|J_hR@Wx6r)urpB)Y5C*ER{OYVF%3_E#U`K<*(9<{sc#>$&?l#7~E; z!+hMw*B{`>KQu7qh!O1Na|T_Q<=a&}hif>3>v$1a^kNP#W1c~|!L4ZQubKIZMu3C_b&bc47nHAe3+R|A}n8&hb{x=-}PM`#A4@ z-lupE@;+;I(iijq?WVP~v1&c9g3_X+coc%~Z{Q^V#W)RzKo^(~E{_s<0+!5$f(F=$ z)X5foQQNhrfGSnB9{JmWYKf?piOMIc5>W+26%tjMsP67Wb^R%zva8m&s@Bn}^+MIk zRIL{u4t5#ptI{p|`?-JE} zMD;#VeLz$n64ggU^)XR>@+d07th`dstA8@r)b-gzwB@W5tq<_h7f5TOzfBXSCI;Fy zu}2dpJ2cU)iBl;}SekfQXkx!6PIuS%2D?*#qx4qp%WSS~17lxG0HkJ!`*a;rnjP2DCW7(RBGQO TFJSSljl1kD%i#(~bc_E3cr@s` literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$EpisodeOfCareStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$EpisodeOfCareStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..709e8a82ddbc6c677ab18a3d9d909573579eb71f GIT binary patch literal 2113 zcmbtVTXWk~5dKbLTbC$}tEQB+v?Mf;IHoleNGVCj4U@W z!!KYM?gh$ahHJS#7#@-tIs-iMz@OnCFzm5iM<$uP#4|o;_h_~I?YFx}fB*a2?*JZw zCgUU?7I97{Hc%mo+oylp9sua=V3QIJRTd=6Akfm_^;8*RNRDEPK-$?Mb5DJ);Hcve5|z z&*6CnM#2ktk*D?&X;A?$Gh94S*C+^KO2KJ7z>qwUC*C5R`ZAo_BbOe7;0_(_=3$uF zH@w%o=jAq+R89SrhGx<{9rZSRr!PZSsrpOlSSFKLV2B>D`zTl}o=>eLNXTZA*);hS z7gL#3F3H_XtEqf)VL7&%p*G3plZj>CYqgqg6&cQW(d{v3J*`1qF1q%e42LK8oZOy# z?|7s;F|;q6-VwtX-L5A=MWajIPdg0`tz)F|Q<@?8r?$aZH~O&ar0Xx2VO37=sDpJReN3_u!Gn9}-Tk`8=CL6H75L$q?n zZcs>0Lo`e&-aL#t34#197YaQJM<> ziIFWF=fQdkOXjEXAer%uPIb%!Q^fCyUA7(``f;WO`z(Rs@E;;@fJ)K`QW(E9Ld2(# Gf%G2>RT@tK literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$EpisodeOfCareStatusHistoryComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/EpisodeOfCare$EpisodeOfCareStatusHistoryComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..8f77e1f696b747ec2ffc74c2a9f57da020208a81 GIT binary patch literal 5982 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 { + public EpisodeOfCareStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("planned".equals(codeString)) + return EpisodeOfCareStatus.PLANNED; + if ("active".equals(codeString)) + return EpisodeOfCareStatus.ACTIVE; + if ("onhold".equals(codeString)) + return EpisodeOfCareStatus.ONHOLD; + if ("finished".equals(codeString)) + return EpisodeOfCareStatus.FINISHED; + if ("withdrawn".equals(codeString)) + return EpisodeOfCareStatus.WITHDRAWN; + if ("other".equals(codeString)) + return EpisodeOfCareStatus.OTHER; + throw new IllegalArgumentException("Unknown EpisodeOfCareStatus code '"+codeString+"'"); + } + public String toCode(EpisodeOfCareStatus code) { + if (code == EpisodeOfCareStatus.PLANNED) + return "planned"; + if (code == EpisodeOfCareStatus.ACTIVE) + return "active"; + if (code == EpisodeOfCareStatus.ONHOLD) + return "onhold"; + if (code == EpisodeOfCareStatus.FINISHED) + return "finished"; + if (code == EpisodeOfCareStatus.WITHDRAWN) + return "withdrawn"; + if (code == EpisodeOfCareStatus.OTHER) + return "other"; + return "?"; + } + } + + @Block() + public static class EpisodeOfCareStatusHistoryComponent extends BackboneElement { + /** + * planned | active | onhold | finished | withdrawn | other. + */ + @Child(name="status", type={CodeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="planned | active | onhold | finished | withdrawn | other", formalDefinition="planned | active | onhold | finished | withdrawn | other." ) + protected Enumeration status; + + /** + * The period during this episodeofcare that the specific status applied. + */ + @Child(name="period", type={Period.class}, order=2, min=1, max=1) + @Description(shortDefinition="The period during this episodeofcare that the specific status applied", formalDefinition="The period during this episodeofcare that the specific status applied." ) + protected Period period; + + private static final long serialVersionUID = -1192432864L; + + public EpisodeOfCareStatusHistoryComponent() { + super(); + } + + public EpisodeOfCareStatusHistoryComponent(Enumeration status, Period period) { + super(); + this.status = status; + this.period = period; + } + + /** + * @return {@link #status} (planned | active | onhold | finished | withdrawn | other.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCareStatusHistoryComponent.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new EpisodeOfCareStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (planned | active | onhold | finished | withdrawn | other.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public EpisodeOfCareStatusHistoryComponent setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return planned | active | onhold | finished | withdrawn | other. + */ + public EpisodeOfCareStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value planned | active | onhold | finished | withdrawn | other. + */ + public EpisodeOfCareStatusHistoryComponent setStatus(EpisodeOfCareStatus value) { + if (this.status == null) + this.status = new Enumeration(new EpisodeOfCareStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #period} (The period during this episodeofcare that the specific status applied.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCareStatusHistoryComponent.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (The period during this episodeofcare that the specific status applied.) + */ + public EpisodeOfCareStatusHistoryComponent setPeriod(Period value) { + this.period = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("status", "code", "planned | active | onhold | finished | withdrawn | other.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("period", "Period", "The period during this episodeofcare that the specific status applied.", 0, java.lang.Integer.MAX_VALUE, period)); + } + + public EpisodeOfCareStatusHistoryComponent copy() { + EpisodeOfCareStatusHistoryComponent dst = new EpisodeOfCareStatusHistoryComponent(); + copyValues(dst); + dst.status = status == null ? null : status.copy(); + dst.period = period == null ? null : period.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof EpisodeOfCareStatusHistoryComponent)) + return false; + EpisodeOfCareStatusHistoryComponent o = (EpisodeOfCareStatusHistoryComponent) other; + return compareDeep(status, o.status, true) && compareDeep(period, o.period, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof EpisodeOfCareStatusHistoryComponent)) + return false; + EpisodeOfCareStatusHistoryComponent o = (EpisodeOfCareStatusHistoryComponent) other; + return compareValues(status, o.status, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (status == null || status.isEmpty()) && (period == null || period.isEmpty()) + ; + } + + } + + @Block() + public static class EpisodeOfCareCareTeamComponent extends BackboneElement { + /** + * The practitioner within the team. + */ + @Child(name="member", type={Practitioner.class}, order=1, min=0, max=1) + @Description(shortDefinition="The practitioner within the team", formalDefinition="The practitioner within the team." ) + protected Reference member; + + /** + * The actual object that is the target of the reference (The practitioner within the team.) + */ + protected Practitioner memberTarget; + + /** + * The role that this team member is taking within this episode of care. + */ + @Child(name="role", type={CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="The role that this team member is taking within this episode of care", formalDefinition="The role that this team member is taking within this episode of care." ) + protected List role; + + /** + * The period of time that this practitioner is performing some role within the episode of care. + */ + @Child(name="period", type={Period.class}, order=3, min=0, max=1) + @Description(shortDefinition="The period of time that this practitioner is performing some role within the episode of care", formalDefinition="The period of time that this practitioner is performing some role within the episode of care." ) + protected Period period; + + private static final long serialVersionUID = 1665319429L; + + public EpisodeOfCareCareTeamComponent() { + super(); + } + + /** + * @return {@link #member} (The practitioner within the team.) + */ + public Reference getMember() { + if (this.member == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCareCareTeamComponent.member"); + else if (Configuration.doAutoCreate()) + this.member = new Reference(); // cc + return this.member; + } + + public boolean hasMember() { + return this.member != null && !this.member.isEmpty(); + } + + /** + * @param value {@link #member} (The practitioner within the team.) + */ + public EpisodeOfCareCareTeamComponent setMember(Reference value) { + this.member = value; + return this; + } + + /** + * @return {@link #member} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner within the team.) + */ + public Practitioner getMemberTarget() { + if (this.memberTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCareCareTeamComponent.member"); + else if (Configuration.doAutoCreate()) + this.memberTarget = new Practitioner(); // aa + return this.memberTarget; + } + + /** + * @param value {@link #member} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner within the team.) + */ + public EpisodeOfCareCareTeamComponent setMemberTarget(Practitioner value) { + this.memberTarget = value; + return this; + } + + /** + * @return {@link #role} (The role that this team member is taking within this episode of care.) + */ + public List getRole() { + if (this.role == null) + this.role = new ArrayList(); + return this.role; + } + + public boolean hasRole() { + if (this.role == null) + return false; + for (CodeableConcept item : this.role) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #role} (The role that this team member is taking within this episode of care.) + */ + // syntactic sugar + public CodeableConcept addRole() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.role == null) + this.role = new ArrayList(); + this.role.add(t); + return t; + } + + /** + * @return {@link #period} (The period of time that this practitioner is performing some role within the episode of care.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCareCareTeamComponent.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (The period of time that this practitioner is performing some role within the episode of care.) + */ + public EpisodeOfCareCareTeamComponent setPeriod(Period value) { + this.period = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("member", "Reference(Practitioner)", "The practitioner within the team.", 0, java.lang.Integer.MAX_VALUE, member)); + childrenList.add(new Property("role", "CodeableConcept", "The role that this team member is taking within this episode of care.", 0, java.lang.Integer.MAX_VALUE, role)); + childrenList.add(new Property("period", "Period", "The period of time that this practitioner is performing some role within the episode of care.", 0, java.lang.Integer.MAX_VALUE, period)); + } + + public EpisodeOfCareCareTeamComponent copy() { + EpisodeOfCareCareTeamComponent dst = new EpisodeOfCareCareTeamComponent(); + copyValues(dst); + dst.member = member == null ? null : member.copy(); + if (role != null) { + dst.role = new ArrayList(); + for (CodeableConcept i : role) + dst.role.add(i.copy()); + }; + dst.period = period == null ? null : period.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof EpisodeOfCareCareTeamComponent)) + return false; + EpisodeOfCareCareTeamComponent o = (EpisodeOfCareCareTeamComponent) other; + return compareDeep(member, o.member, true) && compareDeep(role, o.role, true) && compareDeep(period, o.period, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof EpisodeOfCareCareTeamComponent)) + return false; + EpisodeOfCareCareTeamComponent o = (EpisodeOfCareCareTeamComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (member == null || member.isEmpty()) && (role == null || role.isEmpty()) + && (period == null || period.isEmpty()); + } + + } + + /** + * Identifier(s) by which this EpisodeOfCare is known. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Identifier(s) by which this EpisodeOfCare is known", formalDefinition="Identifier(s) by which this EpisodeOfCare is known." ) + protected List identifier; + + /** + * planned | active | onhold | finished | withdrawn | other. + */ + @Child(name="currentStatus", type={CodeType.class}, order=0, min=1, max=1) + @Description(shortDefinition="planned | active | onhold | finished | withdrawn | other", formalDefinition="planned | active | onhold | finished | withdrawn | other." ) + protected Enumeration currentStatus; + + /** + * The status history for the EpisodeOfCare. + */ + @Child(name="statusHistory", type={}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="The status history for the EpisodeOfCare", formalDefinition="The status history for the EpisodeOfCare." ) + protected List statusHistory; + + /** + * The type can be very important in processing as this could be used in determining if the episodeofcare is relevant to specific government reporting, or other types of classifications. + */ + @Child(name="type", type={CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Specific type of EpisodeOfcare", formalDefinition="The type can be very important in processing as this could be used in determining if the episodeofcare is relevant to specific government reporting, or other types of classifications." ) + protected List type; + + /** + * The patient that this episodeofcare applies to. + */ + @Child(name="patient", type={Patient.class}, order=3, min=1, max=1) + @Description(shortDefinition="The patient that this episodeofcare applies to", formalDefinition="The patient that this episodeofcare applies to." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (The patient that this episodeofcare applies to.) + */ + protected Patient patientTarget; + + /** + * The organization that has assumed the specific responsibilities for the specified duration. + */ + @Child(name="managingOrganization", type={Organization.class}, order=4, min=0, max=1) + @Description(shortDefinition="The organization that has assumed the specific responsibilities for the specified duration", formalDefinition="The organization that has assumed the specific responsibilities for the specified duration." ) + protected Reference managingOrganization; + + /** + * The actual object that is the target of the reference (The organization that has assumed the specific responsibilities for the specified duration.) + */ + protected Organization managingOrganizationTarget; + + /** + * The interval during which the managing organization assumes the defined responsibility. + */ + @Child(name="period", type={Period.class}, order=5, min=0, max=1) + @Description(shortDefinition="The interval during which the managing organization assumes the defined responsibility", formalDefinition="The interval during which the managing organization assumes the defined responsibility." ) + protected Period period; + + /** + * A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for. + */ + @Child(name="condition", type={Condition.class}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for", formalDefinition="A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for." ) + protected List condition; + /** + * The actual objects that are the target of the reference (A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for.) + */ + protected List conditionTarget; + + + /** + * A Referral Request that this EpisodeOfCare manages activities within. + */ + @Child(name="referralRequest", type={ReferralRequest.class}, order=7, min=0, max=1) + @Description(shortDefinition="A Referral Request that this EpisodeOfCare manages activities within", formalDefinition="A Referral Request that this EpisodeOfCare manages activities within." ) + protected Reference referralRequest; + + /** + * The actual object that is the target of the reference (A Referral Request that this EpisodeOfCare manages activities within.) + */ + protected ReferralRequest referralRequestTarget; + + /** + * The practitioner that is the care manager/care co-ordinator for this patient. + */ + @Child(name="careManager", type={Practitioner.class}, order=8, min=0, max=1) + @Description(shortDefinition="The practitioner that is the care manager/care co-ordinator for this patient", formalDefinition="The practitioner that is the care manager/care co-ordinator for this patient." ) + protected Reference careManager; + + /** + * The actual object that is the target of the reference (The practitioner that is the care manager/care co-ordinator for this patient.) + */ + protected Practitioner careManagerTarget; + + /** + * The list of practitioners that may be facilitating this episode of care for specific purposes. + */ + @Child(name="careTeam", type={}, order=9, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="The list of practitioners that may be facilitating this episode of care for specific purposes", formalDefinition="The list of practitioners that may be facilitating this episode of care for specific purposes." ) + protected List careTeam; + + private static final long serialVersionUID = -411812845L; + + public EpisodeOfCare() { + super(); + } + + public EpisodeOfCare(Enumeration currentStatus, Reference patient) { + super(); + this.currentStatus = currentStatus; + this.patient = patient; + } + + /** + * @return {@link #identifier} (Identifier(s) by which this EpisodeOfCare is known.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Identifier(s) by which this EpisodeOfCare is known.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #currentStatus} (planned | active | onhold | finished | withdrawn | other.). This is the underlying object with id, value and extensions. The accessor "getCurrentStatus" gives direct access to the value + */ + public Enumeration getCurrentStatusElement() { + if (this.currentStatus == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCare.currentStatus"); + else if (Configuration.doAutoCreate()) + this.currentStatus = new Enumeration(new EpisodeOfCareStatusEnumFactory()); // bb + return this.currentStatus; + } + + public boolean hasCurrentStatusElement() { + return this.currentStatus != null && !this.currentStatus.isEmpty(); + } + + public boolean hasCurrentStatus() { + return this.currentStatus != null && !this.currentStatus.isEmpty(); + } + + /** + * @param value {@link #currentStatus} (planned | active | onhold | finished | withdrawn | other.). This is the underlying object with id, value and extensions. The accessor "getCurrentStatus" gives direct access to the value + */ + public EpisodeOfCare setCurrentStatusElement(Enumeration value) { + this.currentStatus = value; + return this; + } + + /** + * @return planned | active | onhold | finished | withdrawn | other. + */ + public EpisodeOfCareStatus getCurrentStatus() { + return this.currentStatus == null ? null : this.currentStatus.getValue(); + } + + /** + * @param value planned | active | onhold | finished | withdrawn | other. + */ + public EpisodeOfCare setCurrentStatus(EpisodeOfCareStatus value) { + if (this.currentStatus == null) + this.currentStatus = new Enumeration(new EpisodeOfCareStatusEnumFactory()); + this.currentStatus.setValue(value); + return this; + } + + /** + * @return {@link #statusHistory} (The status history for the EpisodeOfCare.) + */ + public List getStatusHistory() { + if (this.statusHistory == null) + this.statusHistory = new ArrayList(); + return this.statusHistory; + } + + public boolean hasStatusHistory() { + if (this.statusHistory == null) + return false; + for (EpisodeOfCareStatusHistoryComponent item : this.statusHistory) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #statusHistory} (The status history for the EpisodeOfCare.) + */ + // syntactic sugar + public EpisodeOfCareStatusHistoryComponent addStatusHistory() { //3 + EpisodeOfCareStatusHistoryComponent t = new EpisodeOfCareStatusHistoryComponent(); + if (this.statusHistory == null) + this.statusHistory = new ArrayList(); + this.statusHistory.add(t); + return t; + } + + /** + * @return {@link #type} (The type can be very important in processing as this could be used in determining if the episodeofcare is relevant to specific government reporting, or other types of classifications.) + */ + public List getType() { + if (this.type == null) + this.type = new ArrayList(); + return this.type; + } + + public boolean hasType() { + if (this.type == null) + return false; + for (CodeableConcept item : this.type) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #type} (The type can be very important in processing as this could be used in determining if the episodeofcare is relevant to specific government reporting, or other types of classifications.) + */ + // syntactic sugar + public CodeableConcept addType() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.type == null) + this.type = new ArrayList(); + this.type.add(t); + return t; + } + + /** + * @return {@link #patient} (The patient that this episodeofcare applies to.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCare.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (The patient that this episodeofcare applies to.) + */ + public EpisodeOfCare setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient that this episodeofcare applies to.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCare.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient that this episodeofcare applies to.) + */ + public EpisodeOfCare setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #managingOrganization} (The organization that has assumed the specific responsibilities for the specified duration.) + */ + public Reference getManagingOrganization() { + if (this.managingOrganization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCare.managingOrganization"); + else if (Configuration.doAutoCreate()) + this.managingOrganization = new Reference(); // cc + return this.managingOrganization; + } + + public boolean hasManagingOrganization() { + return this.managingOrganization != null && !this.managingOrganization.isEmpty(); + } + + /** + * @param value {@link #managingOrganization} (The organization that has assumed the specific responsibilities for the specified duration.) + */ + public EpisodeOfCare setManagingOrganization(Reference value) { + this.managingOrganization = value; + return this; + } + + /** + * @return {@link #managingOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization that has assumed the specific responsibilities for the specified duration.) + */ + public Organization getManagingOrganizationTarget() { + if (this.managingOrganizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCare.managingOrganization"); + else if (Configuration.doAutoCreate()) + this.managingOrganizationTarget = new Organization(); // aa + return this.managingOrganizationTarget; + } + + /** + * @param value {@link #managingOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization that has assumed the specific responsibilities for the specified duration.) + */ + public EpisodeOfCare setManagingOrganizationTarget(Organization value) { + this.managingOrganizationTarget = value; + return this; + } + + /** + * @return {@link #period} (The interval during which the managing organization assumes the defined responsibility.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCare.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (The interval during which the managing organization assumes the defined responsibility.) + */ + public EpisodeOfCare setPeriod(Period value) { + this.period = value; + return this; + } + + /** + * @return {@link #condition} (A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for.) + */ + public List getCondition() { + if (this.condition == null) + this.condition = new ArrayList(); + return this.condition; + } + + public boolean hasCondition() { + if (this.condition == null) + return false; + for (Reference item : this.condition) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #condition} (A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for.) + */ + // syntactic sugar + public Reference addCondition() { //3 + Reference t = new Reference(); + if (this.condition == null) + this.condition = new ArrayList(); + this.condition.add(t); + return t; + } + + /** + * @return {@link #condition} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for.) + */ + public List getConditionTarget() { + if (this.conditionTarget == null) + this.conditionTarget = new ArrayList(); + return this.conditionTarget; + } + + // syntactic sugar + /** + * @return {@link #condition} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for.) + */ + public Condition addConditionTarget() { + Condition r = new Condition(); + if (this.conditionTarget == null) + this.conditionTarget = new ArrayList(); + this.conditionTarget.add(r); + return r; + } + + /** + * @return {@link #referralRequest} (A Referral Request that this EpisodeOfCare manages activities within.) + */ + public Reference getReferralRequest() { + if (this.referralRequest == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCare.referralRequest"); + else if (Configuration.doAutoCreate()) + this.referralRequest = new Reference(); // cc + return this.referralRequest; + } + + public boolean hasReferralRequest() { + return this.referralRequest != null && !this.referralRequest.isEmpty(); + } + + /** + * @param value {@link #referralRequest} (A Referral Request that this EpisodeOfCare manages activities within.) + */ + public EpisodeOfCare setReferralRequest(Reference value) { + this.referralRequest = value; + return this; + } + + /** + * @return {@link #referralRequest} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A Referral Request that this EpisodeOfCare manages activities within.) + */ + public ReferralRequest getReferralRequestTarget() { + if (this.referralRequestTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCare.referralRequest"); + else if (Configuration.doAutoCreate()) + this.referralRequestTarget = new ReferralRequest(); // aa + return this.referralRequestTarget; + } + + /** + * @param value {@link #referralRequest} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A Referral Request that this EpisodeOfCare manages activities within.) + */ + public EpisodeOfCare setReferralRequestTarget(ReferralRequest value) { + this.referralRequestTarget = value; + return this; + } + + /** + * @return {@link #careManager} (The practitioner that is the care manager/care co-ordinator for this patient.) + */ + public Reference getCareManager() { + if (this.careManager == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCare.careManager"); + else if (Configuration.doAutoCreate()) + this.careManager = new Reference(); // cc + return this.careManager; + } + + public boolean hasCareManager() { + return this.careManager != null && !this.careManager.isEmpty(); + } + + /** + * @param value {@link #careManager} (The practitioner that is the care manager/care co-ordinator for this patient.) + */ + public EpisodeOfCare setCareManager(Reference value) { + this.careManager = value; + return this; + } + + /** + * @return {@link #careManager} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner that is the care manager/care co-ordinator for this patient.) + */ + public Practitioner getCareManagerTarget() { + if (this.careManagerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create EpisodeOfCare.careManager"); + else if (Configuration.doAutoCreate()) + this.careManagerTarget = new Practitioner(); // aa + return this.careManagerTarget; + } + + /** + * @param value {@link #careManager} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner that is the care manager/care co-ordinator for this patient.) + */ + public EpisodeOfCare setCareManagerTarget(Practitioner value) { + this.careManagerTarget = value; + return this; + } + + /** + * @return {@link #careTeam} (The list of practitioners that may be facilitating this episode of care for specific purposes.) + */ + public List getCareTeam() { + if (this.careTeam == null) + this.careTeam = new ArrayList(); + return this.careTeam; + } + + public boolean hasCareTeam() { + if (this.careTeam == null) + return false; + for (EpisodeOfCareCareTeamComponent item : this.careTeam) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #careTeam} (The list of practitioners that may be facilitating this episode of care for specific purposes.) + */ + // syntactic sugar + public EpisodeOfCareCareTeamComponent addCareTeam() { //3 + EpisodeOfCareCareTeamComponent t = new EpisodeOfCareCareTeamComponent(); + if (this.careTeam == null) + this.careTeam = new ArrayList(); + this.careTeam.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Identifier(s) by which this EpisodeOfCare is known.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("currentStatus", "code", "planned | active | onhold | finished | withdrawn | other.", 0, java.lang.Integer.MAX_VALUE, currentStatus)); + childrenList.add(new Property("statusHistory", "", "The status history for the EpisodeOfCare.", 0, java.lang.Integer.MAX_VALUE, statusHistory)); + childrenList.add(new Property("type", "CodeableConcept", "The type can be very important in processing as this could be used in determining if the episodeofcare is relevant to specific government reporting, or other types of classifications.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("patient", "Reference(Patient)", "The patient that this episodeofcare applies to.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("managingOrganization", "Reference(Organization)", "The organization that has assumed the specific responsibilities for the specified duration.", 0, java.lang.Integer.MAX_VALUE, managingOrganization)); + childrenList.add(new Property("period", "Period", "The interval during which the managing organization assumes the defined responsibility.", 0, java.lang.Integer.MAX_VALUE, period)); + childrenList.add(new Property("condition", "Reference(Condition)", "A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for.", 0, java.lang.Integer.MAX_VALUE, condition)); + childrenList.add(new Property("referralRequest", "Reference(ReferralRequest)", "A Referral Request that this EpisodeOfCare manages activities within.", 0, java.lang.Integer.MAX_VALUE, referralRequest)); + childrenList.add(new Property("careManager", "Reference(Practitioner)", "The practitioner that is the care manager/care co-ordinator for this patient.", 0, java.lang.Integer.MAX_VALUE, careManager)); + childrenList.add(new Property("careTeam", "", "The list of practitioners that may be facilitating this episode of care for specific purposes.", 0, java.lang.Integer.MAX_VALUE, careTeam)); + } + + public EpisodeOfCare copy() { + EpisodeOfCare dst = new EpisodeOfCare(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.currentStatus = currentStatus == null ? null : currentStatus.copy(); + if (statusHistory != null) { + dst.statusHistory = new ArrayList(); + for (EpisodeOfCareStatusHistoryComponent i : statusHistory) + dst.statusHistory.add(i.copy()); + }; + if (type != null) { + dst.type = new ArrayList(); + for (CodeableConcept i : type) + dst.type.add(i.copy()); + }; + dst.patient = patient == null ? null : patient.copy(); + dst.managingOrganization = managingOrganization == null ? null : managingOrganization.copy(); + dst.period = period == null ? null : period.copy(); + if (condition != null) { + dst.condition = new ArrayList(); + for (Reference i : condition) + dst.condition.add(i.copy()); + }; + dst.referralRequest = referralRequest == null ? null : referralRequest.copy(); + dst.careManager = careManager == null ? null : careManager.copy(); + if (careTeam != null) { + dst.careTeam = new ArrayList(); + for (EpisodeOfCareCareTeamComponent i : careTeam) + dst.careTeam.add(i.copy()); + }; + return dst; + } + + protected EpisodeOfCare typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof EpisodeOfCare)) + return false; + EpisodeOfCare o = (EpisodeOfCare) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(currentStatus, o.currentStatus, true) + && compareDeep(statusHistory, o.statusHistory, true) && compareDeep(type, o.type, true) && compareDeep(patient, o.patient, true) + && compareDeep(managingOrganization, o.managingOrganization, true) && compareDeep(period, o.period, true) + && compareDeep(condition, o.condition, true) && compareDeep(referralRequest, o.referralRequest, true) + && compareDeep(careManager, o.careManager, true) && compareDeep(careTeam, o.careTeam, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof EpisodeOfCare)) + return false; + EpisodeOfCare o = (EpisodeOfCare) other; + return compareValues(currentStatus, o.currentStatus, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (currentStatus == null || currentStatus.isEmpty()) + && (statusHistory == null || statusHistory.isEmpty()) && (type == null || type.isEmpty()) + && (patient == null || patient.isEmpty()) && (managingOrganization == null || managingOrganization.isEmpty()) + && (period == null || period.isEmpty()) && (condition == null || condition.isEmpty()) && (referralRequest == null || referralRequest.isEmpty()) + && (careManager == null || careManager.isEmpty()) && (careTeam == null || careTeam.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.EpisodeOfCare; + } + + @SearchParamDefinition(name="organization", path="EpisodeOfCare.managingOrganization", description="The organization that has assumed the specific responsibilities for the specified duration", type="reference" ) + public static final String SP_ORGANIZATION = "organization"; + @SearchParamDefinition(name="patient", path="EpisodeOfCare.patient", description="The patient that this episodeofcare applies to", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="condition", path="EpisodeOfCare.condition", description="A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for", type="reference" ) + public static final String SP_CONDITION = "condition"; + @SearchParamDefinition(name="status", path="EpisodeOfCare.currentStatus", description="planned | active | onhold | finished | withdrawn | other", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="referral", path="EpisodeOfCare.referralRequest", description="A Referral Request that this EpisodeOfCare manages activities within", type="reference" ) + public static final String SP_REFERRAL = "referral"; + @SearchParamDefinition(name="care-manager", path="EpisodeOfCare.careManager", description="The practitioner that is the care manager/care co-ordinator for this patient", type="reference" ) + public static final String SP_CAREMANAGER = "care-manager"; + @SearchParamDefinition(name="type", path="EpisodeOfCare.type", description="Specific type of EpisodeOfcare", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="date", path="EpisodeOfCare.period", description="The interval during which the managing organization assumes the defined responsibility", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="identifier", path="EpisodeOfCare.identifier", description="Identifier(s) by which this EpisodeOfCare is known", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit$1.class new file mode 100644 index 0000000000000000000000000000000000000000..972049a5135fd3c147c12ee50710357529abb534 GIT binary patch literal 849 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 E2Rw~caR2}S literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit.java similarity index 89% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit.java index 3d4c8113b55..b5a4a7fb882 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExplanationOfBenefit.java @@ -1,698 +1,697 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information , for informing the subscriber of the benefits provided. - */ -@ResourceDef(name="ExplanationOfBenefit", profile="http://hl7.org/fhir/Profile/ExplanationOfBenefit") -public class ExplanationOfBenefit extends DomainResource { - - public enum RSLink implements FhirEnum { - /** - * The processing completed without errors. - */ - COMPLETE, - /** - * The processing identified with errors. - */ - ERROR, - /** - * added to help the parsers - */ - NULL; - - public static final RSLinkEnumFactory ENUM_FACTORY = new RSLinkEnumFactory(); - - public static RSLink fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("complete".equals(codeString)) - return COMPLETE; - if ("error".equals(codeString)) - return ERROR; - throw new IllegalArgumentException("Unknown RSLink code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case COMPLETE: return "complete"; - case ERROR: return "error"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case COMPLETE: return ""; - case ERROR: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case COMPLETE: return "The processing completed without errors."; - case ERROR: return "The processing identified with errors."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case COMPLETE: return "complete"; - case ERROR: return "error"; - default: return "?"; - } - } - } - - public static class RSLinkEnumFactory implements EnumFactory { - public RSLink fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("complete".equals(codeString)) - return RSLink.COMPLETE; - if ("error".equals(codeString)) - return RSLink.ERROR; - throw new IllegalArgumentException("Unknown RSLink code '"+codeString+"'"); - } - public String toCode(RSLink code) throws IllegalArgumentException { - if (code == RSLink.COMPLETE) - return "complete"; - if (code == RSLink.ERROR) - return "error"; - return "?"; - } - } - - /** - * The Response Business Identifier. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Business Identifier", formalDefinition="The Response Business Identifier." ) - protected List identifier; - - /** - * Original request resource referrence. - */ - @Child(name="request", type={OralHealthClaim.class}, order=0, min=0, max=1) - @Description(shortDefinition="Claim reference", formalDefinition="Original request resource referrence." ) - protected Reference request; - - /** - * The actual object that is the target of the reference (Original request resource referrence.) - */ - protected OralHealthClaim requestTarget; - - /** - * Transaction status: error, complete. - */ - @Child(name="outcome", type={CodeType.class}, order=1, min=0, max=1) - @Description(shortDefinition="complete | error", formalDefinition="Transaction status: error, complete." ) - protected Enumeration outcome; - - /** - * A description of the status of the adjudication. - */ - @Child(name="disposition", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Disposition Message", formalDefinition="A description of the status of the adjudication." ) - protected StringType disposition; - - /** - * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. - */ - @Child(name="ruleset", type={Coding.class}, order=3, min=0, max=1) - @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." ) - protected Coding ruleset; - - /** - * The style (standard) and version of the original material which was converted into this resource. - */ - @Child(name="originalRuleset", type={Coding.class}, order=4, min=0, max=1) - @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) - protected Coding originalRuleset; - - /** - * The date when the enclosed suite of services were performed or completed. - */ - @Child(name="created", type={DateTimeType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Creation date", formalDefinition="The date when the enclosed suite of services were performed or completed." ) - protected DateTimeType created; - - /** - * The Insurer who produced this adjudicated response. - */ - @Child(name="organization", type={Organization.class}, order=6, min=0, max=1) - @Description(shortDefinition="Insurer", formalDefinition="The Insurer who produced this adjudicated response." ) - protected Reference organization; - - /** - * The actual object that is the target of the reference (The Insurer who produced this adjudicated response.) - */ - protected Organization organizationTarget; - - /** - * The practitioner who is responsible for the services rendered to the patient. - */ - @Child(name="requestProvider", type={Practitioner.class}, order=7, min=0, max=1) - @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) - protected Reference requestProvider; - - /** - * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) - */ - protected Practitioner requestProviderTarget; - - /** - * The organization which is responsible for the services rendered to the patient. - */ - @Child(name="requestOrganization", type={Organization.class}, order=8, min=0, max=1) - @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) - protected Reference requestOrganization; - - /** - * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) - */ - protected Organization requestOrganizationTarget; - - private static final long serialVersionUID = 1627363360L; - - public ExplanationOfBenefit() { - super(); - } - - /** - * @return {@link #identifier} (The Response Business Identifier.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (The Response Business Identifier.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #request} (Original request resource referrence.) - */ - public Reference getRequest() { - if (this.request == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.request"); - else if (Configuration.doAutoCreate()) - this.request = new Reference(); - return this.request; - } - - public boolean hasRequest() { - return this.request != null && !this.request.isEmpty(); - } - - /** - * @param value {@link #request} (Original request resource referrence.) - */ - public ExplanationOfBenefit setRequest(Reference value) { - this.request = value; - return this; - } - - /** - * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Original request resource referrence.) - */ - public OralHealthClaim getRequestTarget() { - if (this.requestTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.request"); - else if (Configuration.doAutoCreate()) - this.requestTarget = new OralHealthClaim(); - return this.requestTarget; - } - - /** - * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Original request resource referrence.) - */ - public ExplanationOfBenefit setRequestTarget(OralHealthClaim value) { - this.requestTarget = value; - return this; - } - - /** - * @return {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value - */ - public Enumeration getOutcomeElement() { - if (this.outcome == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.outcome"); - else if (Configuration.doAutoCreate()) - this.outcome = new Enumeration(); - return this.outcome; - } - - public boolean hasOutcomeElement() { - return this.outcome != null && !this.outcome.isEmpty(); - } - - public boolean hasOutcome() { - return this.outcome != null && !this.outcome.isEmpty(); - } - - /** - * @param value {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value - */ - public ExplanationOfBenefit setOutcomeElement(Enumeration value) { - this.outcome = value; - return this; - } - - /** - * @return Transaction status: error, complete. - */ - public RSLink getOutcome() { - return this.outcome == null ? null : this.outcome.getValue(); - } - - /** - * @param value Transaction status: error, complete. - */ - public ExplanationOfBenefit setOutcome(RSLink value) { - if (value == null) - this.outcome = null; - else { - if (this.outcome == null) - this.outcome = new Enumeration(RSLink.ENUM_FACTORY); - this.outcome.setValue(value); - } - return this; - } - - /** - * @return {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value - */ - public StringType getDispositionElement() { - if (this.disposition == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.disposition"); - else if (Configuration.doAutoCreate()) - this.disposition = new StringType(); - return this.disposition; - } - - public boolean hasDispositionElement() { - return this.disposition != null && !this.disposition.isEmpty(); - } - - public boolean hasDisposition() { - return this.disposition != null && !this.disposition.isEmpty(); - } - - /** - * @param value {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value - */ - public ExplanationOfBenefit setDispositionElement(StringType value) { - this.disposition = value; - return this; - } - - /** - * @return A description of the status of the adjudication. - */ - public String getDisposition() { - return this.disposition == null ? null : this.disposition.getValue(); - } - - /** - * @param value A description of the status of the adjudication. - */ - public ExplanationOfBenefit setDisposition(String value) { - if (Utilities.noString(value)) - this.disposition = null; - else { - if (this.disposition == null) - this.disposition = new StringType(); - this.disposition.setValue(value); - } - return this; - } - - /** - * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) - */ - public Coding getRuleset() { - if (this.ruleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.ruleset"); - else if (Configuration.doAutoCreate()) - this.ruleset = new Coding(); - return this.ruleset; - } - - public boolean hasRuleset() { - return this.ruleset != null && !this.ruleset.isEmpty(); - } - - /** - * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) - */ - public ExplanationOfBenefit setRuleset(Coding value) { - this.ruleset = value; - return this; - } - - /** - * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public Coding getOriginalRuleset() { - if (this.originalRuleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.originalRuleset"); - else if (Configuration.doAutoCreate()) - this.originalRuleset = new Coding(); - return this.originalRuleset; - } - - public boolean hasOriginalRuleset() { - return this.originalRuleset != null && !this.originalRuleset.isEmpty(); - } - - /** - * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public ExplanationOfBenefit setOriginalRuleset(Coding value) { - this.originalRuleset = value; - return this; - } - - /** - * @return {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DateTimeType getCreatedElement() { - if (this.created == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.created"); - else if (Configuration.doAutoCreate()) - this.created = new DateTimeType(); - return this.created; - } - - public boolean hasCreatedElement() { - return this.created != null && !this.created.isEmpty(); - } - - public boolean hasCreated() { - return this.created != null && !this.created.isEmpty(); - } - - /** - * @param value {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public ExplanationOfBenefit setCreatedElement(DateTimeType value) { - this.created = value; - return this; - } - - /** - * @return The date when the enclosed suite of services were performed or completed. - */ - public Date getCreated() { - return this.created == null ? null : this.created.getValue(); - } - - /** - * @param value The date when the enclosed suite of services were performed or completed. - */ - public ExplanationOfBenefit setCreated(Date value) { - if (value == null) - this.created = null; - else { - if (this.created == null) - this.created = new DateTimeType(); - this.created.setValue(value); - } - return this; - } - - /** - * @return {@link #organization} (The Insurer who produced this adjudicated response.) - */ - public Reference getOrganization() { - if (this.organization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.organization"); - else if (Configuration.doAutoCreate()) - this.organization = new Reference(); - return this.organization; - } - - public boolean hasOrganization() { - return this.organization != null && !this.organization.isEmpty(); - } - - /** - * @param value {@link #organization} (The Insurer who produced this adjudicated response.) - */ - public ExplanationOfBenefit setOrganization(Reference value) { - this.organization = value; - return this; - } - - /** - * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) - */ - public Organization getOrganizationTarget() { - if (this.organizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.organization"); - else if (Configuration.doAutoCreate()) - this.organizationTarget = new Organization(); - return this.organizationTarget; - } - - /** - * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) - */ - public ExplanationOfBenefit setOrganizationTarget(Organization value) { - this.organizationTarget = value; - return this; - } - - /** - * @return {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public Reference getRequestProvider() { - if (this.requestProvider == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.requestProvider"); - else if (Configuration.doAutoCreate()) - this.requestProvider = new Reference(); - return this.requestProvider; - } - - public boolean hasRequestProvider() { - return this.requestProvider != null && !this.requestProvider.isEmpty(); - } - - /** - * @param value {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public ExplanationOfBenefit setRequestProvider(Reference value) { - this.requestProvider = value; - return this; - } - - /** - * @return {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public Practitioner getRequestProviderTarget() { - if (this.requestProviderTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.requestProvider"); - else if (Configuration.doAutoCreate()) - this.requestProviderTarget = new Practitioner(); - return this.requestProviderTarget; - } - - /** - * @param value {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public ExplanationOfBenefit setRequestProviderTarget(Practitioner value) { - this.requestProviderTarget = value; - return this; - } - - /** - * @return {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) - */ - public Reference getRequestOrganization() { - if (this.requestOrganization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.requestOrganization"); - else if (Configuration.doAutoCreate()) - this.requestOrganization = new Reference(); - return this.requestOrganization; - } - - public boolean hasRequestOrganization() { - return this.requestOrganization != null && !this.requestOrganization.isEmpty(); - } - - /** - * @param value {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) - */ - public ExplanationOfBenefit setRequestOrganization(Reference value) { - this.requestOrganization = value; - return this; - } - - /** - * @return {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) - */ - public Organization getRequestOrganizationTarget() { - if (this.requestOrganizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExplanationOfBenefit.requestOrganization"); - else if (Configuration.doAutoCreate()) - this.requestOrganizationTarget = new Organization(); - return this.requestOrganizationTarget; - } - - /** - * @param value {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) - */ - public ExplanationOfBenefit setRequestOrganizationTarget(Organization value) { - this.requestOrganizationTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "The Response Business Identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("request", "Reference(OralHealthClaim)", "Original request resource referrence.", 0, java.lang.Integer.MAX_VALUE, request)); - childrenList.add(new Property("outcome", "code", "Transaction status: error, complete.", 0, java.lang.Integer.MAX_VALUE, outcome)); - childrenList.add(new Property("disposition", "string", "A description of the status of the adjudication.", 0, java.lang.Integer.MAX_VALUE, disposition)); - childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset)); - childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); - childrenList.add(new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, created)); - childrenList.add(new Property("organization", "Reference(Organization)", "The Insurer who produced this adjudicated response.", 0, java.lang.Integer.MAX_VALUE, organization)); - childrenList.add(new Property("requestProvider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestProvider)); - childrenList.add(new Property("requestOrganization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestOrganization)); - } - - public ExplanationOfBenefit copy() { - ExplanationOfBenefit dst = new ExplanationOfBenefit(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.request = request == null ? null : request.copy(); - dst.outcome = outcome == null ? null : outcome.copy(); - dst.disposition = disposition == null ? null : disposition.copy(); - dst.ruleset = ruleset == null ? null : ruleset.copy(); - dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); - dst.created = created == null ? null : created.copy(); - dst.organization = organization == null ? null : organization.copy(); - dst.requestProvider = requestProvider == null ? null : requestProvider.copy(); - dst.requestOrganization = requestOrganization == null ? null : requestOrganization.copy(); - return dst; - } - - protected ExplanationOfBenefit typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (request == null || request.isEmpty()) - && (outcome == null || outcome.isEmpty()) && (disposition == null || disposition.isEmpty()) - && (ruleset == null || ruleset.isEmpty()) && (originalRuleset == null || originalRuleset.isEmpty()) - && (created == null || created.isEmpty()) && (organization == null || organization.isEmpty()) - && (requestProvider == null || requestProvider.isEmpty()) && (requestOrganization == null || requestOrganization.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.ExplanationOfBenefit; - } - - @SearchParamDefinition(name="identifier", path="ExplanationOfBenefit.identifier", description="The business identifier of the Explanation of Benefit", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided. + */ +@ResourceDef(name="ExplanationOfBenefit", profile="http://hl7.org/fhir/Profile/ExplanationOfBenefit") +public class ExplanationOfBenefit extends DomainResource { + + public enum RSLink { + /** + * The processing completed without errors. + */ + COMPLETE, + /** + * The processing identified with errors. + */ + ERROR, + /** + * added to help the parsers + */ + NULL; + public static RSLink fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("complete".equals(codeString)) + return COMPLETE; + if ("error".equals(codeString)) + return ERROR; + throw new Exception("Unknown RSLink code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case COMPLETE: return "complete"; + case ERROR: return "error"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case COMPLETE: return ""; + case ERROR: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case COMPLETE: return "The processing completed without errors."; + case ERROR: return "The processing identified with errors."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case COMPLETE: return "complete"; + case ERROR: return "error"; + default: return "?"; + } + } + } + + public static class RSLinkEnumFactory implements EnumFactory { + public RSLink fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("complete".equals(codeString)) + return RSLink.COMPLETE; + if ("error".equals(codeString)) + return RSLink.ERROR; + throw new IllegalArgumentException("Unknown RSLink code '"+codeString+"'"); + } + public String toCode(RSLink code) { + if (code == RSLink.COMPLETE) + return "complete"; + if (code == RSLink.ERROR) + return "error"; + return "?"; + } + } + + /** + * The Response Business Identifier. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Business Identifier", formalDefinition="The Response Business Identifier." ) + protected List identifier; + + /** + * Original request resource reference. + */ + @Child(name="request", type={OralHealthClaim.class}, order=0, min=0, max=1) + @Description(shortDefinition="Claim reference", formalDefinition="Original request resource reference." ) + protected Reference request; + + /** + * The actual object that is the target of the reference (Original request resource reference.) + */ + protected OralHealthClaim requestTarget; + + /** + * Transaction status: error, complete. + */ + @Child(name="outcome", type={CodeType.class}, order=1, min=0, max=1) + @Description(shortDefinition="complete | error", formalDefinition="Transaction status: error, complete." ) + protected Enumeration outcome; + + /** + * A description of the status of the adjudication. + */ + @Child(name="disposition", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Disposition Message", formalDefinition="A description of the status of the adjudication." ) + protected StringType disposition; + + /** + * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources. + */ + @Child(name="ruleset", type={Coding.class}, order=3, min=0, max=1) + @Description(shortDefinition="Resource version", formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources." ) + protected Coding ruleset; + + /** + * The style (standard) and version of the original material which was converted into this resource. + */ + @Child(name="originalRuleset", type={Coding.class}, order=4, min=0, max=1) + @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) + protected Coding originalRuleset; + + /** + * The date when the enclosed suite of services were performed or completed. + */ + @Child(name="created", type={DateTimeType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Creation date", formalDefinition="The date when the enclosed suite of services were performed or completed." ) + protected DateTimeType created; + + /** + * The Insurer who produced this adjudicated response. + */ + @Child(name="organization", type={Organization.class}, order=6, min=0, max=1) + @Description(shortDefinition="Insurer", formalDefinition="The Insurer who produced this adjudicated response." ) + protected Reference organization; + + /** + * The actual object that is the target of the reference (The Insurer who produced this adjudicated response.) + */ + protected Organization organizationTarget; + + /** + * The practitioner who is responsible for the services rendered to the patient. + */ + @Child(name="requestProvider", type={Practitioner.class}, order=7, min=0, max=1) + @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) + protected Reference requestProvider; + + /** + * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) + */ + protected Practitioner requestProviderTarget; + + /** + * The organization which is responsible for the services rendered to the patient. + */ + @Child(name="requestOrganization", type={Organization.class}, order=8, min=0, max=1) + @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) + protected Reference requestOrganization; + + /** + * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) + */ + protected Organization requestOrganizationTarget; + + private static final long serialVersionUID = 1627363360L; + + public ExplanationOfBenefit() { + super(); + } + + /** + * @return {@link #identifier} (The Response Business Identifier.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (The Response Business Identifier.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #request} (Original request resource reference.) + */ + public Reference getRequest() { + if (this.request == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.request"); + else if (Configuration.doAutoCreate()) + this.request = new Reference(); // cc + return this.request; + } + + public boolean hasRequest() { + return this.request != null && !this.request.isEmpty(); + } + + /** + * @param value {@link #request} (Original request resource reference.) + */ + public ExplanationOfBenefit setRequest(Reference value) { + this.request = value; + return this; + } + + /** + * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Original request resource reference.) + */ + public OralHealthClaim getRequestTarget() { + if (this.requestTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.request"); + else if (Configuration.doAutoCreate()) + this.requestTarget = new OralHealthClaim(); // aa + return this.requestTarget; + } + + /** + * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Original request resource reference.) + */ + public ExplanationOfBenefit setRequestTarget(OralHealthClaim value) { + this.requestTarget = value; + return this; + } + + /** + * @return {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value + */ + public Enumeration getOutcomeElement() { + if (this.outcome == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.outcome"); + else if (Configuration.doAutoCreate()) + this.outcome = new Enumeration(new RSLinkEnumFactory()); // bb + return this.outcome; + } + + public boolean hasOutcomeElement() { + return this.outcome != null && !this.outcome.isEmpty(); + } + + public boolean hasOutcome() { + return this.outcome != null && !this.outcome.isEmpty(); + } + + /** + * @param value {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value + */ + public ExplanationOfBenefit setOutcomeElement(Enumeration value) { + this.outcome = value; + return this; + } + + /** + * @return Transaction status: error, complete. + */ + public RSLink getOutcome() { + return this.outcome == null ? null : this.outcome.getValue(); + } + + /** + * @param value Transaction status: error, complete. + */ + public ExplanationOfBenefit setOutcome(RSLink value) { + if (value == null) + this.outcome = null; + else { + if (this.outcome == null) + this.outcome = new Enumeration(new RSLinkEnumFactory()); + this.outcome.setValue(value); + } + return this; + } + + /** + * @return {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value + */ + public StringType getDispositionElement() { + if (this.disposition == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.disposition"); + else if (Configuration.doAutoCreate()) + this.disposition = new StringType(); // bb + return this.disposition; + } + + public boolean hasDispositionElement() { + return this.disposition != null && !this.disposition.isEmpty(); + } + + public boolean hasDisposition() { + return this.disposition != null && !this.disposition.isEmpty(); + } + + /** + * @param value {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value + */ + public ExplanationOfBenefit setDispositionElement(StringType value) { + this.disposition = value; + return this; + } + + /** + * @return A description of the status of the adjudication. + */ + public String getDisposition() { + return this.disposition == null ? null : this.disposition.getValue(); + } + + /** + * @param value A description of the status of the adjudication. + */ + public ExplanationOfBenefit setDisposition(String value) { + if (Utilities.noString(value)) + this.disposition = null; + else { + if (this.disposition == null) + this.disposition = new StringType(); + this.disposition.setValue(value); + } + return this; + } + + /** + * @return {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) + */ + public Coding getRuleset() { + if (this.ruleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.ruleset"); + else if (Configuration.doAutoCreate()) + this.ruleset = new Coding(); // cc + return this.ruleset; + } + + public boolean hasRuleset() { + return this.ruleset != null && !this.ruleset.isEmpty(); + } + + /** + * @param value {@link #ruleset} (The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.) + */ + public ExplanationOfBenefit setRuleset(Coding value) { + this.ruleset = value; + return this; + } + + /** + * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public Coding getOriginalRuleset() { + if (this.originalRuleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.originalRuleset"); + else if (Configuration.doAutoCreate()) + this.originalRuleset = new Coding(); // cc + return this.originalRuleset; + } + + public boolean hasOriginalRuleset() { + return this.originalRuleset != null && !this.originalRuleset.isEmpty(); + } + + /** + * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public ExplanationOfBenefit setOriginalRuleset(Coding value) { + this.originalRuleset = value; + return this; + } + + /** + * @return {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DateTimeType getCreatedElement() { + if (this.created == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.created"); + else if (Configuration.doAutoCreate()) + this.created = new DateTimeType(); // bb + return this.created; + } + + public boolean hasCreatedElement() { + return this.created != null && !this.created.isEmpty(); + } + + public boolean hasCreated() { + return this.created != null && !this.created.isEmpty(); + } + + /** + * @param value {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public ExplanationOfBenefit setCreatedElement(DateTimeType value) { + this.created = value; + return this; + } + + /** + * @return The date when the enclosed suite of services were performed or completed. + */ + public Date getCreated() { + return this.created == null ? null : this.created.getValue(); + } + + /** + * @param value The date when the enclosed suite of services were performed or completed. + */ + public ExplanationOfBenefit setCreated(Date value) { + if (value == null) + this.created = null; + else { + if (this.created == null) + this.created = new DateTimeType(); + this.created.setValue(value); + } + return this; + } + + /** + * @return {@link #organization} (The Insurer who produced this adjudicated response.) + */ + public Reference getOrganization() { + if (this.organization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.organization"); + else if (Configuration.doAutoCreate()) + this.organization = new Reference(); // cc + return this.organization; + } + + public boolean hasOrganization() { + return this.organization != null && !this.organization.isEmpty(); + } + + /** + * @param value {@link #organization} (The Insurer who produced this adjudicated response.) + */ + public ExplanationOfBenefit setOrganization(Reference value) { + this.organization = value; + return this; + } + + /** + * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) + */ + public Organization getOrganizationTarget() { + if (this.organizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.organization"); + else if (Configuration.doAutoCreate()) + this.organizationTarget = new Organization(); // aa + return this.organizationTarget; + } + + /** + * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) + */ + public ExplanationOfBenefit setOrganizationTarget(Organization value) { + this.organizationTarget = value; + return this; + } + + /** + * @return {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public Reference getRequestProvider() { + if (this.requestProvider == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.requestProvider"); + else if (Configuration.doAutoCreate()) + this.requestProvider = new Reference(); // cc + return this.requestProvider; + } + + public boolean hasRequestProvider() { + return this.requestProvider != null && !this.requestProvider.isEmpty(); + } + + /** + * @param value {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public ExplanationOfBenefit setRequestProvider(Reference value) { + this.requestProvider = value; + return this; + } + + /** + * @return {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public Practitioner getRequestProviderTarget() { + if (this.requestProviderTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.requestProvider"); + else if (Configuration.doAutoCreate()) + this.requestProviderTarget = new Practitioner(); // aa + return this.requestProviderTarget; + } + + /** + * @param value {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public ExplanationOfBenefit setRequestProviderTarget(Practitioner value) { + this.requestProviderTarget = value; + return this; + } + + /** + * @return {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) + */ + public Reference getRequestOrganization() { + if (this.requestOrganization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.requestOrganization"); + else if (Configuration.doAutoCreate()) + this.requestOrganization = new Reference(); // cc + return this.requestOrganization; + } + + public boolean hasRequestOrganization() { + return this.requestOrganization != null && !this.requestOrganization.isEmpty(); + } + + /** + * @param value {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) + */ + public ExplanationOfBenefit setRequestOrganization(Reference value) { + this.requestOrganization = value; + return this; + } + + /** + * @return {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) + */ + public Organization getRequestOrganizationTarget() { + if (this.requestOrganizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExplanationOfBenefit.requestOrganization"); + else if (Configuration.doAutoCreate()) + this.requestOrganizationTarget = new Organization(); // aa + return this.requestOrganizationTarget; + } + + /** + * @param value {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) + */ + public ExplanationOfBenefit setRequestOrganizationTarget(Organization value) { + this.requestOrganizationTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "The Response Business Identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("request", "Reference(OralHealthClaim)", "Original request resource reference.", 0, java.lang.Integer.MAX_VALUE, request)); + childrenList.add(new Property("outcome", "code", "Transaction status: error, complete.", 0, java.lang.Integer.MAX_VALUE, outcome)); + childrenList.add(new Property("disposition", "string", "A description of the status of the adjudication.", 0, java.lang.Integer.MAX_VALUE, disposition)); + childrenList.add(new Property("ruleset", "Coding", "The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.", 0, java.lang.Integer.MAX_VALUE, ruleset)); + childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); + childrenList.add(new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, created)); + childrenList.add(new Property("organization", "Reference(Organization)", "The Insurer who produced this adjudicated response.", 0, java.lang.Integer.MAX_VALUE, organization)); + childrenList.add(new Property("requestProvider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestProvider)); + childrenList.add(new Property("requestOrganization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestOrganization)); + } + + public ExplanationOfBenefit copy() { + ExplanationOfBenefit dst = new ExplanationOfBenefit(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.request = request == null ? null : request.copy(); + dst.outcome = outcome == null ? null : outcome.copy(); + dst.disposition = disposition == null ? null : disposition.copy(); + dst.ruleset = ruleset == null ? null : ruleset.copy(); + dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); + dst.created = created == null ? null : created.copy(); + dst.organization = organization == null ? null : organization.copy(); + dst.requestProvider = requestProvider == null ? null : requestProvider.copy(); + dst.requestOrganization = requestOrganization == null ? null : requestOrganization.copy(); + return dst; + } + + protected ExplanationOfBenefit typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ExplanationOfBenefit)) + return false; + ExplanationOfBenefit o = (ExplanationOfBenefit) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(request, o.request, true) && compareDeep(outcome, o.outcome, true) + && compareDeep(disposition, o.disposition, true) && compareDeep(ruleset, o.ruleset, true) && compareDeep(originalRuleset, o.originalRuleset, true) + && compareDeep(created, o.created, true) && compareDeep(organization, o.organization, true) && compareDeep(requestProvider, o.requestProvider, true) + && compareDeep(requestOrganization, o.requestOrganization, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ExplanationOfBenefit)) + return false; + ExplanationOfBenefit o = (ExplanationOfBenefit) other; + return compareValues(outcome, o.outcome, true) && compareValues(disposition, o.disposition, true) && compareValues(created, o.created, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (request == null || request.isEmpty()) + && (outcome == null || outcome.isEmpty()) && (disposition == null || disposition.isEmpty()) + && (ruleset == null || ruleset.isEmpty()) && (originalRuleset == null || originalRuleset.isEmpty()) + && (created == null || created.isEmpty()) && (organization == null || organization.isEmpty()) + && (requestProvider == null || requestProvider.isEmpty()) && (requestOrganization == null || requestOrganization.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.ExplanationOfBenefit; + } + + @SearchParamDefinition(name="identifier", path="ExplanationOfBenefit.identifier", description="The business identifier of the Explanation of Benefit", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Extension.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Extension.class new file mode 100644 index 0000000000000000000000000000000000000000..e8ed2c6a71e40daaeff70df78fb7bd8fef95f18c GIT binary patch literal 4362 zcmbVP`Ewg*8GcrhEm@WoM`=zI*ffb_%XI{lHncWrT-$B!I8KO>O(KD-GI%mn;#iRRS>ahsVo8oW@mw6= zN#IBV&nNJ3^u^WH)g-p#yRCQuFDCH41iqg@UmQP3l8eGR@RA65S@?e_+gC)$k7V_# ztX`AV>$39Vctb<9;uJL;9ua;D{ahLu;jl3h^6+>~QZE|pcEhP`Ji zmS>jKwCS2NMKxeqwr6;zZMhn94P_WL(%j&@Su9Xm%rZ)flSkninrx?_oG2Y!rCBA@ ziV{anmd2unhqf$zNV$2(EQ?jtvCW;g9dAg@nwBX?8jhF+MJHxW&$#%;~~|Sj3s?WQJ16K&}K)sEuYz-Z49wv zn3gK&uJWq>7@na^I9$EURZ1TYz?d3FiBbH3p6IMK|^2HMvBIM*K0~plOGxl zhc^P3WL6Yq`Foyitdn7 zWwz7Ch&*n%s!y`2Enu3MH;P63Sq*X19WIqU+Ot{yhKbGwmkc`66Q)#5x@zZ9NuB?x zZL;*mA9g!RZK(=MVE~V(a0Fd({3L~+f|b3kmY2hhV>?Ws0nbx3UH5F=sCag7-cg2E zZ6LOFl<$m)dNYN$M8v@@JUA&RjHWPwx7lNADuYr;VH)qGa138(EK+zH=V?VFp=*Kn z-#k-n`B@x4PvIAMS3_b!8tcWyOKe?P2C$K!I%s~0U#0LZJSoGZ43|=vK|Y0LTu-4O ztM~B!Cf-(?7T<<@Kf+Q*%+p3B?66t4k?=dSLtLF|+8&~!j$1L&PT~K}(&~T|mQtwC3$n*>G4aQtnS}q1-n&|AOBULcwb` zU1%(NJ-iKdtS6;19N?E=Cm-b~ze!o%{JiMq?#qZEizf8AJbd6Hv^=kRM{pFm5ng^p zhOd(5K^I@cLoOaBH;XXj?yYej6K)9WBf|Q~I@U*pwGaEyk8hCmI0++o3>mK3Za5C| zd

    ok;>$>9ZzFMj1uYaSbbls8#5ZRjnz=rS zIL6S1Q`n7h?8j-Mb_P%JCWgrFb}AUbXsGZ}&Z2O)2>J}$Wx9#vb;M&g5Q~0P72WKU zP5NS*5ZQS`_)h-6a-Lo24F!!7dI{P7K+v5a_uNF=Ip3ZD>I}gIEJAHF zRm#lYYrbs8Pcml$lcC)GoP*5y80nfnfjx`7nz}29=^z;Co7i@*U_8Gb#A%!hRjvau zy#d6R2;$2$pYIesmUO+$L=@lqvpp+l@41cb=QEkij?8`0%ua!01-t%=-4UD%uJ&a1 zX7&YF>FQN2!2@VsrIy#A<8{{78@NE}5wL{iVG7OskSC(G?>0J^&R-bI66F0owLm6= zKz@;VE~n|wA>ox%!t$k0knX9)cNf)xp9BfK$<%)f2k|!R{2d>ne#BO>7m+x=%|B=y zR#_=)`(S=%{I18B36xPaxfaZu(C-Z9yY!1MZs^@}%qJ;yAJYTZ(G>lt=bz{Z7N4Ty zlsNYQf3aJ*f7#F9G`HzsduRCtmHi&wd!J3`1OD6nYwW;pum`{OT}&aCO#B<2^x=f$ z8{hlTj*Fokhb6WL8{2WHR_}qr52^5XRCt35e@}&fpu#`;3fW4M398^{QK(1~UJ^aW zo_BZ|-QwS8YsHvc#vX}Va3EQ|e2*6MCtrLVu|4h46I%NK6J|El&=CC|=F%M1M=eWC literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Extension.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Extension.java similarity index 85% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Extension.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Extension.java index e45fa2f4b3a..11c53730418 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Extension.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Extension.java @@ -1,181 +1,181 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -import org.hl7.fhir.instance.model.annotations.DatatypeDef; -/** - * Optional Extensions Element - found in all resources. - */ -@DatatypeDef(name="Extension") -public class Extension extends Element { - - /** - * Source of the definition for the extension code - a logical name or a URL. - */ - @Child(name="url", type={UriType.class}, order=-1, min=1, max=1) - @Description(shortDefinition="identifies the meaning of the extension", formalDefinition="Source of the definition for the extension code - a logical name or a URL." ) - protected UriType url; - - /** - * Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list). - */ - @Child(name="value", type={}, order=0, min=0, max=1) - @Description(shortDefinition="Value of extension", formalDefinition="Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list)." ) - protected org.hl7.fhir.instance.model.Type value; - - private static final long serialVersionUID = 86382982L; - - public Extension() { - super(); - } - - public Extension(UriType url) { - super(); - this.url = url; - } - - /** - * @return {@link #url} (Source of the definition for the extension code - a logical name or a URL.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public UriType getUrlElement() { - if (this.url == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Extension.url"); - else if (Configuration.doAutoCreate()) - this.url = new UriType(); - return this.url; - } - - public boolean hasUrlElement() { - return this.url != null && !this.url.isEmpty(); - } - - public boolean hasUrl() { - return this.url != null && !this.url.isEmpty(); - } - - /** - * @param value {@link #url} (Source of the definition for the extension code - a logical name or a URL.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public Extension setUrlElement(UriType value) { - this.url = value; - return this; - } - - /** - * @return Source of the definition for the extension code - a logical name or a URL. - */ - public String getUrl() { - return this.url == null ? null : this.url.getValue(); - } - - /** - * @param value Source of the definition for the extension code - a logical name or a URL. - */ - public Extension setUrl(String value) { - if (this.url == null) - this.url = new UriType(); - this.url.setValue(value); - return this; - } - - /** - * @return {@link #value} (Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).) - */ - public org.hl7.fhir.instance.model.Type getValue() { - return this.value; - } - - public boolean hasValue() { - return this.value != null && !this.value.isEmpty(); - } - - /** - * @param value {@link #value} (Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).) - */ - public Extension setValue(org.hl7.fhir.instance.model.Type value) { - this.value = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("url", "uri", "Source of the definition for the extension code - a logical name or a URL.", 0, java.lang.Integer.MAX_VALUE, url)); - childrenList.add(new Property("value[x]", "*", "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).", 0, java.lang.Integer.MAX_VALUE, value)); - } - - public Extension copy() { - Extension dst = new Extension(); - copyValues(dst); - dst.url = url == null ? null : url.copy(); - dst.value = value == null ? null : value.copy(); - return dst; - } - - protected Extension typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (url == null || url.isEmpty()) && (value == null || value.isEmpty()) - ; - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +import org.hl7.fhir.instance.model.api.IBaseExtension; +/** + * Optional Extensions Element - found in all resources. + */ +@DatatypeDef(name="Extension") +public class Extension extends Element implements IBaseExtension { + + /** + * Source of the definition for the extension code - a logical name or a URL. + */ + @Child(name="url", type={UriType.class}, order=-1, min=1, max=1) + @Description(shortDefinition="identifies the meaning of the extension", formalDefinition="Source of the definition for the extension code - a logical name or a URL." ) + protected UriType url; + + /** + * Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list). + */ + @Child(name="value", type={}, order=0, min=0, max=1) + @Description(shortDefinition="Value of extension", formalDefinition="Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list)." ) + protected org.hl7.fhir.instance.model.Type value; + + private static final long serialVersionUID = 86382982L; + + public Extension() { + super(); + } + + public Extension(UriType url) { + super(); + this.url = url; + } + + /** + * @return {@link #url} (Source of the definition for the extension code - a logical name or a URL.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Extension.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (Source of the definition for the extension code - a logical name or a URL.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public Extension setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return Source of the definition for the extension code - a logical name or a URL. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value Source of the definition for the extension code - a logical name or a URL. + */ + public Extension setUrl(String value) { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + return this; + } + + /** + * @return {@link #value} (Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).) + */ + public org.hl7.fhir.instance.model.Type getValue() { + return this.value; + } + + public boolean hasValue() { + return this.value != null && !this.value.isEmpty(); + } + + /** + * @param value {@link #value} (Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).) + */ + public Extension setValue(org.hl7.fhir.instance.model.Type value) { + this.value = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("url", "uri", "Source of the definition for the extension code - a logical name or a URL.", 0, java.lang.Integer.MAX_VALUE, url)); + childrenList.add(new Property("value[x]", "*", "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).", 0, java.lang.Integer.MAX_VALUE, value)); + } + + public Extension copy() { + Extension dst = new Extension(); + copyValues(dst); + dst.url = url == null ? null : url.copy(); + dst.value = value == null ? null : value.copy(); + return dst; + } + + protected Extension typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Extension)) + return false; + Extension o = (Extension) other; + return compareDeep(url, o.url, true) && compareDeep(value, o.value, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Extension)) + return false; + Extension o = (Extension) other; + return compareValues(url, o.url, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (url == null || url.isEmpty()) && (value == null || value.isEmpty()) + ; + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition$1.class new file mode 100644 index 0000000000000000000000000000000000000000..469c279fec1a78ca239a26ab59d2e1c283fe92fa GIT binary patch literal 1521 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 Q;2I{cpJB7F;Rcfb0^unG)Bpeg literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition.class new file mode 100644 index 0000000000000000000000000000000000000000..3f0ec6d0c90cadec25c2d0c98210b71772b54d6f GIT binary patch literal 25070 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%0DAib{hrteWVBOaZpcSy0niEK< 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 UFRv~K%wF1u_Br^yYjyem19_Xw%>V!Z literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition.java similarity index 91% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition.java index e224b1d21d7..6a1940a4b7f 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionDefinition.java @@ -1,1430 +1,1447 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Defines an extension that can be used in resources. - */ -@ResourceDef(name="ExtensionDefinition", profile="http://hl7.org/fhir/Profile/ExtensionDefinition") -public class ExtensionDefinition extends DomainResource { - - public enum ResourceProfileStatus implements FhirEnum { - /** - * This profile is still under development. - */ - DRAFT, - /** - * This profile is ready for normal use. - */ - ACTIVE, - /** - * This profile has been deprecated, withdrawn or superseded and should no longer be used. - */ - RETIRED, - /** - * added to help the parsers - */ - NULL; - - public static final ResourceProfileStatusEnumFactory ENUM_FACTORY = new ResourceProfileStatusEnumFactory(); - - public static ResourceProfileStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("draft".equals(codeString)) - return DRAFT; - if ("active".equals(codeString)) - return ACTIVE; - if ("retired".equals(codeString)) - return RETIRED; - throw new IllegalArgumentException("Unknown ResourceProfileStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case DRAFT: return "draft"; - case ACTIVE: return "active"; - case RETIRED: return "retired"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case DRAFT: return ""; - case ACTIVE: return ""; - case RETIRED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case DRAFT: return "This profile is still under development."; - case ACTIVE: return "This profile is ready for normal use."; - case RETIRED: return "This profile has been deprecated, withdrawn or superseded and should no longer be used."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case DRAFT: return "draft"; - case ACTIVE: return "active"; - case RETIRED: return "retired"; - default: return "?"; - } - } - } - - public static class ResourceProfileStatusEnumFactory implements EnumFactory { - public ResourceProfileStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("draft".equals(codeString)) - return ResourceProfileStatus.DRAFT; - if ("active".equals(codeString)) - return ResourceProfileStatus.ACTIVE; - if ("retired".equals(codeString)) - return ResourceProfileStatus.RETIRED; - throw new IllegalArgumentException("Unknown ResourceProfileStatus code '"+codeString+"'"); - } - public String toCode(ResourceProfileStatus code) throws IllegalArgumentException { - if (code == ResourceProfileStatus.DRAFT) - return "draft"; - if (code == ResourceProfileStatus.ACTIVE) - return "active"; - if (code == ResourceProfileStatus.RETIRED) - return "retired"; - return "?"; - } - } - - public enum ExtensionContext implements FhirEnum { - /** - * The context is all elements matching a particular resource element path. - */ - RESOURCE, - /** - * The context is all nodes matching a particular data type element path (root or repeating element) or all elements referencing a particular primitive data type (expressed as the datatype name). - */ - DATATYPE, - /** - * The context is all nodes whose mapping to a specified reference model corresponds to a particular mapping structure. The context identifies the mapping target. The mapping should clearly identify where such an extension could be used. - */ - MAPPING, - /** - * The context is a particular extension from a particular profile. Expressed as uri#name, where uri identifies the profile and #name identifies the extension code. - */ - EXTENSION, - /** - * added to help the parsers - */ - NULL; - - public static final ExtensionContextEnumFactory ENUM_FACTORY = new ExtensionContextEnumFactory(); - - public static ExtensionContext fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("resource".equals(codeString)) - return RESOURCE; - if ("datatype".equals(codeString)) - return DATATYPE; - if ("mapping".equals(codeString)) - return MAPPING; - if ("extension".equals(codeString)) - return EXTENSION; - throw new IllegalArgumentException("Unknown ExtensionContext code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case RESOURCE: return "resource"; - case DATATYPE: return "datatype"; - case MAPPING: return "mapping"; - case EXTENSION: return "extension"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case RESOURCE: return ""; - case DATATYPE: return ""; - case MAPPING: return ""; - case EXTENSION: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case RESOURCE: return "The context is all elements matching a particular resource element path."; - case DATATYPE: return "The context is all nodes matching a particular data type element path (root or repeating element) or all elements referencing a particular primitive data type (expressed as the datatype name)."; - case MAPPING: return "The context is all nodes whose mapping to a specified reference model corresponds to a particular mapping structure. The context identifies the mapping target. The mapping should clearly identify where such an extension could be used."; - case EXTENSION: return "The context is a particular extension from a particular profile. Expressed as uri#name, where uri identifies the profile and #name identifies the extension code."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case RESOURCE: return "resource"; - case DATATYPE: return "datatype"; - case MAPPING: return "mapping"; - case EXTENSION: return "extension"; - default: return "?"; - } - } - } - - public static class ExtensionContextEnumFactory implements EnumFactory { - public ExtensionContext fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("resource".equals(codeString)) - return ExtensionContext.RESOURCE; - if ("datatype".equals(codeString)) - return ExtensionContext.DATATYPE; - if ("mapping".equals(codeString)) - return ExtensionContext.MAPPING; - if ("extension".equals(codeString)) - return ExtensionContext.EXTENSION; - throw new IllegalArgumentException("Unknown ExtensionContext code '"+codeString+"'"); - } - public String toCode(ExtensionContext code) throws IllegalArgumentException { - if (code == ExtensionContext.RESOURCE) - return "resource"; - if (code == ExtensionContext.DATATYPE) - return "datatype"; - if (code == ExtensionContext.MAPPING) - return "mapping"; - if (code == ExtensionContext.EXTENSION) - return "extension"; - return "?"; - } - } - - @Block() - public static class ExtensionDefinitionMappingComponent extends BackboneElement { - /** - * An Internal id that is used to identify this mapping set when specific mappings are made. - */ - @Child(name="identity", type={IdType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Internal id when this mapping is used", formalDefinition="An Internal id that is used to identify this mapping set when specific mappings are made." ) - protected IdType identity; - - /** - * A URI that identifies the specification that this mapping is expressed to. - */ - @Child(name="uri", type={UriType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Identifies what this mapping refers to", formalDefinition="A URI that identifies the specification that this mapping is expressed to." ) - protected UriType uri; - - /** - * A name for the specification that is being mapped to. - */ - @Child(name="name", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Names what this mapping refers to", formalDefinition="A name for the specification that is being mapped to." ) - protected StringType name; - - /** - * Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. - */ - @Child(name="comments", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Versions, Issues, Scope limitations etc", formalDefinition="Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage." ) - protected StringType comments; - - private static final long serialVersionUID = 299630820L; - - public ExtensionDefinitionMappingComponent() { - super(); - } - - public ExtensionDefinitionMappingComponent(IdType identity) { - super(); - this.identity = identity; - } - - /** - * @return {@link #identity} (An Internal id that is used to identify this mapping set when specific mappings are made.). This is the underlying object with id, value and extensions. The accessor "getIdentity" gives direct access to the value - */ - public IdType getIdentityElement() { - if (this.identity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinitionMappingComponent.identity"); - else if (Configuration.doAutoCreate()) - this.identity = new IdType(); - return this.identity; - } - - public boolean hasIdentityElement() { - return this.identity != null && !this.identity.isEmpty(); - } - - public boolean hasIdentity() { - return this.identity != null && !this.identity.isEmpty(); - } - - /** - * @param value {@link #identity} (An Internal id that is used to identify this mapping set when specific mappings are made.). This is the underlying object with id, value and extensions. The accessor "getIdentity" gives direct access to the value - */ - public ExtensionDefinitionMappingComponent setIdentityElement(IdType value) { - this.identity = value; - return this; - } - - /** - * @return An Internal id that is used to identify this mapping set when specific mappings are made. - */ - public String getIdentity() { - return this.identity == null ? null : this.identity.getValue(); - } - - /** - * @param value An Internal id that is used to identify this mapping set when specific mappings are made. - */ - public ExtensionDefinitionMappingComponent setIdentity(String value) { - if (this.identity == null) - this.identity = new IdType(); - this.identity.setValue(value); - return this; - } - - /** - * @return {@link #uri} (A URI that identifies the specification that this mapping is expressed to.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value - */ - public UriType getUriElement() { - if (this.uri == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinitionMappingComponent.uri"); - else if (Configuration.doAutoCreate()) - this.uri = new UriType(); - return this.uri; - } - - public boolean hasUriElement() { - return this.uri != null && !this.uri.isEmpty(); - } - - public boolean hasUri() { - return this.uri != null && !this.uri.isEmpty(); - } - - /** - * @param value {@link #uri} (A URI that identifies the specification that this mapping is expressed to.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value - */ - public ExtensionDefinitionMappingComponent setUriElement(UriType value) { - this.uri = value; - return this; - } - - /** - * @return A URI that identifies the specification that this mapping is expressed to. - */ - public String getUri() { - return this.uri == null ? null : this.uri.getValue(); - } - - /** - * @param value A URI that identifies the specification that this mapping is expressed to. - */ - public ExtensionDefinitionMappingComponent setUri(String value) { - if (Utilities.noString(value)) - this.uri = null; - else { - if (this.uri == null) - this.uri = new UriType(); - this.uri.setValue(value); - } - return this; - } - - /** - * @return {@link #name} (A name for the specification that is being mapped to.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinitionMappingComponent.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (A name for the specification that is being mapped to.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public ExtensionDefinitionMappingComponent setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return A name for the specification that is being mapped to. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value A name for the specification that is being mapped to. - */ - public ExtensionDefinitionMappingComponent setName(String value) { - if (Utilities.noString(value)) - this.name = null; - else { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - } - return this; - } - - /** - * @return {@link #comments} (Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value - */ - public StringType getCommentsElement() { - if (this.comments == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinitionMappingComponent.comments"); - else if (Configuration.doAutoCreate()) - this.comments = new StringType(); - return this.comments; - } - - public boolean hasCommentsElement() { - return this.comments != null && !this.comments.isEmpty(); - } - - public boolean hasComments() { - return this.comments != null && !this.comments.isEmpty(); - } - - /** - * @param value {@link #comments} (Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value - */ - public ExtensionDefinitionMappingComponent setCommentsElement(StringType value) { - this.comments = value; - return this; - } - - /** - * @return Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. - */ - public String getComments() { - return this.comments == null ? null : this.comments.getValue(); - } - - /** - * @param value Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. - */ - public ExtensionDefinitionMappingComponent setComments(String value) { - if (Utilities.noString(value)) - this.comments = null; - else { - if (this.comments == null) - this.comments = new StringType(); - this.comments.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identity", "id", "An Internal id that is used to identify this mapping set when specific mappings are made.", 0, java.lang.Integer.MAX_VALUE, identity)); - childrenList.add(new Property("uri", "uri", "A URI that identifies the specification that this mapping is expressed to.", 0, java.lang.Integer.MAX_VALUE, uri)); - childrenList.add(new Property("name", "string", "A name for the specification that is being mapped to.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("comments", "string", "Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.", 0, java.lang.Integer.MAX_VALUE, comments)); - } - - public ExtensionDefinitionMappingComponent copy() { - ExtensionDefinitionMappingComponent dst = new ExtensionDefinitionMappingComponent(); - copyValues(dst); - dst.identity = identity == null ? null : identity.copy(); - dst.uri = uri == null ? null : uri.copy(); - dst.name = name == null ? null : name.copy(); - dst.comments = comments == null ? null : comments.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (identity == null || identity.isEmpty()) && (uri == null || uri.isEmpty()) - && (name == null || name.isEmpty()) && (comments == null || comments.isEmpty()); - } - - } - - /** - * The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems. - */ - @Child(name="url", type={UriType.class}, order=-1, min=1, max=1) - @Description(shortDefinition="Literal URL used to reference this extension", formalDefinition="The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems." ) - protected UriType url; - - /** - * Formal identifier that is used to identify this profile when it is represented in other formats (e.g. ISO 11179(, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI). - */ - @Child(name="identifier", type={Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Other identifiers for the extension", formalDefinition="Formal identifier that is used to identify this profile when it is represented in other formats (e.g. ISO 11179(, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI)." ) - protected List identifier; - - /** - * A free text natural language name identifying the extension. - */ - @Child(name="name", type={StringType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Descriptional name for this profile", formalDefinition="A free text natural language name identifying the extension." ) - protected StringType name; - - /** - * Defined so that applications can use this name when displaying the value of the extension to the user. - */ - @Child(name="display", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Use this name when displaying the value", formalDefinition="Defined so that applications can use this name when displaying the value of the extension to the user." ) - protected StringType display; - - /** - * Details of the individual or organization who accepts responsibility for publishing the extension definition. - */ - @Child(name="publisher", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Name of the publisher (Organization or individual)", formalDefinition="Details of the individual or organization who accepts responsibility for publishing the extension definition." ) - protected StringType publisher; - - /** - * Contact details to assist a user in finding and communicating with the publisher. - */ - @Child(name="telecom", type={ContactPoint.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Contact information of the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." ) - protected List telecom; - - /** - * A free text natural language description of the extension and its use. - */ - @Child(name="description", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Natural language description of the extension", formalDefinition="A free text natural language description of the extension and its use." ) - protected StringType description; - - /** - * A set of terms from external terminologies that may be used to assist with indexing and searching of extension definitions. - */ - @Child(name="code", type={Coding.class}, order=6, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Assist with indexing and finding", formalDefinition="A set of terms from external terminologies that may be used to assist with indexing and searching of extension definitions." ) - protected List code; - - /** - * The status of the extension. - */ - @Child(name="status", type={CodeType.class}, order=7, min=1, max=1) - @Description(shortDefinition="draft | active | retired", formalDefinition="The status of the extension." ) - protected Enumeration status; - - /** - * This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. - */ - @Child(name="experimental", type={BooleanType.class}, order=8, min=0, max=1) - @Description(shortDefinition="If for testing purposes, not real usage", formalDefinition="This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage." ) - protected BooleanType experimental; - - /** - * The date that this version of the extension was published. - */ - @Child(name="date", type={DateTimeType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Date for this version of the extension", formalDefinition="The date that this version of the extension was published." ) - protected DateTimeType date; - - /** - * The Scope and Usage that this extension was created to meet. - */ - @Child(name="requirements", type={StringType.class}, order=10, min=0, max=1) - @Description(shortDefinition="Scope and Usage this extesion is for", formalDefinition="The Scope and Usage that this extension was created to meet." ) - protected StringType requirements; - - /** - * An external specification that the content is mapped to. - */ - @Child(name="mapping", type={}, order=11, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External specification that the content is mapped to", formalDefinition="An external specification that the content is mapped to." ) - protected List mapping; - - /** - * Identifies the type of context to which the extension applies. - */ - @Child(name="contextType", type={CodeType.class}, order=12, min=1, max=1) - @Description(shortDefinition="resource | datatype | mapping | extension", formalDefinition="Identifies the type of context to which the extension applies." ) - protected Enumeration contextType; - - /** - * Identifies the types of resource or data type elements to which the extension can be applied. - */ - @Child(name="context", type={StringType.class}, order=13, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Where the extension can be used in instances", formalDefinition="Identifies the types of resource or data type elements to which the extension can be applied." ) - protected List context; - - /** - * Definition of the elements that are defined to be in the extension. - */ - @Child(name="element", type={ElementDefinition.class}, order=14, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Definition of the elements in the extension", formalDefinition="Definition of the elements that are defined to be in the extension." ) - protected List element; - - private static final long serialVersionUID = -989216686L; - - public ExtensionDefinition() { - super(); - } - - public ExtensionDefinition(UriType url, StringType name, Enumeration status, Enumeration contextType) { - super(); - this.url = url; - this.name = name; - this.status = status; - this.contextType = contextType; - } - - /** - * @return {@link #url} (The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public UriType getUrlElement() { - if (this.url == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinition.url"); - else if (Configuration.doAutoCreate()) - this.url = new UriType(); - return this.url; - } - - public boolean hasUrlElement() { - return this.url != null && !this.url.isEmpty(); - } - - public boolean hasUrl() { - return this.url != null && !this.url.isEmpty(); - } - - /** - * @param value {@link #url} (The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public ExtensionDefinition setUrlElement(UriType value) { - this.url = value; - return this; - } - - /** - * @return The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems. - */ - public String getUrl() { - return this.url == null ? null : this.url.getValue(); - } - - /** - * @param value The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems. - */ - public ExtensionDefinition setUrl(String value) { - if (this.url == null) - this.url = new UriType(); - this.url.setValue(value); - return this; - } - - /** - * @return {@link #identifier} (Formal identifier that is used to identify this profile when it is represented in other formats (e.g. ISO 11179(, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Formal identifier that is used to identify this profile when it is represented in other formats (e.g. ISO 11179(, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #name} (A free text natural language name identifying the extension.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinition.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (A free text natural language name identifying the extension.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public ExtensionDefinition setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return A free text natural language name identifying the extension. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value A free text natural language name identifying the extension. - */ - public ExtensionDefinition setName(String value) { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - return this; - } - - /** - * @return {@link #display} (Defined so that applications can use this name when displaying the value of the extension to the user.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value - */ - public StringType getDisplayElement() { - if (this.display == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinition.display"); - else if (Configuration.doAutoCreate()) - this.display = new StringType(); - return this.display; - } - - public boolean hasDisplayElement() { - return this.display != null && !this.display.isEmpty(); - } - - public boolean hasDisplay() { - return this.display != null && !this.display.isEmpty(); - } - - /** - * @param value {@link #display} (Defined so that applications can use this name when displaying the value of the extension to the user.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value - */ - public ExtensionDefinition setDisplayElement(StringType value) { - this.display = value; - return this; - } - - /** - * @return Defined so that applications can use this name when displaying the value of the extension to the user. - */ - public String getDisplay() { - return this.display == null ? null : this.display.getValue(); - } - - /** - * @param value Defined so that applications can use this name when displaying the value of the extension to the user. - */ - public ExtensionDefinition setDisplay(String value) { - if (Utilities.noString(value)) - this.display = null; - else { - if (this.display == null) - this.display = new StringType(); - this.display.setValue(value); - } - return this; - } - - /** - * @return {@link #publisher} (Details of the individual or organization who accepts responsibility for publishing the extension definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value - */ - public StringType getPublisherElement() { - if (this.publisher == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinition.publisher"); - else if (Configuration.doAutoCreate()) - this.publisher = new StringType(); - return this.publisher; - } - - public boolean hasPublisherElement() { - return this.publisher != null && !this.publisher.isEmpty(); - } - - public boolean hasPublisher() { - return this.publisher != null && !this.publisher.isEmpty(); - } - - /** - * @param value {@link #publisher} (Details of the individual or organization who accepts responsibility for publishing the extension definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value - */ - public ExtensionDefinition setPublisherElement(StringType value) { - this.publisher = value; - return this; - } - - /** - * @return Details of the individual or organization who accepts responsibility for publishing the extension definition. - */ - public String getPublisher() { - return this.publisher == null ? null : this.publisher.getValue(); - } - - /** - * @param value Details of the individual or organization who accepts responsibility for publishing the extension definition. - */ - public ExtensionDefinition setPublisher(String value) { - if (Utilities.noString(value)) - this.publisher = null; - else { - if (this.publisher == null) - this.publisher = new StringType(); - this.publisher.setValue(value); - } - return this; - } - - /** - * @return {@link #telecom} (Contact details to assist a user in finding and communicating with the publisher.) - */ - public List getTelecom() { - if (this.telecom == null) - this.telecom = new ArrayList(); - return this.telecom; - } - - public boolean hasTelecom() { - if (this.telecom == null) - return false; - for (ContactPoint item : this.telecom) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #telecom} (Contact details to assist a user in finding and communicating with the publisher.) - */ - // syntactic sugar - public ContactPoint addTelecom() { //3 - ContactPoint t = new ContactPoint(); - if (this.telecom == null) - this.telecom = new ArrayList(); - this.telecom.add(t); - return t; - } - - /** - * @return {@link #description} (A free text natural language description of the extension and its use.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinition.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (A free text natural language description of the extension and its use.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public ExtensionDefinition setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return A free text natural language description of the extension and its use. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value A free text natural language description of the extension and its use. - */ - public ExtensionDefinition setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #code} (A set of terms from external terminologies that may be used to assist with indexing and searching of extension definitions.) - */ - public List getCode() { - if (this.code == null) - this.code = new ArrayList(); - return this.code; - } - - public boolean hasCode() { - if (this.code == null) - return false; - for (Coding item : this.code) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #code} (A set of terms from external terminologies that may be used to assist with indexing and searching of extension definitions.) - */ - // syntactic sugar - public Coding addCode() { //3 - Coding t = new Coding(); - if (this.code == null) - this.code = new ArrayList(); - this.code.add(t); - return t; - } - - /** - * @return {@link #status} (The status of the extension.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinition.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (The status of the extension.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public ExtensionDefinition setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return The status of the extension. - */ - public ResourceProfileStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value The status of the extension. - */ - public ExtensionDefinition setStatus(ResourceProfileStatus value) { - if (this.status == null) - this.status = new Enumeration(ResourceProfileStatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #experimental} (This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value - */ - public BooleanType getExperimentalElement() { - if (this.experimental == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinition.experimental"); - else if (Configuration.doAutoCreate()) - this.experimental = new BooleanType(); - return this.experimental; - } - - public boolean hasExperimentalElement() { - return this.experimental != null && !this.experimental.isEmpty(); - } - - public boolean hasExperimental() { - return this.experimental != null && !this.experimental.isEmpty(); - } - - /** - * @param value {@link #experimental} (This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value - */ - public ExtensionDefinition setExperimentalElement(BooleanType value) { - this.experimental = value; - return this; - } - - /** - * @return This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. - */ - public boolean getExperimental() { - return this.experimental == null ? false : this.experimental.getValue(); - } - - /** - * @param value This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. - */ - public ExtensionDefinition setExperimental(boolean value) { - if (value == false) - this.experimental = null; - else { - if (this.experimental == null) - this.experimental = new BooleanType(); - this.experimental.setValue(value); - } - return this; - } - - /** - * @return {@link #date} (The date that this version of the extension was published.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinition.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (The date that this version of the extension was published.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public ExtensionDefinition setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return The date that this version of the extension was published. - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value The date that this version of the extension was published. - */ - public ExtensionDefinition setDate(Date value) { - if (value == null) - this.date = null; - else { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - } - return this; - } - - /** - * @return {@link #requirements} (The Scope and Usage that this extension was created to meet.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value - */ - public StringType getRequirementsElement() { - if (this.requirements == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinition.requirements"); - else if (Configuration.doAutoCreate()) - this.requirements = new StringType(); - return this.requirements; - } - - public boolean hasRequirementsElement() { - return this.requirements != null && !this.requirements.isEmpty(); - } - - public boolean hasRequirements() { - return this.requirements != null && !this.requirements.isEmpty(); - } - - /** - * @param value {@link #requirements} (The Scope and Usage that this extension was created to meet.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value - */ - public ExtensionDefinition setRequirementsElement(StringType value) { - this.requirements = value; - return this; - } - - /** - * @return The Scope and Usage that this extension was created to meet. - */ - public String getRequirements() { - return this.requirements == null ? null : this.requirements.getValue(); - } - - /** - * @param value The Scope and Usage that this extension was created to meet. - */ - public ExtensionDefinition setRequirements(String value) { - if (Utilities.noString(value)) - this.requirements = null; - else { - if (this.requirements == null) - this.requirements = new StringType(); - this.requirements.setValue(value); - } - return this; - } - - /** - * @return {@link #mapping} (An external specification that the content is mapped to.) - */ - public List getMapping() { - if (this.mapping == null) - this.mapping = new ArrayList(); - return this.mapping; - } - - public boolean hasMapping() { - if (this.mapping == null) - return false; - for (ExtensionDefinitionMappingComponent item : this.mapping) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #mapping} (An external specification that the content is mapped to.) - */ - // syntactic sugar - public ExtensionDefinitionMappingComponent addMapping() { //3 - ExtensionDefinitionMappingComponent t = new ExtensionDefinitionMappingComponent(); - if (this.mapping == null) - this.mapping = new ArrayList(); - this.mapping.add(t); - return t; - } - - /** - * @return {@link #contextType} (Identifies the type of context to which the extension applies.). This is the underlying object with id, value and extensions. The accessor "getContextType" gives direct access to the value - */ - public Enumeration getContextTypeElement() { - if (this.contextType == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ExtensionDefinition.contextType"); - else if (Configuration.doAutoCreate()) - this.contextType = new Enumeration(); - return this.contextType; - } - - public boolean hasContextTypeElement() { - return this.contextType != null && !this.contextType.isEmpty(); - } - - public boolean hasContextType() { - return this.contextType != null && !this.contextType.isEmpty(); - } - - /** - * @param value {@link #contextType} (Identifies the type of context to which the extension applies.). This is the underlying object with id, value and extensions. The accessor "getContextType" gives direct access to the value - */ - public ExtensionDefinition setContextTypeElement(Enumeration value) { - this.contextType = value; - return this; - } - - /** - * @return Identifies the type of context to which the extension applies. - */ - public ExtensionContext getContextType() { - return this.contextType == null ? null : this.contextType.getValue(); - } - - /** - * @param value Identifies the type of context to which the extension applies. - */ - public ExtensionDefinition setContextType(ExtensionContext value) { - if (this.contextType == null) - this.contextType = new Enumeration(ExtensionContext.ENUM_FACTORY); - this.contextType.setValue(value); - return this; - } - - /** - * @return {@link #context} (Identifies the types of resource or data type elements to which the extension can be applied.) - */ - public List getContext() { - if (this.context == null) - this.context = new ArrayList(); - return this.context; - } - - public boolean hasContext() { - if (this.context == null) - return false; - for (StringType item : this.context) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #context} (Identifies the types of resource or data type elements to which the extension can be applied.) - */ - // syntactic sugar - public StringType addContextElement() {//2 - StringType t = new StringType(); - if (this.context == null) - this.context = new ArrayList(); - this.context.add(t); - return t; - } - - /** - * @param value {@link #context} (Identifies the types of resource or data type elements to which the extension can be applied.) - */ - public ExtensionDefinition addContext(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.context == null) - this.context = new ArrayList(); - this.context.add(t); - return this; - } - - /** - * @param value {@link #context} (Identifies the types of resource or data type elements to which the extension can be applied.) - */ - public boolean hasContext(String value) { - if (this.context == null) - return false; - for (StringType v : this.context) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #element} (Definition of the elements that are defined to be in the extension.) - */ - public List getElement() { - if (this.element == null) - this.element = new ArrayList(); - return this.element; - } - - public boolean hasElement() { - if (this.element == null) - return false; - for (ElementDefinition item : this.element) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #element} (Definition of the elements that are defined to be in the extension.) - */ - // syntactic sugar - public ElementDefinition addElement() { //3 - ElementDefinition t = new ElementDefinition(); - if (this.element == null) - this.element = new ArrayList(); - this.element.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("url", "uri", "The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems.", 0, java.lang.Integer.MAX_VALUE, url)); - childrenList.add(new Property("identifier", "Identifier", "Formal identifier that is used to identify this profile when it is represented in other formats (e.g. ISO 11179(, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("name", "string", "A free text natural language name identifying the extension.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("display", "string", "Defined so that applications can use this name when displaying the value of the extension to the user.", 0, java.lang.Integer.MAX_VALUE, display)); - childrenList.add(new Property("publisher", "string", "Details of the individual or organization who accepts responsibility for publishing the extension definition.", 0, java.lang.Integer.MAX_VALUE, publisher)); - childrenList.add(new Property("telecom", "ContactPoint", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, telecom)); - childrenList.add(new Property("description", "string", "A free text natural language description of the extension and its use.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("code", "Coding", "A set of terms from external terminologies that may be used to assist with indexing and searching of extension definitions.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("status", "code", "The status of the extension.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("experimental", "boolean", "This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.", 0, java.lang.Integer.MAX_VALUE, experimental)); - childrenList.add(new Property("date", "dateTime", "The date that this version of the extension was published.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("requirements", "string", "The Scope and Usage that this extension was created to meet.", 0, java.lang.Integer.MAX_VALUE, requirements)); - childrenList.add(new Property("mapping", "", "An external specification that the content is mapped to.", 0, java.lang.Integer.MAX_VALUE, mapping)); - childrenList.add(new Property("contextType", "code", "Identifies the type of context to which the extension applies.", 0, java.lang.Integer.MAX_VALUE, contextType)); - childrenList.add(new Property("context", "string", "Identifies the types of resource or data type elements to which the extension can be applied.", 0, java.lang.Integer.MAX_VALUE, context)); - childrenList.add(new Property("element", "ElementDefinition", "Definition of the elements that are defined to be in the extension.", 0, java.lang.Integer.MAX_VALUE, element)); - } - - public ExtensionDefinition copy() { - ExtensionDefinition dst = new ExtensionDefinition(); - copyValues(dst); - dst.url = url == null ? null : url.copy(); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.name = name == null ? null : name.copy(); - dst.display = display == null ? null : display.copy(); - dst.publisher = publisher == null ? null : publisher.copy(); - if (telecom != null) { - dst.telecom = new ArrayList(); - for (ContactPoint i : telecom) - dst.telecom.add(i.copy()); - }; - dst.description = description == null ? null : description.copy(); - if (code != null) { - dst.code = new ArrayList(); - for (Coding i : code) - dst.code.add(i.copy()); - }; - dst.status = status == null ? null : status.copy(); - dst.experimental = experimental == null ? null : experimental.copy(); - dst.date = date == null ? null : date.copy(); - dst.requirements = requirements == null ? null : requirements.copy(); - if (mapping != null) { - dst.mapping = new ArrayList(); - for (ExtensionDefinitionMappingComponent i : mapping) - dst.mapping.add(i.copy()); - }; - dst.contextType = contextType == null ? null : contextType.copy(); - if (context != null) { - dst.context = new ArrayList(); - for (StringType i : context) - dst.context.add(i.copy()); - }; - if (element != null) { - dst.element = new ArrayList(); - for (ElementDefinition i : element) - dst.element.add(i.copy()); - }; - return dst; - } - - protected ExtensionDefinition typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (url == null || url.isEmpty()) && (identifier == null || identifier.isEmpty()) - && (name == null || name.isEmpty()) && (display == null || display.isEmpty()) && (publisher == null || publisher.isEmpty()) - && (telecom == null || telecom.isEmpty()) && (description == null || description.isEmpty()) - && (code == null || code.isEmpty()) && (status == null || status.isEmpty()) && (experimental == null || experimental.isEmpty()) - && (date == null || date.isEmpty()) && (requirements == null || requirements.isEmpty()) && (mapping == null || mapping.isEmpty()) - && (contextType == null || contextType.isEmpty()) && (context == null || context.isEmpty()) - && (element == null || element.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.ExtensionDefinition; - } - - @SearchParamDefinition(name="valueset", path="ExtensionDefinition.element.binding.reference[x]", description="Source of value set", type="reference" ) - public static final String SP_VALUESET = "valueset"; - @SearchParamDefinition(name="status", path="ExtensionDefinition.status", description="draft | active | retired", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="description", path="ExtensionDefinition.description", description="Natural language description of the extension", type="string" ) - public static final String SP_DESCRIPTION = "description"; - @SearchParamDefinition(name="name", path="ExtensionDefinition.name", description="Descriptional name for this profile", type="string" ) - public static final String SP_NAME = "name"; - @SearchParamDefinition(name="code", path="ExtensionDefinition.code", description="Assist with indexing and finding", type="token" ) - public static final String SP_CODE = "code"; - @SearchParamDefinition(name="date", path="ExtensionDefinition.date", description="Date for this version of the extension", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="identifier", path="ExtensionDefinition.identifier", description="Other identifiers for the extension", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - @SearchParamDefinition(name="url", path="ExtensionDefinition.url", description="Literal URL used to reference this extension", type="token" ) - public static final String SP_URL = "url"; - @SearchParamDefinition(name="publisher", path="ExtensionDefinition.publisher", description="Name of the publisher (Organization or individual)", type="string" ) - public static final String SP_PUBLISHER = "publisher"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Defines an extension that can be used in resources. + */ +@ResourceDef(name="ExtensionDefinition", profile="http://hl7.org/fhir/Profile/ExtensionDefinition") +public class ExtensionDefinition extends DomainResource { + + public enum ResourceProfileStatus { + /** + * This profile is still under development. + */ + DRAFT, + /** + * This profile is ready for normal use. + */ + ACTIVE, + /** + * This profile has been deprecated, withdrawn or superseded and should no longer be used. + */ + RETIRED, + /** + * added to help the parsers + */ + NULL; + public static ResourceProfileStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("draft".equals(codeString)) + return DRAFT; + if ("active".equals(codeString)) + return ACTIVE; + if ("retired".equals(codeString)) + return RETIRED; + throw new Exception("Unknown ResourceProfileStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case DRAFT: return "draft"; + case ACTIVE: return "active"; + case RETIRED: return "retired"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case DRAFT: return ""; + case ACTIVE: return ""; + case RETIRED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case DRAFT: return "This profile is still under development."; + case ACTIVE: return "This profile is ready for normal use."; + case RETIRED: return "This profile has been deprecated, withdrawn or superseded and should no longer be used."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case DRAFT: return "draft"; + case ACTIVE: return "active"; + case RETIRED: return "retired"; + default: return "?"; + } + } + } + + public static class ResourceProfileStatusEnumFactory implements EnumFactory { + public ResourceProfileStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("draft".equals(codeString)) + return ResourceProfileStatus.DRAFT; + if ("active".equals(codeString)) + return ResourceProfileStatus.ACTIVE; + if ("retired".equals(codeString)) + return ResourceProfileStatus.RETIRED; + throw new IllegalArgumentException("Unknown ResourceProfileStatus code '"+codeString+"'"); + } + public String toCode(ResourceProfileStatus code) { + if (code == ResourceProfileStatus.DRAFT) + return "draft"; + if (code == ResourceProfileStatus.ACTIVE) + return "active"; + if (code == ResourceProfileStatus.RETIRED) + return "retired"; + return "?"; + } + } + + public enum ExtensionContext { + /** + * The context is all elements matching a particular resource element path. + */ + RESOURCE, + /** + * The context is all nodes matching a particular data type element path (root or repeating element) or all elements referencing a particular primitive data type (expressed as the datatype name). + */ + DATATYPE, + /** + * The context is all nodes whose mapping to a specified reference model corresponds to a particular mapping structure. The context identifies the mapping target. The mapping should clearly identify where such an extension could be used. + */ + MAPPING, + /** + * The context is a particular extension from a particular profile. Expressed as uri#name, where uri identifies the profile and #name identifies the extension code. + */ + EXTENSION, + /** + * added to help the parsers + */ + NULL; + public static ExtensionContext fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("resource".equals(codeString)) + return RESOURCE; + if ("datatype".equals(codeString)) + return DATATYPE; + if ("mapping".equals(codeString)) + return MAPPING; + if ("extension".equals(codeString)) + return EXTENSION; + throw new Exception("Unknown ExtensionContext code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case RESOURCE: return "resource"; + case DATATYPE: return "datatype"; + case MAPPING: return "mapping"; + case EXTENSION: return "extension"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case RESOURCE: return ""; + case DATATYPE: return ""; + case MAPPING: return ""; + case EXTENSION: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case RESOURCE: return "The context is all elements matching a particular resource element path."; + case DATATYPE: return "The context is all nodes matching a particular data type element path (root or repeating element) or all elements referencing a particular primitive data type (expressed as the datatype name)."; + case MAPPING: return "The context is all nodes whose mapping to a specified reference model corresponds to a particular mapping structure. The context identifies the mapping target. The mapping should clearly identify where such an extension could be used."; + case EXTENSION: return "The context is a particular extension from a particular profile. Expressed as uri#name, where uri identifies the profile and #name identifies the extension code."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case RESOURCE: return "resource"; + case DATATYPE: return "datatype"; + case MAPPING: return "mapping"; + case EXTENSION: return "extension"; + default: return "?"; + } + } + } + + public static class ExtensionContextEnumFactory implements EnumFactory { + public ExtensionContext fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("resource".equals(codeString)) + return ExtensionContext.RESOURCE; + if ("datatype".equals(codeString)) + return ExtensionContext.DATATYPE; + if ("mapping".equals(codeString)) + return ExtensionContext.MAPPING; + if ("extension".equals(codeString)) + return ExtensionContext.EXTENSION; + throw new IllegalArgumentException("Unknown ExtensionContext code '"+codeString+"'"); + } + public String toCode(ExtensionContext code) { + if (code == ExtensionContext.RESOURCE) + return "resource"; + if (code == ExtensionContext.DATATYPE) + return "datatype"; + if (code == ExtensionContext.MAPPING) + return "mapping"; + if (code == ExtensionContext.EXTENSION) + return "extension"; + return "?"; + } + } + + @Block() + public static class ExtensionDefinitionMappingComponent extends BackboneElement { + /** + * An Internal id that is used to identify this mapping set when specific mappings are made. + */ + @Child(name="identity", type={IdType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Internal id when this mapping is used", formalDefinition="An Internal id that is used to identify this mapping set when specific mappings are made." ) + protected IdType identity; + + /** + * A URI that identifies the specification that this mapping is expressed to. + */ + @Child(name="uri", type={UriType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Identifies what this mapping refers to", formalDefinition="A URI that identifies the specification that this mapping is expressed to." ) + protected UriType uri; + + /** + * A name for the specification that is being mapped to. + */ + @Child(name="name", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Names what this mapping refers to", formalDefinition="A name for the specification that is being mapped to." ) + protected StringType name; + + /** + * Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. + */ + @Child(name="comments", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Versions, Issues, Scope limitations etc", formalDefinition="Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage." ) + protected StringType comments; + + private static final long serialVersionUID = 299630820L; + + public ExtensionDefinitionMappingComponent() { + super(); + } + + public ExtensionDefinitionMappingComponent(IdType identity) { + super(); + this.identity = identity; + } + + /** + * @return {@link #identity} (An Internal id that is used to identify this mapping set when specific mappings are made.). This is the underlying object with id, value and extensions. The accessor "getIdentity" gives direct access to the value + */ + public IdType getIdentityElement() { + if (this.identity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinitionMappingComponent.identity"); + else if (Configuration.doAutoCreate()) + this.identity = new IdType(); // bb + return this.identity; + } + + public boolean hasIdentityElement() { + return this.identity != null && !this.identity.isEmpty(); + } + + public boolean hasIdentity() { + return this.identity != null && !this.identity.isEmpty(); + } + + /** + * @param value {@link #identity} (An Internal id that is used to identify this mapping set when specific mappings are made.). This is the underlying object with id, value and extensions. The accessor "getIdentity" gives direct access to the value + */ + public ExtensionDefinitionMappingComponent setIdentityElement(IdType value) { + this.identity = value; + return this; + } + + /** + * @return An Internal id that is used to identify this mapping set when specific mappings are made. + */ + public String getIdentity() { + return this.identity == null ? null : this.identity.getValue(); + } + + /** + * @param value An Internal id that is used to identify this mapping set when specific mappings are made. + */ + public ExtensionDefinitionMappingComponent setIdentity(String value) { + if (this.identity == null) + this.identity = new IdType(); + this.identity.setValue(value); + return this; + } + + /** + * @return {@link #uri} (A URI that identifies the specification that this mapping is expressed to.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value + */ + public UriType getUriElement() { + if (this.uri == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinitionMappingComponent.uri"); + else if (Configuration.doAutoCreate()) + this.uri = new UriType(); // bb + return this.uri; + } + + public boolean hasUriElement() { + return this.uri != null && !this.uri.isEmpty(); + } + + public boolean hasUri() { + return this.uri != null && !this.uri.isEmpty(); + } + + /** + * @param value {@link #uri} (A URI that identifies the specification that this mapping is expressed to.). This is the underlying object with id, value and extensions. The accessor "getUri" gives direct access to the value + */ + public ExtensionDefinitionMappingComponent setUriElement(UriType value) { + this.uri = value; + return this; + } + + /** + * @return A URI that identifies the specification that this mapping is expressed to. + */ + public String getUri() { + return this.uri == null ? null : this.uri.getValue(); + } + + /** + * @param value A URI that identifies the specification that this mapping is expressed to. + */ + public ExtensionDefinitionMappingComponent setUri(String value) { + if (Utilities.noString(value)) + this.uri = null; + else { + if (this.uri == null) + this.uri = new UriType(); + this.uri.setValue(value); + } + return this; + } + + /** + * @return {@link #name} (A name for the specification that is being mapped to.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinitionMappingComponent.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (A name for the specification that is being mapped to.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public ExtensionDefinitionMappingComponent setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return A name for the specification that is being mapped to. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value A name for the specification that is being mapped to. + */ + public ExtensionDefinitionMappingComponent setName(String value) { + if (Utilities.noString(value)) + this.name = null; + else { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + } + return this; + } + + /** + * @return {@link #comments} (Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value + */ + public StringType getCommentsElement() { + if (this.comments == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinitionMappingComponent.comments"); + else if (Configuration.doAutoCreate()) + this.comments = new StringType(); // bb + return this.comments; + } + + public boolean hasCommentsElement() { + return this.comments != null && !this.comments.isEmpty(); + } + + public boolean hasComments() { + return this.comments != null && !this.comments.isEmpty(); + } + + /** + * @param value {@link #comments} (Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.). This is the underlying object with id, value and extensions. The accessor "getComments" gives direct access to the value + */ + public ExtensionDefinitionMappingComponent setCommentsElement(StringType value) { + this.comments = value; + return this; + } + + /** + * @return Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. + */ + public String getComments() { + return this.comments == null ? null : this.comments.getValue(); + } + + /** + * @param value Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage. + */ + public ExtensionDefinitionMappingComponent setComments(String value) { + if (Utilities.noString(value)) + this.comments = null; + else { + if (this.comments == null) + this.comments = new StringType(); + this.comments.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identity", "id", "An Internal id that is used to identify this mapping set when specific mappings are made.", 0, java.lang.Integer.MAX_VALUE, identity)); + childrenList.add(new Property("uri", "uri", "A URI that identifies the specification that this mapping is expressed to.", 0, java.lang.Integer.MAX_VALUE, uri)); + childrenList.add(new Property("name", "string", "A name for the specification that is being mapped to.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("comments", "string", "Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage.", 0, java.lang.Integer.MAX_VALUE, comments)); + } + + public ExtensionDefinitionMappingComponent copy() { + ExtensionDefinitionMappingComponent dst = new ExtensionDefinitionMappingComponent(); + copyValues(dst); + dst.identity = identity == null ? null : identity.copy(); + dst.uri = uri == null ? null : uri.copy(); + dst.name = name == null ? null : name.copy(); + dst.comments = comments == null ? null : comments.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ExtensionDefinitionMappingComponent)) + return false; + ExtensionDefinitionMappingComponent o = (ExtensionDefinitionMappingComponent) other; + return compareDeep(identity, o.identity, true) && compareDeep(uri, o.uri, true) && compareDeep(name, o.name, true) + && compareDeep(comments, o.comments, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ExtensionDefinitionMappingComponent)) + return false; + ExtensionDefinitionMappingComponent o = (ExtensionDefinitionMappingComponent) other; + return compareValues(identity, o.identity, true) && compareValues(uri, o.uri, true) && compareValues(name, o.name, true) + && compareValues(comments, o.comments, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identity == null || identity.isEmpty()) && (uri == null || uri.isEmpty()) + && (name == null || name.isEmpty()) && (comments == null || comments.isEmpty()); + } + + } + + /** + * The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems. + */ + @Child(name="url", type={UriType.class}, order=-1, min=1, max=1) + @Description(shortDefinition="Literal URL used to reference this extension", formalDefinition="The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems." ) + protected UriType url; + + /** + * Formal identifier that is used to identify this profile when it is represented in other formats (e.g. ISO 11179(, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI). + */ + @Child(name="identifier", type={Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Other identifiers for the extension", formalDefinition="Formal identifier that is used to identify this profile when it is represented in other formats (e.g. ISO 11179(, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI)." ) + protected List identifier; + + /** + * A free text natural language name identifying the extension. + */ + @Child(name="name", type={StringType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Descriptional name for this profile", formalDefinition="A free text natural language name identifying the extension." ) + protected StringType name; + + /** + * Defined so that applications can use this name when displaying the value of the extension to the user. + */ + @Child(name="display", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Use this name when displaying the value", formalDefinition="Defined so that applications can use this name when displaying the value of the extension to the user." ) + protected StringType display; + + /** + * Details of the individual or organization who accepts responsibility for publishing the extension definition. + */ + @Child(name="publisher", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Name of the publisher (Organization or individual)", formalDefinition="Details of the individual or organization who accepts responsibility for publishing the extension definition." ) + protected StringType publisher; + + /** + * Contact details to assist a user in finding and communicating with the publisher. + */ + @Child(name="telecom", type={ContactPoint.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Contact information of the publisher", formalDefinition="Contact details to assist a user in finding and communicating with the publisher." ) + protected List telecom; + + /** + * A free text natural language description of the extension and its use. + */ + @Child(name="description", type={StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Natural language description of the extension", formalDefinition="A free text natural language description of the extension and its use." ) + protected StringType description; + + /** + * A set of terms from external terminologies that may be used to assist with indexing and searching of extension definitions. + */ + @Child(name="code", type={Coding.class}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Assist with indexing and finding", formalDefinition="A set of terms from external terminologies that may be used to assist with indexing and searching of extension definitions." ) + protected List code; + + /** + * The status of the extension. + */ + @Child(name="status", type={CodeType.class}, order=7, min=1, max=1) + @Description(shortDefinition="draft | active | retired", formalDefinition="The status of the extension." ) + protected Enumeration status; + + /** + * This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. + */ + @Child(name="experimental", type={BooleanType.class}, order=8, min=0, max=1) + @Description(shortDefinition="If for testing purposes, not real usage", formalDefinition="This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage." ) + protected BooleanType experimental; + + /** + * The date that this version of the extension was published. + */ + @Child(name="date", type={DateTimeType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Date for this version of the extension", formalDefinition="The date that this version of the extension was published." ) + protected DateTimeType date; + + /** + * The Scope and Usage that this extension was created to meet. + */ + @Child(name="requirements", type={StringType.class}, order=10, min=0, max=1) + @Description(shortDefinition="Scope and Usage this extesion is for", formalDefinition="The Scope and Usage that this extension was created to meet." ) + protected StringType requirements; + + /** + * An external specification that the content is mapped to. + */ + @Child(name="mapping", type={}, order=11, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="External specification that the content is mapped to", formalDefinition="An external specification that the content is mapped to." ) + protected List mapping; + + /** + * Identifies the type of context to which the extension applies. + */ + @Child(name="contextType", type={CodeType.class}, order=12, min=1, max=1) + @Description(shortDefinition="resource | datatype | mapping | extension", formalDefinition="Identifies the type of context to which the extension applies." ) + protected Enumeration contextType; + + /** + * Identifies the types of resource or data type elements to which the extension can be applied. + */ + @Child(name="context", type={StringType.class}, order=13, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Where the extension can be used in instances", formalDefinition="Identifies the types of resource or data type elements to which the extension can be applied." ) + protected List context; + + /** + * Definition of the elements that are defined to be in the extension. + */ + @Child(name="element", type={ElementDefinition.class}, order=14, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Definition of the elements in the extension", formalDefinition="Definition of the elements that are defined to be in the extension." ) + protected List element; + + private static final long serialVersionUID = -989216686L; + + public ExtensionDefinition() { + super(); + } + + public ExtensionDefinition(UriType url, StringType name, Enumeration status, Enumeration contextType) { + super(); + this.url = url; + this.name = name; + this.status = status; + this.contextType = contextType; + } + + /** + * @return {@link #url} (The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinition.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public ExtensionDefinition setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems. + */ + public ExtensionDefinition setUrl(String value) { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + return this; + } + + /** + * @return {@link #identifier} (Formal identifier that is used to identify this profile when it is represented in other formats (e.g. ISO 11179(, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI).) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Formal identifier that is used to identify this profile when it is represented in other formats (e.g. ISO 11179(, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI).) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #name} (A free text natural language name identifying the extension.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinition.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (A free text natural language name identifying the extension.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public ExtensionDefinition setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return A free text natural language name identifying the extension. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value A free text natural language name identifying the extension. + */ + public ExtensionDefinition setName(String value) { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + return this; + } + + /** + * @return {@link #display} (Defined so that applications can use this name when displaying the value of the extension to the user.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value + */ + public StringType getDisplayElement() { + if (this.display == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinition.display"); + else if (Configuration.doAutoCreate()) + this.display = new StringType(); // bb + return this.display; + } + + public boolean hasDisplayElement() { + return this.display != null && !this.display.isEmpty(); + } + + public boolean hasDisplay() { + return this.display != null && !this.display.isEmpty(); + } + + /** + * @param value {@link #display} (Defined so that applications can use this name when displaying the value of the extension to the user.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value + */ + public ExtensionDefinition setDisplayElement(StringType value) { + this.display = value; + return this; + } + + /** + * @return Defined so that applications can use this name when displaying the value of the extension to the user. + */ + public String getDisplay() { + return this.display == null ? null : this.display.getValue(); + } + + /** + * @param value Defined so that applications can use this name when displaying the value of the extension to the user. + */ + public ExtensionDefinition setDisplay(String value) { + if (Utilities.noString(value)) + this.display = null; + else { + if (this.display == null) + this.display = new StringType(); + this.display.setValue(value); + } + return this; + } + + /** + * @return {@link #publisher} (Details of the individual or organization who accepts responsibility for publishing the extension definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value + */ + public StringType getPublisherElement() { + if (this.publisher == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinition.publisher"); + else if (Configuration.doAutoCreate()) + this.publisher = new StringType(); // bb + return this.publisher; + } + + public boolean hasPublisherElement() { + return this.publisher != null && !this.publisher.isEmpty(); + } + + public boolean hasPublisher() { + return this.publisher != null && !this.publisher.isEmpty(); + } + + /** + * @param value {@link #publisher} (Details of the individual or organization who accepts responsibility for publishing the extension definition.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value + */ + public ExtensionDefinition setPublisherElement(StringType value) { + this.publisher = value; + return this; + } + + /** + * @return Details of the individual or organization who accepts responsibility for publishing the extension definition. + */ + public String getPublisher() { + return this.publisher == null ? null : this.publisher.getValue(); + } + + /** + * @param value Details of the individual or organization who accepts responsibility for publishing the extension definition. + */ + public ExtensionDefinition setPublisher(String value) { + if (Utilities.noString(value)) + this.publisher = null; + else { + if (this.publisher == null) + this.publisher = new StringType(); + this.publisher.setValue(value); + } + return this; + } + + /** + * @return {@link #telecom} (Contact details to assist a user in finding and communicating with the publisher.) + */ + public List getTelecom() { + if (this.telecom == null) + this.telecom = new ArrayList(); + return this.telecom; + } + + public boolean hasTelecom() { + if (this.telecom == null) + return false; + for (ContactPoint item : this.telecom) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #telecom} (Contact details to assist a user in finding and communicating with the publisher.) + */ + // syntactic sugar + public ContactPoint addTelecom() { //3 + ContactPoint t = new ContactPoint(); + if (this.telecom == null) + this.telecom = new ArrayList(); + this.telecom.add(t); + return t; + } + + /** + * @return {@link #description} (A free text natural language description of the extension and its use.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinition.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (A free text natural language description of the extension and its use.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public ExtensionDefinition setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return A free text natural language description of the extension and its use. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value A free text natural language description of the extension and its use. + */ + public ExtensionDefinition setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #code} (A set of terms from external terminologies that may be used to assist with indexing and searching of extension definitions.) + */ + public List getCode() { + if (this.code == null) + this.code = new ArrayList(); + return this.code; + } + + public boolean hasCode() { + if (this.code == null) + return false; + for (Coding item : this.code) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #code} (A set of terms from external terminologies that may be used to assist with indexing and searching of extension definitions.) + */ + // syntactic sugar + public Coding addCode() { //3 + Coding t = new Coding(); + if (this.code == null) + this.code = new ArrayList(); + this.code.add(t); + return t; + } + + /** + * @return {@link #status} (The status of the extension.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinition.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new ResourceProfileStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (The status of the extension.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public ExtensionDefinition setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return The status of the extension. + */ + public ResourceProfileStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value The status of the extension. + */ + public ExtensionDefinition setStatus(ResourceProfileStatus value) { + if (this.status == null) + this.status = new Enumeration(new ResourceProfileStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #experimental} (This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value + */ + public BooleanType getExperimentalElement() { + if (this.experimental == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinition.experimental"); + else if (Configuration.doAutoCreate()) + this.experimental = new BooleanType(); // bb + return this.experimental; + } + + public boolean hasExperimentalElement() { + return this.experimental != null && !this.experimental.isEmpty(); + } + + public boolean hasExperimental() { + return this.experimental != null && !this.experimental.isEmpty(); + } + + /** + * @param value {@link #experimental} (This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value + */ + public ExtensionDefinition setExperimentalElement(BooleanType value) { + this.experimental = value; + return this; + } + + /** + * @return This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. + */ + public boolean getExperimental() { + return this.experimental == null ? false : this.experimental.getValue(); + } + + /** + * @param value This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. + */ + public ExtensionDefinition setExperimental(boolean value) { + if (this.experimental == null) + this.experimental = new BooleanType(); + this.experimental.setValue(value); + return this; + } + + /** + * @return {@link #date} (The date that this version of the extension was published.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinition.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (The date that this version of the extension was published.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public ExtensionDefinition setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return The date that this version of the extension was published. + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value The date that this version of the extension was published. + */ + public ExtensionDefinition setDate(Date value) { + if (value == null) + this.date = null; + else { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + } + return this; + } + + /** + * @return {@link #requirements} (The Scope and Usage that this extension was created to meet.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value + */ + public StringType getRequirementsElement() { + if (this.requirements == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinition.requirements"); + else if (Configuration.doAutoCreate()) + this.requirements = new StringType(); // bb + return this.requirements; + } + + public boolean hasRequirementsElement() { + return this.requirements != null && !this.requirements.isEmpty(); + } + + public boolean hasRequirements() { + return this.requirements != null && !this.requirements.isEmpty(); + } + + /** + * @param value {@link #requirements} (The Scope and Usage that this extension was created to meet.). This is the underlying object with id, value and extensions. The accessor "getRequirements" gives direct access to the value + */ + public ExtensionDefinition setRequirementsElement(StringType value) { + this.requirements = value; + return this; + } + + /** + * @return The Scope and Usage that this extension was created to meet. + */ + public String getRequirements() { + return this.requirements == null ? null : this.requirements.getValue(); + } + + /** + * @param value The Scope and Usage that this extension was created to meet. + */ + public ExtensionDefinition setRequirements(String value) { + if (Utilities.noString(value)) + this.requirements = null; + else { + if (this.requirements == null) + this.requirements = new StringType(); + this.requirements.setValue(value); + } + return this; + } + + /** + * @return {@link #mapping} (An external specification that the content is mapped to.) + */ + public List getMapping() { + if (this.mapping == null) + this.mapping = new ArrayList(); + return this.mapping; + } + + public boolean hasMapping() { + if (this.mapping == null) + return false; + for (ExtensionDefinitionMappingComponent item : this.mapping) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #mapping} (An external specification that the content is mapped to.) + */ + // syntactic sugar + public ExtensionDefinitionMappingComponent addMapping() { //3 + ExtensionDefinitionMappingComponent t = new ExtensionDefinitionMappingComponent(); + if (this.mapping == null) + this.mapping = new ArrayList(); + this.mapping.add(t); + return t; + } + + /** + * @return {@link #contextType} (Identifies the type of context to which the extension applies.). This is the underlying object with id, value and extensions. The accessor "getContextType" gives direct access to the value + */ + public Enumeration getContextTypeElement() { + if (this.contextType == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ExtensionDefinition.contextType"); + else if (Configuration.doAutoCreate()) + this.contextType = new Enumeration(new ExtensionContextEnumFactory()); // bb + return this.contextType; + } + + public boolean hasContextTypeElement() { + return this.contextType != null && !this.contextType.isEmpty(); + } + + public boolean hasContextType() { + return this.contextType != null && !this.contextType.isEmpty(); + } + + /** + * @param value {@link #contextType} (Identifies the type of context to which the extension applies.). This is the underlying object with id, value and extensions. The accessor "getContextType" gives direct access to the value + */ + public ExtensionDefinition setContextTypeElement(Enumeration value) { + this.contextType = value; + return this; + } + + /** + * @return Identifies the type of context to which the extension applies. + */ + public ExtensionContext getContextType() { + return this.contextType == null ? null : this.contextType.getValue(); + } + + /** + * @param value Identifies the type of context to which the extension applies. + */ + public ExtensionDefinition setContextType(ExtensionContext value) { + if (this.contextType == null) + this.contextType = new Enumeration(new ExtensionContextEnumFactory()); + this.contextType.setValue(value); + return this; + } + + /** + * @return {@link #context} (Identifies the types of resource or data type elements to which the extension can be applied.) + */ + public List getContext() { + if (this.context == null) + this.context = new ArrayList(); + return this.context; + } + + public boolean hasContext() { + if (this.context == null) + return false; + for (StringType item : this.context) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #context} (Identifies the types of resource or data type elements to which the extension can be applied.) + */ + // syntactic sugar + public StringType addContextElement() {//2 + StringType t = new StringType(); + if (this.context == null) + this.context = new ArrayList(); + this.context.add(t); + return t; + } + + /** + * @param value {@link #context} (Identifies the types of resource or data type elements to which the extension can be applied.) + */ + public ExtensionDefinition addContext(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.context == null) + this.context = new ArrayList(); + this.context.add(t); + return this; + } + + /** + * @param value {@link #context} (Identifies the types of resource or data type elements to which the extension can be applied.) + */ + public boolean hasContext(String value) { + if (this.context == null) + return false; + for (StringType v : this.context) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #element} (Definition of the elements that are defined to be in the extension.) + */ + public List getElement() { + if (this.element == null) + this.element = new ArrayList(); + return this.element; + } + + public boolean hasElement() { + if (this.element == null) + return false; + for (ElementDefinition item : this.element) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #element} (Definition of the elements that are defined to be in the extension.) + */ + // syntactic sugar + public ElementDefinition addElement() { //3 + ElementDefinition t = new ElementDefinition(); + if (this.element == null) + this.element = new ArrayList(); + this.element.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("url", "uri", "The URL at which this definition is (or will be) published, and which is used to reference this profile in extension urls in operational FHIR systems.", 0, java.lang.Integer.MAX_VALUE, url)); + childrenList.add(new Property("identifier", "Identifier", "Formal identifier that is used to identify this profile when it is represented in other formats (e.g. ISO 11179(, or referenced in a specification, model, design or an instance (should be globally unique OID, UUID, or URI), (if it's not possible to use the literal URI).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("name", "string", "A free text natural language name identifying the extension.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("display", "string", "Defined so that applications can use this name when displaying the value of the extension to the user.", 0, java.lang.Integer.MAX_VALUE, display)); + childrenList.add(new Property("publisher", "string", "Details of the individual or organization who accepts responsibility for publishing the extension definition.", 0, java.lang.Integer.MAX_VALUE, publisher)); + childrenList.add(new Property("telecom", "ContactPoint", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, telecom)); + childrenList.add(new Property("description", "string", "A free text natural language description of the extension and its use.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("code", "Coding", "A set of terms from external terminologies that may be used to assist with indexing and searching of extension definitions.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("status", "code", "The status of the extension.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("experimental", "boolean", "This extension definition was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.", 0, java.lang.Integer.MAX_VALUE, experimental)); + childrenList.add(new Property("date", "dateTime", "The date that this version of the extension was published.", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("requirements", "string", "The Scope and Usage that this extension was created to meet.", 0, java.lang.Integer.MAX_VALUE, requirements)); + childrenList.add(new Property("mapping", "", "An external specification that the content is mapped to.", 0, java.lang.Integer.MAX_VALUE, mapping)); + childrenList.add(new Property("contextType", "code", "Identifies the type of context to which the extension applies.", 0, java.lang.Integer.MAX_VALUE, contextType)); + childrenList.add(new Property("context", "string", "Identifies the types of resource or data type elements to which the extension can be applied.", 0, java.lang.Integer.MAX_VALUE, context)); + childrenList.add(new Property("element", "ElementDefinition", "Definition of the elements that are defined to be in the extension.", 0, java.lang.Integer.MAX_VALUE, element)); + } + + public ExtensionDefinition copy() { + ExtensionDefinition dst = new ExtensionDefinition(); + copyValues(dst); + dst.url = url == null ? null : url.copy(); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.name = name == null ? null : name.copy(); + dst.display = display == null ? null : display.copy(); + dst.publisher = publisher == null ? null : publisher.copy(); + if (telecom != null) { + dst.telecom = new ArrayList(); + for (ContactPoint i : telecom) + dst.telecom.add(i.copy()); + }; + dst.description = description == null ? null : description.copy(); + if (code != null) { + dst.code = new ArrayList(); + for (Coding i : code) + dst.code.add(i.copy()); + }; + dst.status = status == null ? null : status.copy(); + dst.experimental = experimental == null ? null : experimental.copy(); + dst.date = date == null ? null : date.copy(); + dst.requirements = requirements == null ? null : requirements.copy(); + if (mapping != null) { + dst.mapping = new ArrayList(); + for (ExtensionDefinitionMappingComponent i : mapping) + dst.mapping.add(i.copy()); + }; + dst.contextType = contextType == null ? null : contextType.copy(); + if (context != null) { + dst.context = new ArrayList(); + for (StringType i : context) + dst.context.add(i.copy()); + }; + if (element != null) { + dst.element = new ArrayList(); + for (ElementDefinition i : element) + dst.element.add(i.copy()); + }; + return dst; + } + + protected ExtensionDefinition typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ExtensionDefinition)) + return false; + ExtensionDefinition o = (ExtensionDefinition) other; + return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(name, o.name, true) + && compareDeep(display, o.display, true) && compareDeep(publisher, o.publisher, true) && compareDeep(telecom, o.telecom, true) + && compareDeep(description, o.description, true) && compareDeep(code, o.code, true) && compareDeep(status, o.status, true) + && compareDeep(experimental, o.experimental, true) && compareDeep(date, o.date, true) && compareDeep(requirements, o.requirements, true) + && compareDeep(mapping, o.mapping, true) && compareDeep(contextType, o.contextType, true) && compareDeep(context, o.context, true) + && compareDeep(element, o.element, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ExtensionDefinition)) + return false; + ExtensionDefinition o = (ExtensionDefinition) other; + return compareValues(url, o.url, true) && compareValues(name, o.name, true) && compareValues(display, o.display, true) + && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true) && compareValues(status, o.status, true) + && compareValues(experimental, o.experimental, true) && compareValues(date, o.date, true) && compareValues(requirements, o.requirements, true) + && compareValues(contextType, o.contextType, true) && compareValues(context, o.context, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (url == null || url.isEmpty()) && (identifier == null || identifier.isEmpty()) + && (name == null || name.isEmpty()) && (display == null || display.isEmpty()) && (publisher == null || publisher.isEmpty()) + && (telecom == null || telecom.isEmpty()) && (description == null || description.isEmpty()) + && (code == null || code.isEmpty()) && (status == null || status.isEmpty()) && (experimental == null || experimental.isEmpty()) + && (date == null || date.isEmpty()) && (requirements == null || requirements.isEmpty()) && (mapping == null || mapping.isEmpty()) + && (contextType == null || contextType.isEmpty()) && (context == null || context.isEmpty()) + && (element == null || element.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.ExtensionDefinition; + } + + @SearchParamDefinition(name="valueset", path="ExtensionDefinition.element.binding.reference[x]", description="Source of value set", type="reference" ) + public static final String SP_VALUESET = "valueset"; + @SearchParamDefinition(name="status", path="ExtensionDefinition.status", description="draft | active | retired", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="description", path="ExtensionDefinition.description", description="Natural language description of the extension", type="string" ) + public static final String SP_DESCRIPTION = "description"; + @SearchParamDefinition(name="name", path="ExtensionDefinition.name", description="Descriptional name for this profile", type="string" ) + public static final String SP_NAME = "name"; + @SearchParamDefinition(name="code", path="ExtensionDefinition.code", description="Assist with indexing and finding", type="token" ) + public static final String SP_CODE = "code"; + @SearchParamDefinition(name="date", path="ExtensionDefinition.date", description="Date for this version of the extension", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="identifier", path="ExtensionDefinition.identifier", description="Other identifiers for the extension", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + @SearchParamDefinition(name="url", path="ExtensionDefinition.url", description="Literal URL used to reference this extension", type="token" ) + public static final String SP_URL = "url"; + @SearchParamDefinition(name="publisher", path="ExtensionDefinition.publisher", description="Name of the publisher (Organization or individual)", type="string" ) + public static final String SP_PUBLISHER = "publisher"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionHelper.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..f909ad5ee6d4465dd80193b09e9342a28447a890 GIT binary patch literal 3597 zcma)9TW?fV6#jNQoim-Dwsd+2fsq3CKA=#bEsDh{ExjQvMT#hAI;ZWlb17%eRPb(M zj1i)5Bqi~|r~1%`nrIP76kjmG2NQmQ&%T+M7)=$wea>959j8h6-e;e+*8bM|)>`|_ z!+-962jDpvZaj@H1xMWQ;;0+P&@G3aGW6nj8J@=rayX&jMK?;(=f+9AZhdAfPz5hhxU9Z!Ubq zH!~M9e4%LE)S}b6FGBsW&mYz!derP0p4XN%Us#LI`o>Ko6rJs9nGz@;H?`@75pB`3 zt>C;sUw(Uiln=zBdVag=tZrsuyqw==9$Wc+OGTkaU@rd=1;8%&C^eqr+@<^{r<|Mm zF9Uf`oVd2A_q0qh1qIyxtJC_TNxtLcESrBmHy3ukq}x3nOBmC7e@Nz0O`4zqJ-nzJ zoiamI>_L-2TfUTfB9IhIxqtDnO!@>`x2pWP&Wh`{Du)Tyjn2Gy!Yy9FY{@V?2HlEmWlaTU|yd#1w7VP!VHCdgQjk1W{eCp<)z++W;H%0si(QcE)~nh zFxg;vS7fZp9RXJ;ZM-f=A$2H~6jsV8yp;kbp8;#Dq6?!YN9(tZbuz%q7n;S#uy($Th#b-342 zwu}dNC^idSj3$U1pH&jhxi3{|M%HQ&T>A8OHuI*gzmV`#uxG@_YOm2lQnhz*n~ zXxaT24M@1HNw|-aa7{w1CA2CcQg0FRI?7WBD+)$Pt;&Lhv)t*VBVgp~81n`?bC{t# zL5KQ?)X&fc=tu-Dh!MBJUM$^efU7Rcs~rE@(Ek5)Y+HMR4zWi31<}#5MmoeAQDoC` zh+Z5f5l863QKCOa{N1FZhjjFkj^kU=!OJBH_opNskt}GWqr`$%5Dyl#LV0-751R)+ zQ>LGZbqbvrpcjMm;55HThj0lW&jQaGdg zXhpOYcR6e*!5k=-lvRwwQa%aA+1}_(K{>eN7MkwCbKxGUFWg3rr*<86?fm!Db67{i zZ8U!0=w$tFKkw*rtUS(SR(B!Rm$$IKV+-rG>?W7)p_EvjB8;8#;O>$g%jlKFfFDL<#*GY(D4z|tD?VAFSy=-Ujbj0rr+l7 z@Hf_hsz2$;L3-t24SLudpXE<9yO*EgEZcsQoh93uK@4=c9jx+YD2^34tS0VQO^2ug c#av%!w%@=md}_f|;Akj5K~n;UEWyM70xvR)Hvj+t literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ExtensionHelper.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionHelper.java similarity index 88% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ExtensionHelper.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionHelper.java index 42e7ce5bee4..103d1440020 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ExtensionHelper.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ExtensionHelper.java @@ -1,167 +1,146 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/** - * in a language with helper classes, this would be a helper class (at least, the base exgtension helpers would be) - * @author Grahame - * - */ -public class ExtensionHelper { - - - /** - * @param name the identity of the extension of interest - * @return true if the named extension is on this element. Will check modifier extensions too if appropriate - */ - public static boolean hasExtension(Element element, String name) { - if (element != null && element instanceof BackboneElement) - return hasExtension((BackboneElement) element, name); - - if (name == null || element == null || !element.hasExtension()) - return false; - for (Extension e : element.getExtension()) { - if (name.equals(e.getUrl())) - return true; - } - return false; - } - - /** - * @param name the identity of the extension of interest - * @return true if the named extension is on this element. Will check modifier extensions - */ - public static boolean hasExtension(BackboneElement element, String name) { - if (name == null || element == null || !(element.hasExtension() || element.hasModifierExtension())) - return false; - for (Extension e : element.getModifierExtension()) { - if (name.equals(e.getUrl())) - return true; - } - for (Extension e : element.getExtension()) { - if (name.equals(e.getUrl())) - return true; - } - return false; - } - - - /** - * @param name the identity of the extension of interest - * @return The extension, if on this element, else null. will check modifier extensions too, if appropriate - */ - public static Extension getExtension(Element element, String name) { - if (element != null && element instanceof BackboneElement) - return getExtension((BackboneElement) element, name); - - if (name == null || element == null || !element.hasExtension()) - return null; - for (Extension e : element.getExtension()) { - if (name.equals(e.getUrl())) - return e; - } - return null; - } - - /** - * @param name the identity of the extension of interest - * @return The extension, if on this element, else null. will check modifier extensions too - */ - public static Extension getExtension(BackboneElement element, String name) { - if (name == null || element == null || !element.hasExtension()) - return null; - for (Extension e : element.getModifierExtension()) { - if (name.equals(e.getUrl())) - return e; - } - for (Extension e : element.getExtension()) { - if (name.equals(e.getUrl())) - return e; - } - return null; - } - - /** - * set the value of an extension on the element. if value == null, make sure it doesn't exist - * - * @param element - the element to act on. Can also be a backbone element - * @param modifier - whether this is a modifier. Note that this is a definitional property of the extension; don't alternate - * @param uri - the identifier for the extension - * @param value - the value of the extension. Delete if this is null - * @throws Exception - if the modifier logic is incorrect - */ - public static void setExtension(Element element, boolean modifier, String uri, Type value) throws Exception { - if (value == null) { - // deleting the extension - if (element instanceof BackboneElement) - for (Extension e : ((BackboneElement) element).getModifierExtension()) { - if (uri.equals(e.getUrl())) - ((BackboneElement) element).getModifierExtension().remove(e); - } - for (Extension e : element.getExtension()) { - if (uri.equals(e.getUrl())) - element.getExtension().remove(e); - } - } else { - // it would probably be easier to delete and then create, but this would re-order the extensions - // not that order matters, but we'll preserve it anyway - boolean found = false; - if (element instanceof BackboneElement) - for (Extension e : ((BackboneElement) element).getModifierExtension()) { - if (uri.equals(e.getUrl())) { - if (!modifier) - throw new Exception("Error adding extension \""+uri+"\": found an existing modifier extension, and the extension is not marked as a modifier"); - e.setValue(value); - found = true; - } - } - for (Extension e : element.getExtension()) { - if (uri.equals(e.getUrl())) { - if (modifier) - throw new Exception("Error adding extension \""+uri+"\": found an existing extension, and the extension is marked as a modifier"); - e.setValue(value); - found = true; - } - } - if (!found) { - Extension ex = new Extension().setUrl(uri).setValue(value); - if (modifier) { - if (!(element instanceof BackboneElement)) - throw new Exception("Error adding extension \""+uri+"\": extension is marked as a modifier, but element is not a backbone element"); - ((BackboneElement) element).getModifierExtension().add(ex); - - } else { - element.getExtension().add(ex); - } - } - } - } - - public static boolean hasExtensions(Element element) { - if (element instanceof BackboneElement) - return element.hasExtension() || ((BackboneElement) element).hasModifierExtension(); - else - return element.hasExtension(); - } - - -} +package org.hl7.fhir.instance.model; + +/** + * in a language with helper classes, this would be a helper class (at least, the base exgtension helpers would be) + * @author Grahame + * + */ +public class ExtensionHelper { + + + /** + * @param name the identity of the extension of interest + * @return true if the named extension is on this element. Will check modifier extensions too if appropriate + */ + public static boolean hasExtension(Element element, String name) { + if (element != null && element instanceof BackboneElement) + return hasExtension((BackboneElement) element, name); + + if (name == null || element == null || !element.hasExtension()) + return false; + for (Extension e : element.getExtension()) { + if (name.equals(e.getUrl())) + return true; + } + return false; + } + + /** + * @param name the identity of the extension of interest + * @return true if the named extension is on this element. Will check modifier extensions + */ + public static boolean hasExtension(BackboneElement element, String name) { + if (name == null || element == null || !(element.hasExtension() || element.hasModifierExtension())) + return false; + for (Extension e : element.getModifierExtension()) { + if (name.equals(e.getUrl())) + return true; + } + for (Extension e : element.getExtension()) { + if (name.equals(e.getUrl())) + return true; + } + return false; + } + + + /** + * @param name the identity of the extension of interest + * @return The extension, if on this element, else null. will check modifier extensions too, if appropriate + */ + public static Extension getExtension(Element element, String name) { + if (element != null && element instanceof BackboneElement) + return getExtension((BackboneElement) element, name); + + if (name == null || element == null || !element.hasExtension()) + return null; + for (Extension e : element.getExtension()) { + if (name.equals(e.getUrl())) + return e; + } + return null; + } + + /** + * @param name the identity of the extension of interest + * @return The extension, if on this element, else null. will check modifier extensions too + */ + public static Extension getExtension(BackboneElement element, String name) { + if (name == null || element == null || !element.hasExtension()) + return null; + for (Extension e : element.getModifierExtension()) { + if (name.equals(e.getUrl())) + return e; + } + for (Extension e : element.getExtension()) { + if (name.equals(e.getUrl())) + return e; + } + return null; + } + + /** + * set the value of an extension on the element. if value == null, make sure it doesn't exist + * + * @param element - the element to act on. Can also be a backbone element + * @param modifier - whether this is a modifier. Note that this is a definitional property of the extension; don't alternate + * @param uri - the identifier for the extension + * @param value - the value of the extension. Delete if this is null + * @throws Exception - if the modifier logic is incorrect + */ + public static void setExtension(Element element, boolean modifier, String uri, Type value) throws Exception { + if (value == null) { + // deleting the extension + if (element instanceof BackboneElement) + for (Extension e : ((BackboneElement) element).getModifierExtension()) { + if (uri.equals(e.getUrl())) + ((BackboneElement) element).getModifierExtension().remove(e); + } + for (Extension e : element.getExtension()) { + if (uri.equals(e.getUrl())) + element.getExtension().remove(e); + } + } else { + // it would probably be easier to delete and then create, but this would re-order the extensions + // not that order matters, but we'll preserve it anyway + boolean found = false; + if (element instanceof BackboneElement) + for (Extension e : ((BackboneElement) element).getModifierExtension()) { + if (uri.equals(e.getUrl())) { + if (!modifier) + throw new Exception("Error adding extension \""+uri+"\": found an existing modifier extension, and the extension is not marked as a modifier"); + e.setValue(value); + found = true; + } + } + for (Extension e : element.getExtension()) { + if (uri.equals(e.getUrl())) { + if (modifier) + throw new Exception("Error adding extension \""+uri+"\": found an existing extension, and the extension is marked as a modifier"); + e.setValue(value); + found = true; + } + } + if (!found) { + Extension ex = new Extension().setUrl(uri).setValue(value); + if (modifier) { + if (!(element instanceof BackboneElement)) + throw new Exception("Error adding extension \""+uri+"\": extension is marked as a modifier, but element is not a backbone element"); + ((BackboneElement) element).getModifierExtension().add(ex); + + } else { + element.getExtension().add(ex); + } + } + } + } + + public static boolean hasExtensions(Element element) { + if (element instanceof BackboneElement) + return element.hasExtension() || ((BackboneElement) element).hasModifierExtension(); + else + return element.hasExtension(); + } + + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Factory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Factory.class new file mode 100644 index 0000000000000000000000000000000000000000..d77892174ced35652b3f8c1a3423aadd9a4ddd74 GIT binary patch literal 5594 zcmbVQ`Ck<09e!S}fpHZ@B|@TZl)%aYYcyV9(0HX(zylD`R5P#xjPB0T*#V(3ciJRv zbF@v;#H5Km)4Qg}YO*cqoi@Gyp!U<}otfPouG!%J@V@iD^L?N1^F7}0`|f=FzYk^s z?8JXm9EPPJt)c{$Y-|OSD$3=cTn?sGRLVi699&Vc0@Dg+RIHT!=Tub7m(}v+BPwd- z;3^)KPn>y7MXj8998bt6&OE82Ue46xDcL-&;29O0 zJTIFs%H~V*-IrJ31-z)>B^6OA5XH+1zM`T{4%+Zl1z%HfuY`C-rHxi4UX}f8D!z`_ zEAfULT$2)SO7XWU@eLJk;~fRpEAh=rd`m?qzOCRp3cf2)vEMKayHlVvvh9pO+2K@N z7pU$wOuct9Ijmd#+Hit1<)(h6D=x4%(tSyr(qakC9Ed9`D| z$#k+$rVNuC@B0EZhf{@_zL~VGCj~-Xrm0(p6Iwd0rv)B~1g5GVp}{|J;X0O^`hEy* zfDmaPowju|%@h;3ut*97(sQgY;;1}6_0>3TitBO*lZwo30evy83%2y~EuEuA?)Id1 zSwF3h>XuH;0v(I!4UTz!vFEy8&9XGxn9>#efF&wFWLdE%8C)wkxOw@8{FA$K*UD=`FhddC7)|Z;JM)YHbEV-d$%G_#J*f-(QoqkuYpSPsgUm?PMZ$R<LMC6Mkszp&&BRHk+NjFy<>PCekS->#8G z&ij*=kz`6t<*pm+{Rp|MBk!DR3eL;lMwBV3^~9(^t-O~kkYMHYEz92{YUMqmAneUk zxQd44?gU2gIpN>xi@3Om(f-xcJLj5|vpMjPp9fGu;saLVcFxay`5}+v!8SWLi{R7P zkEW26ELA+P_;keGF?8~nGwmFOH4!fmvM|KDjkHY`tDMl}XZWW>i}OFloW#hb);S)4 z1kaZ!FNWS(|8TH9OD1}e=;hauY=t&4p_`=Fx>(-&vdj&uSJJpJJZB3Q3gbYoMA8&J zJ)%wMXOj$U<0pbAZl#@aRSB%idDs6pjCZaHS#Xb8+E`LIS%W^opQ-{qU)}CyY^4XB z;7$pgn&<7M7X{~#-@U$)nX{^#mDeEcro}w6NPWWHIK=<=^0yj7UXa)x<7gv$!M?ot zCd7Mu5O|Png)`ZVDtroEe3qgQ@|!>j``YG@P%ds{Q8IKBrQOly49W(hH~6N+SzF7` z1wbpx_?Nl@F|5LNtmA*|Pjj{uqJp5u(Y+LCIYBENP-P+LE`shR=pKUZCFnjsXb*bH zU{R)(1g&yF)rFw<6SR|{2MBtQpbr#4PmppMnVux)Q#kFx@0DioO?A!@D~9O3P{9MM zC;+;+jBG0Clf30QyguUfV_+$~l@f2&e7xht>n2{$;&^8;xRg(;Y5r=*{51>BKSkKn zgzcmG{WO1|0AGc(81g`OlB|sW+AL}ax3)W4e+%m}SnndbY2z9`#7{)$umdL6Baj>q8+M3w4WDpr_&0t$y+52cNflI(OX%iG;JW2wO z(JhZt`4iZTC(($fumexe(LIVWPxp5AG7nZ~5v9%+C#_l+y8Bt;K1WwQKL=+Vmpz;d zbeD8|dlqfPi8+qnKG>4Qy&UeyVkf)%YIbF?J9-Oy*wyT1lfk|W+B4`_7@QZV@kMHU ziKXG?Ia(78oExTDPwVC8n*ABv-|acBCpuex9kngd(jC%oEzvUejf3yvNOZR1IyTLJ z(Go4EK!gHYv*;Ykkv%|y^#AUfgD%sXc;G`Phuq9=<0n(#6}tUZekXkm>-iOOBVI=Y zZ?IHeV`Y1jh3G97+_#yf?>Jeo5~cq|M1iRw72fQ#s)PwBEAD5xO~B+S!3BOsy?C&W LOWSbiVBP-#SqcKf literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Factory.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Factory.java new file mode 100644 index 00000000000..3b1629019d0 --- /dev/null +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Factory.java @@ -0,0 +1,162 @@ +package org.hl7.fhir.instance.model; + +import java.net.URISyntaxException; +import java.text.ParseException; + +import org.hl7.fhir.instance.model.ContactPoint.ContactPointSystem; +import org.hl7.fhir.instance.model.Narrative.NarrativeStatus; +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.utilities.xhtml.XhtmlParser; + +/* +Copyright (c) 2011+, HL7, Inc +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +*/ + + + +public class Factory { + + public static IdType newId(String value) { + if (value == null) + return null; + IdType res = new IdType(); + res.setValue(value); + return res; + } + + public static StringType newString_(String value) { + if (value == null) + return null; + StringType res = new StringType(); + res.setValue(value); + return res; + } + + public static UriType newUri(String value) throws URISyntaxException { + if (value == null) + return null; + UriType res = new UriType(); + res.setValue(value); + return res; + } + + public static DateTimeType newDateTime(String value) throws ParseException { + if (value == null) + return null; + return new DateTimeType(value); + } + + public static DateType newDate(String value) throws ParseException { + if (value == null) + return null; + return new DateType(value); + } + + public static CodeType newCode(String value) { + if (value == null) + return null; + CodeType res = new CodeType(); + res.setValue(value); + return res; + } + + public static IntegerType newInteger(int value) { + IntegerType res = new IntegerType(); + res.setValue(value); + return res; + } + + public static IntegerType newInteger(java.lang.Integer value) { + if (value == null) + return null; + IntegerType res = new IntegerType(); + res.setValue(value); + return res; + } + + public static BooleanType newBoolean(boolean value) { + BooleanType res = new BooleanType(); + res.setValue(value); + return res; + } + + public static ContactPoint newContactPoint(ContactPointSystem system, String value) { + ContactPoint res = new ContactPoint(); + res.setSystem(system); + res.setValue(value); + return res; + } + + public static Extension newExtension(String uri, Type value, boolean evenIfNull) throws Exception { + if (!evenIfNull && value == null) + return null; + Extension e = new Extension(); + e.setUrl(uri); + e.setValue(value); + return e; + } + + public static CodeableConcept newCodeableConcept(String code, String system, String display) throws Exception { + CodeableConcept cc = new CodeableConcept(); + Coding c = new Coding(); + c.setCode(code); + c.setSystem(system); + c.setDisplay(display); + cc.getCoding().add(c); + return cc; + } + + public static Reference makeReference(String url) throws Exception { + Reference rr = new Reference(); + rr.setReference(url); + return rr; + } + + public static Narrative newNarrative(NarrativeStatus status, String html) throws Exception { + Narrative n = new Narrative(); + n.setStatus(status); + n.setDiv(new XhtmlParser().parseFragment("
    "+Utilities.escapeXml(html)+"
    ")); + return n; + } + +public static Coding makeCoding(String code) throws Exception { + String[] parts = code.split("\\|"); + Coding c = new Coding(); + if (parts.length == 2) { + c.setSystem(parts[0]); + c.setCode(parts[1]); + } else if (parts.length == 3) { + c.setSystem(parts[0]); + c.setCode(parts[1]); + c.setDisplay(parts[2]); + } else + throw new Exception("Unable to understand the code '"+code+"'. Use the format system|code(|display)"); + return c; +} + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/FamilyHistory$FamilyHistoryRelationComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/FamilyHistory$FamilyHistoryRelationComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..a5b2ae7121a144597474c7535aff36075bbbfc9d GIT binary patch literal 12828 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 BUHJe2 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/FamilyHistory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/FamilyHistory.class new file mode 100644 index 0000000000000000000000000000000000000000..6243c7655afa67717db1a0aa202ed08030d6c2dd GIT binary patch literal 10086 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 F{{yyNmE!;a literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/FamilyHistory.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/FamilyHistory.java similarity index 91% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/FamilyHistory.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/FamilyHistory.java index 7e180884c94..b6a55c8ba18 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/FamilyHistory.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/FamilyHistory.java @@ -1,986 +1,1029 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Significant health events and conditions for people related to the subject relevant in the context of care for the subject. - */ -@ResourceDef(name="FamilyHistory", profile="http://hl7.org/fhir/Profile/FamilyHistory") -public class FamilyHistory extends DomainResource { - - @Block() - public static class FamilyHistoryRelationComponent extends BackboneElement { - /** - * This will either be a name or a description. E.g. "Aunt Susan", "my cousin with the red hair". - */ - @Child(name="name", type={StringType.class}, order=1, min=0, max=1) - @Description(shortDefinition="The family member described", formalDefinition="This will either be a name or a description. E.g. 'Aunt Susan', 'my cousin with the red hair'." ) - protected StringType name; - - /** - * The type of relationship this person has to the patient (father, mother, brother etc.). - */ - @Child(name="relationship", type={CodeableConcept.class}, order=2, min=1, max=1) - @Description(shortDefinition="Relationship to the subject", formalDefinition="The type of relationship this person has to the patient (father, mother, brother etc.)." ) - protected CodeableConcept relationship; - - /** - * The actual or approximate date of birth of the relative. - */ - @Child(name="born", type={Period.class, DateType.class, StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="(approximate) date of birth", formalDefinition="The actual or approximate date of birth of the relative." ) - protected Type born; - - /** - * The actual or approximate age of the relative at the time the family history is recorded. - */ - @Child(name="age", type={Age.class, Range.class, StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="(approximate) age", formalDefinition="The actual or approximate age of the relative at the time the family history is recorded." ) - protected Type age; - - /** - * If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set. - */ - @Child(name="deceased", type={BooleanType.class, Age.class, Range.class, DateType.class, StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Dead? How old/when?", formalDefinition="If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set." ) - protected Type deceased; - - /** - * This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible. - */ - @Child(name="note", type={StringType.class}, order=6, min=0, max=1) - @Description(shortDefinition="General note about related person", formalDefinition="This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible." ) - protected StringType note; - - /** - * The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition. - */ - @Child(name="condition", type={}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Condition that the related person had", formalDefinition="The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition." ) - protected List condition; - - private static final long serialVersionUID = 211772865L; - - public FamilyHistoryRelationComponent() { - super(); - } - - public FamilyHistoryRelationComponent(CodeableConcept relationship) { - super(); - this.relationship = relationship; - } - - /** - * @return {@link #name} (This will either be a name or a description. E.g. "Aunt Susan", "my cousin with the red hair".). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create FamilyHistoryRelationComponent.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (This will either be a name or a description. E.g. "Aunt Susan", "my cousin with the red hair".). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public FamilyHistoryRelationComponent setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return This will either be a name or a description. E.g. "Aunt Susan", "my cousin with the red hair". - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value This will either be a name or a description. E.g. "Aunt Susan", "my cousin with the red hair". - */ - public FamilyHistoryRelationComponent setName(String value) { - if (Utilities.noString(value)) - this.name = null; - else { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - } - return this; - } - - /** - * @return {@link #relationship} (The type of relationship this person has to the patient (father, mother, brother etc.).) - */ - public CodeableConcept getRelationship() { - if (this.relationship == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create FamilyHistoryRelationComponent.relationship"); - else if (Configuration.doAutoCreate()) - this.relationship = new CodeableConcept(); - return this.relationship; - } - - public boolean hasRelationship() { - return this.relationship != null && !this.relationship.isEmpty(); - } - - /** - * @param value {@link #relationship} (The type of relationship this person has to the patient (father, mother, brother etc.).) - */ - public FamilyHistoryRelationComponent setRelationship(CodeableConcept value) { - this.relationship = value; - return this; - } - - /** - * @return {@link #born} (The actual or approximate date of birth of the relative.) - */ - public Type getBorn() { - return this.born; - } - - /** - * @return {@link #born} (The actual or approximate date of birth of the relative.) - */ - public Period getBornPeriod() throws Exception { - if (!(this.born instanceof Period)) - throw new Exception("Type mismatch: the type Period was expected, but "+this.born.getClass().getName()+" was encountered"); - return (Period) this.born; - } - - /** - * @return {@link #born} (The actual or approximate date of birth of the relative.) - */ - public DateType getBornDateType() throws Exception { - if (!(this.born instanceof DateType)) - throw new Exception("Type mismatch: the type DateType was expected, but "+this.born.getClass().getName()+" was encountered"); - return (DateType) this.born; - } - - /** - * @return {@link #born} (The actual or approximate date of birth of the relative.) - */ - public StringType getBornStringType() throws Exception { - if (!(this.born instanceof StringType)) - throw new Exception("Type mismatch: the type StringType was expected, but "+this.born.getClass().getName()+" was encountered"); - return (StringType) this.born; - } - - public boolean hasBorn() { - return this.born != null && !this.born.isEmpty(); - } - - /** - * @param value {@link #born} (The actual or approximate date of birth of the relative.) - */ - public FamilyHistoryRelationComponent setBorn(Type value) { - this.born = value; - return this; - } - - /** - * @return {@link #age} (The actual or approximate age of the relative at the time the family history is recorded.) - */ - public Type getAge() { - return this.age; - } - - /** - * @return {@link #age} (The actual or approximate age of the relative at the time the family history is recorded.) - */ - public Age getAgeAge() throws Exception { - if (!(this.age instanceof Age)) - throw new Exception("Type mismatch: the type Age was expected, but "+this.age.getClass().getName()+" was encountered"); - return (Age) this.age; - } - - /** - * @return {@link #age} (The actual or approximate age of the relative at the time the family history is recorded.) - */ - public Range getAgeRange() throws Exception { - if (!(this.age instanceof Range)) - throw new Exception("Type mismatch: the type Range was expected, but "+this.age.getClass().getName()+" was encountered"); - return (Range) this.age; - } - - /** - * @return {@link #age} (The actual or approximate age of the relative at the time the family history is recorded.) - */ - public StringType getAgeStringType() throws Exception { - if (!(this.age instanceof StringType)) - throw new Exception("Type mismatch: the type StringType was expected, but "+this.age.getClass().getName()+" was encountered"); - return (StringType) this.age; - } - - public boolean hasAge() { - return this.age != null && !this.age.isEmpty(); - } - - /** - * @param value {@link #age} (The actual or approximate age of the relative at the time the family history is recorded.) - */ - public FamilyHistoryRelationComponent setAge(Type value) { - this.age = value; - return this; - } - - /** - * @return {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) - */ - public Type getDeceased() { - return this.deceased; - } - - /** - * @return {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) - */ - public BooleanType getDeceasedBooleanType() throws Exception { - if (!(this.deceased instanceof BooleanType)) - throw new Exception("Type mismatch: the type BooleanType was expected, but "+this.deceased.getClass().getName()+" was encountered"); - return (BooleanType) this.deceased; - } - - /** - * @return {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) - */ - public Age getDeceasedAge() throws Exception { - if (!(this.deceased instanceof Age)) - throw new Exception("Type mismatch: the type Age was expected, but "+this.deceased.getClass().getName()+" was encountered"); - return (Age) this.deceased; - } - - /** - * @return {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) - */ - public Range getDeceasedRange() throws Exception { - if (!(this.deceased instanceof Range)) - throw new Exception("Type mismatch: the type Range was expected, but "+this.deceased.getClass().getName()+" was encountered"); - return (Range) this.deceased; - } - - /** - * @return {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) - */ - public DateType getDeceasedDateType() throws Exception { - if (!(this.deceased instanceof DateType)) - throw new Exception("Type mismatch: the type DateType was expected, but "+this.deceased.getClass().getName()+" was encountered"); - return (DateType) this.deceased; - } - - /** - * @return {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) - */ - public StringType getDeceasedStringType() throws Exception { - if (!(this.deceased instanceof StringType)) - throw new Exception("Type mismatch: the type StringType was expected, but "+this.deceased.getClass().getName()+" was encountered"); - return (StringType) this.deceased; - } - - public boolean hasDeceased() { - return this.deceased != null && !this.deceased.isEmpty(); - } - - /** - * @param value {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) - */ - public FamilyHistoryRelationComponent setDeceased(Type value) { - this.deceased = value; - return this; - } - - /** - * @return {@link #note} (This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value - */ - public StringType getNoteElement() { - if (this.note == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create FamilyHistoryRelationComponent.note"); - else if (Configuration.doAutoCreate()) - this.note = new StringType(); - return this.note; - } - - public boolean hasNoteElement() { - return this.note != null && !this.note.isEmpty(); - } - - public boolean hasNote() { - return this.note != null && !this.note.isEmpty(); - } - - /** - * @param value {@link #note} (This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value - */ - public FamilyHistoryRelationComponent setNoteElement(StringType value) { - this.note = value; - return this; - } - - /** - * @return This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible. - */ - public String getNote() { - return this.note == null ? null : this.note.getValue(); - } - - /** - * @param value This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible. - */ - public FamilyHistoryRelationComponent setNote(String value) { - if (Utilities.noString(value)) - this.note = null; - else { - if (this.note == null) - this.note = new StringType(); - this.note.setValue(value); - } - return this; - } - - /** - * @return {@link #condition} (The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.) - */ - public List getCondition() { - if (this.condition == null) - this.condition = new ArrayList(); - return this.condition; - } - - public boolean hasCondition() { - if (this.condition == null) - return false; - for (FamilyHistoryRelationConditionComponent item : this.condition) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #condition} (The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.) - */ - // syntactic sugar - public FamilyHistoryRelationConditionComponent addCondition() { //3 - FamilyHistoryRelationConditionComponent t = new FamilyHistoryRelationConditionComponent(); - if (this.condition == null) - this.condition = new ArrayList(); - this.condition.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("name", "string", "This will either be a name or a description. E.g. 'Aunt Susan', 'my cousin with the red hair'.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("relationship", "CodeableConcept", "The type of relationship this person has to the patient (father, mother, brother etc.).", 0, java.lang.Integer.MAX_VALUE, relationship)); - childrenList.add(new Property("born[x]", "Period|date|string", "The actual or approximate date of birth of the relative.", 0, java.lang.Integer.MAX_VALUE, born)); - childrenList.add(new Property("age[x]", "Age|Range|string", "The actual or approximate age of the relative at the time the family history is recorded.", 0, java.lang.Integer.MAX_VALUE, age)); - childrenList.add(new Property("deceased[x]", "boolean|Age|Range|date|string", "If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.", 0, java.lang.Integer.MAX_VALUE, deceased)); - childrenList.add(new Property("note", "string", "This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.", 0, java.lang.Integer.MAX_VALUE, note)); - childrenList.add(new Property("condition", "", "The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.", 0, java.lang.Integer.MAX_VALUE, condition)); - } - - public FamilyHistoryRelationComponent copy() { - FamilyHistoryRelationComponent dst = new FamilyHistoryRelationComponent(); - copyValues(dst); - dst.name = name == null ? null : name.copy(); - dst.relationship = relationship == null ? null : relationship.copy(); - dst.born = born == null ? null : born.copy(); - dst.age = age == null ? null : age.copy(); - dst.deceased = deceased == null ? null : deceased.copy(); - dst.note = note == null ? null : note.copy(); - if (condition != null) { - dst.condition = new ArrayList(); - for (FamilyHistoryRelationConditionComponent i : condition) - dst.condition.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (name == null || name.isEmpty()) && (relationship == null || relationship.isEmpty()) - && (born == null || born.isEmpty()) && (age == null || age.isEmpty()) && (deceased == null || deceased.isEmpty()) - && (note == null || note.isEmpty()) && (condition == null || condition.isEmpty()); - } - - } - - @Block() - public static class FamilyHistoryRelationConditionComponent extends BackboneElement { - /** - * The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system. - */ - @Child(name="type", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="Condition suffered by relation", formalDefinition="The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system." ) - protected CodeableConcept type; - - /** - * Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation. - */ - @Child(name="outcome", type={CodeableConcept.class}, order=2, min=0, max=1) - @Description(shortDefinition="deceased | permanent disability | etc.", formalDefinition="Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation." ) - protected CodeableConcept outcome; - - /** - * Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence. - */ - @Child(name="onset", type={Age.class, Range.class, StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="When condition first manifested", formalDefinition="Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence." ) - protected Type onset; - - /** - * An area where general notes can be placed about this specific condition. - */ - @Child(name="note", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Extra information about condition", formalDefinition="An area where general notes can be placed about this specific condition." ) - protected StringType note; - - private static final long serialVersionUID = -1664709272L; - - public FamilyHistoryRelationConditionComponent() { - super(); - } - - public FamilyHistoryRelationConditionComponent(CodeableConcept type) { - super(); - this.type = type; - } - - /** - * @return {@link #type} (The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system.) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create FamilyHistoryRelationConditionComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system.) - */ - public FamilyHistoryRelationConditionComponent setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #outcome} (Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation.) - */ - public CodeableConcept getOutcome() { - if (this.outcome == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create FamilyHistoryRelationConditionComponent.outcome"); - else if (Configuration.doAutoCreate()) - this.outcome = new CodeableConcept(); - return this.outcome; - } - - public boolean hasOutcome() { - return this.outcome != null && !this.outcome.isEmpty(); - } - - /** - * @param value {@link #outcome} (Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation.) - */ - public FamilyHistoryRelationConditionComponent setOutcome(CodeableConcept value) { - this.outcome = value; - return this; - } - - /** - * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) - */ - public Type getOnset() { - return this.onset; - } - - /** - * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) - */ - public Age getOnsetAge() throws Exception { - if (!(this.onset instanceof Age)) - throw new Exception("Type mismatch: the type Age was expected, but "+this.onset.getClass().getName()+" was encountered"); - return (Age) this.onset; - } - - /** - * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) - */ - public Range getOnsetRange() throws Exception { - if (!(this.onset instanceof Range)) - throw new Exception("Type mismatch: the type Range was expected, but "+this.onset.getClass().getName()+" was encountered"); - return (Range) this.onset; - } - - /** - * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) - */ - public StringType getOnsetStringType() throws Exception { - if (!(this.onset instanceof StringType)) - throw new Exception("Type mismatch: the type StringType was expected, but "+this.onset.getClass().getName()+" was encountered"); - return (StringType) this.onset; - } - - public boolean hasOnset() { - return this.onset != null && !this.onset.isEmpty(); - } - - /** - * @param value {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) - */ - public FamilyHistoryRelationConditionComponent setOnset(Type value) { - this.onset = value; - return this; - } - - /** - * @return {@link #note} (An area where general notes can be placed about this specific condition.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value - */ - public StringType getNoteElement() { - if (this.note == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create FamilyHistoryRelationConditionComponent.note"); - else if (Configuration.doAutoCreate()) - this.note = new StringType(); - return this.note; - } - - public boolean hasNoteElement() { - return this.note != null && !this.note.isEmpty(); - } - - public boolean hasNote() { - return this.note != null && !this.note.isEmpty(); - } - - /** - * @param value {@link #note} (An area where general notes can be placed about this specific condition.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value - */ - public FamilyHistoryRelationConditionComponent setNoteElement(StringType value) { - this.note = value; - return this; - } - - /** - * @return An area where general notes can be placed about this specific condition. - */ - public String getNote() { - return this.note == null ? null : this.note.getValue(); - } - - /** - * @param value An area where general notes can be placed about this specific condition. - */ - public FamilyHistoryRelationConditionComponent setNote(String value) { - if (Utilities.noString(value)) - this.note = null; - else { - if (this.note == null) - this.note = new StringType(); - this.note.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "CodeableConcept", "The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("outcome", "CodeableConcept", "Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation.", 0, java.lang.Integer.MAX_VALUE, outcome)); - childrenList.add(new Property("onset[x]", "Age|Range|string", "Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.", 0, java.lang.Integer.MAX_VALUE, onset)); - childrenList.add(new Property("note", "string", "An area where general notes can be placed about this specific condition.", 0, java.lang.Integer.MAX_VALUE, note)); - } - - public FamilyHistoryRelationConditionComponent copy() { - FamilyHistoryRelationConditionComponent dst = new FamilyHistoryRelationConditionComponent(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - dst.outcome = outcome == null ? null : outcome.copy(); - dst.onset = onset == null ? null : onset.copy(); - dst.note = note == null ? null : note.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (outcome == null || outcome.isEmpty()) - && (onset == null || onset.isEmpty()) && (note == null || note.isEmpty()); - } - - } - - /** - * This records identifiers associated with this family history record that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External Id(s) for this record", formalDefinition="This records identifiers associated with this family history record that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) - protected List identifier; - - /** - * The person who this history concerns. - */ - @Child(name="patient", type={Patient.class}, order=0, min=1, max=1) - @Description(shortDefinition="Patient history is about", formalDefinition="The person who this history concerns." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (The person who this history concerns.) - */ - protected Patient patientTarget; - - /** - * The date (and possibly time) when the family history was taken. - */ - @Child(name="date", type={DateTimeType.class}, order=1, min=0, max=1) - @Description(shortDefinition="When history was captured/updated", formalDefinition="The date (and possibly time) when the family history was taken." ) - protected DateTimeType date; - - /** - * Conveys information about family history not specific to individual relations. - */ - @Child(name="note", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Additional details not covered elsewhere", formalDefinition="Conveys information about family history not specific to individual relations." ) - protected StringType note; - - /** - * The related person. Each FamilyHistory resource contains the entire family history for a single person. - */ - @Child(name="relation", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Relative described by history", formalDefinition="The related person. Each FamilyHistory resource contains the entire family history for a single person." ) - protected List relation; - - private static final long serialVersionUID = 1010516594L; - - public FamilyHistory() { - super(); - } - - public FamilyHistory(Reference patient) { - super(); - this.patient = patient; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this family history record that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this family history record that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #patient} (The person who this history concerns.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create FamilyHistory.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (The person who this history concerns.) - */ - public FamilyHistory setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person who this history concerns.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create FamilyHistory.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person who this history concerns.) - */ - public FamilyHistory setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #date} (The date (and possibly time) when the family history was taken.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create FamilyHistory.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (The date (and possibly time) when the family history was taken.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public FamilyHistory setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return The date (and possibly time) when the family history was taken. - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value The date (and possibly time) when the family history was taken. - */ - public FamilyHistory setDate(Date value) { - if (value == null) - this.date = null; - else { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - } - return this; - } - - /** - * @return {@link #note} (Conveys information about family history not specific to individual relations.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value - */ - public StringType getNoteElement() { - if (this.note == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create FamilyHistory.note"); - else if (Configuration.doAutoCreate()) - this.note = new StringType(); - return this.note; - } - - public boolean hasNoteElement() { - return this.note != null && !this.note.isEmpty(); - } - - public boolean hasNote() { - return this.note != null && !this.note.isEmpty(); - } - - /** - * @param value {@link #note} (Conveys information about family history not specific to individual relations.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value - */ - public FamilyHistory setNoteElement(StringType value) { - this.note = value; - return this; - } - - /** - * @return Conveys information about family history not specific to individual relations. - */ - public String getNote() { - return this.note == null ? null : this.note.getValue(); - } - - /** - * @param value Conveys information about family history not specific to individual relations. - */ - public FamilyHistory setNote(String value) { - if (Utilities.noString(value)) - this.note = null; - else { - if (this.note == null) - this.note = new StringType(); - this.note.setValue(value); - } - return this; - } - - /** - * @return {@link #relation} (The related person. Each FamilyHistory resource contains the entire family history for a single person.) - */ - public List getRelation() { - if (this.relation == null) - this.relation = new ArrayList(); - return this.relation; - } - - public boolean hasRelation() { - if (this.relation == null) - return false; - for (FamilyHistoryRelationComponent item : this.relation) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #relation} (The related person. Each FamilyHistory resource contains the entire family history for a single person.) - */ - // syntactic sugar - public FamilyHistoryRelationComponent addRelation() { //3 - FamilyHistoryRelationComponent t = new FamilyHistoryRelationComponent(); - if (this.relation == null) - this.relation = new ArrayList(); - this.relation.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this family history record that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("patient", "Reference(Patient)", "The person who this history concerns.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("date", "dateTime", "The date (and possibly time) when the family history was taken.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("note", "string", "Conveys information about family history not specific to individual relations.", 0, java.lang.Integer.MAX_VALUE, note)); - childrenList.add(new Property("relation", "", "The related person. Each FamilyHistory resource contains the entire family history for a single person.", 0, java.lang.Integer.MAX_VALUE, relation)); - } - - public FamilyHistory copy() { - FamilyHistory dst = new FamilyHistory(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.patient = patient == null ? null : patient.copy(); - dst.date = date == null ? null : date.copy(); - dst.note = note == null ? null : note.copy(); - if (relation != null) { - dst.relation = new ArrayList(); - for (FamilyHistoryRelationComponent i : relation) - dst.relation.add(i.copy()); - }; - return dst; - } - - protected FamilyHistory typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (patient == null || patient.isEmpty()) - && (date == null || date.isEmpty()) && (note == null || note.isEmpty()) && (relation == null || relation.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.FamilyHistory; - } - - @SearchParamDefinition(name="patient", path="FamilyHistory.patient", description="The identity of a subject to list family history items for", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="date", path="FamilyHistory.date", description="When history was captured/updated", type="date" ) - public static final String SP_DATE = "date"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Significant health events and conditions for people related to the subject relevant in the context of care for the subject. + */ +@ResourceDef(name="FamilyHistory", profile="http://hl7.org/fhir/Profile/FamilyHistory") +public class FamilyHistory extends DomainResource { + + @Block() + public static class FamilyHistoryRelationComponent extends BackboneElement { + /** + * This will either be a name or a description. E.g. "Aunt Susan", "my cousin with the red hair". + */ + @Child(name="name", type={StringType.class}, order=1, min=0, max=1) + @Description(shortDefinition="The family member described", formalDefinition="This will either be a name or a description. E.g. 'Aunt Susan', 'my cousin with the red hair'." ) + protected StringType name; + + /** + * The type of relationship this person has to the patient (father, mother, brother etc.). + */ + @Child(name="relationship", type={CodeableConcept.class}, order=2, min=1, max=1) + @Description(shortDefinition="Relationship to the subject", formalDefinition="The type of relationship this person has to the patient (father, mother, brother etc.)." ) + protected CodeableConcept relationship; + + /** + * The actual or approximate date of birth of the relative. + */ + @Child(name="born", type={Period.class, DateType.class, StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="(approximate) date of birth", formalDefinition="The actual or approximate date of birth of the relative." ) + protected Type born; + + /** + * The actual or approximate age of the relative at the time the family history is recorded. + */ + @Child(name="age", type={Age.class, Range.class, StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="(approximate) age", formalDefinition="The actual or approximate age of the relative at the time the family history is recorded." ) + protected Type age; + + /** + * If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set. + */ + @Child(name="deceased", type={BooleanType.class, Age.class, Range.class, DateType.class, StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Dead? How old/when?", formalDefinition="If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set." ) + protected Type deceased; + + /** + * This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible. + */ + @Child(name="note", type={StringType.class}, order=6, min=0, max=1) + @Description(shortDefinition="General note about related person", formalDefinition="This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible." ) + protected StringType note; + + /** + * The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition. + */ + @Child(name="condition", type={}, order=7, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Condition that the related person had", formalDefinition="The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition." ) + protected List condition; + + private static final long serialVersionUID = 211772865L; + + public FamilyHistoryRelationComponent() { + super(); + } + + public FamilyHistoryRelationComponent(CodeableConcept relationship) { + super(); + this.relationship = relationship; + } + + /** + * @return {@link #name} (This will either be a name or a description. E.g. "Aunt Susan", "my cousin with the red hair".). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create FamilyHistoryRelationComponent.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (This will either be a name or a description. E.g. "Aunt Susan", "my cousin with the red hair".). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public FamilyHistoryRelationComponent setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return This will either be a name or a description. E.g. "Aunt Susan", "my cousin with the red hair". + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value This will either be a name or a description. E.g. "Aunt Susan", "my cousin with the red hair". + */ + public FamilyHistoryRelationComponent setName(String value) { + if (Utilities.noString(value)) + this.name = null; + else { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + } + return this; + } + + /** + * @return {@link #relationship} (The type of relationship this person has to the patient (father, mother, brother etc.).) + */ + public CodeableConcept getRelationship() { + if (this.relationship == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create FamilyHistoryRelationComponent.relationship"); + else if (Configuration.doAutoCreate()) + this.relationship = new CodeableConcept(); // cc + return this.relationship; + } + + public boolean hasRelationship() { + return this.relationship != null && !this.relationship.isEmpty(); + } + + /** + * @param value {@link #relationship} (The type of relationship this person has to the patient (father, mother, brother etc.).) + */ + public FamilyHistoryRelationComponent setRelationship(CodeableConcept value) { + this.relationship = value; + return this; + } + + /** + * @return {@link #born} (The actual or approximate date of birth of the relative.) + */ + public Type getBorn() { + return this.born; + } + + /** + * @return {@link #born} (The actual or approximate date of birth of the relative.) + */ + public Period getBornPeriod() throws Exception { + if (!(this.born instanceof Period)) + throw new Exception("Type mismatch: the type Period was expected, but "+this.born.getClass().getName()+" was encountered"); + return (Period) this.born; + } + + /** + * @return {@link #born} (The actual or approximate date of birth of the relative.) + */ + public DateType getBornDateType() throws Exception { + if (!(this.born instanceof DateType)) + throw new Exception("Type mismatch: the type DateType was expected, but "+this.born.getClass().getName()+" was encountered"); + return (DateType) this.born; + } + + /** + * @return {@link #born} (The actual or approximate date of birth of the relative.) + */ + public StringType getBornStringType() throws Exception { + if (!(this.born instanceof StringType)) + throw new Exception("Type mismatch: the type StringType was expected, but "+this.born.getClass().getName()+" was encountered"); + return (StringType) this.born; + } + + public boolean hasBorn() { + return this.born != null && !this.born.isEmpty(); + } + + /** + * @param value {@link #born} (The actual or approximate date of birth of the relative.) + */ + public FamilyHistoryRelationComponent setBorn(Type value) { + this.born = value; + return this; + } + + /** + * @return {@link #age} (The actual or approximate age of the relative at the time the family history is recorded.) + */ + public Type getAge() { + return this.age; + } + + /** + * @return {@link #age} (The actual or approximate age of the relative at the time the family history is recorded.) + */ + public Age getAgeAge() throws Exception { + if (!(this.age instanceof Age)) + throw new Exception("Type mismatch: the type Age was expected, but "+this.age.getClass().getName()+" was encountered"); + return (Age) this.age; + } + + /** + * @return {@link #age} (The actual or approximate age of the relative at the time the family history is recorded.) + */ + public Range getAgeRange() throws Exception { + if (!(this.age instanceof Range)) + throw new Exception("Type mismatch: the type Range was expected, but "+this.age.getClass().getName()+" was encountered"); + return (Range) this.age; + } + + /** + * @return {@link #age} (The actual or approximate age of the relative at the time the family history is recorded.) + */ + public StringType getAgeStringType() throws Exception { + if (!(this.age instanceof StringType)) + throw new Exception("Type mismatch: the type StringType was expected, but "+this.age.getClass().getName()+" was encountered"); + return (StringType) this.age; + } + + public boolean hasAge() { + return this.age != null && !this.age.isEmpty(); + } + + /** + * @param value {@link #age} (The actual or approximate age of the relative at the time the family history is recorded.) + */ + public FamilyHistoryRelationComponent setAge(Type value) { + this.age = value; + return this; + } + + /** + * @return {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) + */ + public Type getDeceased() { + return this.deceased; + } + + /** + * @return {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) + */ + public BooleanType getDeceasedBooleanType() throws Exception { + if (!(this.deceased instanceof BooleanType)) + throw new Exception("Type mismatch: the type BooleanType was expected, but "+this.deceased.getClass().getName()+" was encountered"); + return (BooleanType) this.deceased; + } + + /** + * @return {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) + */ + public Age getDeceasedAge() throws Exception { + if (!(this.deceased instanceof Age)) + throw new Exception("Type mismatch: the type Age was expected, but "+this.deceased.getClass().getName()+" was encountered"); + return (Age) this.deceased; + } + + /** + * @return {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) + */ + public Range getDeceasedRange() throws Exception { + if (!(this.deceased instanceof Range)) + throw new Exception("Type mismatch: the type Range was expected, but "+this.deceased.getClass().getName()+" was encountered"); + return (Range) this.deceased; + } + + /** + * @return {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) + */ + public DateType getDeceasedDateType() throws Exception { + if (!(this.deceased instanceof DateType)) + throw new Exception("Type mismatch: the type DateType was expected, but "+this.deceased.getClass().getName()+" was encountered"); + return (DateType) this.deceased; + } + + /** + * @return {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) + */ + public StringType getDeceasedStringType() throws Exception { + if (!(this.deceased instanceof StringType)) + throw new Exception("Type mismatch: the type StringType was expected, but "+this.deceased.getClass().getName()+" was encountered"); + return (StringType) this.deceased; + } + + public boolean hasDeceased() { + return this.deceased != null && !this.deceased.isEmpty(); + } + + /** + * @param value {@link #deceased} (If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.) + */ + public FamilyHistoryRelationComponent setDeceased(Type value) { + this.deceased = value; + return this; + } + + /** + * @return {@link #note} (This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value + */ + public StringType getNoteElement() { + if (this.note == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create FamilyHistoryRelationComponent.note"); + else if (Configuration.doAutoCreate()) + this.note = new StringType(); // bb + return this.note; + } + + public boolean hasNoteElement() { + return this.note != null && !this.note.isEmpty(); + } + + public boolean hasNote() { + return this.note != null && !this.note.isEmpty(); + } + + /** + * @param value {@link #note} (This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value + */ + public FamilyHistoryRelationComponent setNoteElement(StringType value) { + this.note = value; + return this; + } + + /** + * @return This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible. + */ + public String getNote() { + return this.note == null ? null : this.note.getValue(); + } + + /** + * @param value This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible. + */ + public FamilyHistoryRelationComponent setNote(String value) { + if (Utilities.noString(value)) + this.note = null; + else { + if (this.note == null) + this.note = new StringType(); + this.note.setValue(value); + } + return this; + } + + /** + * @return {@link #condition} (The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.) + */ + public List getCondition() { + if (this.condition == null) + this.condition = new ArrayList(); + return this.condition; + } + + public boolean hasCondition() { + if (this.condition == null) + return false; + for (FamilyHistoryRelationConditionComponent item : this.condition) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #condition} (The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.) + */ + // syntactic sugar + public FamilyHistoryRelationConditionComponent addCondition() { //3 + FamilyHistoryRelationConditionComponent t = new FamilyHistoryRelationConditionComponent(); + if (this.condition == null) + this.condition = new ArrayList(); + this.condition.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("name", "string", "This will either be a name or a description. E.g. 'Aunt Susan', 'my cousin with the red hair'.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("relationship", "CodeableConcept", "The type of relationship this person has to the patient (father, mother, brother etc.).", 0, java.lang.Integer.MAX_VALUE, relationship)); + childrenList.add(new Property("born[x]", "Period|date|string", "The actual or approximate date of birth of the relative.", 0, java.lang.Integer.MAX_VALUE, born)); + childrenList.add(new Property("age[x]", "Age|Range|string", "The actual or approximate age of the relative at the time the family history is recorded.", 0, java.lang.Integer.MAX_VALUE, age)); + childrenList.add(new Property("deceased[x]", "boolean|Age|Range|date|string", "If this resource is indicating that the related person is deceased, then an indicator of whether the person is deceased (yes) or not (no) or the age or age range or description of age at death - can be indicated here. If the reason for death is known, then it can be indicated in the outcome code of the condition - in this case the deceased property should still be set.", 0, java.lang.Integer.MAX_VALUE, deceased)); + childrenList.add(new Property("note", "string", "This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.", 0, java.lang.Integer.MAX_VALUE, note)); + childrenList.add(new Property("condition", "", "The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.", 0, java.lang.Integer.MAX_VALUE, condition)); + } + + public FamilyHistoryRelationComponent copy() { + FamilyHistoryRelationComponent dst = new FamilyHistoryRelationComponent(); + copyValues(dst); + dst.name = name == null ? null : name.copy(); + dst.relationship = relationship == null ? null : relationship.copy(); + dst.born = born == null ? null : born.copy(); + dst.age = age == null ? null : age.copy(); + dst.deceased = deceased == null ? null : deceased.copy(); + dst.note = note == null ? null : note.copy(); + if (condition != null) { + dst.condition = new ArrayList(); + for (FamilyHistoryRelationConditionComponent i : condition) + dst.condition.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof FamilyHistoryRelationComponent)) + return false; + FamilyHistoryRelationComponent o = (FamilyHistoryRelationComponent) other; + return compareDeep(name, o.name, true) && compareDeep(relationship, o.relationship, true) && compareDeep(born, o.born, true) + && compareDeep(age, o.age, true) && compareDeep(deceased, o.deceased, true) && compareDeep(note, o.note, true) + && compareDeep(condition, o.condition, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof FamilyHistoryRelationComponent)) + return false; + FamilyHistoryRelationComponent o = (FamilyHistoryRelationComponent) other; + return compareValues(name, o.name, true) && compareValues(note, o.note, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (name == null || name.isEmpty()) && (relationship == null || relationship.isEmpty()) + && (born == null || born.isEmpty()) && (age == null || age.isEmpty()) && (deceased == null || deceased.isEmpty()) + && (note == null || note.isEmpty()) && (condition == null || condition.isEmpty()); + } + + } + + @Block() + public static class FamilyHistoryRelationConditionComponent extends BackboneElement { + /** + * The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system. + */ + @Child(name="type", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="Condition suffered by relation", formalDefinition="The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system." ) + protected CodeableConcept type; + + /** + * Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation. + */ + @Child(name="outcome", type={CodeableConcept.class}, order=2, min=0, max=1) + @Description(shortDefinition="deceased | permanent disability | etc.", formalDefinition="Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation." ) + protected CodeableConcept outcome; + + /** + * Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence. + */ + @Child(name="onset", type={Age.class, Range.class, StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="When condition first manifested", formalDefinition="Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence." ) + protected Type onset; + + /** + * An area where general notes can be placed about this specific condition. + */ + @Child(name="note", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Extra information about condition", formalDefinition="An area where general notes can be placed about this specific condition." ) + protected StringType note; + + private static final long serialVersionUID = -1664709272L; + + public FamilyHistoryRelationConditionComponent() { + super(); + } + + public FamilyHistoryRelationConditionComponent(CodeableConcept type) { + super(); + this.type = type; + } + + /** + * @return {@link #type} (The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system.) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create FamilyHistoryRelationConditionComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system.) + */ + public FamilyHistoryRelationConditionComponent setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #outcome} (Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation.) + */ + public CodeableConcept getOutcome() { + if (this.outcome == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create FamilyHistoryRelationConditionComponent.outcome"); + else if (Configuration.doAutoCreate()) + this.outcome = new CodeableConcept(); // cc + return this.outcome; + } + + public boolean hasOutcome() { + return this.outcome != null && !this.outcome.isEmpty(); + } + + /** + * @param value {@link #outcome} (Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation.) + */ + public FamilyHistoryRelationConditionComponent setOutcome(CodeableConcept value) { + this.outcome = value; + return this; + } + + /** + * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) + */ + public Type getOnset() { + return this.onset; + } + + /** + * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) + */ + public Age getOnsetAge() throws Exception { + if (!(this.onset instanceof Age)) + throw new Exception("Type mismatch: the type Age was expected, but "+this.onset.getClass().getName()+" was encountered"); + return (Age) this.onset; + } + + /** + * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) + */ + public Range getOnsetRange() throws Exception { + if (!(this.onset instanceof Range)) + throw new Exception("Type mismatch: the type Range was expected, but "+this.onset.getClass().getName()+" was encountered"); + return (Range) this.onset; + } + + /** + * @return {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) + */ + public StringType getOnsetStringType() throws Exception { + if (!(this.onset instanceof StringType)) + throw new Exception("Type mismatch: the type StringType was expected, but "+this.onset.getClass().getName()+" was encountered"); + return (StringType) this.onset; + } + + public boolean hasOnset() { + return this.onset != null && !this.onset.isEmpty(); + } + + /** + * @param value {@link #onset} (Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.) + */ + public FamilyHistoryRelationConditionComponent setOnset(Type value) { + this.onset = value; + return this; + } + + /** + * @return {@link #note} (An area where general notes can be placed about this specific condition.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value + */ + public StringType getNoteElement() { + if (this.note == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create FamilyHistoryRelationConditionComponent.note"); + else if (Configuration.doAutoCreate()) + this.note = new StringType(); // bb + return this.note; + } + + public boolean hasNoteElement() { + return this.note != null && !this.note.isEmpty(); + } + + public boolean hasNote() { + return this.note != null && !this.note.isEmpty(); + } + + /** + * @param value {@link #note} (An area where general notes can be placed about this specific condition.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value + */ + public FamilyHistoryRelationConditionComponent setNoteElement(StringType value) { + this.note = value; + return this; + } + + /** + * @return An area where general notes can be placed about this specific condition. + */ + public String getNote() { + return this.note == null ? null : this.note.getValue(); + } + + /** + * @param value An area where general notes can be placed about this specific condition. + */ + public FamilyHistoryRelationConditionComponent setNote(String value) { + if (Utilities.noString(value)) + this.note = null; + else { + if (this.note == null) + this.note = new StringType(); + this.note.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "CodeableConcept", "The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("outcome", "CodeableConcept", "Indicates what happened as a result of this condition. If the condition resulted in death, deceased date is captured on the relation.", 0, java.lang.Integer.MAX_VALUE, outcome)); + childrenList.add(new Property("onset[x]", "Age|Range|string", "Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence.", 0, java.lang.Integer.MAX_VALUE, onset)); + childrenList.add(new Property("note", "string", "An area where general notes can be placed about this specific condition.", 0, java.lang.Integer.MAX_VALUE, note)); + } + + public FamilyHistoryRelationConditionComponent copy() { + FamilyHistoryRelationConditionComponent dst = new FamilyHistoryRelationConditionComponent(); + copyValues(dst); + dst.type = type == null ? null : type.copy(); + dst.outcome = outcome == null ? null : outcome.copy(); + dst.onset = onset == null ? null : onset.copy(); + dst.note = note == null ? null : note.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof FamilyHistoryRelationConditionComponent)) + return false; + FamilyHistoryRelationConditionComponent o = (FamilyHistoryRelationConditionComponent) other; + return compareDeep(type, o.type, true) && compareDeep(outcome, o.outcome, true) && compareDeep(onset, o.onset, true) + && compareDeep(note, o.note, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof FamilyHistoryRelationConditionComponent)) + return false; + FamilyHistoryRelationConditionComponent o = (FamilyHistoryRelationConditionComponent) other; + return compareValues(note, o.note, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (outcome == null || outcome.isEmpty()) + && (onset == null || onset.isEmpty()) && (note == null || note.isEmpty()); + } + + } + + /** + * This records identifiers associated with this family history record that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="External Id(s) for this record", formalDefinition="This records identifiers associated with this family history record that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) + protected List identifier; + + /** + * The person who this history concerns. + */ + @Child(name="patient", type={Patient.class}, order=0, min=1, max=1) + @Description(shortDefinition="Patient history is about", formalDefinition="The person who this history concerns." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (The person who this history concerns.) + */ + protected Patient patientTarget; + + /** + * The date (and possibly time) when the family history was taken. + */ + @Child(name="date", type={DateTimeType.class}, order=1, min=0, max=1) + @Description(shortDefinition="When history was captured/updated", formalDefinition="The date (and possibly time) when the family history was taken." ) + protected DateTimeType date; + + /** + * Conveys information about family history not specific to individual relations. + */ + @Child(name="note", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Additional details not covered elsewhere", formalDefinition="Conveys information about family history not specific to individual relations." ) + protected StringType note; + + /** + * The related person. Each FamilyHistory resource contains the entire family history for a single person. + */ + @Child(name="relation", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Relative described by history", formalDefinition="The related person. Each FamilyHistory resource contains the entire family history for a single person." ) + protected List relation; + + private static final long serialVersionUID = 1010516594L; + + public FamilyHistory() { + super(); + } + + public FamilyHistory(Reference patient) { + super(); + this.patient = patient; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this family history record that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this family history record that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #patient} (The person who this history concerns.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create FamilyHistory.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (The person who this history concerns.) + */ + public FamilyHistory setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person who this history concerns.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create FamilyHistory.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person who this history concerns.) + */ + public FamilyHistory setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #date} (The date (and possibly time) when the family history was taken.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create FamilyHistory.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (The date (and possibly time) when the family history was taken.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public FamilyHistory setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return The date (and possibly time) when the family history was taken. + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value The date (and possibly time) when the family history was taken. + */ + public FamilyHistory setDate(Date value) { + if (value == null) + this.date = null; + else { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + } + return this; + } + + /** + * @return {@link #note} (Conveys information about family history not specific to individual relations.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value + */ + public StringType getNoteElement() { + if (this.note == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create FamilyHistory.note"); + else if (Configuration.doAutoCreate()) + this.note = new StringType(); // bb + return this.note; + } + + public boolean hasNoteElement() { + return this.note != null && !this.note.isEmpty(); + } + + public boolean hasNote() { + return this.note != null && !this.note.isEmpty(); + } + + /** + * @param value {@link #note} (Conveys information about family history not specific to individual relations.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value + */ + public FamilyHistory setNoteElement(StringType value) { + this.note = value; + return this; + } + + /** + * @return Conveys information about family history not specific to individual relations. + */ + public String getNote() { + return this.note == null ? null : this.note.getValue(); + } + + /** + * @param value Conveys information about family history not specific to individual relations. + */ + public FamilyHistory setNote(String value) { + if (Utilities.noString(value)) + this.note = null; + else { + if (this.note == null) + this.note = new StringType(); + this.note.setValue(value); + } + return this; + } + + /** + * @return {@link #relation} (The related person. Each FamilyHistory resource contains the entire family history for a single person.) + */ + public List getRelation() { + if (this.relation == null) + this.relation = new ArrayList(); + return this.relation; + } + + public boolean hasRelation() { + if (this.relation == null) + return false; + for (FamilyHistoryRelationComponent item : this.relation) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #relation} (The related person. Each FamilyHistory resource contains the entire family history for a single person.) + */ + // syntactic sugar + public FamilyHistoryRelationComponent addRelation() { //3 + FamilyHistoryRelationComponent t = new FamilyHistoryRelationComponent(); + if (this.relation == null) + this.relation = new ArrayList(); + this.relation.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this family history record that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("patient", "Reference(Patient)", "The person who this history concerns.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("date", "dateTime", "The date (and possibly time) when the family history was taken.", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("note", "string", "Conveys information about family history not specific to individual relations.", 0, java.lang.Integer.MAX_VALUE, note)); + childrenList.add(new Property("relation", "", "The related person. Each FamilyHistory resource contains the entire family history for a single person.", 0, java.lang.Integer.MAX_VALUE, relation)); + } + + public FamilyHistory copy() { + FamilyHistory dst = new FamilyHistory(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.patient = patient == null ? null : patient.copy(); + dst.date = date == null ? null : date.copy(); + dst.note = note == null ? null : note.copy(); + if (relation != null) { + dst.relation = new ArrayList(); + for (FamilyHistoryRelationComponent i : relation) + dst.relation.add(i.copy()); + }; + return dst; + } + + protected FamilyHistory typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof FamilyHistory)) + return false; + FamilyHistory o = (FamilyHistory) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(patient, o.patient, true) && compareDeep(date, o.date, true) + && compareDeep(note, o.note, true) && compareDeep(relation, o.relation, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof FamilyHistory)) + return false; + FamilyHistory o = (FamilyHistory) other; + return compareValues(date, o.date, true) && compareValues(note, o.note, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (patient == null || patient.isEmpty()) + && (date == null || date.isEmpty()) && (note == null || note.isEmpty()) && (relation == null || relation.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.FamilyHistory; + } + + @SearchParamDefinition(name="patient", path="FamilyHistory.patient", description="The identity of a subject to list family history items for", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="date", path="FamilyHistory.date", description="When history was captured/updated", type="date" ) + public static final String SP_DATE = "date"; + +} + diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/FhirEnum.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/FhirEnum.java similarity index 100% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/FhirEnum.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/FhirEnum.java diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Goal$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Goal$1.class new file mode 100644 index 0000000000000000000000000000000000000000..d0c278821172b64b8bdf227deb908345a66fec83 GIT binary patch literal 1061 zcmb7DZBNrs6n^g5)@>H4ufTkpPgZ7=MeO z)x;QM_yPVX<2fbE_+Uavn&+J7-gEA`&pEe${{A`!@DM8n+`!E|25~D--fgCLB$Sxk zWf)@^XHXgLF-$N_N|=%`Be1AiAH3LUZ`g-w811TUe@T7c_9E2_It5yOHCrdAy(J0&{!zkxkh~;P_$33wAf$xE;16JdiLeL&Lm`At*8yP?kymBY`5P zXucinYG!D4o%WjN`Yj`h!brwr4qIecVtB&vl;Ih}GRgvDBw8cU8jIF?qP0Y{mWW;u zfPh>L0yolqyVG$=z0xmR-`R7WSfF&)Ndhxxg(Pk6b-2Lgdn9{g`(3U)KQ+BwJI6W8 zG^NI7y-~M}Re{-arb=Pd@&emW=1T*Y8nudP@=1lNNyn~l8kR*BD*DT+v6ZY_Z>(me zYF5p4nyOwgb)#0}4T{l?Ml*3YjaP>-CsxJ>p6kwFZQ2Ymhs zas0dR9jR~p4g5elUH^jg>x5>BX8Kejn(fmZQK?V!M00&wAgY{-zQFucxXk<{{wrNA zkE<9)1|t~91ldWH>6vBdl~u4x)<6Rm*(Tn>A=|2m-8 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Goal$GoalStatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Goal$GoalStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..762774b855442bc61b78858a3b446160161304ac GIT binary patch literal 3641 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Goal.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Goal.java similarity index 80% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Goal.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Goal.java index b4ea5a31581..c57db35c752 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Goal.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Goal.java @@ -1,553 +1,607 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Describes the intended objective(s) of carrying out the Care Plan. - */ -@ResourceDef(name="Goal", profile="http://hl7.org/fhir/Profile/Goal") -public class Goal extends DomainResource { - - public enum GoalStatus implements FhirEnum { - /** - * The goal is being sought but has not yet been reached. (Also applies if goal was reached in the past but there has been regression and goal is being sought again). - */ - INPROGRESS, - /** - * The goal has been met and no further action is needed. - */ - ACHIEVED, - /** - * The goal has been met, but ongoing activity is needed to sustain the goal objective. - */ - SUSTAINING, - /** - * The goal is no longer being sought. - */ - CANCELLED, - /** - * added to help the parsers - */ - NULL; - - public static final GoalStatusEnumFactory ENUM_FACTORY = new GoalStatusEnumFactory(); - - public static GoalStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("in progress".equals(codeString)) - return INPROGRESS; - if ("achieved".equals(codeString)) - return ACHIEVED; - if ("sustaining".equals(codeString)) - return SUSTAINING; - if ("cancelled".equals(codeString)) - return CANCELLED; - throw new IllegalArgumentException("Unknown GoalStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case INPROGRESS: return "in progress"; - case ACHIEVED: return "achieved"; - case SUSTAINING: return "sustaining"; - case CANCELLED: return "cancelled"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case INPROGRESS: return ""; - case ACHIEVED: return ""; - case SUSTAINING: return ""; - case CANCELLED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case INPROGRESS: return "The goal is being sought but has not yet been reached. (Also applies if goal was reached in the past but there has been regression and goal is being sought again)."; - case ACHIEVED: return "The goal has been met and no further action is needed."; - case SUSTAINING: return "The goal has been met, but ongoing activity is needed to sustain the goal objective."; - case CANCELLED: return "The goal is no longer being sought."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case INPROGRESS: return "in progress"; - case ACHIEVED: return "achieved"; - case SUSTAINING: return "sustaining"; - case CANCELLED: return "cancelled"; - default: return "?"; - } - } - } - - public static class GoalStatusEnumFactory implements EnumFactory { - public GoalStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("in progress".equals(codeString)) - return GoalStatus.INPROGRESS; - if ("achieved".equals(codeString)) - return GoalStatus.ACHIEVED; - if ("sustaining".equals(codeString)) - return GoalStatus.SUSTAINING; - if ("cancelled".equals(codeString)) - return GoalStatus.CANCELLED; - throw new IllegalArgumentException("Unknown GoalStatus code '"+codeString+"'"); - } - public String toCode(GoalStatus code) throws IllegalArgumentException { - if (code == GoalStatus.INPROGRESS) - return "in progress"; - if (code == GoalStatus.ACHIEVED) - return "achieved"; - if (code == GoalStatus.SUSTAINING) - return "sustaining"; - if (code == GoalStatus.CANCELLED) - return "cancelled"; - return "?"; - } - } - - /** - * This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External Ids for this goal", formalDefinition="This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) - protected List identifier; - - /** - * Identifies the patient/subject whose intended care is described by the plan. - */ - @Child(name="patient", type={Patient.class}, order=0, min=0, max=1) - @Description(shortDefinition="The patient for whom this goal is intended for", formalDefinition="Identifies the patient/subject whose intended care is described by the plan." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (Identifies the patient/subject whose intended care is described by the plan.) - */ - protected Patient patientTarget; - - /** - * Human-readable description of a specific desired objective of the care plan. - */ - @Child(name="description", type={StringType.class}, order=1, min=1, max=1) - @Description(shortDefinition="What's the desired outcome?", formalDefinition="Human-readable description of a specific desired objective of the care plan." ) - protected StringType description; - - /** - * Indicates whether the goal has been reached and is still considered relevant. - */ - @Child(name="status", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="in progress | achieved | sustaining | cancelled", formalDefinition="Indicates whether the goal has been reached and is still considered relevant." ) - protected Enumeration status; - - /** - * Any comments related to the goal. - */ - @Child(name="notes", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Comments about the goal", formalDefinition="Any comments related to the goal." ) - protected StringType notes; - - /** - * The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address. - */ - @Child(name="concern", type={Condition.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Health issues this goal addresses", formalDefinition="The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address." ) - protected List concern; - /** - * The actual objects that are the target of the reference (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - protected List concernTarget; - - - private static final long serialVersionUID = -73791119L; - - public Goal() { - super(); - } - - public Goal(StringType description) { - super(); - this.description = description; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Goal.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) - */ - public Goal setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Goal.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) - */ - public Goal setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #description} (Human-readable description of a specific desired objective of the care plan.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Goal.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Human-readable description of a specific desired objective of the care plan.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public Goal setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Human-readable description of a specific desired objective of the care plan. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Human-readable description of a specific desired objective of the care plan. - */ - public Goal setDescription(String value) { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - return this; - } - - /** - * @return {@link #status} (Indicates whether the goal has been reached and is still considered relevant.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Goal.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (Indicates whether the goal has been reached and is still considered relevant.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Goal setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return Indicates whether the goal has been reached and is still considered relevant. - */ - public GoalStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value Indicates whether the goal has been reached and is still considered relevant. - */ - public Goal setStatus(GoalStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(GoalStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #notes} (Any comments related to the goal.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public StringType getNotesElement() { - if (this.notes == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Goal.notes"); - else if (Configuration.doAutoCreate()) - this.notes = new StringType(); - return this.notes; - } - - public boolean hasNotesElement() { - return this.notes != null && !this.notes.isEmpty(); - } - - public boolean hasNotes() { - return this.notes != null && !this.notes.isEmpty(); - } - - /** - * @param value {@link #notes} (Any comments related to the goal.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value - */ - public Goal setNotesElement(StringType value) { - this.notes = value; - return this; - } - - /** - * @return Any comments related to the goal. - */ - public String getNotes() { - return this.notes == null ? null : this.notes.getValue(); - } - - /** - * @param value Any comments related to the goal. - */ - public Goal setNotes(String value) { - if (Utilities.noString(value)) - this.notes = null; - else { - if (this.notes == null) - this.notes = new StringType(); - this.notes.setValue(value); - } - return this; - } - - /** - * @return {@link #concern} (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - public List getConcern() { - if (this.concern == null) - this.concern = new ArrayList(); - return this.concern; - } - - public boolean hasConcern() { - if (this.concern == null) - return false; - for (Reference item : this.concern) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #concern} (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - // syntactic sugar - public Reference addConcern() { //3 - Reference t = new Reference(); - if (this.concern == null) - this.concern = new ArrayList(); - this.concern.add(t); - return t; - } - - /** - * @return {@link #concern} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - public List getConcernTarget() { - if (this.concernTarget == null) - this.concernTarget = new ArrayList(); - return this.concernTarget; - } - - // syntactic sugar - /** - * @return {@link #concern} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) - */ - public Condition addConcernTarget() { - Condition r = new Condition(); - if (this.concernTarget == null) - this.concernTarget = new ArrayList(); - this.concernTarget.add(r); - return r; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("patient", "Reference(Patient)", "Identifies the patient/subject whose intended care is described by the plan.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("description", "string", "Human-readable description of a specific desired objective of the care plan.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("status", "code", "Indicates whether the goal has been reached and is still considered relevant.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("notes", "string", "Any comments related to the goal.", 0, java.lang.Integer.MAX_VALUE, notes)); - childrenList.add(new Property("concern", "Reference(Condition)", "The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.", 0, java.lang.Integer.MAX_VALUE, concern)); - } - - public Goal copy() { - Goal dst = new Goal(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.patient = patient == null ? null : patient.copy(); - dst.description = description == null ? null : description.copy(); - dst.status = status == null ? null : status.copy(); - dst.notes = notes == null ? null : notes.copy(); - if (concern != null) { - dst.concern = new ArrayList(); - for (Reference i : concern) - dst.concern.add(i.copy()); - }; - return dst; - } - - protected Goal typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (patient == null || patient.isEmpty()) - && (description == null || description.isEmpty()) && (status == null || status.isEmpty()) - && (notes == null || notes.isEmpty()) && (concern == null || concern.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Goal; - } - - @SearchParamDefinition(name="patient", path="Goal.patient", description="The patient for whom this goal is intended for", type="reference" ) - public static final String SP_PATIENT = "patient"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Describes the intended objective(s) of the care. + */ +@ResourceDef(name="Goal", profile="http://hl7.org/fhir/Profile/Goal") +public class Goal extends DomainResource { + + public enum GoalStatus { + /** + * A goal is proposed for this patient. + */ + PROPOSED, + /** + * A goal is planned for this patient. + */ + PLANNED, + /** + * The goal is being sought but has not yet been reached. (Also applies if goal was reached in the past but there has been regression and goal is being sought again). + */ + INPROGRESS, + /** + * The goal has been met and no further action is needed. + */ + ACHIEVED, + /** + * The goal has been met, but ongoing activity is needed to sustain the goal objective. + */ + SUSTAINING, + /** + * The goal is no longer being sought. + */ + CANCELLED, + /** + * A proposed goal was accepted. + */ + ACCEPTED, + /** + * A proposed goal was rejected. + */ + REJECTED, + /** + * added to help the parsers + */ + NULL; + public static GoalStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("proposed".equals(codeString)) + return PROPOSED; + if ("planned".equals(codeString)) + return PLANNED; + if ("in-progress".equals(codeString)) + return INPROGRESS; + if ("achieved".equals(codeString)) + return ACHIEVED; + if ("sustaining".equals(codeString)) + return SUSTAINING; + if ("cancelled".equals(codeString)) + return CANCELLED; + if ("accepted".equals(codeString)) + return ACCEPTED; + if ("rejected".equals(codeString)) + return REJECTED; + throw new Exception("Unknown GoalStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PROPOSED: return "proposed"; + case PLANNED: return "planned"; + case INPROGRESS: return "in-progress"; + case ACHIEVED: return "achieved"; + case SUSTAINING: return "sustaining"; + case CANCELLED: return "cancelled"; + case ACCEPTED: return "accepted"; + case REJECTED: return "rejected"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PROPOSED: return ""; + case PLANNED: return ""; + case INPROGRESS: return ""; + case ACHIEVED: return ""; + case SUSTAINING: return ""; + case CANCELLED: return ""; + case ACCEPTED: return ""; + case REJECTED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PROPOSED: return "A goal is proposed for this patient."; + case PLANNED: return "A goal is planned for this patient."; + case INPROGRESS: return "The goal is being sought but has not yet been reached. (Also applies if goal was reached in the past but there has been regression and goal is being sought again)."; + case ACHIEVED: return "The goal has been met and no further action is needed."; + case SUSTAINING: return "The goal has been met, but ongoing activity is needed to sustain the goal objective."; + case CANCELLED: return "The goal is no longer being sought."; + case ACCEPTED: return "A proposed goal was accepted."; + case REJECTED: return "A proposed goal was rejected."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PROPOSED: return "proposed"; + case PLANNED: return "planned"; + case INPROGRESS: return "in-progress"; + case ACHIEVED: return "achieved"; + case SUSTAINING: return "sustaining"; + case CANCELLED: return "cancelled"; + case ACCEPTED: return "accepted"; + case REJECTED: return "rejected"; + default: return "?"; + } + } + } + + public static class GoalStatusEnumFactory implements EnumFactory { + public GoalStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("proposed".equals(codeString)) + return GoalStatus.PROPOSED; + if ("planned".equals(codeString)) + return GoalStatus.PLANNED; + if ("in-progress".equals(codeString)) + return GoalStatus.INPROGRESS; + if ("achieved".equals(codeString)) + return GoalStatus.ACHIEVED; + if ("sustaining".equals(codeString)) + return GoalStatus.SUSTAINING; + if ("cancelled".equals(codeString)) + return GoalStatus.CANCELLED; + if ("accepted".equals(codeString)) + return GoalStatus.ACCEPTED; + if ("rejected".equals(codeString)) + return GoalStatus.REJECTED; + throw new IllegalArgumentException("Unknown GoalStatus code '"+codeString+"'"); + } + public String toCode(GoalStatus code) { + if (code == GoalStatus.PROPOSED) + return "proposed"; + if (code == GoalStatus.PLANNED) + return "planned"; + if (code == GoalStatus.INPROGRESS) + return "in-progress"; + if (code == GoalStatus.ACHIEVED) + return "achieved"; + if (code == GoalStatus.SUSTAINING) + return "sustaining"; + if (code == GoalStatus.CANCELLED) + return "cancelled"; + if (code == GoalStatus.ACCEPTED) + return "accepted"; + if (code == GoalStatus.REJECTED) + return "rejected"; + return "?"; + } + } + + /** + * This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="External Ids for this goal", formalDefinition="This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)." ) + protected List identifier; + + /** + * Identifies the patient/subject whose intended care is described by the plan. + */ + @Child(name="patient", type={Patient.class}, order=0, min=0, max=1) + @Description(shortDefinition="The patient for whom this goal is intended for", formalDefinition="Identifies the patient/subject whose intended care is described by the plan." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (Identifies the patient/subject whose intended care is described by the plan.) + */ + protected Patient patientTarget; + + /** + * Human-readable description of a specific desired objective of care. + */ + @Child(name="description", type={StringType.class}, order=1, min=1, max=1) + @Description(shortDefinition="What's the desired outcome?", formalDefinition="Human-readable description of a specific desired objective of care." ) + protected StringType description; + + /** + * Indicates whether the goal has been reached and is still considered relevant. + */ + @Child(name="status", type={CodeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="proposed | planned | in-progress | achieved | sustaining | cancelled | accepted | rejected", formalDefinition="Indicates whether the goal has been reached and is still considered relevant." ) + protected Enumeration status; + + /** + * Any comments related to the goal. + */ + @Child(name="notes", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Comments about the goal", formalDefinition="Any comments related to the goal." ) + protected StringType notes; + + /** + * The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address. + */ + @Child(name="concern", type={Condition.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Health issues this goal addresses", formalDefinition="The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address." ) + protected List concern; + /** + * The actual objects that are the target of the reference (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) + */ + protected List concernTarget; + + + private static final long serialVersionUID = -73791119L; + + public Goal() { + super(); + } + + public Goal(StringType description) { + super(); + this.description = description; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Goal.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (Identifies the patient/subject whose intended care is described by the plan.) + */ + public Goal setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Goal.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the patient/subject whose intended care is described by the plan.) + */ + public Goal setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #description} (Human-readable description of a specific desired objective of care.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Goal.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Human-readable description of a specific desired objective of care.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public Goal setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Human-readable description of a specific desired objective of care. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Human-readable description of a specific desired objective of care. + */ + public Goal setDescription(String value) { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + return this; + } + + /** + * @return {@link #status} (Indicates whether the goal has been reached and is still considered relevant.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Goal.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new GoalStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (Indicates whether the goal has been reached and is still considered relevant.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Goal setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return Indicates whether the goal has been reached and is still considered relevant. + */ + public GoalStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value Indicates whether the goal has been reached and is still considered relevant. + */ + public Goal setStatus(GoalStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new GoalStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #notes} (Any comments related to the goal.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value + */ + public StringType getNotesElement() { + if (this.notes == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Goal.notes"); + else if (Configuration.doAutoCreate()) + this.notes = new StringType(); // bb + return this.notes; + } + + public boolean hasNotesElement() { + return this.notes != null && !this.notes.isEmpty(); + } + + public boolean hasNotes() { + return this.notes != null && !this.notes.isEmpty(); + } + + /** + * @param value {@link #notes} (Any comments related to the goal.). This is the underlying object with id, value and extensions. The accessor "getNotes" gives direct access to the value + */ + public Goal setNotesElement(StringType value) { + this.notes = value; + return this; + } + + /** + * @return Any comments related to the goal. + */ + public String getNotes() { + return this.notes == null ? null : this.notes.getValue(); + } + + /** + * @param value Any comments related to the goal. + */ + public Goal setNotes(String value) { + if (Utilities.noString(value)) + this.notes = null; + else { + if (this.notes == null) + this.notes = new StringType(); + this.notes.setValue(value); + } + return this; + } + + /** + * @return {@link #concern} (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) + */ + public List getConcern() { + if (this.concern == null) + this.concern = new ArrayList(); + return this.concern; + } + + public boolean hasConcern() { + if (this.concern == null) + return false; + for (Reference item : this.concern) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #concern} (The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) + */ + // syntactic sugar + public Reference addConcern() { //3 + Reference t = new Reference(); + if (this.concern == null) + this.concern = new ArrayList(); + this.concern.add(t); + return t; + } + + /** + * @return {@link #concern} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) + */ + public List getConcernTarget() { + if (this.concernTarget == null) + this.concernTarget = new ArrayList(); + return this.concernTarget; + } + + // syntactic sugar + /** + * @return {@link #concern} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.) + */ + public Condition addConcernTarget() { + Condition r = new Condition(); + if (this.concernTarget == null) + this.concernTarget = new ArrayList(); + this.concernTarget.add(r); + return r; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "This records identifiers associated with this care plan that are defined by business processed and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("patient", "Reference(Patient)", "Identifies the patient/subject whose intended care is described by the plan.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("description", "string", "Human-readable description of a specific desired objective of care.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("status", "code", "Indicates whether the goal has been reached and is still considered relevant.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("notes", "string", "Any comments related to the goal.", 0, java.lang.Integer.MAX_VALUE, notes)); + childrenList.add(new Property("concern", "Reference(Condition)", "The identified conditions that this goal relates to - the condition that caused it to be created, or that it is intended to address.", 0, java.lang.Integer.MAX_VALUE, concern)); + } + + public Goal copy() { + Goal dst = new Goal(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.patient = patient == null ? null : patient.copy(); + dst.description = description == null ? null : description.copy(); + dst.status = status == null ? null : status.copy(); + dst.notes = notes == null ? null : notes.copy(); + if (concern != null) { + dst.concern = new ArrayList(); + for (Reference i : concern) + dst.concern.add(i.copy()); + }; + return dst; + } + + protected Goal typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Goal)) + return false; + Goal o = (Goal) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(patient, o.patient, true) && compareDeep(description, o.description, true) + && compareDeep(status, o.status, true) && compareDeep(notes, o.notes, true) && compareDeep(concern, o.concern, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Goal)) + return false; + Goal o = (Goal) other; + return compareValues(description, o.description, true) && compareValues(status, o.status, true) && compareValues(notes, o.notes, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (patient == null || patient.isEmpty()) + && (description == null || description.isEmpty()) && (status == null || status.isEmpty()) + && (notes == null || notes.isEmpty()) && (concern == null || concern.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Goal; + } + + @SearchParamDefinition(name="patient", path="Goal.patient", description="The patient for whom this goal is intended for", type="reference" ) + public static final String SP_PATIENT = "patient"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group$1.class new file mode 100644 index 0000000000000000000000000000000000000000..44f91e96203ff4c5325aa99bdbc606a830467aa6 GIT binary patch literal 960 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group$GroupType.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group$GroupType.class new file mode 100644 index 0000000000000000000000000000000000000000..b8027858e02b4291695f04526e362470f68484c0 GIT binary patch literal 3111 zcmb_e>r)d~6#p#*a)}G3D?V#0N-VERpyCs%B1DZ14_QFtqq>9zR+CLkHYjRa-`dwq zzxH3~rxa(PQ>U#TI{nc9q5n#!zk37WIb)e|lY7sed(S=Rcg{WMB!B<=>+b*#;`=K2 zFcg4^VLv+k7!4qdi*mXo5D(xot_WO}Le~U7m-M>84M{D5F-a2wl1IW5Q%*MQ zxH->q6LvV29=DTWbuLso-ASF@{n5Ve81)Peb@vQMhob}iks+@4MnK zTdvcvIda+@?(UZxzW$LI&-p{6-La8~siF1CMr}`9$-D&J*4VVsv%VfWq+xT+aqa$m zYRt|KTVqMC_?6Ou2@Tziv76Sk6;4|2WZ3kwjyu`ev{8s%j_Y_QG;CW(S+r?XhQyh4 zEia#??ea#sA||rwR1sda=~;}5v)bRzr^y4cHEgQ%*9jEY6$7%FvfFF-^JjN4-AY*59X;()Z4wAE6CuJpd zbVyFmWUYj!{I#<>4k?Lod)i6ZIu1)Nkg~^}ge4=QsZeXR-e38j4Of)D04=22~Dqx;0lpqLs$~&D}{B1Sp6#N=3=auNvSK=aZJX(W+}=t6*W{Ol4+M& zwKCra#%|gPkD0gkt@)(k(DE`=O|NrV#+QnGrDf_4F0B-Wm~Hm$yp_yp*t%Tj0-C1F zG95D++Z|_5T`sVWjTJdWW5P=>8d;%x@hE#l{abwvwQD#WGVeHEVu}qU!~-F=^^k1q zp~bcyQf<9>e@ks$L)n!mJ7GFI?zmP`^`+>kcK(ip`RgZ6?UdyPkh0JeWpOFWvQm`A zq$q1hQQjvI+$CE8HB|A_g-@a31i5{r@(IjBn?urtjw zH*JBh`4?2Yfp6`BGTAC9C=KjEIX`S0%`Lm|Ic#}T87v0wz~H@&5g1!IrAlrnXT`ylv!omq2(d0-Lf7%M!%92n=m z&8wPF0IT3{D^m}xefADe`3uIX?;2D$iRux7VVIy#rKr1!Hf) z*jF&>3r475>|ZBVd7_#osyjq=m#Ail>K;+uC#nZ)QT4q8RR7}!9}?9gqIyhJPl)O% zQ9UE7=S1~lH7dbujV$EVpUgG+{O}sSxbac>JQ`jhpqNIVVsyncRVb!LG0l~V2`Z+= zuNXry9}C6QD&|12DAyYF|3>ZQtV=WQn}u%1D`rt+#w%wLG~=vS!;Fhr)SB@ims-tN z(3V<3F-1FAUq`WvZZ)vsbfA~*;2iykv4YyzLyC=JfR!av`vR*DF!<(U^|iAdW=Ihf F{{iH2wt4^n literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group$GroupTypeEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group$GroupTypeEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..68b4beb387bfa62004f3f4d9856395b7525fafee GIT binary patch literal 1975 zcmb7F>r)$56#rca*$11FuBk1ptzc0Iv5i)xRuCFOsH-6$2`KfsBulzhk$ zMjYovJR{&)8Ta8izT^eW378kKz!04GC)>aL-q_0|} z5!YO&*4mWLxlXfQx?CrA~*R-qS$-LuM(-*AM z>9q@{n>Ou+r`u&CU86`=I`B0VdK_nn6+OLtaZazdBg?tB%0}HY9h(9~J*NeNBJIU( zawjf^p-!|pyICWwJK*187ACc27@TB~ie}Z;y{1cLS?};Ozq)Rez42Y)au>6D*>l{> z6T2GTS*}Scm|S$4ZrPYMd7tFK;v`3>;C>7+K)~|~7Ez??)eX1d*a}KmB1yN+nriAY#t(G$k?-t_!4!3GT?J?eH>K4uX zfzB~)PgC+d87$-$i}MAB6MGsNI+!VFbD2E#d|@$@EomifzK~la{Y-9I%jT%lbGaEU zo8fvs*GtpIQl`K+qI$h<*cA%diRmtPVq0TrMn%uLomXPyuD5JkmbX39i!``f4TDZ# zklwVTU^qrkX%A5vds+uc;##@^=o#Gv`-K=9QCg#c@*P@f63`Wx{(}f{z}u<6pr~D` z4Rl|J+9~ufUyZc%!msG@)o3UPzAA=- zBxoz49-w6d_ip0gAB3hWz&lNkIPflFcn^p1KBapF58?wF<_~cSA7KnvF@=wj#V5$) z8WwP!F6a%qE1zNwpJ5%JW0*YjLW(I&2|kRFB0?pI(~oWit-NAaDI_n$REko(iKrU! zi4!;%<($Mhk#oJAlQ|dToWi+2&h7KnLq54^VIL#Zz!&rieF+&~(SOp{NZ=bB!MD_~ zo0P|Q1m%0A@dM@ZBhKI_OyK7LuZXBD@h_esh^aQj!8Sx`H1#L?H*lB-+tyezKaPjV tjAwMLZ5|z^`X1R~+fj#ZoCsi_BrqKQBLogmiR*`kp|kx|cnt+e{{heP<*)z% literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group.class new file mode 100644 index 0000000000000000000000000000000000000000..a14c9a54bce795d89f4fc9df5a2c40ab78a707ad GIT binary patch literal 14760 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Group.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group.java similarity index 90% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Group.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group.java index 5c1999fe2bc..a9cb590a99d 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Group.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Group.java @@ -1,832 +1,847 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized. I.e. A collection of entities that isn't an Organization. - */ -@ResourceDef(name="Group", profile="http://hl7.org/fhir/Profile/Group") -public class Group extends DomainResource { - - public enum GroupType implements FhirEnum { - /** - * Group contains "person" Patient resources. - */ - PERSON, - /** - * Group contains "animal" Patient resources. - */ - ANIMAL, - /** - * Group contains healthcare practitioner resources. - */ - PRACTITIONER, - /** - * Group contains Device resources. - */ - DEVICE, - /** - * Group contains Medication resources. - */ - MEDICATION, - /** - * Group contains Substance resources. - */ - SUBSTANCE, - /** - * added to help the parsers - */ - NULL; - - public static final GroupTypeEnumFactory ENUM_FACTORY = new GroupTypeEnumFactory(); - - public static GroupType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("person".equals(codeString)) - return PERSON; - if ("animal".equals(codeString)) - return ANIMAL; - if ("practitioner".equals(codeString)) - return PRACTITIONER; - if ("device".equals(codeString)) - return DEVICE; - if ("medication".equals(codeString)) - return MEDICATION; - if ("substance".equals(codeString)) - return SUBSTANCE; - throw new IllegalArgumentException("Unknown GroupType code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case PERSON: return "person"; - case ANIMAL: return "animal"; - case PRACTITIONER: return "practitioner"; - case DEVICE: return "device"; - case MEDICATION: return "medication"; - case SUBSTANCE: return "substance"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case PERSON: return ""; - case ANIMAL: return ""; - case PRACTITIONER: return ""; - case DEVICE: return ""; - case MEDICATION: return ""; - case SUBSTANCE: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case PERSON: return "Group contains 'person' Patient resources."; - case ANIMAL: return "Group contains 'animal' Patient resources."; - case PRACTITIONER: return "Group contains healthcare practitioner resources."; - case DEVICE: return "Group contains Device resources."; - case MEDICATION: return "Group contains Medication resources."; - case SUBSTANCE: return "Group contains Substance resources."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case PERSON: return "person"; - case ANIMAL: return "animal"; - case PRACTITIONER: return "practitioner"; - case DEVICE: return "device"; - case MEDICATION: return "medication"; - case SUBSTANCE: return "substance"; - default: return "?"; - } - } - } - - public static class GroupTypeEnumFactory implements EnumFactory { - public GroupType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("person".equals(codeString)) - return GroupType.PERSON; - if ("animal".equals(codeString)) - return GroupType.ANIMAL; - if ("practitioner".equals(codeString)) - return GroupType.PRACTITIONER; - if ("device".equals(codeString)) - return GroupType.DEVICE; - if ("medication".equals(codeString)) - return GroupType.MEDICATION; - if ("substance".equals(codeString)) - return GroupType.SUBSTANCE; - throw new IllegalArgumentException("Unknown GroupType code '"+codeString+"'"); - } - public String toCode(GroupType code) throws IllegalArgumentException { - if (code == GroupType.PERSON) - return "person"; - if (code == GroupType.ANIMAL) - return "animal"; - if (code == GroupType.PRACTITIONER) - return "practitioner"; - if (code == GroupType.DEVICE) - return "device"; - if (code == GroupType.MEDICATION) - return "medication"; - if (code == GroupType.SUBSTANCE) - return "substance"; - return "?"; - } - } - - @Block() - public static class GroupCharacteristicComponent extends BackboneElement { - /** - * A code that identifies the kind of trait being asserted. - */ - @Child(name="code", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="Kind of characteristic", formalDefinition="A code that identifies the kind of trait being asserted." ) - protected CodeableConcept code; - - /** - * The value of the trait that holds (or does not hold - see 'exclude') for members of the group. - */ - @Child(name="value", type={CodeableConcept.class, BooleanType.class, Quantity.class, Range.class}, order=2, min=1, max=1) - @Description(shortDefinition="Value held by characteristic", formalDefinition="The value of the trait that holds (or does not hold - see 'exclude') for members of the group." ) - protected Type value; - - /** - * If true, indicates the characteristic is one that is NOT held by members of the group. - */ - @Child(name="exclude", type={BooleanType.class}, order=3, min=1, max=1) - @Description(shortDefinition="Group includes or excludes", formalDefinition="If true, indicates the characteristic is one that is NOT held by members of the group." ) - protected BooleanType exclude; - - private static final long serialVersionUID = 803478031L; - - public GroupCharacteristicComponent() { - super(); - } - - public GroupCharacteristicComponent(CodeableConcept code, Type value, BooleanType exclude) { - super(); - this.code = code; - this.value = value; - this.exclude = exclude; - } - - /** - * @return {@link #code} (A code that identifies the kind of trait being asserted.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create GroupCharacteristicComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (A code that identifies the kind of trait being asserted.) - */ - public GroupCharacteristicComponent setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) - */ - public Type getValue() { - return this.value; - } - - /** - * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) - */ - public CodeableConcept getValueCodeableConcept() throws Exception { - if (!(this.value instanceof CodeableConcept)) - throw new Exception("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered"); - return (CodeableConcept) this.value; - } - - /** - * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) - */ - public BooleanType getValueBooleanType() throws Exception { - if (!(this.value instanceof BooleanType)) - throw new Exception("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); - return (BooleanType) this.value; - } - - /** - * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) - */ - public Quantity getValueQuantity() throws Exception { - if (!(this.value instanceof Quantity)) - throw new Exception("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); - return (Quantity) this.value; - } - - /** - * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) - */ - public Range getValueRange() throws Exception { - if (!(this.value instanceof Range)) - throw new Exception("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered"); - return (Range) this.value; - } - - public boolean hasValue() { - return this.value != null && !this.value.isEmpty(); - } - - /** - * @param value {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) - */ - public GroupCharacteristicComponent setValue(Type value) { - this.value = value; - return this; - } - - /** - * @return {@link #exclude} (If true, indicates the characteristic is one that is NOT held by members of the group.). This is the underlying object with id, value and extensions. The accessor "getExclude" gives direct access to the value - */ - public BooleanType getExcludeElement() { - if (this.exclude == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create GroupCharacteristicComponent.exclude"); - else if (Configuration.doAutoCreate()) - this.exclude = new BooleanType(); - return this.exclude; - } - - public boolean hasExcludeElement() { - return this.exclude != null && !this.exclude.isEmpty(); - } - - public boolean hasExclude() { - return this.exclude != null && !this.exclude.isEmpty(); - } - - /** - * @param value {@link #exclude} (If true, indicates the characteristic is one that is NOT held by members of the group.). This is the underlying object with id, value and extensions. The accessor "getExclude" gives direct access to the value - */ - public GroupCharacteristicComponent setExcludeElement(BooleanType value) { - this.exclude = value; - return this; - } - - /** - * @return If true, indicates the characteristic is one that is NOT held by members of the group. - */ - public boolean getExclude() { - return this.exclude == null ? false : this.exclude.getValue(); - } - - /** - * @param value If true, indicates the characteristic is one that is NOT held by members of the group. - */ - public GroupCharacteristicComponent setExclude(boolean value) { - if (this.exclude == null) - this.exclude = new BooleanType(); - this.exclude.setValue(value); - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "CodeableConcept", "A code that identifies the kind of trait being asserted.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("value[x]", "CodeableConcept|boolean|Quantity|Range", "The value of the trait that holds (or does not hold - see 'exclude') for members of the group.", 0, java.lang.Integer.MAX_VALUE, value)); - childrenList.add(new Property("exclude", "boolean", "If true, indicates the characteristic is one that is NOT held by members of the group.", 0, java.lang.Integer.MAX_VALUE, exclude)); - } - - public GroupCharacteristicComponent copy() { - GroupCharacteristicComponent dst = new GroupCharacteristicComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.value = value == null ? null : value.copy(); - dst.exclude = exclude == null ? null : exclude.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (value == null || value.isEmpty()) - && (exclude == null || exclude.isEmpty()); - } - - } - - /** - * A unique business identifier for this group. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=1) - @Description(shortDefinition="Unique id", formalDefinition="A unique business identifier for this group." ) - protected Identifier identifier; - - /** - * Identifies the broad classification of the kind of resources the group includes. - */ - @Child(name="type", type={CodeType.class}, order=0, min=1, max=1) - @Description(shortDefinition="person | animal | practitioner | device | medication | substance", formalDefinition="Identifies the broad classification of the kind of resources the group includes." ) - protected Enumeration type; - - /** - * If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals. - */ - @Child(name="actual", type={BooleanType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Descriptive or actual", formalDefinition="If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals." ) - protected BooleanType actual; - - /** - * Provides a specific type of resource the group includes. E.g. "cow", "syringe", etc. - */ - @Child(name="code", type={CodeableConcept.class}, order=2, min=0, max=1) - @Description(shortDefinition="Kind of Group members", formalDefinition="Provides a specific type of resource the group includes. E.g. 'cow', 'syringe', etc." ) - protected CodeableConcept code; - - /** - * A label assigned to the group for human identification and communication. - */ - @Child(name="name", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Label for Group", formalDefinition="A label assigned to the group for human identification and communication." ) - protected StringType name; - - /** - * A count of the number of resource instances that are part of the group. - */ - @Child(name="quantity", type={IntegerType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Number of members", formalDefinition="A count of the number of resource instances that are part of the group." ) - protected IntegerType quantity; - - /** - * Identifies the traits shared by members of the group. - */ - @Child(name="characteristic", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Trait of group members", formalDefinition="Identifies the traits shared by members of the group." ) - protected List characteristic; - - /** - * Identifies the resource instances that are members of the group. - */ - @Child(name="member", type={Patient.class, Practitioner.class, Device.class, Medication.class, Substance.class}, order=6, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Who is in group", formalDefinition="Identifies the resource instances that are members of the group." ) - protected List member; - /** - * The actual objects that are the target of the reference (Identifies the resource instances that are members of the group.) - */ - protected List memberTarget; - - - private static final long serialVersionUID = 45096653L; - - public Group() { - super(); - } - - public Group(Enumeration type, BooleanType actual) { - super(); - this.type = type; - this.actual = actual; - } - - /** - * @return {@link #identifier} (A unique business identifier for this group.) - */ - public Identifier getIdentifier() { - if (this.identifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Group.identifier"); - else if (Configuration.doAutoCreate()) - this.identifier = new Identifier(); - return this.identifier; - } - - public boolean hasIdentifier() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - /** - * @param value {@link #identifier} (A unique business identifier for this group.) - */ - public Group setIdentifier(Identifier value) { - this.identifier = value; - return this; - } - - /** - * @return {@link #type} (Identifies the broad classification of the kind of resources the group includes.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public Enumeration getTypeElement() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Group.type"); - else if (Configuration.doAutoCreate()) - this.type = new Enumeration(); - return this.type; - } - - public boolean hasTypeElement() { - return this.type != null && !this.type.isEmpty(); - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Identifies the broad classification of the kind of resources the group includes.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public Group setTypeElement(Enumeration value) { - this.type = value; - return this; - } - - /** - * @return Identifies the broad classification of the kind of resources the group includes. - */ - public GroupType getType() { - return this.type == null ? null : this.type.getValue(); - } - - /** - * @param value Identifies the broad classification of the kind of resources the group includes. - */ - public Group setType(GroupType value) { - if (this.type == null) - this.type = new Enumeration(GroupType.ENUM_FACTORY); - this.type.setValue(value); - return this; - } - - /** - * @return {@link #actual} (If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals.). This is the underlying object with id, value and extensions. The accessor "getActual" gives direct access to the value - */ - public BooleanType getActualElement() { - if (this.actual == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Group.actual"); - else if (Configuration.doAutoCreate()) - this.actual = new BooleanType(); - return this.actual; - } - - public boolean hasActualElement() { - return this.actual != null && !this.actual.isEmpty(); - } - - public boolean hasActual() { - return this.actual != null && !this.actual.isEmpty(); - } - - /** - * @param value {@link #actual} (If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals.). This is the underlying object with id, value and extensions. The accessor "getActual" gives direct access to the value - */ - public Group setActualElement(BooleanType value) { - this.actual = value; - return this; - } - - /** - * @return If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals. - */ - public boolean getActual() { - return this.actual == null ? false : this.actual.getValue(); - } - - /** - * @param value If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals. - */ - public Group setActual(boolean value) { - if (this.actual == null) - this.actual = new BooleanType(); - this.actual.setValue(value); - return this; - } - - /** - * @return {@link #code} (Provides a specific type of resource the group includes. E.g. "cow", "syringe", etc.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Group.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Provides a specific type of resource the group includes. E.g. "cow", "syringe", etc.) - */ - public Group setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #name} (A label assigned to the group for human identification and communication.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Group.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (A label assigned to the group for human identification and communication.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public Group setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return A label assigned to the group for human identification and communication. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value A label assigned to the group for human identification and communication. - */ - public Group setName(String value) { - if (Utilities.noString(value)) - this.name = null; - else { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - } - return this; - } - - /** - * @return {@link #quantity} (A count of the number of resource instances that are part of the group.). This is the underlying object with id, value and extensions. The accessor "getQuantity" gives direct access to the value - */ - public IntegerType getQuantityElement() { - if (this.quantity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Group.quantity"); - else if (Configuration.doAutoCreate()) - this.quantity = new IntegerType(); - return this.quantity; - } - - public boolean hasQuantityElement() { - return this.quantity != null && !this.quantity.isEmpty(); - } - - public boolean hasQuantity() { - return this.quantity != null && !this.quantity.isEmpty(); - } - - /** - * @param value {@link #quantity} (A count of the number of resource instances that are part of the group.). This is the underlying object with id, value and extensions. The accessor "getQuantity" gives direct access to the value - */ - public Group setQuantityElement(IntegerType value) { - this.quantity = value; - return this; - } - - /** - * @return A count of the number of resource instances that are part of the group. - */ - public int getQuantity() { - return this.quantity == null ? null : this.quantity.getValue(); - } - - /** - * @param value A count of the number of resource instances that are part of the group. - */ - public Group setQuantity(int value) { - if (value == -1) - this.quantity = null; - else { - if (this.quantity == null) - this.quantity = new IntegerType(); - this.quantity.setValue(value); - } - return this; - } - - /** - * @return {@link #characteristic} (Identifies the traits shared by members of the group.) - */ - public List getCharacteristic() { - if (this.characteristic == null) - this.characteristic = new ArrayList(); - return this.characteristic; - } - - public boolean hasCharacteristic() { - if (this.characteristic == null) - return false; - for (GroupCharacteristicComponent item : this.characteristic) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #characteristic} (Identifies the traits shared by members of the group.) - */ - // syntactic sugar - public GroupCharacteristicComponent addCharacteristic() { //3 - GroupCharacteristicComponent t = new GroupCharacteristicComponent(); - if (this.characteristic == null) - this.characteristic = new ArrayList(); - this.characteristic.add(t); - return t; - } - - /** - * @return {@link #member} (Identifies the resource instances that are members of the group.) - */ - public List getMember() { - if (this.member == null) - this.member = new ArrayList(); - return this.member; - } - - public boolean hasMember() { - if (this.member == null) - return false; - for (Reference item : this.member) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #member} (Identifies the resource instances that are members of the group.) - */ - // syntactic sugar - public Reference addMember() { //3 - Reference t = new Reference(); - if (this.member == null) - this.member = new ArrayList(); - this.member.add(t); - return t; - } - - /** - * @return {@link #member} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies the resource instances that are members of the group.) - */ - public List getMemberTarget() { - if (this.memberTarget == null) - this.memberTarget = new ArrayList(); - return this.memberTarget; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "A unique business identifier for this group.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("type", "code", "Identifies the broad classification of the kind of resources the group includes.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("actual", "boolean", "If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals.", 0, java.lang.Integer.MAX_VALUE, actual)); - childrenList.add(new Property("code", "CodeableConcept", "Provides a specific type of resource the group includes. E.g. 'cow', 'syringe', etc.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("name", "string", "A label assigned to the group for human identification and communication.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("quantity", "integer", "A count of the number of resource instances that are part of the group.", 0, java.lang.Integer.MAX_VALUE, quantity)); - childrenList.add(new Property("characteristic", "", "Identifies the traits shared by members of the group.", 0, java.lang.Integer.MAX_VALUE, characteristic)); - childrenList.add(new Property("member", "Reference(Patient|Practitioner|Device|Medication|Substance)", "Identifies the resource instances that are members of the group.", 0, java.lang.Integer.MAX_VALUE, member)); - } - - public Group copy() { - Group dst = new Group(); - copyValues(dst); - dst.identifier = identifier == null ? null : identifier.copy(); - dst.type = type == null ? null : type.copy(); - dst.actual = actual == null ? null : actual.copy(); - dst.code = code == null ? null : code.copy(); - dst.name = name == null ? null : name.copy(); - dst.quantity = quantity == null ? null : quantity.copy(); - if (characteristic != null) { - dst.characteristic = new ArrayList(); - for (GroupCharacteristicComponent i : characteristic) - dst.characteristic.add(i.copy()); - }; - if (member != null) { - dst.member = new ArrayList(); - for (Reference i : member) - dst.member.add(i.copy()); - }; - return dst; - } - - protected Group typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (type == null || type.isEmpty()) - && (actual == null || actual.isEmpty()) && (code == null || code.isEmpty()) && (name == null || name.isEmpty()) - && (quantity == null || quantity.isEmpty()) && (characteristic == null || characteristic.isEmpty()) - && (member == null || member.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Group; - } - - @SearchParamDefinition(name="member", path="Group.member", description="Who is in group", type="reference" ) - public static final String SP_MEMBER = "member"; - @SearchParamDefinition(name="characteristic-value", path="", description="A composite of both characteristic and value", type="composite" ) - public static final String SP_CHARACTERISTICVALUE = "characteristic-value"; - @SearchParamDefinition(name="value", path="Group.characteristic.value[x]", description="Value held by characteristic", type="token" ) - public static final String SP_VALUE = "value"; - @SearchParamDefinition(name="actual", path="Group.actual", description="Descriptive or actual", type="token" ) - public static final String SP_ACTUAL = "actual"; - @SearchParamDefinition(name="exclude", path="Group.characteristic.exclude", description="Group includes or excludes", type="token" ) - public static final String SP_EXCLUDE = "exclude"; - @SearchParamDefinition(name="code", path="Group.code", description="The kind of resources contained", type="token" ) - public static final String SP_CODE = "code"; - @SearchParamDefinition(name="characteristic", path="Group.characteristic.code", description="Kind of characteristic", type="token" ) - public static final String SP_CHARACTERISTIC = "characteristic"; - @SearchParamDefinition(name="type", path="Group.type", description="The type of resources the group contains", type="token" ) - public static final String SP_TYPE = "type"; - @SearchParamDefinition(name="identifier", path="Group.identifier", description="Unique id", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively and are not formally or legally recognized. I.e. A collection of entities that isn't an Organization. + */ +@ResourceDef(name="Group", profile="http://hl7.org/fhir/Profile/Group") +public class Group extends DomainResource { + + public enum GroupType { + /** + * Group contains "person" Patient resources. + */ + PERSON, + /** + * Group contains "animal" Patient resources. + */ + ANIMAL, + /** + * Group contains healthcare practitioner resources. + */ + PRACTITIONER, + /** + * Group contains Device resources. + */ + DEVICE, + /** + * Group contains Medication resources. + */ + MEDICATION, + /** + * Group contains Substance resources. + */ + SUBSTANCE, + /** + * added to help the parsers + */ + NULL; + public static GroupType fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("person".equals(codeString)) + return PERSON; + if ("animal".equals(codeString)) + return ANIMAL; + if ("practitioner".equals(codeString)) + return PRACTITIONER; + if ("device".equals(codeString)) + return DEVICE; + if ("medication".equals(codeString)) + return MEDICATION; + if ("substance".equals(codeString)) + return SUBSTANCE; + throw new Exception("Unknown GroupType code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PERSON: return "person"; + case ANIMAL: return "animal"; + case PRACTITIONER: return "practitioner"; + case DEVICE: return "device"; + case MEDICATION: return "medication"; + case SUBSTANCE: return "substance"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PERSON: return ""; + case ANIMAL: return ""; + case PRACTITIONER: return ""; + case DEVICE: return ""; + case MEDICATION: return ""; + case SUBSTANCE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PERSON: return "Group contains 'person' Patient resources."; + case ANIMAL: return "Group contains 'animal' Patient resources."; + case PRACTITIONER: return "Group contains healthcare practitioner resources."; + case DEVICE: return "Group contains Device resources."; + case MEDICATION: return "Group contains Medication resources."; + case SUBSTANCE: return "Group contains Substance resources."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PERSON: return "person"; + case ANIMAL: return "animal"; + case PRACTITIONER: return "practitioner"; + case DEVICE: return "device"; + case MEDICATION: return "medication"; + case SUBSTANCE: return "substance"; + default: return "?"; + } + } + } + + public static class GroupTypeEnumFactory implements EnumFactory { + public GroupType fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("person".equals(codeString)) + return GroupType.PERSON; + if ("animal".equals(codeString)) + return GroupType.ANIMAL; + if ("practitioner".equals(codeString)) + return GroupType.PRACTITIONER; + if ("device".equals(codeString)) + return GroupType.DEVICE; + if ("medication".equals(codeString)) + return GroupType.MEDICATION; + if ("substance".equals(codeString)) + return GroupType.SUBSTANCE; + throw new IllegalArgumentException("Unknown GroupType code '"+codeString+"'"); + } + public String toCode(GroupType code) { + if (code == GroupType.PERSON) + return "person"; + if (code == GroupType.ANIMAL) + return "animal"; + if (code == GroupType.PRACTITIONER) + return "practitioner"; + if (code == GroupType.DEVICE) + return "device"; + if (code == GroupType.MEDICATION) + return "medication"; + if (code == GroupType.SUBSTANCE) + return "substance"; + return "?"; + } + } + + @Block() + public static class GroupCharacteristicComponent extends BackboneElement { + /** + * A code that identifies the kind of trait being asserted. + */ + @Child(name="code", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="Kind of characteristic", formalDefinition="A code that identifies the kind of trait being asserted." ) + protected CodeableConcept code; + + /** + * The value of the trait that holds (or does not hold - see 'exclude') for members of the group. + */ + @Child(name="value", type={CodeableConcept.class, BooleanType.class, Quantity.class, Range.class}, order=2, min=1, max=1) + @Description(shortDefinition="Value held by characteristic", formalDefinition="The value of the trait that holds (or does not hold - see 'exclude') for members of the group." ) + protected Type value; + + /** + * If true, indicates the characteristic is one that is NOT held by members of the group. + */ + @Child(name="exclude", type={BooleanType.class}, order=3, min=1, max=1) + @Description(shortDefinition="Group includes or excludes", formalDefinition="If true, indicates the characteristic is one that is NOT held by members of the group." ) + protected BooleanType exclude; + + private static final long serialVersionUID = 803478031L; + + public GroupCharacteristicComponent() { + super(); + } + + public GroupCharacteristicComponent(CodeableConcept code, Type value, BooleanType exclude) { + super(); + this.code = code; + this.value = value; + this.exclude = exclude; + } + + /** + * @return {@link #code} (A code that identifies the kind of trait being asserted.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create GroupCharacteristicComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (A code that identifies the kind of trait being asserted.) + */ + public GroupCharacteristicComponent setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) + */ + public Type getValue() { + return this.value; + } + + /** + * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) + */ + public CodeableConcept getValueCodeableConcept() throws Exception { + if (!(this.value instanceof CodeableConcept)) + throw new Exception("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered"); + return (CodeableConcept) this.value; + } + + /** + * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) + */ + public BooleanType getValueBooleanType() throws Exception { + if (!(this.value instanceof BooleanType)) + throw new Exception("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); + return (BooleanType) this.value; + } + + /** + * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) + */ + public Quantity getValueQuantity() throws Exception { + if (!(this.value instanceof Quantity)) + throw new Exception("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); + return (Quantity) this.value; + } + + /** + * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) + */ + public Range getValueRange() throws Exception { + if (!(this.value instanceof Range)) + throw new Exception("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered"); + return (Range) this.value; + } + + public boolean hasValue() { + return this.value != null && !this.value.isEmpty(); + } + + /** + * @param value {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) + */ + public GroupCharacteristicComponent setValue(Type value) { + this.value = value; + return this; + } + + /** + * @return {@link #exclude} (If true, indicates the characteristic is one that is NOT held by members of the group.). This is the underlying object with id, value and extensions. The accessor "getExclude" gives direct access to the value + */ + public BooleanType getExcludeElement() { + if (this.exclude == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create GroupCharacteristicComponent.exclude"); + else if (Configuration.doAutoCreate()) + this.exclude = new BooleanType(); // bb + return this.exclude; + } + + public boolean hasExcludeElement() { + return this.exclude != null && !this.exclude.isEmpty(); + } + + public boolean hasExclude() { + return this.exclude != null && !this.exclude.isEmpty(); + } + + /** + * @param value {@link #exclude} (If true, indicates the characteristic is one that is NOT held by members of the group.). This is the underlying object with id, value and extensions. The accessor "getExclude" gives direct access to the value + */ + public GroupCharacteristicComponent setExcludeElement(BooleanType value) { + this.exclude = value; + return this; + } + + /** + * @return If true, indicates the characteristic is one that is NOT held by members of the group. + */ + public boolean getExclude() { + return this.exclude == null ? false : this.exclude.getValue(); + } + + /** + * @param value If true, indicates the characteristic is one that is NOT held by members of the group. + */ + public GroupCharacteristicComponent setExclude(boolean value) { + if (this.exclude == null) + this.exclude = new BooleanType(); + this.exclude.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "CodeableConcept", "A code that identifies the kind of trait being asserted.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("value[x]", "CodeableConcept|boolean|Quantity|Range", "The value of the trait that holds (or does not hold - see 'exclude') for members of the group.", 0, java.lang.Integer.MAX_VALUE, value)); + childrenList.add(new Property("exclude", "boolean", "If true, indicates the characteristic is one that is NOT held by members of the group.", 0, java.lang.Integer.MAX_VALUE, exclude)); + } + + public GroupCharacteristicComponent copy() { + GroupCharacteristicComponent dst = new GroupCharacteristicComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.value = value == null ? null : value.copy(); + dst.exclude = exclude == null ? null : exclude.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof GroupCharacteristicComponent)) + return false; + GroupCharacteristicComponent o = (GroupCharacteristicComponent) other; + return compareDeep(code, o.code, true) && compareDeep(value, o.value, true) && compareDeep(exclude, o.exclude, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof GroupCharacteristicComponent)) + return false; + GroupCharacteristicComponent o = (GroupCharacteristicComponent) other; + return compareValues(exclude, o.exclude, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (value == null || value.isEmpty()) + && (exclude == null || exclude.isEmpty()); + } + + } + + /** + * A unique business identifier for this group. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=1) + @Description(shortDefinition="Unique id", formalDefinition="A unique business identifier for this group." ) + protected Identifier identifier; + + /** + * Identifies the broad classification of the kind of resources the group includes. + */ + @Child(name="type", type={CodeType.class}, order=0, min=1, max=1) + @Description(shortDefinition="person | animal | practitioner | device | medication | substance", formalDefinition="Identifies the broad classification of the kind of resources the group includes." ) + protected Enumeration type; + + /** + * If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals. + */ + @Child(name="actual", type={BooleanType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Descriptive or actual", formalDefinition="If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals." ) + protected BooleanType actual; + + /** + * Provides a specific type of resource the group includes. E.g. "cow", "syringe", etc. + */ + @Child(name="code", type={CodeableConcept.class}, order=2, min=0, max=1) + @Description(shortDefinition="Kind of Group members", formalDefinition="Provides a specific type of resource the group includes. E.g. 'cow', 'syringe', etc." ) + protected CodeableConcept code; + + /** + * A label assigned to the group for human identification and communication. + */ + @Child(name="name", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Label for Group", formalDefinition="A label assigned to the group for human identification and communication." ) + protected StringType name; + + /** + * A count of the number of resource instances that are part of the group. + */ + @Child(name="quantity", type={IntegerType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Number of members", formalDefinition="A count of the number of resource instances that are part of the group." ) + protected IntegerType quantity; + + /** + * Identifies the traits shared by members of the group. + */ + @Child(name="characteristic", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Trait of group members", formalDefinition="Identifies the traits shared by members of the group." ) + protected List characteristic; + + /** + * Identifies the resource instances that are members of the group. + */ + @Child(name="member", type={Patient.class, Practitioner.class, Device.class, Medication.class, Substance.class}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Who is in group", formalDefinition="Identifies the resource instances that are members of the group." ) + protected List member; + /** + * The actual objects that are the target of the reference (Identifies the resource instances that are members of the group.) + */ + protected List memberTarget; + + + private static final long serialVersionUID = 45096653L; + + public Group() { + super(); + } + + public Group(Enumeration type, BooleanType actual) { + super(); + this.type = type; + this.actual = actual; + } + + /** + * @return {@link #identifier} (A unique business identifier for this group.) + */ + public Identifier getIdentifier() { + if (this.identifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Group.identifier"); + else if (Configuration.doAutoCreate()) + this.identifier = new Identifier(); // cc + return this.identifier; + } + + public boolean hasIdentifier() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + /** + * @param value {@link #identifier} (A unique business identifier for this group.) + */ + public Group setIdentifier(Identifier value) { + this.identifier = value; + return this; + } + + /** + * @return {@link #type} (Identifies the broad classification of the kind of resources the group includes.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public Enumeration getTypeElement() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Group.type"); + else if (Configuration.doAutoCreate()) + this.type = new Enumeration(new GroupTypeEnumFactory()); // bb + return this.type; + } + + public boolean hasTypeElement() { + return this.type != null && !this.type.isEmpty(); + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Identifies the broad classification of the kind of resources the group includes.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public Group setTypeElement(Enumeration value) { + this.type = value; + return this; + } + + /** + * @return Identifies the broad classification of the kind of resources the group includes. + */ + public GroupType getType() { + return this.type == null ? null : this.type.getValue(); + } + + /** + * @param value Identifies the broad classification of the kind of resources the group includes. + */ + public Group setType(GroupType value) { + if (this.type == null) + this.type = new Enumeration(new GroupTypeEnumFactory()); + this.type.setValue(value); + return this; + } + + /** + * @return {@link #actual} (If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals.). This is the underlying object with id, value and extensions. The accessor "getActual" gives direct access to the value + */ + public BooleanType getActualElement() { + if (this.actual == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Group.actual"); + else if (Configuration.doAutoCreate()) + this.actual = new BooleanType(); // bb + return this.actual; + } + + public boolean hasActualElement() { + return this.actual != null && !this.actual.isEmpty(); + } + + public boolean hasActual() { + return this.actual != null && !this.actual.isEmpty(); + } + + /** + * @param value {@link #actual} (If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals.). This is the underlying object with id, value and extensions. The accessor "getActual" gives direct access to the value + */ + public Group setActualElement(BooleanType value) { + this.actual = value; + return this; + } + + /** + * @return If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals. + */ + public boolean getActual() { + return this.actual == null ? false : this.actual.getValue(); + } + + /** + * @param value If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals. + */ + public Group setActual(boolean value) { + if (this.actual == null) + this.actual = new BooleanType(); + this.actual.setValue(value); + return this; + } + + /** + * @return {@link #code} (Provides a specific type of resource the group includes. E.g. "cow", "syringe", etc.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Group.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Provides a specific type of resource the group includes. E.g. "cow", "syringe", etc.) + */ + public Group setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #name} (A label assigned to the group for human identification and communication.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Group.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (A label assigned to the group for human identification and communication.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public Group setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return A label assigned to the group for human identification and communication. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value A label assigned to the group for human identification and communication. + */ + public Group setName(String value) { + if (Utilities.noString(value)) + this.name = null; + else { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + } + return this; + } + + /** + * @return {@link #quantity} (A count of the number of resource instances that are part of the group.). This is the underlying object with id, value and extensions. The accessor "getQuantity" gives direct access to the value + */ + public IntegerType getQuantityElement() { + if (this.quantity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Group.quantity"); + else if (Configuration.doAutoCreate()) + this.quantity = new IntegerType(); // bb + return this.quantity; + } + + public boolean hasQuantityElement() { + return this.quantity != null && !this.quantity.isEmpty(); + } + + public boolean hasQuantity() { + return this.quantity != null && !this.quantity.isEmpty(); + } + + /** + * @param value {@link #quantity} (A count of the number of resource instances that are part of the group.). This is the underlying object with id, value and extensions. The accessor "getQuantity" gives direct access to the value + */ + public Group setQuantityElement(IntegerType value) { + this.quantity = value; + return this; + } + + /** + * @return A count of the number of resource instances that are part of the group. + */ + public int getQuantity() { + return this.quantity == null ? 0 : this.quantity.getValue(); + } + + /** + * @param value A count of the number of resource instances that are part of the group. + */ + public Group setQuantity(int value) { + if (this.quantity == null) + this.quantity = new IntegerType(); + this.quantity.setValue(value); + return this; + } + + /** + * @return {@link #characteristic} (Identifies the traits shared by members of the group.) + */ + public List getCharacteristic() { + if (this.characteristic == null) + this.characteristic = new ArrayList(); + return this.characteristic; + } + + public boolean hasCharacteristic() { + if (this.characteristic == null) + return false; + for (GroupCharacteristicComponent item : this.characteristic) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #characteristic} (Identifies the traits shared by members of the group.) + */ + // syntactic sugar + public GroupCharacteristicComponent addCharacteristic() { //3 + GroupCharacteristicComponent t = new GroupCharacteristicComponent(); + if (this.characteristic == null) + this.characteristic = new ArrayList(); + this.characteristic.add(t); + return t; + } + + /** + * @return {@link #member} (Identifies the resource instances that are members of the group.) + */ + public List getMember() { + if (this.member == null) + this.member = new ArrayList(); + return this.member; + } + + public boolean hasMember() { + if (this.member == null) + return false; + for (Reference item : this.member) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #member} (Identifies the resource instances that are members of the group.) + */ + // syntactic sugar + public Reference addMember() { //3 + Reference t = new Reference(); + if (this.member == null) + this.member = new ArrayList(); + this.member.add(t); + return t; + } + + /** + * @return {@link #member} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies the resource instances that are members of the group.) + */ + public List getMemberTarget() { + if (this.memberTarget == null) + this.memberTarget = new ArrayList(); + return this.memberTarget; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "A unique business identifier for this group.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("type", "code", "Identifies the broad classification of the kind of resources the group includes.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("actual", "boolean", "If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals.", 0, java.lang.Integer.MAX_VALUE, actual)); + childrenList.add(new Property("code", "CodeableConcept", "Provides a specific type of resource the group includes. E.g. 'cow', 'syringe', etc.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("name", "string", "A label assigned to the group for human identification and communication.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("quantity", "integer", "A count of the number of resource instances that are part of the group.", 0, java.lang.Integer.MAX_VALUE, quantity)); + childrenList.add(new Property("characteristic", "", "Identifies the traits shared by members of the group.", 0, java.lang.Integer.MAX_VALUE, characteristic)); + childrenList.add(new Property("member", "Reference(Patient|Practitioner|Device|Medication|Substance)", "Identifies the resource instances that are members of the group.", 0, java.lang.Integer.MAX_VALUE, member)); + } + + public Group copy() { + Group dst = new Group(); + copyValues(dst); + dst.identifier = identifier == null ? null : identifier.copy(); + dst.type = type == null ? null : type.copy(); + dst.actual = actual == null ? null : actual.copy(); + dst.code = code == null ? null : code.copy(); + dst.name = name == null ? null : name.copy(); + dst.quantity = quantity == null ? null : quantity.copy(); + if (characteristic != null) { + dst.characteristic = new ArrayList(); + for (GroupCharacteristicComponent i : characteristic) + dst.characteristic.add(i.copy()); + }; + if (member != null) { + dst.member = new ArrayList(); + for (Reference i : member) + dst.member.add(i.copy()); + }; + return dst; + } + + protected Group typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Group)) + return false; + Group o = (Group) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(type, o.type, true) && compareDeep(actual, o.actual, true) + && compareDeep(code, o.code, true) && compareDeep(name, o.name, true) && compareDeep(quantity, o.quantity, true) + && compareDeep(characteristic, o.characteristic, true) && compareDeep(member, o.member, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Group)) + return false; + Group o = (Group) other; + return compareValues(type, o.type, true) && compareValues(actual, o.actual, true) && compareValues(name, o.name, true) + && compareValues(quantity, o.quantity, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (type == null || type.isEmpty()) + && (actual == null || actual.isEmpty()) && (code == null || code.isEmpty()) && (name == null || name.isEmpty()) + && (quantity == null || quantity.isEmpty()) && (characteristic == null || characteristic.isEmpty()) + && (member == null || member.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Group; + } + + @SearchParamDefinition(name="member", path="Group.member", description="Who is in group", type="reference" ) + public static final String SP_MEMBER = "member"; + @SearchParamDefinition(name="characteristic-value", path="", description="A composite of both characteristic and value", type="composite" ) + public static final String SP_CHARACTERISTICVALUE = "characteristic-value"; + @SearchParamDefinition(name="value", path="Group.characteristic.value[x]", description="Value held by characteristic", type="token" ) + public static final String SP_VALUE = "value"; + @SearchParamDefinition(name="actual", path="Group.actual", description="Descriptive or actual", type="token" ) + public static final String SP_ACTUAL = "actual"; + @SearchParamDefinition(name="exclude", path="Group.characteristic.exclude", description="Group includes or excludes", type="token" ) + public static final String SP_EXCLUDE = "exclude"; + @SearchParamDefinition(name="code", path="Group.code", description="The kind of resources contained", type="token" ) + public static final String SP_CODE = "code"; + @SearchParamDefinition(name="characteristic", path="Group.characteristic.code", description="Kind of characteristic", type="token" ) + public static final String SP_CHARACTERISTIC = "characteristic"; + @SearchParamDefinition(name="type", path="Group.type", description="The type of resources the group contains", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="identifier", path="Group.identifier", description="Unique id", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService$HealthcareServiceAvailableTimeComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService$HealthcareServiceAvailableTimeComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..62c407ef3f6755a6679dd8e74df2df777504b4a7 GIT binary patch literal 8390 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 bX{swY?;ItifoJ&s5dVUFZo#*395w$33RBrc literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService$ServiceTypeComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService$ServiceTypeComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..dcd383214757ec32ea6cc0003281a24ac9ec5b5c GIT binary patch literal 4540 zcmcInYi|_i6@F&DX4dO5mj%ovhAiP`cCnYFfi##Bj19%a28xXXX=oVlzV;5x&MY%y zz~t8E(k5w=(n~I;_lrb7@S&9&3`J^FRU%TQ{)T?(uZU3G=gf}1W^LIxQYHJnzvn#X zoadZ(_FrHA^=|;ahF>MI9mNK;z)IpgF6gimC?yexBXd_rIf(>{(p;2do(?|=1I0!J z7;VHQT$bjFOvgmnRUI!S(3-%@3GA+WZE|uliIsRIfjtTAm*J~AzMG^Z%51^+MDXi! z?+uy0Da~6l{k}98Me0Ra`+<(PHN=ClveMAj>v|)(qWx5ExM+Df%kcx#$*Ww+EhszJ z#nv3MRhP@Pa?qh+-N{iWuu5vs@-1$3I*uEdf#o{BhTOce%<9oxSJAQyloof)5<%3v zUO{$QAwaYMf~;+VmxN6$P{v%PO#ht!5^e~0)qCJpMyo=FX-x?I~< zd2xz3pkF*fB$o2iMbjzRG=69-9ne|*k#G8~K((g_ik6?|U&-}C&zb2yRj~4=ogPqL zNyFg(MJ}DSoG~K8LFM_xe5$8ggLYIy6DcWF4F*knRMm@x>e@fQ)Uafq#C$&))VgDk z3=^M_5WSY8j*XUvls6!R*08H}QLYqO`iKe!!mP=)?pV}q;_VO2{DnTV9I4lfreBdo zoX=CXKP7urqMraK$VXW~`LCVl!RBLgFbV_{!E=C=#-c+SU27 zobX)ceK6Lszau11-YwJ2!wW?FA>GGXts$u{j+(aLtrShzI)4xkn!f4~ax_&g^%qUs zb}y4GmVc;Jmh!O>5f74dLuAk)Ta`#7hH(1=##B!x``uA5uMS(1F3q!yY?sI{rsyBE z-TZ|P1Kl`epcOlGyldcx=wo(d+-z~ROND~=b2+tk9B-t;77Pd5*qli9Q_G?YT#%1 z(7+imHe2RXHpM5JSW}w???=*ntm6|62j`PA%k^`nr-5-?H}C?E8h8=s4E!9wkmi>L zOqsrbvkSPUhAhnQszZ7L<(YwmX2*O`S(S&akx?EEU)>c-!g<{3WC**$2x?dzrDPcH z{=nnQ8z!4kaAzJ{TGcIa(2(Fe6hUZypu|i;Be|uj9#dC%I_`wss;QHqw&O$R`SkHz z9ji$Vl4wuT?d%)~E5&6d=GiMfJ@Z!CN;6qTHR4w(RmD;_yxONzGwJd%_0H~8P0Yg zhAir_)8}IAx1r^^)z*V{WhW`eGuclOtKL~kgTdQzo^C)7Z}i}3bT7|6QPYNR z+fYUuE+WVN33wrdCd3==qd~{uBVW)Y4bM#n@hl-o@V7@{>Ydv}!dMZ*bJ?n?&GZs* zmB0O7BK=+_C11f-yc+6DK)a9iI!-f)e61oco+Ca{wJ(#MKq`9|E6=1>rBr!Dv zC$Kis5^k;I*80j;;{+b5Y*m?=qHN%GqId&oyvaOyEAleaP+lFj!tQ_5Ksl-IqJ=Tr z(3{EL!p1DkBxiN)25BGC=+O#68}DHsq0J0$7?Hl6QA9R!P>IN~EW_1y3y)Ty-I)B( z4EH=n#{h4$eTVFR7n}LXk->Yc0PmAnA0Urwp{v>vpTs)EbbN<@(AZ2eF{b8~{`7rp zWbnSA6ipu4$h508O$Zb^G<_XpQ1%~asSG|tOP^S_lmGGC*ffr22`#6MoIW-_D`_hE z_#qL0#8UAwR^Su<)E~!MTn~{Nh$j>Gv5g21NIvm(k8qq|SOv#=3GC)MaKx*rS<&)q zYWWSd{FYjNM=ignmOq4AnDt50M?Q}t>4WSg>mO%%+A@wXa`(_wiCS`;T4~ZfER*gI zwo2B_T@U^kD$o&Mo2omYE$<{r@{x`Wk&gPzEo`gSgGwFQ6&@`-)KU6D5o-*?VPzKq RBb=Y$f0E-CyvB;x@IUM3hqM3y literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService.class new file mode 100644 index 0000000000000000000000000000000000000000..216a4e2c69155ea06458c9c909880b1388cd33a4 GIT binary patch literal 30954 zcmeHw2Yg)BvG<(2Fws2Rmv4erNw3ZgHcE#?>#%a`) zmqHSFB#~1g#mNf^DY$?WS_lwI0t5&UAfb0iLIQ;P{&UW~cW>KuN%Fn#d%ut0kJX+s zGiUxYXU?3maQl1LUPna7YS~KqzIdsEE)_5H$1A#cwUWZ(r2*p4;x7ZlU&U+u@i$%k zy^<=#>--_x-l!CBihtj&RJW+1>AGfA(nRhyky|Ee6}nbgsSVI#To?$}+8{$4%zuX% z+ED&mWoX0r?-7PJod1q6w2}OGl%b90zhew-tgel#q&duX4zr!3Rq%&oH(u8!RMJAO zUZ}=#q^`v)X%W{fQZ?0vb`-OkXlRr8@8nADXsw37P0_Wfm9&EUu26kzxq2FZ)bYo3 z{;21V2L6}<*tKJHZKgp#GPGk2x*>G#`|rPBN$a&)2Hj|A#~E}Bmu4Guo1qaTd zX=rl{y4#?846)Rp`we=)poa{4*q}!Zdd#554SK?$rww|>pyv&G!JwB7dd1LAFzBxa zy=KrG2EA#}I|jXL2r`5)MA#4!LsS@|($MA_Vz42G7~%*+3^&9mLyR`WI75s#MBEV7 zhL~iC$%d#gM6IsPtAu$07{s;cv_NV+Fh9>+FE9S7
    Rl2rXQ0=m0B3YZGnr&=aXOLDC-Z`8e6*zqk1%<+?dWy#t4wu* zZ)!^_nG-Z*#aW4MiH5#HD&4Rml`qT_RMDF1$|MSXxul@Ep62;0vbnB??)32uTe?%Z zhEyhBNMt&a4L#Y;WV)f*W;|~p7>#b}gPfk^x>P;|wHh;-Y#~udWi!yCp)8|Bv1`NP z?o_%H+`^ee4@ML&KpR0*%F;UqA}Es0btZEmIOO|+LOrQW2(g0rYvLS1$CYK|9LSPn zz9X0FWd$&t!TIiNuCOGzC6!5Wm7p>HhWb=XAD1f(4709b!vzOEQ;)5iqEu%l2Gha-7Ei2pG4mI~ljc#J6{YjT&;d z?Va(wa?f~AVn=*)GTxiZZiD-D3YvHL#L#Y#CAKY*>q^4O2b+QxCkn}~Y;K33>1B0U z42R>nvN#LPd)aMowT+&K7RmVLTsF}e2ZoYgJiEo#Wpgr>>5BIzb8M4jXB?J-_olW% z|IYe&YcieeC~%JizRSrOw?@T`Gw2LE!;g|mP#V*Q+2=sGEs-hMa@bS3OQL{bWEj4@ zdT&gFL+hNP$nJVbE|0SBh&I3%dD#g|vQZ(_!xk;uun3)|P5oy?+H9-p+ zdca{jLM9U>avj}}B532k zjW^WRJF-1J7zUdmEU3S+vr|Sy1i}DS81zJDN6}QNe7+CU1Zx8nkaIA;d56?GE8$2K z0M+KcLNZ^+igk2blc_V6?@cFmKzqQl#Rji{RW#n0LCAMPr);wG|Jtzu$5`^5LN2i+ z$qM8d%!r_6SR--?jyPNyPi)Ti6`X3}yNWI~1?dp!L`N~YDEzR_r#rFYHvg+wVW>m5 zca@kRxm-v)2xMzvCKE3DdSFC0)Io=#=9vcs}tpUhotMhKziS{COF zr2sd`;v2_#Q)wBR!4vZW*^yTg&w4=@{Ev@;V*wVFuGHpK8d@+mx}feQS-Bh_C$Q#o zcVZjnsTH&wBtYWqzEm#B^U7R8GD$Vhv5fR23%r8JyoMp_%Uk%!C$F%k#uz8IHe+ll_l8$PH0tZJWtrL&~oxX_Jtr=$1rpyksc?~buxq` z&*@;C*f}@>+n$a0CUS|cT%xx-UmtJA;w%Z}V%)a{OGOF@%VaIVF3YwkAQLFYQow7k z_wker$2;Q4+u_DrlWFOpu!tHO+!R6)$?D_lWj5s;vCE=~3{sOK49pKvv^SkR2Pze0 zwv|tzER!xUWYhCZM;hVeDYpc9c9J-}%9MZ{#xEVswi;MFpaT4-uaHMF7td$=avjOK zc)kz86|odejU6(jS(C`6Q&`P1g*wP*$FLaZ*1{{I8| z&jSkYHIU@}yLzBi)BRTbx6Zp!Ru#O!j^0f1?#ZT<0TZ{y#v_ zoW}U#Y}%0_@Y#d8cw)lXn=Cnx8B&X%pc4+46nYOqBy_w=~T7&a#h*sVI3R2)AYbYJK1yI ztcdF3$@;E(tQvir)7YhTXVa-p94t6{V*}pT(E*<=V9ij8z-GA_N7(Mo=H*F}gCj@I zj67Ni5RA3V%ACy&w~b<)ortGZXPm+C)C+pxf2Ce9XNAIkc~YjOg9Kg68JB4g`Sk5zX=Tc|p5s8itoSY!^AhF1H%9JSIhZP&V^2rXIBeK1^ z6PYf#CGSiW5^-Lxcojqb#%E?pWK3-bTv>Vl$KlX)mo$RR{{MFe4_gdChJw_zM{Q0I z?X1;tfS^u51|tGuC&m2Y%+P)Ege`)!pm`pa`k-gWaKhn|LX8+Q*+QbDu!eIqLGuqO z`XLvwY2~SLZP_)_)tz&|A%gn&;F?2^IS$T*({hEh(<*C=$3T| z@~~vEcMKDB28Rf<$_yaRRNKmuFcsy=wz&<0GhoT+&h{Xm;uEVv@t|DpygA>`o9FXq z{+lI0rvU|dPQEmk?dxT|j(}cn{MA8vT=ppLtDT8qdhuv$W^?956W9cm1qH@fe36J-Mm4xIE^TtK3fM= zBLy8{&DjEbg&7tE4G*dY+aYktR3g1Dnd76Z_U0vm#3_)5FvK@sg>{K^UowJmQ|hc| zjulkZy5@}5rj~Whi<=fVwlytX-Le6dYIdfv0ye0yJnV|tG4tqH02vv5j(?1nH5V8v=c z-Mo4gZs7dFta~Qhjj<4`SWdYL8FqMbAeMmts>YQ~23;*^yq~=Zs(Iqyhzu2H2kLy1 z9jr)T?d;Lzi`Pfx)rnUmNORM^NHYam!eEJFVl)p}B zu?|k>F_(e3QnT-naLHRWWvXX^fbR@!#k#w7Wun)VFyGhdkS==%b|>;qnb2pWuC0Nb zL}#b7p%!w=`F*kPJiOC@iJ{C2`!00q0jP^WfD%J0QsOGg!ROS2#$2cwW_2oxvQ`J8Y*0afD?% z=i-USQ|Rg*o}k53{LAd2kANpHPFFaQu<;!V$h>ux#X2=*eI1I71XW_NW(ORophe!r zEm606www{*8Q3t`(*Pb|7~IvvT)wPubwv(@K78?pEno2h57m$oR1Hx9)oiM!;vJWo z3+@UYqqE0oHwn&NiatD=RV;RPwQ+FqwBd1)o4cF9F9?gEpFr87(SNys2FMI<0Gq%D zj-<`zNw00vngdKt>&O?wgFqiSuV7ZC(!eU&64sTUj+TH!p9#F~TGC`z=O_(9n|)-) zCuxGVS~JytN_MDG))x?55-@$#gE)CeFoexxo!_bf3_rY5zPTUZ%yt;DxCmT*q37cutIM zmyH*VSE>t#0~1$I7f9e4=(yD?o=MvhIMM`nQGugW8(VaZJe$V(sLhQ5_SeRowZI#r z3h3lyi0!VklUnY~b2qiz9cm8lSZvu7cnx>)8xALMRG1p!IWqdXn~)d;t)CmQen181 zsT&?j9ioRjspahD^~_lbAsCIjrtScq>g+ua@0C^F?LM*+)Og54b!WDWs$BkEM`5Vr z@w)2p6kH8K?m+B=E=BIE1G%@Z5;(W2lPe?)K&V(iZ@a+juG$vJqaI~+cLln;DwG9_ z=PZC*8o*V<3OUYVaP+};cOI&sipe}xOy{n0Bynmt>qsrl3aOBMtD-7mX&hwAhrW2p zin(OEqP>*JUF|$?ZTSTTevij}g&puXxwGb12ZD|{fLr+%0QeU6q3_|XJ?>8UxB@US zqe{F(z{%v2WU?3cy5$$)MTvZJ-c-z`fr_ZLn{QRN<9H#JZ{j0oHOpF(>LrHSIUHyL zID5lO>kpvVl59^Rm9dCGaG))zqibcWe5G+RUKJuU@7|G4VK)tk+J}wGAPV&o(f0?E^9GH0C$C+)(Tzju_oazZ5j7TxaWO zAV#;*ulbJrV271gCyT{HfobK$c(&~^x|6|QRF1@FyTEOBjP9X(@tW*V$F0`WvL-Dq zo-u6`JHU{l6;+$AogUN95PM_VnOY)75AaB49P~&!)HX6k4>R3y2ThlBJOho1&|`gM1-!=waqcDLpwDlDp}hp<+OEXZ80%~u8N7_{4tt8#`8xte@y0& z8veLnJaB*rXRY&Cl8Z;j98B>em0@G_i1+92v@pn(O`|% zk@>AcVB())$v^Icxz(G`!n;}Y3n8=fY$eP#PJgDB8$3YYlIrTiC~<*;tN=H^+1%<( zBNoraa_#i+RUumDcCpT^vzvj;RbI?tujrD<`6Patkjyu95CaYNCE4F7Q;fc=O zkflP|s{sBj514ODa{2}+9IJ_<$7PR7{{$^}ayJ$6pI-WFnwvc**;4&YhtJIgkLTBX zDr?2MSjnlg#03}e4dqi^w+qVQ4ZuQ(heb)1Do^re@$dAg3S&(jUyf)p9Qf%H({Xj1=@ zsjp?~o0IlNR^zwK;%=}&cIY3#J>~%JW$NGA)b;@GW9s`sjf~Du{eYAD_kQXJnff76 zBd_yQKkTIbgP-~lrhXLENbLO7kD1gGxDd?5F+BtGl9|Q;G)}HED(gjTq?i?shZ7Y zfR{_9;v!-^mVtgQgP6-;a6tlRa~bO8GQ=DU`?9F=a~Z~5jsO>AfTg(%cXAow=Q5JH zi~<*=kfphdc5)fx=Q5VLi~|?spryHtcXFBF=W---iGvH0*wS38om`IcbD79oCV>mG z;L=O9^y9hVog#qoJDhj!=13Ftr9(SM$||9tMhfcr1B`kz?rPn$gb=|=8<68CT9 z{)@nWak0Nx;_ZJm_iy6sGX`p>%?jhfwW4k`C<*Yt`#ljXtskVKb)JTxJE)( z@|SD)$CxXoUBkaS?5ENAf+PPMsA6T^9;)0)k?@tf-hV1|CFnFMasug)u@NFafN`Hj zM~61i^w8pDLizfEB?iVi+-v z)=w*{Is#b>g}TTHb<^NbipGS_qRFAHQl3HL9U7yHbr7;%oN9{dFj1Ti5!$UZX&(*j zr-A!v(1xnPduhn^`)Fvt#I_0p83yBUzoNh~6otSX6wTAXP=Q8<`e=M;8%+sqmqNp& zjT{0|8*G5*n%==?({7=m{AUjxv6J-hF4(zK`jBK3A#M0c@G7xUARUwDp9q8) zBVD>oEf2}*XBSW;bRlX^6Pru|r>4WpX*vR$j@(VdF|y%aO+N)qKMhSk15G~*O)rL~ zpL1z?x;P_fgu{I!{31s9C3HPgBmzb_%00r-E?bPj2*>WGQ5fMU?+Cw+5q<+B{3b?t zIYxK|M))n)2sa1XVwAGQs68~Ulr46-ZP6h*gESrG)AUEs^eS{s2F~5_uDLrNI*l*t zq~`7(=(HDecb^=9WA1JN*DhNf=iCKXHFw9Cn7b2r?jBik?*1Gie}TDs9p>)!n7cP% z?p}|%d!rnJZ|-)Bl!=97?oNQ2;yiZ)R4g@je~r0&JLc{kn7emk?%pNkS#$R+2-zyq zrYNUJSG)b?D3`xX#6TwPrfLkOx`?fsyZ1rS`{6GSz+Zk3e|Zr8@{km2&D|awVCUSe zR{m1GhbEWumq#TVd+ufqm(SyFK3UOg0^o`P)jq#_4leLKx}Gg^Cc!*2_>5pAZbdZT zMFaWk9y3K6TUf(Ug7~P%8lME}EeD@>=A? zeA*tGx?T=XEe{I$H-P+`F!ftBBJ?&@hu)#u(0it;p}|98bFnSZ*0pY1PYbejEk@#% z7>*#wMrmMJr;%ZU#)m6tO1M%=v~0aS&_=b&*0rT=9UkPi(K(09r^?M|N3gAHy|xaI z#v;rq(+2}>4a6*4Lx})ehpVMrhpj(U*4DMk*5K=~wZuHo*5N5Yeku(PPoojxI;sv& zr`m9Xsj6w~4+q-1&TZ@ILAI`gt?P=;E4?c`8xoI)t>?hjC&1QoVe5HPqGjuk1lp)h z*&4yI)VvO#=(f>E50}qkH=lEZZC&TH^(nCRa@hL3KwASb%hpgL$kr`VuEW;nm$h}B zvNiZRY%MVlw)F-ezY(@R4Yu9{Tb~YFpJ}RU+WLaPHNW0%>jsyt%{9LswyyWux(gD! zVe1rZeHLuJ6}C=GiI%M|475?bvUPpwH9y?zw$VkwYks}YM%!Vdb6}&71!_9Ot?4mA zn$CcxGrXFf3r)|1rsqS`3!v$R(DWjgrXLT~bcWJ&Mj1^%>DKfU!J5wSY5F;6`gv&j z$-wzL)2->TE=|ofVkR`5>DBa0(DcjDv>%%8gr;ACreAew`X7Os&QzMtEHi(<>DKg9 zhs)>NZa$w5p1(7Fi2VSFT?xcK6F7f?m^FW)M9}>GnUw38zn?8Te`l)s3%-u|D=`nA zzt;l!{g}VM!2G=q^Y?npUzPSn$eh0y2YU4^x2=zJ+1i}Hysw<)we@X~_-okucG&t3 z*!oV`S|xtg{QX>@jbhks)~jbLuLfWC zYA5FK>iNEGGZG>_5~jhCD2<5dR2?y>HllJr+pGHn_h$=~1oLcV0j#>9XjQpCiwp(t zDyoVMlPWm&XFGw%S8PK#_h;a$_Gb%9?9UeR{_Mn3`?JVMh#W-~kD4r%4ixQO z?yke-vr%GT^Z8!zYTD$DJCOuMBAbEO_XFb&5VPVAln7W&BPl7@5qJKpY}{#5aR+=I ztEt31a5ate0{OFH>OA630dc1faYvmE+HvOxfwo@iw)L_gTQ7yJmwIjeQAj)&wmuKG zJ|DKe0JgqRDrwpJ%0L?}RkmJQ#@3&3+vtaf%jeT>K0gY!^-`a$FM+Kug{`j&v^5a3 zYz-xXY`xQK>mQf3^-^VP@O9W)VjgVk%YpnAu=TfL>+itU--WHeXR2yuPCp5Zj?J#< z*bJ*S7pA0^LyMR=#f2$ zj(ZUu_aQo7gXp*q(eYY21m7BSwe7}^HAV&{j*bB;mWqxyAv*pNFy4&l_$x%mTckW| zjoA%-_t<9Z!a)?@S4=lgoL1H;(*z2vQx^u(tsEy&k-H%9H#8{nTN)m@o8pmsXjE#4@C1l7;k}>!qFG(h@nvNlz(yvf{(s9BsZ%HB# z0p*8*@*jZmBUB%GlxE=Xv606-D34ROB>Ms#Xt~RQmSbGYy$e@gD0#~Km@)8cTf*ojONe6lnB42`PFGICg;6Sg!fnI?Fse?tI1ML?-Hvx7y&ao*Sb(#3l!ISQ9KbUodgscgHXIR5JhlRD6Ty`6q_LOWT3bdC@uqv%|LM( zP&_3V#oNlF7@%S)6kC8|D^P3$itRvAC7srcW?%euAc`$66kC8|ixQ7#oq>^*ycj94JfvGQS66GJAvX?f>69W z5JhlRD7GCQir;|9Zvw^3f#MZF@moOg3ZSSCH+^yOp0X$gs8|ZcD}mwM z3ZUv!O|v{r+p4x#ouis&dzyAY!J_P z+0ozAXQB_%uINK_Q}khaH2Md6Gx~@a7JXFIM;{Z-(LajL=%2*7(Z|Kk=o4ah^ht4d z^eORT^l2>`eMYN}KC8`-KBujZKCk7XFKC~QzNmdK`jYuF?)OLl@LL*uV$-J&z&;b3 zzVQ0}bSd^E|GA>F`Jx^?_?0Mw}KO_tzgBfY3M$E4}DS1rd{vfEA|zwV(g;gK2F;sq3+W^gSYC4E^vcN*`KB_9iwkTrp2jfbp$mn`$u2Xn=%kDYk6 z!LrQv0bGms0jRCzTJt8EYq3E=Z5`L*mev{1D7dalKdrd5keM%2#WTHHBVwYbXy zhnZZ9dm^hAS2yT8i)+mr0+xmwg0H9xlm#w*<>7k?eHXI63!v{;ZGFM1(M2zholDR! zV){nVf6b=nQJLq5JSvtuA_*rIw>__0qSw=w*IZj=s%H-|nK9nMpbNb{Bo|5vv$PixKQz#mfF? z8W{Zx9TEL29T|O%=12cVE2FPdNAwNa5q*=+i~fT?9es9@EYL%uRS%1l9ud8IRD4L+#g}zMd|$5=Kh_6`{W^Xws1Fp+>x1#XBOIa) z*N1B3^eU}JAEqtQkI>rn5!z|`NUcjBrCp?t)-Kb>YG2jIX}k3C+Rgd|?S4J3J)&1@ z&+12o!urI}aD8%UoPKnuMz0Ai(Wivk_1e&B`m|7&UKhGZpB}nQZwP%=pAp)n9}~J+ zpBcJepA~vUKQ8pFK06%Nj}H&mPY93G=Z0(adEq7c{BXOzkTV)_G0l9Jrt0EhJQse8 zCN9Uf_wn>rlQj>UfBu==KVXhJ!%-N9ssR((@2lM>Y>c$et?h^@doH1=>b@zdLk z4(|(oP4K9-Fw%JQQDFp2$2T|^SMQMJ8$x{%O864_j8o8W;>0U-<+K~= zQuXBqx^yLiUZ@WLhWF9s{UVE^hN6bz75(B&6i1;rN)bwZWY80zg>#-=- zqFAenlTfTfu}&3-qgan(y(&ggoPpvDS)?~moQdL0ReTP`St!m@#fMOwjpA%oydA{_ zC@w(p@_yQnVk3%;s(2-eO(-_0&R;`uDT+%~@nRI4QEXP7&qZ-Lipy287sb^mu2#ha zifd3@qlz3L*P^&q6&It}f?|s*@;i%G6kAnsGKy^|wy7e&|7=IGT@}4g&*hz=zLX4o z8CB}dG*mx@hUv>`l)gglFJcs~G~N;CV!EBguhQ}3Vr5{u&peL*A{+Qy!3MUB^zD9P z4J{*~$QoKkLXkDJ%zz?mXyJ|`YiJ>hB5PPjK;3<9nuo|V5* t;$NCPhdn-iGxfZ9AunE}AE0#%=Hw#$;P=0<|6ho|SK{vk{QV(S{5NOe`pN(R literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/HealthcareService.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService.java similarity index 91% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/HealthcareService.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService.java index 327d0384efd..5c6d03845e8 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/HealthcareService.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HealthcareService.java @@ -1,1853 +1,1926 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * (informative) The details of a Healthcare Service available at a location. - */ -@ResourceDef(name="HealthcareService", profile="http://hl7.org/fhir/Profile/HealthcareService") -public class HealthcareService extends DomainResource { - - @Block() - public static class ServiceTypeComponent extends BackboneElement { - /** - * The specific type of service being delivered or performed. - */ - @Child(name="type", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="The specific type of service being delivered or performed", formalDefinition="The specific type of service being delivered or performed." ) - protected CodeableConcept type; - - /** - * Collection of Specialties handled by the Service Site. This is more of a Medical Term. - */ - @Child(name="specialty", type={CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Collection of Specialties handled by the Service Site. This is more of a Medical Term", formalDefinition="Collection of Specialties handled by the Service Site. This is more of a Medical Term." ) - protected List specialty; - - private static final long serialVersionUID = 1703986174L; - - public ServiceTypeComponent() { - super(); - } - - public ServiceTypeComponent(CodeableConcept type) { - super(); - this.type = type; - } - - /** - * @return {@link #type} (The specific type of service being delivered or performed.) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ServiceTypeComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The specific type of service being delivered or performed.) - */ - public ServiceTypeComponent setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #specialty} (Collection of Specialties handled by the Service Site. This is more of a Medical Term.) - */ - public List getSpecialty() { - if (this.specialty == null) - this.specialty = new ArrayList(); - return this.specialty; - } - - public boolean hasSpecialty() { - if (this.specialty == null) - return false; - for (CodeableConcept item : this.specialty) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #specialty} (Collection of Specialties handled by the Service Site. This is more of a Medical Term.) - */ - // syntactic sugar - public CodeableConcept addSpecialty() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.specialty == null) - this.specialty = new ArrayList(); - this.specialty.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "CodeableConcept", "The specific type of service being delivered or performed.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("specialty", "CodeableConcept", "Collection of Specialties handled by the Service Site. This is more of a Medical Term.", 0, java.lang.Integer.MAX_VALUE, specialty)); - } - - public ServiceTypeComponent copy() { - ServiceTypeComponent dst = new ServiceTypeComponent(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - if (specialty != null) { - dst.specialty = new ArrayList(); - for (CodeableConcept i : specialty) - dst.specialty.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (specialty == null || specialty.isEmpty()) - ; - } - - } - - @Block() - public static class HealthcareServiceAvailableTimeComponent extends BackboneElement { - /** - * Indicates which Days of the week are available between the Start and End Times. - */ - @Child(name="daysOfWeek", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Indicates which Days of the week are available between the Start and End Times", formalDefinition="Indicates which Days of the week are available between the Start and End Times." ) - protected List daysOfWeek; - - /** - * Is this always available? (hence times are irrelevant) e.g. 24 hour service. - */ - @Child(name="allDay", type={BooleanType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Is this always available? (hence times are irrelevant) e.g. 24 hour service", formalDefinition="Is this always available? (hence times are irrelevant) e.g. 24 hour service." ) - protected BooleanType allDay; - - /** - * The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored. - */ - @Child(name="availableStartTime", type={DateTimeType.class}, order=3, min=0, max=1) - @Description(shortDefinition="The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored", formalDefinition="The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored." ) - protected DateTimeType availableStartTime; - - /** - * The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored. - */ - @Child(name="availableEndTime", type={DateTimeType.class}, order=4, min=0, max=1) - @Description(shortDefinition="The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored", formalDefinition="The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored." ) - protected DateTimeType availableEndTime; - - private static final long serialVersionUID = 1384198535L; - - public HealthcareServiceAvailableTimeComponent() { - super(); - } - - /** - * @return {@link #daysOfWeek} (Indicates which Days of the week are available between the Start and End Times.) - */ - public List getDaysOfWeek() { - if (this.daysOfWeek == null) - this.daysOfWeek = new ArrayList(); - return this.daysOfWeek; - } - - public boolean hasDaysOfWeek() { - if (this.daysOfWeek == null) - return false; - for (CodeableConcept item : this.daysOfWeek) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #daysOfWeek} (Indicates which Days of the week are available between the Start and End Times.) - */ - // syntactic sugar - public CodeableConcept addDaysOfWeek() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.daysOfWeek == null) - this.daysOfWeek = new ArrayList(); - this.daysOfWeek.add(t); - return t; - } - - /** - * @return {@link #allDay} (Is this always available? (hence times are irrelevant) e.g. 24 hour service.). This is the underlying object with id, value and extensions. The accessor "getAllDay" gives direct access to the value - */ - public BooleanType getAllDayElement() { - if (this.allDay == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareServiceAvailableTimeComponent.allDay"); - else if (Configuration.doAutoCreate()) - this.allDay = new BooleanType(); - return this.allDay; - } - - public boolean hasAllDayElement() { - return this.allDay != null && !this.allDay.isEmpty(); - } - - public boolean hasAllDay() { - return this.allDay != null && !this.allDay.isEmpty(); - } - - /** - * @param value {@link #allDay} (Is this always available? (hence times are irrelevant) e.g. 24 hour service.). This is the underlying object with id, value and extensions. The accessor "getAllDay" gives direct access to the value - */ - public HealthcareServiceAvailableTimeComponent setAllDayElement(BooleanType value) { - this.allDay = value; - return this; - } - - /** - * @return Is this always available? (hence times are irrelevant) e.g. 24 hour service. - */ - public boolean getAllDay() { - return this.allDay == null ? false : this.allDay.getValue(); - } - - /** - * @param value Is this always available? (hence times are irrelevant) e.g. 24 hour service. - */ - public HealthcareServiceAvailableTimeComponent setAllDay(boolean value) { - if (value == false) - this.allDay = null; - else { - if (this.allDay == null) - this.allDay = new BooleanType(); - this.allDay.setValue(value); - } - return this; - } - - /** - * @return {@link #availableStartTime} (The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableStartTime" gives direct access to the value - */ - public DateTimeType getAvailableStartTimeElement() { - if (this.availableStartTime == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareServiceAvailableTimeComponent.availableStartTime"); - else if (Configuration.doAutoCreate()) - this.availableStartTime = new DateTimeType(); - return this.availableStartTime; - } - - public boolean hasAvailableStartTimeElement() { - return this.availableStartTime != null && !this.availableStartTime.isEmpty(); - } - - public boolean hasAvailableStartTime() { - return this.availableStartTime != null && !this.availableStartTime.isEmpty(); - } - - /** - * @param value {@link #availableStartTime} (The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableStartTime" gives direct access to the value - */ - public HealthcareServiceAvailableTimeComponent setAvailableStartTimeElement(DateTimeType value) { - this.availableStartTime = value; - return this; - } - - /** - * @return The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored. - */ - public Date getAvailableStartTime() { - return this.availableStartTime == null ? null : this.availableStartTime.getValue(); - } - - /** - * @param value The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored. - */ - public HealthcareServiceAvailableTimeComponent setAvailableStartTime(Date value) { - if (value == null) - this.availableStartTime = null; - else { - if (this.availableStartTime == null) - this.availableStartTime = new DateTimeType(); - this.availableStartTime.setValue(value); - } - return this; - } - - /** - * @return {@link #availableEndTime} (The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableEndTime" gives direct access to the value - */ - public DateTimeType getAvailableEndTimeElement() { - if (this.availableEndTime == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareServiceAvailableTimeComponent.availableEndTime"); - else if (Configuration.doAutoCreate()) - this.availableEndTime = new DateTimeType(); - return this.availableEndTime; - } - - public boolean hasAvailableEndTimeElement() { - return this.availableEndTime != null && !this.availableEndTime.isEmpty(); - } - - public boolean hasAvailableEndTime() { - return this.availableEndTime != null && !this.availableEndTime.isEmpty(); - } - - /** - * @param value {@link #availableEndTime} (The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableEndTime" gives direct access to the value - */ - public HealthcareServiceAvailableTimeComponent setAvailableEndTimeElement(DateTimeType value) { - this.availableEndTime = value; - return this; - } - - /** - * @return The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored. - */ - public Date getAvailableEndTime() { - return this.availableEndTime == null ? null : this.availableEndTime.getValue(); - } - - /** - * @param value The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored. - */ - public HealthcareServiceAvailableTimeComponent setAvailableEndTime(Date value) { - if (value == null) - this.availableEndTime = null; - else { - if (this.availableEndTime == null) - this.availableEndTime = new DateTimeType(); - this.availableEndTime.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("daysOfWeek", "CodeableConcept", "Indicates which Days of the week are available between the Start and End Times.", 0, java.lang.Integer.MAX_VALUE, daysOfWeek)); - childrenList.add(new Property("allDay", "boolean", "Is this always available? (hence times are irrelevant) e.g. 24 hour service.", 0, java.lang.Integer.MAX_VALUE, allDay)); - childrenList.add(new Property("availableStartTime", "dateTime", "The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored.", 0, java.lang.Integer.MAX_VALUE, availableStartTime)); - childrenList.add(new Property("availableEndTime", "dateTime", "The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored.", 0, java.lang.Integer.MAX_VALUE, availableEndTime)); - } - - public HealthcareServiceAvailableTimeComponent copy() { - HealthcareServiceAvailableTimeComponent dst = new HealthcareServiceAvailableTimeComponent(); - copyValues(dst); - if (daysOfWeek != null) { - dst.daysOfWeek = new ArrayList(); - for (CodeableConcept i : daysOfWeek) - dst.daysOfWeek.add(i.copy()); - }; - dst.allDay = allDay == null ? null : allDay.copy(); - dst.availableStartTime = availableStartTime == null ? null : availableStartTime.copy(); - dst.availableEndTime = availableEndTime == null ? null : availableEndTime.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (daysOfWeek == null || daysOfWeek.isEmpty()) && (allDay == null || allDay.isEmpty()) - && (availableStartTime == null || availableStartTime.isEmpty()) && (availableEndTime == null || availableEndTime.isEmpty()) - ; - } - - } - - @Block() - public static class HealthcareServiceNotAvailableTimeComponent extends BackboneElement { - /** - * The reason that can be presented to the user as to why this time is not available. - */ - @Child(name="description", type={StringType.class}, order=1, min=1, max=1) - @Description(shortDefinition="The reason that can be presented to the user as to why this time is not available", formalDefinition="The reason that can be presented to the user as to why this time is not available." ) - protected StringType description; - - /** - * Service is not available (seasonally or for a public holiday) from this date. - */ - @Child(name="startDate", type={DateTimeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Service is not available (seasonally or for a public holiday) from this date", formalDefinition="Service is not available (seasonally or for a public holiday) from this date." ) - protected DateTimeType startDate; - - /** - * Service is not available (seasonally or for a public holiday) until this date. - */ - @Child(name="endDate", type={DateTimeType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Service is not available (seasonally or for a public holiday) until this date", formalDefinition="Service is not available (seasonally or for a public holiday) until this date." ) - protected DateTimeType endDate; - - private static final long serialVersionUID = -1448794L; - - public HealthcareServiceNotAvailableTimeComponent() { - super(); - } - - public HealthcareServiceNotAvailableTimeComponent(StringType description) { - super(); - this.description = description; - } - - /** - * @return {@link #description} (The reason that can be presented to the user as to why this time is not available.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareServiceNotAvailableTimeComponent.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (The reason that can be presented to the user as to why this time is not available.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public HealthcareServiceNotAvailableTimeComponent setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return The reason that can be presented to the user as to why this time is not available. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value The reason that can be presented to the user as to why this time is not available. - */ - public HealthcareServiceNotAvailableTimeComponent setDescription(String value) { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - return this; - } - - /** - * @return {@link #startDate} (Service is not available (seasonally or for a public holiday) from this date.). This is the underlying object with id, value and extensions. The accessor "getStartDate" gives direct access to the value - */ - public DateTimeType getStartDateElement() { - if (this.startDate == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareServiceNotAvailableTimeComponent.startDate"); - else if (Configuration.doAutoCreate()) - this.startDate = new DateTimeType(); - return this.startDate; - } - - public boolean hasStartDateElement() { - return this.startDate != null && !this.startDate.isEmpty(); - } - - public boolean hasStartDate() { - return this.startDate != null && !this.startDate.isEmpty(); - } - - /** - * @param value {@link #startDate} (Service is not available (seasonally or for a public holiday) from this date.). This is the underlying object with id, value and extensions. The accessor "getStartDate" gives direct access to the value - */ - public HealthcareServiceNotAvailableTimeComponent setStartDateElement(DateTimeType value) { - this.startDate = value; - return this; - } - - /** - * @return Service is not available (seasonally or for a public holiday) from this date. - */ - public Date getStartDate() { - return this.startDate == null ? null : this.startDate.getValue(); - } - - /** - * @param value Service is not available (seasonally or for a public holiday) from this date. - */ - public HealthcareServiceNotAvailableTimeComponent setStartDate(Date value) { - if (value == null) - this.startDate = null; - else { - if (this.startDate == null) - this.startDate = new DateTimeType(); - this.startDate.setValue(value); - } - return this; - } - - /** - * @return {@link #endDate} (Service is not available (seasonally or for a public holiday) until this date.). This is the underlying object with id, value and extensions. The accessor "getEndDate" gives direct access to the value - */ - public DateTimeType getEndDateElement() { - if (this.endDate == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareServiceNotAvailableTimeComponent.endDate"); - else if (Configuration.doAutoCreate()) - this.endDate = new DateTimeType(); - return this.endDate; - } - - public boolean hasEndDateElement() { - return this.endDate != null && !this.endDate.isEmpty(); - } - - public boolean hasEndDate() { - return this.endDate != null && !this.endDate.isEmpty(); - } - - /** - * @param value {@link #endDate} (Service is not available (seasonally or for a public holiday) until this date.). This is the underlying object with id, value and extensions. The accessor "getEndDate" gives direct access to the value - */ - public HealthcareServiceNotAvailableTimeComponent setEndDateElement(DateTimeType value) { - this.endDate = value; - return this; - } - - /** - * @return Service is not available (seasonally or for a public holiday) until this date. - */ - public Date getEndDate() { - return this.endDate == null ? null : this.endDate.getValue(); - } - - /** - * @param value Service is not available (seasonally or for a public holiday) until this date. - */ - public HealthcareServiceNotAvailableTimeComponent setEndDate(Date value) { - if (value == null) - this.endDate = null; - else { - if (this.endDate == null) - this.endDate = new DateTimeType(); - this.endDate.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("description", "string", "The reason that can be presented to the user as to why this time is not available.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("startDate", "dateTime", "Service is not available (seasonally or for a public holiday) from this date.", 0, java.lang.Integer.MAX_VALUE, startDate)); - childrenList.add(new Property("endDate", "dateTime", "Service is not available (seasonally or for a public holiday) until this date.", 0, java.lang.Integer.MAX_VALUE, endDate)); - } - - public HealthcareServiceNotAvailableTimeComponent copy() { - HealthcareServiceNotAvailableTimeComponent dst = new HealthcareServiceNotAvailableTimeComponent(); - copyValues(dst); - dst.description = description == null ? null : description.copy(); - dst.startDate = startDate == null ? null : startDate.copy(); - dst.endDate = endDate == null ? null : endDate.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (description == null || description.isEmpty()) && (startDate == null || startDate.isEmpty()) - && (endDate == null || endDate.isEmpty()); - } - - } - - /** - * External Ids for this item. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External Ids for this item", formalDefinition="External Ids for this item." ) - protected List identifier; - - /** - * The location where this healthcare service may be provided. - */ - @Child(name="location", type={Location.class}, order=0, min=1, max=1) - @Description(shortDefinition="The location where this healthcare service may be provided", formalDefinition="The location where this healthcare service may be provided." ) - protected Reference location; - - /** - * The actual object that is the target of the reference (The location where this healthcare service may be provided.) - */ - protected Location locationTarget; - - /** - * Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type. - */ - @Child(name="serviceCategory", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type", formalDefinition="Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type." ) - protected CodeableConcept serviceCategory; - - /** - * A specific type of service that may be delivered or performed. - */ - @Child(name="serviceType", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="A specific type of service that may be delivered or performed", formalDefinition="A specific type of service that may be delivered or performed." ) - protected List serviceType; - - /** - * Further description of the service as it would be presented to a consumer while searching. - */ - @Child(name="serviceName", type={StringType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Further description of the service as it would be presented to a consumer while searching", formalDefinition="Further description of the service as it would be presented to a consumer while searching." ) - protected StringType serviceName; - - /** - * Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName. - */ - @Child(name="comment", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName", formalDefinition="Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName." ) - protected StringType comment; - - /** - * Extra details about the service that can't be placed in the other fields. - */ - @Child(name="extraDetails", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Extra details about the service that can't be placed in the other fields", formalDefinition="Extra details about the service that can't be placed in the other fields." ) - protected StringType extraDetails; - - /** - * The free provision code provides a link to the Free Provision reference entity to enable the selection of one free provision type. - */ - @Child(name="freeProvisionCode", type={CodeableConcept.class}, order=6, min=0, max=1) - @Description(shortDefinition="The free provision code provides a link to the Free Provision reference entity to enable the selection of one free provision type", formalDefinition="The free provision code provides a link to the Free Provision reference entity to enable the selection of one free provision type." ) - protected CodeableConcept freeProvisionCode; - - /** - * Does this service have specific eligibility requirements that need to be met in order to use the service. - */ - @Child(name="eligibility", type={CodeableConcept.class}, order=7, min=0, max=1) - @Description(shortDefinition="Does this service have specific eligibility requirements that need to be met in order to use the service", formalDefinition="Does this service have specific eligibility requirements that need to be met in order to use the service." ) - protected CodeableConcept eligibility; - - /** - * The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page. - */ - @Child(name="eligibilityNote", type={StringType.class}, order=8, min=0, max=1) - @Description(shortDefinition="Describes the eligibility conditions for the service", formalDefinition="The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page." ) - protected StringType eligibilityNote; - - /** - * Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. If this flag is 'NotDefined', then this flag is overridden by the Site's availability flag. (ConditionalIndicator Enum). - */ - @Child(name="appointmentRequired", type={CodeableConcept.class}, order=9, min=0, max=1) - @Description(shortDefinition="Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. If this flag is 'NotDefined', then this flag is overridden by the Site's availability flag. (ConditionalIndicator Enum)", formalDefinition="Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. If this flag is 'NotDefined', then this flag is overridden by the Site's availability flag. (ConditionalIndicator Enum)." ) - protected CodeableConcept appointmentRequired; - - /** - * If there is an image associated with this Service Site, its URI can be included here. - */ - @Child(name="imageURI", type={UriType.class}, order=10, min=0, max=1) - @Description(shortDefinition="If there is an image associated with this Service Site, its URI can be included here", formalDefinition="If there is an image associated with this Service Site, its URI can be included here." ) - protected UriType imageURI; - - /** - * A Collection of times that the Service Site is available. - */ - @Child(name="availableTime", type={}, order=11, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="A Collection of times that the Service Site is available", formalDefinition="A Collection of times that the Service Site is available." ) - protected List availableTime; - - /** - * Not avail times - need better description. - */ - @Child(name="notAvailableTime", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Not avail times - need better description", formalDefinition="Not avail times - need better description." ) - protected List notAvailableTime; - - /** - * A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times. - */ - @Child(name="availabilityExceptions", type={StringType.class}, order=13, min=0, max=1) - @Description(shortDefinition="A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times", formalDefinition="A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times." ) - protected StringType availabilityExceptions; - - /** - * The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available. - */ - @Child(name="publicKey", type={StringType.class}, order=14, min=0, max=1) - @Description(shortDefinition="The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available", formalDefinition="The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available." ) - protected StringType publicKey; - - /** - * Program Names that can be used to categorize the service. - */ - @Child(name="programName", type={StringType.class}, order=15, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Program Names that can be used to categorize the service", formalDefinition="Program Names that can be used to categorize the service." ) - protected List programName; - - /** - * List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts. - */ - @Child(name="contactPoint", type={ContactPoint.class}, order=16, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts", formalDefinition="List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts." ) - protected List contactPoint; - - /** - * Collection of Characteristics (attributes). - */ - @Child(name="characteristic", type={CodeableConcept.class}, order=17, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Collection of Characteristics (attributes)", formalDefinition="Collection of Characteristics (attributes)." ) - protected List characteristic; - - /** - * Ways that the service accepts referrals. - */ - @Child(name="referralMethod", type={CodeableConcept.class}, order=18, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Ways that the service accepts referrals", formalDefinition="Ways that the service accepts referrals." ) - protected List referralMethod; - - /** - * The setting where this service can be provided, such is in home, or at location in organisation. - */ - @Child(name="setting", type={CodeableConcept.class}, order=19, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="The setting where this service can be provided, such is in home, or at location in organisation", formalDefinition="The setting where this service can be provided, such is in home, or at location in organisation." ) - protected List setting; - - /** - * Collection of Target Groups for the Service Site (The target audience that this service is for). - */ - @Child(name="targetGroup", type={CodeableConcept.class}, order=20, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Collection of Target Groups for the Service Site (The target audience that this service is for)", formalDefinition="Collection of Target Groups for the Service Site (The target audience that this service is for)." ) - protected List targetGroup; - - /** - * Need better description. - */ - @Child(name="coverageArea", type={CodeableConcept.class}, order=21, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Need better description", formalDefinition="Need better description." ) - protected List coverageArea; - - /** - * Need better description. - */ - @Child(name="catchmentArea", type={CodeableConcept.class}, order=22, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Need better description", formalDefinition="Need better description." ) - protected List catchmentArea; - - /** - * List of the specific. - */ - @Child(name="serviceCode", type={CodeableConcept.class}, order=23, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="List of the specific", formalDefinition="List of the specific." ) - protected List serviceCode; - - private static final long serialVersionUID = 1768613427L; - - public HealthcareService() { - super(); - } - - public HealthcareService(Reference location) { - super(); - this.location = location; - } - - /** - * @return {@link #identifier} (External Ids for this item.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (External Ids for this item.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #location} (The location where this healthcare service may be provided.) - */ - public Reference getLocation() { - if (this.location == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.location"); - else if (Configuration.doAutoCreate()) - this.location = new Reference(); - return this.location; - } - - public boolean hasLocation() { - return this.location != null && !this.location.isEmpty(); - } - - /** - * @param value {@link #location} (The location where this healthcare service may be provided.) - */ - public HealthcareService setLocation(Reference value) { - this.location = value; - return this; - } - - /** - * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The location where this healthcare service may be provided.) - */ - public Location getLocationTarget() { - if (this.locationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.location"); - else if (Configuration.doAutoCreate()) - this.locationTarget = new Location(); - return this.locationTarget; - } - - /** - * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The location where this healthcare service may be provided.) - */ - public HealthcareService setLocationTarget(Location value) { - this.locationTarget = value; - return this; - } - - /** - * @return {@link #serviceCategory} (Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type.) - */ - public CodeableConcept getServiceCategory() { - if (this.serviceCategory == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.serviceCategory"); - else if (Configuration.doAutoCreate()) - this.serviceCategory = new CodeableConcept(); - return this.serviceCategory; - } - - public boolean hasServiceCategory() { - return this.serviceCategory != null && !this.serviceCategory.isEmpty(); - } - - /** - * @param value {@link #serviceCategory} (Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type.) - */ - public HealthcareService setServiceCategory(CodeableConcept value) { - this.serviceCategory = value; - return this; - } - - /** - * @return {@link #serviceType} (A specific type of service that may be delivered or performed.) - */ - public List getServiceType() { - if (this.serviceType == null) - this.serviceType = new ArrayList(); - return this.serviceType; - } - - public boolean hasServiceType() { - if (this.serviceType == null) - return false; - for (ServiceTypeComponent item : this.serviceType) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #serviceType} (A specific type of service that may be delivered or performed.) - */ - // syntactic sugar - public ServiceTypeComponent addServiceType() { //3 - ServiceTypeComponent t = new ServiceTypeComponent(); - if (this.serviceType == null) - this.serviceType = new ArrayList(); - this.serviceType.add(t); - return t; - } - - /** - * @return {@link #serviceName} (Further description of the service as it would be presented to a consumer while searching.). This is the underlying object with id, value and extensions. The accessor "getServiceName" gives direct access to the value - */ - public StringType getServiceNameElement() { - if (this.serviceName == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.serviceName"); - else if (Configuration.doAutoCreate()) - this.serviceName = new StringType(); - return this.serviceName; - } - - public boolean hasServiceNameElement() { - return this.serviceName != null && !this.serviceName.isEmpty(); - } - - public boolean hasServiceName() { - return this.serviceName != null && !this.serviceName.isEmpty(); - } - - /** - * @param value {@link #serviceName} (Further description of the service as it would be presented to a consumer while searching.). This is the underlying object with id, value and extensions. The accessor "getServiceName" gives direct access to the value - */ - public HealthcareService setServiceNameElement(StringType value) { - this.serviceName = value; - return this; - } - - /** - * @return Further description of the service as it would be presented to a consumer while searching. - */ - public String getServiceName() { - return this.serviceName == null ? null : this.serviceName.getValue(); - } - - /** - * @param value Further description of the service as it would be presented to a consumer while searching. - */ - public HealthcareService setServiceName(String value) { - if (Utilities.noString(value)) - this.serviceName = null; - else { - if (this.serviceName == null) - this.serviceName = new StringType(); - this.serviceName.setValue(value); - } - return this; - } - - /** - * @return {@link #comment} (Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value - */ - public StringType getCommentElement() { - if (this.comment == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.comment"); - else if (Configuration.doAutoCreate()) - this.comment = new StringType(); - return this.comment; - } - - public boolean hasCommentElement() { - return this.comment != null && !this.comment.isEmpty(); - } - - public boolean hasComment() { - return this.comment != null && !this.comment.isEmpty(); - } - - /** - * @param value {@link #comment} (Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value - */ - public HealthcareService setCommentElement(StringType value) { - this.comment = value; - return this; - } - - /** - * @return Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName. - */ - public String getComment() { - return this.comment == null ? null : this.comment.getValue(); - } - - /** - * @param value Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName. - */ - public HealthcareService setComment(String value) { - if (Utilities.noString(value)) - this.comment = null; - else { - if (this.comment == null) - this.comment = new StringType(); - this.comment.setValue(value); - } - return this; - } - - /** - * @return {@link #extraDetails} (Extra details about the service that can't be placed in the other fields.). This is the underlying object with id, value and extensions. The accessor "getExtraDetails" gives direct access to the value - */ - public StringType getExtraDetailsElement() { - if (this.extraDetails == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.extraDetails"); - else if (Configuration.doAutoCreate()) - this.extraDetails = new StringType(); - return this.extraDetails; - } - - public boolean hasExtraDetailsElement() { - return this.extraDetails != null && !this.extraDetails.isEmpty(); - } - - public boolean hasExtraDetails() { - return this.extraDetails != null && !this.extraDetails.isEmpty(); - } - - /** - * @param value {@link #extraDetails} (Extra details about the service that can't be placed in the other fields.). This is the underlying object with id, value and extensions. The accessor "getExtraDetails" gives direct access to the value - */ - public HealthcareService setExtraDetailsElement(StringType value) { - this.extraDetails = value; - return this; - } - - /** - * @return Extra details about the service that can't be placed in the other fields. - */ - public String getExtraDetails() { - return this.extraDetails == null ? null : this.extraDetails.getValue(); - } - - /** - * @param value Extra details about the service that can't be placed in the other fields. - */ - public HealthcareService setExtraDetails(String value) { - if (Utilities.noString(value)) - this.extraDetails = null; - else { - if (this.extraDetails == null) - this.extraDetails = new StringType(); - this.extraDetails.setValue(value); - } - return this; - } - - /** - * @return {@link #freeProvisionCode} (The free provision code provides a link to the Free Provision reference entity to enable the selection of one free provision type.) - */ - public CodeableConcept getFreeProvisionCode() { - if (this.freeProvisionCode == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.freeProvisionCode"); - else if (Configuration.doAutoCreate()) - this.freeProvisionCode = new CodeableConcept(); - return this.freeProvisionCode; - } - - public boolean hasFreeProvisionCode() { - return this.freeProvisionCode != null && !this.freeProvisionCode.isEmpty(); - } - - /** - * @param value {@link #freeProvisionCode} (The free provision code provides a link to the Free Provision reference entity to enable the selection of one free provision type.) - */ - public HealthcareService setFreeProvisionCode(CodeableConcept value) { - this.freeProvisionCode = value; - return this; - } - - /** - * @return {@link #eligibility} (Does this service have specific eligibility requirements that need to be met in order to use the service.) - */ - public CodeableConcept getEligibility() { - if (this.eligibility == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.eligibility"); - else if (Configuration.doAutoCreate()) - this.eligibility = new CodeableConcept(); - return this.eligibility; - } - - public boolean hasEligibility() { - return this.eligibility != null && !this.eligibility.isEmpty(); - } - - /** - * @param value {@link #eligibility} (Does this service have specific eligibility requirements that need to be met in order to use the service.) - */ - public HealthcareService setEligibility(CodeableConcept value) { - this.eligibility = value; - return this; - } - - /** - * @return {@link #eligibilityNote} (The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page.). This is the underlying object with id, value and extensions. The accessor "getEligibilityNote" gives direct access to the value - */ - public StringType getEligibilityNoteElement() { - if (this.eligibilityNote == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.eligibilityNote"); - else if (Configuration.doAutoCreate()) - this.eligibilityNote = new StringType(); - return this.eligibilityNote; - } - - public boolean hasEligibilityNoteElement() { - return this.eligibilityNote != null && !this.eligibilityNote.isEmpty(); - } - - public boolean hasEligibilityNote() { - return this.eligibilityNote != null && !this.eligibilityNote.isEmpty(); - } - - /** - * @param value {@link #eligibilityNote} (The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page.). This is the underlying object with id, value and extensions. The accessor "getEligibilityNote" gives direct access to the value - */ - public HealthcareService setEligibilityNoteElement(StringType value) { - this.eligibilityNote = value; - return this; - } - - /** - * @return The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page. - */ - public String getEligibilityNote() { - return this.eligibilityNote == null ? null : this.eligibilityNote.getValue(); - } - - /** - * @param value The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page. - */ - public HealthcareService setEligibilityNote(String value) { - if (Utilities.noString(value)) - this.eligibilityNote = null; - else { - if (this.eligibilityNote == null) - this.eligibilityNote = new StringType(); - this.eligibilityNote.setValue(value); - } - return this; - } - - /** - * @return {@link #appointmentRequired} (Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. If this flag is 'NotDefined', then this flag is overridden by the Site's availability flag. (ConditionalIndicator Enum).) - */ - public CodeableConcept getAppointmentRequired() { - if (this.appointmentRequired == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.appointmentRequired"); - else if (Configuration.doAutoCreate()) - this.appointmentRequired = new CodeableConcept(); - return this.appointmentRequired; - } - - public boolean hasAppointmentRequired() { - return this.appointmentRequired != null && !this.appointmentRequired.isEmpty(); - } - - /** - * @param value {@link #appointmentRequired} (Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. If this flag is 'NotDefined', then this flag is overridden by the Site's availability flag. (ConditionalIndicator Enum).) - */ - public HealthcareService setAppointmentRequired(CodeableConcept value) { - this.appointmentRequired = value; - return this; - } - - /** - * @return {@link #imageURI} (If there is an image associated with this Service Site, its URI can be included here.). This is the underlying object with id, value and extensions. The accessor "getImageURI" gives direct access to the value - */ - public UriType getImageURIElement() { - if (this.imageURI == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.imageURI"); - else if (Configuration.doAutoCreate()) - this.imageURI = new UriType(); - return this.imageURI; - } - - public boolean hasImageURIElement() { - return this.imageURI != null && !this.imageURI.isEmpty(); - } - - public boolean hasImageURI() { - return this.imageURI != null && !this.imageURI.isEmpty(); - } - - /** - * @param value {@link #imageURI} (If there is an image associated with this Service Site, its URI can be included here.). This is the underlying object with id, value and extensions. The accessor "getImageURI" gives direct access to the value - */ - public HealthcareService setImageURIElement(UriType value) { - this.imageURI = value; - return this; - } - - /** - * @return If there is an image associated with this Service Site, its URI can be included here. - */ - public String getImageURI() { - return this.imageURI == null ? null : this.imageURI.getValue(); - } - - /** - * @param value If there is an image associated with this Service Site, its URI can be included here. - */ - public HealthcareService setImageURI(String value) { - if (Utilities.noString(value)) - this.imageURI = null; - else { - if (this.imageURI == null) - this.imageURI = new UriType(); - this.imageURI.setValue(value); - } - return this; - } - - /** - * @return {@link #availableTime} (A Collection of times that the Service Site is available.) - */ - public List getAvailableTime() { - if (this.availableTime == null) - this.availableTime = new ArrayList(); - return this.availableTime; - } - - public boolean hasAvailableTime() { - if (this.availableTime == null) - return false; - for (HealthcareServiceAvailableTimeComponent item : this.availableTime) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #availableTime} (A Collection of times that the Service Site is available.) - */ - // syntactic sugar - public HealthcareServiceAvailableTimeComponent addAvailableTime() { //3 - HealthcareServiceAvailableTimeComponent t = new HealthcareServiceAvailableTimeComponent(); - if (this.availableTime == null) - this.availableTime = new ArrayList(); - this.availableTime.add(t); - return t; - } - - /** - * @return {@link #notAvailableTime} (Not avail times - need better description.) - */ - public List getNotAvailableTime() { - if (this.notAvailableTime == null) - this.notAvailableTime = new ArrayList(); - return this.notAvailableTime; - } - - public boolean hasNotAvailableTime() { - if (this.notAvailableTime == null) - return false; - for (HealthcareServiceNotAvailableTimeComponent item : this.notAvailableTime) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #notAvailableTime} (Not avail times - need better description.) - */ - // syntactic sugar - public HealthcareServiceNotAvailableTimeComponent addNotAvailableTime() { //3 - HealthcareServiceNotAvailableTimeComponent t = new HealthcareServiceNotAvailableTimeComponent(); - if (this.notAvailableTime == null) - this.notAvailableTime = new ArrayList(); - this.notAvailableTime.add(t); - return t; - } - - /** - * @return {@link #availabilityExceptions} (A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times.). This is the underlying object with id, value and extensions. The accessor "getAvailabilityExceptions" gives direct access to the value - */ - public StringType getAvailabilityExceptionsElement() { - if (this.availabilityExceptions == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.availabilityExceptions"); - else if (Configuration.doAutoCreate()) - this.availabilityExceptions = new StringType(); - return this.availabilityExceptions; - } - - public boolean hasAvailabilityExceptionsElement() { - return this.availabilityExceptions != null && !this.availabilityExceptions.isEmpty(); - } - - public boolean hasAvailabilityExceptions() { - return this.availabilityExceptions != null && !this.availabilityExceptions.isEmpty(); - } - - /** - * @param value {@link #availabilityExceptions} (A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times.). This is the underlying object with id, value and extensions. The accessor "getAvailabilityExceptions" gives direct access to the value - */ - public HealthcareService setAvailabilityExceptionsElement(StringType value) { - this.availabilityExceptions = value; - return this; - } - - /** - * @return A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times. - */ - public String getAvailabilityExceptions() { - return this.availabilityExceptions == null ? null : this.availabilityExceptions.getValue(); - } - - /** - * @param value A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times. - */ - public HealthcareService setAvailabilityExceptions(String value) { - if (Utilities.noString(value)) - this.availabilityExceptions = null; - else { - if (this.availabilityExceptions == null) - this.availabilityExceptions = new StringType(); - this.availabilityExceptions.setValue(value); - } - return this; - } - - /** - * @return {@link #publicKey} (The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available.). This is the underlying object with id, value and extensions. The accessor "getPublicKey" gives direct access to the value - */ - public StringType getPublicKeyElement() { - if (this.publicKey == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HealthcareService.publicKey"); - else if (Configuration.doAutoCreate()) - this.publicKey = new StringType(); - return this.publicKey; - } - - public boolean hasPublicKeyElement() { - return this.publicKey != null && !this.publicKey.isEmpty(); - } - - public boolean hasPublicKey() { - return this.publicKey != null && !this.publicKey.isEmpty(); - } - - /** - * @param value {@link #publicKey} (The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available.). This is the underlying object with id, value and extensions. The accessor "getPublicKey" gives direct access to the value - */ - public HealthcareService setPublicKeyElement(StringType value) { - this.publicKey = value; - return this; - } - - /** - * @return The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available. - */ - public String getPublicKey() { - return this.publicKey == null ? null : this.publicKey.getValue(); - } - - /** - * @param value The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available. - */ - public HealthcareService setPublicKey(String value) { - if (Utilities.noString(value)) - this.publicKey = null; - else { - if (this.publicKey == null) - this.publicKey = new StringType(); - this.publicKey.setValue(value); - } - return this; - } - - /** - * @return {@link #programName} (Program Names that can be used to categorize the service.) - */ - public List getProgramName() { - if (this.programName == null) - this.programName = new ArrayList(); - return this.programName; - } - - public boolean hasProgramName() { - if (this.programName == null) - return false; - for (StringType item : this.programName) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #programName} (Program Names that can be used to categorize the service.) - */ - // syntactic sugar - public StringType addProgramNameElement() {//2 - StringType t = new StringType(); - if (this.programName == null) - this.programName = new ArrayList(); - this.programName.add(t); - return t; - } - - /** - * @param value {@link #programName} (Program Names that can be used to categorize the service.) - */ - public HealthcareService addProgramName(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.programName == null) - this.programName = new ArrayList(); - this.programName.add(t); - return this; - } - - /** - * @param value {@link #programName} (Program Names that can be used to categorize the service.) - */ - public boolean hasProgramName(String value) { - if (this.programName == null) - return false; - for (StringType v : this.programName) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #contactPoint} (List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts.) - */ - public List getContactPoint() { - if (this.contactPoint == null) - this.contactPoint = new ArrayList(); - return this.contactPoint; - } - - public boolean hasContactPoint() { - if (this.contactPoint == null) - return false; - for (ContactPoint item : this.contactPoint) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #contactPoint} (List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts.) - */ - // syntactic sugar - public ContactPoint addContactPoint() { //3 - ContactPoint t = new ContactPoint(); - if (this.contactPoint == null) - this.contactPoint = new ArrayList(); - this.contactPoint.add(t); - return t; - } - - /** - * @return {@link #characteristic} (Collection of Characteristics (attributes).) - */ - public List getCharacteristic() { - if (this.characteristic == null) - this.characteristic = new ArrayList(); - return this.characteristic; - } - - public boolean hasCharacteristic() { - if (this.characteristic == null) - return false; - for (CodeableConcept item : this.characteristic) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #characteristic} (Collection of Characteristics (attributes).) - */ - // syntactic sugar - public CodeableConcept addCharacteristic() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.characteristic == null) - this.characteristic = new ArrayList(); - this.characteristic.add(t); - return t; - } - - /** - * @return {@link #referralMethod} (Ways that the service accepts referrals.) - */ - public List getReferralMethod() { - if (this.referralMethod == null) - this.referralMethod = new ArrayList(); - return this.referralMethod; - } - - public boolean hasReferralMethod() { - if (this.referralMethod == null) - return false; - for (CodeableConcept item : this.referralMethod) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #referralMethod} (Ways that the service accepts referrals.) - */ - // syntactic sugar - public CodeableConcept addReferralMethod() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.referralMethod == null) - this.referralMethod = new ArrayList(); - this.referralMethod.add(t); - return t; - } - - /** - * @return {@link #setting} (The setting where this service can be provided, such is in home, or at location in organisation.) - */ - public List getSetting() { - if (this.setting == null) - this.setting = new ArrayList(); - return this.setting; - } - - public boolean hasSetting() { - if (this.setting == null) - return false; - for (CodeableConcept item : this.setting) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #setting} (The setting where this service can be provided, such is in home, or at location in organisation.) - */ - // syntactic sugar - public CodeableConcept addSetting() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.setting == null) - this.setting = new ArrayList(); - this.setting.add(t); - return t; - } - - /** - * @return {@link #targetGroup} (Collection of Target Groups for the Service Site (The target audience that this service is for).) - */ - public List getTargetGroup() { - if (this.targetGroup == null) - this.targetGroup = new ArrayList(); - return this.targetGroup; - } - - public boolean hasTargetGroup() { - if (this.targetGroup == null) - return false; - for (CodeableConcept item : this.targetGroup) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #targetGroup} (Collection of Target Groups for the Service Site (The target audience that this service is for).) - */ - // syntactic sugar - public CodeableConcept addTargetGroup() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.targetGroup == null) - this.targetGroup = new ArrayList(); - this.targetGroup.add(t); - return t; - } - - /** - * @return {@link #coverageArea} (Need better description.) - */ - public List getCoverageArea() { - if (this.coverageArea == null) - this.coverageArea = new ArrayList(); - return this.coverageArea; - } - - public boolean hasCoverageArea() { - if (this.coverageArea == null) - return false; - for (CodeableConcept item : this.coverageArea) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #coverageArea} (Need better description.) - */ - // syntactic sugar - public CodeableConcept addCoverageArea() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.coverageArea == null) - this.coverageArea = new ArrayList(); - this.coverageArea.add(t); - return t; - } - - /** - * @return {@link #catchmentArea} (Need better description.) - */ - public List getCatchmentArea() { - if (this.catchmentArea == null) - this.catchmentArea = new ArrayList(); - return this.catchmentArea; - } - - public boolean hasCatchmentArea() { - if (this.catchmentArea == null) - return false; - for (CodeableConcept item : this.catchmentArea) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #catchmentArea} (Need better description.) - */ - // syntactic sugar - public CodeableConcept addCatchmentArea() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.catchmentArea == null) - this.catchmentArea = new ArrayList(); - this.catchmentArea.add(t); - return t; - } - - /** - * @return {@link #serviceCode} (List of the specific.) - */ - public List getServiceCode() { - if (this.serviceCode == null) - this.serviceCode = new ArrayList(); - return this.serviceCode; - } - - public boolean hasServiceCode() { - if (this.serviceCode == null) - return false; - for (CodeableConcept item : this.serviceCode) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #serviceCode} (List of the specific.) - */ - // syntactic sugar - public CodeableConcept addServiceCode() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.serviceCode == null) - this.serviceCode = new ArrayList(); - this.serviceCode.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "External Ids for this item.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("location", "Reference(Location)", "The location where this healthcare service may be provided.", 0, java.lang.Integer.MAX_VALUE, location)); - childrenList.add(new Property("serviceCategory", "CodeableConcept", "Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type.", 0, java.lang.Integer.MAX_VALUE, serviceCategory)); - childrenList.add(new Property("serviceType", "", "A specific type of service that may be delivered or performed.", 0, java.lang.Integer.MAX_VALUE, serviceType)); - childrenList.add(new Property("serviceName", "string", "Further description of the service as it would be presented to a consumer while searching.", 0, java.lang.Integer.MAX_VALUE, serviceName)); - childrenList.add(new Property("comment", "string", "Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.", 0, java.lang.Integer.MAX_VALUE, comment)); - childrenList.add(new Property("extraDetails", "string", "Extra details about the service that can't be placed in the other fields.", 0, java.lang.Integer.MAX_VALUE, extraDetails)); - childrenList.add(new Property("freeProvisionCode", "CodeableConcept", "The free provision code provides a link to the Free Provision reference entity to enable the selection of one free provision type.", 0, java.lang.Integer.MAX_VALUE, freeProvisionCode)); - childrenList.add(new Property("eligibility", "CodeableConcept", "Does this service have specific eligibility requirements that need to be met in order to use the service.", 0, java.lang.Integer.MAX_VALUE, eligibility)); - childrenList.add(new Property("eligibilityNote", "string", "The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page.", 0, java.lang.Integer.MAX_VALUE, eligibilityNote)); - childrenList.add(new Property("appointmentRequired", "CodeableConcept", "Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. If this flag is 'NotDefined', then this flag is overridden by the Site's availability flag. (ConditionalIndicator Enum).", 0, java.lang.Integer.MAX_VALUE, appointmentRequired)); - childrenList.add(new Property("imageURI", "uri", "If there is an image associated with this Service Site, its URI can be included here.", 0, java.lang.Integer.MAX_VALUE, imageURI)); - childrenList.add(new Property("availableTime", "", "A Collection of times that the Service Site is available.", 0, java.lang.Integer.MAX_VALUE, availableTime)); - childrenList.add(new Property("notAvailableTime", "", "Not avail times - need better description.", 0, java.lang.Integer.MAX_VALUE, notAvailableTime)); - childrenList.add(new Property("availabilityExceptions", "string", "A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times.", 0, java.lang.Integer.MAX_VALUE, availabilityExceptions)); - childrenList.add(new Property("publicKey", "string", "The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available.", 0, java.lang.Integer.MAX_VALUE, publicKey)); - childrenList.add(new Property("programName", "string", "Program Names that can be used to categorize the service.", 0, java.lang.Integer.MAX_VALUE, programName)); - childrenList.add(new Property("contactPoint", "ContactPoint", "List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts.", 0, java.lang.Integer.MAX_VALUE, contactPoint)); - childrenList.add(new Property("characteristic", "CodeableConcept", "Collection of Characteristics (attributes).", 0, java.lang.Integer.MAX_VALUE, characteristic)); - childrenList.add(new Property("referralMethod", "CodeableConcept", "Ways that the service accepts referrals.", 0, java.lang.Integer.MAX_VALUE, referralMethod)); - childrenList.add(new Property("setting", "CodeableConcept", "The setting where this service can be provided, such is in home, or at location in organisation.", 0, java.lang.Integer.MAX_VALUE, setting)); - childrenList.add(new Property("targetGroup", "CodeableConcept", "Collection of Target Groups for the Service Site (The target audience that this service is for).", 0, java.lang.Integer.MAX_VALUE, targetGroup)); - childrenList.add(new Property("coverageArea", "CodeableConcept", "Need better description.", 0, java.lang.Integer.MAX_VALUE, coverageArea)); - childrenList.add(new Property("catchmentArea", "CodeableConcept", "Need better description.", 0, java.lang.Integer.MAX_VALUE, catchmentArea)); - childrenList.add(new Property("serviceCode", "CodeableConcept", "List of the specific.", 0, java.lang.Integer.MAX_VALUE, serviceCode)); - } - - public HealthcareService copy() { - HealthcareService dst = new HealthcareService(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.location = location == null ? null : location.copy(); - dst.serviceCategory = serviceCategory == null ? null : serviceCategory.copy(); - if (serviceType != null) { - dst.serviceType = new ArrayList(); - for (ServiceTypeComponent i : serviceType) - dst.serviceType.add(i.copy()); - }; - dst.serviceName = serviceName == null ? null : serviceName.copy(); - dst.comment = comment == null ? null : comment.copy(); - dst.extraDetails = extraDetails == null ? null : extraDetails.copy(); - dst.freeProvisionCode = freeProvisionCode == null ? null : freeProvisionCode.copy(); - dst.eligibility = eligibility == null ? null : eligibility.copy(); - dst.eligibilityNote = eligibilityNote == null ? null : eligibilityNote.copy(); - dst.appointmentRequired = appointmentRequired == null ? null : appointmentRequired.copy(); - dst.imageURI = imageURI == null ? null : imageURI.copy(); - if (availableTime != null) { - dst.availableTime = new ArrayList(); - for (HealthcareServiceAvailableTimeComponent i : availableTime) - dst.availableTime.add(i.copy()); - }; - if (notAvailableTime != null) { - dst.notAvailableTime = new ArrayList(); - for (HealthcareServiceNotAvailableTimeComponent i : notAvailableTime) - dst.notAvailableTime.add(i.copy()); - }; - dst.availabilityExceptions = availabilityExceptions == null ? null : availabilityExceptions.copy(); - dst.publicKey = publicKey == null ? null : publicKey.copy(); - if (programName != null) { - dst.programName = new ArrayList(); - for (StringType i : programName) - dst.programName.add(i.copy()); - }; - if (contactPoint != null) { - dst.contactPoint = new ArrayList(); - for (ContactPoint i : contactPoint) - dst.contactPoint.add(i.copy()); - }; - if (characteristic != null) { - dst.characteristic = new ArrayList(); - for (CodeableConcept i : characteristic) - dst.characteristic.add(i.copy()); - }; - if (referralMethod != null) { - dst.referralMethod = new ArrayList(); - for (CodeableConcept i : referralMethod) - dst.referralMethod.add(i.copy()); - }; - if (setting != null) { - dst.setting = new ArrayList(); - for (CodeableConcept i : setting) - dst.setting.add(i.copy()); - }; - if (targetGroup != null) { - dst.targetGroup = new ArrayList(); - for (CodeableConcept i : targetGroup) - dst.targetGroup.add(i.copy()); - }; - if (coverageArea != null) { - dst.coverageArea = new ArrayList(); - for (CodeableConcept i : coverageArea) - dst.coverageArea.add(i.copy()); - }; - if (catchmentArea != null) { - dst.catchmentArea = new ArrayList(); - for (CodeableConcept i : catchmentArea) - dst.catchmentArea.add(i.copy()); - }; - if (serviceCode != null) { - dst.serviceCode = new ArrayList(); - for (CodeableConcept i : serviceCode) - dst.serviceCode.add(i.copy()); - }; - return dst; - } - - protected HealthcareService typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (location == null || location.isEmpty()) - && (serviceCategory == null || serviceCategory.isEmpty()) && (serviceType == null || serviceType.isEmpty()) - && (serviceName == null || serviceName.isEmpty()) && (comment == null || comment.isEmpty()) - && (extraDetails == null || extraDetails.isEmpty()) && (freeProvisionCode == null || freeProvisionCode.isEmpty()) - && (eligibility == null || eligibility.isEmpty()) && (eligibilityNote == null || eligibilityNote.isEmpty()) - && (appointmentRequired == null || appointmentRequired.isEmpty()) && (imageURI == null || imageURI.isEmpty()) - && (availableTime == null || availableTime.isEmpty()) && (notAvailableTime == null || notAvailableTime.isEmpty()) - && (availabilityExceptions == null || availabilityExceptions.isEmpty()) && (publicKey == null || publicKey.isEmpty()) - && (programName == null || programName.isEmpty()) && (contactPoint == null || contactPoint.isEmpty()) - && (characteristic == null || characteristic.isEmpty()) && (referralMethod == null || referralMethod.isEmpty()) - && (setting == null || setting.isEmpty()) && (targetGroup == null || targetGroup.isEmpty()) - && (coverageArea == null || coverageArea.isEmpty()) && (catchmentArea == null || catchmentArea.isEmpty()) - && (serviceCode == null || serviceCode.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.HealthcareService; - } - - @SearchParamDefinition(name="servicecategory", path="HealthcareService.serviceCategory", description="Service Category of the Healthcare Service", type="token" ) - public static final String SP_SERVICECATEGORY = "servicecategory"; - @SearchParamDefinition(name="servicetype", path="HealthcareService.serviceType.type", description="The type of service provided by this healthcare service", type="token" ) - public static final String SP_SERVICETYPE = "servicetype"; - @SearchParamDefinition(name="location", path="HealthcareService.location", description="The location of the Healthcare Service", type="reference" ) - public static final String SP_LOCATION = "location"; - @SearchParamDefinition(name="name", path="HealthcareService.serviceName", description="A portion of the Healthcare service name", type="string" ) - public static final String SP_NAME = "name"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * The details of a Healthcare Service available at a location. + */ +@ResourceDef(name="HealthcareService", profile="http://hl7.org/fhir/Profile/HealthcareService") +public class HealthcareService extends DomainResource { + + @Block() + public static class ServiceTypeComponent extends BackboneElement { + /** + * The specific type of service being delivered or performed. + */ + @Child(name="type", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="The specific type of service being delivered or performed", formalDefinition="The specific type of service being delivered or performed." ) + protected CodeableConcept type; + + /** + * Collection of Specialties handled by the Service Site. This is more of a Medical Term. + */ + @Child(name="specialty", type={CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Collection of Specialties handled by the Service Site. This is more of a Medical Term", formalDefinition="Collection of Specialties handled by the Service Site. This is more of a Medical Term." ) + protected List specialty; + + private static final long serialVersionUID = 1703986174L; + + public ServiceTypeComponent() { + super(); + } + + public ServiceTypeComponent(CodeableConcept type) { + super(); + this.type = type; + } + + /** + * @return {@link #type} (The specific type of service being delivered or performed.) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ServiceTypeComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The specific type of service being delivered or performed.) + */ + public ServiceTypeComponent setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #specialty} (Collection of Specialties handled by the Service Site. This is more of a Medical Term.) + */ + public List getSpecialty() { + if (this.specialty == null) + this.specialty = new ArrayList(); + return this.specialty; + } + + public boolean hasSpecialty() { + if (this.specialty == null) + return false; + for (CodeableConcept item : this.specialty) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #specialty} (Collection of Specialties handled by the Service Site. This is more of a Medical Term.) + */ + // syntactic sugar + public CodeableConcept addSpecialty() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.specialty == null) + this.specialty = new ArrayList(); + this.specialty.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "CodeableConcept", "The specific type of service being delivered or performed.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("specialty", "CodeableConcept", "Collection of Specialties handled by the Service Site. This is more of a Medical Term.", 0, java.lang.Integer.MAX_VALUE, specialty)); + } + + public ServiceTypeComponent copy() { + ServiceTypeComponent dst = new ServiceTypeComponent(); + copyValues(dst); + dst.type = type == null ? null : type.copy(); + if (specialty != null) { + dst.specialty = new ArrayList(); + for (CodeableConcept i : specialty) + dst.specialty.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ServiceTypeComponent)) + return false; + ServiceTypeComponent o = (ServiceTypeComponent) other; + return compareDeep(type, o.type, true) && compareDeep(specialty, o.specialty, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ServiceTypeComponent)) + return false; + ServiceTypeComponent o = (ServiceTypeComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (specialty == null || specialty.isEmpty()) + ; + } + + } + + @Block() + public static class HealthcareServiceAvailableTimeComponent extends BackboneElement { + /** + * Indicates which Days of the week are available between the Start and End Times. + */ + @Child(name="daysOfWeek", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Indicates which Days of the week are available between the Start and End Times", formalDefinition="Indicates which Days of the week are available between the Start and End Times." ) + protected List daysOfWeek; + + /** + * Is this always available? (hence times are irrelevant) e.g. 24 hour service. + */ + @Child(name="allDay", type={BooleanType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Is this always available? (hence times are irrelevant) e.g. 24 hour service", formalDefinition="Is this always available? (hence times are irrelevant) e.g. 24 hour service." ) + protected BooleanType allDay; + + /** + * The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored. + */ + @Child(name="availableStartTime", type={DateTimeType.class}, order=3, min=0, max=1) + @Description(shortDefinition="The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored", formalDefinition="The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored." ) + protected DateTimeType availableStartTime; + + /** + * The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored. + */ + @Child(name="availableEndTime", type={DateTimeType.class}, order=4, min=0, max=1) + @Description(shortDefinition="The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored", formalDefinition="The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored." ) + protected DateTimeType availableEndTime; + + private static final long serialVersionUID = 1384198535L; + + public HealthcareServiceAvailableTimeComponent() { + super(); + } + + /** + * @return {@link #daysOfWeek} (Indicates which Days of the week are available between the Start and End Times.) + */ + public List getDaysOfWeek() { + if (this.daysOfWeek == null) + this.daysOfWeek = new ArrayList(); + return this.daysOfWeek; + } + + public boolean hasDaysOfWeek() { + if (this.daysOfWeek == null) + return false; + for (CodeableConcept item : this.daysOfWeek) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #daysOfWeek} (Indicates which Days of the week are available between the Start and End Times.) + */ + // syntactic sugar + public CodeableConcept addDaysOfWeek() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.daysOfWeek == null) + this.daysOfWeek = new ArrayList(); + this.daysOfWeek.add(t); + return t; + } + + /** + * @return {@link #allDay} (Is this always available? (hence times are irrelevant) e.g. 24 hour service.). This is the underlying object with id, value and extensions. The accessor "getAllDay" gives direct access to the value + */ + public BooleanType getAllDayElement() { + if (this.allDay == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareServiceAvailableTimeComponent.allDay"); + else if (Configuration.doAutoCreate()) + this.allDay = new BooleanType(); // bb + return this.allDay; + } + + public boolean hasAllDayElement() { + return this.allDay != null && !this.allDay.isEmpty(); + } + + public boolean hasAllDay() { + return this.allDay != null && !this.allDay.isEmpty(); + } + + /** + * @param value {@link #allDay} (Is this always available? (hence times are irrelevant) e.g. 24 hour service.). This is the underlying object with id, value and extensions. The accessor "getAllDay" gives direct access to the value + */ + public HealthcareServiceAvailableTimeComponent setAllDayElement(BooleanType value) { + this.allDay = value; + return this; + } + + /** + * @return Is this always available? (hence times are irrelevant) e.g. 24 hour service. + */ + public boolean getAllDay() { + return this.allDay == null ? false : this.allDay.getValue(); + } + + /** + * @param value Is this always available? (hence times are irrelevant) e.g. 24 hour service. + */ + public HealthcareServiceAvailableTimeComponent setAllDay(boolean value) { + if (this.allDay == null) + this.allDay = new BooleanType(); + this.allDay.setValue(value); + return this; + } + + /** + * @return {@link #availableStartTime} (The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableStartTime" gives direct access to the value + */ + public DateTimeType getAvailableStartTimeElement() { + if (this.availableStartTime == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareServiceAvailableTimeComponent.availableStartTime"); + else if (Configuration.doAutoCreate()) + this.availableStartTime = new DateTimeType(); // bb + return this.availableStartTime; + } + + public boolean hasAvailableStartTimeElement() { + return this.availableStartTime != null && !this.availableStartTime.isEmpty(); + } + + public boolean hasAvailableStartTime() { + return this.availableStartTime != null && !this.availableStartTime.isEmpty(); + } + + /** + * @param value {@link #availableStartTime} (The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableStartTime" gives direct access to the value + */ + public HealthcareServiceAvailableTimeComponent setAvailableStartTimeElement(DateTimeType value) { + this.availableStartTime = value; + return this; + } + + /** + * @return The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored. + */ + public Date getAvailableStartTime() { + return this.availableStartTime == null ? null : this.availableStartTime.getValue(); + } + + /** + * @param value The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored. + */ + public HealthcareServiceAvailableTimeComponent setAvailableStartTime(Date value) { + if (value == null) + this.availableStartTime = null; + else { + if (this.availableStartTime == null) + this.availableStartTime = new DateTimeType(); + this.availableStartTime.setValue(value); + } + return this; + } + + /** + * @return {@link #availableEndTime} (The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableEndTime" gives direct access to the value + */ + public DateTimeType getAvailableEndTimeElement() { + if (this.availableEndTime == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareServiceAvailableTimeComponent.availableEndTime"); + else if (Configuration.doAutoCreate()) + this.availableEndTime = new DateTimeType(); // bb + return this.availableEndTime; + } + + public boolean hasAvailableEndTimeElement() { + return this.availableEndTime != null && !this.availableEndTime.isEmpty(); + } + + public boolean hasAvailableEndTime() { + return this.availableEndTime != null && !this.availableEndTime.isEmpty(); + } + + /** + * @param value {@link #availableEndTime} (The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored.). This is the underlying object with id, value and extensions. The accessor "getAvailableEndTime" gives direct access to the value + */ + public HealthcareServiceAvailableTimeComponent setAvailableEndTimeElement(DateTimeType value) { + this.availableEndTime = value; + return this; + } + + /** + * @return The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored. + */ + public Date getAvailableEndTime() { + return this.availableEndTime == null ? null : this.availableEndTime.getValue(); + } + + /** + * @param value The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored. + */ + public HealthcareServiceAvailableTimeComponent setAvailableEndTime(Date value) { + if (value == null) + this.availableEndTime = null; + else { + if (this.availableEndTime == null) + this.availableEndTime = new DateTimeType(); + this.availableEndTime.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("daysOfWeek", "CodeableConcept", "Indicates which Days of the week are available between the Start and End Times.", 0, java.lang.Integer.MAX_VALUE, daysOfWeek)); + childrenList.add(new Property("allDay", "boolean", "Is this always available? (hence times are irrelevant) e.g. 24 hour service.", 0, java.lang.Integer.MAX_VALUE, allDay)); + childrenList.add(new Property("availableStartTime", "dateTime", "The opening time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored.", 0, java.lang.Integer.MAX_VALUE, availableStartTime)); + childrenList.add(new Property("availableEndTime", "dateTime", "The closing time of day (the date is not included). Note: If the AllDay flag is set, then this time is ignored.", 0, java.lang.Integer.MAX_VALUE, availableEndTime)); + } + + public HealthcareServiceAvailableTimeComponent copy() { + HealthcareServiceAvailableTimeComponent dst = new HealthcareServiceAvailableTimeComponent(); + copyValues(dst); + if (daysOfWeek != null) { + dst.daysOfWeek = new ArrayList(); + for (CodeableConcept i : daysOfWeek) + dst.daysOfWeek.add(i.copy()); + }; + dst.allDay = allDay == null ? null : allDay.copy(); + dst.availableStartTime = availableStartTime == null ? null : availableStartTime.copy(); + dst.availableEndTime = availableEndTime == null ? null : availableEndTime.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof HealthcareServiceAvailableTimeComponent)) + return false; + HealthcareServiceAvailableTimeComponent o = (HealthcareServiceAvailableTimeComponent) other; + return compareDeep(daysOfWeek, o.daysOfWeek, true) && compareDeep(allDay, o.allDay, true) && compareDeep(availableStartTime, o.availableStartTime, true) + && compareDeep(availableEndTime, o.availableEndTime, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof HealthcareServiceAvailableTimeComponent)) + return false; + HealthcareServiceAvailableTimeComponent o = (HealthcareServiceAvailableTimeComponent) other; + return compareValues(allDay, o.allDay, true) && compareValues(availableStartTime, o.availableStartTime, true) + && compareValues(availableEndTime, o.availableEndTime, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (daysOfWeek == null || daysOfWeek.isEmpty()) && (allDay == null || allDay.isEmpty()) + && (availableStartTime == null || availableStartTime.isEmpty()) && (availableEndTime == null || availableEndTime.isEmpty()) + ; + } + + } + + @Block() + public static class HealthcareServiceNotAvailableTimeComponent extends BackboneElement { + /** + * The reason that can be presented to the user as to why this time is not available. + */ + @Child(name="description", type={StringType.class}, order=1, min=1, max=1) + @Description(shortDefinition="The reason that can be presented to the user as to why this time is not available", formalDefinition="The reason that can be presented to the user as to why this time is not available." ) + protected StringType description; + + /** + * Service is not available (seasonally or for a public holiday) from this date. + */ + @Child(name="startDate", type={DateTimeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Service is not available (seasonally or for a public holiday) from this date", formalDefinition="Service is not available (seasonally or for a public holiday) from this date." ) + protected DateTimeType startDate; + + /** + * Service is not available (seasonally or for a public holiday) until this date. + */ + @Child(name="endDate", type={DateTimeType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Service is not available (seasonally or for a public holiday) until this date", formalDefinition="Service is not available (seasonally or for a public holiday) until this date." ) + protected DateTimeType endDate; + + private static final long serialVersionUID = -1448794L; + + public HealthcareServiceNotAvailableTimeComponent() { + super(); + } + + public HealthcareServiceNotAvailableTimeComponent(StringType description) { + super(); + this.description = description; + } + + /** + * @return {@link #description} (The reason that can be presented to the user as to why this time is not available.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareServiceNotAvailableTimeComponent.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (The reason that can be presented to the user as to why this time is not available.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public HealthcareServiceNotAvailableTimeComponent setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return The reason that can be presented to the user as to why this time is not available. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value The reason that can be presented to the user as to why this time is not available. + */ + public HealthcareServiceNotAvailableTimeComponent setDescription(String value) { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + return this; + } + + /** + * @return {@link #startDate} (Service is not available (seasonally or for a public holiday) from this date.). This is the underlying object with id, value and extensions. The accessor "getStartDate" gives direct access to the value + */ + public DateTimeType getStartDateElement() { + if (this.startDate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareServiceNotAvailableTimeComponent.startDate"); + else if (Configuration.doAutoCreate()) + this.startDate = new DateTimeType(); // bb + return this.startDate; + } + + public boolean hasStartDateElement() { + return this.startDate != null && !this.startDate.isEmpty(); + } + + public boolean hasStartDate() { + return this.startDate != null && !this.startDate.isEmpty(); + } + + /** + * @param value {@link #startDate} (Service is not available (seasonally or for a public holiday) from this date.). This is the underlying object with id, value and extensions. The accessor "getStartDate" gives direct access to the value + */ + public HealthcareServiceNotAvailableTimeComponent setStartDateElement(DateTimeType value) { + this.startDate = value; + return this; + } + + /** + * @return Service is not available (seasonally or for a public holiday) from this date. + */ + public Date getStartDate() { + return this.startDate == null ? null : this.startDate.getValue(); + } + + /** + * @param value Service is not available (seasonally or for a public holiday) from this date. + */ + public HealthcareServiceNotAvailableTimeComponent setStartDate(Date value) { + if (value == null) + this.startDate = null; + else { + if (this.startDate == null) + this.startDate = new DateTimeType(); + this.startDate.setValue(value); + } + return this; + } + + /** + * @return {@link #endDate} (Service is not available (seasonally or for a public holiday) until this date.). This is the underlying object with id, value and extensions. The accessor "getEndDate" gives direct access to the value + */ + public DateTimeType getEndDateElement() { + if (this.endDate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareServiceNotAvailableTimeComponent.endDate"); + else if (Configuration.doAutoCreate()) + this.endDate = new DateTimeType(); // bb + return this.endDate; + } + + public boolean hasEndDateElement() { + return this.endDate != null && !this.endDate.isEmpty(); + } + + public boolean hasEndDate() { + return this.endDate != null && !this.endDate.isEmpty(); + } + + /** + * @param value {@link #endDate} (Service is not available (seasonally or for a public holiday) until this date.). This is the underlying object with id, value and extensions. The accessor "getEndDate" gives direct access to the value + */ + public HealthcareServiceNotAvailableTimeComponent setEndDateElement(DateTimeType value) { + this.endDate = value; + return this; + } + + /** + * @return Service is not available (seasonally or for a public holiday) until this date. + */ + public Date getEndDate() { + return this.endDate == null ? null : this.endDate.getValue(); + } + + /** + * @param value Service is not available (seasonally or for a public holiday) until this date. + */ + public HealthcareServiceNotAvailableTimeComponent setEndDate(Date value) { + if (value == null) + this.endDate = null; + else { + if (this.endDate == null) + this.endDate = new DateTimeType(); + this.endDate.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("description", "string", "The reason that can be presented to the user as to why this time is not available.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("startDate", "dateTime", "Service is not available (seasonally or for a public holiday) from this date.", 0, java.lang.Integer.MAX_VALUE, startDate)); + childrenList.add(new Property("endDate", "dateTime", "Service is not available (seasonally or for a public holiday) until this date.", 0, java.lang.Integer.MAX_VALUE, endDate)); + } + + public HealthcareServiceNotAvailableTimeComponent copy() { + HealthcareServiceNotAvailableTimeComponent dst = new HealthcareServiceNotAvailableTimeComponent(); + copyValues(dst); + dst.description = description == null ? null : description.copy(); + dst.startDate = startDate == null ? null : startDate.copy(); + dst.endDate = endDate == null ? null : endDate.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof HealthcareServiceNotAvailableTimeComponent)) + return false; + HealthcareServiceNotAvailableTimeComponent o = (HealthcareServiceNotAvailableTimeComponent) other; + return compareDeep(description, o.description, true) && compareDeep(startDate, o.startDate, true) + && compareDeep(endDate, o.endDate, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof HealthcareServiceNotAvailableTimeComponent)) + return false; + HealthcareServiceNotAvailableTimeComponent o = (HealthcareServiceNotAvailableTimeComponent) other; + return compareValues(description, o.description, true) && compareValues(startDate, o.startDate, true) + && compareValues(endDate, o.endDate, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (description == null || description.isEmpty()) && (startDate == null || startDate.isEmpty()) + && (endDate == null || endDate.isEmpty()); + } + + } + + /** + * External Ids for this item. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="External Ids for this item", formalDefinition="External Ids for this item." ) + protected List identifier; + + /** + * The location where this healthcare service may be provided. + */ + @Child(name="location", type={Location.class}, order=0, min=1, max=1) + @Description(shortDefinition="The location where this healthcare service may be provided", formalDefinition="The location where this healthcare service may be provided." ) + protected Reference location; + + /** + * The actual object that is the target of the reference (The location where this healthcare service may be provided.) + */ + protected Location locationTarget; + + /** + * Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type. + */ + @Child(name="serviceCategory", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type", formalDefinition="Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type." ) + protected CodeableConcept serviceCategory; + + /** + * A specific type of service that may be delivered or performed. + */ + @Child(name="serviceType", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="A specific type of service that may be delivered or performed", formalDefinition="A specific type of service that may be delivered or performed." ) + protected List serviceType; + + /** + * Further description of the service as it would be presented to a consumer while searching. + */ + @Child(name="serviceName", type={StringType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Further description of the service as it would be presented to a consumer while searching", formalDefinition="Further description of the service as it would be presented to a consumer while searching." ) + protected StringType serviceName; + + /** + * Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName. + */ + @Child(name="comment", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName", formalDefinition="Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName." ) + protected StringType comment; + + /** + * Extra details about the service that can't be placed in the other fields. + */ + @Child(name="extraDetails", type={StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Extra details about the service that can't be placed in the other fields", formalDefinition="Extra details about the service that can't be placed in the other fields." ) + protected StringType extraDetails; + + /** + * The free provision code provides a link to the Free Provision reference entity to enable the selection of one free provision type. + */ + @Child(name="freeProvisionCode", type={CodeableConcept.class}, order=6, min=0, max=1) + @Description(shortDefinition="The free provision code provides a link to the Free Provision reference entity to enable the selection of one free provision type", formalDefinition="The free provision code provides a link to the Free Provision reference entity to enable the selection of one free provision type." ) + protected CodeableConcept freeProvisionCode; + + /** + * Does this service have specific eligibility requirements that need to be met in order to use the service. + */ + @Child(name="eligibility", type={CodeableConcept.class}, order=7, min=0, max=1) + @Description(shortDefinition="Does this service have specific eligibility requirements that need to be met in order to use the service", formalDefinition="Does this service have specific eligibility requirements that need to be met in order to use the service." ) + protected CodeableConcept eligibility; + + /** + * The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page. + */ + @Child(name="eligibilityNote", type={StringType.class}, order=8, min=0, max=1) + @Description(shortDefinition="Describes the eligibility conditions for the service", formalDefinition="The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page." ) + protected StringType eligibilityNote; + + /** + * Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. If this flag is 'NotDefined', then this flag is overridden by the Site's availability flag. (ConditionalIndicator Enum). + */ + @Child(name="appointmentRequired", type={CodeableConcept.class}, order=9, min=0, max=1) + @Description(shortDefinition="Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. If this flag is 'NotDefined', then this flag is overridden by the Site's availability flag. (ConditionalIndicator Enum)", formalDefinition="Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. If this flag is 'NotDefined', then this flag is overridden by the Site's availability flag. (ConditionalIndicator Enum)." ) + protected CodeableConcept appointmentRequired; + + /** + * If there is an image associated with this Service Site, its URI can be included here. + */ + @Child(name="imageURI", type={UriType.class}, order=10, min=0, max=1) + @Description(shortDefinition="If there is an image associated with this Service Site, its URI can be included here", formalDefinition="If there is an image associated with this Service Site, its URI can be included here." ) + protected UriType imageURI; + + /** + * A Collection of times that the Service Site is available. + */ + @Child(name="availableTime", type={}, order=11, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="A Collection of times that the Service Site is available", formalDefinition="A Collection of times that the Service Site is available." ) + protected List availableTime; + + /** + * Not avail times - need better description. + */ + @Child(name="notAvailableTime", type={}, order=12, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Not avail times - need better description", formalDefinition="Not avail times - need better description." ) + protected List notAvailableTime; + + /** + * A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times. + */ + @Child(name="availabilityExceptions", type={StringType.class}, order=13, min=0, max=1) + @Description(shortDefinition="A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times", formalDefinition="A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times." ) + protected StringType availabilityExceptions; + + /** + * The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available. + */ + @Child(name="publicKey", type={StringType.class}, order=14, min=0, max=1) + @Description(shortDefinition="The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available", formalDefinition="The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available." ) + protected StringType publicKey; + + /** + * Program Names that can be used to categorize the service. + */ + @Child(name="programName", type={StringType.class}, order=15, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Program Names that can be used to categorize the service", formalDefinition="Program Names that can be used to categorize the service." ) + protected List programName; + + /** + * List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts. + */ + @Child(name="contactPoint", type={ContactPoint.class}, order=16, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts", formalDefinition="List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts." ) + protected List contactPoint; + + /** + * Collection of Characteristics (attributes). + */ + @Child(name="characteristic", type={CodeableConcept.class}, order=17, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Collection of Characteristics (attributes)", formalDefinition="Collection of Characteristics (attributes)." ) + protected List characteristic; + + /** + * Ways that the service accepts referrals. + */ + @Child(name="referralMethod", type={CodeableConcept.class}, order=18, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Ways that the service accepts referrals", formalDefinition="Ways that the service accepts referrals." ) + protected List referralMethod; + + /** + * The setting where this service can be provided, such is in home, or at location in organisation. + */ + @Child(name="setting", type={CodeableConcept.class}, order=19, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="The setting where this service can be provided, such is in home, or at location in organisation", formalDefinition="The setting where this service can be provided, such is in home, or at location in organisation." ) + protected List setting; + + /** + * Collection of Target Groups for the Service Site (The target audience that this service is for). + */ + @Child(name="targetGroup", type={CodeableConcept.class}, order=20, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Collection of Target Groups for the Service Site (The target audience that this service is for)", formalDefinition="Collection of Target Groups for the Service Site (The target audience that this service is for)." ) + protected List targetGroup; + + /** + * Need better description. + */ + @Child(name="coverageArea", type={CodeableConcept.class}, order=21, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Need better description", formalDefinition="Need better description." ) + protected List coverageArea; + + /** + * Need better description. + */ + @Child(name="catchmentArea", type={CodeableConcept.class}, order=22, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Need better description", formalDefinition="Need better description." ) + protected List catchmentArea; + + /** + * List of the specific. + */ + @Child(name="serviceCode", type={CodeableConcept.class}, order=23, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="List of the specific", formalDefinition="List of the specific." ) + protected List serviceCode; + + private static final long serialVersionUID = 1768613427L; + + public HealthcareService() { + super(); + } + + public HealthcareService(Reference location) { + super(); + this.location = location; + } + + /** + * @return {@link #identifier} (External Ids for this item.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (External Ids for this item.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #location} (The location where this healthcare service may be provided.) + */ + public Reference getLocation() { + if (this.location == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.location"); + else if (Configuration.doAutoCreate()) + this.location = new Reference(); // cc + return this.location; + } + + public boolean hasLocation() { + return this.location != null && !this.location.isEmpty(); + } + + /** + * @param value {@link #location} (The location where this healthcare service may be provided.) + */ + public HealthcareService setLocation(Reference value) { + this.location = value; + return this; + } + + /** + * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The location where this healthcare service may be provided.) + */ + public Location getLocationTarget() { + if (this.locationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.location"); + else if (Configuration.doAutoCreate()) + this.locationTarget = new Location(); // aa + return this.locationTarget; + } + + /** + * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The location where this healthcare service may be provided.) + */ + public HealthcareService setLocationTarget(Location value) { + this.locationTarget = value; + return this; + } + + /** + * @return {@link #serviceCategory} (Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type.) + */ + public CodeableConcept getServiceCategory() { + if (this.serviceCategory == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.serviceCategory"); + else if (Configuration.doAutoCreate()) + this.serviceCategory = new CodeableConcept(); // cc + return this.serviceCategory; + } + + public boolean hasServiceCategory() { + return this.serviceCategory != null && !this.serviceCategory.isEmpty(); + } + + /** + * @param value {@link #serviceCategory} (Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type.) + */ + public HealthcareService setServiceCategory(CodeableConcept value) { + this.serviceCategory = value; + return this; + } + + /** + * @return {@link #serviceType} (A specific type of service that may be delivered or performed.) + */ + public List getServiceType() { + if (this.serviceType == null) + this.serviceType = new ArrayList(); + return this.serviceType; + } + + public boolean hasServiceType() { + if (this.serviceType == null) + return false; + for (ServiceTypeComponent item : this.serviceType) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #serviceType} (A specific type of service that may be delivered or performed.) + */ + // syntactic sugar + public ServiceTypeComponent addServiceType() { //3 + ServiceTypeComponent t = new ServiceTypeComponent(); + if (this.serviceType == null) + this.serviceType = new ArrayList(); + this.serviceType.add(t); + return t; + } + + /** + * @return {@link #serviceName} (Further description of the service as it would be presented to a consumer while searching.). This is the underlying object with id, value and extensions. The accessor "getServiceName" gives direct access to the value + */ + public StringType getServiceNameElement() { + if (this.serviceName == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.serviceName"); + else if (Configuration.doAutoCreate()) + this.serviceName = new StringType(); // bb + return this.serviceName; + } + + public boolean hasServiceNameElement() { + return this.serviceName != null && !this.serviceName.isEmpty(); + } + + public boolean hasServiceName() { + return this.serviceName != null && !this.serviceName.isEmpty(); + } + + /** + * @param value {@link #serviceName} (Further description of the service as it would be presented to a consumer while searching.). This is the underlying object with id, value and extensions. The accessor "getServiceName" gives direct access to the value + */ + public HealthcareService setServiceNameElement(StringType value) { + this.serviceName = value; + return this; + } + + /** + * @return Further description of the service as it would be presented to a consumer while searching. + */ + public String getServiceName() { + return this.serviceName == null ? null : this.serviceName.getValue(); + } + + /** + * @param value Further description of the service as it would be presented to a consumer while searching. + */ + public HealthcareService setServiceName(String value) { + if (Utilities.noString(value)) + this.serviceName = null; + else { + if (this.serviceName == null) + this.serviceName = new StringType(); + this.serviceName.setValue(value); + } + return this; + } + + /** + * @return {@link #comment} (Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value + */ + public StringType getCommentElement() { + if (this.comment == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.comment"); + else if (Configuration.doAutoCreate()) + this.comment = new StringType(); // bb + return this.comment; + } + + public boolean hasCommentElement() { + return this.comment != null && !this.comment.isEmpty(); + } + + public boolean hasComment() { + return this.comment != null && !this.comment.isEmpty(); + } + + /** + * @param value {@link #comment} (Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.). This is the underlying object with id, value and extensions. The accessor "getComment" gives direct access to the value + */ + public HealthcareService setCommentElement(StringType value) { + this.comment = value; + return this; + } + + /** + * @return Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName. + */ + public String getComment() { + return this.comment == null ? null : this.comment.getValue(); + } + + /** + * @param value Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName. + */ + public HealthcareService setComment(String value) { + if (Utilities.noString(value)) + this.comment = null; + else { + if (this.comment == null) + this.comment = new StringType(); + this.comment.setValue(value); + } + return this; + } + + /** + * @return {@link #extraDetails} (Extra details about the service that can't be placed in the other fields.). This is the underlying object with id, value and extensions. The accessor "getExtraDetails" gives direct access to the value + */ + public StringType getExtraDetailsElement() { + if (this.extraDetails == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.extraDetails"); + else if (Configuration.doAutoCreate()) + this.extraDetails = new StringType(); // bb + return this.extraDetails; + } + + public boolean hasExtraDetailsElement() { + return this.extraDetails != null && !this.extraDetails.isEmpty(); + } + + public boolean hasExtraDetails() { + return this.extraDetails != null && !this.extraDetails.isEmpty(); + } + + /** + * @param value {@link #extraDetails} (Extra details about the service that can't be placed in the other fields.). This is the underlying object with id, value and extensions. The accessor "getExtraDetails" gives direct access to the value + */ + public HealthcareService setExtraDetailsElement(StringType value) { + this.extraDetails = value; + return this; + } + + /** + * @return Extra details about the service that can't be placed in the other fields. + */ + public String getExtraDetails() { + return this.extraDetails == null ? null : this.extraDetails.getValue(); + } + + /** + * @param value Extra details about the service that can't be placed in the other fields. + */ + public HealthcareService setExtraDetails(String value) { + if (Utilities.noString(value)) + this.extraDetails = null; + else { + if (this.extraDetails == null) + this.extraDetails = new StringType(); + this.extraDetails.setValue(value); + } + return this; + } + + /** + * @return {@link #freeProvisionCode} (The free provision code provides a link to the Free Provision reference entity to enable the selection of one free provision type.) + */ + public CodeableConcept getFreeProvisionCode() { + if (this.freeProvisionCode == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.freeProvisionCode"); + else if (Configuration.doAutoCreate()) + this.freeProvisionCode = new CodeableConcept(); // cc + return this.freeProvisionCode; + } + + public boolean hasFreeProvisionCode() { + return this.freeProvisionCode != null && !this.freeProvisionCode.isEmpty(); + } + + /** + * @param value {@link #freeProvisionCode} (The free provision code provides a link to the Free Provision reference entity to enable the selection of one free provision type.) + */ + public HealthcareService setFreeProvisionCode(CodeableConcept value) { + this.freeProvisionCode = value; + return this; + } + + /** + * @return {@link #eligibility} (Does this service have specific eligibility requirements that need to be met in order to use the service.) + */ + public CodeableConcept getEligibility() { + if (this.eligibility == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.eligibility"); + else if (Configuration.doAutoCreate()) + this.eligibility = new CodeableConcept(); // cc + return this.eligibility; + } + + public boolean hasEligibility() { + return this.eligibility != null && !this.eligibility.isEmpty(); + } + + /** + * @param value {@link #eligibility} (Does this service have specific eligibility requirements that need to be met in order to use the service.) + */ + public HealthcareService setEligibility(CodeableConcept value) { + this.eligibility = value; + return this; + } + + /** + * @return {@link #eligibilityNote} (The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page.). This is the underlying object with id, value and extensions. The accessor "getEligibilityNote" gives direct access to the value + */ + public StringType getEligibilityNoteElement() { + if (this.eligibilityNote == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.eligibilityNote"); + else if (Configuration.doAutoCreate()) + this.eligibilityNote = new StringType(); // bb + return this.eligibilityNote; + } + + public boolean hasEligibilityNoteElement() { + return this.eligibilityNote != null && !this.eligibilityNote.isEmpty(); + } + + public boolean hasEligibilityNote() { + return this.eligibilityNote != null && !this.eligibilityNote.isEmpty(); + } + + /** + * @param value {@link #eligibilityNote} (The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page.). This is the underlying object with id, value and extensions. The accessor "getEligibilityNote" gives direct access to the value + */ + public HealthcareService setEligibilityNoteElement(StringType value) { + this.eligibilityNote = value; + return this; + } + + /** + * @return The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page. + */ + public String getEligibilityNote() { + return this.eligibilityNote == null ? null : this.eligibilityNote.getValue(); + } + + /** + * @param value The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page. + */ + public HealthcareService setEligibilityNote(String value) { + if (Utilities.noString(value)) + this.eligibilityNote = null; + else { + if (this.eligibilityNote == null) + this.eligibilityNote = new StringType(); + this.eligibilityNote.setValue(value); + } + return this; + } + + /** + * @return {@link #appointmentRequired} (Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. If this flag is 'NotDefined', then this flag is overridden by the Site's availability flag. (ConditionalIndicator Enum).) + */ + public CodeableConcept getAppointmentRequired() { + if (this.appointmentRequired == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.appointmentRequired"); + else if (Configuration.doAutoCreate()) + this.appointmentRequired = new CodeableConcept(); // cc + return this.appointmentRequired; + } + + public boolean hasAppointmentRequired() { + return this.appointmentRequired != null && !this.appointmentRequired.isEmpty(); + } + + /** + * @param value {@link #appointmentRequired} (Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. If this flag is 'NotDefined', then this flag is overridden by the Site's availability flag. (ConditionalIndicator Enum).) + */ + public HealthcareService setAppointmentRequired(CodeableConcept value) { + this.appointmentRequired = value; + return this; + } + + /** + * @return {@link #imageURI} (If there is an image associated with this Service Site, its URI can be included here.). This is the underlying object with id, value and extensions. The accessor "getImageURI" gives direct access to the value + */ + public UriType getImageURIElement() { + if (this.imageURI == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.imageURI"); + else if (Configuration.doAutoCreate()) + this.imageURI = new UriType(); // bb + return this.imageURI; + } + + public boolean hasImageURIElement() { + return this.imageURI != null && !this.imageURI.isEmpty(); + } + + public boolean hasImageURI() { + return this.imageURI != null && !this.imageURI.isEmpty(); + } + + /** + * @param value {@link #imageURI} (If there is an image associated with this Service Site, its URI can be included here.). This is the underlying object with id, value and extensions. The accessor "getImageURI" gives direct access to the value + */ + public HealthcareService setImageURIElement(UriType value) { + this.imageURI = value; + return this; + } + + /** + * @return If there is an image associated with this Service Site, its URI can be included here. + */ + public String getImageURI() { + return this.imageURI == null ? null : this.imageURI.getValue(); + } + + /** + * @param value If there is an image associated with this Service Site, its URI can be included here. + */ + public HealthcareService setImageURI(String value) { + if (Utilities.noString(value)) + this.imageURI = null; + else { + if (this.imageURI == null) + this.imageURI = new UriType(); + this.imageURI.setValue(value); + } + return this; + } + + /** + * @return {@link #availableTime} (A Collection of times that the Service Site is available.) + */ + public List getAvailableTime() { + if (this.availableTime == null) + this.availableTime = new ArrayList(); + return this.availableTime; + } + + public boolean hasAvailableTime() { + if (this.availableTime == null) + return false; + for (HealthcareServiceAvailableTimeComponent item : this.availableTime) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #availableTime} (A Collection of times that the Service Site is available.) + */ + // syntactic sugar + public HealthcareServiceAvailableTimeComponent addAvailableTime() { //3 + HealthcareServiceAvailableTimeComponent t = new HealthcareServiceAvailableTimeComponent(); + if (this.availableTime == null) + this.availableTime = new ArrayList(); + this.availableTime.add(t); + return t; + } + + /** + * @return {@link #notAvailableTime} (Not avail times - need better description.) + */ + public List getNotAvailableTime() { + if (this.notAvailableTime == null) + this.notAvailableTime = new ArrayList(); + return this.notAvailableTime; + } + + public boolean hasNotAvailableTime() { + if (this.notAvailableTime == null) + return false; + for (HealthcareServiceNotAvailableTimeComponent item : this.notAvailableTime) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #notAvailableTime} (Not avail times - need better description.) + */ + // syntactic sugar + public HealthcareServiceNotAvailableTimeComponent addNotAvailableTime() { //3 + HealthcareServiceNotAvailableTimeComponent t = new HealthcareServiceNotAvailableTimeComponent(); + if (this.notAvailableTime == null) + this.notAvailableTime = new ArrayList(); + this.notAvailableTime.add(t); + return t; + } + + /** + * @return {@link #availabilityExceptions} (A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times.). This is the underlying object with id, value and extensions. The accessor "getAvailabilityExceptions" gives direct access to the value + */ + public StringType getAvailabilityExceptionsElement() { + if (this.availabilityExceptions == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.availabilityExceptions"); + else if (Configuration.doAutoCreate()) + this.availabilityExceptions = new StringType(); // bb + return this.availabilityExceptions; + } + + public boolean hasAvailabilityExceptionsElement() { + return this.availabilityExceptions != null && !this.availabilityExceptions.isEmpty(); + } + + public boolean hasAvailabilityExceptions() { + return this.availabilityExceptions != null && !this.availabilityExceptions.isEmpty(); + } + + /** + * @param value {@link #availabilityExceptions} (A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times.). This is the underlying object with id, value and extensions. The accessor "getAvailabilityExceptions" gives direct access to the value + */ + public HealthcareService setAvailabilityExceptionsElement(StringType value) { + this.availabilityExceptions = value; + return this; + } + + /** + * @return A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times. + */ + public String getAvailabilityExceptions() { + return this.availabilityExceptions == null ? null : this.availabilityExceptions.getValue(); + } + + /** + * @param value A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times. + */ + public HealthcareService setAvailabilityExceptions(String value) { + if (Utilities.noString(value)) + this.availabilityExceptions = null; + else { + if (this.availabilityExceptions == null) + this.availabilityExceptions = new StringType(); + this.availabilityExceptions.setValue(value); + } + return this; + } + + /** + * @return {@link #publicKey} (The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available.). This is the underlying object with id, value and extensions. The accessor "getPublicKey" gives direct access to the value + */ + public StringType getPublicKeyElement() { + if (this.publicKey == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HealthcareService.publicKey"); + else if (Configuration.doAutoCreate()) + this.publicKey = new StringType(); // bb + return this.publicKey; + } + + public boolean hasPublicKeyElement() { + return this.publicKey != null && !this.publicKey.isEmpty(); + } + + public boolean hasPublicKey() { + return this.publicKey != null && !this.publicKey.isEmpty(); + } + + /** + * @param value {@link #publicKey} (The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available.). This is the underlying object with id, value and extensions. The accessor "getPublicKey" gives direct access to the value + */ + public HealthcareService setPublicKeyElement(StringType value) { + this.publicKey = value; + return this; + } + + /** + * @return The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available. + */ + public String getPublicKey() { + return this.publicKey == null ? null : this.publicKey.getValue(); + } + + /** + * @param value The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available. + */ + public HealthcareService setPublicKey(String value) { + if (Utilities.noString(value)) + this.publicKey = null; + else { + if (this.publicKey == null) + this.publicKey = new StringType(); + this.publicKey.setValue(value); + } + return this; + } + + /** + * @return {@link #programName} (Program Names that can be used to categorize the service.) + */ + public List getProgramName() { + if (this.programName == null) + this.programName = new ArrayList(); + return this.programName; + } + + public boolean hasProgramName() { + if (this.programName == null) + return false; + for (StringType item : this.programName) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #programName} (Program Names that can be used to categorize the service.) + */ + // syntactic sugar + public StringType addProgramNameElement() {//2 + StringType t = new StringType(); + if (this.programName == null) + this.programName = new ArrayList(); + this.programName.add(t); + return t; + } + + /** + * @param value {@link #programName} (Program Names that can be used to categorize the service.) + */ + public HealthcareService addProgramName(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.programName == null) + this.programName = new ArrayList(); + this.programName.add(t); + return this; + } + + /** + * @param value {@link #programName} (Program Names that can be used to categorize the service.) + */ + public boolean hasProgramName(String value) { + if (this.programName == null) + return false; + for (StringType v : this.programName) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #contactPoint} (List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts.) + */ + public List getContactPoint() { + if (this.contactPoint == null) + this.contactPoint = new ArrayList(); + return this.contactPoint; + } + + public boolean hasContactPoint() { + if (this.contactPoint == null) + return false; + for (ContactPoint item : this.contactPoint) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #contactPoint} (List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts.) + */ + // syntactic sugar + public ContactPoint addContactPoint() { //3 + ContactPoint t = new ContactPoint(); + if (this.contactPoint == null) + this.contactPoint = new ArrayList(); + this.contactPoint.add(t); + return t; + } + + /** + * @return {@link #characteristic} (Collection of Characteristics (attributes).) + */ + public List getCharacteristic() { + if (this.characteristic == null) + this.characteristic = new ArrayList(); + return this.characteristic; + } + + public boolean hasCharacteristic() { + if (this.characteristic == null) + return false; + for (CodeableConcept item : this.characteristic) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #characteristic} (Collection of Characteristics (attributes).) + */ + // syntactic sugar + public CodeableConcept addCharacteristic() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.characteristic == null) + this.characteristic = new ArrayList(); + this.characteristic.add(t); + return t; + } + + /** + * @return {@link #referralMethod} (Ways that the service accepts referrals.) + */ + public List getReferralMethod() { + if (this.referralMethod == null) + this.referralMethod = new ArrayList(); + return this.referralMethod; + } + + public boolean hasReferralMethod() { + if (this.referralMethod == null) + return false; + for (CodeableConcept item : this.referralMethod) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #referralMethod} (Ways that the service accepts referrals.) + */ + // syntactic sugar + public CodeableConcept addReferralMethod() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.referralMethod == null) + this.referralMethod = new ArrayList(); + this.referralMethod.add(t); + return t; + } + + /** + * @return {@link #setting} (The setting where this service can be provided, such is in home, or at location in organisation.) + */ + public List getSetting() { + if (this.setting == null) + this.setting = new ArrayList(); + return this.setting; + } + + public boolean hasSetting() { + if (this.setting == null) + return false; + for (CodeableConcept item : this.setting) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #setting} (The setting where this service can be provided, such is in home, or at location in organisation.) + */ + // syntactic sugar + public CodeableConcept addSetting() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.setting == null) + this.setting = new ArrayList(); + this.setting.add(t); + return t; + } + + /** + * @return {@link #targetGroup} (Collection of Target Groups for the Service Site (The target audience that this service is for).) + */ + public List getTargetGroup() { + if (this.targetGroup == null) + this.targetGroup = new ArrayList(); + return this.targetGroup; + } + + public boolean hasTargetGroup() { + if (this.targetGroup == null) + return false; + for (CodeableConcept item : this.targetGroup) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #targetGroup} (Collection of Target Groups for the Service Site (The target audience that this service is for).) + */ + // syntactic sugar + public CodeableConcept addTargetGroup() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.targetGroup == null) + this.targetGroup = new ArrayList(); + this.targetGroup.add(t); + return t; + } + + /** + * @return {@link #coverageArea} (Need better description.) + */ + public List getCoverageArea() { + if (this.coverageArea == null) + this.coverageArea = new ArrayList(); + return this.coverageArea; + } + + public boolean hasCoverageArea() { + if (this.coverageArea == null) + return false; + for (CodeableConcept item : this.coverageArea) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #coverageArea} (Need better description.) + */ + // syntactic sugar + public CodeableConcept addCoverageArea() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.coverageArea == null) + this.coverageArea = new ArrayList(); + this.coverageArea.add(t); + return t; + } + + /** + * @return {@link #catchmentArea} (Need better description.) + */ + public List getCatchmentArea() { + if (this.catchmentArea == null) + this.catchmentArea = new ArrayList(); + return this.catchmentArea; + } + + public boolean hasCatchmentArea() { + if (this.catchmentArea == null) + return false; + for (CodeableConcept item : this.catchmentArea) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #catchmentArea} (Need better description.) + */ + // syntactic sugar + public CodeableConcept addCatchmentArea() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.catchmentArea == null) + this.catchmentArea = new ArrayList(); + this.catchmentArea.add(t); + return t; + } + + /** + * @return {@link #serviceCode} (List of the specific.) + */ + public List getServiceCode() { + if (this.serviceCode == null) + this.serviceCode = new ArrayList(); + return this.serviceCode; + } + + public boolean hasServiceCode() { + if (this.serviceCode == null) + return false; + for (CodeableConcept item : this.serviceCode) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #serviceCode} (List of the specific.) + */ + // syntactic sugar + public CodeableConcept addServiceCode() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.serviceCode == null) + this.serviceCode = new ArrayList(); + this.serviceCode.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "External Ids for this item.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("location", "Reference(Location)", "The location where this healthcare service may be provided.", 0, java.lang.Integer.MAX_VALUE, location)); + childrenList.add(new Property("serviceCategory", "CodeableConcept", "Identifies the broad category of service being performed or delivered. Selecting a Service Category then determines the list of relevant service types that can be selected in the Primary Service Type.", 0, java.lang.Integer.MAX_VALUE, serviceCategory)); + childrenList.add(new Property("serviceType", "", "A specific type of service that may be delivered or performed.", 0, java.lang.Integer.MAX_VALUE, serviceType)); + childrenList.add(new Property("serviceName", "string", "Further description of the service as it would be presented to a consumer while searching.", 0, java.lang.Integer.MAX_VALUE, serviceName)); + childrenList.add(new Property("comment", "string", "Additional description of the or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName.", 0, java.lang.Integer.MAX_VALUE, comment)); + childrenList.add(new Property("extraDetails", "string", "Extra details about the service that can't be placed in the other fields.", 0, java.lang.Integer.MAX_VALUE, extraDetails)); + childrenList.add(new Property("freeProvisionCode", "CodeableConcept", "The free provision code provides a link to the Free Provision reference entity to enable the selection of one free provision type.", 0, java.lang.Integer.MAX_VALUE, freeProvisionCode)); + childrenList.add(new Property("eligibility", "CodeableConcept", "Does this service have specific eligibility requirements that need to be met in order to use the service.", 0, java.lang.Integer.MAX_VALUE, eligibility)); + childrenList.add(new Property("eligibilityNote", "string", "The description of service eligibility should, in general, not exceed one or two paragraphs. It should be sufficient for a prospective consumer to determine if they are likely to be eligible or not. Where eligibility requirements and conditions are complex, it may simply be noted that an eligibility assessment is required. Where eligibility is determined by an outside source, such as an Act of Parliament, this should be noted, preferably with a reference to a commonly available copy of the source document such as a web page.", 0, java.lang.Integer.MAX_VALUE, eligibilityNote)); + childrenList.add(new Property("appointmentRequired", "CodeableConcept", "Indicates whether or not a prospective consumer will require an appointment for a particular service at a Site to be provided by the Organization. Indicates if an appointment is required for access to this service. If this flag is 'NotDefined', then this flag is overridden by the Site's availability flag. (ConditionalIndicator Enum).", 0, java.lang.Integer.MAX_VALUE, appointmentRequired)); + childrenList.add(new Property("imageURI", "uri", "If there is an image associated with this Service Site, its URI can be included here.", 0, java.lang.Integer.MAX_VALUE, imageURI)); + childrenList.add(new Property("availableTime", "", "A Collection of times that the Service Site is available.", 0, java.lang.Integer.MAX_VALUE, availableTime)); + childrenList.add(new Property("notAvailableTime", "", "Not avail times - need better description.", 0, java.lang.Integer.MAX_VALUE, notAvailableTime)); + childrenList.add(new Property("availabilityExceptions", "string", "A description of Site availability exceptions, e.g., public holiday availability. Succinctly describing all possible exceptions to normal Site availability as details in the Available Times and Not Available Times.", 0, java.lang.Integer.MAX_VALUE, availabilityExceptions)); + childrenList.add(new Property("publicKey", "string", "The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available.", 0, java.lang.Integer.MAX_VALUE, publicKey)); + childrenList.add(new Property("programName", "string", "Program Names that can be used to categorize the service.", 0, java.lang.Integer.MAX_VALUE, programName)); + childrenList.add(new Property("contactPoint", "ContactPoint", "List of contacts related to this specific healthcare service. If this is empty, then refer to the location's contacts.", 0, java.lang.Integer.MAX_VALUE, contactPoint)); + childrenList.add(new Property("characteristic", "CodeableConcept", "Collection of Characteristics (attributes).", 0, java.lang.Integer.MAX_VALUE, characteristic)); + childrenList.add(new Property("referralMethod", "CodeableConcept", "Ways that the service accepts referrals.", 0, java.lang.Integer.MAX_VALUE, referralMethod)); + childrenList.add(new Property("setting", "CodeableConcept", "The setting where this service can be provided, such is in home, or at location in organisation.", 0, java.lang.Integer.MAX_VALUE, setting)); + childrenList.add(new Property("targetGroup", "CodeableConcept", "Collection of Target Groups for the Service Site (The target audience that this service is for).", 0, java.lang.Integer.MAX_VALUE, targetGroup)); + childrenList.add(new Property("coverageArea", "CodeableConcept", "Need better description.", 0, java.lang.Integer.MAX_VALUE, coverageArea)); + childrenList.add(new Property("catchmentArea", "CodeableConcept", "Need better description.", 0, java.lang.Integer.MAX_VALUE, catchmentArea)); + childrenList.add(new Property("serviceCode", "CodeableConcept", "List of the specific.", 0, java.lang.Integer.MAX_VALUE, serviceCode)); + } + + public HealthcareService copy() { + HealthcareService dst = new HealthcareService(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.location = location == null ? null : location.copy(); + dst.serviceCategory = serviceCategory == null ? null : serviceCategory.copy(); + if (serviceType != null) { + dst.serviceType = new ArrayList(); + for (ServiceTypeComponent i : serviceType) + dst.serviceType.add(i.copy()); + }; + dst.serviceName = serviceName == null ? null : serviceName.copy(); + dst.comment = comment == null ? null : comment.copy(); + dst.extraDetails = extraDetails == null ? null : extraDetails.copy(); + dst.freeProvisionCode = freeProvisionCode == null ? null : freeProvisionCode.copy(); + dst.eligibility = eligibility == null ? null : eligibility.copy(); + dst.eligibilityNote = eligibilityNote == null ? null : eligibilityNote.copy(); + dst.appointmentRequired = appointmentRequired == null ? null : appointmentRequired.copy(); + dst.imageURI = imageURI == null ? null : imageURI.copy(); + if (availableTime != null) { + dst.availableTime = new ArrayList(); + for (HealthcareServiceAvailableTimeComponent i : availableTime) + dst.availableTime.add(i.copy()); + }; + if (notAvailableTime != null) { + dst.notAvailableTime = new ArrayList(); + for (HealthcareServiceNotAvailableTimeComponent i : notAvailableTime) + dst.notAvailableTime.add(i.copy()); + }; + dst.availabilityExceptions = availabilityExceptions == null ? null : availabilityExceptions.copy(); + dst.publicKey = publicKey == null ? null : publicKey.copy(); + if (programName != null) { + dst.programName = new ArrayList(); + for (StringType i : programName) + dst.programName.add(i.copy()); + }; + if (contactPoint != null) { + dst.contactPoint = new ArrayList(); + for (ContactPoint i : contactPoint) + dst.contactPoint.add(i.copy()); + }; + if (characteristic != null) { + dst.characteristic = new ArrayList(); + for (CodeableConcept i : characteristic) + dst.characteristic.add(i.copy()); + }; + if (referralMethod != null) { + dst.referralMethod = new ArrayList(); + for (CodeableConcept i : referralMethod) + dst.referralMethod.add(i.copy()); + }; + if (setting != null) { + dst.setting = new ArrayList(); + for (CodeableConcept i : setting) + dst.setting.add(i.copy()); + }; + if (targetGroup != null) { + dst.targetGroup = new ArrayList(); + for (CodeableConcept i : targetGroup) + dst.targetGroup.add(i.copy()); + }; + if (coverageArea != null) { + dst.coverageArea = new ArrayList(); + for (CodeableConcept i : coverageArea) + dst.coverageArea.add(i.copy()); + }; + if (catchmentArea != null) { + dst.catchmentArea = new ArrayList(); + for (CodeableConcept i : catchmentArea) + dst.catchmentArea.add(i.copy()); + }; + if (serviceCode != null) { + dst.serviceCode = new ArrayList(); + for (CodeableConcept i : serviceCode) + dst.serviceCode.add(i.copy()); + }; + return dst; + } + + protected HealthcareService typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof HealthcareService)) + return false; + HealthcareService o = (HealthcareService) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(location, o.location, true) && compareDeep(serviceCategory, o.serviceCategory, true) + && compareDeep(serviceType, o.serviceType, true) && compareDeep(serviceName, o.serviceName, true) + && compareDeep(comment, o.comment, true) && compareDeep(extraDetails, o.extraDetails, true) && compareDeep(freeProvisionCode, o.freeProvisionCode, true) + && compareDeep(eligibility, o.eligibility, true) && compareDeep(eligibilityNote, o.eligibilityNote, true) + && compareDeep(appointmentRequired, o.appointmentRequired, true) && compareDeep(imageURI, o.imageURI, true) + && compareDeep(availableTime, o.availableTime, true) && compareDeep(notAvailableTime, o.notAvailableTime, true) + && compareDeep(availabilityExceptions, o.availabilityExceptions, true) && compareDeep(publicKey, o.publicKey, true) + && compareDeep(programName, o.programName, true) && compareDeep(contactPoint, o.contactPoint, true) + && compareDeep(characteristic, o.characteristic, true) && compareDeep(referralMethod, o.referralMethod, true) + && compareDeep(setting, o.setting, true) && compareDeep(targetGroup, o.targetGroup, true) && compareDeep(coverageArea, o.coverageArea, true) + && compareDeep(catchmentArea, o.catchmentArea, true) && compareDeep(serviceCode, o.serviceCode, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof HealthcareService)) + return false; + HealthcareService o = (HealthcareService) other; + return compareValues(serviceName, o.serviceName, true) && compareValues(comment, o.comment, true) && compareValues(extraDetails, o.extraDetails, true) + && compareValues(eligibilityNote, o.eligibilityNote, true) && compareValues(imageURI, o.imageURI, true) + && compareValues(availabilityExceptions, o.availabilityExceptions, true) && compareValues(publicKey, o.publicKey, true) + && compareValues(programName, o.programName, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (location == null || location.isEmpty()) + && (serviceCategory == null || serviceCategory.isEmpty()) && (serviceType == null || serviceType.isEmpty()) + && (serviceName == null || serviceName.isEmpty()) && (comment == null || comment.isEmpty()) + && (extraDetails == null || extraDetails.isEmpty()) && (freeProvisionCode == null || freeProvisionCode.isEmpty()) + && (eligibility == null || eligibility.isEmpty()) && (eligibilityNote == null || eligibilityNote.isEmpty()) + && (appointmentRequired == null || appointmentRequired.isEmpty()) && (imageURI == null || imageURI.isEmpty()) + && (availableTime == null || availableTime.isEmpty()) && (notAvailableTime == null || notAvailableTime.isEmpty()) + && (availabilityExceptions == null || availabilityExceptions.isEmpty()) && (publicKey == null || publicKey.isEmpty()) + && (programName == null || programName.isEmpty()) && (contactPoint == null || contactPoint.isEmpty()) + && (characteristic == null || characteristic.isEmpty()) && (referralMethod == null || referralMethod.isEmpty()) + && (setting == null || setting.isEmpty()) && (targetGroup == null || targetGroup.isEmpty()) + && (coverageArea == null || coverageArea.isEmpty()) && (catchmentArea == null || catchmentArea.isEmpty()) + && (serviceCode == null || serviceCode.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.HealthcareService; + } + + @SearchParamDefinition(name="servicecategory", path="HealthcareService.serviceCategory", description="Service Category of the Healthcare Service", type="token" ) + public static final String SP_SERVICECATEGORY = "servicecategory"; + @SearchParamDefinition(name="servicetype", path="HealthcareService.serviceType.type", description="The type of service provided by this healthcare service", type="token" ) + public static final String SP_SERVICETYPE = "servicetype"; + @SearchParamDefinition(name="location", path="HealthcareService.location", description="The location of the Healthcare Service", type="reference" ) + public static final String SP_LOCATION = "location"; + @SearchParamDefinition(name="name", path="HealthcareService.serviceName", description="A portion of the Healthcare service name", type="string" ) + public static final String SP_NAME = "name"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HumanName$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HumanName$1.class new file mode 100644 index 0000000000000000000000000000000000000000..e2448c92ff34adec67ae38e8fce9b15d4de5601d GIT binary patch literal 1014 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 SBg+u7c>LS}ij~ES2>%P{X7J|# literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HumanName.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HumanName.class new file mode 100644 index 0000000000000000000000000000000000000000..41d3988e65f55171bf5bb06e6cdf7e3fb7b2f133 GIT binary patch literal 11365 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 AxBvhE literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/HumanName.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HumanName.java similarity index 91% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/HumanName.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HumanName.java index d0061feb326..53087dd7bed 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/HumanName.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/HumanName.java @@ -1,658 +1,657 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -import org.hl7.fhir.instance.model.annotations.DatatypeDef; -/** - * A human's name with the ability to identify parts and usage. - */ -@DatatypeDef(name="HumanName") -public class HumanName extends Type implements ICompositeType { - - public enum NameUse implements FhirEnum { - /** - * Known as/conventional/the one you normally use. - */ - USUAL, - /** - * The formal name as registered in an official (government) registry, but which name might not be commonly used. May be called "legal name". - */ - OFFICIAL, - /** - * A temporary name. Name.period can provide more detailed information. This may also be used for temporary names assigned at birth or in emergency situations. - */ - TEMP, - /** - * A name that is used to address the person in an informal manner, but is not part of their formal or usual name. - */ - NICKNAME, - /** - * Anonymous assigned name, alias, or pseudonym (used to protect a person's identity for privacy reasons). - */ - ANONYMOUS, - /** - * This name is no longer in use (or was never correct, but retained for records). - */ - OLD, - /** - * A name used prior to marriage. Marriage naming customs vary greatly around the world. This name use is for use by applications that collect and store "maiden" names. Though the concept of maiden name is often gender specific, the use of this term is not gender specific. The use of this term does not imply any particular history for a person's name, nor should the maiden name be determined algorithmically. - */ - MAIDEN, - /** - * added to help the parsers - */ - NULL; - - public static final NameUseEnumFactory ENUM_FACTORY = new NameUseEnumFactory(); - - public static NameUse fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("usual".equals(codeString)) - return USUAL; - if ("official".equals(codeString)) - return OFFICIAL; - if ("temp".equals(codeString)) - return TEMP; - if ("nickname".equals(codeString)) - return NICKNAME; - if ("anonymous".equals(codeString)) - return ANONYMOUS; - if ("old".equals(codeString)) - return OLD; - if ("maiden".equals(codeString)) - return MAIDEN; - throw new IllegalArgumentException("Unknown NameUse code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case USUAL: return "usual"; - case OFFICIAL: return "official"; - case TEMP: return "temp"; - case NICKNAME: return "nickname"; - case ANONYMOUS: return "anonymous"; - case OLD: return "old"; - case MAIDEN: return "maiden"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case USUAL: return ""; - case OFFICIAL: return ""; - case TEMP: return ""; - case NICKNAME: return ""; - case ANONYMOUS: return ""; - case OLD: return ""; - case MAIDEN: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case USUAL: return "Known as/conventional/the one you normally use."; - case OFFICIAL: return "The formal name as registered in an official (government) registry, but which name might not be commonly used. May be called 'legal name'."; - case TEMP: return "A temporary name. Name.period can provide more detailed information. This may also be used for temporary names assigned at birth or in emergency situations."; - case NICKNAME: return "A name that is used to address the person in an informal manner, but is not part of their formal or usual name."; - case ANONYMOUS: return "Anonymous assigned name, alias, or pseudonym (used to protect a person's identity for privacy reasons)."; - case OLD: return "This name is no longer in use (or was never correct, but retained for records)."; - case MAIDEN: return "A name used prior to marriage. Marriage naming customs vary greatly around the world. This name use is for use by applications that collect and store 'maiden' names. Though the concept of maiden name is often gender specific, the use of this term is not gender specific. The use of this term does not imply any particular history for a person's name, nor should the maiden name be determined algorithmically."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case USUAL: return "usual"; - case OFFICIAL: return "official"; - case TEMP: return "temp"; - case NICKNAME: return "nickname"; - case ANONYMOUS: return "anonymous"; - case OLD: return "old"; - case MAIDEN: return "maiden"; - default: return "?"; - } - } - } - - public static class NameUseEnumFactory implements EnumFactory { - public NameUse fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("usual".equals(codeString)) - return NameUse.USUAL; - if ("official".equals(codeString)) - return NameUse.OFFICIAL; - if ("temp".equals(codeString)) - return NameUse.TEMP; - if ("nickname".equals(codeString)) - return NameUse.NICKNAME; - if ("anonymous".equals(codeString)) - return NameUse.ANONYMOUS; - if ("old".equals(codeString)) - return NameUse.OLD; - if ("maiden".equals(codeString)) - return NameUse.MAIDEN; - throw new IllegalArgumentException("Unknown NameUse code '"+codeString+"'"); - } - public String toCode(NameUse code) throws IllegalArgumentException { - if (code == NameUse.USUAL) - return "usual"; - if (code == NameUse.OFFICIAL) - return "official"; - if (code == NameUse.TEMP) - return "temp"; - if (code == NameUse.NICKNAME) - return "nickname"; - if (code == NameUse.ANONYMOUS) - return "anonymous"; - if (code == NameUse.OLD) - return "old"; - if (code == NameUse.MAIDEN) - return "maiden"; - return "?"; - } - } - - /** - * Identifies the purpose for this name. - */ - @Child(name="use", type={CodeType.class}, order=-1, min=0, max=1) - @Description(shortDefinition="usual | official | temp | nickname | anonymous | old | maiden", formalDefinition="Identifies the purpose for this name." ) - protected Enumeration use; - - /** - * A full text representation of the name. - */ - @Child(name="text", type={StringType.class}, order=0, min=0, max=1) - @Description(shortDefinition="Text representation of the full name", formalDefinition="A full text representation of the name." ) - protected StringType text; - - /** - * The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father. - */ - @Child(name="family", type={StringType.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Family name (often called 'Surname')", formalDefinition="The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father." ) - protected List family; - - /** - * Given name. - */ - @Child(name="given", type={StringType.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Given names (not always 'first'). Includes middle names", formalDefinition="Given name." ) - protected List given; - - /** - * Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name. - */ - @Child(name="prefix", type={StringType.class}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Parts that come before the name", formalDefinition="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name." ) - protected List prefix; - - /** - * Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name. - */ - @Child(name="suffix", type={StringType.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Parts that come after the name", formalDefinition="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name." ) - protected List suffix; - - /** - * Indicates the period of time when this name was valid for the named person. - */ - @Child(name="period", type={Period.class}, order=5, min=0, max=1) - @Description(shortDefinition="Time period when name was/is in use", formalDefinition="Indicates the period of time when this name was valid for the named person." ) - protected Period period; - - private static final long serialVersionUID = -210174642L; - - public HumanName() { - super(); - } - - /** - * @return {@link #use} (Identifies the purpose for this name.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value - */ - public Enumeration getUseElement() { - if (this.use == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HumanName.use"); - else if (Configuration.doAutoCreate()) - this.use = new Enumeration(); - return this.use; - } - - public boolean hasUseElement() { - return this.use != null && !this.use.isEmpty(); - } - - public boolean hasUse() { - return this.use != null && !this.use.isEmpty(); - } - - /** - * @param value {@link #use} (Identifies the purpose for this name.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value - */ - public HumanName setUseElement(Enumeration value) { - this.use = value; - return this; - } - - /** - * @return Identifies the purpose for this name. - */ - public NameUse getUse() { - return this.use == null ? null : this.use.getValue(); - } - - /** - * @param value Identifies the purpose for this name. - */ - public HumanName setUse(NameUse value) { - if (value == null) - this.use = null; - else { - if (this.use == null) - this.use = new Enumeration(NameUse.ENUM_FACTORY); - this.use.setValue(value); - } - return this; - } - - /** - * @return {@link #text} (A full text representation of the name.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value - */ - public StringType getTextElement() { - if (this.text == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HumanName.text"); - else if (Configuration.doAutoCreate()) - this.text = new StringType(); - return this.text; - } - - public boolean hasTextElement() { - return this.text != null && !this.text.isEmpty(); - } - - public boolean hasText() { - return this.text != null && !this.text.isEmpty(); - } - - /** - * @param value {@link #text} (A full text representation of the name.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value - */ - public HumanName setTextElement(StringType value) { - this.text = value; - return this; - } - - /** - * @return A full text representation of the name. - */ - public String getText() { - return this.text == null ? null : this.text.getValue(); - } - - /** - * @param value A full text representation of the name. - */ - public HumanName setText(String value) { - if (Utilities.noString(value)) - this.text = null; - else { - if (this.text == null) - this.text = new StringType(); - this.text.setValue(value); - } - return this; - } - - /** - * @return {@link #family} (The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.) - */ - public List getFamily() { - if (this.family == null) - this.family = new ArrayList(); - return this.family; - } - - public boolean hasFamily() { - if (this.family == null) - return false; - for (StringType item : this.family) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #family} (The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.) - */ - // syntactic sugar - public StringType addFamilyElement() {//2 - StringType t = new StringType(); - if (this.family == null) - this.family = new ArrayList(); - this.family.add(t); - return t; - } - - /** - * @param value {@link #family} (The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.) - */ - public HumanName addFamily(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.family == null) - this.family = new ArrayList(); - this.family.add(t); - return this; - } - - /** - * @param value {@link #family} (The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.) - */ - public boolean hasFamily(String value) { - if (this.family == null) - return false; - for (StringType v : this.family) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #given} (Given name.) - */ - public List getGiven() { - if (this.given == null) - this.given = new ArrayList(); - return this.given; - } - - public boolean hasGiven() { - if (this.given == null) - return false; - for (StringType item : this.given) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #given} (Given name.) - */ - // syntactic sugar - public StringType addGivenElement() {//2 - StringType t = new StringType(); - if (this.given == null) - this.given = new ArrayList(); - this.given.add(t); - return t; - } - - /** - * @param value {@link #given} (Given name.) - */ - public HumanName addGiven(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.given == null) - this.given = new ArrayList(); - this.given.add(t); - return this; - } - - /** - * @param value {@link #given} (Given name.) - */ - public boolean hasGiven(String value) { - if (this.given == null) - return false; - for (StringType v : this.given) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #prefix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.) - */ - public List getPrefix() { - if (this.prefix == null) - this.prefix = new ArrayList(); - return this.prefix; - } - - public boolean hasPrefix() { - if (this.prefix == null) - return false; - for (StringType item : this.prefix) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #prefix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.) - */ - // syntactic sugar - public StringType addPrefixElement() {//2 - StringType t = new StringType(); - if (this.prefix == null) - this.prefix = new ArrayList(); - this.prefix.add(t); - return t; - } - - /** - * @param value {@link #prefix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.) - */ - public HumanName addPrefix(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.prefix == null) - this.prefix = new ArrayList(); - this.prefix.add(t); - return this; - } - - /** - * @param value {@link #prefix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.) - */ - public boolean hasPrefix(String value) { - if (this.prefix == null) - return false; - for (StringType v : this.prefix) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #suffix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.) - */ - public List getSuffix() { - if (this.suffix == null) - this.suffix = new ArrayList(); - return this.suffix; - } - - public boolean hasSuffix() { - if (this.suffix == null) - return false; - for (StringType item : this.suffix) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #suffix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.) - */ - // syntactic sugar - public StringType addSuffixElement() {//2 - StringType t = new StringType(); - if (this.suffix == null) - this.suffix = new ArrayList(); - this.suffix.add(t); - return t; - } - - /** - * @param value {@link #suffix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.) - */ - public HumanName addSuffix(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.suffix == null) - this.suffix = new ArrayList(); - this.suffix.add(t); - return this; - } - - /** - * @param value {@link #suffix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.) - */ - public boolean hasSuffix(String value) { - if (this.suffix == null) - return false; - for (StringType v : this.suffix) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #period} (Indicates the period of time when this name was valid for the named person.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create HumanName.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (Indicates the period of time when this name was valid for the named person.) - */ - public HumanName setPeriod(Period value) { - this.period = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("use", "code", "Identifies the purpose for this name.", 0, java.lang.Integer.MAX_VALUE, use)); - childrenList.add(new Property("text", "string", "A full text representation of the name.", 0, java.lang.Integer.MAX_VALUE, text)); - childrenList.add(new Property("family", "string", "The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.", 0, java.lang.Integer.MAX_VALUE, family)); - childrenList.add(new Property("given", "string", "Given name.", 0, java.lang.Integer.MAX_VALUE, given)); - childrenList.add(new Property("prefix", "string", "Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.", 0, java.lang.Integer.MAX_VALUE, prefix)); - childrenList.add(new Property("suffix", "string", "Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.", 0, java.lang.Integer.MAX_VALUE, suffix)); - childrenList.add(new Property("period", "Period", "Indicates the period of time when this name was valid for the named person.", 0, java.lang.Integer.MAX_VALUE, period)); - } - - public HumanName copy() { - HumanName dst = new HumanName(); - copyValues(dst); - dst.use = use == null ? null : use.copy(); - dst.text = text == null ? null : text.copy(); - if (family != null) { - dst.family = new ArrayList(); - for (StringType i : family) - dst.family.add(i.copy()); - }; - if (given != null) { - dst.given = new ArrayList(); - for (StringType i : given) - dst.given.add(i.copy()); - }; - if (prefix != null) { - dst.prefix = new ArrayList(); - for (StringType i : prefix) - dst.prefix.add(i.copy()); - }; - if (suffix != null) { - dst.suffix = new ArrayList(); - for (StringType i : suffix) - dst.suffix.add(i.copy()); - }; - dst.period = period == null ? null : period.copy(); - return dst; - } - - protected HumanName typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (use == null || use.isEmpty()) && (text == null || text.isEmpty()) - && (family == null || family.isEmpty()) && (given == null || given.isEmpty()) && (prefix == null || prefix.isEmpty()) - && (suffix == null || suffix.isEmpty()) && (period == null || period.isEmpty()); - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +/** + * A human's name with the ability to identify parts and usage. + */ +@DatatypeDef(name="HumanName") +public class HumanName extends Type implements ICompositeType { + + public enum NameUse { + /** + * Known as/conventional/the one you normally use. + */ + USUAL, + /** + * The formal name as registered in an official (government) registry, but which name might not be commonly used. May be called "legal name". + */ + OFFICIAL, + /** + * A temporary name. Name.period can provide more detailed information. This may also be used for temporary names assigned at birth or in emergency situations. + */ + TEMP, + /** + * A name that is used to address the person in an informal manner, but is not part of their formal or usual name. + */ + NICKNAME, + /** + * Anonymous assigned name, alias, or pseudonym (used to protect a person's identity for privacy reasons). + */ + ANONYMOUS, + /** + * This name is no longer in use (or was never correct, but retained for records). + */ + OLD, + /** + * A name used prior to marriage. Marriage naming customs vary greatly around the world. This name use is for use by applications that collect and store "maiden" names. Though the concept of maiden name is often gender specific, the use of this term is not gender specific. The use of this term does not imply any particular history for a person's name, nor should the maiden name be determined algorithmically. + */ + MAIDEN, + /** + * added to help the parsers + */ + NULL; + public static NameUse fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("usual".equals(codeString)) + return USUAL; + if ("official".equals(codeString)) + return OFFICIAL; + if ("temp".equals(codeString)) + return TEMP; + if ("nickname".equals(codeString)) + return NICKNAME; + if ("anonymous".equals(codeString)) + return ANONYMOUS; + if ("old".equals(codeString)) + return OLD; + if ("maiden".equals(codeString)) + return MAIDEN; + throw new Exception("Unknown NameUse code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case USUAL: return "usual"; + case OFFICIAL: return "official"; + case TEMP: return "temp"; + case NICKNAME: return "nickname"; + case ANONYMOUS: return "anonymous"; + case OLD: return "old"; + case MAIDEN: return "maiden"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case USUAL: return ""; + case OFFICIAL: return ""; + case TEMP: return ""; + case NICKNAME: return ""; + case ANONYMOUS: return ""; + case OLD: return ""; + case MAIDEN: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case USUAL: return "Known as/conventional/the one you normally use."; + case OFFICIAL: return "The formal name as registered in an official (government) registry, but which name might not be commonly used. May be called 'legal name'."; + case TEMP: return "A temporary name. Name.period can provide more detailed information. This may also be used for temporary names assigned at birth or in emergency situations."; + case NICKNAME: return "A name that is used to address the person in an informal manner, but is not part of their formal or usual name."; + case ANONYMOUS: return "Anonymous assigned name, alias, or pseudonym (used to protect a person's identity for privacy reasons)."; + case OLD: return "This name is no longer in use (or was never correct, but retained for records)."; + case MAIDEN: return "A name used prior to marriage. Marriage naming customs vary greatly around the world. This name use is for use by applications that collect and store 'maiden' names. Though the concept of maiden name is often gender specific, the use of this term is not gender specific. The use of this term does not imply any particular history for a person's name, nor should the maiden name be determined algorithmically."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case USUAL: return "usual"; + case OFFICIAL: return "official"; + case TEMP: return "temp"; + case NICKNAME: return "nickname"; + case ANONYMOUS: return "anonymous"; + case OLD: return "old"; + case MAIDEN: return "maiden"; + default: return "?"; + } + } + } + + public static class NameUseEnumFactory implements EnumFactory { + public NameUse fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("usual".equals(codeString)) + return NameUse.USUAL; + if ("official".equals(codeString)) + return NameUse.OFFICIAL; + if ("temp".equals(codeString)) + return NameUse.TEMP; + if ("nickname".equals(codeString)) + return NameUse.NICKNAME; + if ("anonymous".equals(codeString)) + return NameUse.ANONYMOUS; + if ("old".equals(codeString)) + return NameUse.OLD; + if ("maiden".equals(codeString)) + return NameUse.MAIDEN; + throw new IllegalArgumentException("Unknown NameUse code '"+codeString+"'"); + } + public String toCode(NameUse code) { + if (code == NameUse.USUAL) + return "usual"; + if (code == NameUse.OFFICIAL) + return "official"; + if (code == NameUse.TEMP) + return "temp"; + if (code == NameUse.NICKNAME) + return "nickname"; + if (code == NameUse.ANONYMOUS) + return "anonymous"; + if (code == NameUse.OLD) + return "old"; + if (code == NameUse.MAIDEN) + return "maiden"; + return "?"; + } + } + + /** + * Identifies the purpose for this name. + */ + @Child(name="use", type={CodeType.class}, order=-1, min=0, max=1) + @Description(shortDefinition="usual | official | temp | nickname | anonymous | old | maiden", formalDefinition="Identifies the purpose for this name." ) + protected Enumeration use; + + /** + * A full text representation of the name. + */ + @Child(name="text", type={StringType.class}, order=0, min=0, max=1) + @Description(shortDefinition="Text representation of the full name", formalDefinition="A full text representation of the name." ) + protected StringType text; + + /** + * The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father. + */ + @Child(name="family", type={StringType.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Family name (often called 'Surname')", formalDefinition="The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father." ) + protected List family; + + /** + * Given name. + */ + @Child(name="given", type={StringType.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Given names (not always 'first'). Includes middle names", formalDefinition="Given name." ) + protected List given; + + /** + * Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name. + */ + @Child(name="prefix", type={StringType.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Parts that come before the name", formalDefinition="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name." ) + protected List prefix; + + /** + * Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name. + */ + @Child(name="suffix", type={StringType.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Parts that come after the name", formalDefinition="Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name." ) + protected List suffix; + + /** + * Indicates the period of time when this name was valid for the named person. + */ + @Child(name="period", type={Period.class}, order=5, min=0, max=1) + @Description(shortDefinition="Time period when name was/is in use", formalDefinition="Indicates the period of time when this name was valid for the named person." ) + protected Period period; + + private static final long serialVersionUID = -210174642L; + + public HumanName() { + super(); + } + + /** + * @return {@link #use} (Identifies the purpose for this name.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value + */ + public Enumeration getUseElement() { + if (this.use == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HumanName.use"); + else if (Configuration.doAutoCreate()) + this.use = new Enumeration(new NameUseEnumFactory()); // bb + return this.use; + } + + public boolean hasUseElement() { + return this.use != null && !this.use.isEmpty(); + } + + public boolean hasUse() { + return this.use != null && !this.use.isEmpty(); + } + + /** + * @param value {@link #use} (Identifies the purpose for this name.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value + */ + public HumanName setUseElement(Enumeration value) { + this.use = value; + return this; + } + + /** + * @return Identifies the purpose for this name. + */ + public NameUse getUse() { + return this.use == null ? null : this.use.getValue(); + } + + /** + * @param value Identifies the purpose for this name. + */ + public HumanName setUse(NameUse value) { + if (value == null) + this.use = null; + else { + if (this.use == null) + this.use = new Enumeration(new NameUseEnumFactory()); + this.use.setValue(value); + } + return this; + } + + /** + * @return {@link #text} (A full text representation of the name.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value + */ + public StringType getTextElement() { + if (this.text == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HumanName.text"); + else if (Configuration.doAutoCreate()) + this.text = new StringType(); // bb + return this.text; + } + + public boolean hasTextElement() { + return this.text != null && !this.text.isEmpty(); + } + + public boolean hasText() { + return this.text != null && !this.text.isEmpty(); + } + + /** + * @param value {@link #text} (A full text representation of the name.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value + */ + public HumanName setTextElement(StringType value) { + this.text = value; + return this; + } + + /** + * @return A full text representation of the name. + */ + public String getText() { + return this.text == null ? null : this.text.getValue(); + } + + /** + * @param value A full text representation of the name. + */ + public HumanName setText(String value) { + if (Utilities.noString(value)) + this.text = null; + else { + if (this.text == null) + this.text = new StringType(); + this.text.setValue(value); + } + return this; + } + + /** + * @return {@link #family} (The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.) + */ + public List getFamily() { + if (this.family == null) + this.family = new ArrayList(); + return this.family; + } + + public boolean hasFamily() { + if (this.family == null) + return false; + for (StringType item : this.family) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #family} (The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.) + */ + // syntactic sugar + public StringType addFamilyElement() {//2 + StringType t = new StringType(); + if (this.family == null) + this.family = new ArrayList(); + this.family.add(t); + return t; + } + + /** + * @param value {@link #family} (The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.) + */ + public HumanName addFamily(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.family == null) + this.family = new ArrayList(); + this.family.add(t); + return this; + } + + /** + * @param value {@link #family} (The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.) + */ + public boolean hasFamily(String value) { + if (this.family == null) + return false; + for (StringType v : this.family) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #given} (Given name.) + */ + public List getGiven() { + if (this.given == null) + this.given = new ArrayList(); + return this.given; + } + + public boolean hasGiven() { + if (this.given == null) + return false; + for (StringType item : this.given) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #given} (Given name.) + */ + // syntactic sugar + public StringType addGivenElement() {//2 + StringType t = new StringType(); + if (this.given == null) + this.given = new ArrayList(); + this.given.add(t); + return t; + } + + /** + * @param value {@link #given} (Given name.) + */ + public HumanName addGiven(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.given == null) + this.given = new ArrayList(); + this.given.add(t); + return this; + } + + /** + * @param value {@link #given} (Given name.) + */ + public boolean hasGiven(String value) { + if (this.given == null) + return false; + for (StringType v : this.given) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #prefix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.) + */ + public List getPrefix() { + if (this.prefix == null) + this.prefix = new ArrayList(); + return this.prefix; + } + + public boolean hasPrefix() { + if (this.prefix == null) + return false; + for (StringType item : this.prefix) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #prefix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.) + */ + // syntactic sugar + public StringType addPrefixElement() {//2 + StringType t = new StringType(); + if (this.prefix == null) + this.prefix = new ArrayList(); + this.prefix.add(t); + return t; + } + + /** + * @param value {@link #prefix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.) + */ + public HumanName addPrefix(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.prefix == null) + this.prefix = new ArrayList(); + this.prefix.add(t); + return this; + } + + /** + * @param value {@link #prefix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.) + */ + public boolean hasPrefix(String value) { + if (this.prefix == null) + return false; + for (StringType v : this.prefix) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #suffix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.) + */ + public List getSuffix() { + if (this.suffix == null) + this.suffix = new ArrayList(); + return this.suffix; + } + + public boolean hasSuffix() { + if (this.suffix == null) + return false; + for (StringType item : this.suffix) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #suffix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.) + */ + // syntactic sugar + public StringType addSuffixElement() {//2 + StringType t = new StringType(); + if (this.suffix == null) + this.suffix = new ArrayList(); + this.suffix.add(t); + return t; + } + + /** + * @param value {@link #suffix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.) + */ + public HumanName addSuffix(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.suffix == null) + this.suffix = new ArrayList(); + this.suffix.add(t); + return this; + } + + /** + * @param value {@link #suffix} (Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.) + */ + public boolean hasSuffix(String value) { + if (this.suffix == null) + return false; + for (StringType v : this.suffix) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #period} (Indicates the period of time when this name was valid for the named person.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create HumanName.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (Indicates the period of time when this name was valid for the named person.) + */ + public HumanName setPeriod(Period value) { + this.period = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("use", "code", "Identifies the purpose for this name.", 0, java.lang.Integer.MAX_VALUE, use)); + childrenList.add(new Property("text", "string", "A full text representation of the name.", 0, java.lang.Integer.MAX_VALUE, text)); + childrenList.add(new Property("family", "string", "The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.", 0, java.lang.Integer.MAX_VALUE, family)); + childrenList.add(new Property("given", "string", "Given name.", 0, java.lang.Integer.MAX_VALUE, given)); + childrenList.add(new Property("prefix", "string", "Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name.", 0, java.lang.Integer.MAX_VALUE, prefix)); + childrenList.add(new Property("suffix", "string", "Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name.", 0, java.lang.Integer.MAX_VALUE, suffix)); + childrenList.add(new Property("period", "Period", "Indicates the period of time when this name was valid for the named person.", 0, java.lang.Integer.MAX_VALUE, period)); + } + + public HumanName copy() { + HumanName dst = new HumanName(); + copyValues(dst); + dst.use = use == null ? null : use.copy(); + dst.text = text == null ? null : text.copy(); + if (family != null) { + dst.family = new ArrayList(); + for (StringType i : family) + dst.family.add(i.copy()); + }; + if (given != null) { + dst.given = new ArrayList(); + for (StringType i : given) + dst.given.add(i.copy()); + }; + if (prefix != null) { + dst.prefix = new ArrayList(); + for (StringType i : prefix) + dst.prefix.add(i.copy()); + }; + if (suffix != null) { + dst.suffix = new ArrayList(); + for (StringType i : suffix) + dst.suffix.add(i.copy()); + }; + dst.period = period == null ? null : period.copy(); + return dst; + } + + protected HumanName typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof HumanName)) + return false; + HumanName o = (HumanName) other; + return compareDeep(use, o.use, true) && compareDeep(text, o.text, true) && compareDeep(family, o.family, true) + && compareDeep(given, o.given, true) && compareDeep(prefix, o.prefix, true) && compareDeep(suffix, o.suffix, true) + && compareDeep(period, o.period, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof HumanName)) + return false; + HumanName o = (HumanName) other; + return compareValues(use, o.use, true) && compareValues(text, o.text, true) && compareValues(family, o.family, true) + && compareValues(given, o.given, true) && compareValues(prefix, o.prefix, true) && compareValues(suffix, o.suffix, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (use == null || use.isEmpty()) && (text == null || text.isEmpty()) + && (family == null || family.isEmpty()) && (given == null || given.isEmpty()) && (prefix == null || prefix.isEmpty()) + && (suffix == null || suffix.isEmpty()) && (period == null || period.isEmpty()); + } + + +} + diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/ResourceDef.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IBase.java similarity index 51% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/ResourceDef.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IBase.java index e79ce9304ff..e59ef9f464d 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/ResourceDef.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IBase.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.instance.model.annotations; +package org.hl7.fhir.instance.model; /* * #%L @@ -20,31 +20,13 @@ package org.hl7.fhir.instance.model.annotations; * #L% */ -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - /** - * Class annotation which indicates a resource definition class + * This interface is a simple marker for anything which is an HL7 + * structure of some kind. It is provided mostly to simplify convergence + * between the HL7.org structures and the HAPI ones. */ -@Retention(RetentionPolicy.RUNTIME) -@Target(value= {ElementType.TYPE}) -public @interface ResourceDef { +public interface IBase { - /** - * The name of the resource (e.g. "Patient" or "DiagnosticReport") - */ - String name(); + boolean isEmpty(); - /** - * Not currently used - */ - String id() default ""; - - /** - * The URL indicating the profile for this resource definition, if known - */ - String profile() default ""; - } diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/Block.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IBaseResource.java similarity index 50% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/Block.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IBaseResource.java index 618f417cdca..2d9ffaf41cf 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/annotations/Block.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IBaseResource.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.instance.model.annotations; +package org.hl7.fhir.instance.model; /* * #%L @@ -20,27 +20,14 @@ package org.hl7.fhir.instance.model.annotations; * #L% */ -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - /** - * Class annotation used to indicate a class which is a "block"/"component" type. A block - * is a nested group of fields within a resource definition and can contain other blocks as - * well as data types. - *

    - * An example of a block would be Patient.contact - *

    + * For now, this is a simple marker interface indicating that a class is a resource type. + * There are two concrete types of implementations of this interrface. The first are + * HL7.org's Resource structures (e.g. + * org.hl7.fhir.instance.model.Patient) and + * the second are HAPI's Resource structures, e.g. + * ca.uhn.fhir.model.dstu.resource.Patient) */ -@Retention(RetentionPolicy.RUNTIME) -@Target(value= {ElementType.TYPE}) -public @interface Block { - - /** - * @deprecated Do not use, will be removed - */ - @Deprecated - String name() default ""; - +public interface IBaseResource extends IBase { + // nothing here yet } diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ICompositeType.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ICompositeType.java new file mode 100644 index 00000000000..8f8b0c22a64 --- /dev/null +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ICompositeType.java @@ -0,0 +1,25 @@ +package org.hl7.fhir.instance.model; + +/* + * #%L + * HAPI FHIR - Core Library + * %% + * Copyright (C) 2014 - 2015 University Health Network + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +public interface ICompositeType extends IBase { + +} diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ResourceEnumerations.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IPrimitiveType.java similarity index 59% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ResourceEnumerations.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IPrimitiveType.java index d0a7d5b9cc4..689db961190 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ResourceEnumerations.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IPrimitiveType.java @@ -1,5 +1,7 @@ package org.hl7.fhir.instance.model; +import org.hl7.fhir.instance.model.api.IBaseDatatype; + /* * #%L * HAPI FHIR - Core Library @@ -21,17 +23,14 @@ package org.hl7.fhir.instance.model; */ -public class ResourceEnumerations { +public interface IPrimitiveType extends IBase, IBaseDatatype { - @SuppressWarnings("rawtypes") - public static EnumFactory getEnumFactory(Class clss) { - if (clss == HumanName.NameUse.class) - return new HumanName.NameUseEnumFactory(); - if (clss == Observation.ObservationReliability.class) - return new Observation.ObservationReliabilityEnumFactory(); - if (clss == Observation.ObservationStatus.class) - return new Observation.ObservationStatusEnumFactory(); - return null; - } + void setValueAsString(String theValue) throws IllegalArgumentException; + String getValueAsString(); + + T getValue(); + + IPrimitiveType setValue(T theValue) throws IllegalArgumentException; + } diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IdType.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IdType.class new file mode 100644 index 0000000000000000000000000000000000000000..cca40ae5d913cd87338d31cce705245a74562a18 GIT binary patch literal 1284 zcma)4U2hUW6g|T?%UUqDTB=sTTE5z@786aV)!J6YU^M|zpUgr>I?b|6mZeGmmA=qK z6XUZ#%6JD>3Y0+i;ojMqbI(2Z%>4QL;}?KD@(L8(SK!5J5Gk3{L1bjk%8-*`O@{R# zHW-w*JDZJ3FCDf3c^Iz_2m{ z=)y*XysI7ax>LwZ5;6k(KhY4-tz}5fXuNOmCN~|D7%q#3sXHB;40$$ns`s{N3P+r9 zsd{Uut1D!i*p#x>vFrS$kp4&dK5WQKP;m|ODl|M`NY3_7#Y1e;OBlaDNpnNRP25tk zgt&@D#2GTv2uEZygxb9S*l670`ybeTX)YQ!)EJP>ljG-VT{a}>=_~YVJ%}R$74+hJ ze{-ZhirC=)D#ElTizqG-B0-r^_Giz)zSDx?Iz@$ufHnBAPCH};MG4Q*zC4LYcsAFC z=i_(e}=#~`HR>N72S4=WbO~!MQ|LNjO~$*Wfz)o2MuR)#N0(_5_}PNT==pJ4@ghK X7qL>sT^BoD1ra5rPe|fkFR%OqIU@(~ literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/IdType.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IdType.java similarity index 72% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/IdType.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IdType.java index 8306c37cf5a..7405aa50592 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/IdType.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IdType.java @@ -1,90 +1,74 @@ -/* -Copyright (c) 2011+, HL7, Inc -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/** - * Primitive type "id" in FHIR: a string from 1 to 64 characters, only containing letters, digits, "-" and "." - */ -public class IdType extends PrimitiveType { - - public static final int MAX_LENGTH = 64; - - private static final long serialVersionUID = 1L; - - /** - * Constructor - */ - public IdType() { - super(); - } - - /** - * Constructor - */ - public IdType(String theValue) { - setValue(theValue); - } - - @Override - protected String parse(String theValue) { - return theValue; - } - - @Override - protected String encode(String theValue) { - return theValue; - } - - @Override - public IdType copy() { - return new IdType(getValue()); - } - -} +/* +Copyright (c) 2011+, HL7, Inc +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +*/ +package org.hl7.fhir.instance.model; + +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +import org.hl7.fhir.instance.model.api.IIdType; + +/** + * Primitive type "id" in FHIR: a string from 1 to 64 characters, only containing letters, digits, "-" and "." + */ +@DatatypeDef(name="id") +public class IdType extends PrimitiveType implements IIdType { + + public static final int MAX_LENGTH = 64; + + private static final long serialVersionUID = 3L; + + /** + * Constructor + */ + public IdType() { + super(); + } + + /** + * Constructor + */ + public IdType(String theValue) { + setValue(theValue); + } + + @Override + protected String parse(String theValue) { + return theValue; + } + + @Override + protected String encode(String theValue) { + return theValue; + } + + @Override + public IdType copy() { + return new IdType(getValue()); + } + + +} \ No newline at end of file diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier$1.class new file mode 100644 index 0000000000000000000000000000000000000000..518b124491995e195667ca6c9dccb8bf39480e89 GIT binary patch literal 909 zcmbVK+iuf95IvhXaS|L73Y4_mDr(ZCK+UxXfq*EDrHEVrHz3p}$Jr)Z+%>YD@-O@V z&wzvwLj3?f3NdR58F;EH?as`Zot-nYJ3oJYKLl_GH%mB&S`kGo70Fsw@Vt%-3S3m; zk`kA7tms%}cw##5MeNP`?mIIGr{>JRZ|=@SXbKs{uJpLMA56G!b|+lMVps6+FLM-e zhRjZvq43D_g%t5)hHRtxia~4BHHJ!0NIsbFk9oN5j(zf!o!Ir>5?z9+Fou#7%tMdc zLY-Gqrj0%Kz$H&ddVUZIIqma!7EE-QI<6X6L&Lxc7zUbHH*gKt8J5)*%Xj6}8U)VV zo7sZkJL**P?zc)vxuZUn}X?N~#zjFK~+NMHF7^SU~?@L6x1R(+uT1OIo8i;0o;p@)Z@T7KmvP^`}d}0s8IS A4gdfE literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier$IdentifierUse.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier$IdentifierUse.class new file mode 100644 index 0000000000000000000000000000000000000000..f94ba2361f2548eb272ab74ca5282201e307e10b GIT binary patch literal 3023 zcmbtWYgZFT7=9K)vc%=$dZ)B*HDW+Wify3^kR+=`^R4ZKF81P2;pWFDcp)+ zID&K(7cnnh3o;g?xQ#n9?utbj8B3yHma!uGZ)JQZ`fLREB3O+=#eEqMME_96Bhh~! z#Zl<(Sc4Je%A5>SMqWli#<~nkMqErkmN6(}NJc_NQXoEwz?RUqoLQbuOXx`DOvktK zmgy~*O$kcMaZGQ<*2`tHEMX+=dWGb=J(|p~TVB#~%D(OxX0qt!Ogq`w8*2;+GbTY^ zoSRF{qy$B1X?Fg$g!atr%;LiJ>AP7@Ei9+`B@$biPA|`9B#f>emMFZT+ZCbem3aT5 zK|(XMM?zQHa?FKFan1CW^fj9^kpO)$FX2`^{aD}7leX>@k{RE#oWfZDp_LxD9Lt}O zaPl3fss0t=Evw+@e#N5_t#L6U=RLPr)3YPv>&BCLy|kxgboQBHmVC=~=!dZH)>a*l z_a9W5$OY5SY?Xbp$mnx?-OLMRxLHC}$X2;z>suroH|#w%Z#DtVI+f!1;S8T(Vnj1; z#WTz~OSreIkv0k8T?Lt1s>>`wo198+X~{i zMC;sq-ZCs94+=R%hj7o37`K;A!*z1Hx1}HtXXsyF;7iv!f&oeUo|PpFR!MZrU`D+eQi@OYdlz( z*(9K@bvFmf4-u48-iBEg3hkM_#jU31u01vlU+mFop-o*jgePg>Gk;K9tN5CsJC5rM zGXlG4gX7y<4LTwUpt4@9qv-{mfB|OC%IE0`hd4FRM36oTk|O+_jX;a+XC@i8>o9-! zm)K&UBqQJVen~6g%jWVA4&AY)N~@nT`{_y0-I%E@V%eKdncU3s6U~@=D)ryv0=-mX z=13T7Uhoc%eYs3B*>~TN?8APum1k4@{S1x`OPGvhHZ9*+=jj#Wt{Cr@n7CVFZ|;^@ zaJMvFC{4rQifUO+@nCknoaN}e$#^=ZriOX3UF4M;o;oAS8(`0}4tkb!(6f?*o*@Og zd&E)09qs&G=2gw3hSE9q;)!lU+Cj@}v{orGP<)4jZwam+!RX%l^JocXj~qj2;CHmW zM(E&%7I6}Bp&&SmR{nS@4P5HoMfmvv^sAg{!5CS_$x_?&oYo1wjDf$QsF8sk$iJdZ zs;cd^VPqT8s(Pd@C{?wiE_7DauDZ}&eTk#lmr%32IHn%o!3lmkp`PSx2d8#%`c*(L z%uV13-`CNBS#)6zr*Q+lxQPq=Z>Ar&=(KO>h%_cKj~OiBYp#|N?vNBdn4lz-KFT(U zDZYjEr9F3zZsQDzdlJ8KlFuNUFfhcXv7Kk@W9wJjX&0@b4OR6c;o6oU7CnpxaEGzJ z%V=h(>=L87Op=vAkqFx2EqsVN{Q>Nes#^a$zvtRoF_TH-c zaaH}Ks-As^?FQL%WH-s4CwqbH>u zie`<_?{#R6*PTnRHHA>`qnLO2aEgSmLYPM9eDos(!P#i*Pd$N zGPO`IdQIQvIY*9hBy>F|u^M;@#~7d>Z{Ql*nJKZAE^N(mg#QyPqo_6V!_>cxzDwfg(hJ}MshK9bL%jGk986&ch zUA-@%;_Kt)d?(txM;>sQ!$ zoT9gF0t_$G6B;E+)TZ?~S;t8d%MqR11^bN@h7+{L+M9Q1B_3d??fMTQqyhEhzc9?9 zJ;B(C53oPJEtl%qT@HO4iZ|L%Ui!=0v z1|@DVgMOGIGeTt<^e3LvD!brO0$ExzNw6OvW=2}1DN>6`O_Q1`wL?%7tG?eG=uzI_!AQ)48^IV9Wi72*M4(#|;2n7lMWtVkmV?J-kU B*dzb| literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier.class new file mode 100644 index 0000000000000000000000000000000000000000..a3c42b202f2869fdc9aa4b675bcac29eab4ea6bc GIT binary patch literal 10287 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 E4FE`Os{jB1 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Identifier.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier.java similarity index 89% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Identifier.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier.java index 1b67aaa6907..25dbc33f459 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Identifier.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Identifier.java @@ -1,522 +1,520 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -import org.hl7.fhir.instance.model.annotations.DatatypeDef; -/** - * A technical identifier - identifies some entity uniquely and unambiguously. - */ -@DatatypeDef(name="Identifier") -public class Identifier extends Type implements ICompositeType{ - - public enum IdentifierUse implements FhirEnum { - /** - * the identifier recommended for display and use in real-world interactions. - */ - USUAL, - /** - * the identifier considered to be most trusted for the identification of this item. - */ - OFFICIAL, - /** - * A temporary identifier. - */ - TEMP, - /** - * An identifier that was assigned in secondary use - it serves to identify the object in a relative context, but cannot be consistently assigned to the same object again in a different context. - */ - SECONDARY, - /** - * added to help the parsers - */ - NULL; - - public static final IdentifierUseEnumFactory ENUM_FACTORY = new IdentifierUseEnumFactory(); - - public static IdentifierUse fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("usual".equals(codeString)) - return USUAL; - if ("official".equals(codeString)) - return OFFICIAL; - if ("temp".equals(codeString)) - return TEMP; - if ("secondary".equals(codeString)) - return SECONDARY; - throw new IllegalArgumentException("Unknown IdentifierUse code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case USUAL: return "usual"; - case OFFICIAL: return "official"; - case TEMP: return "temp"; - case SECONDARY: return "secondary"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case USUAL: return ""; - case OFFICIAL: return ""; - case TEMP: return ""; - case SECONDARY: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case USUAL: return "the identifier recommended for display and use in real-world interactions."; - case OFFICIAL: return "the identifier considered to be most trusted for the identification of this item."; - case TEMP: return "A temporary identifier."; - case SECONDARY: return "An identifier that was assigned in secondary use - it serves to identify the object in a relative context, but cannot be consistently assigned to the same object again in a different context."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case USUAL: return "usual"; - case OFFICIAL: return "official"; - case TEMP: return "temp"; - case SECONDARY: return "secondary"; - default: return "?"; - } - } - } - - public static class IdentifierUseEnumFactory implements EnumFactory { - public IdentifierUse fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("usual".equals(codeString)) - return IdentifierUse.USUAL; - if ("official".equals(codeString)) - return IdentifierUse.OFFICIAL; - if ("temp".equals(codeString)) - return IdentifierUse.TEMP; - if ("secondary".equals(codeString)) - return IdentifierUse.SECONDARY; - throw new IllegalArgumentException("Unknown IdentifierUse code '"+codeString+"'"); - } - public String toCode(IdentifierUse code) throws IllegalArgumentException { - if (code == IdentifierUse.USUAL) - return "usual"; - if (code == IdentifierUse.OFFICIAL) - return "official"; - if (code == IdentifierUse.TEMP) - return "temp"; - if (code == IdentifierUse.SECONDARY) - return "secondary"; - return "?"; - } - } - - /** - * The purpose of this identifier. - */ - @Child(name="use", type={CodeType.class}, order=-1, min=0, max=1) - @Description(shortDefinition="usual | official | temp | secondary (If known)", formalDefinition="The purpose of this identifier." ) - protected Enumeration use; - - /** - * A text string for the identifier that can be displayed to a human so they can recognize the identifier. - */ - @Child(name="label", type={StringType.class}, order=0, min=0, max=1) - @Description(shortDefinition="Description of identifier", formalDefinition="A text string for the identifier that can be displayed to a human so they can recognize the identifier." ) - protected StringType label; - - /** - * Establishes the namespace in which set of possible id values is unique. - */ - @Child(name="system", type={UriType.class}, order=1, min=0, max=1) - @Description(shortDefinition="The namespace for the identifier", formalDefinition="Establishes the namespace in which set of possible id values is unique." ) - protected UriType system; - - /** - * The portion of the identifier typically displayed to the user and which is unique within the context of the system. - */ - @Child(name="value", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="The value that is unique", formalDefinition="The portion of the identifier typically displayed to the user and which is unique within the context of the system." ) - protected StringType value; - - /** - * Time period during which identifier is/was valid for use. - */ - @Child(name="period", type={Period.class}, order=3, min=0, max=1) - @Description(shortDefinition="Time period when id is/was valid for use", formalDefinition="Time period during which identifier is/was valid for use." ) - protected Period period; - - /** - * Organization that issued/manages the identifier. - */ - @Child(name="assigner", type={Organization.class}, order=4, min=0, max=1) - @Description(shortDefinition="Organization that issued id (may be just text)", formalDefinition="Organization that issued/manages the identifier." ) - protected Reference assigner; - - /** - * The actual object that is the target of the reference (Organization that issued/manages the identifier.) - */ - protected Organization assignerTarget; - - private static final long serialVersionUID = 334577297L; - - public Identifier() { - super(); - } - - /** - * @return {@link #use} (The purpose of this identifier.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value - */ - public Enumeration getUseElement() { - if (this.use == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Identifier.use"); - else if (Configuration.doAutoCreate()) - this.use = new Enumeration(); - return this.use; - } - - public boolean hasUseElement() { - return this.use != null && !this.use.isEmpty(); - } - - public boolean hasUse() { - return this.use != null && !this.use.isEmpty(); - } - - /** - * @param value {@link #use} (The purpose of this identifier.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value - */ - public Identifier setUseElement(Enumeration value) { - this.use = value; - return this; - } - - /** - * @return The purpose of this identifier. - */ - public IdentifierUse getUse() { - return this.use == null ? null : this.use.getValue(); - } - - /** - * @param value The purpose of this identifier. - */ - public Identifier setUse(IdentifierUse value) { - if (value == null) - this.use = null; - else { - if (this.use == null) - this.use = new Enumeration(IdentifierUse.ENUM_FACTORY); - this.use.setValue(value); - } - return this; - } - - /** - * @return {@link #label} (A text string for the identifier that can be displayed to a human so they can recognize the identifier.). This is the underlying object with id, value and extensions. The accessor "getLabel" gives direct access to the value - */ - public StringType getLabelElement() { - if (this.label == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Identifier.label"); - else if (Configuration.doAutoCreate()) - this.label = new StringType(); - return this.label; - } - - public boolean hasLabelElement() { - return this.label != null && !this.label.isEmpty(); - } - - public boolean hasLabel() { - return this.label != null && !this.label.isEmpty(); - } - - /** - * @param value {@link #label} (A text string for the identifier that can be displayed to a human so they can recognize the identifier.). This is the underlying object with id, value and extensions. The accessor "getLabel" gives direct access to the value - */ - public Identifier setLabelElement(StringType value) { - this.label = value; - return this; - } - - /** - * @return A text string for the identifier that can be displayed to a human so they can recognize the identifier. - */ - public String getLabel() { - return this.label == null ? null : this.label.getValue(); - } - - /** - * @param value A text string for the identifier that can be displayed to a human so they can recognize the identifier. - */ - public Identifier setLabel(String value) { - if (Utilities.noString(value)) - this.label = null; - else { - if (this.label == null) - this.label = new StringType(); - this.label.setValue(value); - } - return this; - } - - /** - * @return {@link #system} (Establishes the namespace in which set of possible id values is unique.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value - */ - public UriType getSystemElement() { - if (this.system == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Identifier.system"); - else if (Configuration.doAutoCreate()) - this.system = new UriType(); - return this.system; - } - - public boolean hasSystemElement() { - return this.system != null && !this.system.isEmpty(); - } - - public boolean hasSystem() { - return this.system != null && !this.system.isEmpty(); - } - - /** - * @param value {@link #system} (Establishes the namespace in which set of possible id values is unique.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value - */ - public Identifier setSystemElement(UriType value) { - this.system = value; - return this; - } - - /** - * @return Establishes the namespace in which set of possible id values is unique. - */ - public String getSystem() { - return this.system == null ? null : this.system.getValue(); - } - - /** - * @param value Establishes the namespace in which set of possible id values is unique. - */ - public Identifier setSystem(String value) { - if (Utilities.noString(value)) - this.system = null; - else { - if (this.system == null) - this.system = new UriType(); - this.system.setValue(value); - } - return this; - } - - /** - * @return {@link #value} (The portion of the identifier typically displayed to the user and which is unique within the context of the system.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public StringType getValueElement() { - if (this.value == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Identifier.value"); - else if (Configuration.doAutoCreate()) - this.value = new StringType(); - return this.value; - } - - public boolean hasValueElement() { - return this.value != null && !this.value.isEmpty(); - } - - public boolean hasValue() { - return this.value != null && !this.value.isEmpty(); - } - - /** - * @param value {@link #value} (The portion of the identifier typically displayed to the user and which is unique within the context of the system.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public Identifier setValueElement(StringType value) { - this.value = value; - return this; - } - - /** - * @return The portion of the identifier typically displayed to the user and which is unique within the context of the system. - */ - public String getValue() { - return this.value == null ? null : this.value.getValue(); - } - - /** - * @param value The portion of the identifier typically displayed to the user and which is unique within the context of the system. - */ - public Identifier setValue(String value) { - if (Utilities.noString(value)) - this.value = null; - else { - if (this.value == null) - this.value = new StringType(); - this.value.setValue(value); - } - return this; - } - - /** - * @return {@link #period} (Time period during which identifier is/was valid for use.) - */ - public Period getPeriod() { - if (this.period == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Identifier.period"); - else if (Configuration.doAutoCreate()) - this.period = new Period(); - return this.period; - } - - public boolean hasPeriod() { - return this.period != null && !this.period.isEmpty(); - } - - /** - * @param value {@link #period} (Time period during which identifier is/was valid for use.) - */ - public Identifier setPeriod(Period value) { - this.period = value; - return this; - } - - /** - * @return {@link #assigner} (Organization that issued/manages the identifier.) - */ - public Reference getAssigner() { - if (this.assigner == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Identifier.assigner"); - else if (Configuration.doAutoCreate()) - this.assigner = new Reference(); - return this.assigner; - } - - public boolean hasAssigner() { - return this.assigner != null && !this.assigner.isEmpty(); - } - - /** - * @param value {@link #assigner} (Organization that issued/manages the identifier.) - */ - public Identifier setAssigner(Reference value) { - this.assigner = value; - return this; - } - - /** - * @return {@link #assigner} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Organization that issued/manages the identifier.) - */ - public Organization getAssignerTarget() { - if (this.assignerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Identifier.assigner"); - else if (Configuration.doAutoCreate()) - this.assignerTarget = new Organization(); - return this.assignerTarget; - } - - /** - * @param value {@link #assigner} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Organization that issued/manages the identifier.) - */ - public Identifier setAssignerTarget(Organization value) { - this.assignerTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("use", "code", "The purpose of this identifier.", 0, java.lang.Integer.MAX_VALUE, use)); - childrenList.add(new Property("label", "string", "A text string for the identifier that can be displayed to a human so they can recognize the identifier.", 0, java.lang.Integer.MAX_VALUE, label)); - childrenList.add(new Property("system", "uri", "Establishes the namespace in which set of possible id values is unique.", 0, java.lang.Integer.MAX_VALUE, system)); - childrenList.add(new Property("value", "string", "The portion of the identifier typically displayed to the user and which is unique within the context of the system.", 0, java.lang.Integer.MAX_VALUE, value)); - childrenList.add(new Property("period", "Period", "Time period during which identifier is/was valid for use.", 0, java.lang.Integer.MAX_VALUE, period)); - childrenList.add(new Property("assigner", "Reference(Organization)", "Organization that issued/manages the identifier.", 0, java.lang.Integer.MAX_VALUE, assigner)); - } - - public Identifier copy() { - Identifier dst = new Identifier(); - copyValues(dst); - dst.use = use == null ? null : use.copy(); - dst.label = label == null ? null : label.copy(); - dst.system = system == null ? null : system.copy(); - dst.value = value == null ? null : value.copy(); - dst.period = period == null ? null : period.copy(); - dst.assigner = assigner == null ? null : assigner.copy(); - return dst; - } - - protected Identifier typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (use == null || use.isEmpty()) && (label == null || label.isEmpty()) - && (system == null || system.isEmpty()) && (value == null || value.isEmpty()) && (period == null || period.isEmpty()) - && (assigner == null || assigner.isEmpty()); - } - - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +/** + * A technical identifier - identifies some entity uniquely and unambiguously. + */ +@DatatypeDef(name="Identifier") +public class Identifier extends Type implements ICompositeType { + + public enum IdentifierUse { + /** + * the identifier recommended for display and use in real-world interactions. + */ + USUAL, + /** + * the identifier considered to be most trusted for the identification of this item. + */ + OFFICIAL, + /** + * A temporary identifier. + */ + TEMP, + /** + * An identifier that was assigned in secondary use - it serves to identify the object in a relative context, but cannot be consistently assigned to the same object again in a different context. + */ + SECONDARY, + /** + * added to help the parsers + */ + NULL; + public static IdentifierUse fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("usual".equals(codeString)) + return USUAL; + if ("official".equals(codeString)) + return OFFICIAL; + if ("temp".equals(codeString)) + return TEMP; + if ("secondary".equals(codeString)) + return SECONDARY; + throw new Exception("Unknown IdentifierUse code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case USUAL: return "usual"; + case OFFICIAL: return "official"; + case TEMP: return "temp"; + case SECONDARY: return "secondary"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case USUAL: return ""; + case OFFICIAL: return ""; + case TEMP: return ""; + case SECONDARY: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case USUAL: return "the identifier recommended for display and use in real-world interactions."; + case OFFICIAL: return "the identifier considered to be most trusted for the identification of this item."; + case TEMP: return "A temporary identifier."; + case SECONDARY: return "An identifier that was assigned in secondary use - it serves to identify the object in a relative context, but cannot be consistently assigned to the same object again in a different context."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case USUAL: return "usual"; + case OFFICIAL: return "official"; + case TEMP: return "temp"; + case SECONDARY: return "secondary"; + default: return "?"; + } + } + } + + public static class IdentifierUseEnumFactory implements EnumFactory { + public IdentifierUse fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("usual".equals(codeString)) + return IdentifierUse.USUAL; + if ("official".equals(codeString)) + return IdentifierUse.OFFICIAL; + if ("temp".equals(codeString)) + return IdentifierUse.TEMP; + if ("secondary".equals(codeString)) + return IdentifierUse.SECONDARY; + throw new IllegalArgumentException("Unknown IdentifierUse code '"+codeString+"'"); + } + public String toCode(IdentifierUse code) { + if (code == IdentifierUse.USUAL) + return "usual"; + if (code == IdentifierUse.OFFICIAL) + return "official"; + if (code == IdentifierUse.TEMP) + return "temp"; + if (code == IdentifierUse.SECONDARY) + return "secondary"; + return "?"; + } + } + + /** + * The purpose of this identifier. + */ + @Child(name="use", type={CodeType.class}, order=-1, min=0, max=1) + @Description(shortDefinition="usual | official | temp | secondary (If known)", formalDefinition="The purpose of this identifier." ) + protected Enumeration use; + + /** + * A text string for the identifier that can be displayed to a human so they can recognize the identifier. + */ + @Child(name="label", type={StringType.class}, order=0, min=0, max=1) + @Description(shortDefinition="Description of identifier", formalDefinition="A text string for the identifier that can be displayed to a human so they can recognize the identifier." ) + protected StringType label; + + /** + * Establishes the namespace in which set of possible id values is unique. + */ + @Child(name="system", type={UriType.class}, order=1, min=0, max=1) + @Description(shortDefinition="The namespace for the identifier", formalDefinition="Establishes the namespace in which set of possible id values is unique." ) + protected UriType system; + + /** + * The portion of the identifier typically displayed to the user and which is unique within the context of the system. + */ + @Child(name="value", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="The value that is unique", formalDefinition="The portion of the identifier typically displayed to the user and which is unique within the context of the system." ) + protected StringType value; + + /** + * Time period during which identifier is/was valid for use. + */ + @Child(name="period", type={Period.class}, order=3, min=0, max=1) + @Description(shortDefinition="Time period when id is/was valid for use", formalDefinition="Time period during which identifier is/was valid for use." ) + protected Period period; + + /** + * Organization that issued/manages the identifier. + */ + @Child(name="assigner", type={Organization.class}, order=4, min=0, max=1) + @Description(shortDefinition="Organization that issued id (may be just text)", formalDefinition="Organization that issued/manages the identifier." ) + protected Reference assigner; + + /** + * The actual object that is the target of the reference (Organization that issued/manages the identifier.) + */ + protected Organization assignerTarget; + + private static final long serialVersionUID = 334577297L; + + public Identifier() { + super(); + } + + /** + * @return {@link #use} (The purpose of this identifier.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value + */ + public Enumeration getUseElement() { + if (this.use == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Identifier.use"); + else if (Configuration.doAutoCreate()) + this.use = new Enumeration(new IdentifierUseEnumFactory()); // bb + return this.use; + } + + public boolean hasUseElement() { + return this.use != null && !this.use.isEmpty(); + } + + public boolean hasUse() { + return this.use != null && !this.use.isEmpty(); + } + + /** + * @param value {@link #use} (The purpose of this identifier.). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value + */ + public Identifier setUseElement(Enumeration value) { + this.use = value; + return this; + } + + /** + * @return The purpose of this identifier. + */ + public IdentifierUse getUse() { + return this.use == null ? null : this.use.getValue(); + } + + /** + * @param value The purpose of this identifier. + */ + public Identifier setUse(IdentifierUse value) { + if (value == null) + this.use = null; + else { + if (this.use == null) + this.use = new Enumeration(new IdentifierUseEnumFactory()); + this.use.setValue(value); + } + return this; + } + + /** + * @return {@link #label} (A text string for the identifier that can be displayed to a human so they can recognize the identifier.). This is the underlying object with id, value and extensions. The accessor "getLabel" gives direct access to the value + */ + public StringType getLabelElement() { + if (this.label == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Identifier.label"); + else if (Configuration.doAutoCreate()) + this.label = new StringType(); // bb + return this.label; + } + + public boolean hasLabelElement() { + return this.label != null && !this.label.isEmpty(); + } + + public boolean hasLabel() { + return this.label != null && !this.label.isEmpty(); + } + + /** + * @param value {@link #label} (A text string for the identifier that can be displayed to a human so they can recognize the identifier.). This is the underlying object with id, value and extensions. The accessor "getLabel" gives direct access to the value + */ + public Identifier setLabelElement(StringType value) { + this.label = value; + return this; + } + + /** + * @return A text string for the identifier that can be displayed to a human so they can recognize the identifier. + */ + public String getLabel() { + return this.label == null ? null : this.label.getValue(); + } + + /** + * @param value A text string for the identifier that can be displayed to a human so they can recognize the identifier. + */ + public Identifier setLabel(String value) { + if (Utilities.noString(value)) + this.label = null; + else { + if (this.label == null) + this.label = new StringType(); + this.label.setValue(value); + } + return this; + } + + /** + * @return {@link #system} (Establishes the namespace in which set of possible id values is unique.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value + */ + public UriType getSystemElement() { + if (this.system == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Identifier.system"); + else if (Configuration.doAutoCreate()) + this.system = new UriType(); // bb + return this.system; + } + + public boolean hasSystemElement() { + return this.system != null && !this.system.isEmpty(); + } + + public boolean hasSystem() { + return this.system != null && !this.system.isEmpty(); + } + + /** + * @param value {@link #system} (Establishes the namespace in which set of possible id values is unique.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value + */ + public Identifier setSystemElement(UriType value) { + this.system = value; + return this; + } + + /** + * @return Establishes the namespace in which set of possible id values is unique. + */ + public String getSystem() { + return this.system == null ? null : this.system.getValue(); + } + + /** + * @param value Establishes the namespace in which set of possible id values is unique. + */ + public Identifier setSystem(String value) { + if (Utilities.noString(value)) + this.system = null; + else { + if (this.system == null) + this.system = new UriType(); + this.system.setValue(value); + } + return this; + } + + /** + * @return {@link #value} (The portion of the identifier typically displayed to the user and which is unique within the context of the system.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public StringType getValueElement() { + if (this.value == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Identifier.value"); + else if (Configuration.doAutoCreate()) + this.value = new StringType(); // bb + return this.value; + } + + public boolean hasValueElement() { + return this.value != null && !this.value.isEmpty(); + } + + public boolean hasValue() { + return this.value != null && !this.value.isEmpty(); + } + + /** + * @param value {@link #value} (The portion of the identifier typically displayed to the user and which is unique within the context of the system.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public Identifier setValueElement(StringType value) { + this.value = value; + return this; + } + + /** + * @return The portion of the identifier typically displayed to the user and which is unique within the context of the system. + */ + public String getValue() { + return this.value == null ? null : this.value.getValue(); + } + + /** + * @param value The portion of the identifier typically displayed to the user and which is unique within the context of the system. + */ + public Identifier setValue(String value) { + if (Utilities.noString(value)) + this.value = null; + else { + if (this.value == null) + this.value = new StringType(); + this.value.setValue(value); + } + return this; + } + + /** + * @return {@link #period} (Time period during which identifier is/was valid for use.) + */ + public Period getPeriod() { + if (this.period == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Identifier.period"); + else if (Configuration.doAutoCreate()) + this.period = new Period(); // cc + return this.period; + } + + public boolean hasPeriod() { + return this.period != null && !this.period.isEmpty(); + } + + /** + * @param value {@link #period} (Time period during which identifier is/was valid for use.) + */ + public Identifier setPeriod(Period value) { + this.period = value; + return this; + } + + /** + * @return {@link #assigner} (Organization that issued/manages the identifier.) + */ + public Reference getAssigner() { + if (this.assigner == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Identifier.assigner"); + else if (Configuration.doAutoCreate()) + this.assigner = new Reference(); // cc + return this.assigner; + } + + public boolean hasAssigner() { + return this.assigner != null && !this.assigner.isEmpty(); + } + + /** + * @param value {@link #assigner} (Organization that issued/manages the identifier.) + */ + public Identifier setAssigner(Reference value) { + this.assigner = value; + return this; + } + + /** + * @return {@link #assigner} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Organization that issued/manages the identifier.) + */ + public Organization getAssignerTarget() { + if (this.assignerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Identifier.assigner"); + else if (Configuration.doAutoCreate()) + this.assignerTarget = new Organization(); // aa + return this.assignerTarget; + } + + /** + * @param value {@link #assigner} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Organization that issued/manages the identifier.) + */ + public Identifier setAssignerTarget(Organization value) { + this.assignerTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("use", "code", "The purpose of this identifier.", 0, java.lang.Integer.MAX_VALUE, use)); + childrenList.add(new Property("label", "string", "A text string for the identifier that can be displayed to a human so they can recognize the identifier.", 0, java.lang.Integer.MAX_VALUE, label)); + childrenList.add(new Property("system", "uri", "Establishes the namespace in which set of possible id values is unique.", 0, java.lang.Integer.MAX_VALUE, system)); + childrenList.add(new Property("value", "string", "The portion of the identifier typically displayed to the user and which is unique within the context of the system.", 0, java.lang.Integer.MAX_VALUE, value)); + childrenList.add(new Property("period", "Period", "Time period during which identifier is/was valid for use.", 0, java.lang.Integer.MAX_VALUE, period)); + childrenList.add(new Property("assigner", "Reference(Organization)", "Organization that issued/manages the identifier.", 0, java.lang.Integer.MAX_VALUE, assigner)); + } + + public Identifier copy() { + Identifier dst = new Identifier(); + copyValues(dst); + dst.use = use == null ? null : use.copy(); + dst.label = label == null ? null : label.copy(); + dst.system = system == null ? null : system.copy(); + dst.value = value == null ? null : value.copy(); + dst.period = period == null ? null : period.copy(); + dst.assigner = assigner == null ? null : assigner.copy(); + return dst; + } + + protected Identifier typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Identifier)) + return false; + Identifier o = (Identifier) other; + return compareDeep(use, o.use, true) && compareDeep(label, o.label, true) && compareDeep(system, o.system, true) + && compareDeep(value, o.value, true) && compareDeep(period, o.period, true) && compareDeep(assigner, o.assigner, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Identifier)) + return false; + Identifier o = (Identifier) other; + return compareValues(use, o.use, true) && compareValues(label, o.label, true) && compareValues(system, o.system, true) + && compareValues(value, o.value, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (use == null || use.isEmpty()) && (label == null || label.isEmpty()) + && (system == null || system.isEmpty()) && (value == null || value.isEmpty()) && (period == null || period.isEmpty()) + && (assigner == null || assigner.isEmpty()); + } + + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingObjectSelection$FramesComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingObjectSelection$FramesComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..c6e322b50772b485b83f850f252cf3648de0ebe3 GIT binary patch literal 5642 zcmb_g`+F4S6@F)Cli6%05LO@%M1z44a$%8+QWJ%ca9KzQPr^k&tHWlJ4D8Ov*$Ila zwc2~_{T_P1(hF_1)dWnd*jjA0?Z430r*=HHZT77>1P0J!LMT2ibpEYfJdcyhmLo~5Wyprco*JXiTB{W(!5W{`(voUW77C* zABf?D_>c@g9K%QO(HK64kL&nE6rYS?2|gv`PwV(h49oC{G!$KiF&*dSOPQ_std7q` zu`Pyu%w3S?n=<^C z^u8_4cVzgOctFqwT-5Ph1;(IjW~_swnNyaVQ&8P~+B|C}Mm;;7=(clSn}Ujdd&n`p zQP)z?RoW$qrcQMAGrBAJJZFb^Z}dZ>zJNI&Wq&XL%cG-Kd*Zu&$(GM_k(vw78}6T>C7~wXL&O-I2a- zhUZvES8r=yzl`d7yhB-8ho$QlRXoH=R5v9!_uV_I=-i1xj8UUxU@TMWh}>2&`ivQ zCIQO@eJj$$8DDX(Gn*O7I=)gP={T0#nKpAdi^;LKF*y%N#vHPpq25!ct(4bqrP=c6 z))wiNq@ku03>@Qo#7)mQv3?#WrpZM~hNw`oJQ#C zh~;|cSVH~uN@YjRDcCd5i6s{nIo>0@jTFSJ`$o-luFJAUSZGQg-7Yg{wfQUxg!+fg zbUJ�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 b&OJ#4e2?=j{2%4&68sqbjK5~SQ>geq{DGfo literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingObjectSelection$StudyComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingObjectSelection$StudyComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..66094f174ad8bfc647f91fd9da434aee3fed3211 GIT binary patch literal 6638 zcmb_gX>?p=8GdfInM@~XIzUQS2Pq{@noMO8AqAQyMbc&|2}x-Y@pk4mx#?sk+qqoF3xye)mphNjix=oYQ{y-tT+Y z=iR=^;rE_+8o=rJV*qP$cR3pHl>qL+y*`ZiabEx>_^Nz=&4;fC;K$vv+%L-mK72!- z-xQv2`SEQZz7s%|P*e#;6&?uSyLeFE6wRm)-wR+N?w*J5ror)7CYJ`c#-v+{Po7(>+!_^}T^(NLT+V;W9rOIm%A{`gsu9sQ;i zF%!0le!ktGw44@W zhnX;COGBvJNyUc4Y4^g)_o^L9Yfz78)15t?E}YyEcKVHQcjx9Qew%M<(>CHpR8%ww zpjLb~Kzl4x0V>WG$pQ_*F2k`*W0w)`>1xw({g$Sd&ibxy`3gJ9u$4X)BW!V_A>5I4 z4C>b%E~c$0(`0s7kH_G8#IWKt!f+4cj=LoW5y$G zrtJ{h@@}&)p*tyyft%m0=$ey*L&=1ZaOg{GB4Jp~aox6szc-J6ZNY%H4(feoqOWuN z05R=OBfBC`N#l8q0$g!13uRKnD)%^S#%O@)45!28M#hL`Vy2-dO`C`ridIj=!trF3 ziJa&op~?q|W?D!~YjbCN9+)#kzRD&Jdc4=LY%=$>wrJ2cYN%*td9a+EUOk>NO2yv$ zAN|DZ8p_s6VxGs8sae&_GH7P85zRI;VRWPhw;R^QI%`ZrO-(_(($y(4D*6nk$Bb== z8-pqkr`D{R6E8Wt9X-0UT_5t4R`lz3wj|oPjV8OhB)4-FRjP`~N`Zkn8eP!5qosnR z|CBCfW0~u=hU4k4%GJ1@=!$)+K7TV>tGgC(-Pkwe-x@>g~Co=%89dEJnW@usI%L`CDS(Fr&_0OV&v-f;ivr6 zW3jX;7tE67M+;zX+hU$P%GMQUgHr>_GB`1g^Rgx5q?B1>{%&C}H(SXe!*Yh%vs9r+ zlS9KAHXNhXxyjFq0Bm|u=SA{L4L;M} zFgWDUzQ`>0t!Ka3&W7*hJIipkZj+%5bSG0*)VRQu{!X&TbDHM1u?AicMBbqwo)bAI z&*7F7#OE;(#Pc}J!I{zP_M#wuj$Z`PhW5FeAca>@u~+pz{4$7N;e{Z&(9O(Mx>epb zS(ZL5gWHD}gZMRGVg&{9vY7cB9QNV28rB!`Z07jnPvjtehgX8Q8MkOyQAk|6960!r zF21j-Ym=z~g7#|~nhNnB&77RV2;z0T5yWlilO-j~jX~Ur&j#@(-je0_L3~a=-^L&0 z^mYw(g|z0SI~!mI;8w@5bVub?ArZU?>@fRMBvrT31%~8eXQGMu*R0Y{!wEA@Cw81* zESXK_XCqeEiTsi0-kMm8e$G3O;{0rx9zo#=vDq>Qd1c;Zc-Q`Lj#rXXJT>e{Px_7e z5=l43kKzMcO=Si!Nk;ORQ@B;<430FO^ux!t-(g%u>XL+doR(ut`YP}JQkgk5m|dI} zd4{EdpkbF~1LR#Are6}K@3giSyuG+RmciR}?DBIVQ{y8b<3oj(SL-#iwfWp0E#qfi zloxf~GTb?F;cNmpCua9@n~ahbo|~Cj=|YzIR%8{P{-|C8aX{Qf}aH zUhqeKiA)6k%sQW6YfyxBC`FUa&GnZ;i}I+s6)o5x%LTH0lr$IGXvIbwo5;Wq=n^Rq5tmFEur+PKHW6_t7UN^Mj0SvM ziMSjm@||;zYm_@D@yX_i(%NxokMl)CjB9{8fQ{6@i90$Bu0meReK`pTd2QWZ6lHiS zAwR1+$kT~(Y$nGJ^m%+yo{5_J+C3;bgcbWxJc5b|lxz)^j-%|EeejK-vUURgt>Y-C zSfP823`NSE#VF%@FMNccg1#=qRxHCd)X=|vo|K?yVHFja81NLH!>1@*D1r`Rfjq_# zxDURPQIr(#o)TTA$Szl6N>OyeI^o-Sta75ca^gr(ngDmQ2b@oVRx7S$BR#;J+R2?H zhCGHwKE;7*7crkUiVD|>c?S^8K;znPDZM@v&1?1H3Nl)-JwY1@y@YI;D<~i2x-nF2 zQTDh{hX^JxOsKC$2-jc|()l?dtzt+Q>}7QKpfY2(8`7Jo z=VpfV7KZdzhV(Xu^me5$9nxJhhN999Y2_F~M+@nlxuLl7SmoT6E9WX=Gebx#r-k$$ zhV)*NUOi(-iC8+MbmF)fLi&Kxn-$V)ra~&vOGsDO?ZfdSm{+S2-cc+Ugb%4Q%Ep`# zJ|R28F7gi&`BBX0pY*En5Zl1RtnEiUSBvK_@YC{Z@ky$Y>|N)TuT)dDt6?Fddg5M{ zp4FMCx;e$&i12wDo>3-Lprrf=%6+(g z$-8t(!wtBRtGITVhvlggSW1_cx6SM#&G-Nta9zgLYQ`5h#6O@uM;M=HpFNCIcuALj zMD&heu@5(~n0Tx8P`r-zN!Yg3){P@vH-VG3hCUcNIkciUbPBZ=jbo*!MID_QstK)f zk1F$yYD0CQ)$URCIO<)lOec0tdw~YNh%j&Mjd+R8^JQ;}+)B@RY4!YnkN!)=Uo(LQ z`X6blWxlMb6MNhg4an;lKE$RhyI$hTE)(}Ox2~%XVlDm2&IuL9_SIe(m-EF9V@Dlh zTt9}>U86@Q-_F8xB@qID4EXU1o5HK?ny=w(UdPwr4Gy9=iS1h~zqb{}8&EchMJV#& z4*rA2Ws+ke{p~(K-7(|#XO3Vwli^(|(Bx+CVQ~kskc8YM0Xl=ZR=m6JSv0sW2hh+i zP^{+vl6^RH1QN7Lepb4l(y6QYS*p^F&#bFGv(}1PXB9T9v)U%_XPZ>$;IsDHa!CFD%V0tPAMxfHe-H^sSg2jT!LClxOew-uqoNtXg zzW%E;`%!vgRj7EKR@KA=z01?O%+p$0JBCInKX-1rjB6C>7v@At6u(IJB78|*qeQ@$ W`Q6L^A?_~4575K>Yv6Mb<^Kafzr`Z} literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingObjectSelection.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingObjectSelection.class new file mode 100644 index 0000000000000000000000000000000000000000..801042314846535dfca26192e4ee9dfc70d222b3 GIT binary patch literal 13917 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 uAUOPs1<2bwviK?F#H>(h5Thp{ap|}X96 series; - - private static final long serialVersionUID = -1655229615L; - - public StudyComponent() { - super(); - } - - public StudyComponent(OidType uid) { - super(); - this.uid = uid; - } - - /** - * @return {@link #uid} (Study instance uid of the SOP instances in the selection.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public OidType getUidElement() { - if (this.uid == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create StudyComponent.uid"); - else if (Configuration.doAutoCreate()) - this.uid = new OidType(); - return this.uid; - } - - public boolean hasUidElement() { - return this.uid != null && !this.uid.isEmpty(); - } - - public boolean hasUid() { - return this.uid != null && !this.uid.isEmpty(); - } - - /** - * @param value {@link #uid} (Study instance uid of the SOP instances in the selection.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public StudyComponent setUidElement(OidType value) { - this.uid = value; - return this; - } - - /** - * @return Study instance uid of the SOP instances in the selection. - */ - public String getUid() { - return this.uid == null ? null : this.uid.getValue(); - } - - /** - * @param value Study instance uid of the SOP instances in the selection. - */ - public StudyComponent setUid(String value) { - if (this.uid == null) - this.uid = new OidType(); - this.uid.setValue(value); - return this; - } - - /** - * @return {@link #retrieveAETitle} (The DICOM Application Entity Title where the study can be retrieved. -Note that this AE Title is provided to retrieve all SOP instances of the study, not only those in the selection.). This is the underlying object with id, value and extensions. The accessor "getRetrieveAETitle" gives direct access to the value - */ - public IdType getRetrieveAETitleElement() { - if (this.retrieveAETitle == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create StudyComponent.retrieveAETitle"); - else if (Configuration.doAutoCreate()) - this.retrieveAETitle = new IdType(); - return this.retrieveAETitle; - } - - public boolean hasRetrieveAETitleElement() { - return this.retrieveAETitle != null && !this.retrieveAETitle.isEmpty(); - } - - public boolean hasRetrieveAETitle() { - return this.retrieveAETitle != null && !this.retrieveAETitle.isEmpty(); - } - - /** - * @param value {@link #retrieveAETitle} (The DICOM Application Entity Title where the study can be retrieved. -Note that this AE Title is provided to retrieve all SOP instances of the study, not only those in the selection.). This is the underlying object with id, value and extensions. The accessor "getRetrieveAETitle" gives direct access to the value - */ - public StudyComponent setRetrieveAETitleElement(IdType value) { - this.retrieveAETitle = value; - return this; - } - - /** - * @return The DICOM Application Entity Title where the study can be retrieved. -Note that this AE Title is provided to retrieve all SOP instances of the study, not only those in the selection. - */ - public String getRetrieveAETitle() { - return this.retrieveAETitle == null ? null : this.retrieveAETitle.getValue(); - } - - /** - * @param value The DICOM Application Entity Title where the study can be retrieved. -Note that this AE Title is provided to retrieve all SOP instances of the study, not only those in the selection. - */ - public StudyComponent setRetrieveAETitle(String value) { - if (Utilities.noString(value)) - this.retrieveAETitle = null; - else { - if (this.retrieveAETitle == null) - this.retrieveAETitle = new IdType(); - this.retrieveAETitle.setValue(value); - } - return this; - } - - /** - * @return {@link #retrieveUrl} (WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection.). This is the underlying object with id, value and extensions. The accessor "getRetrieveUrl" gives direct access to the value - */ - public UriType getRetrieveUrlElement() { - if (this.retrieveUrl == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create StudyComponent.retrieveUrl"); - else if (Configuration.doAutoCreate()) - this.retrieveUrl = new UriType(); - return this.retrieveUrl; - } - - public boolean hasRetrieveUrlElement() { - return this.retrieveUrl != null && !this.retrieveUrl.isEmpty(); - } - - public boolean hasRetrieveUrl() { - return this.retrieveUrl != null && !this.retrieveUrl.isEmpty(); - } - - /** - * @param value {@link #retrieveUrl} (WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection.). This is the underlying object with id, value and extensions. The accessor "getRetrieveUrl" gives direct access to the value - */ - public StudyComponent setRetrieveUrlElement(UriType value) { - this.retrieveUrl = value; - return this; - } - - /** - * @return WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection. - */ - public String getRetrieveUrl() { - return this.retrieveUrl == null ? null : this.retrieveUrl.getValue(); - } - - /** - * @param value WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection. - */ - public StudyComponent setRetrieveUrl(String value) { - if (Utilities.noString(value)) - this.retrieveUrl = null; - else { - if (this.retrieveUrl == null) - this.retrieveUrl = new UriType(); - this.retrieveUrl.setValue(value); - } - return this; - } - - /** - * @return {@link #series} (Series indetity and locating information of the DICOM SOP instances in the selection.) - */ - public List getSeries() { - if (this.series == null) - this.series = new ArrayList(); - return this.series; - } - - public boolean hasSeries() { - if (this.series == null) - return false; - for (SeriesComponent item : this.series) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #series} (Series indetity and locating information of the DICOM SOP instances in the selection.) - */ - // syntactic sugar - public SeriesComponent addSeries() { //3 - SeriesComponent t = new SeriesComponent(); - if (this.series == null) - this.series = new ArrayList(); - this.series.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("uid", "oid", "Study instance uid of the SOP instances in the selection.", 0, java.lang.Integer.MAX_VALUE, uid)); - childrenList.add(new Property("retrieveAETitle", "id", "The DICOM Application Entity Title where the study can be retrieved.\nNote that this AE Title is provided to retrieve all SOP instances of the study, not only those in the selection.", 0, java.lang.Integer.MAX_VALUE, retrieveAETitle)); - childrenList.add(new Property("retrieveUrl", "uri", "WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection.", 0, java.lang.Integer.MAX_VALUE, retrieveUrl)); - childrenList.add(new Property("series", "", "Series indetity and locating information of the DICOM SOP instances in the selection.", 0, java.lang.Integer.MAX_VALUE, series)); - } - - public StudyComponent copy() { - StudyComponent dst = new StudyComponent(); - copyValues(dst); - dst.uid = uid == null ? null : uid.copy(); - dst.retrieveAETitle = retrieveAETitle == null ? null : retrieveAETitle.copy(); - dst.retrieveUrl = retrieveUrl == null ? null : retrieveUrl.copy(); - if (series != null) { - dst.series = new ArrayList(); - for (SeriesComponent i : series) - dst.series.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (uid == null || uid.isEmpty()) && (retrieveAETitle == null || retrieveAETitle.isEmpty()) - && (retrieveUrl == null || retrieveUrl.isEmpty()) && (series == null || series.isEmpty()) - ; - } - - } - - @Block() - public static class SeriesComponent extends BackboneElement { - /** - * Series instance uid of the SOP instances in the selection. - */ - @Child(name="uid", type={OidType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Series instance uid", formalDefinition="Series instance uid of the SOP instances in the selection." ) - protected OidType uid; - - /** - * The DICOM Application Entity Title where the series can be retrieved. -Note that this AE Title is provided to retrieve all SOP instances of the series not only those in the selection. - */ - @Child(name="retrieveAETitle", type={IdType.class}, order=2, min=0, max=1) - @Description(shortDefinition="AE Title where may be retrieved", formalDefinition="The DICOM Application Entity Title where the series can be retrieved.\nNote that this AE Title is provided to retrieve all SOP instances of the series not only those in the selection." ) - protected IdType retrieveAETitle; - - /** - * WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection. - */ - @Child(name="retrieveUrl", type={UriType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Retrieve URL", formalDefinition="WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection." ) - protected UriType retrieveUrl; - - /** - * Identity and locating information of the selected DICOM SOP instances. - */ - @Child(name="instance", type={}, order=4, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="The selected instance", formalDefinition="Identity and locating information of the selected DICOM SOP instances." ) - protected List instance; - - private static final long serialVersionUID = -156906991L; - - public SeriesComponent() { - super(); - } - - public SeriesComponent(OidType uid) { - super(); - this.uid = uid; - } - - /** - * @return {@link #uid} (Series instance uid of the SOP instances in the selection.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public OidType getUidElement() { - if (this.uid == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SeriesComponent.uid"); - else if (Configuration.doAutoCreate()) - this.uid = new OidType(); - return this.uid; - } - - public boolean hasUidElement() { - return this.uid != null && !this.uid.isEmpty(); - } - - public boolean hasUid() { - return this.uid != null && !this.uid.isEmpty(); - } - - /** - * @param value {@link #uid} (Series instance uid of the SOP instances in the selection.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public SeriesComponent setUidElement(OidType value) { - this.uid = value; - return this; - } - - /** - * @return Series instance uid of the SOP instances in the selection. - */ - public String getUid() { - return this.uid == null ? null : this.uid.getValue(); - } - - /** - * @param value Series instance uid of the SOP instances in the selection. - */ - public SeriesComponent setUid(String value) { - if (this.uid == null) - this.uid = new OidType(); - this.uid.setValue(value); - return this; - } - - /** - * @return {@link #retrieveAETitle} (The DICOM Application Entity Title where the series can be retrieved. -Note that this AE Title is provided to retrieve all SOP instances of the series not only those in the selection.). This is the underlying object with id, value and extensions. The accessor "getRetrieveAETitle" gives direct access to the value - */ - public IdType getRetrieveAETitleElement() { - if (this.retrieveAETitle == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SeriesComponent.retrieveAETitle"); - else if (Configuration.doAutoCreate()) - this.retrieveAETitle = new IdType(); - return this.retrieveAETitle; - } - - public boolean hasRetrieveAETitleElement() { - return this.retrieveAETitle != null && !this.retrieveAETitle.isEmpty(); - } - - public boolean hasRetrieveAETitle() { - return this.retrieveAETitle != null && !this.retrieveAETitle.isEmpty(); - } - - /** - * @param value {@link #retrieveAETitle} (The DICOM Application Entity Title where the series can be retrieved. -Note that this AE Title is provided to retrieve all SOP instances of the series not only those in the selection.). This is the underlying object with id, value and extensions. The accessor "getRetrieveAETitle" gives direct access to the value - */ - public SeriesComponent setRetrieveAETitleElement(IdType value) { - this.retrieveAETitle = value; - return this; - } - - /** - * @return The DICOM Application Entity Title where the series can be retrieved. -Note that this AE Title is provided to retrieve all SOP instances of the series not only those in the selection. - */ - public String getRetrieveAETitle() { - return this.retrieveAETitle == null ? null : this.retrieveAETitle.getValue(); - } - - /** - * @param value The DICOM Application Entity Title where the series can be retrieved. -Note that this AE Title is provided to retrieve all SOP instances of the series not only those in the selection. - */ - public SeriesComponent setRetrieveAETitle(String value) { - if (Utilities.noString(value)) - this.retrieveAETitle = null; - else { - if (this.retrieveAETitle == null) - this.retrieveAETitle = new IdType(); - this.retrieveAETitle.setValue(value); - } - return this; - } - - /** - * @return {@link #retrieveUrl} (WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection.). This is the underlying object with id, value and extensions. The accessor "getRetrieveUrl" gives direct access to the value - */ - public UriType getRetrieveUrlElement() { - if (this.retrieveUrl == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SeriesComponent.retrieveUrl"); - else if (Configuration.doAutoCreate()) - this.retrieveUrl = new UriType(); - return this.retrieveUrl; - } - - public boolean hasRetrieveUrlElement() { - return this.retrieveUrl != null && !this.retrieveUrl.isEmpty(); - } - - public boolean hasRetrieveUrl() { - return this.retrieveUrl != null && !this.retrieveUrl.isEmpty(); - } - - /** - * @param value {@link #retrieveUrl} (WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection.). This is the underlying object with id, value and extensions. The accessor "getRetrieveUrl" gives direct access to the value - */ - public SeriesComponent setRetrieveUrlElement(UriType value) { - this.retrieveUrl = value; - return this; - } - - /** - * @return WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection. - */ - public String getRetrieveUrl() { - return this.retrieveUrl == null ? null : this.retrieveUrl.getValue(); - } - - /** - * @param value WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection. - */ - public SeriesComponent setRetrieveUrl(String value) { - if (Utilities.noString(value)) - this.retrieveUrl = null; - else { - if (this.retrieveUrl == null) - this.retrieveUrl = new UriType(); - this.retrieveUrl.setValue(value); - } - return this; - } - - /** - * @return {@link #instance} (Identity and locating information of the selected DICOM SOP instances.) - */ - public List getInstance() { - if (this.instance == null) - this.instance = new ArrayList(); - return this.instance; - } - - public boolean hasInstance() { - if (this.instance == null) - return false; - for (InstanceComponent item : this.instance) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #instance} (Identity and locating information of the selected DICOM SOP instances.) - */ - // syntactic sugar - public InstanceComponent addInstance() { //3 - InstanceComponent t = new InstanceComponent(); - if (this.instance == null) - this.instance = new ArrayList(); - this.instance.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("uid", "oid", "Series instance uid of the SOP instances in the selection.", 0, java.lang.Integer.MAX_VALUE, uid)); - childrenList.add(new Property("retrieveAETitle", "id", "The DICOM Application Entity Title where the series can be retrieved.\nNote that this AE Title is provided to retrieve all SOP instances of the series not only those in the selection.", 0, java.lang.Integer.MAX_VALUE, retrieveAETitle)); - childrenList.add(new Property("retrieveUrl", "uri", "WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection.", 0, java.lang.Integer.MAX_VALUE, retrieveUrl)); - childrenList.add(new Property("instance", "", "Identity and locating information of the selected DICOM SOP instances.", 0, java.lang.Integer.MAX_VALUE, instance)); - } - - public SeriesComponent copy() { - SeriesComponent dst = new SeriesComponent(); - copyValues(dst); - dst.uid = uid == null ? null : uid.copy(); - dst.retrieveAETitle = retrieveAETitle == null ? null : retrieveAETitle.copy(); - dst.retrieveUrl = retrieveUrl == null ? null : retrieveUrl.copy(); - if (instance != null) { - dst.instance = new ArrayList(); - for (InstanceComponent i : instance) - dst.instance.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (uid == null || uid.isEmpty()) && (retrieveAETitle == null || retrieveAETitle.isEmpty()) - && (retrieveUrl == null || retrieveUrl.isEmpty()) && (instance == null || instance.isEmpty()) - ; - } - - } - - @Block() - public static class InstanceComponent extends BackboneElement { - /** - * SOP class uid of the selected instance. - */ - @Child(name="sopClass", type={OidType.class}, order=1, min=1, max=1) - @Description(shortDefinition="SOP class uid of instance", formalDefinition="SOP class uid of the selected instance." ) - protected OidType sopClass; - - /** - * SOP Instance uid of the selected instance. - */ - @Child(name="uid", type={OidType.class}, order=2, min=1, max=1) - @Description(shortDefinition="Uid of the selected instance", formalDefinition="SOP Instance uid of the selected instance." ) - protected OidType uid; - - /** - * The DICOM Application Entity Title where the DICOM SOP instance can be retrieved. - */ - @Child(name="retrieveAETitle", type={IdType.class}, order=3, min=0, max=1) - @Description(shortDefinition="AE Title where may be retrieved", formalDefinition="The DICOM Application Entity Title where the DICOM SOP instance can be retrieved." ) - protected IdType retrieveAETitle; - - /** - * WADO-RS URL to retrieve the DICOM SOP Instance. - */ - @Child(name="retrieveUrl", type={UriType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Retrieve URL", formalDefinition="WADO-RS URL to retrieve the DICOM SOP Instance." ) - protected UriType retrieveUrl; - - private static final long serialVersionUID = 1148429294L; - - public InstanceComponent() { - super(); - } - - public InstanceComponent(OidType sopClass, OidType uid) { - super(); - this.sopClass = sopClass; - this.uid = uid; - } - - /** - * @return {@link #sopClass} (SOP class uid of the selected instance.). This is the underlying object with id, value and extensions. The accessor "getSopClass" gives direct access to the value - */ - public OidType getSopClassElement() { - if (this.sopClass == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstanceComponent.sopClass"); - else if (Configuration.doAutoCreate()) - this.sopClass = new OidType(); - return this.sopClass; - } - - public boolean hasSopClassElement() { - return this.sopClass != null && !this.sopClass.isEmpty(); - } - - public boolean hasSopClass() { - return this.sopClass != null && !this.sopClass.isEmpty(); - } - - /** - * @param value {@link #sopClass} (SOP class uid of the selected instance.). This is the underlying object with id, value and extensions. The accessor "getSopClass" gives direct access to the value - */ - public InstanceComponent setSopClassElement(OidType value) { - this.sopClass = value; - return this; - } - - /** - * @return SOP class uid of the selected instance. - */ - public String getSopClass() { - return this.sopClass == null ? null : this.sopClass.getValue(); - } - - /** - * @param value SOP class uid of the selected instance. - */ - public InstanceComponent setSopClass(String value) { - if (this.sopClass == null) - this.sopClass = new OidType(); - this.sopClass.setValue(value); - return this; - } - - /** - * @return {@link #uid} (SOP Instance uid of the selected instance.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public OidType getUidElement() { - if (this.uid == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstanceComponent.uid"); - else if (Configuration.doAutoCreate()) - this.uid = new OidType(); - return this.uid; - } - - public boolean hasUidElement() { - return this.uid != null && !this.uid.isEmpty(); - } - - public boolean hasUid() { - return this.uid != null && !this.uid.isEmpty(); - } - - /** - * @param value {@link #uid} (SOP Instance uid of the selected instance.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public InstanceComponent setUidElement(OidType value) { - this.uid = value; - return this; - } - - /** - * @return SOP Instance uid of the selected instance. - */ - public String getUid() { - return this.uid == null ? null : this.uid.getValue(); - } - - /** - * @param value SOP Instance uid of the selected instance. - */ - public InstanceComponent setUid(String value) { - if (this.uid == null) - this.uid = new OidType(); - this.uid.setValue(value); - return this; - } - - /** - * @return {@link #retrieveAETitle} (The DICOM Application Entity Title where the DICOM SOP instance can be retrieved.). This is the underlying object with id, value and extensions. The accessor "getRetrieveAETitle" gives direct access to the value - */ - public IdType getRetrieveAETitleElement() { - if (this.retrieveAETitle == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstanceComponent.retrieveAETitle"); - else if (Configuration.doAutoCreate()) - this.retrieveAETitle = new IdType(); - return this.retrieveAETitle; - } - - public boolean hasRetrieveAETitleElement() { - return this.retrieveAETitle != null && !this.retrieveAETitle.isEmpty(); - } - - public boolean hasRetrieveAETitle() { - return this.retrieveAETitle != null && !this.retrieveAETitle.isEmpty(); - } - - /** - * @param value {@link #retrieveAETitle} (The DICOM Application Entity Title where the DICOM SOP instance can be retrieved.). This is the underlying object with id, value and extensions. The accessor "getRetrieveAETitle" gives direct access to the value - */ - public InstanceComponent setRetrieveAETitleElement(IdType value) { - this.retrieveAETitle = value; - return this; - } - - /** - * @return The DICOM Application Entity Title where the DICOM SOP instance can be retrieved. - */ - public String getRetrieveAETitle() { - return this.retrieveAETitle == null ? null : this.retrieveAETitle.getValue(); - } - - /** - * @param value The DICOM Application Entity Title where the DICOM SOP instance can be retrieved. - */ - public InstanceComponent setRetrieveAETitle(String value) { - if (Utilities.noString(value)) - this.retrieveAETitle = null; - else { - if (this.retrieveAETitle == null) - this.retrieveAETitle = new IdType(); - this.retrieveAETitle.setValue(value); - } - return this; - } - - /** - * @return {@link #retrieveUrl} (WADO-RS URL to retrieve the DICOM SOP Instance.). This is the underlying object with id, value and extensions. The accessor "getRetrieveUrl" gives direct access to the value - */ - public UriType getRetrieveUrlElement() { - if (this.retrieveUrl == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstanceComponent.retrieveUrl"); - else if (Configuration.doAutoCreate()) - this.retrieveUrl = new UriType(); - return this.retrieveUrl; - } - - public boolean hasRetrieveUrlElement() { - return this.retrieveUrl != null && !this.retrieveUrl.isEmpty(); - } - - public boolean hasRetrieveUrl() { - return this.retrieveUrl != null && !this.retrieveUrl.isEmpty(); - } - - /** - * @param value {@link #retrieveUrl} (WADO-RS URL to retrieve the DICOM SOP Instance.). This is the underlying object with id, value and extensions. The accessor "getRetrieveUrl" gives direct access to the value - */ - public InstanceComponent setRetrieveUrlElement(UriType value) { - this.retrieveUrl = value; - return this; - } - - /** - * @return WADO-RS URL to retrieve the DICOM SOP Instance. - */ - public String getRetrieveUrl() { - return this.retrieveUrl == null ? null : this.retrieveUrl.getValue(); - } - - /** - * @param value WADO-RS URL to retrieve the DICOM SOP Instance. - */ - public InstanceComponent setRetrieveUrl(String value) { - if (Utilities.noString(value)) - this.retrieveUrl = null; - else { - if (this.retrieveUrl == null) - this.retrieveUrl = new UriType(); - this.retrieveUrl.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("sopClass", "oid", "SOP class uid of the selected instance.", 0, java.lang.Integer.MAX_VALUE, sopClass)); - childrenList.add(new Property("uid", "oid", "SOP Instance uid of the selected instance.", 0, java.lang.Integer.MAX_VALUE, uid)); - childrenList.add(new Property("retrieveAETitle", "id", "The DICOM Application Entity Title where the DICOM SOP instance can be retrieved.", 0, java.lang.Integer.MAX_VALUE, retrieveAETitle)); - childrenList.add(new Property("retrieveUrl", "uri", "WADO-RS URL to retrieve the DICOM SOP Instance.", 0, java.lang.Integer.MAX_VALUE, retrieveUrl)); - } - - public InstanceComponent copy() { - InstanceComponent dst = new InstanceComponent(); - copyValues(dst); - dst.sopClass = sopClass == null ? null : sopClass.copy(); - dst.uid = uid == null ? null : uid.copy(); - dst.retrieveAETitle = retrieveAETitle == null ? null : retrieveAETitle.copy(); - dst.retrieveUrl = retrieveUrl == null ? null : retrieveUrl.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (sopClass == null || sopClass.isEmpty()) && (uid == null || uid.isEmpty()) - && (retrieveAETitle == null || retrieveAETitle.isEmpty()) && (retrieveUrl == null || retrieveUrl.isEmpty()) - ; - } - - } - - /** - * Instance UID of the DICOM KOS SOP Instances represenetd in this resource. - */ - @Child(name="uid", type={OidType.class}, order=-1, min=1, max=1) - @Description(shortDefinition="Instance UID", formalDefinition="Instance UID of the DICOM KOS SOP Instances represenetd in this resource." ) - protected OidType uid; - - /** - * A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection. - */ - @Child(name="patient", type={Patient.class}, order=0, min=1, max=1) - @Description(shortDefinition="Patient of the selected objects", formalDefinition="A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.) - */ - protected Patient patientTarget; - - /** - * The reason for, or significance of, the selection of objects referenced in the resource. - */ - @Child(name="title", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="Reason for selection", formalDefinition="The reason for, or significance of, the selection of objects referenced in the resource." ) - protected CodeableConcept title; - - /** - * Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection. - */ - @Child(name="description", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Description text", formalDefinition="Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection." ) - protected StringType description; - - /** - * Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion. - */ - @Child(name="author", type={Practitioner.class, Device.class, Organization.class, Patient.class, RelatedPerson.class}, order=3, min=0, max=1) - @Description(shortDefinition="Author (human or machine)", formalDefinition="Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion." ) - protected Reference author; - - /** - * The actual object that is the target of the reference (Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.) - */ - protected Resource authorTarget; - - /** - * Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource. - */ - @Child(name="authoringTime", type={DateTimeType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Authoring time of the selection", formalDefinition="Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource." ) - protected DateTimeType authoringTime; - - /** - * Study identity and locating information of the DICOM SOP instances in the selection. - */ - @Child(name="study", type={}, order=5, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Study identity of the selected instances", formalDefinition="Study identity and locating information of the DICOM SOP instances in the selection." ) - protected List study; - - private static final long serialVersionUID = -1961832713L; - - public ImagingObjectSelection() { - super(); - } - - public ImagingObjectSelection(OidType uid, Reference patient, CodeableConcept title) { - super(); - this.uid = uid; - this.patient = patient; - this.title = title; - } - - /** - * @return {@link #uid} (Instance UID of the DICOM KOS SOP Instances represenetd in this resource.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public OidType getUidElement() { - if (this.uid == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingObjectSelection.uid"); - else if (Configuration.doAutoCreate()) - this.uid = new OidType(); - return this.uid; - } - - public boolean hasUidElement() { - return this.uid != null && !this.uid.isEmpty(); - } - - public boolean hasUid() { - return this.uid != null && !this.uid.isEmpty(); - } - - /** - * @param value {@link #uid} (Instance UID of the DICOM KOS SOP Instances represenetd in this resource.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public ImagingObjectSelection setUidElement(OidType value) { - this.uid = value; - return this; - } - - /** - * @return Instance UID of the DICOM KOS SOP Instances represenetd in this resource. - */ - public String getUid() { - return this.uid == null ? null : this.uid.getValue(); - } - - /** - * @param value Instance UID of the DICOM KOS SOP Instances represenetd in this resource. - */ - public ImagingObjectSelection setUid(String value) { - if (this.uid == null) - this.uid = new OidType(); - this.uid.setValue(value); - return this; - } - - /** - * @return {@link #patient} (A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingObjectSelection.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.) - */ - public ImagingObjectSelection setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingObjectSelection.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.) - */ - public ImagingObjectSelection setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #title} (The reason for, or significance of, the selection of objects referenced in the resource.) - */ - public CodeableConcept getTitle() { - if (this.title == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingObjectSelection.title"); - else if (Configuration.doAutoCreate()) - this.title = new CodeableConcept(); - return this.title; - } - - public boolean hasTitle() { - return this.title != null && !this.title.isEmpty(); - } - - /** - * @param value {@link #title} (The reason for, or significance of, the selection of objects referenced in the resource.) - */ - public ImagingObjectSelection setTitle(CodeableConcept value) { - this.title = value; - return this; - } - - /** - * @return {@link #description} (Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingObjectSelection.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public ImagingObjectSelection setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection. - */ - public ImagingObjectSelection setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #author} (Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.) - */ - public Reference getAuthor() { - if (this.author == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingObjectSelection.author"); - else if (Configuration.doAutoCreate()) - this.author = new Reference(); - return this.author; - } - - public boolean hasAuthor() { - return this.author != null && !this.author.isEmpty(); - } - - /** - * @param value {@link #author} (Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.) - */ - public ImagingObjectSelection setAuthor(Reference value) { - this.author = value; - return this; - } - - /** - * @return {@link #author} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.) - */ - public Resource getAuthorTarget() { - return this.authorTarget; - } - - /** - * @param value {@link #author} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.) - */ - public ImagingObjectSelection setAuthorTarget(Resource value) { - this.authorTarget = value; - return this; - } - - /** - * @return {@link #authoringTime} (Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource.). This is the underlying object with id, value and extensions. The accessor "getAuthoringTime" gives direct access to the value - */ - public DateTimeType getAuthoringTimeElement() { - if (this.authoringTime == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingObjectSelection.authoringTime"); - else if (Configuration.doAutoCreate()) - this.authoringTime = new DateTimeType(); - return this.authoringTime; - } - - public boolean hasAuthoringTimeElement() { - return this.authoringTime != null && !this.authoringTime.isEmpty(); - } - - public boolean hasAuthoringTime() { - return this.authoringTime != null && !this.authoringTime.isEmpty(); - } - - /** - * @param value {@link #authoringTime} (Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource.). This is the underlying object with id, value and extensions. The accessor "getAuthoringTime" gives direct access to the value - */ - public ImagingObjectSelection setAuthoringTimeElement(DateTimeType value) { - this.authoringTime = value; - return this; - } - - /** - * @return Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource. - */ - public Date getAuthoringTime() { - return this.authoringTime == null ? null : this.authoringTime.getValue(); - } - - /** - * @param value Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource. - */ - public ImagingObjectSelection setAuthoringTime(Date value) { - if (value == null) - this.authoringTime = null; - else { - if (this.authoringTime == null) - this.authoringTime = new DateTimeType(); - this.authoringTime.setValue(value); - } - return this; - } - - /** - * @return {@link #study} (Study identity and locating information of the DICOM SOP instances in the selection.) - */ - public List getStudy() { - if (this.study == null) - this.study = new ArrayList(); - return this.study; - } - - public boolean hasStudy() { - if (this.study == null) - return false; - for (StudyComponent item : this.study) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #study} (Study identity and locating information of the DICOM SOP instances in the selection.) - */ - // syntactic sugar - public StudyComponent addStudy() { //3 - StudyComponent t = new StudyComponent(); - if (this.study == null) - this.study = new ArrayList(); - this.study.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("uid", "oid", "Instance UID of the DICOM KOS SOP Instances represenetd in this resource.", 0, java.lang.Integer.MAX_VALUE, uid)); - childrenList.add(new Property("patient", "Reference(Patient)", "A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("title", "CodeableConcept", "The reason for, or significance of, the selection of objects referenced in the resource.", 0, java.lang.Integer.MAX_VALUE, title)); - childrenList.add(new Property("description", "string", "Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("author", "Reference(Practitioner|Device|Organization|Patient|RelatedPerson)", "Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.", 0, java.lang.Integer.MAX_VALUE, author)); - childrenList.add(new Property("authoringTime", "dateTime", "Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource.", 0, java.lang.Integer.MAX_VALUE, authoringTime)); - childrenList.add(new Property("study", "", "Study identity and locating information of the DICOM SOP instances in the selection.", 0, java.lang.Integer.MAX_VALUE, study)); - } - - public ImagingObjectSelection copy() { - ImagingObjectSelection dst = new ImagingObjectSelection(); - copyValues(dst); - dst.uid = uid == null ? null : uid.copy(); - dst.patient = patient == null ? null : patient.copy(); - dst.title = title == null ? null : title.copy(); - dst.description = description == null ? null : description.copy(); - dst.author = author == null ? null : author.copy(); - dst.authoringTime = authoringTime == null ? null : authoringTime.copy(); - if (study != null) { - dst.study = new ArrayList(); - for (StudyComponent i : study) - dst.study.add(i.copy()); - }; - return dst; - } - - protected ImagingObjectSelection typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (uid == null || uid.isEmpty()) && (patient == null || patient.isEmpty()) - && (title == null || title.isEmpty()) && (description == null || description.isEmpty()) && (author == null || author.isEmpty()) - && (authoringTime == null || authoringTime.isEmpty()) && (study == null || study.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.ImagingObjectSelection; - } - - @SearchParamDefinition(name="selected-study", path="ImagingObjectSelection.study.uid", description="Study selected in key DICOM object selection", type="token" ) - public static final String SP_SELECTEDSTUDY = "selected-study"; - @SearchParamDefinition(name="author", path="ImagingObjectSelection.author", description="Author of key DICOM object selection", type="reference" ) - public static final String SP_AUTHOR = "author"; - @SearchParamDefinition(name="title", path="ImagingObjectSelection.title", description="Title of key DICOM object selection", type="string" ) - public static final String SP_TITLE = "title"; - @SearchParamDefinition(name="patient", path="ImagingObjectSelection.patient", description="Subject of key DICOM object selection", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="authoring-time", path="ImagingObjectSelection.authoringTime", description="Time of key DICOM object selection authoring", type="date" ) - public static final String SP_AUTHORINGTIME = "authoring-time"; - @SearchParamDefinition(name="identifier", path="ImagingObjectSelection.uid", description="UID of key DICOM object selection", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A set of DICOM SOP Instances of a patient, selected for some application purpose, e.g., quality assurance, teaching, conference, consulting, etc. Objects selected can be from different studies, but must be of the same patient. + */ +@ResourceDef(name="ImagingObjectSelection", profile="http://hl7.org/fhir/Profile/ImagingObjectSelection") +public class ImagingObjectSelection extends DomainResource { + + @Block() + public static class StudyComponent extends BackboneElement { + /** + * Study instance uid of the SOP instances in the selection. + */ + @Child(name="uid", type={OidType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Study instance uid", formalDefinition="Study instance uid of the SOP instances in the selection." ) + protected OidType uid; + + /** + * WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection. + */ + @Child(name="url", type={UriType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Retrieve URL", formalDefinition="WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection." ) + protected UriType url; + + /** + * Series indetity and locating information of the DICOM SOP instances in the selection. + */ + @Child(name="series", type={}, order=3, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Series identity of the selected instances", formalDefinition="Series indetity and locating information of the DICOM SOP instances in the selection." ) + protected List series; + + private static final long serialVersionUID = -1632673574L; + + public StudyComponent() { + super(); + } + + public StudyComponent(OidType uid) { + super(); + this.uid = uid; + } + + /** + * @return {@link #uid} (Study instance uid of the SOP instances in the selection.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public OidType getUidElement() { + if (this.uid == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create StudyComponent.uid"); + else if (Configuration.doAutoCreate()) + this.uid = new OidType(); // bb + return this.uid; + } + + public boolean hasUidElement() { + return this.uid != null && !this.uid.isEmpty(); + } + + public boolean hasUid() { + return this.uid != null && !this.uid.isEmpty(); + } + + /** + * @param value {@link #uid} (Study instance uid of the SOP instances in the selection.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public StudyComponent setUidElement(OidType value) { + this.uid = value; + return this; + } + + /** + * @return Study instance uid of the SOP instances in the selection. + */ + public String getUid() { + return this.uid == null ? null : this.uid.getValue(); + } + + /** + * @param value Study instance uid of the SOP instances in the selection. + */ + public StudyComponent setUid(String value) { + if (this.uid == null) + this.uid = new OidType(); + this.uid.setValue(value); + return this; + } + + /** + * @return {@link #url} (WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create StudyComponent.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public StudyComponent setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection. + */ + public StudyComponent setUrl(String value) { + if (Utilities.noString(value)) + this.url = null; + else { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + } + return this; + } + + /** + * @return {@link #series} (Series indetity and locating information of the DICOM SOP instances in the selection.) + */ + public List getSeries() { + if (this.series == null) + this.series = new ArrayList(); + return this.series; + } + + public boolean hasSeries() { + if (this.series == null) + return false; + for (SeriesComponent item : this.series) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #series} (Series indetity and locating information of the DICOM SOP instances in the selection.) + */ + // syntactic sugar + public SeriesComponent addSeries() { //3 + SeriesComponent t = new SeriesComponent(); + if (this.series == null) + this.series = new ArrayList(); + this.series.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("uid", "oid", "Study instance uid of the SOP instances in the selection.", 0, java.lang.Integer.MAX_VALUE, uid)); + childrenList.add(new Property("url", "uri", "WADO-RS URL to retrieve the study. Note that this URL retrieves all SOP instances of the study, not only those in the selection.", 0, java.lang.Integer.MAX_VALUE, url)); + childrenList.add(new Property("series", "", "Series indetity and locating information of the DICOM SOP instances in the selection.", 0, java.lang.Integer.MAX_VALUE, series)); + } + + public StudyComponent copy() { + StudyComponent dst = new StudyComponent(); + copyValues(dst); + dst.uid = uid == null ? null : uid.copy(); + dst.url = url == null ? null : url.copy(); + if (series != null) { + dst.series = new ArrayList(); + for (SeriesComponent i : series) + dst.series.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof StudyComponent)) + return false; + StudyComponent o = (StudyComponent) other; + return compareDeep(uid, o.uid, true) && compareDeep(url, o.url, true) && compareDeep(series, o.series, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof StudyComponent)) + return false; + StudyComponent o = (StudyComponent) other; + return compareValues(uid, o.uid, true) && compareValues(url, o.url, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (uid == null || uid.isEmpty()) && (url == null || url.isEmpty()) && (series == null || series.isEmpty()) + ; + } + + } + + @Block() + public static class SeriesComponent extends BackboneElement { + /** + * Series instance uid of the SOP instances in the selection. + */ + @Child(name="uid", type={OidType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Series instance uid", formalDefinition="Series instance uid of the SOP instances in the selection." ) + protected OidType uid; + + /** + * WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection. + */ + @Child(name="url", type={UriType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Retrieve URL", formalDefinition="WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection." ) + protected UriType url; + + /** + * Identity and locating information of the selected DICOM SOP instances. + */ + @Child(name="instance", type={}, order=3, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="The selected instance", formalDefinition="Identity and locating information of the selected DICOM SOP instances." ) + protected List instance; + + private static final long serialVersionUID = 229247770L; + + public SeriesComponent() { + super(); + } + + /** + * @return {@link #uid} (Series instance uid of the SOP instances in the selection.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public OidType getUidElement() { + if (this.uid == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SeriesComponent.uid"); + else if (Configuration.doAutoCreate()) + this.uid = new OidType(); // bb + return this.uid; + } + + public boolean hasUidElement() { + return this.uid != null && !this.uid.isEmpty(); + } + + public boolean hasUid() { + return this.uid != null && !this.uid.isEmpty(); + } + + /** + * @param value {@link #uid} (Series instance uid of the SOP instances in the selection.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public SeriesComponent setUidElement(OidType value) { + this.uid = value; + return this; + } + + /** + * @return Series instance uid of the SOP instances in the selection. + */ + public String getUid() { + return this.uid == null ? null : this.uid.getValue(); + } + + /** + * @param value Series instance uid of the SOP instances in the selection. + */ + public SeriesComponent setUid(String value) { + if (Utilities.noString(value)) + this.uid = null; + else { + if (this.uid == null) + this.uid = new OidType(); + this.uid.setValue(value); + } + return this; + } + + /** + * @return {@link #url} (WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SeriesComponent.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public SeriesComponent setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection. + */ + public SeriesComponent setUrl(String value) { + if (Utilities.noString(value)) + this.url = null; + else { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + } + return this; + } + + /** + * @return {@link #instance} (Identity and locating information of the selected DICOM SOP instances.) + */ + public List getInstance() { + if (this.instance == null) + this.instance = new ArrayList(); + return this.instance; + } + + public boolean hasInstance() { + if (this.instance == null) + return false; + for (InstanceComponent item : this.instance) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #instance} (Identity and locating information of the selected DICOM SOP instances.) + */ + // syntactic sugar + public InstanceComponent addInstance() { //3 + InstanceComponent t = new InstanceComponent(); + if (this.instance == null) + this.instance = new ArrayList(); + this.instance.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("uid", "oid", "Series instance uid of the SOP instances in the selection.", 0, java.lang.Integer.MAX_VALUE, uid)); + childrenList.add(new Property("url", "uri", "WADO-RS URL to retrieve the series Note that this URL retrieves all SOP instances of the series not only those in the selection.", 0, java.lang.Integer.MAX_VALUE, url)); + childrenList.add(new Property("instance", "", "Identity and locating information of the selected DICOM SOP instances.", 0, java.lang.Integer.MAX_VALUE, instance)); + } + + public SeriesComponent copy() { + SeriesComponent dst = new SeriesComponent(); + copyValues(dst); + dst.uid = uid == null ? null : uid.copy(); + dst.url = url == null ? null : url.copy(); + if (instance != null) { + dst.instance = new ArrayList(); + for (InstanceComponent i : instance) + dst.instance.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof SeriesComponent)) + return false; + SeriesComponent o = (SeriesComponent) other; + return compareDeep(uid, o.uid, true) && compareDeep(url, o.url, true) && compareDeep(instance, o.instance, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof SeriesComponent)) + return false; + SeriesComponent o = (SeriesComponent) other; + return compareValues(uid, o.uid, true) && compareValues(url, o.url, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (uid == null || uid.isEmpty()) && (url == null || url.isEmpty()) && (instance == null || instance.isEmpty()) + ; + } + + } + + @Block() + public static class InstanceComponent extends BackboneElement { + /** + * SOP class uid of the selected instance. + */ + @Child(name="sopClass", type={OidType.class}, order=1, min=1, max=1) + @Description(shortDefinition="SOP class uid of instance", formalDefinition="SOP class uid of the selected instance." ) + protected OidType sopClass; + + /** + * SOP Instance uid of the selected instance. + */ + @Child(name="uid", type={OidType.class}, order=2, min=1, max=1) + @Description(shortDefinition="Uid of the selected instance", formalDefinition="SOP Instance uid of the selected instance." ) + protected OidType uid; + + /** + * WADO-RS URL to retrieve the DICOM SOP Instance. + */ + @Child(name="url", type={UriType.class}, order=3, min=1, max=1) + @Description(shortDefinition="Retrieve URL", formalDefinition="WADO-RS URL to retrieve the DICOM SOP Instance." ) + protected UriType url; + + /** + * Identity and location information of the frames in the selected instance. + */ + @Child(name="frames", type={}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="The frame set", formalDefinition="Identity and location information of the frames in the selected instance." ) + protected List frames; + + private static final long serialVersionUID = 1641180916L; + + public InstanceComponent() { + super(); + } + + public InstanceComponent(OidType sopClass, OidType uid, UriType url) { + super(); + this.sopClass = sopClass; + this.uid = uid; + this.url = url; + } + + /** + * @return {@link #sopClass} (SOP class uid of the selected instance.). This is the underlying object with id, value and extensions. The accessor "getSopClass" gives direct access to the value + */ + public OidType getSopClassElement() { + if (this.sopClass == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstanceComponent.sopClass"); + else if (Configuration.doAutoCreate()) + this.sopClass = new OidType(); // bb + return this.sopClass; + } + + public boolean hasSopClassElement() { + return this.sopClass != null && !this.sopClass.isEmpty(); + } + + public boolean hasSopClass() { + return this.sopClass != null && !this.sopClass.isEmpty(); + } + + /** + * @param value {@link #sopClass} (SOP class uid of the selected instance.). This is the underlying object with id, value and extensions. The accessor "getSopClass" gives direct access to the value + */ + public InstanceComponent setSopClassElement(OidType value) { + this.sopClass = value; + return this; + } + + /** + * @return SOP class uid of the selected instance. + */ + public String getSopClass() { + return this.sopClass == null ? null : this.sopClass.getValue(); + } + + /** + * @param value SOP class uid of the selected instance. + */ + public InstanceComponent setSopClass(String value) { + if (this.sopClass == null) + this.sopClass = new OidType(); + this.sopClass.setValue(value); + return this; + } + + /** + * @return {@link #uid} (SOP Instance uid of the selected instance.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public OidType getUidElement() { + if (this.uid == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstanceComponent.uid"); + else if (Configuration.doAutoCreate()) + this.uid = new OidType(); // bb + return this.uid; + } + + public boolean hasUidElement() { + return this.uid != null && !this.uid.isEmpty(); + } + + public boolean hasUid() { + return this.uid != null && !this.uid.isEmpty(); + } + + /** + * @param value {@link #uid} (SOP Instance uid of the selected instance.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public InstanceComponent setUidElement(OidType value) { + this.uid = value; + return this; + } + + /** + * @return SOP Instance uid of the selected instance. + */ + public String getUid() { + return this.uid == null ? null : this.uid.getValue(); + } + + /** + * @param value SOP Instance uid of the selected instance. + */ + public InstanceComponent setUid(String value) { + if (this.uid == null) + this.uid = new OidType(); + this.uid.setValue(value); + return this; + } + + /** + * @return {@link #url} (WADO-RS URL to retrieve the DICOM SOP Instance.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstanceComponent.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (WADO-RS URL to retrieve the DICOM SOP Instance.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public InstanceComponent setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return WADO-RS URL to retrieve the DICOM SOP Instance. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value WADO-RS URL to retrieve the DICOM SOP Instance. + */ + public InstanceComponent setUrl(String value) { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + return this; + } + + /** + * @return {@link #frames} (Identity and location information of the frames in the selected instance.) + */ + public List getFrames() { + if (this.frames == null) + this.frames = new ArrayList(); + return this.frames; + } + + public boolean hasFrames() { + if (this.frames == null) + return false; + for (FramesComponent item : this.frames) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #frames} (Identity and location information of the frames in the selected instance.) + */ + // syntactic sugar + public FramesComponent addFrames() { //3 + FramesComponent t = new FramesComponent(); + if (this.frames == null) + this.frames = new ArrayList(); + this.frames.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("sopClass", "oid", "SOP class uid of the selected instance.", 0, java.lang.Integer.MAX_VALUE, sopClass)); + childrenList.add(new Property("uid", "oid", "SOP Instance uid of the selected instance.", 0, java.lang.Integer.MAX_VALUE, uid)); + childrenList.add(new Property("url", "uri", "WADO-RS URL to retrieve the DICOM SOP Instance.", 0, java.lang.Integer.MAX_VALUE, url)); + childrenList.add(new Property("frames", "", "Identity and location information of the frames in the selected instance.", 0, java.lang.Integer.MAX_VALUE, frames)); + } + + public InstanceComponent copy() { + InstanceComponent dst = new InstanceComponent(); + copyValues(dst); + dst.sopClass = sopClass == null ? null : sopClass.copy(); + dst.uid = uid == null ? null : uid.copy(); + dst.url = url == null ? null : url.copy(); + if (frames != null) { + dst.frames = new ArrayList(); + for (FramesComponent i : frames) + dst.frames.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof InstanceComponent)) + return false; + InstanceComponent o = (InstanceComponent) other; + return compareDeep(sopClass, o.sopClass, true) && compareDeep(uid, o.uid, true) && compareDeep(url, o.url, true) + && compareDeep(frames, o.frames, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof InstanceComponent)) + return false; + InstanceComponent o = (InstanceComponent) other; + return compareValues(sopClass, o.sopClass, true) && compareValues(uid, o.uid, true) && compareValues(url, o.url, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (sopClass == null || sopClass.isEmpty()) && (uid == null || uid.isEmpty()) + && (url == null || url.isEmpty()) && (frames == null || frames.isEmpty()); + } + + } + + @Block() + public static class FramesComponent extends BackboneElement { + /** + * The frame numbers in the frame set. + */ + @Child(name="frameNumbers", type={IntegerType.class}, order=1, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Frame numbers", formalDefinition="The frame numbers in the frame set." ) + protected List frameNumbers; + + /** + * WADO-RS URL to retrieve the DICOM frames. + */ + @Child(name="url", type={UriType.class}, order=2, min=1, max=1) + @Description(shortDefinition="Retrieve URL", formalDefinition="WADO-RS URL to retrieve the DICOM frames." ) + protected UriType url; + + private static final long serialVersionUID = 587981442L; + + public FramesComponent() { + super(); + } + + public FramesComponent(UriType url) { + super(); + this.url = url; + } + + /** + * @return {@link #frameNumbers} (The frame numbers in the frame set.) + */ + public List getFrameNumbers() { + if (this.frameNumbers == null) + this.frameNumbers = new ArrayList(); + return this.frameNumbers; + } + + public boolean hasFrameNumbers() { + if (this.frameNumbers == null) + return false; + for (IntegerType item : this.frameNumbers) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #frameNumbers} (The frame numbers in the frame set.) + */ + // syntactic sugar + public IntegerType addFrameNumbersElement() {//2 + IntegerType t = new IntegerType(); + if (this.frameNumbers == null) + this.frameNumbers = new ArrayList(); + this.frameNumbers.add(t); + return t; + } + + /** + * @param value {@link #frameNumbers} (The frame numbers in the frame set.) + */ + public FramesComponent addFrameNumbers(int value) { //1 + IntegerType t = new IntegerType(); + t.setValue(value); + if (this.frameNumbers == null) + this.frameNumbers = new ArrayList(); + this.frameNumbers.add(t); + return this; + } + + /** + * @param value {@link #frameNumbers} (The frame numbers in the frame set.) + */ + public boolean hasFrameNumbers(int value) { + if (this.frameNumbers == null) + return false; + for (IntegerType v : this.frameNumbers) + if (v.equals(value)) // integer + return true; + return false; + } + + /** + * @return {@link #url} (WADO-RS URL to retrieve the DICOM frames.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create FramesComponent.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (WADO-RS URL to retrieve the DICOM frames.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public FramesComponent setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return WADO-RS URL to retrieve the DICOM frames. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value WADO-RS URL to retrieve the DICOM frames. + */ + public FramesComponent setUrl(String value) { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("frameNumbers", "integer", "The frame numbers in the frame set.", 0, java.lang.Integer.MAX_VALUE, frameNumbers)); + childrenList.add(new Property("url", "uri", "WADO-RS URL to retrieve the DICOM frames.", 0, java.lang.Integer.MAX_VALUE, url)); + } + + public FramesComponent copy() { + FramesComponent dst = new FramesComponent(); + copyValues(dst); + if (frameNumbers != null) { + dst.frameNumbers = new ArrayList(); + for (IntegerType i : frameNumbers) + dst.frameNumbers.add(i.copy()); + }; + dst.url = url == null ? null : url.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof FramesComponent)) + return false; + FramesComponent o = (FramesComponent) other; + return compareDeep(frameNumbers, o.frameNumbers, true) && compareDeep(url, o.url, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof FramesComponent)) + return false; + FramesComponent o = (FramesComponent) other; + return compareValues(frameNumbers, o.frameNumbers, true) && compareValues(url, o.url, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (frameNumbers == null || frameNumbers.isEmpty()) && (url == null || url.isEmpty()) + ; + } + + } + + /** + * Instance UID of the DICOM KOS SOP Instances represenetd in this resource. + */ + @Child(name="uid", type={OidType.class}, order=-1, min=1, max=1) + @Description(shortDefinition="Instance UID", formalDefinition="Instance UID of the DICOM KOS SOP Instances represenetd in this resource." ) + protected OidType uid; + + /** + * A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection. + */ + @Child(name="patient", type={Patient.class}, order=0, min=1, max=1) + @Description(shortDefinition="Patient of the selected objects", formalDefinition="A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.) + */ + protected Patient patientTarget; + + /** + * The reason for, or significance of, the selection of objects referenced in the resource. + */ + @Child(name="title", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="Reason for selection", formalDefinition="The reason for, or significance of, the selection of objects referenced in the resource." ) + protected CodeableConcept title; + + /** + * Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection. + */ + @Child(name="description", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Description text", formalDefinition="Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection." ) + protected StringType description; + + /** + * Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion. + */ + @Child(name="author", type={Practitioner.class, Device.class, Organization.class, Patient.class, RelatedPerson.class}, order=3, min=0, max=1) + @Description(shortDefinition="Author (human or machine)", formalDefinition="Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion." ) + protected Reference author; + + /** + * The actual object that is the target of the reference (Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.) + */ + protected Resource authorTarget; + + /** + * Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource. + */ + @Child(name="authoringTime", type={DateTimeType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Authoring time of the selection", formalDefinition="Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource." ) + protected DateTimeType authoringTime; + + /** + * Study identity and locating information of the DICOM SOP instances in the selection. + */ + @Child(name="study", type={}, order=5, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Study identity of the selected instances", formalDefinition="Study identity and locating information of the DICOM SOP instances in the selection." ) + protected List study; + + private static final long serialVersionUID = -1961832713L; + + public ImagingObjectSelection() { + super(); + } + + public ImagingObjectSelection(OidType uid, Reference patient, CodeableConcept title) { + super(); + this.uid = uid; + this.patient = patient; + this.title = title; + } + + /** + * @return {@link #uid} (Instance UID of the DICOM KOS SOP Instances represenetd in this resource.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public OidType getUidElement() { + if (this.uid == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingObjectSelection.uid"); + else if (Configuration.doAutoCreate()) + this.uid = new OidType(); // bb + return this.uid; + } + + public boolean hasUidElement() { + return this.uid != null && !this.uid.isEmpty(); + } + + public boolean hasUid() { + return this.uid != null && !this.uid.isEmpty(); + } + + /** + * @param value {@link #uid} (Instance UID of the DICOM KOS SOP Instances represenetd in this resource.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public ImagingObjectSelection setUidElement(OidType value) { + this.uid = value; + return this; + } + + /** + * @return Instance UID of the DICOM KOS SOP Instances represenetd in this resource. + */ + public String getUid() { + return this.uid == null ? null : this.uid.getValue(); + } + + /** + * @param value Instance UID of the DICOM KOS SOP Instances represenetd in this resource. + */ + public ImagingObjectSelection setUid(String value) { + if (this.uid == null) + this.uid = new OidType(); + this.uid.setValue(value); + return this; + } + + /** + * @return {@link #patient} (A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingObjectSelection.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.) + */ + public ImagingObjectSelection setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingObjectSelection.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.) + */ + public ImagingObjectSelection setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #title} (The reason for, or significance of, the selection of objects referenced in the resource.) + */ + public CodeableConcept getTitle() { + if (this.title == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingObjectSelection.title"); + else if (Configuration.doAutoCreate()) + this.title = new CodeableConcept(); // cc + return this.title; + } + + public boolean hasTitle() { + return this.title != null && !this.title.isEmpty(); + } + + /** + * @param value {@link #title} (The reason for, or significance of, the selection of objects referenced in the resource.) + */ + public ImagingObjectSelection setTitle(CodeableConcept value) { + this.title = value; + return this; + } + + /** + * @return {@link #description} (Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingObjectSelection.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public ImagingObjectSelection setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection. + */ + public ImagingObjectSelection setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #author} (Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.) + */ + public Reference getAuthor() { + if (this.author == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingObjectSelection.author"); + else if (Configuration.doAutoCreate()) + this.author = new Reference(); // cc + return this.author; + } + + public boolean hasAuthor() { + return this.author != null && !this.author.isEmpty(); + } + + /** + * @param value {@link #author} (Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.) + */ + public ImagingObjectSelection setAuthor(Reference value) { + this.author = value; + return this; + } + + /** + * @return {@link #author} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.) + */ + public Resource getAuthorTarget() { + return this.authorTarget; + } + + /** + * @param value {@link #author} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.) + */ + public ImagingObjectSelection setAuthorTarget(Resource value) { + this.authorTarget = value; + return this; + } + + /** + * @return {@link #authoringTime} (Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource.). This is the underlying object with id, value and extensions. The accessor "getAuthoringTime" gives direct access to the value + */ + public DateTimeType getAuthoringTimeElement() { + if (this.authoringTime == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingObjectSelection.authoringTime"); + else if (Configuration.doAutoCreate()) + this.authoringTime = new DateTimeType(); // bb + return this.authoringTime; + } + + public boolean hasAuthoringTimeElement() { + return this.authoringTime != null && !this.authoringTime.isEmpty(); + } + + public boolean hasAuthoringTime() { + return this.authoringTime != null && !this.authoringTime.isEmpty(); + } + + /** + * @param value {@link #authoringTime} (Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource.). This is the underlying object with id, value and extensions. The accessor "getAuthoringTime" gives direct access to the value + */ + public ImagingObjectSelection setAuthoringTimeElement(DateTimeType value) { + this.authoringTime = value; + return this; + } + + /** + * @return Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource. + */ + public Date getAuthoringTime() { + return this.authoringTime == null ? null : this.authoringTime.getValue(); + } + + /** + * @param value Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource. + */ + public ImagingObjectSelection setAuthoringTime(Date value) { + if (value == null) + this.authoringTime = null; + else { + if (this.authoringTime == null) + this.authoringTime = new DateTimeType(); + this.authoringTime.setValue(value); + } + return this; + } + + /** + * @return {@link #study} (Study identity and locating information of the DICOM SOP instances in the selection.) + */ + public List getStudy() { + if (this.study == null) + this.study = new ArrayList(); + return this.study; + } + + public boolean hasStudy() { + if (this.study == null) + return false; + for (StudyComponent item : this.study) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #study} (Study identity and locating information of the DICOM SOP instances in the selection.) + */ + // syntactic sugar + public StudyComponent addStudy() { //3 + StudyComponent t = new StudyComponent(); + if (this.study == null) + this.study = new ArrayList(); + this.study.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("uid", "oid", "Instance UID of the DICOM KOS SOP Instances represenetd in this resource.", 0, java.lang.Integer.MAX_VALUE, uid)); + childrenList.add(new Property("patient", "Reference(Patient)", "A patient resource reference which is the patient subject of all DICOM SOP Instances in this key object selection.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("title", "CodeableConcept", "The reason for, or significance of, the selection of objects referenced in the resource.", 0, java.lang.Integer.MAX_VALUE, title)); + childrenList.add(new Property("description", "string", "Text description of the DICOM SOP instances selected in the key object selection. This should be aligned with the content of the title element, and can provide further explanation of the SOP instances in the selection.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("author", "Reference(Practitioner|Device|Organization|Patient|RelatedPerson)", "Author of key object selection. It can be a human authtor or a device which made the decision of the SOP instances selected. For example, a radiologist selected a set of imaging SOP instances to attached in a diagnostic report, and a CAD application may author a selection to describe SOP instances it used to generate a detection conclusion.", 0, java.lang.Integer.MAX_VALUE, author)); + childrenList.add(new Property("authoringTime", "dateTime", "Date and time when the key object selection was authored. Note that this is the date and time the DICOM SOP instances in the selection were selected (selection decision making). It is different from the creation date and time of the selection resource.", 0, java.lang.Integer.MAX_VALUE, authoringTime)); + childrenList.add(new Property("study", "", "Study identity and locating information of the DICOM SOP instances in the selection.", 0, java.lang.Integer.MAX_VALUE, study)); + } + + public ImagingObjectSelection copy() { + ImagingObjectSelection dst = new ImagingObjectSelection(); + copyValues(dst); + dst.uid = uid == null ? null : uid.copy(); + dst.patient = patient == null ? null : patient.copy(); + dst.title = title == null ? null : title.copy(); + dst.description = description == null ? null : description.copy(); + dst.author = author == null ? null : author.copy(); + dst.authoringTime = authoringTime == null ? null : authoringTime.copy(); + if (study != null) { + dst.study = new ArrayList(); + for (StudyComponent i : study) + dst.study.add(i.copy()); + }; + return dst; + } + + protected ImagingObjectSelection typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ImagingObjectSelection)) + return false; + ImagingObjectSelection o = (ImagingObjectSelection) other; + return compareDeep(uid, o.uid, true) && compareDeep(patient, o.patient, true) && compareDeep(title, o.title, true) + && compareDeep(description, o.description, true) && compareDeep(author, o.author, true) && compareDeep(authoringTime, o.authoringTime, true) + && compareDeep(study, o.study, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ImagingObjectSelection)) + return false; + ImagingObjectSelection o = (ImagingObjectSelection) other; + return compareValues(uid, o.uid, true) && compareValues(description, o.description, true) && compareValues(authoringTime, o.authoringTime, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (uid == null || uid.isEmpty()) && (patient == null || patient.isEmpty()) + && (title == null || title.isEmpty()) && (description == null || description.isEmpty()) && (author == null || author.isEmpty()) + && (authoringTime == null || authoringTime.isEmpty()) && (study == null || study.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.ImagingObjectSelection; + } + + @SearchParamDefinition(name="selected-study", path="ImagingObjectSelection.study.uid", description="Study selected in key DICOM object selection", type="token" ) + public static final String SP_SELECTEDSTUDY = "selected-study"; + @SearchParamDefinition(name="author", path="ImagingObjectSelection.author", description="Author of key DICOM object selection", type="reference" ) + public static final String SP_AUTHOR = "author"; + @SearchParamDefinition(name="title", path="ImagingObjectSelection.title", description="Title of key DICOM object selection", type="token" ) + public static final String SP_TITLE = "title"; + @SearchParamDefinition(name="patient", path="ImagingObjectSelection.patient", description="Subject of key DICOM object selection", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="authoring-time", path="ImagingObjectSelection.authoringTime", description="Time of key DICOM object selection authoring", type="date" ) + public static final String SP_AUTHORINGTIME = "authoring-time"; + @SearchParamDefinition(name="identifier", path="ImagingObjectSelection.uid", description="UID of key DICOM object selection", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$1.class new file mode 100644 index 0000000000000000000000000000000000000000..0a4505ce932d4204351eb43c34bb1c8791bf43c8 GIT binary patch literal 5365 zcmd^@dvp|69mjun?o2ib8wd~};TgyR39kSFT3TqcNfubi%WOzNKv|NMENl`?0+ALJ z1*=q06sko*v7i+NXG6)G+CK?}9t@22C8M?44k%X2&@`F!tZ zcIM8`?0jb@dG6i42Sg-C4M~)b$$|u_k;f7+dYrn@Ba0{>Cq6+eCO%1gidaG{B|c3& zL41bzEU}DulK334oLE78p7;W>lK3L=C1Mq^ns|!%GVvASX<`lWRpM*JT4EjXb>bVu zdg7bJGsFgBBk?Wb+r+cPcZf~IcZu&2n~5#N_lX}6TZwInvR!uY)a*>a=!evW9PJ{0 zMC?wKJ+hap{5S!leN?QnNA?p3h=ar-;wQvUiNnMZ;%CIqiC+-EB#si#5ziCHh~vZy z#EZlU;#b74iIc=B;y1)^iQf^wCr%SD5q}`g5NC;V#2-C!-Xj;3=#7c~uKsDXOmuM#5LkN@jCGa@h0&Waf5i9c!#)2+#=p3{s|}{6k!pXunC8VBRoVr zkw7F8Z3r)sM6@N^5y?b*q65*9NFh2Aorx|)Dv?HXCAtyai5^5xq8E`aFMCvPoHv!> zl_<`e@~OUF)sN^;WU9U%mBkeXdS!O(#Hv9!PsA(48^o)`Ys7Wpb>dAxrE~Na@iy@e zag(@3ybCBHG+_}o;Sg~|JmDb*6A45j(UwRel8N?2D$$MTLG&bgsXe*jU}DB-va+B{OGNS2iihywe$#47<}+eXZJK zhH>-5(Rq9qqcXFm7T)z-58}??FH@3pPn&w`8>%98;b^SHxW8EbNoaCj!K4tzd03$H ziV85y#~!Twa-d*5F&VD}@-ftbQmz^x#uot-@(FGeEK%YFD@wST9jxG#dSZYRO~fm@ zFi?zPAvY}IoJD-47*psHe~hu+m6UQpX>36$Cc+r^8mokFrIcH6p;gNFQx@PfW#b5p z;>yYkN3HrCUIvv6q_N$orPj=Cxkud zP;AO_P98fg6@H8+$ADuUd&i$x@V2+%l-n=PyQ_=gc5~puh$|^B3>M?SAHMU8j^nP~ZpvF(y)#hw_`IH+UP1C28p5A_&LfW{k5geJFIyA8e7>Rx)Q^^@ocX8X4EMC0w~ zZHy<=y~f+qlZ938-p+UmJ=u6CdVAxY=^c!Bp?5T%N>4GKM(v@qr4KSbj6T@-aQYDAIrMDfBj`ho zkE9PXK8ilv__ZWsKF*(GD$PC*}nx}AbP40T%q&4sp< zWViTZljLm|{N(SF0(TN<0P0Qx9S3zMfsTi|O@mH=xt52l2TECF) z78C0i(cNOgi|KAL;U#ppnDA1%TTJ)|>25LMWpuZg@DSZCCcK>P785>+?iLeXL3fJ@ ze}wK96F!;l785>&?iLgNA-Y>k_*A-EO!zdqTTJ+Lx?4>6hv{xH;UA&9#e~nGyTycu z>25LMGwE(I;gxi^nD8pPTTFO0-7O~kQMy}9_$+!$F}KNdNstujB95d=hV(=Bm*FxJ zIZFIefDA~fgplPjLn@I~_pv?o@}=VdN2YLY+jOQs>nLIYOSdl=a;J63I*dGGov=?AwQ?vCtXXW4_0gYD7w801(xXcr=j>?!s%W#8eaQXJQRf))xO3V$gX_(bkK!q(EuL${R=V73)@yLxHQ>SL zr0jjfgKN6zHYnz@|07h~<{aE^S?pZ>51$u&%uV>XEtx0tk+w90f5LAcjB9Ag@%Z0e Vv-~AD4ga8PR(+6rkOOkl-UBbD4?6$= literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$ImagingModality.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$ImagingModality.class new file mode 100644 index 0000000000000000000000000000000000000000..98301d3c0be75bea33c97253d3e7948823908742 GIT binary patch literal 6530 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 WeyvJ>KLz8p%CJh;#XY?jyMSdHhDF^QG{+X#)3{ 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$InstanceAvailabilityEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$InstanceAvailabilityEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..277567ef7b3abf99c524d08deeced72e0dbdc79f GIT binary patch literal 1932 zcmbtUYj4w57=F%a8ei&+)@#Sgr7cis(hM?Mpxatn+>$`HkTNom*f%#d!Qj}L>%c1Q zk4&0&AKRo2%tfsP(uOo?ANHfBy(bQ-yJp>oM#_6Re(&#d&R>5&{|&%2Dk_F?QpPD2 zIlL|7w1Oc_$(R=WjEu8_pOY~o_&XBbmGGX5lyI39d``xB!RJ+ISdei+!lH^du_VYv z33&;ZBwS`l&e^UV%ro?)GdCC#OWvx*u&-phR=HVUvHXwB6^BmbTfSG1J`NV$wZL?% zmT}Lt9dpHY>|mWiE4r@bFFEGgnzhDINtf=J_spDQy0u&-@NKs?n<;sIEqB|Q$=$kb z`#HNECs(JWPOextYh+aknyc&M-Ezz_q$+_~y?e!Mw98WSpH{6#V0$j5Oa@+5A?4m% zqRh_P8OGxs<=tkT`q|Oqzsx#~ZyB~c8I+1$bIqXX({MkF#aUjtV^xFMT^kS~3T8F% z{PnqA4gY_n^E6bo;x+xMRj|dP2jV`bMA;e+;t&HQ6g9k$4`|TKwDYk8xASnmlt1<`EU9Z`;qF+U%7c9NoNaEPW5qb)T!Ek_H++N~@a-xSx zJ4~DakKV~mu*W1Yj1WzVL;eL(T0VHo^baIR0vg#rq3Jxkfu7Hy$CX|d>WS!FdV=0i zPj(b3)a8z%gu2>M`ob5`ZoWY3<|ba#_idn`KK1JZL^hyr;`QGtCvR0XMK3(~mq_ui zaDab}L;M>Y=ieg3zrz&&9_RQESl|z^#D7GI|AedjXB;DM1yV|58vQU%YJ%F*=uhA# zDyHC30?}GFOJzSmQcr{=NkU2rNfDAPq&^|3p*|Rrc~sR2iVyw^B>pQ@{tyHF5e9jP zgZwc@_!Fw|DboB|tCA!Vs-h_U1|^?pCqL3ou1scMVrTq-~y@ lq&e;1VH@kP2borplgPICTZ98ZC;uTB7`re`s4!4~@(-s?^0EK` literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$Modality.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$Modality.class new file mode 100644 index 0000000000000000000000000000000000000000..e49913c267ceb4df30fa368b32c31e1c4d1c032d GIT binary patch literal 8551 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$ModalityEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy$ModalityEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..e60b8fa72b1c0780fd52ddcead8bb9de32b605a0 GIT binary patch literal 4737 zcmbW533L@j7KZ=Z>6=u-V=MMOAV|U%0om6OLI@-zBq1yc`bZujki6jIML<+gQBgrf zL<9u|6;u=okwrij6&2S}M;%8Ubr^S0P!SQusrw!@VRSf0b58pI{@c}6)l2=|=e=}t z`z`=osX+o}<2Hrc6R-$(C@hZ04BV-(MD#9&rJ{E$EE8R>aF6J{3M)icD%>Y}zrrff z)d~-YKB(}J=o*E!q7N%PBKoMpI?=}z9v5A&utC%)Y!rP$VUy^S3Y$f@C~Otortp;L zc7+|HI~AT5-KDTwbdSPb(PtE%6@5-&pXl=nFNnUVuwV2gg_lKNQFvAKHHFtj|EBPU z=$i^}iT+*TZP9lW-WC0a!h53sRCr(X1BDMo|E2Je=*J45i2hsQfare|J{A2;;d9Y1 z6uuPwO5tnKg9?X4zft&B^svGa(eD(#7yUuusOXOh$3%ZpI4=6L!U@q|;_z!6P9~s2 zZryKI35rP6NkEWd6uEH}n}91QPBtoz;^U}V9Qg>beM^I-;r@h}q~t<^n^sXAAk@q% z4F*P3mQM_X3j7nxY(-59Rg_0}s_cqle_3gG7QvSp35U4_D!80^+E;k7`g&f|Hu(!(yr>G|Go1Lhhi!qw;-N z8mSJ-^kJD$%%JSSKHL*2rrCp5M5(}s`yw^OFG&|5HF>Yp|%x<%A%|18exZjRwyPX)#AP=%1AFn_UGjKus>SNwfkQ_ zg?9g|r?Ak6*P~5s@r?-O+V0)t=e`aVoDMFFh?M&t9!hPx<_Uyiqdw&&9{&%Sc}e zI{9|;Uq_4Cc6NuNMN8jCi!zfVkz#>8=KBcAH9i`l!c-rQMQDtr<59A=>x59NGbPWmyvHoSx`e)mmpxFuKqQZO=8% z|2sH(b?kExxUAA&X7jFI)o?nMA<5$iUH?Kp*lzvPrUinn_&Zwhw*sUL{Il<-zrJxx(rqG2`zDj{Qx0cX}?C;s!b}ponu`yt2VU2?Y4q8S|H4| z+gK^OU)im_v2diRdmOGMIEUIl51)40Z$Zp5=&FXvXg6Aqdjf29tY_kkR-TDBI>9s5 zjP`k^y3sW}Q`6{Lo~doL_Dmh4>w2c1(e*vk!03jaX=HR`&onW*sb`uQ-P|)Rj861S zOQTzP<~*ZYd!~)i=X<8D(Mg_3HoBc>+8f=$GaZfYwGP>9^0i!2*ro`yUo+&kYif5)8UFMl`vjf4gJ5VupE2inowjgA8h4gg0*@Ey^ zRPMHm!I33F+Yz*j;2^5IhtSyl22I^>(Z)TDWcLWVxZk0>`#lD@KOoILiY)g>knQ zBkInLsW&&FG;T^6+>CO$ITdgV8qbO3=aw{uTTzhDqZ!kvJn%mPl?m!#3BW>eOw3Ab4A74QGxih`VUFaR|N+0osbb!0jLGDh6xd$ERp7bmC za$>o+lfZqPI^5T3!2O&=?(ekb0ZvCA=yc{(r#BCB`g59-!GoRQobD9x5N8Z$IDQ`L z1USx1XFiW`7I2QUgmax`JknXsdCnTncQ$Z=vx!GJJGs!=!=s)3 zJjQvI$KrZ>7ki_p{V?cbeZJ}C1b%eA~J)ycn4TS0oH4)J~|QPzRwDp-w`bg)R{4D%3@&o6v@F-u6jXcK&%v|i?Yp{#2wE=S-UgUXrov*hca|7Pv8}R|p#{s?x zpYhE&#JAuuFTgQgh@bgZBEF4WzMZP^BC5f6P(5Bu4f#%L!AqzW-(^E*DRtnxsVgtD z!LywD@jWz<@3q0Rf`;)*8p-$B@VTEZ;#D+(S5tr=pvn9oRq#U;;x#mj*V2{zFkQ!w z&<*@3E#!4{J3mHC`Egp#>uD8lpabdsNOn4fhNKj+lseU9emBVo}4-4f#e z!e6aan-4cd^TB>~Me+gh?b`3bj4hZc&%{~ZSGM^zxY;(7PqF5wn#anw#H`=7tr9{p gxFzy*Ex^Kv-iqt2N*v7~#pF literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy.class new file mode 100644 index 0000000000000000000000000000000000000000..9e21e227c9bdf8b54d9ed1b0724d09ccc33acee3 GIT binary patch literal 26229 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ImagingStudy.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy.java similarity index 87% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ImagingStudy.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy.java index 3e28b686691..822cbac2926 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ImagingStudy.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImagingStudy.java @@ -1,3493 +1,3531 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Representation of the content produced in a DICOM imaging study. A study comprises a set of Series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context. A Series is of only one modality (e.g., X-ray, CT, MR, ultrasound), but a Study may have multiple Series of different modalities. - */ -@ResourceDef(name="ImagingStudy", profile="http://hl7.org/fhir/Profile/ImagingStudy") -public class ImagingStudy extends DomainResource { - - public enum ImagingModality implements FhirEnum { - /** - * - */ - AR, - /** - * - */ - BMD, - /** - * - */ - BDUS, - /** - * - */ - EPS, - /** - * - */ - CR, - /** - * - */ - CT, - /** - * - */ - DX, - /** - * - */ - ECG, - /** - * - */ - ES, - /** - * - */ - XC, - /** - * - */ - GM, - /** - * - */ - HD, - /** - * - */ - IO, - /** - * - */ - IVOCT, - /** - * - */ - IVUS, - /** - * - */ - KER, - /** - * - */ - LEN, - /** - * - */ - MR, - /** - * - */ - MG, - /** - * - */ - NM, - /** - * - */ - OAM, - /** - * - */ - OCT, - /** - * - */ - OPM, - /** - * - */ - OP, - /** - * - */ - OPR, - /** - * - */ - OPT, - /** - * - */ - OPV, - /** - * - */ - PX, - /** - * - */ - PT, - /** - * - */ - RF, - /** - * - */ - RG, - /** - * - */ - SM, - /** - * - */ - SRF, - /** - * - */ - US, - /** - * - */ - VA, - /** - * - */ - XA, - /** - * added to help the parsers - */ - NULL; - - public static final ImagingModalityEnumFactory ENUM_FACTORY = new ImagingModalityEnumFactory(); - - public static ImagingModality fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("AR".equals(codeString)) - return AR; - if ("BMD".equals(codeString)) - return BMD; - if ("BDUS".equals(codeString)) - return BDUS; - if ("EPS".equals(codeString)) - return EPS; - if ("CR".equals(codeString)) - return CR; - if ("CT".equals(codeString)) - return CT; - if ("DX".equals(codeString)) - return DX; - if ("ECG".equals(codeString)) - return ECG; - if ("ES".equals(codeString)) - return ES; - if ("XC".equals(codeString)) - return XC; - if ("GM".equals(codeString)) - return GM; - if ("HD".equals(codeString)) - return HD; - if ("IO".equals(codeString)) - return IO; - if ("IVOCT".equals(codeString)) - return IVOCT; - if ("IVUS".equals(codeString)) - return IVUS; - if ("KER".equals(codeString)) - return KER; - if ("LEN".equals(codeString)) - return LEN; - if ("MR".equals(codeString)) - return MR; - if ("MG".equals(codeString)) - return MG; - if ("NM".equals(codeString)) - return NM; - if ("OAM".equals(codeString)) - return OAM; - if ("OCT".equals(codeString)) - return OCT; - if ("OPM".equals(codeString)) - return OPM; - if ("OP".equals(codeString)) - return OP; - if ("OPR".equals(codeString)) - return OPR; - if ("OPT".equals(codeString)) - return OPT; - if ("OPV".equals(codeString)) - return OPV; - if ("PX".equals(codeString)) - return PX; - if ("PT".equals(codeString)) - return PT; - if ("RF".equals(codeString)) - return RF; - if ("RG".equals(codeString)) - return RG; - if ("SM".equals(codeString)) - return SM; - if ("SRF".equals(codeString)) - return SRF; - if ("US".equals(codeString)) - return US; - if ("VA".equals(codeString)) - return VA; - if ("XA".equals(codeString)) - return XA; - throw new IllegalArgumentException("Unknown ImagingModality code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case AR: return "AR"; - case BMD: return "BMD"; - case BDUS: return "BDUS"; - case EPS: return "EPS"; - case CR: return "CR"; - case CT: return "CT"; - case DX: return "DX"; - case ECG: return "ECG"; - case ES: return "ES"; - case XC: return "XC"; - case GM: return "GM"; - case HD: return "HD"; - case IO: return "IO"; - case IVOCT: return "IVOCT"; - case IVUS: return "IVUS"; - case KER: return "KER"; - case LEN: return "LEN"; - case MR: return "MR"; - case MG: return "MG"; - case NM: return "NM"; - case OAM: return "OAM"; - case OCT: return "OCT"; - case OPM: return "OPM"; - case OP: return "OP"; - case OPR: return "OPR"; - case OPT: return "OPT"; - case OPV: return "OPV"; - case PX: return "PX"; - case PT: return "PT"; - case RF: return "RF"; - case RG: return "RG"; - case SM: return "SM"; - case SRF: return "SRF"; - case US: return "US"; - case VA: return "VA"; - case XA: return "XA"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case AR: return "http://nema.org/dicom/dcid"; - case BMD: return "http://nema.org/dicom/dcid"; - case BDUS: return "http://nema.org/dicom/dcid"; - case EPS: return "http://nema.org/dicom/dcid"; - case CR: return "http://nema.org/dicom/dcid"; - case CT: return "http://nema.org/dicom/dcid"; - case DX: return "http://nema.org/dicom/dcid"; - case ECG: return "http://nema.org/dicom/dcid"; - case ES: return "http://nema.org/dicom/dcid"; - case XC: return "http://nema.org/dicom/dcid"; - case GM: return "http://nema.org/dicom/dcid"; - case HD: return "http://nema.org/dicom/dcid"; - case IO: return "http://nema.org/dicom/dcid"; - case IVOCT: return "http://nema.org/dicom/dcid"; - case IVUS: return "http://nema.org/dicom/dcid"; - case KER: return "http://nema.org/dicom/dcid"; - case LEN: return "http://nema.org/dicom/dcid"; - case MR: return "http://nema.org/dicom/dcid"; - case MG: return "http://nema.org/dicom/dcid"; - case NM: return "http://nema.org/dicom/dcid"; - case OAM: return "http://nema.org/dicom/dcid"; - case OCT: return "http://nema.org/dicom/dcid"; - case OPM: return "http://nema.org/dicom/dcid"; - case OP: return "http://nema.org/dicom/dcid"; - case OPR: return "http://nema.org/dicom/dcid"; - case OPT: return "http://nema.org/dicom/dcid"; - case OPV: return "http://nema.org/dicom/dcid"; - case PX: return "http://nema.org/dicom/dcid"; - case PT: return "http://nema.org/dicom/dcid"; - case RF: return "http://nema.org/dicom/dcid"; - case RG: return "http://nema.org/dicom/dcid"; - case SM: return "http://nema.org/dicom/dcid"; - case SRF: return "http://nema.org/dicom/dcid"; - case US: return "http://nema.org/dicom/dcid"; - case VA: return "http://nema.org/dicom/dcid"; - case XA: return "http://nema.org/dicom/dcid"; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case AR: return ""; - case BMD: return ""; - case BDUS: return ""; - case EPS: return ""; - case CR: return ""; - case CT: return ""; - case DX: return ""; - case ECG: return ""; - case ES: return ""; - case XC: return ""; - case GM: return ""; - case HD: return ""; - case IO: return ""; - case IVOCT: return ""; - case IVUS: return ""; - case KER: return ""; - case LEN: return ""; - case MR: return ""; - case MG: return ""; - case NM: return ""; - case OAM: return ""; - case OCT: return ""; - case OPM: return ""; - case OP: return ""; - case OPR: return ""; - case OPT: return ""; - case OPV: return ""; - case PX: return ""; - case PT: return ""; - case RF: return ""; - case RG: return ""; - case SM: return ""; - case SRF: return ""; - case US: return ""; - case VA: return ""; - case XA: return ""; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case AR: return "AR"; - case BMD: return "BMD"; - case BDUS: return "BDUS"; - case EPS: return "EPS"; - case CR: return "CR"; - case CT: return "CT"; - case DX: return "DX"; - case ECG: return "ECG"; - case ES: return "ES"; - case XC: return "XC"; - case GM: return "GM"; - case HD: return "HD"; - case IO: return "IO"; - case IVOCT: return "IVOCT"; - case IVUS: return "IVUS"; - case KER: return "KER"; - case LEN: return "LEN"; - case MR: return "MR"; - case MG: return "MG"; - case NM: return "NM"; - case OAM: return "OAM"; - case OCT: return "OCT"; - case OPM: return "OPM"; - case OP: return "OP"; - case OPR: return "OPR"; - case OPT: return "OPT"; - case OPV: return "OPV"; - case PX: return "PX"; - case PT: return "PT"; - case RF: return "RF"; - case RG: return "RG"; - case SM: return "SM"; - case SRF: return "SRF"; - case US: return "US"; - case VA: return "VA"; - case XA: return "XA"; - default: return "?"; - } - } - } - - public static class ImagingModalityEnumFactory implements EnumFactory { - public ImagingModality fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("AR".equals(codeString)) - return ImagingModality.AR; - if ("BMD".equals(codeString)) - return ImagingModality.BMD; - if ("BDUS".equals(codeString)) - return ImagingModality.BDUS; - if ("EPS".equals(codeString)) - return ImagingModality.EPS; - if ("CR".equals(codeString)) - return ImagingModality.CR; - if ("CT".equals(codeString)) - return ImagingModality.CT; - if ("DX".equals(codeString)) - return ImagingModality.DX; - if ("ECG".equals(codeString)) - return ImagingModality.ECG; - if ("ES".equals(codeString)) - return ImagingModality.ES; - if ("XC".equals(codeString)) - return ImagingModality.XC; - if ("GM".equals(codeString)) - return ImagingModality.GM; - if ("HD".equals(codeString)) - return ImagingModality.HD; - if ("IO".equals(codeString)) - return ImagingModality.IO; - if ("IVOCT".equals(codeString)) - return ImagingModality.IVOCT; - if ("IVUS".equals(codeString)) - return ImagingModality.IVUS; - if ("KER".equals(codeString)) - return ImagingModality.KER; - if ("LEN".equals(codeString)) - return ImagingModality.LEN; - if ("MR".equals(codeString)) - return ImagingModality.MR; - if ("MG".equals(codeString)) - return ImagingModality.MG; - if ("NM".equals(codeString)) - return ImagingModality.NM; - if ("OAM".equals(codeString)) - return ImagingModality.OAM; - if ("OCT".equals(codeString)) - return ImagingModality.OCT; - if ("OPM".equals(codeString)) - return ImagingModality.OPM; - if ("OP".equals(codeString)) - return ImagingModality.OP; - if ("OPR".equals(codeString)) - return ImagingModality.OPR; - if ("OPT".equals(codeString)) - return ImagingModality.OPT; - if ("OPV".equals(codeString)) - return ImagingModality.OPV; - if ("PX".equals(codeString)) - return ImagingModality.PX; - if ("PT".equals(codeString)) - return ImagingModality.PT; - if ("RF".equals(codeString)) - return ImagingModality.RF; - if ("RG".equals(codeString)) - return ImagingModality.RG; - if ("SM".equals(codeString)) - return ImagingModality.SM; - if ("SRF".equals(codeString)) - return ImagingModality.SRF; - if ("US".equals(codeString)) - return ImagingModality.US; - if ("VA".equals(codeString)) - return ImagingModality.VA; - if ("XA".equals(codeString)) - return ImagingModality.XA; - throw new IllegalArgumentException("Unknown ImagingModality code '"+codeString+"'"); - } - public String toCode(ImagingModality code) throws IllegalArgumentException { - if (code == ImagingModality.AR) - return "AR"; - if (code == ImagingModality.BMD) - return "BMD"; - if (code == ImagingModality.BDUS) - return "BDUS"; - if (code == ImagingModality.EPS) - return "EPS"; - if (code == ImagingModality.CR) - return "CR"; - if (code == ImagingModality.CT) - return "CT"; - if (code == ImagingModality.DX) - return "DX"; - if (code == ImagingModality.ECG) - return "ECG"; - if (code == ImagingModality.ES) - return "ES"; - if (code == ImagingModality.XC) - return "XC"; - if (code == ImagingModality.GM) - return "GM"; - if (code == ImagingModality.HD) - return "HD"; - if (code == ImagingModality.IO) - return "IO"; - if (code == ImagingModality.IVOCT) - return "IVOCT"; - if (code == ImagingModality.IVUS) - return "IVUS"; - if (code == ImagingModality.KER) - return "KER"; - if (code == ImagingModality.LEN) - return "LEN"; - if (code == ImagingModality.MR) - return "MR"; - if (code == ImagingModality.MG) - return "MG"; - if (code == ImagingModality.NM) - return "NM"; - if (code == ImagingModality.OAM) - return "OAM"; - if (code == ImagingModality.OCT) - return "OCT"; - if (code == ImagingModality.OPM) - return "OPM"; - if (code == ImagingModality.OP) - return "OP"; - if (code == ImagingModality.OPR) - return "OPR"; - if (code == ImagingModality.OPT) - return "OPT"; - if (code == ImagingModality.OPV) - return "OPV"; - if (code == ImagingModality.PX) - return "PX"; - if (code == ImagingModality.PT) - return "PT"; - if (code == ImagingModality.RF) - return "RF"; - if (code == ImagingModality.RG) - return "RG"; - if (code == ImagingModality.SM) - return "SM"; - if (code == ImagingModality.SRF) - return "SRF"; - if (code == ImagingModality.US) - return "US"; - if (code == ImagingModality.VA) - return "VA"; - if (code == ImagingModality.XA) - return "XA"; - return "?"; - } - } - - public enum InstanceAvailability implements FhirEnum { - /** - * Resources are immediately available,. - */ - ONLINE, - /** - * Resources need to be retrieved by manual intervention. - */ - OFFLINE, - /** - * Resources need to be retrieved from relatively slow media. - */ - NEARLINE, - /** - * Resources cannot be retrieved. - */ - UNAVAILABLE, - /** - * added to help the parsers - */ - NULL; - - public static final InstanceAvailabilityEnumFactory ENUM_FACTORY = new InstanceAvailabilityEnumFactory(); - - public static InstanceAvailability fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("ONLINE".equals(codeString)) - return ONLINE; - if ("OFFLINE".equals(codeString)) - return OFFLINE; - if ("NEARLINE".equals(codeString)) - return NEARLINE; - if ("UNAVAILABLE".equals(codeString)) - return UNAVAILABLE; - throw new IllegalArgumentException("Unknown InstanceAvailability code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case ONLINE: return "ONLINE"; - case OFFLINE: return "OFFLINE"; - case NEARLINE: return "NEARLINE"; - case UNAVAILABLE: return "UNAVAILABLE"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case ONLINE: return "http://nema.org/dicom/dcid"; - case OFFLINE: return "http://nema.org/dicom/dcid"; - case NEARLINE: return "http://nema.org/dicom/dcid"; - case UNAVAILABLE: return "http://nema.org/dicom/dcid"; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case ONLINE: return "Resources are immediately available,."; - case OFFLINE: return "Resources need to be retrieved by manual intervention."; - case NEARLINE: return "Resources need to be retrieved from relatively slow media."; - case UNAVAILABLE: return "Resources cannot be retrieved."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case ONLINE: return "ONLINE"; - case OFFLINE: return "OFFLINE"; - case NEARLINE: return "NEARLINE"; - case UNAVAILABLE: return "UNAVAILABLE"; - default: return "?"; - } - } - } - - public static class InstanceAvailabilityEnumFactory implements EnumFactory { - public InstanceAvailability fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("ONLINE".equals(codeString)) - return InstanceAvailability.ONLINE; - if ("OFFLINE".equals(codeString)) - return InstanceAvailability.OFFLINE; - if ("NEARLINE".equals(codeString)) - return InstanceAvailability.NEARLINE; - if ("UNAVAILABLE".equals(codeString)) - return InstanceAvailability.UNAVAILABLE; - throw new IllegalArgumentException("Unknown InstanceAvailability code '"+codeString+"'"); - } - public String toCode(InstanceAvailability code) throws IllegalArgumentException { - if (code == InstanceAvailability.ONLINE) - return "ONLINE"; - if (code == InstanceAvailability.OFFLINE) - return "OFFLINE"; - if (code == InstanceAvailability.NEARLINE) - return "NEARLINE"; - if (code == InstanceAvailability.UNAVAILABLE) - return "UNAVAILABLE"; - return "?"; - } - } - - public enum Modality implements FhirEnum { - /** - * - */ - AR, - /** - * - */ - AU, - /** - * - */ - BDUS, - /** - * - */ - BI, - /** - * - */ - BMD, - /** - * - */ - CR, - /** - * - */ - CT, - /** - * - */ - DG, - /** - * - */ - DX, - /** - * - */ - ECG, - /** - * - */ - EPS, - /** - * - */ - ES, - /** - * - */ - GM, - /** - * - */ - HC, - /** - * - */ - HD, - /** - * - */ - IO, - /** - * - */ - IVOCT, - /** - * - */ - IVUS, - /** - * - */ - KER, - /** - * - */ - KO, - /** - * - */ - LEN, - /** - * - */ - LS, - /** - * - */ - MG, - /** - * - */ - MR, - /** - * - */ - NM, - /** - * - */ - OAM, - /** - * - */ - OCT, - /** - * - */ - OP, - /** - * - */ - OPM, - /** - * - */ - OPT, - /** - * - */ - OPV, - /** - * - */ - OT, - /** - * - */ - PR, - /** - * - */ - PT, - /** - * - */ - PX, - /** - * - */ - REG, - /** - * - */ - RF, - /** - * - */ - RG, - /** - * - */ - RTDOSE, - /** - * - */ - RTIMAGE, - /** - * - */ - RTPLAN, - /** - * - */ - RTRECORD, - /** - * - */ - RTSTRUCT, - /** - * - */ - SEG, - /** - * - */ - SM, - /** - * - */ - SMR, - /** - * - */ - SR, - /** - * - */ - SRF, - /** - * - */ - TG, - /** - * - */ - US, - /** - * - */ - VA, - /** - * - */ - XA, - /** - * - */ - XC, - /** - * added to help the parsers - */ - NULL; - - public static final ModalityEnumFactory ENUM_FACTORY = new ModalityEnumFactory(); - - public static Modality fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("AR".equals(codeString)) - return AR; - if ("AU".equals(codeString)) - return AU; - if ("BDUS".equals(codeString)) - return BDUS; - if ("BI".equals(codeString)) - return BI; - if ("BMD".equals(codeString)) - return BMD; - if ("CR".equals(codeString)) - return CR; - if ("CT".equals(codeString)) - return CT; - if ("DG".equals(codeString)) - return DG; - if ("DX".equals(codeString)) - return DX; - if ("ECG".equals(codeString)) - return ECG; - if ("EPS".equals(codeString)) - return EPS; - if ("ES".equals(codeString)) - return ES; - if ("GM".equals(codeString)) - return GM; - if ("HC".equals(codeString)) - return HC; - if ("HD".equals(codeString)) - return HD; - if ("IO".equals(codeString)) - return IO; - if ("IVOCT".equals(codeString)) - return IVOCT; - if ("IVUS".equals(codeString)) - return IVUS; - if ("KER".equals(codeString)) - return KER; - if ("KO".equals(codeString)) - return KO; - if ("LEN".equals(codeString)) - return LEN; - if ("LS".equals(codeString)) - return LS; - if ("MG".equals(codeString)) - return MG; - if ("MR".equals(codeString)) - return MR; - if ("NM".equals(codeString)) - return NM; - if ("OAM".equals(codeString)) - return OAM; - if ("OCT".equals(codeString)) - return OCT; - if ("OP".equals(codeString)) - return OP; - if ("OPM".equals(codeString)) - return OPM; - if ("OPT".equals(codeString)) - return OPT; - if ("OPV".equals(codeString)) - return OPV; - if ("OT".equals(codeString)) - return OT; - if ("PR".equals(codeString)) - return PR; - if ("PT".equals(codeString)) - return PT; - if ("PX".equals(codeString)) - return PX; - if ("REG".equals(codeString)) - return REG; - if ("RF".equals(codeString)) - return RF; - if ("RG".equals(codeString)) - return RG; - if ("RTDOSE".equals(codeString)) - return RTDOSE; - if ("RTIMAGE".equals(codeString)) - return RTIMAGE; - if ("RTPLAN".equals(codeString)) - return RTPLAN; - if ("RTRECORD".equals(codeString)) - return RTRECORD; - if ("RTSTRUCT".equals(codeString)) - return RTSTRUCT; - if ("SEG".equals(codeString)) - return SEG; - if ("SM".equals(codeString)) - return SM; - if ("SMR".equals(codeString)) - return SMR; - if ("SR".equals(codeString)) - return SR; - if ("SRF".equals(codeString)) - return SRF; - if ("TG".equals(codeString)) - return TG; - if ("US".equals(codeString)) - return US; - if ("VA".equals(codeString)) - return VA; - if ("XA".equals(codeString)) - return XA; - if ("XC".equals(codeString)) - return XC; - throw new IllegalArgumentException("Unknown Modality code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case AR: return "AR"; - case AU: return "AU"; - case BDUS: return "BDUS"; - case BI: return "BI"; - case BMD: return "BMD"; - case CR: return "CR"; - case CT: return "CT"; - case DG: return "DG"; - case DX: return "DX"; - case ECG: return "ECG"; - case EPS: return "EPS"; - case ES: return "ES"; - case GM: return "GM"; - case HC: return "HC"; - case HD: return "HD"; - case IO: return "IO"; - case IVOCT: return "IVOCT"; - case IVUS: return "IVUS"; - case KER: return "KER"; - case KO: return "KO"; - case LEN: return "LEN"; - case LS: return "LS"; - case MG: return "MG"; - case MR: return "MR"; - case NM: return "NM"; - case OAM: return "OAM"; - case OCT: return "OCT"; - case OP: return "OP"; - case OPM: return "OPM"; - case OPT: return "OPT"; - case OPV: return "OPV"; - case OT: return "OT"; - case PR: return "PR"; - case PT: return "PT"; - case PX: return "PX"; - case REG: return "REG"; - case RF: return "RF"; - case RG: return "RG"; - case RTDOSE: return "RTDOSE"; - case RTIMAGE: return "RTIMAGE"; - case RTPLAN: return "RTPLAN"; - case RTRECORD: return "RTRECORD"; - case RTSTRUCT: return "RTSTRUCT"; - case SEG: return "SEG"; - case SM: return "SM"; - case SMR: return "SMR"; - case SR: return "SR"; - case SRF: return "SRF"; - case TG: return "TG"; - case US: return "US"; - case VA: return "VA"; - case XA: return "XA"; - case XC: return "XC"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case AR: return "http://nema.org/dicom/dcid"; - case AU: return "http://nema.org/dicom/dcid"; - case BDUS: return "http://nema.org/dicom/dcid"; - case BI: return "http://nema.org/dicom/dcid"; - case BMD: return "http://nema.org/dicom/dcid"; - case CR: return "http://nema.org/dicom/dcid"; - case CT: return "http://nema.org/dicom/dcid"; - case DG: return "http://nema.org/dicom/dcid"; - case DX: return "http://nema.org/dicom/dcid"; - case ECG: return "http://nema.org/dicom/dcid"; - case EPS: return "http://nema.org/dicom/dcid"; - case ES: return "http://nema.org/dicom/dcid"; - case GM: return "http://nema.org/dicom/dcid"; - case HC: return "http://nema.org/dicom/dcid"; - case HD: return "http://nema.org/dicom/dcid"; - case IO: return "http://nema.org/dicom/dcid"; - case IVOCT: return "http://nema.org/dicom/dcid"; - case IVUS: return "http://nema.org/dicom/dcid"; - case KER: return "http://nema.org/dicom/dcid"; - case KO: return "http://nema.org/dicom/dcid"; - case LEN: return "http://nema.org/dicom/dcid"; - case LS: return "http://nema.org/dicom/dcid"; - case MG: return "http://nema.org/dicom/dcid"; - case MR: return "http://nema.org/dicom/dcid"; - case NM: return "http://nema.org/dicom/dcid"; - case OAM: return "http://nema.org/dicom/dcid"; - case OCT: return "http://nema.org/dicom/dcid"; - case OP: return "http://nema.org/dicom/dcid"; - case OPM: return "http://nema.org/dicom/dcid"; - case OPT: return "http://nema.org/dicom/dcid"; - case OPV: return "http://nema.org/dicom/dcid"; - case OT: return "http://nema.org/dicom/dcid"; - case PR: return "http://nema.org/dicom/dcid"; - case PT: return "http://nema.org/dicom/dcid"; - case PX: return "http://nema.org/dicom/dcid"; - case REG: return "http://nema.org/dicom/dcid"; - case RF: return "http://nema.org/dicom/dcid"; - case RG: return "http://nema.org/dicom/dcid"; - case RTDOSE: return "http://nema.org/dicom/dcid"; - case RTIMAGE: return "http://nema.org/dicom/dcid"; - case RTPLAN: return "http://nema.org/dicom/dcid"; - case RTRECORD: return "http://nema.org/dicom/dcid"; - case RTSTRUCT: return "http://nema.org/dicom/dcid"; - case SEG: return "http://nema.org/dicom/dcid"; - case SM: return "http://nema.org/dicom/dcid"; - case SMR: return "http://nema.org/dicom/dcid"; - case SR: return "http://nema.org/dicom/dcid"; - case SRF: return "http://nema.org/dicom/dcid"; - case TG: return "http://nema.org/dicom/dcid"; - case US: return "http://nema.org/dicom/dcid"; - case VA: return "http://nema.org/dicom/dcid"; - case XA: return "http://nema.org/dicom/dcid"; - case XC: return "http://nema.org/dicom/dcid"; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case AR: return ""; - case AU: return ""; - case BDUS: return ""; - case BI: return ""; - case BMD: return ""; - case CR: return ""; - case CT: return ""; - case DG: return ""; - case DX: return ""; - case ECG: return ""; - case EPS: return ""; - case ES: return ""; - case GM: return ""; - case HC: return ""; - case HD: return ""; - case IO: return ""; - case IVOCT: return ""; - case IVUS: return ""; - case KER: return ""; - case KO: return ""; - case LEN: return ""; - case LS: return ""; - case MG: return ""; - case MR: return ""; - case NM: return ""; - case OAM: return ""; - case OCT: return ""; - case OP: return ""; - case OPM: return ""; - case OPT: return ""; - case OPV: return ""; - case OT: return ""; - case PR: return ""; - case PT: return ""; - case PX: return ""; - case REG: return ""; - case RF: return ""; - case RG: return ""; - case RTDOSE: return ""; - case RTIMAGE: return ""; - case RTPLAN: return ""; - case RTRECORD: return ""; - case RTSTRUCT: return ""; - case SEG: return ""; - case SM: return ""; - case SMR: return ""; - case SR: return ""; - case SRF: return ""; - case TG: return ""; - case US: return ""; - case VA: return ""; - case XA: return ""; - case XC: return ""; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case AR: return "AR"; - case AU: return "AU"; - case BDUS: return "BDUS"; - case BI: return "BI"; - case BMD: return "BMD"; - case CR: return "CR"; - case CT: return "CT"; - case DG: return "DG"; - case DX: return "DX"; - case ECG: return "ECG"; - case EPS: return "EPS"; - case ES: return "ES"; - case GM: return "GM"; - case HC: return "HC"; - case HD: return "HD"; - case IO: return "IO"; - case IVOCT: return "IVOCT"; - case IVUS: return "IVUS"; - case KER: return "KER"; - case KO: return "KO"; - case LEN: return "LEN"; - case LS: return "LS"; - case MG: return "MG"; - case MR: return "MR"; - case NM: return "NM"; - case OAM: return "OAM"; - case OCT: return "OCT"; - case OP: return "OP"; - case OPM: return "OPM"; - case OPT: return "OPT"; - case OPV: return "OPV"; - case OT: return "OT"; - case PR: return "PR"; - case PT: return "PT"; - case PX: return "PX"; - case REG: return "REG"; - case RF: return "RF"; - case RG: return "RG"; - case RTDOSE: return "RTDOSE"; - case RTIMAGE: return "RTIMAGE"; - case RTPLAN: return "RTPLAN"; - case RTRECORD: return "RTRECORD"; - case RTSTRUCT: return "RTSTRUCT"; - case SEG: return "SEG"; - case SM: return "SM"; - case SMR: return "SMR"; - case SR: return "SR"; - case SRF: return "SRF"; - case TG: return "TG"; - case US: return "US"; - case VA: return "VA"; - case XA: return "XA"; - case XC: return "XC"; - default: return "?"; - } - } - } - - public static class ModalityEnumFactory implements EnumFactory { - public Modality fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("AR".equals(codeString)) - return Modality.AR; - if ("AU".equals(codeString)) - return Modality.AU; - if ("BDUS".equals(codeString)) - return Modality.BDUS; - if ("BI".equals(codeString)) - return Modality.BI; - if ("BMD".equals(codeString)) - return Modality.BMD; - if ("CR".equals(codeString)) - return Modality.CR; - if ("CT".equals(codeString)) - return Modality.CT; - if ("DG".equals(codeString)) - return Modality.DG; - if ("DX".equals(codeString)) - return Modality.DX; - if ("ECG".equals(codeString)) - return Modality.ECG; - if ("EPS".equals(codeString)) - return Modality.EPS; - if ("ES".equals(codeString)) - return Modality.ES; - if ("GM".equals(codeString)) - return Modality.GM; - if ("HC".equals(codeString)) - return Modality.HC; - if ("HD".equals(codeString)) - return Modality.HD; - if ("IO".equals(codeString)) - return Modality.IO; - if ("IVOCT".equals(codeString)) - return Modality.IVOCT; - if ("IVUS".equals(codeString)) - return Modality.IVUS; - if ("KER".equals(codeString)) - return Modality.KER; - if ("KO".equals(codeString)) - return Modality.KO; - if ("LEN".equals(codeString)) - return Modality.LEN; - if ("LS".equals(codeString)) - return Modality.LS; - if ("MG".equals(codeString)) - return Modality.MG; - if ("MR".equals(codeString)) - return Modality.MR; - if ("NM".equals(codeString)) - return Modality.NM; - if ("OAM".equals(codeString)) - return Modality.OAM; - if ("OCT".equals(codeString)) - return Modality.OCT; - if ("OP".equals(codeString)) - return Modality.OP; - if ("OPM".equals(codeString)) - return Modality.OPM; - if ("OPT".equals(codeString)) - return Modality.OPT; - if ("OPV".equals(codeString)) - return Modality.OPV; - if ("OT".equals(codeString)) - return Modality.OT; - if ("PR".equals(codeString)) - return Modality.PR; - if ("PT".equals(codeString)) - return Modality.PT; - if ("PX".equals(codeString)) - return Modality.PX; - if ("REG".equals(codeString)) - return Modality.REG; - if ("RF".equals(codeString)) - return Modality.RF; - if ("RG".equals(codeString)) - return Modality.RG; - if ("RTDOSE".equals(codeString)) - return Modality.RTDOSE; - if ("RTIMAGE".equals(codeString)) - return Modality.RTIMAGE; - if ("RTPLAN".equals(codeString)) - return Modality.RTPLAN; - if ("RTRECORD".equals(codeString)) - return Modality.RTRECORD; - if ("RTSTRUCT".equals(codeString)) - return Modality.RTSTRUCT; - if ("SEG".equals(codeString)) - return Modality.SEG; - if ("SM".equals(codeString)) - return Modality.SM; - if ("SMR".equals(codeString)) - return Modality.SMR; - if ("SR".equals(codeString)) - return Modality.SR; - if ("SRF".equals(codeString)) - return Modality.SRF; - if ("TG".equals(codeString)) - return Modality.TG; - if ("US".equals(codeString)) - return Modality.US; - if ("VA".equals(codeString)) - return Modality.VA; - if ("XA".equals(codeString)) - return Modality.XA; - if ("XC".equals(codeString)) - return Modality.XC; - throw new IllegalArgumentException("Unknown Modality code '"+codeString+"'"); - } - public String toCode(Modality code) throws IllegalArgumentException { - if (code == Modality.AR) - return "AR"; - if (code == Modality.AU) - return "AU"; - if (code == Modality.BDUS) - return "BDUS"; - if (code == Modality.BI) - return "BI"; - if (code == Modality.BMD) - return "BMD"; - if (code == Modality.CR) - return "CR"; - if (code == Modality.CT) - return "CT"; - if (code == Modality.DG) - return "DG"; - if (code == Modality.DX) - return "DX"; - if (code == Modality.ECG) - return "ECG"; - if (code == Modality.EPS) - return "EPS"; - if (code == Modality.ES) - return "ES"; - if (code == Modality.GM) - return "GM"; - if (code == Modality.HC) - return "HC"; - if (code == Modality.HD) - return "HD"; - if (code == Modality.IO) - return "IO"; - if (code == Modality.IVOCT) - return "IVOCT"; - if (code == Modality.IVUS) - return "IVUS"; - if (code == Modality.KER) - return "KER"; - if (code == Modality.KO) - return "KO"; - if (code == Modality.LEN) - return "LEN"; - if (code == Modality.LS) - return "LS"; - if (code == Modality.MG) - return "MG"; - if (code == Modality.MR) - return "MR"; - if (code == Modality.NM) - return "NM"; - if (code == Modality.OAM) - return "OAM"; - if (code == Modality.OCT) - return "OCT"; - if (code == Modality.OP) - return "OP"; - if (code == Modality.OPM) - return "OPM"; - if (code == Modality.OPT) - return "OPT"; - if (code == Modality.OPV) - return "OPV"; - if (code == Modality.OT) - return "OT"; - if (code == Modality.PR) - return "PR"; - if (code == Modality.PT) - return "PT"; - if (code == Modality.PX) - return "PX"; - if (code == Modality.REG) - return "REG"; - if (code == Modality.RF) - return "RF"; - if (code == Modality.RG) - return "RG"; - if (code == Modality.RTDOSE) - return "RTDOSE"; - if (code == Modality.RTIMAGE) - return "RTIMAGE"; - if (code == Modality.RTPLAN) - return "RTPLAN"; - if (code == Modality.RTRECORD) - return "RTRECORD"; - if (code == Modality.RTSTRUCT) - return "RTSTRUCT"; - if (code == Modality.SEG) - return "SEG"; - if (code == Modality.SM) - return "SM"; - if (code == Modality.SMR) - return "SMR"; - if (code == Modality.SR) - return "SR"; - if (code == Modality.SRF) - return "SRF"; - if (code == Modality.TG) - return "TG"; - if (code == Modality.US) - return "US"; - if (code == Modality.VA) - return "VA"; - if (code == Modality.XA) - return "XA"; - if (code == Modality.XC) - return "XC"; - return "?"; - } - } - - @Block() - public static class ImagingStudySeriesComponent extends BackboneElement { - /** - * The Numeric identifier of this series in the study. - */ - @Child(name="number", type={IntegerType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Numeric identifier of this series (0020,0011)", formalDefinition="The Numeric identifier of this series in the study." ) - protected IntegerType number; - - /** - * The modality of this series sequence. - */ - @Child(name="modality", type={CodeType.class}, order=2, min=1, max=1) - @Description(shortDefinition="The modality of the instances in the series (0008,0060)", formalDefinition="The modality of this series sequence." ) - protected Enumeration modality; - - /** - * Formal identifier for this series. - */ - @Child(name="uid", type={OidType.class}, order=3, min=1, max=1) - @Description(shortDefinition="Formal identifier for this series (0020,000E)", formalDefinition="Formal identifier for this series." ) - protected OidType uid; - - /** - * A description of the series. - */ - @Child(name="description", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="A description of the series (0008,103E)", formalDefinition="A description of the series." ) - protected StringType description; - - /** - * Sequence that contains attributes from the. - */ - @Child(name="numberOfInstances", type={IntegerType.class}, order=5, min=1, max=1) - @Description(shortDefinition="Number of Series Related Instances (0020,1209)", formalDefinition="Sequence that contains attributes from the." ) - protected IntegerType numberOfInstances; - - /** - * Availability of series (online, offline or nearline). - */ - @Child(name="availability", type={CodeType.class}, order=6, min=0, max=1) - @Description(shortDefinition="ONLINE | OFFLINE | NEARLINE | UNAVAILABLE (0008,0056)", formalDefinition="Availability of series (online, offline or nearline)." ) - protected Enumeration availability; - - /** - * WADO-RS URI where Series is available. - */ - @Child(name="url", type={UriType.class}, order=7, min=0, max=1) - @Description(shortDefinition="Retrieve URI (0008,1115 > 0008,1190)", formalDefinition="WADO-RS URI where Series is available." ) - protected UriType url; - - /** - * Body part examined. See DICOM Part 16 Annex L for the mapping from DICOM to Snomed. - */ - @Child(name="bodySite", type={Coding.class}, order=8, min=0, max=1) - @Description(shortDefinition="Body part examined (Map from 0018,0015)", formalDefinition="Body part examined. See DICOM Part 16 Annex L for the mapping from DICOM to Snomed." ) - protected Coding bodySite; - - /** - * The date when the series was started. - */ - @Child(name="dateTime", type={DateTimeType.class}, order=9, min=0, max=1) - @Description(shortDefinition="When the series started", formalDefinition="The date when the series was started." ) - protected DateTimeType dateTime; - - /** - * A single image taken from a patient. - */ - @Child(name="instance", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="A single instance taken from a patient (image or other)", formalDefinition="A single image taken from a patient." ) - protected List instance; - - private static final long serialVersionUID = -1442035574L; - - public ImagingStudySeriesComponent() { - super(); - } - - public ImagingStudySeriesComponent(Enumeration modality, OidType uid, IntegerType numberOfInstances) { - super(); - this.modality = modality; - this.uid = uid; - this.numberOfInstances = numberOfInstances; - } - - /** - * @return {@link #number} (The Numeric identifier of this series in the study.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value - */ - public IntegerType getNumberElement() { - if (this.number == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesComponent.number"); - else if (Configuration.doAutoCreate()) - this.number = new IntegerType(); - return this.number; - } - - public boolean hasNumberElement() { - return this.number != null && !this.number.isEmpty(); - } - - public boolean hasNumber() { - return this.number != null && !this.number.isEmpty(); - } - - /** - * @param value {@link #number} (The Numeric identifier of this series in the study.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value - */ - public ImagingStudySeriesComponent setNumberElement(IntegerType value) { - this.number = value; - return this; - } - - /** - * @return The Numeric identifier of this series in the study. - */ - public int getNumber() { - return this.number == null ? null : this.number.getValue(); - } - - /** - * @param value The Numeric identifier of this series in the study. - */ - public ImagingStudySeriesComponent setNumber(int value) { - if (value == -1) - this.number = null; - else { - if (this.number == null) - this.number = new IntegerType(); - this.number.setValue(value); - } - return this; - } - - /** - * @return {@link #modality} (The modality of this series sequence.). This is the underlying object with id, value and extensions. The accessor "getModality" gives direct access to the value - */ - public Enumeration getModalityElement() { - if (this.modality == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesComponent.modality"); - else if (Configuration.doAutoCreate()) - this.modality = new Enumeration(); - return this.modality; - } - - public boolean hasModalityElement() { - return this.modality != null && !this.modality.isEmpty(); - } - - public boolean hasModality() { - return this.modality != null && !this.modality.isEmpty(); - } - - /** - * @param value {@link #modality} (The modality of this series sequence.). This is the underlying object with id, value and extensions. The accessor "getModality" gives direct access to the value - */ - public ImagingStudySeriesComponent setModalityElement(Enumeration value) { - this.modality = value; - return this; - } - - /** - * @return The modality of this series sequence. - */ - public Modality getModality() { - return this.modality == null ? null : this.modality.getValue(); - } - - /** - * @param value The modality of this series sequence. - */ - public ImagingStudySeriesComponent setModality(Modality value) { - if (this.modality == null) - this.modality = new Enumeration(Modality.ENUM_FACTORY); - this.modality.setValue(value); - return this; - } - - /** - * @return {@link #uid} (Formal identifier for this series.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public OidType getUidElement() { - if (this.uid == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesComponent.uid"); - else if (Configuration.doAutoCreate()) - this.uid = new OidType(); - return this.uid; - } - - public boolean hasUidElement() { - return this.uid != null && !this.uid.isEmpty(); - } - - public boolean hasUid() { - return this.uid != null && !this.uid.isEmpty(); - } - - /** - * @param value {@link #uid} (Formal identifier for this series.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public ImagingStudySeriesComponent setUidElement(OidType value) { - this.uid = value; - return this; - } - - /** - * @return Formal identifier for this series. - */ - public String getUid() { - return this.uid == null ? null : this.uid.getValue(); - } - - /** - * @param value Formal identifier for this series. - */ - public ImagingStudySeriesComponent setUid(String value) { - if (this.uid == null) - this.uid = new OidType(); - this.uid.setValue(value); - return this; - } - - /** - * @return {@link #description} (A description of the series.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesComponent.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (A description of the series.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public ImagingStudySeriesComponent setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return A description of the series. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value A description of the series. - */ - public ImagingStudySeriesComponent setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #numberOfInstances} (Sequence that contains attributes from the.). This is the underlying object with id, value and extensions. The accessor "getNumberOfInstances" gives direct access to the value - */ - public IntegerType getNumberOfInstancesElement() { - if (this.numberOfInstances == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesComponent.numberOfInstances"); - else if (Configuration.doAutoCreate()) - this.numberOfInstances = new IntegerType(); - return this.numberOfInstances; - } - - public boolean hasNumberOfInstancesElement() { - return this.numberOfInstances != null && !this.numberOfInstances.isEmpty(); - } - - public boolean hasNumberOfInstances() { - return this.numberOfInstances != null && !this.numberOfInstances.isEmpty(); - } - - /** - * @param value {@link #numberOfInstances} (Sequence that contains attributes from the.). This is the underlying object with id, value and extensions. The accessor "getNumberOfInstances" gives direct access to the value - */ - public ImagingStudySeriesComponent setNumberOfInstancesElement(IntegerType value) { - this.numberOfInstances = value; - return this; - } - - /** - * @return Sequence that contains attributes from the. - */ - public int getNumberOfInstances() { - return this.numberOfInstances == null ? null : this.numberOfInstances.getValue(); - } - - /** - * @param value Sequence that contains attributes from the. - */ - public ImagingStudySeriesComponent setNumberOfInstances(int value) { - if (this.numberOfInstances == null) - this.numberOfInstances = new IntegerType(); - this.numberOfInstances.setValue(value); - return this; - } - - /** - * @return {@link #availability} (Availability of series (online, offline or nearline).). This is the underlying object with id, value and extensions. The accessor "getAvailability" gives direct access to the value - */ - public Enumeration getAvailabilityElement() { - if (this.availability == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesComponent.availability"); - else if (Configuration.doAutoCreate()) - this.availability = new Enumeration(); - return this.availability; - } - - public boolean hasAvailabilityElement() { - return this.availability != null && !this.availability.isEmpty(); - } - - public boolean hasAvailability() { - return this.availability != null && !this.availability.isEmpty(); - } - - /** - * @param value {@link #availability} (Availability of series (online, offline or nearline).). This is the underlying object with id, value and extensions. The accessor "getAvailability" gives direct access to the value - */ - public ImagingStudySeriesComponent setAvailabilityElement(Enumeration value) { - this.availability = value; - return this; - } - - /** - * @return Availability of series (online, offline or nearline). - */ - public InstanceAvailability getAvailability() { - return this.availability == null ? null : this.availability.getValue(); - } - - /** - * @param value Availability of series (online, offline or nearline). - */ - public ImagingStudySeriesComponent setAvailability(InstanceAvailability value) { - if (value == null) - this.availability = null; - else { - if (this.availability == null) - this.availability = new Enumeration(InstanceAvailability.ENUM_FACTORY); - this.availability.setValue(value); - } - return this; - } - - /** - * @return {@link #url} (WADO-RS URI where Series is available.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public UriType getUrlElement() { - if (this.url == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesComponent.url"); - else if (Configuration.doAutoCreate()) - this.url = new UriType(); - return this.url; - } - - public boolean hasUrlElement() { - return this.url != null && !this.url.isEmpty(); - } - - public boolean hasUrl() { - return this.url != null && !this.url.isEmpty(); - } - - /** - * @param value {@link #url} (WADO-RS URI where Series is available.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public ImagingStudySeriesComponent setUrlElement(UriType value) { - this.url = value; - return this; - } - - /** - * @return WADO-RS URI where Series is available. - */ - public String getUrl() { - return this.url == null ? null : this.url.getValue(); - } - - /** - * @param value WADO-RS URI where Series is available. - */ - public ImagingStudySeriesComponent setUrl(String value) { - if (Utilities.noString(value)) - this.url = null; - else { - if (this.url == null) - this.url = new UriType(); - this.url.setValue(value); - } - return this; - } - - /** - * @return {@link #bodySite} (Body part examined. See DICOM Part 16 Annex L for the mapping from DICOM to Snomed.) - */ - public Coding getBodySite() { - if (this.bodySite == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesComponent.bodySite"); - else if (Configuration.doAutoCreate()) - this.bodySite = new Coding(); - return this.bodySite; - } - - public boolean hasBodySite() { - return this.bodySite != null && !this.bodySite.isEmpty(); - } - - /** - * @param value {@link #bodySite} (Body part examined. See DICOM Part 16 Annex L for the mapping from DICOM to Snomed.) - */ - public ImagingStudySeriesComponent setBodySite(Coding value) { - this.bodySite = value; - return this; - } - - /** - * @return {@link #dateTime} (The date when the series was started.). This is the underlying object with id, value and extensions. The accessor "getDateTime" gives direct access to the value - */ - public DateTimeType getDateTimeElement() { - if (this.dateTime == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesComponent.dateTime"); - else if (Configuration.doAutoCreate()) - this.dateTime = new DateTimeType(); - return this.dateTime; - } - - public boolean hasDateTimeElement() { - return this.dateTime != null && !this.dateTime.isEmpty(); - } - - public boolean hasDateTime() { - return this.dateTime != null && !this.dateTime.isEmpty(); - } - - /** - * @param value {@link #dateTime} (The date when the series was started.). This is the underlying object with id, value and extensions. The accessor "getDateTime" gives direct access to the value - */ - public ImagingStudySeriesComponent setDateTimeElement(DateTimeType value) { - this.dateTime = value; - return this; - } - - /** - * @return The date when the series was started. - */ - public Date getDateTime() { - return this.dateTime == null ? null : this.dateTime.getValue(); - } - - /** - * @param value The date when the series was started. - */ - public ImagingStudySeriesComponent setDateTime(Date value) { - if (value == null) - this.dateTime = null; - else { - if (this.dateTime == null) - this.dateTime = new DateTimeType(); - this.dateTime.setValue(value); - } - return this; - } - - /** - * @return {@link #instance} (A single image taken from a patient.) - */ - public List getInstance() { - if (this.instance == null) - this.instance = new ArrayList(); - return this.instance; - } - - public boolean hasInstance() { - if (this.instance == null) - return false; - for (ImagingStudySeriesInstanceComponent item : this.instance) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #instance} (A single image taken from a patient.) - */ - // syntactic sugar - public ImagingStudySeriesInstanceComponent addInstance() { //3 - ImagingStudySeriesInstanceComponent t = new ImagingStudySeriesInstanceComponent(); - if (this.instance == null) - this.instance = new ArrayList(); - this.instance.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("number", "integer", "The Numeric identifier of this series in the study.", 0, java.lang.Integer.MAX_VALUE, number)); - childrenList.add(new Property("modality", "code", "The modality of this series sequence.", 0, java.lang.Integer.MAX_VALUE, modality)); - childrenList.add(new Property("uid", "oid", "Formal identifier for this series.", 0, java.lang.Integer.MAX_VALUE, uid)); - childrenList.add(new Property("description", "string", "A description of the series.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("numberOfInstances", "integer", "Sequence that contains attributes from the.", 0, java.lang.Integer.MAX_VALUE, numberOfInstances)); - childrenList.add(new Property("availability", "code", "Availability of series (online, offline or nearline).", 0, java.lang.Integer.MAX_VALUE, availability)); - childrenList.add(new Property("url", "uri", "WADO-RS URI where Series is available.", 0, java.lang.Integer.MAX_VALUE, url)); - childrenList.add(new Property("bodySite", "Coding", "Body part examined. See DICOM Part 16 Annex L for the mapping from DICOM to Snomed.", 0, java.lang.Integer.MAX_VALUE, bodySite)); - childrenList.add(new Property("dateTime", "dateTime", "The date when the series was started.", 0, java.lang.Integer.MAX_VALUE, dateTime)); - childrenList.add(new Property("instance", "", "A single image taken from a patient.", 0, java.lang.Integer.MAX_VALUE, instance)); - } - - public ImagingStudySeriesComponent copy() { - ImagingStudySeriesComponent dst = new ImagingStudySeriesComponent(); - copyValues(dst); - dst.number = number == null ? null : number.copy(); - dst.modality = modality == null ? null : modality.copy(); - dst.uid = uid == null ? null : uid.copy(); - dst.description = description == null ? null : description.copy(); - dst.numberOfInstances = numberOfInstances == null ? null : numberOfInstances.copy(); - dst.availability = availability == null ? null : availability.copy(); - dst.url = url == null ? null : url.copy(); - dst.bodySite = bodySite == null ? null : bodySite.copy(); - dst.dateTime = dateTime == null ? null : dateTime.copy(); - if (instance != null) { - dst.instance = new ArrayList(); - for (ImagingStudySeriesInstanceComponent i : instance) - dst.instance.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (number == null || number.isEmpty()) && (modality == null || modality.isEmpty()) - && (uid == null || uid.isEmpty()) && (description == null || description.isEmpty()) && (numberOfInstances == null || numberOfInstances.isEmpty()) - && (availability == null || availability.isEmpty()) && (url == null || url.isEmpty()) && (bodySite == null || bodySite.isEmpty()) - && (dateTime == null || dateTime.isEmpty()) && (instance == null || instance.isEmpty()); - } - - } - - @Block() - public static class ImagingStudySeriesInstanceComponent extends BackboneElement { - /** - * The number of this image in the series. - */ - @Child(name="number", type={IntegerType.class}, order=1, min=0, max=1) - @Description(shortDefinition="The number of this instance in the series (0020,0013)", formalDefinition="The number of this image in the series." ) - protected IntegerType number; - - /** - * Formal identifier for this image. - */ - @Child(name="uid", type={OidType.class}, order=2, min=1, max=1) - @Description(shortDefinition="Formal identifier for this instance (0008,0018)", formalDefinition="Formal identifier for this image." ) - protected OidType uid; - - /** - * DICOM Image type. - */ - @Child(name="sopclass", type={OidType.class}, order=3, min=1, max=1) - @Description(shortDefinition="DICOM class type (0008,0016)", formalDefinition="DICOM Image type." ) - protected OidType sopclass; - - /** - * The type of the instance. - */ - @Child(name="type", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Type of instance (image etc) (0004,1430)", formalDefinition="The type of the instance." ) - protected StringType type; - - /** - * The description of the instance. - */ - @Child(name="title", type={StringType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Description (0070,0080 | 0040,A043 > 0008,0104 | 0042,0010 | 0008,0008)", formalDefinition="The description of the instance." ) - protected StringType title; - - /** - * WADO-RS url where image is available. - */ - @Child(name="url", type={UriType.class}, order=6, min=0, max=1) - @Description(shortDefinition="WADO-RS service where instance is available (0008,1199 > 0008,1190)", formalDefinition="WADO-RS url where image is available." ) - protected UriType url; - - /** - * A FHIR resource with content for this instance. - */ - @Child(name="attachment", type={}, order=7, min=0, max=1) - @Description(shortDefinition="Content for this instance", formalDefinition="A FHIR resource with content for this instance." ) - protected Reference attachment; - - /** - * The actual object that is the target of the reference (A FHIR resource with content for this instance.) - */ - protected Resource attachmentTarget; - - private static final long serialVersionUID = -2008450480L; - - public ImagingStudySeriesInstanceComponent() { - super(); - } - - public ImagingStudySeriesInstanceComponent(OidType uid, OidType sopclass) { - super(); - this.uid = uid; - this.sopclass = sopclass; - } - - /** - * @return {@link #number} (The number of this image in the series.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value - */ - public IntegerType getNumberElement() { - if (this.number == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.number"); - else if (Configuration.doAutoCreate()) - this.number = new IntegerType(); - return this.number; - } - - public boolean hasNumberElement() { - return this.number != null && !this.number.isEmpty(); - } - - public boolean hasNumber() { - return this.number != null && !this.number.isEmpty(); - } - - /** - * @param value {@link #number} (The number of this image in the series.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value - */ - public ImagingStudySeriesInstanceComponent setNumberElement(IntegerType value) { - this.number = value; - return this; - } - - /** - * @return The number of this image in the series. - */ - public int getNumber() { - return this.number == null ? null : this.number.getValue(); - } - - /** - * @param value The number of this image in the series. - */ - public ImagingStudySeriesInstanceComponent setNumber(int value) { - if (value == -1) - this.number = null; - else { - if (this.number == null) - this.number = new IntegerType(); - this.number.setValue(value); - } - return this; - } - - /** - * @return {@link #uid} (Formal identifier for this image.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public OidType getUidElement() { - if (this.uid == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.uid"); - else if (Configuration.doAutoCreate()) - this.uid = new OidType(); - return this.uid; - } - - public boolean hasUidElement() { - return this.uid != null && !this.uid.isEmpty(); - } - - public boolean hasUid() { - return this.uid != null && !this.uid.isEmpty(); - } - - /** - * @param value {@link #uid} (Formal identifier for this image.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public ImagingStudySeriesInstanceComponent setUidElement(OidType value) { - this.uid = value; - return this; - } - - /** - * @return Formal identifier for this image. - */ - public String getUid() { - return this.uid == null ? null : this.uid.getValue(); - } - - /** - * @param value Formal identifier for this image. - */ - public ImagingStudySeriesInstanceComponent setUid(String value) { - if (this.uid == null) - this.uid = new OidType(); - this.uid.setValue(value); - return this; - } - - /** - * @return {@link #sopclass} (DICOM Image type.). This is the underlying object with id, value and extensions. The accessor "getSopclass" gives direct access to the value - */ - public OidType getSopclassElement() { - if (this.sopclass == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.sopclass"); - else if (Configuration.doAutoCreate()) - this.sopclass = new OidType(); - return this.sopclass; - } - - public boolean hasSopclassElement() { - return this.sopclass != null && !this.sopclass.isEmpty(); - } - - public boolean hasSopclass() { - return this.sopclass != null && !this.sopclass.isEmpty(); - } - - /** - * @param value {@link #sopclass} (DICOM Image type.). This is the underlying object with id, value and extensions. The accessor "getSopclass" gives direct access to the value - */ - public ImagingStudySeriesInstanceComponent setSopclassElement(OidType value) { - this.sopclass = value; - return this; - } - - /** - * @return DICOM Image type. - */ - public String getSopclass() { - return this.sopclass == null ? null : this.sopclass.getValue(); - } - - /** - * @param value DICOM Image type. - */ - public ImagingStudySeriesInstanceComponent setSopclass(String value) { - if (this.sopclass == null) - this.sopclass = new OidType(); - this.sopclass.setValue(value); - return this; - } - - /** - * @return {@link #type} (The type of the instance.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public StringType getTypeElement() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new StringType(); - return this.type; - } - - public boolean hasTypeElement() { - return this.type != null && !this.type.isEmpty(); - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The type of the instance.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public ImagingStudySeriesInstanceComponent setTypeElement(StringType value) { - this.type = value; - return this; - } - - /** - * @return The type of the instance. - */ - public String getType() { - return this.type == null ? null : this.type.getValue(); - } - - /** - * @param value The type of the instance. - */ - public ImagingStudySeriesInstanceComponent setType(String value) { - if (Utilities.noString(value)) - this.type = null; - else { - if (this.type == null) - this.type = new StringType(); - this.type.setValue(value); - } - return this; - } - - /** - * @return {@link #title} (The description of the instance.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value - */ - public StringType getTitleElement() { - if (this.title == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.title"); - else if (Configuration.doAutoCreate()) - this.title = new StringType(); - return this.title; - } - - public boolean hasTitleElement() { - return this.title != null && !this.title.isEmpty(); - } - - public boolean hasTitle() { - return this.title != null && !this.title.isEmpty(); - } - - /** - * @param value {@link #title} (The description of the instance.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value - */ - public ImagingStudySeriesInstanceComponent setTitleElement(StringType value) { - this.title = value; - return this; - } - - /** - * @return The description of the instance. - */ - public String getTitle() { - return this.title == null ? null : this.title.getValue(); - } - - /** - * @param value The description of the instance. - */ - public ImagingStudySeriesInstanceComponent setTitle(String value) { - if (Utilities.noString(value)) - this.title = null; - else { - if (this.title == null) - this.title = new StringType(); - this.title.setValue(value); - } - return this; - } - - /** - * @return {@link #url} (WADO-RS url where image is available.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public UriType getUrlElement() { - if (this.url == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.url"); - else if (Configuration.doAutoCreate()) - this.url = new UriType(); - return this.url; - } - - public boolean hasUrlElement() { - return this.url != null && !this.url.isEmpty(); - } - - public boolean hasUrl() { - return this.url != null && !this.url.isEmpty(); - } - - /** - * @param value {@link #url} (WADO-RS url where image is available.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public ImagingStudySeriesInstanceComponent setUrlElement(UriType value) { - this.url = value; - return this; - } - - /** - * @return WADO-RS url where image is available. - */ - public String getUrl() { - return this.url == null ? null : this.url.getValue(); - } - - /** - * @param value WADO-RS url where image is available. - */ - public ImagingStudySeriesInstanceComponent setUrl(String value) { - if (Utilities.noString(value)) - this.url = null; - else { - if (this.url == null) - this.url = new UriType(); - this.url.setValue(value); - } - return this; - } - - /** - * @return {@link #attachment} (A FHIR resource with content for this instance.) - */ - public Reference getAttachment() { - if (this.attachment == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.attachment"); - else if (Configuration.doAutoCreate()) - this.attachment = new Reference(); - return this.attachment; - } - - public boolean hasAttachment() { - return this.attachment != null && !this.attachment.isEmpty(); - } - - /** - * @param value {@link #attachment} (A FHIR resource with content for this instance.) - */ - public ImagingStudySeriesInstanceComponent setAttachment(Reference value) { - this.attachment = value; - return this; - } - - /** - * @return {@link #attachment} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A FHIR resource with content for this instance.) - */ - public Resource getAttachmentTarget() { - return this.attachmentTarget; - } - - /** - * @param value {@link #attachment} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A FHIR resource with content for this instance.) - */ - public ImagingStudySeriesInstanceComponent setAttachmentTarget(Resource value) { - this.attachmentTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("number", "integer", "The number of this image in the series.", 0, java.lang.Integer.MAX_VALUE, number)); - childrenList.add(new Property("uid", "oid", "Formal identifier for this image.", 0, java.lang.Integer.MAX_VALUE, uid)); - childrenList.add(new Property("sopclass", "oid", "DICOM Image type.", 0, java.lang.Integer.MAX_VALUE, sopclass)); - childrenList.add(new Property("type", "string", "The type of the instance.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("title", "string", "The description of the instance.", 0, java.lang.Integer.MAX_VALUE, title)); - childrenList.add(new Property("url", "uri", "WADO-RS url where image is available.", 0, java.lang.Integer.MAX_VALUE, url)); - childrenList.add(new Property("attachment", "Reference(Any)", "A FHIR resource with content for this instance.", 0, java.lang.Integer.MAX_VALUE, attachment)); - } - - public ImagingStudySeriesInstanceComponent copy() { - ImagingStudySeriesInstanceComponent dst = new ImagingStudySeriesInstanceComponent(); - copyValues(dst); - dst.number = number == null ? null : number.copy(); - dst.uid = uid == null ? null : uid.copy(); - dst.sopclass = sopclass == null ? null : sopclass.copy(); - dst.type = type == null ? null : type.copy(); - dst.title = title == null ? null : title.copy(); - dst.url = url == null ? null : url.copy(); - dst.attachment = attachment == null ? null : attachment.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (number == null || number.isEmpty()) && (uid == null || uid.isEmpty()) - && (sopclass == null || sopclass.isEmpty()) && (type == null || type.isEmpty()) && (title == null || title.isEmpty()) - && (url == null || url.isEmpty()) && (attachment == null || attachment.isEmpty()); - } - - } - - /** - * Date and Time the study started. - */ - @Child(name="started", type={DateTimeType.class}, order=-1, min=0, max=1) - @Description(shortDefinition="When the study was started (0008,0020)+(0008,0030)", formalDefinition="Date and Time the study started." ) - protected DateTimeType started; - - /** - * The patient for whom the images are of. - */ - @Child(name="patient", type={Patient.class}, order=0, min=1, max=1) - @Description(shortDefinition="Who the images are of", formalDefinition="The patient for whom the images are of." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (The patient for whom the images are of.) - */ - protected Patient patientTarget; - - /** - * Formal identifier for the study. - */ - @Child(name="uid", type={OidType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Formal identifier for the study (0020,000D)", formalDefinition="Formal identifier for the study." ) - protected OidType uid; - - /** - * Accession Number. - */ - @Child(name="accession", type={Identifier.class}, order=2, min=0, max=1) - @Description(shortDefinition="Accession Number (0008,0050)", formalDefinition="Accession Number." ) - protected Identifier accession; - - /** - * Other identifiers for the study. - */ - @Child(name="identifier", type={Identifier.class}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Other identifiers for the study (0020,0010)", formalDefinition="Other identifiers for the study." ) - protected List identifier; - - /** - * A list of the diagnostic orders that resulted in this imaging study being performed. - */ - @Child(name="order", type={DiagnosticOrder.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Order(s) that caused this study to be performed", formalDefinition="A list of the diagnostic orders that resulted in this imaging study being performed." ) - protected List order; - /** - * The actual objects that are the target of the reference (A list of the diagnostic orders that resulted in this imaging study being performed.) - */ - protected List orderTarget; - - - /** - * A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19). - */ - @Child(name="modalityList", type={CodeType.class}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="All series.modality if actual acquisition modalities", formalDefinition="A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19)." ) - protected List> modalityList; - - /** - * The requesting/referring physician. - */ - @Child(name="referrer", type={Practitioner.class}, order=6, min=0, max=1) - @Description(shortDefinition="Referring physician (0008,0090)", formalDefinition="The requesting/referring physician." ) - protected Reference referrer; - - /** - * The actual object that is the target of the reference (The requesting/referring physician.) - */ - protected Practitioner referrerTarget; - - /** - * Availability of study (online, offline or nearline). - */ - @Child(name="availability", type={CodeType.class}, order=7, min=0, max=1) - @Description(shortDefinition="ONLINE | OFFLINE | NEARLINE | UNAVAILABLE (0008,0056)", formalDefinition="Availability of study (online, offline or nearline)." ) - protected Enumeration availability; - - /** - * WADO-RS URI where Study is available. - */ - @Child(name="url", type={UriType.class}, order=8, min=0, max=1) - @Description(shortDefinition="Retrieve URI (0008,1190)", formalDefinition="WADO-RS URI where Study is available." ) - protected UriType url; - - /** - * Number of Series in Study. - */ - @Child(name="numberOfSeries", type={IntegerType.class}, order=9, min=1, max=1) - @Description(shortDefinition="Number of Study Related Series (0020,1206)", formalDefinition="Number of Series in Study." ) - protected IntegerType numberOfSeries; - - /** - * Number of SOP Instances in Study. - */ - @Child(name="numberOfInstances", type={IntegerType.class}, order=10, min=1, max=1) - @Description(shortDefinition="Number of Study Related Instances (0020,1208)", formalDefinition="Number of SOP Instances in Study." ) - protected IntegerType numberOfInstances; - - /** - * Diagnoses etc provided with request. - */ - @Child(name="clinicalInformation", type={StringType.class}, order=11, min=0, max=1) - @Description(shortDefinition="Diagnoses etc with request (0040,1002)", formalDefinition="Diagnoses etc provided with request." ) - protected StringType clinicalInformation; - - /** - * Type of procedure performed. - */ - @Child(name="procedure", type={Coding.class}, order=12, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Type of procedure performed (0008,1032)", formalDefinition="Type of procedure performed." ) - protected List procedure; - - /** - * Who read study and interpreted the images. - */ - @Child(name="interpreter", type={Practitioner.class}, order=13, min=0, max=1) - @Description(shortDefinition="Who interpreted images (0008,1060)", formalDefinition="Who read study and interpreted the images." ) - protected Reference interpreter; - - /** - * The actual object that is the target of the reference (Who read study and interpreted the images.) - */ - protected Practitioner interpreterTarget; - - /** - * Institution-generated description or classification of the Study (component) performed. - */ - @Child(name="description", type={StringType.class}, order=14, min=0, max=1) - @Description(shortDefinition="Institution-generated description (0008,1030)", formalDefinition="Institution-generated description or classification of the Study (component) performed." ) - protected StringType description; - - /** - * Each study has one or more series of image instances. - */ - @Child(name="series", type={}, order=15, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Each study has one or more series of instances", formalDefinition="Each study has one or more series of image instances." ) - protected List series; - - private static final long serialVersionUID = 712301092L; - - public ImagingStudy() { - super(); - } - - public ImagingStudy(Reference patient, OidType uid, IntegerType numberOfSeries, IntegerType numberOfInstances) { - super(); - this.patient = patient; - this.uid = uid; - this.numberOfSeries = numberOfSeries; - this.numberOfInstances = numberOfInstances; - } - - /** - * @return {@link #started} (Date and Time the study started.). This is the underlying object with id, value and extensions. The accessor "getStarted" gives direct access to the value - */ - public DateTimeType getStartedElement() { - if (this.started == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.started"); - else if (Configuration.doAutoCreate()) - this.started = new DateTimeType(); - return this.started; - } - - public boolean hasStartedElement() { - return this.started != null && !this.started.isEmpty(); - } - - public boolean hasStarted() { - return this.started != null && !this.started.isEmpty(); - } - - /** - * @param value {@link #started} (Date and Time the study started.). This is the underlying object with id, value and extensions. The accessor "getStarted" gives direct access to the value - */ - public ImagingStudy setStartedElement(DateTimeType value) { - this.started = value; - return this; - } - - /** - * @return Date and Time the study started. - */ - public Date getStarted() { - return this.started == null ? null : this.started.getValue(); - } - - /** - * @param value Date and Time the study started. - */ - public ImagingStudy setStarted(Date value) { - if (value == null) - this.started = null; - else { - if (this.started == null) - this.started = new DateTimeType(); - this.started.setValue(value); - } - return this; - } - - /** - * @return {@link #patient} (The patient for whom the images are of.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (The patient for whom the images are of.) - */ - public ImagingStudy setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient for whom the images are of.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient for whom the images are of.) - */ - public ImagingStudy setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #uid} (Formal identifier for the study.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public OidType getUidElement() { - if (this.uid == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.uid"); - else if (Configuration.doAutoCreate()) - this.uid = new OidType(); - return this.uid; - } - - public boolean hasUidElement() { - return this.uid != null && !this.uid.isEmpty(); - } - - public boolean hasUid() { - return this.uid != null && !this.uid.isEmpty(); - } - - /** - * @param value {@link #uid} (Formal identifier for the study.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value - */ - public ImagingStudy setUidElement(OidType value) { - this.uid = value; - return this; - } - - /** - * @return Formal identifier for the study. - */ - public String getUid() { - return this.uid == null ? null : this.uid.getValue(); - } - - /** - * @param value Formal identifier for the study. - */ - public ImagingStudy setUid(String value) { - if (this.uid == null) - this.uid = new OidType(); - this.uid.setValue(value); - return this; - } - - /** - * @return {@link #accession} (Accession Number.) - */ - public Identifier getAccession() { - if (this.accession == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.accession"); - else if (Configuration.doAutoCreate()) - this.accession = new Identifier(); - return this.accession; - } - - public boolean hasAccession() { - return this.accession != null && !this.accession.isEmpty(); - } - - /** - * @param value {@link #accession} (Accession Number.) - */ - public ImagingStudy setAccession(Identifier value) { - this.accession = value; - return this; - } - - /** - * @return {@link #identifier} (Other identifiers for the study.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Other identifiers for the study.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #order} (A list of the diagnostic orders that resulted in this imaging study being performed.) - */ - public List getOrder() { - if (this.order == null) - this.order = new ArrayList(); - return this.order; - } - - public boolean hasOrder() { - if (this.order == null) - return false; - for (Reference item : this.order) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #order} (A list of the diagnostic orders that resulted in this imaging study being performed.) - */ - // syntactic sugar - public Reference addOrder() { //3 - Reference t = new Reference(); - if (this.order == null) - this.order = new ArrayList(); - this.order.add(t); - return t; - } - - /** - * @return {@link #order} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A list of the diagnostic orders that resulted in this imaging study being performed.) - */ - public List getOrderTarget() { - if (this.orderTarget == null) - this.orderTarget = new ArrayList(); - return this.orderTarget; - } - - // syntactic sugar - /** - * @return {@link #order} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. A list of the diagnostic orders that resulted in this imaging study being performed.) - */ - public DiagnosticOrder addOrderTarget() { - DiagnosticOrder r = new DiagnosticOrder(); - if (this.orderTarget == null) - this.orderTarget = new ArrayList(); - this.orderTarget.add(r); - return r; - } - - /** - * @return {@link #modalityList} (A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).) - */ - public List> getModalityList() { - if (this.modalityList == null) - this.modalityList = new ArrayList>(); - return this.modalityList; - } - - public boolean hasModalityList() { - if (this.modalityList == null) - return false; - for (Enumeration item : this.modalityList) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #modalityList} (A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).) - */ - // syntactic sugar - public Enumeration addModalityListElement() {//2 - Enumeration t = new Enumeration(); - if (this.modalityList == null) - this.modalityList = new ArrayList>(); - this.modalityList.add(t); - return t; - } - - /** - * @param value {@link #modalityList} (A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).) - */ - public ImagingStudy addModalityList(ImagingModality value) { //1 - Enumeration t = new Enumeration(); - t.setValue(value); - if (this.modalityList == null) - this.modalityList = new ArrayList>(); - this.modalityList.add(t); - return this; - } - - /** - * @param value {@link #modalityList} (A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).) - */ - public boolean hasModalityList(ImagingModality value) { - if (this.modalityList == null) - return false; - for (Enumeration v : this.modalityList) - if (v.equals(value)) // code - return true; - return false; - } - - /** - * @return {@link #referrer} (The requesting/referring physician.) - */ - public Reference getReferrer() { - if (this.referrer == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.referrer"); - else if (Configuration.doAutoCreate()) - this.referrer = new Reference(); - return this.referrer; - } - - public boolean hasReferrer() { - return this.referrer != null && !this.referrer.isEmpty(); - } - - /** - * @param value {@link #referrer} (The requesting/referring physician.) - */ - public ImagingStudy setReferrer(Reference value) { - this.referrer = value; - return this; - } - - /** - * @return {@link #referrer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The requesting/referring physician.) - */ - public Practitioner getReferrerTarget() { - if (this.referrerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.referrer"); - else if (Configuration.doAutoCreate()) - this.referrerTarget = new Practitioner(); - return this.referrerTarget; - } - - /** - * @param value {@link #referrer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The requesting/referring physician.) - */ - public ImagingStudy setReferrerTarget(Practitioner value) { - this.referrerTarget = value; - return this; - } - - /** - * @return {@link #availability} (Availability of study (online, offline or nearline).). This is the underlying object with id, value and extensions. The accessor "getAvailability" gives direct access to the value - */ - public Enumeration getAvailabilityElement() { - if (this.availability == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.availability"); - else if (Configuration.doAutoCreate()) - this.availability = new Enumeration(); - return this.availability; - } - - public boolean hasAvailabilityElement() { - return this.availability != null && !this.availability.isEmpty(); - } - - public boolean hasAvailability() { - return this.availability != null && !this.availability.isEmpty(); - } - - /** - * @param value {@link #availability} (Availability of study (online, offline or nearline).). This is the underlying object with id, value and extensions. The accessor "getAvailability" gives direct access to the value - */ - public ImagingStudy setAvailabilityElement(Enumeration value) { - this.availability = value; - return this; - } - - /** - * @return Availability of study (online, offline or nearline). - */ - public InstanceAvailability getAvailability() { - return this.availability == null ? null : this.availability.getValue(); - } - - /** - * @param value Availability of study (online, offline or nearline). - */ - public ImagingStudy setAvailability(InstanceAvailability value) { - if (value == null) - this.availability = null; - else { - if (this.availability == null) - this.availability = new Enumeration(InstanceAvailability.ENUM_FACTORY); - this.availability.setValue(value); - } - return this; - } - - /** - * @return {@link #url} (WADO-RS URI where Study is available.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public UriType getUrlElement() { - if (this.url == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.url"); - else if (Configuration.doAutoCreate()) - this.url = new UriType(); - return this.url; - } - - public boolean hasUrlElement() { - return this.url != null && !this.url.isEmpty(); - } - - public boolean hasUrl() { - return this.url != null && !this.url.isEmpty(); - } - - /** - * @param value {@link #url} (WADO-RS URI where Study is available.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value - */ - public ImagingStudy setUrlElement(UriType value) { - this.url = value; - return this; - } - - /** - * @return WADO-RS URI where Study is available. - */ - public String getUrl() { - return this.url == null ? null : this.url.getValue(); - } - - /** - * @param value WADO-RS URI where Study is available. - */ - public ImagingStudy setUrl(String value) { - if (Utilities.noString(value)) - this.url = null; - else { - if (this.url == null) - this.url = new UriType(); - this.url.setValue(value); - } - return this; - } - - /** - * @return {@link #numberOfSeries} (Number of Series in Study.). This is the underlying object with id, value and extensions. The accessor "getNumberOfSeries" gives direct access to the value - */ - public IntegerType getNumberOfSeriesElement() { - if (this.numberOfSeries == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.numberOfSeries"); - else if (Configuration.doAutoCreate()) - this.numberOfSeries = new IntegerType(); - return this.numberOfSeries; - } - - public boolean hasNumberOfSeriesElement() { - return this.numberOfSeries != null && !this.numberOfSeries.isEmpty(); - } - - public boolean hasNumberOfSeries() { - return this.numberOfSeries != null && !this.numberOfSeries.isEmpty(); - } - - /** - * @param value {@link #numberOfSeries} (Number of Series in Study.). This is the underlying object with id, value and extensions. The accessor "getNumberOfSeries" gives direct access to the value - */ - public ImagingStudy setNumberOfSeriesElement(IntegerType value) { - this.numberOfSeries = value; - return this; - } - - /** - * @return Number of Series in Study. - */ - public int getNumberOfSeries() { - return this.numberOfSeries == null ? null : this.numberOfSeries.getValue(); - } - - /** - * @param value Number of Series in Study. - */ - public ImagingStudy setNumberOfSeries(int value) { - if (this.numberOfSeries == null) - this.numberOfSeries = new IntegerType(); - this.numberOfSeries.setValue(value); - return this; - } - - /** - * @return {@link #numberOfInstances} (Number of SOP Instances in Study.). This is the underlying object with id, value and extensions. The accessor "getNumberOfInstances" gives direct access to the value - */ - public IntegerType getNumberOfInstancesElement() { - if (this.numberOfInstances == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.numberOfInstances"); - else if (Configuration.doAutoCreate()) - this.numberOfInstances = new IntegerType(); - return this.numberOfInstances; - } - - public boolean hasNumberOfInstancesElement() { - return this.numberOfInstances != null && !this.numberOfInstances.isEmpty(); - } - - public boolean hasNumberOfInstances() { - return this.numberOfInstances != null && !this.numberOfInstances.isEmpty(); - } - - /** - * @param value {@link #numberOfInstances} (Number of SOP Instances in Study.). This is the underlying object with id, value and extensions. The accessor "getNumberOfInstances" gives direct access to the value - */ - public ImagingStudy setNumberOfInstancesElement(IntegerType value) { - this.numberOfInstances = value; - return this; - } - - /** - * @return Number of SOP Instances in Study. - */ - public int getNumberOfInstances() { - return this.numberOfInstances == null ? null : this.numberOfInstances.getValue(); - } - - /** - * @param value Number of SOP Instances in Study. - */ - public ImagingStudy setNumberOfInstances(int value) { - if (this.numberOfInstances == null) - this.numberOfInstances = new IntegerType(); - this.numberOfInstances.setValue(value); - return this; - } - - /** - * @return {@link #clinicalInformation} (Diagnoses etc provided with request.). This is the underlying object with id, value and extensions. The accessor "getClinicalInformation" gives direct access to the value - */ - public StringType getClinicalInformationElement() { - if (this.clinicalInformation == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.clinicalInformation"); - else if (Configuration.doAutoCreate()) - this.clinicalInformation = new StringType(); - return this.clinicalInformation; - } - - public boolean hasClinicalInformationElement() { - return this.clinicalInformation != null && !this.clinicalInformation.isEmpty(); - } - - public boolean hasClinicalInformation() { - return this.clinicalInformation != null && !this.clinicalInformation.isEmpty(); - } - - /** - * @param value {@link #clinicalInformation} (Diagnoses etc provided with request.). This is the underlying object with id, value and extensions. The accessor "getClinicalInformation" gives direct access to the value - */ - public ImagingStudy setClinicalInformationElement(StringType value) { - this.clinicalInformation = value; - return this; - } - - /** - * @return Diagnoses etc provided with request. - */ - public String getClinicalInformation() { - return this.clinicalInformation == null ? null : this.clinicalInformation.getValue(); - } - - /** - * @param value Diagnoses etc provided with request. - */ - public ImagingStudy setClinicalInformation(String value) { - if (Utilities.noString(value)) - this.clinicalInformation = null; - else { - if (this.clinicalInformation == null) - this.clinicalInformation = new StringType(); - this.clinicalInformation.setValue(value); - } - return this; - } - - /** - * @return {@link #procedure} (Type of procedure performed.) - */ - public List getProcedure() { - if (this.procedure == null) - this.procedure = new ArrayList(); - return this.procedure; - } - - public boolean hasProcedure() { - if (this.procedure == null) - return false; - for (Coding item : this.procedure) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #procedure} (Type of procedure performed.) - */ - // syntactic sugar - public Coding addProcedure() { //3 - Coding t = new Coding(); - if (this.procedure == null) - this.procedure = new ArrayList(); - this.procedure.add(t); - return t; - } - - /** - * @return {@link #interpreter} (Who read study and interpreted the images.) - */ - public Reference getInterpreter() { - if (this.interpreter == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.interpreter"); - else if (Configuration.doAutoCreate()) - this.interpreter = new Reference(); - return this.interpreter; - } - - public boolean hasInterpreter() { - return this.interpreter != null && !this.interpreter.isEmpty(); - } - - /** - * @param value {@link #interpreter} (Who read study and interpreted the images.) - */ - public ImagingStudy setInterpreter(Reference value) { - this.interpreter = value; - return this; - } - - /** - * @return {@link #interpreter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who read study and interpreted the images.) - */ - public Practitioner getInterpreterTarget() { - if (this.interpreterTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.interpreter"); - else if (Configuration.doAutoCreate()) - this.interpreterTarget = new Practitioner(); - return this.interpreterTarget; - } - - /** - * @param value {@link #interpreter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who read study and interpreted the images.) - */ - public ImagingStudy setInterpreterTarget(Practitioner value) { - this.interpreterTarget = value; - return this; - } - - /** - * @return {@link #description} (Institution-generated description or classification of the Study (component) performed.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImagingStudy.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Institution-generated description or classification of the Study (component) performed.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public ImagingStudy setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Institution-generated description or classification of the Study (component) performed. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Institution-generated description or classification of the Study (component) performed. - */ - public ImagingStudy setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #series} (Each study has one or more series of image instances.) - */ - public List getSeries() { - if (this.series == null) - this.series = new ArrayList(); - return this.series; - } - - public boolean hasSeries() { - if (this.series == null) - return false; - for (ImagingStudySeriesComponent item : this.series) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #series} (Each study has one or more series of image instances.) - */ - // syntactic sugar - public ImagingStudySeriesComponent addSeries() { //3 - ImagingStudySeriesComponent t = new ImagingStudySeriesComponent(); - if (this.series == null) - this.series = new ArrayList(); - this.series.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("started", "dateTime", "Date and Time the study started.", 0, java.lang.Integer.MAX_VALUE, started)); - childrenList.add(new Property("patient", "Reference(Patient)", "The patient for whom the images are of.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("uid", "oid", "Formal identifier for the study.", 0, java.lang.Integer.MAX_VALUE, uid)); - childrenList.add(new Property("accession", "Identifier", "Accession Number.", 0, java.lang.Integer.MAX_VALUE, accession)); - childrenList.add(new Property("identifier", "Identifier", "Other identifiers for the study.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("order", "Reference(DiagnosticOrder)", "A list of the diagnostic orders that resulted in this imaging study being performed.", 0, java.lang.Integer.MAX_VALUE, order)); - childrenList.add(new Property("modalityList", "code", "A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).", 0, java.lang.Integer.MAX_VALUE, modalityList)); - childrenList.add(new Property("referrer", "Reference(Practitioner)", "The requesting/referring physician.", 0, java.lang.Integer.MAX_VALUE, referrer)); - childrenList.add(new Property("availability", "code", "Availability of study (online, offline or nearline).", 0, java.lang.Integer.MAX_VALUE, availability)); - childrenList.add(new Property("url", "uri", "WADO-RS URI where Study is available.", 0, java.lang.Integer.MAX_VALUE, url)); - childrenList.add(new Property("numberOfSeries", "integer", "Number of Series in Study.", 0, java.lang.Integer.MAX_VALUE, numberOfSeries)); - childrenList.add(new Property("numberOfInstances", "integer", "Number of SOP Instances in Study.", 0, java.lang.Integer.MAX_VALUE, numberOfInstances)); - childrenList.add(new Property("clinicalInformation", "string", "Diagnoses etc provided with request.", 0, java.lang.Integer.MAX_VALUE, clinicalInformation)); - childrenList.add(new Property("procedure", "Coding", "Type of procedure performed.", 0, java.lang.Integer.MAX_VALUE, procedure)); - childrenList.add(new Property("interpreter", "Reference(Practitioner)", "Who read study and interpreted the images.", 0, java.lang.Integer.MAX_VALUE, interpreter)); - childrenList.add(new Property("description", "string", "Institution-generated description or classification of the Study (component) performed.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("series", "", "Each study has one or more series of image instances.", 0, java.lang.Integer.MAX_VALUE, series)); - } - - public ImagingStudy copy() { - ImagingStudy dst = new ImagingStudy(); - copyValues(dst); - dst.started = started == null ? null : started.copy(); - dst.patient = patient == null ? null : patient.copy(); - dst.uid = uid == null ? null : uid.copy(); - dst.accession = accession == null ? null : accession.copy(); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - if (order != null) { - dst.order = new ArrayList(); - for (Reference i : order) - dst.order.add(i.copy()); - }; - if (modalityList != null) { - dst.modalityList = new ArrayList>(); - for (Enumeration i : modalityList) - dst.modalityList.add(i.copy()); - }; - dst.referrer = referrer == null ? null : referrer.copy(); - dst.availability = availability == null ? null : availability.copy(); - dst.url = url == null ? null : url.copy(); - dst.numberOfSeries = numberOfSeries == null ? null : numberOfSeries.copy(); - dst.numberOfInstances = numberOfInstances == null ? null : numberOfInstances.copy(); - dst.clinicalInformation = clinicalInformation == null ? null : clinicalInformation.copy(); - if (procedure != null) { - dst.procedure = new ArrayList(); - for (Coding i : procedure) - dst.procedure.add(i.copy()); - }; - dst.interpreter = interpreter == null ? null : interpreter.copy(); - dst.description = description == null ? null : description.copy(); - if (series != null) { - dst.series = new ArrayList(); - for (ImagingStudySeriesComponent i : series) - dst.series.add(i.copy()); - }; - return dst; - } - - protected ImagingStudy typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (started == null || started.isEmpty()) && (patient == null || patient.isEmpty()) - && (uid == null || uid.isEmpty()) && (accession == null || accession.isEmpty()) && (identifier == null || identifier.isEmpty()) - && (order == null || order.isEmpty()) && (modalityList == null || modalityList.isEmpty()) - && (referrer == null || referrer.isEmpty()) && (availability == null || availability.isEmpty()) - && (url == null || url.isEmpty()) && (numberOfSeries == null || numberOfSeries.isEmpty()) - && (numberOfInstances == null || numberOfInstances.isEmpty()) && (clinicalInformation == null || clinicalInformation.isEmpty()) - && (procedure == null || procedure.isEmpty()) && (interpreter == null || interpreter.isEmpty()) - && (description == null || description.isEmpty()) && (series == null || series.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.ImagingStudy; - } - - @SearchParamDefinition(name="uid", path="ImagingStudy.series.instance.uid", description="Formal identifier for this instance (0008,0018)", type="token" ) - public static final String SP_UID = "uid"; - @SearchParamDefinition(name="series", path="ImagingStudy.series.uid", description="The series id for the image", type="token" ) - public static final String SP_SERIES = "series"; - @SearchParamDefinition(name="patient", path="ImagingStudy.patient", description="Who the study is about", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="bodysite", path="ImagingStudy.series.bodySite", description="Body part examined (Map from 0018,0015)", type="token" ) - public static final String SP_BODYSITE = "bodysite"; - @SearchParamDefinition(name="accession", path="ImagingStudy.accession", description="The accession id for the image", type="token" ) - public static final String SP_ACCESSION = "accession"; - @SearchParamDefinition(name="study", path="ImagingStudy.uid", description="The study id for the image", type="token" ) - public static final String SP_STUDY = "study"; - @SearchParamDefinition(name="modality", path="ImagingStudy.series.modality", description="The modality of the image", type="token" ) - public static final String SP_MODALITY = "modality"; - @SearchParamDefinition(name="started", path="ImagingStudy.started", description="When the study was started", type="date" ) - public static final String SP_STARTED = "started"; - @SearchParamDefinition(name="dicom-class", path="ImagingStudy.series.instance.sopclass", description="DICOM class type (0008,0016)", type="token" ) - public static final String SP_DICOMCLASS = "dicom-class"; - @SearchParamDefinition(name="size", path="", description="The size of the image in MB - may include > or < in the value", type="number" ) - public static final String SP_SIZE = "size"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Representation of the content produced in a DICOM imaging study. A study comprises a set of Series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context. A Series is of only one modality (e.g., X-ray, CT, MR, ultrasound), but a Study may have multiple Series of different modalities. + */ +@ResourceDef(name="ImagingStudy", profile="http://hl7.org/fhir/Profile/ImagingStudy") +public class ImagingStudy extends DomainResource { + + public enum ImagingModality { + /** + * + */ + AR, + /** + * + */ + BMD, + /** + * + */ + BDUS, + /** + * + */ + EPS, + /** + * + */ + CR, + /** + * + */ + CT, + /** + * + */ + DX, + /** + * + */ + ECG, + /** + * + */ + ES, + /** + * + */ + XC, + /** + * + */ + GM, + /** + * + */ + HD, + /** + * + */ + IO, + /** + * + */ + IVOCT, + /** + * + */ + IVUS, + /** + * + */ + KER, + /** + * + */ + LEN, + /** + * + */ + MR, + /** + * + */ + MG, + /** + * + */ + NM, + /** + * + */ + OAM, + /** + * + */ + OCT, + /** + * + */ + OPM, + /** + * + */ + OP, + /** + * + */ + OPR, + /** + * + */ + OPT, + /** + * + */ + OPV, + /** + * + */ + PX, + /** + * + */ + PT, + /** + * + */ + RF, + /** + * + */ + RG, + /** + * + */ + SM, + /** + * + */ + SRF, + /** + * + */ + US, + /** + * + */ + VA, + /** + * + */ + XA, + /** + * added to help the parsers + */ + NULL; + public static ImagingModality fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("AR".equals(codeString)) + return AR; + if ("BMD".equals(codeString)) + return BMD; + if ("BDUS".equals(codeString)) + return BDUS; + if ("EPS".equals(codeString)) + return EPS; + if ("CR".equals(codeString)) + return CR; + if ("CT".equals(codeString)) + return CT; + if ("DX".equals(codeString)) + return DX; + if ("ECG".equals(codeString)) + return ECG; + if ("ES".equals(codeString)) + return ES; + if ("XC".equals(codeString)) + return XC; + if ("GM".equals(codeString)) + return GM; + if ("HD".equals(codeString)) + return HD; + if ("IO".equals(codeString)) + return IO; + if ("IVOCT".equals(codeString)) + return IVOCT; + if ("IVUS".equals(codeString)) + return IVUS; + if ("KER".equals(codeString)) + return KER; + if ("LEN".equals(codeString)) + return LEN; + if ("MR".equals(codeString)) + return MR; + if ("MG".equals(codeString)) + return MG; + if ("NM".equals(codeString)) + return NM; + if ("OAM".equals(codeString)) + return OAM; + if ("OCT".equals(codeString)) + return OCT; + if ("OPM".equals(codeString)) + return OPM; + if ("OP".equals(codeString)) + return OP; + if ("OPR".equals(codeString)) + return OPR; + if ("OPT".equals(codeString)) + return OPT; + if ("OPV".equals(codeString)) + return OPV; + if ("PX".equals(codeString)) + return PX; + if ("PT".equals(codeString)) + return PT; + if ("RF".equals(codeString)) + return RF; + if ("RG".equals(codeString)) + return RG; + if ("SM".equals(codeString)) + return SM; + if ("SRF".equals(codeString)) + return SRF; + if ("US".equals(codeString)) + return US; + if ("VA".equals(codeString)) + return VA; + if ("XA".equals(codeString)) + return XA; + throw new Exception("Unknown ImagingModality code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case AR: return "AR"; + case BMD: return "BMD"; + case BDUS: return "BDUS"; + case EPS: return "EPS"; + case CR: return "CR"; + case CT: return "CT"; + case DX: return "DX"; + case ECG: return "ECG"; + case ES: return "ES"; + case XC: return "XC"; + case GM: return "GM"; + case HD: return "HD"; + case IO: return "IO"; + case IVOCT: return "IVOCT"; + case IVUS: return "IVUS"; + case KER: return "KER"; + case LEN: return "LEN"; + case MR: return "MR"; + case MG: return "MG"; + case NM: return "NM"; + case OAM: return "OAM"; + case OCT: return "OCT"; + case OPM: return "OPM"; + case OP: return "OP"; + case OPR: return "OPR"; + case OPT: return "OPT"; + case OPV: return "OPV"; + case PX: return "PX"; + case PT: return "PT"; + case RF: return "RF"; + case RG: return "RG"; + case SM: return "SM"; + case SRF: return "SRF"; + case US: return "US"; + case VA: return "VA"; + case XA: return "XA"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case AR: return "http://nema.org/dicom/dicm"; + case BMD: return "http://nema.org/dicom/dicm"; + case BDUS: return "http://nema.org/dicom/dicm"; + case EPS: return "http://nema.org/dicom/dicm"; + case CR: return "http://nema.org/dicom/dicm"; + case CT: return "http://nema.org/dicom/dicm"; + case DX: return "http://nema.org/dicom/dicm"; + case ECG: return "http://nema.org/dicom/dicm"; + case ES: return "http://nema.org/dicom/dicm"; + case XC: return "http://nema.org/dicom/dicm"; + case GM: return "http://nema.org/dicom/dicm"; + case HD: return "http://nema.org/dicom/dicm"; + case IO: return "http://nema.org/dicom/dicm"; + case IVOCT: return "http://nema.org/dicom/dicm"; + case IVUS: return "http://nema.org/dicom/dicm"; + case KER: return "http://nema.org/dicom/dicm"; + case LEN: return "http://nema.org/dicom/dicm"; + case MR: return "http://nema.org/dicom/dicm"; + case MG: return "http://nema.org/dicom/dicm"; + case NM: return "http://nema.org/dicom/dicm"; + case OAM: return "http://nema.org/dicom/dicm"; + case OCT: return "http://nema.org/dicom/dicm"; + case OPM: return "http://nema.org/dicom/dicm"; + case OP: return "http://nema.org/dicom/dicm"; + case OPR: return "http://nema.org/dicom/dicm"; + case OPT: return "http://nema.org/dicom/dicm"; + case OPV: return "http://nema.org/dicom/dicm"; + case PX: return "http://nema.org/dicom/dicm"; + case PT: return "http://nema.org/dicom/dicm"; + case RF: return "http://nema.org/dicom/dicm"; + case RG: return "http://nema.org/dicom/dicm"; + case SM: return "http://nema.org/dicom/dicm"; + case SRF: return "http://nema.org/dicom/dicm"; + case US: return "http://nema.org/dicom/dicm"; + case VA: return "http://nema.org/dicom/dicm"; + case XA: return "http://nema.org/dicom/dicm"; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case AR: return ""; + case BMD: return ""; + case BDUS: return ""; + case EPS: return ""; + case CR: return ""; + case CT: return ""; + case DX: return ""; + case ECG: return ""; + case ES: return ""; + case XC: return ""; + case GM: return ""; + case HD: return ""; + case IO: return ""; + case IVOCT: return ""; + case IVUS: return ""; + case KER: return ""; + case LEN: return ""; + case MR: return ""; + case MG: return ""; + case NM: return ""; + case OAM: return ""; + case OCT: return ""; + case OPM: return ""; + case OP: return ""; + case OPR: return ""; + case OPT: return ""; + case OPV: return ""; + case PX: return ""; + case PT: return ""; + case RF: return ""; + case RG: return ""; + case SM: return ""; + case SRF: return ""; + case US: return ""; + case VA: return ""; + case XA: return ""; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case AR: return "AR"; + case BMD: return "BMD"; + case BDUS: return "BDUS"; + case EPS: return "EPS"; + case CR: return "CR"; + case CT: return "CT"; + case DX: return "DX"; + case ECG: return "ECG"; + case ES: return "ES"; + case XC: return "XC"; + case GM: return "GM"; + case HD: return "HD"; + case IO: return "IO"; + case IVOCT: return "IVOCT"; + case IVUS: return "IVUS"; + case KER: return "KER"; + case LEN: return "LEN"; + case MR: return "MR"; + case MG: return "MG"; + case NM: return "NM"; + case OAM: return "OAM"; + case OCT: return "OCT"; + case OPM: return "OPM"; + case OP: return "OP"; + case OPR: return "OPR"; + case OPT: return "OPT"; + case OPV: return "OPV"; + case PX: return "PX"; + case PT: return "PT"; + case RF: return "RF"; + case RG: return "RG"; + case SM: return "SM"; + case SRF: return "SRF"; + case US: return "US"; + case VA: return "VA"; + case XA: return "XA"; + default: return "?"; + } + } + } + + public static class ImagingModalityEnumFactory implements EnumFactory { + public ImagingModality fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("AR".equals(codeString)) + return ImagingModality.AR; + if ("BMD".equals(codeString)) + return ImagingModality.BMD; + if ("BDUS".equals(codeString)) + return ImagingModality.BDUS; + if ("EPS".equals(codeString)) + return ImagingModality.EPS; + if ("CR".equals(codeString)) + return ImagingModality.CR; + if ("CT".equals(codeString)) + return ImagingModality.CT; + if ("DX".equals(codeString)) + return ImagingModality.DX; + if ("ECG".equals(codeString)) + return ImagingModality.ECG; + if ("ES".equals(codeString)) + return ImagingModality.ES; + if ("XC".equals(codeString)) + return ImagingModality.XC; + if ("GM".equals(codeString)) + return ImagingModality.GM; + if ("HD".equals(codeString)) + return ImagingModality.HD; + if ("IO".equals(codeString)) + return ImagingModality.IO; + if ("IVOCT".equals(codeString)) + return ImagingModality.IVOCT; + if ("IVUS".equals(codeString)) + return ImagingModality.IVUS; + if ("KER".equals(codeString)) + return ImagingModality.KER; + if ("LEN".equals(codeString)) + return ImagingModality.LEN; + if ("MR".equals(codeString)) + return ImagingModality.MR; + if ("MG".equals(codeString)) + return ImagingModality.MG; + if ("NM".equals(codeString)) + return ImagingModality.NM; + if ("OAM".equals(codeString)) + return ImagingModality.OAM; + if ("OCT".equals(codeString)) + return ImagingModality.OCT; + if ("OPM".equals(codeString)) + return ImagingModality.OPM; + if ("OP".equals(codeString)) + return ImagingModality.OP; + if ("OPR".equals(codeString)) + return ImagingModality.OPR; + if ("OPT".equals(codeString)) + return ImagingModality.OPT; + if ("OPV".equals(codeString)) + return ImagingModality.OPV; + if ("PX".equals(codeString)) + return ImagingModality.PX; + if ("PT".equals(codeString)) + return ImagingModality.PT; + if ("RF".equals(codeString)) + return ImagingModality.RF; + if ("RG".equals(codeString)) + return ImagingModality.RG; + if ("SM".equals(codeString)) + return ImagingModality.SM; + if ("SRF".equals(codeString)) + return ImagingModality.SRF; + if ("US".equals(codeString)) + return ImagingModality.US; + if ("VA".equals(codeString)) + return ImagingModality.VA; + if ("XA".equals(codeString)) + return ImagingModality.XA; + throw new IllegalArgumentException("Unknown ImagingModality code '"+codeString+"'"); + } + public String toCode(ImagingModality code) { + if (code == ImagingModality.AR) + return "AR"; + if (code == ImagingModality.BMD) + return "BMD"; + if (code == ImagingModality.BDUS) + return "BDUS"; + if (code == ImagingModality.EPS) + return "EPS"; + if (code == ImagingModality.CR) + return "CR"; + if (code == ImagingModality.CT) + return "CT"; + if (code == ImagingModality.DX) + return "DX"; + if (code == ImagingModality.ECG) + return "ECG"; + if (code == ImagingModality.ES) + return "ES"; + if (code == ImagingModality.XC) + return "XC"; + if (code == ImagingModality.GM) + return "GM"; + if (code == ImagingModality.HD) + return "HD"; + if (code == ImagingModality.IO) + return "IO"; + if (code == ImagingModality.IVOCT) + return "IVOCT"; + if (code == ImagingModality.IVUS) + return "IVUS"; + if (code == ImagingModality.KER) + return "KER"; + if (code == ImagingModality.LEN) + return "LEN"; + if (code == ImagingModality.MR) + return "MR"; + if (code == ImagingModality.MG) + return "MG"; + if (code == ImagingModality.NM) + return "NM"; + if (code == ImagingModality.OAM) + return "OAM"; + if (code == ImagingModality.OCT) + return "OCT"; + if (code == ImagingModality.OPM) + return "OPM"; + if (code == ImagingModality.OP) + return "OP"; + if (code == ImagingModality.OPR) + return "OPR"; + if (code == ImagingModality.OPT) + return "OPT"; + if (code == ImagingModality.OPV) + return "OPV"; + if (code == ImagingModality.PX) + return "PX"; + if (code == ImagingModality.PT) + return "PT"; + if (code == ImagingModality.RF) + return "RF"; + if (code == ImagingModality.RG) + return "RG"; + if (code == ImagingModality.SM) + return "SM"; + if (code == ImagingModality.SRF) + return "SRF"; + if (code == ImagingModality.US) + return "US"; + if (code == ImagingModality.VA) + return "VA"; + if (code == ImagingModality.XA) + return "XA"; + return "?"; + } + } + + public enum InstanceAvailability { + /** + * Resources are immediately available,. + */ + ONLINE, + /** + * Resources need to be retrieved by manual intervention. + */ + OFFLINE, + /** + * Resources need to be retrieved from relatively slow media. + */ + NEARLINE, + /** + * Resources cannot be retrieved. + */ + UNAVAILABLE, + /** + * added to help the parsers + */ + NULL; + public static InstanceAvailability fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("ONLINE".equals(codeString)) + return ONLINE; + if ("OFFLINE".equals(codeString)) + return OFFLINE; + if ("NEARLINE".equals(codeString)) + return NEARLINE; + if ("UNAVAILABLE".equals(codeString)) + return UNAVAILABLE; + throw new Exception("Unknown InstanceAvailability code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case ONLINE: return "ONLINE"; + case OFFLINE: return "OFFLINE"; + case NEARLINE: return "NEARLINE"; + case UNAVAILABLE: return "UNAVAILABLE"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case ONLINE: return "http://nema.org/dicom/dicm"; + case OFFLINE: return "http://nema.org/dicom/dicm"; + case NEARLINE: return "http://nema.org/dicom/dicm"; + case UNAVAILABLE: return "http://nema.org/dicom/dicm"; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case ONLINE: return "Resources are immediately available,."; + case OFFLINE: return "Resources need to be retrieved by manual intervention."; + case NEARLINE: return "Resources need to be retrieved from relatively slow media."; + case UNAVAILABLE: return "Resources cannot be retrieved."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case ONLINE: return "ONLINE"; + case OFFLINE: return "OFFLINE"; + case NEARLINE: return "NEARLINE"; + case UNAVAILABLE: return "UNAVAILABLE"; + default: return "?"; + } + } + } + + public static class InstanceAvailabilityEnumFactory implements EnumFactory { + public InstanceAvailability fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("ONLINE".equals(codeString)) + return InstanceAvailability.ONLINE; + if ("OFFLINE".equals(codeString)) + return InstanceAvailability.OFFLINE; + if ("NEARLINE".equals(codeString)) + return InstanceAvailability.NEARLINE; + if ("UNAVAILABLE".equals(codeString)) + return InstanceAvailability.UNAVAILABLE; + throw new IllegalArgumentException("Unknown InstanceAvailability code '"+codeString+"'"); + } + public String toCode(InstanceAvailability code) { + if (code == InstanceAvailability.ONLINE) + return "ONLINE"; + if (code == InstanceAvailability.OFFLINE) + return "OFFLINE"; + if (code == InstanceAvailability.NEARLINE) + return "NEARLINE"; + if (code == InstanceAvailability.UNAVAILABLE) + return "UNAVAILABLE"; + return "?"; + } + } + + public enum Modality { + /** + * + */ + AR, + /** + * + */ + AU, + /** + * + */ + BDUS, + /** + * + */ + BI, + /** + * + */ + BMD, + /** + * + */ + CR, + /** + * + */ + CT, + /** + * + */ + DG, + /** + * + */ + DX, + /** + * + */ + ECG, + /** + * + */ + EPS, + /** + * + */ + ES, + /** + * + */ + GM, + /** + * + */ + HC, + /** + * + */ + HD, + /** + * + */ + IO, + /** + * + */ + IVOCT, + /** + * + */ + IVUS, + /** + * + */ + KER, + /** + * + */ + KO, + /** + * + */ + LEN, + /** + * + */ + LS, + /** + * + */ + MG, + /** + * + */ + MR, + /** + * + */ + NM, + /** + * + */ + OAM, + /** + * + */ + OCT, + /** + * + */ + OP, + /** + * + */ + OPM, + /** + * + */ + OPT, + /** + * + */ + OPV, + /** + * + */ + OT, + /** + * + */ + PR, + /** + * + */ + PT, + /** + * + */ + PX, + /** + * + */ + REG, + /** + * + */ + RF, + /** + * + */ + RG, + /** + * + */ + RTDOSE, + /** + * + */ + RTIMAGE, + /** + * + */ + RTPLAN, + /** + * + */ + RTRECORD, + /** + * + */ + RTSTRUCT, + /** + * + */ + SEG, + /** + * + */ + SM, + /** + * + */ + SMR, + /** + * + */ + SR, + /** + * + */ + SRF, + /** + * + */ + TG, + /** + * + */ + US, + /** + * + */ + VA, + /** + * + */ + XA, + /** + * + */ + XC, + /** + * added to help the parsers + */ + NULL; + public static Modality fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("AR".equals(codeString)) + return AR; + if ("AU".equals(codeString)) + return AU; + if ("BDUS".equals(codeString)) + return BDUS; + if ("BI".equals(codeString)) + return BI; + if ("BMD".equals(codeString)) + return BMD; + if ("CR".equals(codeString)) + return CR; + if ("CT".equals(codeString)) + return CT; + if ("DG".equals(codeString)) + return DG; + if ("DX".equals(codeString)) + return DX; + if ("ECG".equals(codeString)) + return ECG; + if ("EPS".equals(codeString)) + return EPS; + if ("ES".equals(codeString)) + return ES; + if ("GM".equals(codeString)) + return GM; + if ("HC".equals(codeString)) + return HC; + if ("HD".equals(codeString)) + return HD; + if ("IO".equals(codeString)) + return IO; + if ("IVOCT".equals(codeString)) + return IVOCT; + if ("IVUS".equals(codeString)) + return IVUS; + if ("KER".equals(codeString)) + return KER; + if ("KO".equals(codeString)) + return KO; + if ("LEN".equals(codeString)) + return LEN; + if ("LS".equals(codeString)) + return LS; + if ("MG".equals(codeString)) + return MG; + if ("MR".equals(codeString)) + return MR; + if ("NM".equals(codeString)) + return NM; + if ("OAM".equals(codeString)) + return OAM; + if ("OCT".equals(codeString)) + return OCT; + if ("OP".equals(codeString)) + return OP; + if ("OPM".equals(codeString)) + return OPM; + if ("OPT".equals(codeString)) + return OPT; + if ("OPV".equals(codeString)) + return OPV; + if ("OT".equals(codeString)) + return OT; + if ("PR".equals(codeString)) + return PR; + if ("PT".equals(codeString)) + return PT; + if ("PX".equals(codeString)) + return PX; + if ("REG".equals(codeString)) + return REG; + if ("RF".equals(codeString)) + return RF; + if ("RG".equals(codeString)) + return RG; + if ("RTDOSE".equals(codeString)) + return RTDOSE; + if ("RTIMAGE".equals(codeString)) + return RTIMAGE; + if ("RTPLAN".equals(codeString)) + return RTPLAN; + if ("RTRECORD".equals(codeString)) + return RTRECORD; + if ("RTSTRUCT".equals(codeString)) + return RTSTRUCT; + if ("SEG".equals(codeString)) + return SEG; + if ("SM".equals(codeString)) + return SM; + if ("SMR".equals(codeString)) + return SMR; + if ("SR".equals(codeString)) + return SR; + if ("SRF".equals(codeString)) + return SRF; + if ("TG".equals(codeString)) + return TG; + if ("US".equals(codeString)) + return US; + if ("VA".equals(codeString)) + return VA; + if ("XA".equals(codeString)) + return XA; + if ("XC".equals(codeString)) + return XC; + throw new Exception("Unknown Modality code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case AR: return "AR"; + case AU: return "AU"; + case BDUS: return "BDUS"; + case BI: return "BI"; + case BMD: return "BMD"; + case CR: return "CR"; + case CT: return "CT"; + case DG: return "DG"; + case DX: return "DX"; + case ECG: return "ECG"; + case EPS: return "EPS"; + case ES: return "ES"; + case GM: return "GM"; + case HC: return "HC"; + case HD: return "HD"; + case IO: return "IO"; + case IVOCT: return "IVOCT"; + case IVUS: return "IVUS"; + case KER: return "KER"; + case KO: return "KO"; + case LEN: return "LEN"; + case LS: return "LS"; + case MG: return "MG"; + case MR: return "MR"; + case NM: return "NM"; + case OAM: return "OAM"; + case OCT: return "OCT"; + case OP: return "OP"; + case OPM: return "OPM"; + case OPT: return "OPT"; + case OPV: return "OPV"; + case OT: return "OT"; + case PR: return "PR"; + case PT: return "PT"; + case PX: return "PX"; + case REG: return "REG"; + case RF: return "RF"; + case RG: return "RG"; + case RTDOSE: return "RTDOSE"; + case RTIMAGE: return "RTIMAGE"; + case RTPLAN: return "RTPLAN"; + case RTRECORD: return "RTRECORD"; + case RTSTRUCT: return "RTSTRUCT"; + case SEG: return "SEG"; + case SM: return "SM"; + case SMR: return "SMR"; + case SR: return "SR"; + case SRF: return "SRF"; + case TG: return "TG"; + case US: return "US"; + case VA: return "VA"; + case XA: return "XA"; + case XC: return "XC"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case AR: return "http://nema.org/dicom/dicm"; + case AU: return "http://nema.org/dicom/dicm"; + case BDUS: return "http://nema.org/dicom/dicm"; + case BI: return "http://nema.org/dicom/dicm"; + case BMD: return "http://nema.org/dicom/dicm"; + case CR: return "http://nema.org/dicom/dicm"; + case CT: return "http://nema.org/dicom/dicm"; + case DG: return "http://nema.org/dicom/dicm"; + case DX: return "http://nema.org/dicom/dicm"; + case ECG: return "http://nema.org/dicom/dicm"; + case EPS: return "http://nema.org/dicom/dicm"; + case ES: return "http://nema.org/dicom/dicm"; + case GM: return "http://nema.org/dicom/dicm"; + case HC: return "http://nema.org/dicom/dicm"; + case HD: return "http://nema.org/dicom/dicm"; + case IO: return "http://nema.org/dicom/dicm"; + case IVOCT: return "http://nema.org/dicom/dicm"; + case IVUS: return "http://nema.org/dicom/dicm"; + case KER: return "http://nema.org/dicom/dicm"; + case KO: return "http://nema.org/dicom/dicm"; + case LEN: return "http://nema.org/dicom/dicm"; + case LS: return "http://nema.org/dicom/dicm"; + case MG: return "http://nema.org/dicom/dicm"; + case MR: return "http://nema.org/dicom/dicm"; + case NM: return "http://nema.org/dicom/dicm"; + case OAM: return "http://nema.org/dicom/dicm"; + case OCT: return "http://nema.org/dicom/dicm"; + case OP: return "http://nema.org/dicom/dicm"; + case OPM: return "http://nema.org/dicom/dicm"; + case OPT: return "http://nema.org/dicom/dicm"; + case OPV: return "http://nema.org/dicom/dicm"; + case OT: return "http://nema.org/dicom/dicm"; + case PR: return "http://nema.org/dicom/dicm"; + case PT: return "http://nema.org/dicom/dicm"; + case PX: return "http://nema.org/dicom/dicm"; + case REG: return "http://nema.org/dicom/dicm"; + case RF: return "http://nema.org/dicom/dicm"; + case RG: return "http://nema.org/dicom/dicm"; + case RTDOSE: return "http://nema.org/dicom/dicm"; + case RTIMAGE: return "http://nema.org/dicom/dicm"; + case RTPLAN: return "http://nema.org/dicom/dicm"; + case RTRECORD: return "http://nema.org/dicom/dicm"; + case RTSTRUCT: return "http://nema.org/dicom/dicm"; + case SEG: return "http://nema.org/dicom/dicm"; + case SM: return "http://nema.org/dicom/dicm"; + case SMR: return "http://nema.org/dicom/dicm"; + case SR: return "http://nema.org/dicom/dicm"; + case SRF: return "http://nema.org/dicom/dicm"; + case TG: return "http://nema.org/dicom/dicm"; + case US: return "http://nema.org/dicom/dicm"; + case VA: return "http://nema.org/dicom/dicm"; + case XA: return "http://nema.org/dicom/dicm"; + case XC: return "http://nema.org/dicom/dicm"; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case AR: return ""; + case AU: return ""; + case BDUS: return ""; + case BI: return ""; + case BMD: return ""; + case CR: return ""; + case CT: return ""; + case DG: return ""; + case DX: return ""; + case ECG: return ""; + case EPS: return ""; + case ES: return ""; + case GM: return ""; + case HC: return ""; + case HD: return ""; + case IO: return ""; + case IVOCT: return ""; + case IVUS: return ""; + case KER: return ""; + case KO: return ""; + case LEN: return ""; + case LS: return ""; + case MG: return ""; + case MR: return ""; + case NM: return ""; + case OAM: return ""; + case OCT: return ""; + case OP: return ""; + case OPM: return ""; + case OPT: return ""; + case OPV: return ""; + case OT: return ""; + case PR: return ""; + case PT: return ""; + case PX: return ""; + case REG: return ""; + case RF: return ""; + case RG: return ""; + case RTDOSE: return ""; + case RTIMAGE: return ""; + case RTPLAN: return ""; + case RTRECORD: return ""; + case RTSTRUCT: return ""; + case SEG: return ""; + case SM: return ""; + case SMR: return ""; + case SR: return ""; + case SRF: return ""; + case TG: return ""; + case US: return ""; + case VA: return ""; + case XA: return ""; + case XC: return ""; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case AR: return "AR"; + case AU: return "AU"; + case BDUS: return "BDUS"; + case BI: return "BI"; + case BMD: return "BMD"; + case CR: return "CR"; + case CT: return "CT"; + case DG: return "DG"; + case DX: return "DX"; + case ECG: return "ECG"; + case EPS: return "EPS"; + case ES: return "ES"; + case GM: return "GM"; + case HC: return "HC"; + case HD: return "HD"; + case IO: return "IO"; + case IVOCT: return "IVOCT"; + case IVUS: return "IVUS"; + case KER: return "KER"; + case KO: return "KO"; + case LEN: return "LEN"; + case LS: return "LS"; + case MG: return "MG"; + case MR: return "MR"; + case NM: return "NM"; + case OAM: return "OAM"; + case OCT: return "OCT"; + case OP: return "OP"; + case OPM: return "OPM"; + case OPT: return "OPT"; + case OPV: return "OPV"; + case OT: return "OT"; + case PR: return "PR"; + case PT: return "PT"; + case PX: return "PX"; + case REG: return "REG"; + case RF: return "RF"; + case RG: return "RG"; + case RTDOSE: return "RTDOSE"; + case RTIMAGE: return "RTIMAGE"; + case RTPLAN: return "RTPLAN"; + case RTRECORD: return "RTRECORD"; + case RTSTRUCT: return "RTSTRUCT"; + case SEG: return "SEG"; + case SM: return "SM"; + case SMR: return "SMR"; + case SR: return "SR"; + case SRF: return "SRF"; + case TG: return "TG"; + case US: return "US"; + case VA: return "VA"; + case XA: return "XA"; + case XC: return "XC"; + default: return "?"; + } + } + } + + public static class ModalityEnumFactory implements EnumFactory { + public Modality fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("AR".equals(codeString)) + return Modality.AR; + if ("AU".equals(codeString)) + return Modality.AU; + if ("BDUS".equals(codeString)) + return Modality.BDUS; + if ("BI".equals(codeString)) + return Modality.BI; + if ("BMD".equals(codeString)) + return Modality.BMD; + if ("CR".equals(codeString)) + return Modality.CR; + if ("CT".equals(codeString)) + return Modality.CT; + if ("DG".equals(codeString)) + return Modality.DG; + if ("DX".equals(codeString)) + return Modality.DX; + if ("ECG".equals(codeString)) + return Modality.ECG; + if ("EPS".equals(codeString)) + return Modality.EPS; + if ("ES".equals(codeString)) + return Modality.ES; + if ("GM".equals(codeString)) + return Modality.GM; + if ("HC".equals(codeString)) + return Modality.HC; + if ("HD".equals(codeString)) + return Modality.HD; + if ("IO".equals(codeString)) + return Modality.IO; + if ("IVOCT".equals(codeString)) + return Modality.IVOCT; + if ("IVUS".equals(codeString)) + return Modality.IVUS; + if ("KER".equals(codeString)) + return Modality.KER; + if ("KO".equals(codeString)) + return Modality.KO; + if ("LEN".equals(codeString)) + return Modality.LEN; + if ("LS".equals(codeString)) + return Modality.LS; + if ("MG".equals(codeString)) + return Modality.MG; + if ("MR".equals(codeString)) + return Modality.MR; + if ("NM".equals(codeString)) + return Modality.NM; + if ("OAM".equals(codeString)) + return Modality.OAM; + if ("OCT".equals(codeString)) + return Modality.OCT; + if ("OP".equals(codeString)) + return Modality.OP; + if ("OPM".equals(codeString)) + return Modality.OPM; + if ("OPT".equals(codeString)) + return Modality.OPT; + if ("OPV".equals(codeString)) + return Modality.OPV; + if ("OT".equals(codeString)) + return Modality.OT; + if ("PR".equals(codeString)) + return Modality.PR; + if ("PT".equals(codeString)) + return Modality.PT; + if ("PX".equals(codeString)) + return Modality.PX; + if ("REG".equals(codeString)) + return Modality.REG; + if ("RF".equals(codeString)) + return Modality.RF; + if ("RG".equals(codeString)) + return Modality.RG; + if ("RTDOSE".equals(codeString)) + return Modality.RTDOSE; + if ("RTIMAGE".equals(codeString)) + return Modality.RTIMAGE; + if ("RTPLAN".equals(codeString)) + return Modality.RTPLAN; + if ("RTRECORD".equals(codeString)) + return Modality.RTRECORD; + if ("RTSTRUCT".equals(codeString)) + return Modality.RTSTRUCT; + if ("SEG".equals(codeString)) + return Modality.SEG; + if ("SM".equals(codeString)) + return Modality.SM; + if ("SMR".equals(codeString)) + return Modality.SMR; + if ("SR".equals(codeString)) + return Modality.SR; + if ("SRF".equals(codeString)) + return Modality.SRF; + if ("TG".equals(codeString)) + return Modality.TG; + if ("US".equals(codeString)) + return Modality.US; + if ("VA".equals(codeString)) + return Modality.VA; + if ("XA".equals(codeString)) + return Modality.XA; + if ("XC".equals(codeString)) + return Modality.XC; + throw new IllegalArgumentException("Unknown Modality code '"+codeString+"'"); + } + public String toCode(Modality code) { + if (code == Modality.AR) + return "AR"; + if (code == Modality.AU) + return "AU"; + if (code == Modality.BDUS) + return "BDUS"; + if (code == Modality.BI) + return "BI"; + if (code == Modality.BMD) + return "BMD"; + if (code == Modality.CR) + return "CR"; + if (code == Modality.CT) + return "CT"; + if (code == Modality.DG) + return "DG"; + if (code == Modality.DX) + return "DX"; + if (code == Modality.ECG) + return "ECG"; + if (code == Modality.EPS) + return "EPS"; + if (code == Modality.ES) + return "ES"; + if (code == Modality.GM) + return "GM"; + if (code == Modality.HC) + return "HC"; + if (code == Modality.HD) + return "HD"; + if (code == Modality.IO) + return "IO"; + if (code == Modality.IVOCT) + return "IVOCT"; + if (code == Modality.IVUS) + return "IVUS"; + if (code == Modality.KER) + return "KER"; + if (code == Modality.KO) + return "KO"; + if (code == Modality.LEN) + return "LEN"; + if (code == Modality.LS) + return "LS"; + if (code == Modality.MG) + return "MG"; + if (code == Modality.MR) + return "MR"; + if (code == Modality.NM) + return "NM"; + if (code == Modality.OAM) + return "OAM"; + if (code == Modality.OCT) + return "OCT"; + if (code == Modality.OP) + return "OP"; + if (code == Modality.OPM) + return "OPM"; + if (code == Modality.OPT) + return "OPT"; + if (code == Modality.OPV) + return "OPV"; + if (code == Modality.OT) + return "OT"; + if (code == Modality.PR) + return "PR"; + if (code == Modality.PT) + return "PT"; + if (code == Modality.PX) + return "PX"; + if (code == Modality.REG) + return "REG"; + if (code == Modality.RF) + return "RF"; + if (code == Modality.RG) + return "RG"; + if (code == Modality.RTDOSE) + return "RTDOSE"; + if (code == Modality.RTIMAGE) + return "RTIMAGE"; + if (code == Modality.RTPLAN) + return "RTPLAN"; + if (code == Modality.RTRECORD) + return "RTRECORD"; + if (code == Modality.RTSTRUCT) + return "RTSTRUCT"; + if (code == Modality.SEG) + return "SEG"; + if (code == Modality.SM) + return "SM"; + if (code == Modality.SMR) + return "SMR"; + if (code == Modality.SR) + return "SR"; + if (code == Modality.SRF) + return "SRF"; + if (code == Modality.TG) + return "TG"; + if (code == Modality.US) + return "US"; + if (code == Modality.VA) + return "VA"; + if (code == Modality.XA) + return "XA"; + if (code == Modality.XC) + return "XC"; + return "?"; + } + } + + @Block() + public static class ImagingStudySeriesComponent extends BackboneElement { + /** + * The Numeric identifier of this series in the study. + */ + @Child(name="number", type={IntegerType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Numeric identifier of this series (0020,0011)", formalDefinition="The Numeric identifier of this series in the study." ) + protected IntegerType number; + + /** + * The modality of this series sequence. + */ + @Child(name="modality", type={CodeType.class}, order=2, min=1, max=1) + @Description(shortDefinition="The modality of the instances in the series (0008,0060)", formalDefinition="The modality of this series sequence." ) + protected Enumeration modality; + + /** + * Formal identifier for this series. + */ + @Child(name="uid", type={OidType.class}, order=3, min=1, max=1) + @Description(shortDefinition="Formal identifier for this series (0020,000E)", formalDefinition="Formal identifier for this series." ) + protected OidType uid; + + /** + * A description of the series. + */ + @Child(name="description", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="A description of the series (0008,103E)", formalDefinition="A description of the series." ) + protected StringType description; + + /** + * Sequence that contains attributes from the. + */ + @Child(name="numberOfInstances", type={IntegerType.class}, order=5, min=1, max=1) + @Description(shortDefinition="Number of Series Related Instances (0020,1209)", formalDefinition="Sequence that contains attributes from the." ) + protected IntegerType numberOfInstances; + + /** + * Availability of series (online, offline or nearline). + */ + @Child(name="availability", type={CodeType.class}, order=6, min=0, max=1) + @Description(shortDefinition="ONLINE | OFFLINE | NEARLINE | UNAVAILABLE (0008,0056)", formalDefinition="Availability of series (online, offline or nearline)." ) + protected Enumeration availability; + + /** + * WADO-RS URI where Series is available. + */ + @Child(name="url", type={UriType.class}, order=7, min=0, max=1) + @Description(shortDefinition="Retrieve URI (0008,1115 > 0008,1190)", formalDefinition="WADO-RS URI where Series is available." ) + protected UriType url; + + /** + * Body part examined. See DICOM Part 16 Annex L for the mapping from DICOM to Snomed. + */ + @Child(name="bodySite", type={Coding.class}, order=8, min=0, max=1) + @Description(shortDefinition="Body part examined (Map from 0018,0015)", formalDefinition="Body part examined. See DICOM Part 16 Annex L for the mapping from DICOM to Snomed." ) + protected Coding bodySite; + + /** + * The date when the series was started. + */ + @Child(name="dateTime", type={DateTimeType.class}, order=9, min=0, max=1) + @Description(shortDefinition="When the series started", formalDefinition="The date when the series was started." ) + protected DateTimeType dateTime; + + /** + * A single image taken from a patient. + */ + @Child(name="instance", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="A single instance taken from a patient (image or other)", formalDefinition="A single image taken from a patient." ) + protected List instance; + + private static final long serialVersionUID = -1442035574L; + + public ImagingStudySeriesComponent() { + super(); + } + + public ImagingStudySeriesComponent(Enumeration modality, OidType uid, IntegerType numberOfInstances) { + super(); + this.modality = modality; + this.uid = uid; + this.numberOfInstances = numberOfInstances; + } + + /** + * @return {@link #number} (The Numeric identifier of this series in the study.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value + */ + public IntegerType getNumberElement() { + if (this.number == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesComponent.number"); + else if (Configuration.doAutoCreate()) + this.number = new IntegerType(); // bb + return this.number; + } + + public boolean hasNumberElement() { + return this.number != null && !this.number.isEmpty(); + } + + public boolean hasNumber() { + return this.number != null && !this.number.isEmpty(); + } + + /** + * @param value {@link #number} (The Numeric identifier of this series in the study.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value + */ + public ImagingStudySeriesComponent setNumberElement(IntegerType value) { + this.number = value; + return this; + } + + /** + * @return The Numeric identifier of this series in the study. + */ + public int getNumber() { + return this.number == null ? 0 : this.number.getValue(); + } + + /** + * @param value The Numeric identifier of this series in the study. + */ + public ImagingStudySeriesComponent setNumber(int value) { + if (this.number == null) + this.number = new IntegerType(); + this.number.setValue(value); + return this; + } + + /** + * @return {@link #modality} (The modality of this series sequence.). This is the underlying object with id, value and extensions. The accessor "getModality" gives direct access to the value + */ + public Enumeration getModalityElement() { + if (this.modality == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesComponent.modality"); + else if (Configuration.doAutoCreate()) + this.modality = new Enumeration(new ModalityEnumFactory()); // bb + return this.modality; + } + + public boolean hasModalityElement() { + return this.modality != null && !this.modality.isEmpty(); + } + + public boolean hasModality() { + return this.modality != null && !this.modality.isEmpty(); + } + + /** + * @param value {@link #modality} (The modality of this series sequence.). This is the underlying object with id, value and extensions. The accessor "getModality" gives direct access to the value + */ + public ImagingStudySeriesComponent setModalityElement(Enumeration value) { + this.modality = value; + return this; + } + + /** + * @return The modality of this series sequence. + */ + public Modality getModality() { + return this.modality == null ? null : this.modality.getValue(); + } + + /** + * @param value The modality of this series sequence. + */ + public ImagingStudySeriesComponent setModality(Modality value) { + if (this.modality == null) + this.modality = new Enumeration(new ModalityEnumFactory()); + this.modality.setValue(value); + return this; + } + + /** + * @return {@link #uid} (Formal identifier for this series.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public OidType getUidElement() { + if (this.uid == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesComponent.uid"); + else if (Configuration.doAutoCreate()) + this.uid = new OidType(); // bb + return this.uid; + } + + public boolean hasUidElement() { + return this.uid != null && !this.uid.isEmpty(); + } + + public boolean hasUid() { + return this.uid != null && !this.uid.isEmpty(); + } + + /** + * @param value {@link #uid} (Formal identifier for this series.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public ImagingStudySeriesComponent setUidElement(OidType value) { + this.uid = value; + return this; + } + + /** + * @return Formal identifier for this series. + */ + public String getUid() { + return this.uid == null ? null : this.uid.getValue(); + } + + /** + * @param value Formal identifier for this series. + */ + public ImagingStudySeriesComponent setUid(String value) { + if (this.uid == null) + this.uid = new OidType(); + this.uid.setValue(value); + return this; + } + + /** + * @return {@link #description} (A description of the series.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesComponent.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (A description of the series.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public ImagingStudySeriesComponent setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return A description of the series. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value A description of the series. + */ + public ImagingStudySeriesComponent setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #numberOfInstances} (Sequence that contains attributes from the.). This is the underlying object with id, value and extensions. The accessor "getNumberOfInstances" gives direct access to the value + */ + public IntegerType getNumberOfInstancesElement() { + if (this.numberOfInstances == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesComponent.numberOfInstances"); + else if (Configuration.doAutoCreate()) + this.numberOfInstances = new IntegerType(); // bb + return this.numberOfInstances; + } + + public boolean hasNumberOfInstancesElement() { + return this.numberOfInstances != null && !this.numberOfInstances.isEmpty(); + } + + public boolean hasNumberOfInstances() { + return this.numberOfInstances != null && !this.numberOfInstances.isEmpty(); + } + + /** + * @param value {@link #numberOfInstances} (Sequence that contains attributes from the.). This is the underlying object with id, value and extensions. The accessor "getNumberOfInstances" gives direct access to the value + */ + public ImagingStudySeriesComponent setNumberOfInstancesElement(IntegerType value) { + this.numberOfInstances = value; + return this; + } + + /** + * @return Sequence that contains attributes from the. + */ + public int getNumberOfInstances() { + return this.numberOfInstances == null ? 0 : this.numberOfInstances.getValue(); + } + + /** + * @param value Sequence that contains attributes from the. + */ + public ImagingStudySeriesComponent setNumberOfInstances(int value) { + if (this.numberOfInstances == null) + this.numberOfInstances = new IntegerType(); + this.numberOfInstances.setValue(value); + return this; + } + + /** + * @return {@link #availability} (Availability of series (online, offline or nearline).). This is the underlying object with id, value and extensions. The accessor "getAvailability" gives direct access to the value + */ + public Enumeration getAvailabilityElement() { + if (this.availability == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesComponent.availability"); + else if (Configuration.doAutoCreate()) + this.availability = new Enumeration(new InstanceAvailabilityEnumFactory()); // bb + return this.availability; + } + + public boolean hasAvailabilityElement() { + return this.availability != null && !this.availability.isEmpty(); + } + + public boolean hasAvailability() { + return this.availability != null && !this.availability.isEmpty(); + } + + /** + * @param value {@link #availability} (Availability of series (online, offline or nearline).). This is the underlying object with id, value and extensions. The accessor "getAvailability" gives direct access to the value + */ + public ImagingStudySeriesComponent setAvailabilityElement(Enumeration value) { + this.availability = value; + return this; + } + + /** + * @return Availability of series (online, offline or nearline). + */ + public InstanceAvailability getAvailability() { + return this.availability == null ? null : this.availability.getValue(); + } + + /** + * @param value Availability of series (online, offline or nearline). + */ + public ImagingStudySeriesComponent setAvailability(InstanceAvailability value) { + if (value == null) + this.availability = null; + else { + if (this.availability == null) + this.availability = new Enumeration(new InstanceAvailabilityEnumFactory()); + this.availability.setValue(value); + } + return this; + } + + /** + * @return {@link #url} (WADO-RS URI where Series is available.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesComponent.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (WADO-RS URI where Series is available.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public ImagingStudySeriesComponent setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return WADO-RS URI where Series is available. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value WADO-RS URI where Series is available. + */ + public ImagingStudySeriesComponent setUrl(String value) { + if (Utilities.noString(value)) + this.url = null; + else { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + } + return this; + } + + /** + * @return {@link #bodySite} (Body part examined. See DICOM Part 16 Annex L for the mapping from DICOM to Snomed.) + */ + public Coding getBodySite() { + if (this.bodySite == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesComponent.bodySite"); + else if (Configuration.doAutoCreate()) + this.bodySite = new Coding(); // cc + return this.bodySite; + } + + public boolean hasBodySite() { + return this.bodySite != null && !this.bodySite.isEmpty(); + } + + /** + * @param value {@link #bodySite} (Body part examined. See DICOM Part 16 Annex L for the mapping from DICOM to Snomed.) + */ + public ImagingStudySeriesComponent setBodySite(Coding value) { + this.bodySite = value; + return this; + } + + /** + * @return {@link #dateTime} (The date when the series was started.). This is the underlying object with id, value and extensions. The accessor "getDateTime" gives direct access to the value + */ + public DateTimeType getDateTimeElement() { + if (this.dateTime == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesComponent.dateTime"); + else if (Configuration.doAutoCreate()) + this.dateTime = new DateTimeType(); // bb + return this.dateTime; + } + + public boolean hasDateTimeElement() { + return this.dateTime != null && !this.dateTime.isEmpty(); + } + + public boolean hasDateTime() { + return this.dateTime != null && !this.dateTime.isEmpty(); + } + + /** + * @param value {@link #dateTime} (The date when the series was started.). This is the underlying object with id, value and extensions. The accessor "getDateTime" gives direct access to the value + */ + public ImagingStudySeriesComponent setDateTimeElement(DateTimeType value) { + this.dateTime = value; + return this; + } + + /** + * @return The date when the series was started. + */ + public Date getDateTime() { + return this.dateTime == null ? null : this.dateTime.getValue(); + } + + /** + * @param value The date when the series was started. + */ + public ImagingStudySeriesComponent setDateTime(Date value) { + if (value == null) + this.dateTime = null; + else { + if (this.dateTime == null) + this.dateTime = new DateTimeType(); + this.dateTime.setValue(value); + } + return this; + } + + /** + * @return {@link #instance} (A single image taken from a patient.) + */ + public List getInstance() { + if (this.instance == null) + this.instance = new ArrayList(); + return this.instance; + } + + public boolean hasInstance() { + if (this.instance == null) + return false; + for (ImagingStudySeriesInstanceComponent item : this.instance) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #instance} (A single image taken from a patient.) + */ + // syntactic sugar + public ImagingStudySeriesInstanceComponent addInstance() { //3 + ImagingStudySeriesInstanceComponent t = new ImagingStudySeriesInstanceComponent(); + if (this.instance == null) + this.instance = new ArrayList(); + this.instance.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("number", "integer", "The Numeric identifier of this series in the study.", 0, java.lang.Integer.MAX_VALUE, number)); + childrenList.add(new Property("modality", "code", "The modality of this series sequence.", 0, java.lang.Integer.MAX_VALUE, modality)); + childrenList.add(new Property("uid", "oid", "Formal identifier for this series.", 0, java.lang.Integer.MAX_VALUE, uid)); + childrenList.add(new Property("description", "string", "A description of the series.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("numberOfInstances", "integer", "Sequence that contains attributes from the.", 0, java.lang.Integer.MAX_VALUE, numberOfInstances)); + childrenList.add(new Property("availability", "code", "Availability of series (online, offline or nearline).", 0, java.lang.Integer.MAX_VALUE, availability)); + childrenList.add(new Property("url", "uri", "WADO-RS URI where Series is available.", 0, java.lang.Integer.MAX_VALUE, url)); + childrenList.add(new Property("bodySite", "Coding", "Body part examined. See DICOM Part 16 Annex L for the mapping from DICOM to Snomed.", 0, java.lang.Integer.MAX_VALUE, bodySite)); + childrenList.add(new Property("dateTime", "dateTime", "The date when the series was started.", 0, java.lang.Integer.MAX_VALUE, dateTime)); + childrenList.add(new Property("instance", "", "A single image taken from a patient.", 0, java.lang.Integer.MAX_VALUE, instance)); + } + + public ImagingStudySeriesComponent copy() { + ImagingStudySeriesComponent dst = new ImagingStudySeriesComponent(); + copyValues(dst); + dst.number = number == null ? null : number.copy(); + dst.modality = modality == null ? null : modality.copy(); + dst.uid = uid == null ? null : uid.copy(); + dst.description = description == null ? null : description.copy(); + dst.numberOfInstances = numberOfInstances == null ? null : numberOfInstances.copy(); + dst.availability = availability == null ? null : availability.copy(); + dst.url = url == null ? null : url.copy(); + dst.bodySite = bodySite == null ? null : bodySite.copy(); + dst.dateTime = dateTime == null ? null : dateTime.copy(); + if (instance != null) { + dst.instance = new ArrayList(); + for (ImagingStudySeriesInstanceComponent i : instance) + dst.instance.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ImagingStudySeriesComponent)) + return false; + ImagingStudySeriesComponent o = (ImagingStudySeriesComponent) other; + return compareDeep(number, o.number, true) && compareDeep(modality, o.modality, true) && compareDeep(uid, o.uid, true) + && compareDeep(description, o.description, true) && compareDeep(numberOfInstances, o.numberOfInstances, true) + && compareDeep(availability, o.availability, true) && compareDeep(url, o.url, true) && compareDeep(bodySite, o.bodySite, true) + && compareDeep(dateTime, o.dateTime, true) && compareDeep(instance, o.instance, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ImagingStudySeriesComponent)) + return false; + ImagingStudySeriesComponent o = (ImagingStudySeriesComponent) other; + return compareValues(number, o.number, true) && compareValues(modality, o.modality, true) && compareValues(uid, o.uid, true) + && compareValues(description, o.description, true) && compareValues(numberOfInstances, o.numberOfInstances, true) + && compareValues(availability, o.availability, true) && compareValues(url, o.url, true) && compareValues(dateTime, o.dateTime, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (number == null || number.isEmpty()) && (modality == null || modality.isEmpty()) + && (uid == null || uid.isEmpty()) && (description == null || description.isEmpty()) && (numberOfInstances == null || numberOfInstances.isEmpty()) + && (availability == null || availability.isEmpty()) && (url == null || url.isEmpty()) && (bodySite == null || bodySite.isEmpty()) + && (dateTime == null || dateTime.isEmpty()) && (instance == null || instance.isEmpty()); + } + + } + + @Block() + public static class ImagingStudySeriesInstanceComponent extends BackboneElement { + /** + * The number of this image in the series. + */ + @Child(name="number", type={IntegerType.class}, order=1, min=0, max=1) + @Description(shortDefinition="The number of this instance in the series (0020,0013)", formalDefinition="The number of this image in the series." ) + protected IntegerType number; + + /** + * Formal identifier for this image. + */ + @Child(name="uid", type={OidType.class}, order=2, min=1, max=1) + @Description(shortDefinition="Formal identifier for this instance (0008,0018)", formalDefinition="Formal identifier for this image." ) + protected OidType uid; + + /** + * DICOM Image type. + */ + @Child(name="sopclass", type={OidType.class}, order=3, min=1, max=1) + @Description(shortDefinition="DICOM class type (0008,0016)", formalDefinition="DICOM Image type." ) + protected OidType sopclass; + + /** + * The type of the instance. + */ + @Child(name="type", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Type of instance (image etc) (0004,1430)", formalDefinition="The type of the instance." ) + protected StringType type; + + /** + * The description of the instance. + */ + @Child(name="title", type={StringType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Description (0070,0080 | 0040,A043 > 0008,0104 | 0042,0010 | 0008,0008)", formalDefinition="The description of the instance." ) + protected StringType title; + + /** + * WADO-RS url where image is available. + */ + @Child(name="url", type={UriType.class}, order=6, min=0, max=1) + @Description(shortDefinition="WADO-RS service where instance is available (0008,1199 > 0008,1190)", formalDefinition="WADO-RS url where image is available." ) + protected UriType url; + + /** + * A FHIR resource with content for this instance. + */ + @Child(name="attachment", type={}, order=7, min=0, max=1) + @Description(shortDefinition="Content for this instance", formalDefinition="A FHIR resource with content for this instance." ) + protected Reference attachment; + + /** + * The actual object that is the target of the reference (A FHIR resource with content for this instance.) + */ + protected Resource attachmentTarget; + + private static final long serialVersionUID = -2008450480L; + + public ImagingStudySeriesInstanceComponent() { + super(); + } + + public ImagingStudySeriesInstanceComponent(OidType uid, OidType sopclass) { + super(); + this.uid = uid; + this.sopclass = sopclass; + } + + /** + * @return {@link #number} (The number of this image in the series.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value + */ + public IntegerType getNumberElement() { + if (this.number == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.number"); + else if (Configuration.doAutoCreate()) + this.number = new IntegerType(); // bb + return this.number; + } + + public boolean hasNumberElement() { + return this.number != null && !this.number.isEmpty(); + } + + public boolean hasNumber() { + return this.number != null && !this.number.isEmpty(); + } + + /** + * @param value {@link #number} (The number of this image in the series.). This is the underlying object with id, value and extensions. The accessor "getNumber" gives direct access to the value + */ + public ImagingStudySeriesInstanceComponent setNumberElement(IntegerType value) { + this.number = value; + return this; + } + + /** + * @return The number of this image in the series. + */ + public int getNumber() { + return this.number == null ? 0 : this.number.getValue(); + } + + /** + * @param value The number of this image in the series. + */ + public ImagingStudySeriesInstanceComponent setNumber(int value) { + if (this.number == null) + this.number = new IntegerType(); + this.number.setValue(value); + return this; + } + + /** + * @return {@link #uid} (Formal identifier for this image.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public OidType getUidElement() { + if (this.uid == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.uid"); + else if (Configuration.doAutoCreate()) + this.uid = new OidType(); // bb + return this.uid; + } + + public boolean hasUidElement() { + return this.uid != null && !this.uid.isEmpty(); + } + + public boolean hasUid() { + return this.uid != null && !this.uid.isEmpty(); + } + + /** + * @param value {@link #uid} (Formal identifier for this image.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public ImagingStudySeriesInstanceComponent setUidElement(OidType value) { + this.uid = value; + return this; + } + + /** + * @return Formal identifier for this image. + */ + public String getUid() { + return this.uid == null ? null : this.uid.getValue(); + } + + /** + * @param value Formal identifier for this image. + */ + public ImagingStudySeriesInstanceComponent setUid(String value) { + if (this.uid == null) + this.uid = new OidType(); + this.uid.setValue(value); + return this; + } + + /** + * @return {@link #sopclass} (DICOM Image type.). This is the underlying object with id, value and extensions. The accessor "getSopclass" gives direct access to the value + */ + public OidType getSopclassElement() { + if (this.sopclass == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.sopclass"); + else if (Configuration.doAutoCreate()) + this.sopclass = new OidType(); // bb + return this.sopclass; + } + + public boolean hasSopclassElement() { + return this.sopclass != null && !this.sopclass.isEmpty(); + } + + public boolean hasSopclass() { + return this.sopclass != null && !this.sopclass.isEmpty(); + } + + /** + * @param value {@link #sopclass} (DICOM Image type.). This is the underlying object with id, value and extensions. The accessor "getSopclass" gives direct access to the value + */ + public ImagingStudySeriesInstanceComponent setSopclassElement(OidType value) { + this.sopclass = value; + return this; + } + + /** + * @return DICOM Image type. + */ + public String getSopclass() { + return this.sopclass == null ? null : this.sopclass.getValue(); + } + + /** + * @param value DICOM Image type. + */ + public ImagingStudySeriesInstanceComponent setSopclass(String value) { + if (this.sopclass == null) + this.sopclass = new OidType(); + this.sopclass.setValue(value); + return this; + } + + /** + * @return {@link #type} (The type of the instance.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public StringType getTypeElement() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new StringType(); // bb + return this.type; + } + + public boolean hasTypeElement() { + return this.type != null && !this.type.isEmpty(); + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The type of the instance.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public ImagingStudySeriesInstanceComponent setTypeElement(StringType value) { + this.type = value; + return this; + } + + /** + * @return The type of the instance. + */ + public String getType() { + return this.type == null ? null : this.type.getValue(); + } + + /** + * @param value The type of the instance. + */ + public ImagingStudySeriesInstanceComponent setType(String value) { + if (Utilities.noString(value)) + this.type = null; + else { + if (this.type == null) + this.type = new StringType(); + this.type.setValue(value); + } + return this; + } + + /** + * @return {@link #title} (The description of the instance.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value + */ + public StringType getTitleElement() { + if (this.title == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.title"); + else if (Configuration.doAutoCreate()) + this.title = new StringType(); // bb + return this.title; + } + + public boolean hasTitleElement() { + return this.title != null && !this.title.isEmpty(); + } + + public boolean hasTitle() { + return this.title != null && !this.title.isEmpty(); + } + + /** + * @param value {@link #title} (The description of the instance.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value + */ + public ImagingStudySeriesInstanceComponent setTitleElement(StringType value) { + this.title = value; + return this; + } + + /** + * @return The description of the instance. + */ + public String getTitle() { + return this.title == null ? null : this.title.getValue(); + } + + /** + * @param value The description of the instance. + */ + public ImagingStudySeriesInstanceComponent setTitle(String value) { + if (Utilities.noString(value)) + this.title = null; + else { + if (this.title == null) + this.title = new StringType(); + this.title.setValue(value); + } + return this; + } + + /** + * @return {@link #url} (WADO-RS url where image is available.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (WADO-RS url where image is available.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public ImagingStudySeriesInstanceComponent setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return WADO-RS url where image is available. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value WADO-RS url where image is available. + */ + public ImagingStudySeriesInstanceComponent setUrl(String value) { + if (Utilities.noString(value)) + this.url = null; + else { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + } + return this; + } + + /** + * @return {@link #attachment} (A FHIR resource with content for this instance.) + */ + public Reference getAttachment() { + if (this.attachment == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudySeriesInstanceComponent.attachment"); + else if (Configuration.doAutoCreate()) + this.attachment = new Reference(); // cc + return this.attachment; + } + + public boolean hasAttachment() { + return this.attachment != null && !this.attachment.isEmpty(); + } + + /** + * @param value {@link #attachment} (A FHIR resource with content for this instance.) + */ + public ImagingStudySeriesInstanceComponent setAttachment(Reference value) { + this.attachment = value; + return this; + } + + /** + * @return {@link #attachment} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A FHIR resource with content for this instance.) + */ + public Resource getAttachmentTarget() { + return this.attachmentTarget; + } + + /** + * @param value {@link #attachment} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A FHIR resource with content for this instance.) + */ + public ImagingStudySeriesInstanceComponent setAttachmentTarget(Resource value) { + this.attachmentTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("number", "integer", "The number of this image in the series.", 0, java.lang.Integer.MAX_VALUE, number)); + childrenList.add(new Property("uid", "oid", "Formal identifier for this image.", 0, java.lang.Integer.MAX_VALUE, uid)); + childrenList.add(new Property("sopclass", "oid", "DICOM Image type.", 0, java.lang.Integer.MAX_VALUE, sopclass)); + childrenList.add(new Property("type", "string", "The type of the instance.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("title", "string", "The description of the instance.", 0, java.lang.Integer.MAX_VALUE, title)); + childrenList.add(new Property("url", "uri", "WADO-RS url where image is available.", 0, java.lang.Integer.MAX_VALUE, url)); + childrenList.add(new Property("attachment", "Reference(Any)", "A FHIR resource with content for this instance.", 0, java.lang.Integer.MAX_VALUE, attachment)); + } + + public ImagingStudySeriesInstanceComponent copy() { + ImagingStudySeriesInstanceComponent dst = new ImagingStudySeriesInstanceComponent(); + copyValues(dst); + dst.number = number == null ? null : number.copy(); + dst.uid = uid == null ? null : uid.copy(); + dst.sopclass = sopclass == null ? null : sopclass.copy(); + dst.type = type == null ? null : type.copy(); + dst.title = title == null ? null : title.copy(); + dst.url = url == null ? null : url.copy(); + dst.attachment = attachment == null ? null : attachment.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ImagingStudySeriesInstanceComponent)) + return false; + ImagingStudySeriesInstanceComponent o = (ImagingStudySeriesInstanceComponent) other; + return compareDeep(number, o.number, true) && compareDeep(uid, o.uid, true) && compareDeep(sopclass, o.sopclass, true) + && compareDeep(type, o.type, true) && compareDeep(title, o.title, true) && compareDeep(url, o.url, true) + && compareDeep(attachment, o.attachment, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ImagingStudySeriesInstanceComponent)) + return false; + ImagingStudySeriesInstanceComponent o = (ImagingStudySeriesInstanceComponent) other; + return compareValues(number, o.number, true) && compareValues(uid, o.uid, true) && compareValues(sopclass, o.sopclass, true) + && compareValues(type, o.type, true) && compareValues(title, o.title, true) && compareValues(url, o.url, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (number == null || number.isEmpty()) && (uid == null || uid.isEmpty()) + && (sopclass == null || sopclass.isEmpty()) && (type == null || type.isEmpty()) && (title == null || title.isEmpty()) + && (url == null || url.isEmpty()) && (attachment == null || attachment.isEmpty()); + } + + } + + /** + * Date and Time the study started. + */ + @Child(name="started", type={DateTimeType.class}, order=-1, min=0, max=1) + @Description(shortDefinition="When the study was started (0008,0020)+(0008,0030)", formalDefinition="Date and Time the study started." ) + protected DateTimeType started; + + /** + * The patient for whom the images are of. + */ + @Child(name="patient", type={Patient.class}, order=0, min=1, max=1) + @Description(shortDefinition="Who the images are of", formalDefinition="The patient for whom the images are of." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (The patient for whom the images are of.) + */ + protected Patient patientTarget; + + /** + * Formal identifier for the study. + */ + @Child(name="uid", type={OidType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Formal identifier for the study (0020,000D)", formalDefinition="Formal identifier for the study." ) + protected OidType uid; + + /** + * Accession Number. + */ + @Child(name="accession", type={Identifier.class}, order=2, min=0, max=1) + @Description(shortDefinition="Accession Number (0008,0050)", formalDefinition="Accession Number." ) + protected Identifier accession; + + /** + * Other identifiers for the study. + */ + @Child(name="identifier", type={Identifier.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Other identifiers for the study (0020,0010)", formalDefinition="Other identifiers for the study." ) + protected List identifier; + + /** + * A list of the diagnostic orders that resulted in this imaging study being performed. + */ + @Child(name="order", type={DiagnosticOrder.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Order(s) that caused this study to be performed", formalDefinition="A list of the diagnostic orders that resulted in this imaging study being performed." ) + protected List order; + /** + * The actual objects that are the target of the reference (A list of the diagnostic orders that resulted in this imaging study being performed.) + */ + protected List orderTarget; + + + /** + * A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19). + */ + @Child(name="modalityList", type={CodeType.class}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="All series.modality if actual acquisition modalities", formalDefinition="A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19)." ) + protected List> modalityList; + + /** + * The requesting/referring physician. + */ + @Child(name="referrer", type={Practitioner.class}, order=6, min=0, max=1) + @Description(shortDefinition="Referring physician (0008,0090)", formalDefinition="The requesting/referring physician." ) + protected Reference referrer; + + /** + * The actual object that is the target of the reference (The requesting/referring physician.) + */ + protected Practitioner referrerTarget; + + /** + * Availability of study (online, offline or nearline). + */ + @Child(name="availability", type={CodeType.class}, order=7, min=0, max=1) + @Description(shortDefinition="ONLINE | OFFLINE | NEARLINE | UNAVAILABLE (0008,0056)", formalDefinition="Availability of study (online, offline or nearline)." ) + protected Enumeration availability; + + /** + * WADO-RS URI where Study is available. + */ + @Child(name="url", type={UriType.class}, order=8, min=0, max=1) + @Description(shortDefinition="Retrieve URI (0008,1190)", formalDefinition="WADO-RS URI where Study is available." ) + protected UriType url; + + /** + * Number of Series in Study. + */ + @Child(name="numberOfSeries", type={IntegerType.class}, order=9, min=1, max=1) + @Description(shortDefinition="Number of Study Related Series (0020,1206)", formalDefinition="Number of Series in Study." ) + protected IntegerType numberOfSeries; + + /** + * Number of SOP Instances in Study. + */ + @Child(name="numberOfInstances", type={IntegerType.class}, order=10, min=1, max=1) + @Description(shortDefinition="Number of Study Related Instances (0020,1208)", formalDefinition="Number of SOP Instances in Study." ) + protected IntegerType numberOfInstances; + + /** + * Diagnoses etc provided with request. + */ + @Child(name="clinicalInformation", type={StringType.class}, order=11, min=0, max=1) + @Description(shortDefinition="Diagnoses etc with request (0040,1002)", formalDefinition="Diagnoses etc provided with request." ) + protected StringType clinicalInformation; + + /** + * Type of procedure performed. + */ + @Child(name="procedure", type={Coding.class}, order=12, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Type of procedure performed (0008,1032)", formalDefinition="Type of procedure performed." ) + protected List procedure; + + /** + * Who read study and interpreted the images. + */ + @Child(name="interpreter", type={Practitioner.class}, order=13, min=0, max=1) + @Description(shortDefinition="Who interpreted images (0008,1060)", formalDefinition="Who read study and interpreted the images." ) + protected Reference interpreter; + + /** + * The actual object that is the target of the reference (Who read study and interpreted the images.) + */ + protected Practitioner interpreterTarget; + + /** + * Institution-generated description or classification of the Study (component) performed. + */ + @Child(name="description", type={StringType.class}, order=14, min=0, max=1) + @Description(shortDefinition="Institution-generated description (0008,1030)", formalDefinition="Institution-generated description or classification of the Study (component) performed." ) + protected StringType description; + + /** + * Each study has one or more series of image instances. + */ + @Child(name="series", type={}, order=15, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Each study has one or more series of instances", formalDefinition="Each study has one or more series of image instances." ) + protected List series; + + private static final long serialVersionUID = 712301092L; + + public ImagingStudy() { + super(); + } + + public ImagingStudy(Reference patient, OidType uid, IntegerType numberOfSeries, IntegerType numberOfInstances) { + super(); + this.patient = patient; + this.uid = uid; + this.numberOfSeries = numberOfSeries; + this.numberOfInstances = numberOfInstances; + } + + /** + * @return {@link #started} (Date and Time the study started.). This is the underlying object with id, value and extensions. The accessor "getStarted" gives direct access to the value + */ + public DateTimeType getStartedElement() { + if (this.started == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.started"); + else if (Configuration.doAutoCreate()) + this.started = new DateTimeType(); // bb + return this.started; + } + + public boolean hasStartedElement() { + return this.started != null && !this.started.isEmpty(); + } + + public boolean hasStarted() { + return this.started != null && !this.started.isEmpty(); + } + + /** + * @param value {@link #started} (Date and Time the study started.). This is the underlying object with id, value and extensions. The accessor "getStarted" gives direct access to the value + */ + public ImagingStudy setStartedElement(DateTimeType value) { + this.started = value; + return this; + } + + /** + * @return Date and Time the study started. + */ + public Date getStarted() { + return this.started == null ? null : this.started.getValue(); + } + + /** + * @param value Date and Time the study started. + */ + public ImagingStudy setStarted(Date value) { + if (value == null) + this.started = null; + else { + if (this.started == null) + this.started = new DateTimeType(); + this.started.setValue(value); + } + return this; + } + + /** + * @return {@link #patient} (The patient for whom the images are of.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (The patient for whom the images are of.) + */ + public ImagingStudy setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient for whom the images are of.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient for whom the images are of.) + */ + public ImagingStudy setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #uid} (Formal identifier for the study.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public OidType getUidElement() { + if (this.uid == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.uid"); + else if (Configuration.doAutoCreate()) + this.uid = new OidType(); // bb + return this.uid; + } + + public boolean hasUidElement() { + return this.uid != null && !this.uid.isEmpty(); + } + + public boolean hasUid() { + return this.uid != null && !this.uid.isEmpty(); + } + + /** + * @param value {@link #uid} (Formal identifier for the study.). This is the underlying object with id, value and extensions. The accessor "getUid" gives direct access to the value + */ + public ImagingStudy setUidElement(OidType value) { + this.uid = value; + return this; + } + + /** + * @return Formal identifier for the study. + */ + public String getUid() { + return this.uid == null ? null : this.uid.getValue(); + } + + /** + * @param value Formal identifier for the study. + */ + public ImagingStudy setUid(String value) { + if (this.uid == null) + this.uid = new OidType(); + this.uid.setValue(value); + return this; + } + + /** + * @return {@link #accession} (Accession Number.) + */ + public Identifier getAccession() { + if (this.accession == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.accession"); + else if (Configuration.doAutoCreate()) + this.accession = new Identifier(); // cc + return this.accession; + } + + public boolean hasAccession() { + return this.accession != null && !this.accession.isEmpty(); + } + + /** + * @param value {@link #accession} (Accession Number.) + */ + public ImagingStudy setAccession(Identifier value) { + this.accession = value; + return this; + } + + /** + * @return {@link #identifier} (Other identifiers for the study.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Other identifiers for the study.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #order} (A list of the diagnostic orders that resulted in this imaging study being performed.) + */ + public List getOrder() { + if (this.order == null) + this.order = new ArrayList(); + return this.order; + } + + public boolean hasOrder() { + if (this.order == null) + return false; + for (Reference item : this.order) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #order} (A list of the diagnostic orders that resulted in this imaging study being performed.) + */ + // syntactic sugar + public Reference addOrder() { //3 + Reference t = new Reference(); + if (this.order == null) + this.order = new ArrayList(); + this.order.add(t); + return t; + } + + /** + * @return {@link #order} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. A list of the diagnostic orders that resulted in this imaging study being performed.) + */ + public List getOrderTarget() { + if (this.orderTarget == null) + this.orderTarget = new ArrayList(); + return this.orderTarget; + } + + // syntactic sugar + /** + * @return {@link #order} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. A list of the diagnostic orders that resulted in this imaging study being performed.) + */ + public DiagnosticOrder addOrderTarget() { + DiagnosticOrder r = new DiagnosticOrder(); + if (this.orderTarget == null) + this.orderTarget = new ArrayList(); + this.orderTarget.add(r); + return r; + } + + /** + * @return {@link #modalityList} (A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).) + */ + public List> getModalityList() { + if (this.modalityList == null) + this.modalityList = new ArrayList>(); + return this.modalityList; + } + + public boolean hasModalityList() { + if (this.modalityList == null) + return false; + for (Enumeration item : this.modalityList) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #modalityList} (A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).) + */ + // syntactic sugar + public Enumeration addModalityListElement() {//2 + Enumeration t = new Enumeration(new ImagingModalityEnumFactory()); + if (this.modalityList == null) + this.modalityList = new ArrayList>(); + this.modalityList.add(t); + return t; + } + + /** + * @param value {@link #modalityList} (A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).) + */ + public ImagingStudy addModalityList(ImagingModality value) { //1 + Enumeration t = new Enumeration(new ImagingModalityEnumFactory()); + t.setValue(value); + if (this.modalityList == null) + this.modalityList = new ArrayList>(); + this.modalityList.add(t); + return this; + } + + /** + * @param value {@link #modalityList} (A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).) + */ + public boolean hasModalityList(ImagingModality value) { + if (this.modalityList == null) + return false; + for (Enumeration v : this.modalityList) + if (v.equals(value)) // code + return true; + return false; + } + + /** + * @return {@link #referrer} (The requesting/referring physician.) + */ + public Reference getReferrer() { + if (this.referrer == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.referrer"); + else if (Configuration.doAutoCreate()) + this.referrer = new Reference(); // cc + return this.referrer; + } + + public boolean hasReferrer() { + return this.referrer != null && !this.referrer.isEmpty(); + } + + /** + * @param value {@link #referrer} (The requesting/referring physician.) + */ + public ImagingStudy setReferrer(Reference value) { + this.referrer = value; + return this; + } + + /** + * @return {@link #referrer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The requesting/referring physician.) + */ + public Practitioner getReferrerTarget() { + if (this.referrerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.referrer"); + else if (Configuration.doAutoCreate()) + this.referrerTarget = new Practitioner(); // aa + return this.referrerTarget; + } + + /** + * @param value {@link #referrer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The requesting/referring physician.) + */ + public ImagingStudy setReferrerTarget(Practitioner value) { + this.referrerTarget = value; + return this; + } + + /** + * @return {@link #availability} (Availability of study (online, offline or nearline).). This is the underlying object with id, value and extensions. The accessor "getAvailability" gives direct access to the value + */ + public Enumeration getAvailabilityElement() { + if (this.availability == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.availability"); + else if (Configuration.doAutoCreate()) + this.availability = new Enumeration(new InstanceAvailabilityEnumFactory()); // bb + return this.availability; + } + + public boolean hasAvailabilityElement() { + return this.availability != null && !this.availability.isEmpty(); + } + + public boolean hasAvailability() { + return this.availability != null && !this.availability.isEmpty(); + } + + /** + * @param value {@link #availability} (Availability of study (online, offline or nearline).). This is the underlying object with id, value and extensions. The accessor "getAvailability" gives direct access to the value + */ + public ImagingStudy setAvailabilityElement(Enumeration value) { + this.availability = value; + return this; + } + + /** + * @return Availability of study (online, offline or nearline). + */ + public InstanceAvailability getAvailability() { + return this.availability == null ? null : this.availability.getValue(); + } + + /** + * @param value Availability of study (online, offline or nearline). + */ + public ImagingStudy setAvailability(InstanceAvailability value) { + if (value == null) + this.availability = null; + else { + if (this.availability == null) + this.availability = new Enumeration(new InstanceAvailabilityEnumFactory()); + this.availability.setValue(value); + } + return this; + } + + /** + * @return {@link #url} (WADO-RS URI where Study is available.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public UriType getUrlElement() { + if (this.url == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.url"); + else if (Configuration.doAutoCreate()) + this.url = new UriType(); // bb + return this.url; + } + + public boolean hasUrlElement() { + return this.url != null && !this.url.isEmpty(); + } + + public boolean hasUrl() { + return this.url != null && !this.url.isEmpty(); + } + + /** + * @param value {@link #url} (WADO-RS URI where Study is available.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value + */ + public ImagingStudy setUrlElement(UriType value) { + this.url = value; + return this; + } + + /** + * @return WADO-RS URI where Study is available. + */ + public String getUrl() { + return this.url == null ? null : this.url.getValue(); + } + + /** + * @param value WADO-RS URI where Study is available. + */ + public ImagingStudy setUrl(String value) { + if (Utilities.noString(value)) + this.url = null; + else { + if (this.url == null) + this.url = new UriType(); + this.url.setValue(value); + } + return this; + } + + /** + * @return {@link #numberOfSeries} (Number of Series in Study.). This is the underlying object with id, value and extensions. The accessor "getNumberOfSeries" gives direct access to the value + */ + public IntegerType getNumberOfSeriesElement() { + if (this.numberOfSeries == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.numberOfSeries"); + else if (Configuration.doAutoCreate()) + this.numberOfSeries = new IntegerType(); // bb + return this.numberOfSeries; + } + + public boolean hasNumberOfSeriesElement() { + return this.numberOfSeries != null && !this.numberOfSeries.isEmpty(); + } + + public boolean hasNumberOfSeries() { + return this.numberOfSeries != null && !this.numberOfSeries.isEmpty(); + } + + /** + * @param value {@link #numberOfSeries} (Number of Series in Study.). This is the underlying object with id, value and extensions. The accessor "getNumberOfSeries" gives direct access to the value + */ + public ImagingStudy setNumberOfSeriesElement(IntegerType value) { + this.numberOfSeries = value; + return this; + } + + /** + * @return Number of Series in Study. + */ + public int getNumberOfSeries() { + return this.numberOfSeries == null ? 0 : this.numberOfSeries.getValue(); + } + + /** + * @param value Number of Series in Study. + */ + public ImagingStudy setNumberOfSeries(int value) { + if (this.numberOfSeries == null) + this.numberOfSeries = new IntegerType(); + this.numberOfSeries.setValue(value); + return this; + } + + /** + * @return {@link #numberOfInstances} (Number of SOP Instances in Study.). This is the underlying object with id, value and extensions. The accessor "getNumberOfInstances" gives direct access to the value + */ + public IntegerType getNumberOfInstancesElement() { + if (this.numberOfInstances == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.numberOfInstances"); + else if (Configuration.doAutoCreate()) + this.numberOfInstances = new IntegerType(); // bb + return this.numberOfInstances; + } + + public boolean hasNumberOfInstancesElement() { + return this.numberOfInstances != null && !this.numberOfInstances.isEmpty(); + } + + public boolean hasNumberOfInstances() { + return this.numberOfInstances != null && !this.numberOfInstances.isEmpty(); + } + + /** + * @param value {@link #numberOfInstances} (Number of SOP Instances in Study.). This is the underlying object with id, value and extensions. The accessor "getNumberOfInstances" gives direct access to the value + */ + public ImagingStudy setNumberOfInstancesElement(IntegerType value) { + this.numberOfInstances = value; + return this; + } + + /** + * @return Number of SOP Instances in Study. + */ + public int getNumberOfInstances() { + return this.numberOfInstances == null ? 0 : this.numberOfInstances.getValue(); + } + + /** + * @param value Number of SOP Instances in Study. + */ + public ImagingStudy setNumberOfInstances(int value) { + if (this.numberOfInstances == null) + this.numberOfInstances = new IntegerType(); + this.numberOfInstances.setValue(value); + return this; + } + + /** + * @return {@link #clinicalInformation} (Diagnoses etc provided with request.). This is the underlying object with id, value and extensions. The accessor "getClinicalInformation" gives direct access to the value + */ + public StringType getClinicalInformationElement() { + if (this.clinicalInformation == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.clinicalInformation"); + else if (Configuration.doAutoCreate()) + this.clinicalInformation = new StringType(); // bb + return this.clinicalInformation; + } + + public boolean hasClinicalInformationElement() { + return this.clinicalInformation != null && !this.clinicalInformation.isEmpty(); + } + + public boolean hasClinicalInformation() { + return this.clinicalInformation != null && !this.clinicalInformation.isEmpty(); + } + + /** + * @param value {@link #clinicalInformation} (Diagnoses etc provided with request.). This is the underlying object with id, value and extensions. The accessor "getClinicalInformation" gives direct access to the value + */ + public ImagingStudy setClinicalInformationElement(StringType value) { + this.clinicalInformation = value; + return this; + } + + /** + * @return Diagnoses etc provided with request. + */ + public String getClinicalInformation() { + return this.clinicalInformation == null ? null : this.clinicalInformation.getValue(); + } + + /** + * @param value Diagnoses etc provided with request. + */ + public ImagingStudy setClinicalInformation(String value) { + if (Utilities.noString(value)) + this.clinicalInformation = null; + else { + if (this.clinicalInformation == null) + this.clinicalInformation = new StringType(); + this.clinicalInformation.setValue(value); + } + return this; + } + + /** + * @return {@link #procedure} (Type of procedure performed.) + */ + public List getProcedure() { + if (this.procedure == null) + this.procedure = new ArrayList(); + return this.procedure; + } + + public boolean hasProcedure() { + if (this.procedure == null) + return false; + for (Coding item : this.procedure) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #procedure} (Type of procedure performed.) + */ + // syntactic sugar + public Coding addProcedure() { //3 + Coding t = new Coding(); + if (this.procedure == null) + this.procedure = new ArrayList(); + this.procedure.add(t); + return t; + } + + /** + * @return {@link #interpreter} (Who read study and interpreted the images.) + */ + public Reference getInterpreter() { + if (this.interpreter == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.interpreter"); + else if (Configuration.doAutoCreate()) + this.interpreter = new Reference(); // cc + return this.interpreter; + } + + public boolean hasInterpreter() { + return this.interpreter != null && !this.interpreter.isEmpty(); + } + + /** + * @param value {@link #interpreter} (Who read study and interpreted the images.) + */ + public ImagingStudy setInterpreter(Reference value) { + this.interpreter = value; + return this; + } + + /** + * @return {@link #interpreter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who read study and interpreted the images.) + */ + public Practitioner getInterpreterTarget() { + if (this.interpreterTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.interpreter"); + else if (Configuration.doAutoCreate()) + this.interpreterTarget = new Practitioner(); // aa + return this.interpreterTarget; + } + + /** + * @param value {@link #interpreter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who read study and interpreted the images.) + */ + public ImagingStudy setInterpreterTarget(Practitioner value) { + this.interpreterTarget = value; + return this; + } + + /** + * @return {@link #description} (Institution-generated description or classification of the Study (component) performed.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImagingStudy.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Institution-generated description or classification of the Study (component) performed.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public ImagingStudy setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Institution-generated description or classification of the Study (component) performed. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Institution-generated description or classification of the Study (component) performed. + */ + public ImagingStudy setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #series} (Each study has one or more series of image instances.) + */ + public List getSeries() { + if (this.series == null) + this.series = new ArrayList(); + return this.series; + } + + public boolean hasSeries() { + if (this.series == null) + return false; + for (ImagingStudySeriesComponent item : this.series) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #series} (Each study has one or more series of image instances.) + */ + // syntactic sugar + public ImagingStudySeriesComponent addSeries() { //3 + ImagingStudySeriesComponent t = new ImagingStudySeriesComponent(); + if (this.series == null) + this.series = new ArrayList(); + this.series.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("started", "dateTime", "Date and Time the study started.", 0, java.lang.Integer.MAX_VALUE, started)); + childrenList.add(new Property("patient", "Reference(Patient)", "The patient for whom the images are of.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("uid", "oid", "Formal identifier for the study.", 0, java.lang.Integer.MAX_VALUE, uid)); + childrenList.add(new Property("accession", "Identifier", "Accession Number.", 0, java.lang.Integer.MAX_VALUE, accession)); + childrenList.add(new Property("identifier", "Identifier", "Other identifiers for the study.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("order", "Reference(DiagnosticOrder)", "A list of the diagnostic orders that resulted in this imaging study being performed.", 0, java.lang.Integer.MAX_VALUE, order)); + childrenList.add(new Property("modalityList", "code", "A list of all the Series.ImageModality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19).", 0, java.lang.Integer.MAX_VALUE, modalityList)); + childrenList.add(new Property("referrer", "Reference(Practitioner)", "The requesting/referring physician.", 0, java.lang.Integer.MAX_VALUE, referrer)); + childrenList.add(new Property("availability", "code", "Availability of study (online, offline or nearline).", 0, java.lang.Integer.MAX_VALUE, availability)); + childrenList.add(new Property("url", "uri", "WADO-RS URI where Study is available.", 0, java.lang.Integer.MAX_VALUE, url)); + childrenList.add(new Property("numberOfSeries", "integer", "Number of Series in Study.", 0, java.lang.Integer.MAX_VALUE, numberOfSeries)); + childrenList.add(new Property("numberOfInstances", "integer", "Number of SOP Instances in Study.", 0, java.lang.Integer.MAX_VALUE, numberOfInstances)); + childrenList.add(new Property("clinicalInformation", "string", "Diagnoses etc provided with request.", 0, java.lang.Integer.MAX_VALUE, clinicalInformation)); + childrenList.add(new Property("procedure", "Coding", "Type of procedure performed.", 0, java.lang.Integer.MAX_VALUE, procedure)); + childrenList.add(new Property("interpreter", "Reference(Practitioner)", "Who read study and interpreted the images.", 0, java.lang.Integer.MAX_VALUE, interpreter)); + childrenList.add(new Property("description", "string", "Institution-generated description or classification of the Study (component) performed.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("series", "", "Each study has one or more series of image instances.", 0, java.lang.Integer.MAX_VALUE, series)); + } + + public ImagingStudy copy() { + ImagingStudy dst = new ImagingStudy(); + copyValues(dst); + dst.started = started == null ? null : started.copy(); + dst.patient = patient == null ? null : patient.copy(); + dst.uid = uid == null ? null : uid.copy(); + dst.accession = accession == null ? null : accession.copy(); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + if (order != null) { + dst.order = new ArrayList(); + for (Reference i : order) + dst.order.add(i.copy()); + }; + if (modalityList != null) { + dst.modalityList = new ArrayList>(); + for (Enumeration i : modalityList) + dst.modalityList.add(i.copy()); + }; + dst.referrer = referrer == null ? null : referrer.copy(); + dst.availability = availability == null ? null : availability.copy(); + dst.url = url == null ? null : url.copy(); + dst.numberOfSeries = numberOfSeries == null ? null : numberOfSeries.copy(); + dst.numberOfInstances = numberOfInstances == null ? null : numberOfInstances.copy(); + dst.clinicalInformation = clinicalInformation == null ? null : clinicalInformation.copy(); + if (procedure != null) { + dst.procedure = new ArrayList(); + for (Coding i : procedure) + dst.procedure.add(i.copy()); + }; + dst.interpreter = interpreter == null ? null : interpreter.copy(); + dst.description = description == null ? null : description.copy(); + if (series != null) { + dst.series = new ArrayList(); + for (ImagingStudySeriesComponent i : series) + dst.series.add(i.copy()); + }; + return dst; + } + + protected ImagingStudy typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ImagingStudy)) + return false; + ImagingStudy o = (ImagingStudy) other; + return compareDeep(started, o.started, true) && compareDeep(patient, o.patient, true) && compareDeep(uid, o.uid, true) + && compareDeep(accession, o.accession, true) && compareDeep(identifier, o.identifier, true) && compareDeep(order, o.order, true) + && compareDeep(modalityList, o.modalityList, true) && compareDeep(referrer, o.referrer, true) && compareDeep(availability, o.availability, true) + && compareDeep(url, o.url, true) && compareDeep(numberOfSeries, o.numberOfSeries, true) && compareDeep(numberOfInstances, o.numberOfInstances, true) + && compareDeep(clinicalInformation, o.clinicalInformation, true) && compareDeep(procedure, o.procedure, true) + && compareDeep(interpreter, o.interpreter, true) && compareDeep(description, o.description, true) + && compareDeep(series, o.series, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ImagingStudy)) + return false; + ImagingStudy o = (ImagingStudy) other; + return compareValues(started, o.started, true) && compareValues(uid, o.uid, true) && compareValues(modalityList, o.modalityList, true) + && compareValues(availability, o.availability, true) && compareValues(url, o.url, true) && compareValues(numberOfSeries, o.numberOfSeries, true) + && compareValues(numberOfInstances, o.numberOfInstances, true) && compareValues(clinicalInformation, o.clinicalInformation, true) + && compareValues(description, o.description, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (started == null || started.isEmpty()) && (patient == null || patient.isEmpty()) + && (uid == null || uid.isEmpty()) && (accession == null || accession.isEmpty()) && (identifier == null || identifier.isEmpty()) + && (order == null || order.isEmpty()) && (modalityList == null || modalityList.isEmpty()) + && (referrer == null || referrer.isEmpty()) && (availability == null || availability.isEmpty()) + && (url == null || url.isEmpty()) && (numberOfSeries == null || numberOfSeries.isEmpty()) + && (numberOfInstances == null || numberOfInstances.isEmpty()) && (clinicalInformation == null || clinicalInformation.isEmpty()) + && (procedure == null || procedure.isEmpty()) && (interpreter == null || interpreter.isEmpty()) + && (description == null || description.isEmpty()) && (series == null || series.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.ImagingStudy; + } + + @SearchParamDefinition(name="uid", path="ImagingStudy.series.instance.uid", description="Formal identifier for this instance (0008,0018)", type="token" ) + public static final String SP_UID = "uid"; + @SearchParamDefinition(name="series", path="ImagingStudy.series.uid", description="The series id for the image", type="token" ) + public static final String SP_SERIES = "series"; + @SearchParamDefinition(name="patient", path="ImagingStudy.patient", description="Who the study is about", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="bodysite", path="ImagingStudy.series.bodySite", description="Body part examined (Map from 0018,0015)", type="token" ) + public static final String SP_BODYSITE = "bodysite"; + @SearchParamDefinition(name="accession", path="ImagingStudy.accession", description="The accession id for the image", type="token" ) + public static final String SP_ACCESSION = "accession"; + @SearchParamDefinition(name="study", path="ImagingStudy.uid", description="The study id for the image", type="token" ) + public static final String SP_STUDY = "study"; + @SearchParamDefinition(name="modality", path="ImagingStudy.series.modality", description="The modality of the image", type="token" ) + public static final String SP_MODALITY = "modality"; + @SearchParamDefinition(name="started", path="ImagingStudy.started", description="When the study was started", type="date" ) + public static final String SP_STARTED = "started"; + @SearchParamDefinition(name="dicom-class", path="ImagingStudy.series.instance.sopclass", description="DICOM class type (0008,0016)", type="token" ) + public static final String SP_DICOMCLASS = "dicom-class"; + @SearchParamDefinition(name="size", path="", description="The size of the image in MB - may include > or < in the value", type="number" ) + public static final String SP_SIZE = "size"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization$ImmunizationExplanationComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization$ImmunizationExplanationComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..79bf865ef33b8b30d2e7960209ef9845bc63e5c9 GIT binary patch literal 3947 zcmbVOTXPfV8Gb%VMzXv%AczR2AtE7QTYzYRCapch#wJ9>b_fPj+|qb0E!M(nSM07Z zCI{N)&{NVwI=vu0UA43wrqj-}P|8dvy-8#>6^S;`@{r69Q25ppX=y2m9ykdcO5m9|E+r{AD~l`2o~ZcpT9w^pSxj+8(`hWkaYbRB zYv`V1D{L6QpkLN=Ro}F7#)23(gYQ(l3U-wPN_7rk$t?6~q+-S+P zinJE9^)kbX`HK}k_O{h;jz*!waf^l3aJQKGt}aHy@x#*oGgui%;$ zNri!}_ezfIj~VAp+ms_Fex|gTG0WwuZC(u$&Nzia)pd;`Q9tjvW!-8N-+eNuh?iNQ znx46=7Ye3rWEONUqZb(}YhzG%pF&SqyGh4CW?nXe93l$a?{il)iy49)x>Xnm9kj47 zLQOt4c!q20*0kYzOy+ccOhFx2=w@Z5;{LR5RgDgT?4!T``yb@fkmP-sQ1g#V}7jf*K^7X>S3B6KN7`adA;VIZz(!FJ;jBh56 zMMk0*i_3>OI(ZmgvsD!~uB5VD37)NZYB*bQR6o-!mNVeAYmh3N`kH|d5C@x2+h=~l zbt;DIFS6@`5)_;Y)6C=>7e4>vYZ8lxal1&SA6EQR=JLl zL32#*sAZIyAz8J1jhyO|$tkDm7L4aiVe7`m^!CZ1e3+Sa#BvH32Q?hVvl@2b3D&tj zYe!sHUzC9x$5jol;8l`R!)rLE;dNY7$UX!gHOz?KSMXI0hwy}k7jZ&iXFChaWMPjs zjY*03YjM1xkZ)(85t%hvpy5rtrQsxwYdC{1Xm}f6*Kk&LCvkd>WSgqVxlu)F zCq#Xr@qEg6O?!SY?B_u8fhYNVtFG_+q^Ps4q{V|t%(mUXR$Hy^2^kSx1r7n-HNw8! z**tD)Nz^|LX8LEy<1{}f!0(rsa2gRj$+rl0;we7&bGHi}*zNJM?~70c^kX28EcWEF z7yI(a1u~!Z@EIKNaFABW*aurV)M(|i_gi^dtUQBWd=8)IANgPq%Md?~l(Ze!VV>;Z zQ}Nj`a2x7(+$fB2P0}qe$`HnQa)i4`AU@3GM10G@?-BVcdIs(ydiFMAe?UY|e#@&! zV4#PBz;VR!0#X>K8No%RYLFbImFIAb>o6}C_!RMjq1BG)P1)Q*hr)RF4%R7L$5w9Q z3LhXbvF8>#-$zI6=8dI)MsHFtbh(|*fD>F_LMNMN7p92oDZ)BML{A4HbR*Vz51ny5 zzwKkHv5^^L7{ob-AW84Oiv&|jj<-&cVRS`sCRQ%x6d#1*D@5^CqWBt7e4Qv>YeF$5^P6QFCgQV|OMnO|4ID zNNtR!Qc}Cy*i@@kaJ89NkAzp+%2l25DRLcngSC8fT5{s67QV(~ zHxO&+)?Tcmt@jz`k2r09jE(pSHsPmu6h8|>(hy4~?qL^$8kP~of5ciGQh$k~SL*($ z7IDPtGa>Zyb9(s&z1*OeU((C3=;haemlz^R_NaU$)U1manQ#X<5Ffjay gFMT3WB5{uD5zZd@lMw?i^LdKDB=>1{@Dw`#2R{A3?f?J) literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization$ImmunizationReactionComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization$ImmunizationReactionComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..a30e2b60b967daf6975c54a4a7945f9dccd5c892 GIT binary patch literal 6670 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 O{{-H*h!%PWHUAE_=iLba literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization.class new file mode 100644 index 0000000000000000000000000000000000000000..9258e61e9ffabff51bbc7841cb7853f5fbf380d6 GIT binary patch literal 26065 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 Kh`$fgkpBY^YU98F literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Immunization.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization.java similarity index 76% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Immunization.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization.java index 61a488bb7be..88ed98fa3c0 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Immunization.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Immunization.java @@ -1,1740 +1,1865 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Immunization event information. - */ -@ResourceDef(name="Immunization", profile="http://hl7.org/fhir/Profile/Immunization") -public class Immunization extends DomainResource { - - @Block() - public static class ImmunizationExplanationComponent extends BackboneElement { - /** - * Reasons why a vaccine was administered. - */ - @Child(name="reason", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Why immunization occurred", formalDefinition="Reasons why a vaccine was administered." ) - protected List reason; - - /** - * Refusal or exemption reasons. - */ - @Child(name="refusalReason", type={CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Why immunization did not occur", formalDefinition="Refusal or exemption reasons." ) - protected List refusalReason; - - private static final long serialVersionUID = 1023767180L; - - public ImmunizationExplanationComponent() { - super(); - } - - /** - * @return {@link #reason} (Reasons why a vaccine was administered.) - */ - public List getReason() { - if (this.reason == null) - this.reason = new ArrayList(); - return this.reason; - } - - public boolean hasReason() { - if (this.reason == null) - return false; - for (CodeableConcept item : this.reason) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #reason} (Reasons why a vaccine was administered.) - */ - // syntactic sugar - public CodeableConcept addReason() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.reason == null) - this.reason = new ArrayList(); - this.reason.add(t); - return t; - } - - /** - * @return {@link #refusalReason} (Refusal or exemption reasons.) - */ - public List getRefusalReason() { - if (this.refusalReason == null) - this.refusalReason = new ArrayList(); - return this.refusalReason; - } - - public boolean hasRefusalReason() { - if (this.refusalReason == null) - return false; - for (CodeableConcept item : this.refusalReason) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #refusalReason} (Refusal or exemption reasons.) - */ - // syntactic sugar - public CodeableConcept addRefusalReason() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.refusalReason == null) - this.refusalReason = new ArrayList(); - this.refusalReason.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("reason", "CodeableConcept", "Reasons why a vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, reason)); - childrenList.add(new Property("refusalReason", "CodeableConcept", "Refusal or exemption reasons.", 0, java.lang.Integer.MAX_VALUE, refusalReason)); - } - - public ImmunizationExplanationComponent copy() { - ImmunizationExplanationComponent dst = new ImmunizationExplanationComponent(); - copyValues(dst); - if (reason != null) { - dst.reason = new ArrayList(); - for (CodeableConcept i : reason) - dst.reason.add(i.copy()); - }; - if (refusalReason != null) { - dst.refusalReason = new ArrayList(); - for (CodeableConcept i : refusalReason) - dst.refusalReason.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (reason == null || reason.isEmpty()) && (refusalReason == null || refusalReason.isEmpty()) - ; - } - - } - - @Block() - public static class ImmunizationReactionComponent extends BackboneElement { - /** - * Date of reaction to the immunization. - */ - @Child(name="date", type={DateTimeType.class}, order=1, min=0, max=1) - @Description(shortDefinition="When did reaction start?", formalDefinition="Date of reaction to the immunization." ) - protected DateTimeType date; - - /** - * Details of the reaction. - */ - @Child(name="detail", type={Observation.class}, order=2, min=0, max=1) - @Description(shortDefinition="Additional information on reaction", formalDefinition="Details of the reaction." ) - protected Reference detail; - - /** - * The actual object that is the target of the reference (Details of the reaction.) - */ - protected Observation detailTarget; - - /** - * Self-reported indicator. - */ - @Child(name="reported", type={BooleanType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Was reaction self-reported?", formalDefinition="Self-reported indicator." ) - protected BooleanType reported; - - private static final long serialVersionUID = -1297668556L; - - public ImmunizationReactionComponent() { - super(); - } - - /** - * @return {@link #date} (Date of reaction to the immunization.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationReactionComponent.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (Date of reaction to the immunization.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public ImmunizationReactionComponent setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return Date of reaction to the immunization. - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value Date of reaction to the immunization. - */ - public ImmunizationReactionComponent setDate(Date value) { - if (value == null) - this.date = null; - else { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - } - return this; - } - - /** - * @return {@link #detail} (Details of the reaction.) - */ - public Reference getDetail() { - if (this.detail == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationReactionComponent.detail"); - else if (Configuration.doAutoCreate()) - this.detail = new Reference(); - return this.detail; - } - - public boolean hasDetail() { - return this.detail != null && !this.detail.isEmpty(); - } - - /** - * @param value {@link #detail} (Details of the reaction.) - */ - public ImmunizationReactionComponent setDetail(Reference value) { - this.detail = value; - return this; - } - - /** - * @return {@link #detail} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Details of the reaction.) - */ - public Observation getDetailTarget() { - if (this.detailTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationReactionComponent.detail"); - else if (Configuration.doAutoCreate()) - this.detailTarget = new Observation(); - return this.detailTarget; - } - - /** - * @param value {@link #detail} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Details of the reaction.) - */ - public ImmunizationReactionComponent setDetailTarget(Observation value) { - this.detailTarget = value; - return this; - } - - /** - * @return {@link #reported} (Self-reported indicator.). This is the underlying object with id, value and extensions. The accessor "getReported" gives direct access to the value - */ - public BooleanType getReportedElement() { - if (this.reported == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationReactionComponent.reported"); - else if (Configuration.doAutoCreate()) - this.reported = new BooleanType(); - return this.reported; - } - - public boolean hasReportedElement() { - return this.reported != null && !this.reported.isEmpty(); - } - - public boolean hasReported() { - return this.reported != null && !this.reported.isEmpty(); - } - - /** - * @param value {@link #reported} (Self-reported indicator.). This is the underlying object with id, value and extensions. The accessor "getReported" gives direct access to the value - */ - public ImmunizationReactionComponent setReportedElement(BooleanType value) { - this.reported = value; - return this; - } - - /** - * @return Self-reported indicator. - */ - public boolean getReported() { - return this.reported == null ? false : this.reported.getValue(); - } - - /** - * @param value Self-reported indicator. - */ - public ImmunizationReactionComponent setReported(boolean value) { - if (value == false) - this.reported = null; - else { - if (this.reported == null) - this.reported = new BooleanType(); - this.reported.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("date", "dateTime", "Date of reaction to the immunization.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("detail", "Reference(Observation)", "Details of the reaction.", 0, java.lang.Integer.MAX_VALUE, detail)); - childrenList.add(new Property("reported", "boolean", "Self-reported indicator.", 0, java.lang.Integer.MAX_VALUE, reported)); - } - - public ImmunizationReactionComponent copy() { - ImmunizationReactionComponent dst = new ImmunizationReactionComponent(); - copyValues(dst); - dst.date = date == null ? null : date.copy(); - dst.detail = detail == null ? null : detail.copy(); - dst.reported = reported == null ? null : reported.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (date == null || date.isEmpty()) && (detail == null || detail.isEmpty()) - && (reported == null || reported.isEmpty()); - } - - } - - @Block() - public static class ImmunizationVaccinationProtocolComponent extends BackboneElement { - /** - * Nominal position in a series. - */ - @Child(name="doseSequence", type={IntegerType.class}, order=1, min=1, max=1) - @Description(shortDefinition="What dose number within series?", formalDefinition="Nominal position in a series." ) - protected IntegerType doseSequence; - - /** - * Contains the description about the protocol under which the vaccine was administered. - */ - @Child(name="description", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Details of vaccine protocol", formalDefinition="Contains the description about the protocol under which the vaccine was administered." ) - protected StringType description; - - /** - * Indicates the authority who published the protocol? E.g. ACIP. - */ - @Child(name="authority", type={Organization.class}, order=3, min=0, max=1) - @Description(shortDefinition="Who is responsible for protocol", formalDefinition="Indicates the authority who published the protocol? E.g. ACIP." ) - protected Reference authority; - - /** - * The actual object that is the target of the reference (Indicates the authority who published the protocol? E.g. ACIP.) - */ - protected Organization authorityTarget; - - /** - * One possible path to achieve presumed immunity against a disease - within the context of an authority. - */ - @Child(name="series", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Name of vaccine series", formalDefinition="One possible path to achieve presumed immunity against a disease - within the context of an authority." ) - protected StringType series; - - /** - * The recommended number of doses to achieve immunity. - */ - @Child(name="seriesDoses", type={IntegerType.class}, order=5, min=0, max=1) - @Description(shortDefinition="Recommended number of doses for immunity", formalDefinition="The recommended number of doses to achieve immunity." ) - protected IntegerType seriesDoses; - - /** - * The targeted disease. - */ - @Child(name="doseTarget", type={CodeableConcept.class}, order=6, min=1, max=1) - @Description(shortDefinition="Disease immunized against", formalDefinition="The targeted disease." ) - protected CodeableConcept doseTarget; - - /** - * Indicates if the immunization event should "count" against the protocol. - */ - @Child(name="doseStatus", type={CodeableConcept.class}, order=7, min=1, max=1) - @Description(shortDefinition="Does dose count towards immunity?", formalDefinition="Indicates if the immunization event should 'count' against the protocol." ) - protected CodeableConcept doseStatus; - - /** - * Provides an explanation as to why a immunization event should or should not count against the protocol. - */ - @Child(name="doseStatusReason", type={CodeableConcept.class}, order=8, min=0, max=1) - @Description(shortDefinition="Why does does count/not count?", formalDefinition="Provides an explanation as to why a immunization event should or should not count against the protocol." ) - protected CodeableConcept doseStatusReason; - - private static final long serialVersionUID = 747305824L; - - public ImmunizationVaccinationProtocolComponent() { - super(); - } - - public ImmunizationVaccinationProtocolComponent(IntegerType doseSequence, CodeableConcept doseTarget, CodeableConcept doseStatus) { - super(); - this.doseSequence = doseSequence; - this.doseTarget = doseTarget; - this.doseStatus = doseStatus; - } - - /** - * @return {@link #doseSequence} (Nominal position in a series.). This is the underlying object with id, value and extensions. The accessor "getDoseSequence" gives direct access to the value - */ - public IntegerType getDoseSequenceElement() { - if (this.doseSequence == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.doseSequence"); - else if (Configuration.doAutoCreate()) - this.doseSequence = new IntegerType(); - return this.doseSequence; - } - - public boolean hasDoseSequenceElement() { - return this.doseSequence != null && !this.doseSequence.isEmpty(); - } - - public boolean hasDoseSequence() { - return this.doseSequence != null && !this.doseSequence.isEmpty(); - } - - /** - * @param value {@link #doseSequence} (Nominal position in a series.). This is the underlying object with id, value and extensions. The accessor "getDoseSequence" gives direct access to the value - */ - public ImmunizationVaccinationProtocolComponent setDoseSequenceElement(IntegerType value) { - this.doseSequence = value; - return this; - } - - /** - * @return Nominal position in a series. - */ - public int getDoseSequence() { - return this.doseSequence == null ? null : this.doseSequence.getValue(); - } - - /** - * @param value Nominal position in a series. - */ - public ImmunizationVaccinationProtocolComponent setDoseSequence(int value) { - if (this.doseSequence == null) - this.doseSequence = new IntegerType(); - this.doseSequence.setValue(value); - return this; - } - - /** - * @return {@link #description} (Contains the description about the protocol under which the vaccine was administered.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Contains the description about the protocol under which the vaccine was administered.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public ImmunizationVaccinationProtocolComponent setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Contains the description about the protocol under which the vaccine was administered. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Contains the description about the protocol under which the vaccine was administered. - */ - public ImmunizationVaccinationProtocolComponent setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #authority} (Indicates the authority who published the protocol? E.g. ACIP.) - */ - public Reference getAuthority() { - if (this.authority == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.authority"); - else if (Configuration.doAutoCreate()) - this.authority = new Reference(); - return this.authority; - } - - public boolean hasAuthority() { - return this.authority != null && !this.authority.isEmpty(); - } - - /** - * @param value {@link #authority} (Indicates the authority who published the protocol? E.g. ACIP.) - */ - public ImmunizationVaccinationProtocolComponent setAuthority(Reference value) { - this.authority = value; - return this; - } - - /** - * @return {@link #authority} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates the authority who published the protocol? E.g. ACIP.) - */ - public Organization getAuthorityTarget() { - if (this.authorityTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.authority"); - else if (Configuration.doAutoCreate()) - this.authorityTarget = new Organization(); - return this.authorityTarget; - } - - /** - * @param value {@link #authority} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates the authority who published the protocol? E.g. ACIP.) - */ - public ImmunizationVaccinationProtocolComponent setAuthorityTarget(Organization value) { - this.authorityTarget = value; - return this; - } - - /** - * @return {@link #series} (One possible path to achieve presumed immunity against a disease - within the context of an authority.). This is the underlying object with id, value and extensions. The accessor "getSeries" gives direct access to the value - */ - public StringType getSeriesElement() { - if (this.series == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.series"); - else if (Configuration.doAutoCreate()) - this.series = new StringType(); - return this.series; - } - - public boolean hasSeriesElement() { - return this.series != null && !this.series.isEmpty(); - } - - public boolean hasSeries() { - return this.series != null && !this.series.isEmpty(); - } - - /** - * @param value {@link #series} (One possible path to achieve presumed immunity against a disease - within the context of an authority.). This is the underlying object with id, value and extensions. The accessor "getSeries" gives direct access to the value - */ - public ImmunizationVaccinationProtocolComponent setSeriesElement(StringType value) { - this.series = value; - return this; - } - - /** - * @return One possible path to achieve presumed immunity against a disease - within the context of an authority. - */ - public String getSeries() { - return this.series == null ? null : this.series.getValue(); - } - - /** - * @param value One possible path to achieve presumed immunity against a disease - within the context of an authority. - */ - public ImmunizationVaccinationProtocolComponent setSeries(String value) { - if (Utilities.noString(value)) - this.series = null; - else { - if (this.series == null) - this.series = new StringType(); - this.series.setValue(value); - } - return this; - } - - /** - * @return {@link #seriesDoses} (The recommended number of doses to achieve immunity.). This is the underlying object with id, value and extensions. The accessor "getSeriesDoses" gives direct access to the value - */ - public IntegerType getSeriesDosesElement() { - if (this.seriesDoses == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.seriesDoses"); - else if (Configuration.doAutoCreate()) - this.seriesDoses = new IntegerType(); - return this.seriesDoses; - } - - public boolean hasSeriesDosesElement() { - return this.seriesDoses != null && !this.seriesDoses.isEmpty(); - } - - public boolean hasSeriesDoses() { - return this.seriesDoses != null && !this.seriesDoses.isEmpty(); - } - - /** - * @param value {@link #seriesDoses} (The recommended number of doses to achieve immunity.). This is the underlying object with id, value and extensions. The accessor "getSeriesDoses" gives direct access to the value - */ - public ImmunizationVaccinationProtocolComponent setSeriesDosesElement(IntegerType value) { - this.seriesDoses = value; - return this; - } - - /** - * @return The recommended number of doses to achieve immunity. - */ - public int getSeriesDoses() { - return this.seriesDoses == null ? null : this.seriesDoses.getValue(); - } - - /** - * @param value The recommended number of doses to achieve immunity. - */ - public ImmunizationVaccinationProtocolComponent setSeriesDoses(int value) { - if (value == -1) - this.seriesDoses = null; - else { - if (this.seriesDoses == null) - this.seriesDoses = new IntegerType(); - this.seriesDoses.setValue(value); - } - return this; - } - - /** - * @return {@link #doseTarget} (The targeted disease.) - */ - public CodeableConcept getDoseTarget() { - if (this.doseTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.doseTarget"); - else if (Configuration.doAutoCreate()) - this.doseTarget = new CodeableConcept(); - return this.doseTarget; - } - - public boolean hasDoseTarget() { - return this.doseTarget != null && !this.doseTarget.isEmpty(); - } - - /** - * @param value {@link #doseTarget} (The targeted disease.) - */ - public ImmunizationVaccinationProtocolComponent setDoseTarget(CodeableConcept value) { - this.doseTarget = value; - return this; - } - - /** - * @return {@link #doseStatus} (Indicates if the immunization event should "count" against the protocol.) - */ - public CodeableConcept getDoseStatus() { - if (this.doseStatus == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.doseStatus"); - else if (Configuration.doAutoCreate()) - this.doseStatus = new CodeableConcept(); - return this.doseStatus; - } - - public boolean hasDoseStatus() { - return this.doseStatus != null && !this.doseStatus.isEmpty(); - } - - /** - * @param value {@link #doseStatus} (Indicates if the immunization event should "count" against the protocol.) - */ - public ImmunizationVaccinationProtocolComponent setDoseStatus(CodeableConcept value) { - this.doseStatus = value; - return this; - } - - /** - * @return {@link #doseStatusReason} (Provides an explanation as to why a immunization event should or should not count against the protocol.) - */ - public CodeableConcept getDoseStatusReason() { - if (this.doseStatusReason == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.doseStatusReason"); - else if (Configuration.doAutoCreate()) - this.doseStatusReason = new CodeableConcept(); - return this.doseStatusReason; - } - - public boolean hasDoseStatusReason() { - return this.doseStatusReason != null && !this.doseStatusReason.isEmpty(); - } - - /** - * @param value {@link #doseStatusReason} (Provides an explanation as to why a immunization event should or should not count against the protocol.) - */ - public ImmunizationVaccinationProtocolComponent setDoseStatusReason(CodeableConcept value) { - this.doseStatusReason = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("doseSequence", "integer", "Nominal position in a series.", 0, java.lang.Integer.MAX_VALUE, doseSequence)); - childrenList.add(new Property("description", "string", "Contains the description about the protocol under which the vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("authority", "Reference(Organization)", "Indicates the authority who published the protocol? E.g. ACIP.", 0, java.lang.Integer.MAX_VALUE, authority)); - childrenList.add(new Property("series", "string", "One possible path to achieve presumed immunity against a disease - within the context of an authority.", 0, java.lang.Integer.MAX_VALUE, series)); - childrenList.add(new Property("seriesDoses", "integer", "The recommended number of doses to achieve immunity.", 0, java.lang.Integer.MAX_VALUE, seriesDoses)); - childrenList.add(new Property("doseTarget", "CodeableConcept", "The targeted disease.", 0, java.lang.Integer.MAX_VALUE, doseTarget)); - childrenList.add(new Property("doseStatus", "CodeableConcept", "Indicates if the immunization event should 'count' against the protocol.", 0, java.lang.Integer.MAX_VALUE, doseStatus)); - childrenList.add(new Property("doseStatusReason", "CodeableConcept", "Provides an explanation as to why a immunization event should or should not count against the protocol.", 0, java.lang.Integer.MAX_VALUE, doseStatusReason)); - } - - public ImmunizationVaccinationProtocolComponent copy() { - ImmunizationVaccinationProtocolComponent dst = new ImmunizationVaccinationProtocolComponent(); - copyValues(dst); - dst.doseSequence = doseSequence == null ? null : doseSequence.copy(); - dst.description = description == null ? null : description.copy(); - dst.authority = authority == null ? null : authority.copy(); - dst.series = series == null ? null : series.copy(); - dst.seriesDoses = seriesDoses == null ? null : seriesDoses.copy(); - dst.doseTarget = doseTarget == null ? null : doseTarget.copy(); - dst.doseStatus = doseStatus == null ? null : doseStatus.copy(); - dst.doseStatusReason = doseStatusReason == null ? null : doseStatusReason.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (doseSequence == null || doseSequence.isEmpty()) && (description == null || description.isEmpty()) - && (authority == null || authority.isEmpty()) && (series == null || series.isEmpty()) && (seriesDoses == null || seriesDoses.isEmpty()) - && (doseTarget == null || doseTarget.isEmpty()) && (doseStatus == null || doseStatus.isEmpty()) - && (doseStatusReason == null || doseStatusReason.isEmpty()); - } - - } - - /** - * A unique identifier assigned to this adverse reaction record. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Business identifier", formalDefinition="A unique identifier assigned to this adverse reaction record." ) - protected List identifier; - - /** - * Date vaccine administered or was to be administered. - */ - @Child(name="date", type={DateTimeType.class}, order=0, min=1, max=1) - @Description(shortDefinition="Vaccination administration date", formalDefinition="Date vaccine administered or was to be administered." ) - protected DateTimeType date; - - /** - * Vaccine that was administered or was to be administered. - */ - @Child(name="vaccineType", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="Vaccine product administered", formalDefinition="Vaccine that was administered or was to be administered." ) - protected CodeableConcept vaccineType; - - /** - * The patient to whom the vaccine was to be administered. - */ - @Child(name="subject", type={Patient.class}, order=2, min=1, max=1) - @Description(shortDefinition="Who was immunized?", formalDefinition="The patient to whom the vaccine was to be administered." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (The patient to whom the vaccine was to be administered.) - */ - protected Patient subjectTarget; - - /** - * Indicates if the vaccination was refused. - */ - @Child(name="refusedIndicator", type={BooleanType.class}, order=3, min=1, max=1) - @Description(shortDefinition="Was immunization refused?", formalDefinition="Indicates if the vaccination was refused." ) - protected BooleanType refusedIndicator; - - /** - * True if this administration was reported rather than directly administered. - */ - @Child(name="reported", type={BooleanType.class}, order=4, min=1, max=1) - @Description(shortDefinition="Is this a self-reported record?", formalDefinition="True if this administration was reported rather than directly administered." ) - protected BooleanType reported; - - /** - * Clinician who administered the vaccine. - */ - @Child(name="performer", type={Practitioner.class}, order=5, min=0, max=1) - @Description(shortDefinition="Who administered vaccine?", formalDefinition="Clinician who administered the vaccine." ) - protected Reference performer; - - /** - * The actual object that is the target of the reference (Clinician who administered the vaccine.) - */ - protected Practitioner performerTarget; - - /** - * Clinician who ordered the vaccination. - */ - @Child(name="requester", type={Practitioner.class}, order=6, min=0, max=1) - @Description(shortDefinition="Who ordered vaccination?", formalDefinition="Clinician who ordered the vaccination." ) - protected Reference requester; - - /** - * The actual object that is the target of the reference (Clinician who ordered the vaccination.) - */ - protected Practitioner requesterTarget; - - /** - * Name of vaccine manufacturer. - */ - @Child(name="manufacturer", type={Organization.class}, order=7, min=0, max=1) - @Description(shortDefinition="Vaccine manufacturer", formalDefinition="Name of vaccine manufacturer." ) - protected Reference manufacturer; - - /** - * The actual object that is the target of the reference (Name of vaccine manufacturer.) - */ - protected Organization manufacturerTarget; - - /** - * The service delivery location where the vaccine administration occurred. - */ - @Child(name="location", type={Location.class}, order=8, min=0, max=1) - @Description(shortDefinition="Where did vaccination occur?", formalDefinition="The service delivery location where the vaccine administration occurred." ) - protected Reference location; - - /** - * The actual object that is the target of the reference (The service delivery location where the vaccine administration occurred.) - */ - protected Location locationTarget; - - /** - * Lot number of the vaccine product. - */ - @Child(name="lotNumber", type={StringType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Vaccine lot number", formalDefinition="Lot number of the vaccine product." ) - protected StringType lotNumber; - - /** - * Date vaccine batch expires. - */ - @Child(name="expirationDate", type={DateType.class}, order=10, min=0, max=1) - @Description(shortDefinition="Vaccine expiration date", formalDefinition="Date vaccine batch expires." ) - protected DateType expirationDate; - - /** - * Body site where vaccine was administered. - */ - @Child(name="site", type={CodeableConcept.class}, order=11, min=0, max=1) - @Description(shortDefinition="Body site vaccine was administered", formalDefinition="Body site where vaccine was administered." ) - protected CodeableConcept site; - - /** - * The path by which the vaccine product is taken into the body. - */ - @Child(name="route", type={CodeableConcept.class}, order=12, min=0, max=1) - @Description(shortDefinition="How vaccine entered body", formalDefinition="The path by which the vaccine product is taken into the body." ) - protected CodeableConcept route; - - /** - * The quantity of vaccine product that was administered. - */ - @Child(name="doseQuantity", type={Quantity.class}, order=13, min=0, max=1) - @Description(shortDefinition="Amount of vaccine administered", formalDefinition="The quantity of vaccine product that was administered." ) - protected Quantity doseQuantity; - - /** - * Reasons why a vaccine was administered or refused. - */ - @Child(name="explanation", type={}, order=14, min=0, max=1) - @Description(shortDefinition="Administration / refusal reasons", formalDefinition="Reasons why a vaccine was administered or refused." ) - protected ImmunizationExplanationComponent explanation; - - /** - * Categorical data indicating that an adverse event is associated in time to an immunization. - */ - @Child(name="reaction", type={}, order=15, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Details of a reaction that follows immunization", formalDefinition="Categorical data indicating that an adverse event is associated in time to an immunization." ) - protected List reaction; - - /** - * Contains information about the protocol(s) under which the vaccine was administered. - */ - @Child(name="vaccinationProtocol", type={}, order=16, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="What protocol was followed", formalDefinition="Contains information about the protocol(s) under which the vaccine was administered." ) - protected List vaccinationProtocol; - - private static final long serialVersionUID = -1398570384L; - - public Immunization() { - super(); - } - - public Immunization(DateTimeType date, CodeableConcept vaccineType, Reference subject, BooleanType refusedIndicator, BooleanType reported) { - super(); - this.date = date; - this.vaccineType = vaccineType; - this.subject = subject; - this.refusedIndicator = refusedIndicator; - this.reported = reported; - } - - /** - * @return {@link #identifier} (A unique identifier assigned to this adverse reaction record.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (A unique identifier assigned to this adverse reaction record.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #date} (Date vaccine administered or was to be administered.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (Date vaccine administered or was to be administered.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public Immunization setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return Date vaccine administered or was to be administered. - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value Date vaccine administered or was to be administered. - */ - public Immunization setDate(Date value) { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - return this; - } - - /** - * @return {@link #vaccineType} (Vaccine that was administered or was to be administered.) - */ - public CodeableConcept getVaccineType() { - if (this.vaccineType == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.vaccineType"); - else if (Configuration.doAutoCreate()) - this.vaccineType = new CodeableConcept(); - return this.vaccineType; - } - - public boolean hasVaccineType() { - return this.vaccineType != null && !this.vaccineType.isEmpty(); - } - - /** - * @param value {@link #vaccineType} (Vaccine that was administered or was to be administered.) - */ - public Immunization setVaccineType(CodeableConcept value) { - this.vaccineType = value; - return this; - } - - /** - * @return {@link #subject} (The patient to whom the vaccine was to be administered.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (The patient to whom the vaccine was to be administered.) - */ - public Immunization setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient to whom the vaccine was to be administered.) - */ - public Patient getSubjectTarget() { - if (this.subjectTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.subject"); - else if (Configuration.doAutoCreate()) - this.subjectTarget = new Patient(); - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient to whom the vaccine was to be administered.) - */ - public Immunization setSubjectTarget(Patient value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #refusedIndicator} (Indicates if the vaccination was refused.). This is the underlying object with id, value and extensions. The accessor "getRefusedIndicator" gives direct access to the value - */ - public BooleanType getRefusedIndicatorElement() { - if (this.refusedIndicator == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.refusedIndicator"); - else if (Configuration.doAutoCreate()) - this.refusedIndicator = new BooleanType(); - return this.refusedIndicator; - } - - public boolean hasRefusedIndicatorElement() { - return this.refusedIndicator != null && !this.refusedIndicator.isEmpty(); - } - - public boolean hasRefusedIndicator() { - return this.refusedIndicator != null && !this.refusedIndicator.isEmpty(); - } - - /** - * @param value {@link #refusedIndicator} (Indicates if the vaccination was refused.). This is the underlying object with id, value and extensions. The accessor "getRefusedIndicator" gives direct access to the value - */ - public Immunization setRefusedIndicatorElement(BooleanType value) { - this.refusedIndicator = value; - return this; - } - - /** - * @return Indicates if the vaccination was refused. - */ - public boolean getRefusedIndicator() { - return this.refusedIndicator == null ? false : this.refusedIndicator.getValue(); - } - - /** - * @param value Indicates if the vaccination was refused. - */ - public Immunization setRefusedIndicator(boolean value) { - if (this.refusedIndicator == null) - this.refusedIndicator = new BooleanType(); - this.refusedIndicator.setValue(value); - return this; - } - - /** - * @return {@link #reported} (True if this administration was reported rather than directly administered.). This is the underlying object with id, value and extensions. The accessor "getReported" gives direct access to the value - */ - public BooleanType getReportedElement() { - if (this.reported == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.reported"); - else if (Configuration.doAutoCreate()) - this.reported = new BooleanType(); - return this.reported; - } - - public boolean hasReportedElement() { - return this.reported != null && !this.reported.isEmpty(); - } - - public boolean hasReported() { - return this.reported != null && !this.reported.isEmpty(); - } - - /** - * @param value {@link #reported} (True if this administration was reported rather than directly administered.). This is the underlying object with id, value and extensions. The accessor "getReported" gives direct access to the value - */ - public Immunization setReportedElement(BooleanType value) { - this.reported = value; - return this; - } - - /** - * @return True if this administration was reported rather than directly administered. - */ - public boolean getReported() { - return this.reported == null ? false : this.reported.getValue(); - } - - /** - * @param value True if this administration was reported rather than directly administered. - */ - public Immunization setReported(boolean value) { - if (this.reported == null) - this.reported = new BooleanType(); - this.reported.setValue(value); - return this; - } - - /** - * @return {@link #performer} (Clinician who administered the vaccine.) - */ - public Reference getPerformer() { - if (this.performer == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.performer"); - else if (Configuration.doAutoCreate()) - this.performer = new Reference(); - return this.performer; - } - - public boolean hasPerformer() { - return this.performer != null && !this.performer.isEmpty(); - } - - /** - * @param value {@link #performer} (Clinician who administered the vaccine.) - */ - public Immunization setPerformer(Reference value) { - this.performer = value; - return this; - } - - /** - * @return {@link #performer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Clinician who administered the vaccine.) - */ - public Practitioner getPerformerTarget() { - if (this.performerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.performer"); - else if (Configuration.doAutoCreate()) - this.performerTarget = new Practitioner(); - return this.performerTarget; - } - - /** - * @param value {@link #performer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Clinician who administered the vaccine.) - */ - public Immunization setPerformerTarget(Practitioner value) { - this.performerTarget = value; - return this; - } - - /** - * @return {@link #requester} (Clinician who ordered the vaccination.) - */ - public Reference getRequester() { - if (this.requester == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.requester"); - else if (Configuration.doAutoCreate()) - this.requester = new Reference(); - return this.requester; - } - - public boolean hasRequester() { - return this.requester != null && !this.requester.isEmpty(); - } - - /** - * @param value {@link #requester} (Clinician who ordered the vaccination.) - */ - public Immunization setRequester(Reference value) { - this.requester = value; - return this; - } - - /** - * @return {@link #requester} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Clinician who ordered the vaccination.) - */ - public Practitioner getRequesterTarget() { - if (this.requesterTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.requester"); - else if (Configuration.doAutoCreate()) - this.requesterTarget = new Practitioner(); - return this.requesterTarget; - } - - /** - * @param value {@link #requester} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Clinician who ordered the vaccination.) - */ - public Immunization setRequesterTarget(Practitioner value) { - this.requesterTarget = value; - return this; - } - - /** - * @return {@link #manufacturer} (Name of vaccine manufacturer.) - */ - public Reference getManufacturer() { - if (this.manufacturer == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.manufacturer"); - else if (Configuration.doAutoCreate()) - this.manufacturer = new Reference(); - return this.manufacturer; - } - - public boolean hasManufacturer() { - return this.manufacturer != null && !this.manufacturer.isEmpty(); - } - - /** - * @param value {@link #manufacturer} (Name of vaccine manufacturer.) - */ - public Immunization setManufacturer(Reference value) { - this.manufacturer = value; - return this; - } - - /** - * @return {@link #manufacturer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Name of vaccine manufacturer.) - */ - public Organization getManufacturerTarget() { - if (this.manufacturerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.manufacturer"); - else if (Configuration.doAutoCreate()) - this.manufacturerTarget = new Organization(); - return this.manufacturerTarget; - } - - /** - * @param value {@link #manufacturer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Name of vaccine manufacturer.) - */ - public Immunization setManufacturerTarget(Organization value) { - this.manufacturerTarget = value; - return this; - } - - /** - * @return {@link #location} (The service delivery location where the vaccine administration occurred.) - */ - public Reference getLocation() { - if (this.location == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.location"); - else if (Configuration.doAutoCreate()) - this.location = new Reference(); - return this.location; - } - - public boolean hasLocation() { - return this.location != null && !this.location.isEmpty(); - } - - /** - * @param value {@link #location} (The service delivery location where the vaccine administration occurred.) - */ - public Immunization setLocation(Reference value) { - this.location = value; - return this; - } - - /** - * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The service delivery location where the vaccine administration occurred.) - */ - public Location getLocationTarget() { - if (this.locationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.location"); - else if (Configuration.doAutoCreate()) - this.locationTarget = new Location(); - return this.locationTarget; - } - - /** - * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The service delivery location where the vaccine administration occurred.) - */ - public Immunization setLocationTarget(Location value) { - this.locationTarget = value; - return this; - } - - /** - * @return {@link #lotNumber} (Lot number of the vaccine product.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value - */ - public StringType getLotNumberElement() { - if (this.lotNumber == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.lotNumber"); - else if (Configuration.doAutoCreate()) - this.lotNumber = new StringType(); - return this.lotNumber; - } - - public boolean hasLotNumberElement() { - return this.lotNumber != null && !this.lotNumber.isEmpty(); - } - - public boolean hasLotNumber() { - return this.lotNumber != null && !this.lotNumber.isEmpty(); - } - - /** - * @param value {@link #lotNumber} (Lot number of the vaccine product.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value - */ - public Immunization setLotNumberElement(StringType value) { - this.lotNumber = value; - return this; - } - - /** - * @return Lot number of the vaccine product. - */ - public String getLotNumber() { - return this.lotNumber == null ? null : this.lotNumber.getValue(); - } - - /** - * @param value Lot number of the vaccine product. - */ - public Immunization setLotNumber(String value) { - if (Utilities.noString(value)) - this.lotNumber = null; - else { - if (this.lotNumber == null) - this.lotNumber = new StringType(); - this.lotNumber.setValue(value); - } - return this; - } - - /** - * @return {@link #expirationDate} (Date vaccine batch expires.). This is the underlying object with id, value and extensions. The accessor "getExpirationDate" gives direct access to the value - */ - public DateType getExpirationDateElement() { - if (this.expirationDate == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.expirationDate"); - else if (Configuration.doAutoCreate()) - this.expirationDate = new DateType(); - return this.expirationDate; - } - - public boolean hasExpirationDateElement() { - return this.expirationDate != null && !this.expirationDate.isEmpty(); - } - - public boolean hasExpirationDate() { - return this.expirationDate != null && !this.expirationDate.isEmpty(); - } - - /** - * @param value {@link #expirationDate} (Date vaccine batch expires.). This is the underlying object with id, value and extensions. The accessor "getExpirationDate" gives direct access to the value - */ - public Immunization setExpirationDateElement(DateType value) { - this.expirationDate = value; - return this; - } - - /** - * @return Date vaccine batch expires. - */ - public Date getExpirationDate() { - return this.expirationDate == null ? null : this.expirationDate.getValue(); - } - - /** - * @param value Date vaccine batch expires. - */ - public Immunization setExpirationDate(Date value) { - if (value == null) - this.expirationDate = null; - else { - if (this.expirationDate == null) - this.expirationDate = new DateType(); - this.expirationDate.setValue(value); - } - return this; - } - - /** - * @return {@link #site} (Body site where vaccine was administered.) - */ - public CodeableConcept getSite() { - if (this.site == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.site"); - else if (Configuration.doAutoCreate()) - this.site = new CodeableConcept(); - return this.site; - } - - public boolean hasSite() { - return this.site != null && !this.site.isEmpty(); - } - - /** - * @param value {@link #site} (Body site where vaccine was administered.) - */ - public Immunization setSite(CodeableConcept value) { - this.site = value; - return this; - } - - /** - * @return {@link #route} (The path by which the vaccine product is taken into the body.) - */ - public CodeableConcept getRoute() { - if (this.route == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.route"); - else if (Configuration.doAutoCreate()) - this.route = new CodeableConcept(); - return this.route; - } - - public boolean hasRoute() { - return this.route != null && !this.route.isEmpty(); - } - - /** - * @param value {@link #route} (The path by which the vaccine product is taken into the body.) - */ - public Immunization setRoute(CodeableConcept value) { - this.route = value; - return this; - } - - /** - * @return {@link #doseQuantity} (The quantity of vaccine product that was administered.) - */ - public Quantity getDoseQuantity() { - if (this.doseQuantity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.doseQuantity"); - else if (Configuration.doAutoCreate()) - this.doseQuantity = new Quantity(); - return this.doseQuantity; - } - - public boolean hasDoseQuantity() { - return this.doseQuantity != null && !this.doseQuantity.isEmpty(); - } - - /** - * @param value {@link #doseQuantity} (The quantity of vaccine product that was administered.) - */ - public Immunization setDoseQuantity(Quantity value) { - this.doseQuantity = value; - return this; - } - - /** - * @return {@link #explanation} (Reasons why a vaccine was administered or refused.) - */ - public ImmunizationExplanationComponent getExplanation() { - if (this.explanation == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Immunization.explanation"); - else if (Configuration.doAutoCreate()) - this.explanation = new ImmunizationExplanationComponent(); - return this.explanation; - } - - public boolean hasExplanation() { - return this.explanation != null && !this.explanation.isEmpty(); - } - - /** - * @param value {@link #explanation} (Reasons why a vaccine was administered or refused.) - */ - public Immunization setExplanation(ImmunizationExplanationComponent value) { - this.explanation = value; - return this; - } - - /** - * @return {@link #reaction} (Categorical data indicating that an adverse event is associated in time to an immunization.) - */ - public List getReaction() { - if (this.reaction == null) - this.reaction = new ArrayList(); - return this.reaction; - } - - public boolean hasReaction() { - if (this.reaction == null) - return false; - for (ImmunizationReactionComponent item : this.reaction) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #reaction} (Categorical data indicating that an adverse event is associated in time to an immunization.) - */ - // syntactic sugar - public ImmunizationReactionComponent addReaction() { //3 - ImmunizationReactionComponent t = new ImmunizationReactionComponent(); - if (this.reaction == null) - this.reaction = new ArrayList(); - this.reaction.add(t); - return t; - } - - /** - * @return {@link #vaccinationProtocol} (Contains information about the protocol(s) under which the vaccine was administered.) - */ - public List getVaccinationProtocol() { - if (this.vaccinationProtocol == null) - this.vaccinationProtocol = new ArrayList(); - return this.vaccinationProtocol; - } - - public boolean hasVaccinationProtocol() { - if (this.vaccinationProtocol == null) - return false; - for (ImmunizationVaccinationProtocolComponent item : this.vaccinationProtocol) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #vaccinationProtocol} (Contains information about the protocol(s) under which the vaccine was administered.) - */ - // syntactic sugar - public ImmunizationVaccinationProtocolComponent addVaccinationProtocol() { //3 - ImmunizationVaccinationProtocolComponent t = new ImmunizationVaccinationProtocolComponent(); - if (this.vaccinationProtocol == null) - this.vaccinationProtocol = new ArrayList(); - this.vaccinationProtocol.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "A unique identifier assigned to this adverse reaction record.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("date", "dateTime", "Date vaccine administered or was to be administered.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("vaccineType", "CodeableConcept", "Vaccine that was administered or was to be administered.", 0, java.lang.Integer.MAX_VALUE, vaccineType)); - childrenList.add(new Property("subject", "Reference(Patient)", "The patient to whom the vaccine was to be administered.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("refusedIndicator", "boolean", "Indicates if the vaccination was refused.", 0, java.lang.Integer.MAX_VALUE, refusedIndicator)); - childrenList.add(new Property("reported", "boolean", "True if this administration was reported rather than directly administered.", 0, java.lang.Integer.MAX_VALUE, reported)); - childrenList.add(new Property("performer", "Reference(Practitioner)", "Clinician who administered the vaccine.", 0, java.lang.Integer.MAX_VALUE, performer)); - childrenList.add(new Property("requester", "Reference(Practitioner)", "Clinician who ordered the vaccination.", 0, java.lang.Integer.MAX_VALUE, requester)); - childrenList.add(new Property("manufacturer", "Reference(Organization)", "Name of vaccine manufacturer.", 0, java.lang.Integer.MAX_VALUE, manufacturer)); - childrenList.add(new Property("location", "Reference(Location)", "The service delivery location where the vaccine administration occurred.", 0, java.lang.Integer.MAX_VALUE, location)); - childrenList.add(new Property("lotNumber", "string", "Lot number of the vaccine product.", 0, java.lang.Integer.MAX_VALUE, lotNumber)); - childrenList.add(new Property("expirationDate", "date", "Date vaccine batch expires.", 0, java.lang.Integer.MAX_VALUE, expirationDate)); - childrenList.add(new Property("site", "CodeableConcept", "Body site where vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, site)); - childrenList.add(new Property("route", "CodeableConcept", "The path by which the vaccine product is taken into the body.", 0, java.lang.Integer.MAX_VALUE, route)); - childrenList.add(new Property("doseQuantity", "Quantity", "The quantity of vaccine product that was administered.", 0, java.lang.Integer.MAX_VALUE, doseQuantity)); - childrenList.add(new Property("explanation", "", "Reasons why a vaccine was administered or refused.", 0, java.lang.Integer.MAX_VALUE, explanation)); - childrenList.add(new Property("reaction", "", "Categorical data indicating that an adverse event is associated in time to an immunization.", 0, java.lang.Integer.MAX_VALUE, reaction)); - childrenList.add(new Property("vaccinationProtocol", "", "Contains information about the protocol(s) under which the vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, vaccinationProtocol)); - } - - public Immunization copy() { - Immunization dst = new Immunization(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.date = date == null ? null : date.copy(); - dst.vaccineType = vaccineType == null ? null : vaccineType.copy(); - dst.subject = subject == null ? null : subject.copy(); - dst.refusedIndicator = refusedIndicator == null ? null : refusedIndicator.copy(); - dst.reported = reported == null ? null : reported.copy(); - dst.performer = performer == null ? null : performer.copy(); - dst.requester = requester == null ? null : requester.copy(); - dst.manufacturer = manufacturer == null ? null : manufacturer.copy(); - dst.location = location == null ? null : location.copy(); - dst.lotNumber = lotNumber == null ? null : lotNumber.copy(); - dst.expirationDate = expirationDate == null ? null : expirationDate.copy(); - dst.site = site == null ? null : site.copy(); - dst.route = route == null ? null : route.copy(); - dst.doseQuantity = doseQuantity == null ? null : doseQuantity.copy(); - dst.explanation = explanation == null ? null : explanation.copy(); - if (reaction != null) { - dst.reaction = new ArrayList(); - for (ImmunizationReactionComponent i : reaction) - dst.reaction.add(i.copy()); - }; - if (vaccinationProtocol != null) { - dst.vaccinationProtocol = new ArrayList(); - for (ImmunizationVaccinationProtocolComponent i : vaccinationProtocol) - dst.vaccinationProtocol.add(i.copy()); - }; - return dst; - } - - protected Immunization typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (date == null || date.isEmpty()) - && (vaccineType == null || vaccineType.isEmpty()) && (subject == null || subject.isEmpty()) - && (refusedIndicator == null || refusedIndicator.isEmpty()) && (reported == null || reported.isEmpty()) - && (performer == null || performer.isEmpty()) && (requester == null || requester.isEmpty()) - && (manufacturer == null || manufacturer.isEmpty()) && (location == null || location.isEmpty()) - && (lotNumber == null || lotNumber.isEmpty()) && (expirationDate == null || expirationDate.isEmpty()) - && (site == null || site.isEmpty()) && (route == null || route.isEmpty()) && (doseQuantity == null || doseQuantity.isEmpty()) - && (explanation == null || explanation.isEmpty()) && (reaction == null || reaction.isEmpty()) - && (vaccinationProtocol == null || vaccinationProtocol.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Immunization; - } - - @SearchParamDefinition(name="reaction", path="Immunization.reaction.detail", description="Additional information on reaction", type="reference" ) - public static final String SP_REACTION = "reaction"; - @SearchParamDefinition(name="requester", path="Immunization.requester", description="The practitioner who ordered the vaccination", type="reference" ) - public static final String SP_REQUESTER = "requester"; - @SearchParamDefinition(name="dose-sequence", path="Immunization.vaccinationProtocol.doseSequence", description="What dose number within series?", type="number" ) - public static final String SP_DOSESEQUENCE = "dose-sequence"; - @SearchParamDefinition(name="vaccine-type", path="Immunization.vaccineType", description="Vaccine Product Type Administered", type="token" ) - public static final String SP_VACCINETYPE = "vaccine-type"; - @SearchParamDefinition(name="location", path="Immunization.location", description="The service delivery location or facility in which the vaccine was / was to be administered", type="reference" ) - public static final String SP_LOCATION = "location"; - @SearchParamDefinition(name="reason", path="Immunization.explanation.reason", description="Why immunization occurred", type="token" ) - public static final String SP_REASON = "reason"; - @SearchParamDefinition(name="subject", path="Immunization.subject", description="The subject of the vaccination event / refusal", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="reaction-date", path="Immunization.reaction.date", description="When did reaction start?", type="date" ) - public static final String SP_REACTIONDATE = "reaction-date"; - @SearchParamDefinition(name="date", path="Immunization.date", description="Vaccination Administration / Refusal Date", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="patient", path="Immunization.subject", description="The patient for the vaccination event / refusal", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="lot-number", path="Immunization.lotNumber", description="Vaccine Lot Number", type="string" ) - public static final String SP_LOTNUMBER = "lot-number"; - @SearchParamDefinition(name="manufacturer", path="Immunization.manufacturer", description="Vaccine Manufacturer", type="reference" ) - public static final String SP_MANUFACTURER = "manufacturer"; - @SearchParamDefinition(name="performer", path="Immunization.performer", description="The practitioner who administered the vaccination", type="reference" ) - public static final String SP_PERFORMER = "performer"; - @SearchParamDefinition(name="refusal-reason", path="Immunization.explanation.refusalReason", description="Explanation of refusal / exemption", type="token" ) - public static final String SP_REFUSALREASON = "refusal-reason"; - @SearchParamDefinition(name="refused", path="Immunization.refusedIndicator", description="Was immunization refused?", type="token" ) - public static final String SP_REFUSED = "refused"; - @SearchParamDefinition(name="identifier", path="Immunization.identifier", description="Business identifier", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Immunization event information. + */ +@ResourceDef(name="Immunization", profile="http://hl7.org/fhir/Profile/Immunization") +public class Immunization extends DomainResource { + + @Block() + public static class ImmunizationExplanationComponent extends BackboneElement { + /** + * Reasons why a vaccine was administered. + */ + @Child(name="reason", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Why immunization occurred", formalDefinition="Reasons why a vaccine was administered." ) + protected List reason; + + /** + * Reason why a vaccine was not administered. + */ + @Child(name="reasonNotGiven", type={CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Why immunization did not occur", formalDefinition="Reason why a vaccine was not administered." ) + protected List reasonNotGiven; + + private static final long serialVersionUID = -539821866L; + + public ImmunizationExplanationComponent() { + super(); + } + + /** + * @return {@link #reason} (Reasons why a vaccine was administered.) + */ + public List getReason() { + if (this.reason == null) + this.reason = new ArrayList(); + return this.reason; + } + + public boolean hasReason() { + if (this.reason == null) + return false; + for (CodeableConcept item : this.reason) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #reason} (Reasons why a vaccine was administered.) + */ + // syntactic sugar + public CodeableConcept addReason() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.reason == null) + this.reason = new ArrayList(); + this.reason.add(t); + return t; + } + + /** + * @return {@link #reasonNotGiven} (Reason why a vaccine was not administered.) + */ + public List getReasonNotGiven() { + if (this.reasonNotGiven == null) + this.reasonNotGiven = new ArrayList(); + return this.reasonNotGiven; + } + + public boolean hasReasonNotGiven() { + if (this.reasonNotGiven == null) + return false; + for (CodeableConcept item : this.reasonNotGiven) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #reasonNotGiven} (Reason why a vaccine was not administered.) + */ + // syntactic sugar + public CodeableConcept addReasonNotGiven() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.reasonNotGiven == null) + this.reasonNotGiven = new ArrayList(); + this.reasonNotGiven.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("reason", "CodeableConcept", "Reasons why a vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, reason)); + childrenList.add(new Property("reasonNotGiven", "CodeableConcept", "Reason why a vaccine was not administered.", 0, java.lang.Integer.MAX_VALUE, reasonNotGiven)); + } + + public ImmunizationExplanationComponent copy() { + ImmunizationExplanationComponent dst = new ImmunizationExplanationComponent(); + copyValues(dst); + if (reason != null) { + dst.reason = new ArrayList(); + for (CodeableConcept i : reason) + dst.reason.add(i.copy()); + }; + if (reasonNotGiven != null) { + dst.reasonNotGiven = new ArrayList(); + for (CodeableConcept i : reasonNotGiven) + dst.reasonNotGiven.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ImmunizationExplanationComponent)) + return false; + ImmunizationExplanationComponent o = (ImmunizationExplanationComponent) other; + return compareDeep(reason, o.reason, true) && compareDeep(reasonNotGiven, o.reasonNotGiven, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ImmunizationExplanationComponent)) + return false; + ImmunizationExplanationComponent o = (ImmunizationExplanationComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (reason == null || reason.isEmpty()) && (reasonNotGiven == null || reasonNotGiven.isEmpty()) + ; + } + + } + + @Block() + public static class ImmunizationReactionComponent extends BackboneElement { + /** + * Date of reaction to the immunization. + */ + @Child(name="date", type={DateTimeType.class}, order=1, min=0, max=1) + @Description(shortDefinition="When did reaction start?", formalDefinition="Date of reaction to the immunization." ) + protected DateTimeType date; + + /** + * Details of the reaction. + */ + @Child(name="detail", type={Observation.class}, order=2, min=0, max=1) + @Description(shortDefinition="Additional information on reaction", formalDefinition="Details of the reaction." ) + protected Reference detail; + + /** + * The actual object that is the target of the reference (Details of the reaction.) + */ + protected Observation detailTarget; + + /** + * Self-reported indicator. + */ + @Child(name="reported", type={BooleanType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Was reaction self-reported?", formalDefinition="Self-reported indicator." ) + protected BooleanType reported; + + private static final long serialVersionUID = -1297668556L; + + public ImmunizationReactionComponent() { + super(); + } + + /** + * @return {@link #date} (Date of reaction to the immunization.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationReactionComponent.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (Date of reaction to the immunization.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public ImmunizationReactionComponent setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return Date of reaction to the immunization. + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value Date of reaction to the immunization. + */ + public ImmunizationReactionComponent setDate(Date value) { + if (value == null) + this.date = null; + else { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + } + return this; + } + + /** + * @return {@link #detail} (Details of the reaction.) + */ + public Reference getDetail() { + if (this.detail == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationReactionComponent.detail"); + else if (Configuration.doAutoCreate()) + this.detail = new Reference(); // cc + return this.detail; + } + + public boolean hasDetail() { + return this.detail != null && !this.detail.isEmpty(); + } + + /** + * @param value {@link #detail} (Details of the reaction.) + */ + public ImmunizationReactionComponent setDetail(Reference value) { + this.detail = value; + return this; + } + + /** + * @return {@link #detail} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Details of the reaction.) + */ + public Observation getDetailTarget() { + if (this.detailTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationReactionComponent.detail"); + else if (Configuration.doAutoCreate()) + this.detailTarget = new Observation(); // aa + return this.detailTarget; + } + + /** + * @param value {@link #detail} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Details of the reaction.) + */ + public ImmunizationReactionComponent setDetailTarget(Observation value) { + this.detailTarget = value; + return this; + } + + /** + * @return {@link #reported} (Self-reported indicator.). This is the underlying object with id, value and extensions. The accessor "getReported" gives direct access to the value + */ + public BooleanType getReportedElement() { + if (this.reported == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationReactionComponent.reported"); + else if (Configuration.doAutoCreate()) + this.reported = new BooleanType(); // bb + return this.reported; + } + + public boolean hasReportedElement() { + return this.reported != null && !this.reported.isEmpty(); + } + + public boolean hasReported() { + return this.reported != null && !this.reported.isEmpty(); + } + + /** + * @param value {@link #reported} (Self-reported indicator.). This is the underlying object with id, value and extensions. The accessor "getReported" gives direct access to the value + */ + public ImmunizationReactionComponent setReportedElement(BooleanType value) { + this.reported = value; + return this; + } + + /** + * @return Self-reported indicator. + */ + public boolean getReported() { + return this.reported == null ? false : this.reported.getValue(); + } + + /** + * @param value Self-reported indicator. + */ + public ImmunizationReactionComponent setReported(boolean value) { + if (this.reported == null) + this.reported = new BooleanType(); + this.reported.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("date", "dateTime", "Date of reaction to the immunization.", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("detail", "Reference(Observation)", "Details of the reaction.", 0, java.lang.Integer.MAX_VALUE, detail)); + childrenList.add(new Property("reported", "boolean", "Self-reported indicator.", 0, java.lang.Integer.MAX_VALUE, reported)); + } + + public ImmunizationReactionComponent copy() { + ImmunizationReactionComponent dst = new ImmunizationReactionComponent(); + copyValues(dst); + dst.date = date == null ? null : date.copy(); + dst.detail = detail == null ? null : detail.copy(); + dst.reported = reported == null ? null : reported.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ImmunizationReactionComponent)) + return false; + ImmunizationReactionComponent o = (ImmunizationReactionComponent) other; + return compareDeep(date, o.date, true) && compareDeep(detail, o.detail, true) && compareDeep(reported, o.reported, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ImmunizationReactionComponent)) + return false; + ImmunizationReactionComponent o = (ImmunizationReactionComponent) other; + return compareValues(date, o.date, true) && compareValues(reported, o.reported, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (date == null || date.isEmpty()) && (detail == null || detail.isEmpty()) + && (reported == null || reported.isEmpty()); + } + + } + + @Block() + public static class ImmunizationVaccinationProtocolComponent extends BackboneElement { + /** + * Nominal position in a series. + */ + @Child(name="doseSequence", type={IntegerType.class}, order=1, min=1, max=1) + @Description(shortDefinition="What dose number within series?", formalDefinition="Nominal position in a series." ) + protected IntegerType doseSequence; + + /** + * Contains the description about the protocol under which the vaccine was administered. + */ + @Child(name="description", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Details of vaccine protocol", formalDefinition="Contains the description about the protocol under which the vaccine was administered." ) + protected StringType description; + + /** + * Indicates the authority who published the protocol? E.g. ACIP. + */ + @Child(name="authority", type={Organization.class}, order=3, min=0, max=1) + @Description(shortDefinition="Who is responsible for protocol", formalDefinition="Indicates the authority who published the protocol? E.g. ACIP." ) + protected Reference authority; + + /** + * The actual object that is the target of the reference (Indicates the authority who published the protocol? E.g. ACIP.) + */ + protected Organization authorityTarget; + + /** + * One possible path to achieve presumed immunity against a disease - within the context of an authority. + */ + @Child(name="series", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Name of vaccine series", formalDefinition="One possible path to achieve presumed immunity against a disease - within the context of an authority." ) + protected StringType series; + + /** + * The recommended number of doses to achieve immunity. + */ + @Child(name="seriesDoses", type={IntegerType.class}, order=5, min=0, max=1) + @Description(shortDefinition="Recommended number of doses for immunity", formalDefinition="The recommended number of doses to achieve immunity." ) + protected IntegerType seriesDoses; + + /** + * The targeted disease. + */ + @Child(name="doseTarget", type={CodeableConcept.class}, order=6, min=1, max=1) + @Description(shortDefinition="Disease immunized against", formalDefinition="The targeted disease." ) + protected CodeableConcept doseTarget; + + /** + * Indicates if the immunization event should "count" against the protocol. + */ + @Child(name="doseStatus", type={CodeableConcept.class}, order=7, min=1, max=1) + @Description(shortDefinition="Does dose count towards immunity?", formalDefinition="Indicates if the immunization event should 'count' against the protocol." ) + protected CodeableConcept doseStatus; + + /** + * Provides an explanation as to why a immunization event should or should not count against the protocol. + */ + @Child(name="doseStatusReason", type={CodeableConcept.class}, order=8, min=0, max=1) + @Description(shortDefinition="Why does does count/not count?", formalDefinition="Provides an explanation as to why a immunization event should or should not count against the protocol." ) + protected CodeableConcept doseStatusReason; + + private static final long serialVersionUID = 747305824L; + + public ImmunizationVaccinationProtocolComponent() { + super(); + } + + public ImmunizationVaccinationProtocolComponent(IntegerType doseSequence, CodeableConcept doseTarget, CodeableConcept doseStatus) { + super(); + this.doseSequence = doseSequence; + this.doseTarget = doseTarget; + this.doseStatus = doseStatus; + } + + /** + * @return {@link #doseSequence} (Nominal position in a series.). This is the underlying object with id, value and extensions. The accessor "getDoseSequence" gives direct access to the value + */ + public IntegerType getDoseSequenceElement() { + if (this.doseSequence == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.doseSequence"); + else if (Configuration.doAutoCreate()) + this.doseSequence = new IntegerType(); // bb + return this.doseSequence; + } + + public boolean hasDoseSequenceElement() { + return this.doseSequence != null && !this.doseSequence.isEmpty(); + } + + public boolean hasDoseSequence() { + return this.doseSequence != null && !this.doseSequence.isEmpty(); + } + + /** + * @param value {@link #doseSequence} (Nominal position in a series.). This is the underlying object with id, value and extensions. The accessor "getDoseSequence" gives direct access to the value + */ + public ImmunizationVaccinationProtocolComponent setDoseSequenceElement(IntegerType value) { + this.doseSequence = value; + return this; + } + + /** + * @return Nominal position in a series. + */ + public int getDoseSequence() { + return this.doseSequence == null ? 0 : this.doseSequence.getValue(); + } + + /** + * @param value Nominal position in a series. + */ + public ImmunizationVaccinationProtocolComponent setDoseSequence(int value) { + if (this.doseSequence == null) + this.doseSequence = new IntegerType(); + this.doseSequence.setValue(value); + return this; + } + + /** + * @return {@link #description} (Contains the description about the protocol under which the vaccine was administered.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Contains the description about the protocol under which the vaccine was administered.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public ImmunizationVaccinationProtocolComponent setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Contains the description about the protocol under which the vaccine was administered. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Contains the description about the protocol under which the vaccine was administered. + */ + public ImmunizationVaccinationProtocolComponent setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #authority} (Indicates the authority who published the protocol? E.g. ACIP.) + */ + public Reference getAuthority() { + if (this.authority == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.authority"); + else if (Configuration.doAutoCreate()) + this.authority = new Reference(); // cc + return this.authority; + } + + public boolean hasAuthority() { + return this.authority != null && !this.authority.isEmpty(); + } + + /** + * @param value {@link #authority} (Indicates the authority who published the protocol? E.g. ACIP.) + */ + public ImmunizationVaccinationProtocolComponent setAuthority(Reference value) { + this.authority = value; + return this; + } + + /** + * @return {@link #authority} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates the authority who published the protocol? E.g. ACIP.) + */ + public Organization getAuthorityTarget() { + if (this.authorityTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.authority"); + else if (Configuration.doAutoCreate()) + this.authorityTarget = new Organization(); // aa + return this.authorityTarget; + } + + /** + * @param value {@link #authority} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates the authority who published the protocol? E.g. ACIP.) + */ + public ImmunizationVaccinationProtocolComponent setAuthorityTarget(Organization value) { + this.authorityTarget = value; + return this; + } + + /** + * @return {@link #series} (One possible path to achieve presumed immunity against a disease - within the context of an authority.). This is the underlying object with id, value and extensions. The accessor "getSeries" gives direct access to the value + */ + public StringType getSeriesElement() { + if (this.series == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.series"); + else if (Configuration.doAutoCreate()) + this.series = new StringType(); // bb + return this.series; + } + + public boolean hasSeriesElement() { + return this.series != null && !this.series.isEmpty(); + } + + public boolean hasSeries() { + return this.series != null && !this.series.isEmpty(); + } + + /** + * @param value {@link #series} (One possible path to achieve presumed immunity against a disease - within the context of an authority.). This is the underlying object with id, value and extensions. The accessor "getSeries" gives direct access to the value + */ + public ImmunizationVaccinationProtocolComponent setSeriesElement(StringType value) { + this.series = value; + return this; + } + + /** + * @return One possible path to achieve presumed immunity against a disease - within the context of an authority. + */ + public String getSeries() { + return this.series == null ? null : this.series.getValue(); + } + + /** + * @param value One possible path to achieve presumed immunity against a disease - within the context of an authority. + */ + public ImmunizationVaccinationProtocolComponent setSeries(String value) { + if (Utilities.noString(value)) + this.series = null; + else { + if (this.series == null) + this.series = new StringType(); + this.series.setValue(value); + } + return this; + } + + /** + * @return {@link #seriesDoses} (The recommended number of doses to achieve immunity.). This is the underlying object with id, value and extensions. The accessor "getSeriesDoses" gives direct access to the value + */ + public IntegerType getSeriesDosesElement() { + if (this.seriesDoses == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.seriesDoses"); + else if (Configuration.doAutoCreate()) + this.seriesDoses = new IntegerType(); // bb + return this.seriesDoses; + } + + public boolean hasSeriesDosesElement() { + return this.seriesDoses != null && !this.seriesDoses.isEmpty(); + } + + public boolean hasSeriesDoses() { + return this.seriesDoses != null && !this.seriesDoses.isEmpty(); + } + + /** + * @param value {@link #seriesDoses} (The recommended number of doses to achieve immunity.). This is the underlying object with id, value and extensions. The accessor "getSeriesDoses" gives direct access to the value + */ + public ImmunizationVaccinationProtocolComponent setSeriesDosesElement(IntegerType value) { + this.seriesDoses = value; + return this; + } + + /** + * @return The recommended number of doses to achieve immunity. + */ + public int getSeriesDoses() { + return this.seriesDoses == null ? 0 : this.seriesDoses.getValue(); + } + + /** + * @param value The recommended number of doses to achieve immunity. + */ + public ImmunizationVaccinationProtocolComponent setSeriesDoses(int value) { + if (this.seriesDoses == null) + this.seriesDoses = new IntegerType(); + this.seriesDoses.setValue(value); + return this; + } + + /** + * @return {@link #doseTarget} (The targeted disease.) + */ + public CodeableConcept getDoseTarget() { + if (this.doseTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.doseTarget"); + else if (Configuration.doAutoCreate()) + this.doseTarget = new CodeableConcept(); // cc + return this.doseTarget; + } + + public boolean hasDoseTarget() { + return this.doseTarget != null && !this.doseTarget.isEmpty(); + } + + /** + * @param value {@link #doseTarget} (The targeted disease.) + */ + public ImmunizationVaccinationProtocolComponent setDoseTarget(CodeableConcept value) { + this.doseTarget = value; + return this; + } + + /** + * @return {@link #doseStatus} (Indicates if the immunization event should "count" against the protocol.) + */ + public CodeableConcept getDoseStatus() { + if (this.doseStatus == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.doseStatus"); + else if (Configuration.doAutoCreate()) + this.doseStatus = new CodeableConcept(); // cc + return this.doseStatus; + } + + public boolean hasDoseStatus() { + return this.doseStatus != null && !this.doseStatus.isEmpty(); + } + + /** + * @param value {@link #doseStatus} (Indicates if the immunization event should "count" against the protocol.) + */ + public ImmunizationVaccinationProtocolComponent setDoseStatus(CodeableConcept value) { + this.doseStatus = value; + return this; + } + + /** + * @return {@link #doseStatusReason} (Provides an explanation as to why a immunization event should or should not count against the protocol.) + */ + public CodeableConcept getDoseStatusReason() { + if (this.doseStatusReason == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationVaccinationProtocolComponent.doseStatusReason"); + else if (Configuration.doAutoCreate()) + this.doseStatusReason = new CodeableConcept(); // cc + return this.doseStatusReason; + } + + public boolean hasDoseStatusReason() { + return this.doseStatusReason != null && !this.doseStatusReason.isEmpty(); + } + + /** + * @param value {@link #doseStatusReason} (Provides an explanation as to why a immunization event should or should not count against the protocol.) + */ + public ImmunizationVaccinationProtocolComponent setDoseStatusReason(CodeableConcept value) { + this.doseStatusReason = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("doseSequence", "integer", "Nominal position in a series.", 0, java.lang.Integer.MAX_VALUE, doseSequence)); + childrenList.add(new Property("description", "string", "Contains the description about the protocol under which the vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("authority", "Reference(Organization)", "Indicates the authority who published the protocol? E.g. ACIP.", 0, java.lang.Integer.MAX_VALUE, authority)); + childrenList.add(new Property("series", "string", "One possible path to achieve presumed immunity against a disease - within the context of an authority.", 0, java.lang.Integer.MAX_VALUE, series)); + childrenList.add(new Property("seriesDoses", "integer", "The recommended number of doses to achieve immunity.", 0, java.lang.Integer.MAX_VALUE, seriesDoses)); + childrenList.add(new Property("doseTarget", "CodeableConcept", "The targeted disease.", 0, java.lang.Integer.MAX_VALUE, doseTarget)); + childrenList.add(new Property("doseStatus", "CodeableConcept", "Indicates if the immunization event should 'count' against the protocol.", 0, java.lang.Integer.MAX_VALUE, doseStatus)); + childrenList.add(new Property("doseStatusReason", "CodeableConcept", "Provides an explanation as to why a immunization event should or should not count against the protocol.", 0, java.lang.Integer.MAX_VALUE, doseStatusReason)); + } + + public ImmunizationVaccinationProtocolComponent copy() { + ImmunizationVaccinationProtocolComponent dst = new ImmunizationVaccinationProtocolComponent(); + copyValues(dst); + dst.doseSequence = doseSequence == null ? null : doseSequence.copy(); + dst.description = description == null ? null : description.copy(); + dst.authority = authority == null ? null : authority.copy(); + dst.series = series == null ? null : series.copy(); + dst.seriesDoses = seriesDoses == null ? null : seriesDoses.copy(); + dst.doseTarget = doseTarget == null ? null : doseTarget.copy(); + dst.doseStatus = doseStatus == null ? null : doseStatus.copy(); + dst.doseStatusReason = doseStatusReason == null ? null : doseStatusReason.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ImmunizationVaccinationProtocolComponent)) + return false; + ImmunizationVaccinationProtocolComponent o = (ImmunizationVaccinationProtocolComponent) other; + return compareDeep(doseSequence, o.doseSequence, true) && compareDeep(description, o.description, true) + && compareDeep(authority, o.authority, true) && compareDeep(series, o.series, true) && compareDeep(seriesDoses, o.seriesDoses, true) + && compareDeep(doseTarget, o.doseTarget, true) && compareDeep(doseStatus, o.doseStatus, true) && compareDeep(doseStatusReason, o.doseStatusReason, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ImmunizationVaccinationProtocolComponent)) + return false; + ImmunizationVaccinationProtocolComponent o = (ImmunizationVaccinationProtocolComponent) other; + return compareValues(doseSequence, o.doseSequence, true) && compareValues(description, o.description, true) + && compareValues(series, o.series, true) && compareValues(seriesDoses, o.seriesDoses, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (doseSequence == null || doseSequence.isEmpty()) && (description == null || description.isEmpty()) + && (authority == null || authority.isEmpty()) && (series == null || series.isEmpty()) && (seriesDoses == null || seriesDoses.isEmpty()) + && (doseTarget == null || doseTarget.isEmpty()) && (doseStatus == null || doseStatus.isEmpty()) + && (doseStatusReason == null || doseStatusReason.isEmpty()); + } + + } + + /** + * A unique identifier assigned to this immunization record. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Business identifier", formalDefinition="A unique identifier assigned to this immunization record." ) + protected List identifier; + + /** + * Date vaccine administered or was to be administered. + */ + @Child(name="date", type={DateTimeType.class}, order=0, min=1, max=1) + @Description(shortDefinition="Vaccination administration date", formalDefinition="Date vaccine administered or was to be administered." ) + protected DateTimeType date; + + /** + * Vaccine that was administered or was to be administered. + */ + @Child(name="vaccineType", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="Vaccine product administered", formalDefinition="Vaccine that was administered or was to be administered." ) + protected CodeableConcept vaccineType; + + /** + * The patient who either received or did not receive the immunization. + */ + @Child(name="patient", type={Patient.class}, order=2, min=1, max=1) + @Description(shortDefinition="Who was immunized?", formalDefinition="The patient who either received or did not receive the immunization." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (The patient who either received or did not receive the immunization.) + */ + protected Patient patientTarget; + + /** + * Indicates if the vaccination was or was not given. + */ + @Child(name="wasNotGiven", type={BooleanType.class}, order=3, min=1, max=1) + @Description(shortDefinition="Was immunization given?", formalDefinition="Indicates if the vaccination was or was not given." ) + protected BooleanType wasNotGiven; + + /** + * True if this administration was reported rather than directly administered. + */ + @Child(name="reported", type={BooleanType.class}, order=4, min=1, max=1) + @Description(shortDefinition="Is this a self-reported record?", formalDefinition="True if this administration was reported rather than directly administered." ) + protected BooleanType reported; + + /** + * Clinician who administered the vaccine. + */ + @Child(name="performer", type={Practitioner.class}, order=5, min=0, max=1) + @Description(shortDefinition="Who administered vaccine?", formalDefinition="Clinician who administered the vaccine." ) + protected Reference performer; + + /** + * The actual object that is the target of the reference (Clinician who administered the vaccine.) + */ + protected Practitioner performerTarget; + + /** + * Clinician who ordered the vaccination. + */ + @Child(name="requester", type={Practitioner.class}, order=6, min=0, max=1) + @Description(shortDefinition="Who ordered vaccination?", formalDefinition="Clinician who ordered the vaccination." ) + protected Reference requester; + + /** + * The actual object that is the target of the reference (Clinician who ordered the vaccination.) + */ + protected Practitioner requesterTarget; + + /** + * The visit or admission or other contact between patient and health care provider the immunization was performed as part of. + */ + @Child(name="encounter", type={Encounter.class}, order=7, min=0, max=1) + @Description(shortDefinition="Encounter administered as part of", formalDefinition="The visit or admission or other contact between patient and health care provider the immunization was performed as part of." ) + protected Reference encounter; + + /** + * The actual object that is the target of the reference (The visit or admission or other contact between patient and health care provider the immunization was performed as part of.) + */ + protected Encounter encounterTarget; + + /** + * Name of vaccine manufacturer. + */ + @Child(name="manufacturer", type={Organization.class}, order=8, min=0, max=1) + @Description(shortDefinition="Vaccine manufacturer", formalDefinition="Name of vaccine manufacturer." ) + protected Reference manufacturer; + + /** + * The actual object that is the target of the reference (Name of vaccine manufacturer.) + */ + protected Organization manufacturerTarget; + + /** + * The service delivery location where the vaccine administration occurred. + */ + @Child(name="location", type={Location.class}, order=9, min=0, max=1) + @Description(shortDefinition="Where did vaccination occur?", formalDefinition="The service delivery location where the vaccine administration occurred." ) + protected Reference location; + + /** + * The actual object that is the target of the reference (The service delivery location where the vaccine administration occurred.) + */ + protected Location locationTarget; + + /** + * Lot number of the vaccine product. + */ + @Child(name="lotNumber", type={StringType.class}, order=10, min=0, max=1) + @Description(shortDefinition="Vaccine lot number", formalDefinition="Lot number of the vaccine product." ) + protected StringType lotNumber; + + /** + * Date vaccine batch expires. + */ + @Child(name="expirationDate", type={DateType.class}, order=11, min=0, max=1) + @Description(shortDefinition="Vaccine expiration date", formalDefinition="Date vaccine batch expires." ) + protected DateType expirationDate; + + /** + * Body site where vaccine was administered. + */ + @Child(name="site", type={CodeableConcept.class}, order=12, min=0, max=1) + @Description(shortDefinition="Body site vaccine was administered", formalDefinition="Body site where vaccine was administered." ) + protected CodeableConcept site; + + /** + * The path by which the vaccine product is taken into the body. + */ + @Child(name="route", type={CodeableConcept.class}, order=13, min=0, max=1) + @Description(shortDefinition="How vaccine entered body", formalDefinition="The path by which the vaccine product is taken into the body." ) + protected CodeableConcept route; + + /** + * The quantity of vaccine product that was administered. + */ + @Child(name="doseQuantity", type={Quantity.class}, order=14, min=0, max=1) + @Description(shortDefinition="Amount of vaccine administered", formalDefinition="The quantity of vaccine product that was administered." ) + protected Quantity doseQuantity; + + /** + * Reasons why a vaccine was or was not administered. + */ + @Child(name="explanation", type={}, order=15, min=0, max=1) + @Description(shortDefinition="Administration / non-administration reasons", formalDefinition="Reasons why a vaccine was or was not administered." ) + protected ImmunizationExplanationComponent explanation; + + /** + * Categorical data indicating that an adverse event is associated in time to an immunization. + */ + @Child(name="reaction", type={}, order=16, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Details of a reaction that follows immunization", formalDefinition="Categorical data indicating that an adverse event is associated in time to an immunization." ) + protected List reaction; + + /** + * Contains information about the protocol(s) under which the vaccine was administered. + */ + @Child(name="vaccinationProtocol", type={}, order=17, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="What protocol was followed", formalDefinition="Contains information about the protocol(s) under which the vaccine was administered." ) + protected List vaccinationProtocol; + + private static final long serialVersionUID = -1610924217L; + + public Immunization() { + super(); + } + + public Immunization(DateTimeType date, CodeableConcept vaccineType, Reference patient, BooleanType wasNotGiven, BooleanType reported) { + super(); + this.date = date; + this.vaccineType = vaccineType; + this.patient = patient; + this.wasNotGiven = wasNotGiven; + this.reported = reported; + } + + /** + * @return {@link #identifier} (A unique identifier assigned to this immunization record.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (A unique identifier assigned to this immunization record.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #date} (Date vaccine administered or was to be administered.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (Date vaccine administered or was to be administered.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public Immunization setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return Date vaccine administered or was to be administered. + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value Date vaccine administered or was to be administered. + */ + public Immunization setDate(Date value) { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + return this; + } + + /** + * @return {@link #vaccineType} (Vaccine that was administered or was to be administered.) + */ + public CodeableConcept getVaccineType() { + if (this.vaccineType == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.vaccineType"); + else if (Configuration.doAutoCreate()) + this.vaccineType = new CodeableConcept(); // cc + return this.vaccineType; + } + + public boolean hasVaccineType() { + return this.vaccineType != null && !this.vaccineType.isEmpty(); + } + + /** + * @param value {@link #vaccineType} (Vaccine that was administered or was to be administered.) + */ + public Immunization setVaccineType(CodeableConcept value) { + this.vaccineType = value; + return this; + } + + /** + * @return {@link #patient} (The patient who either received or did not receive the immunization.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (The patient who either received or did not receive the immunization.) + */ + public Immunization setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient who either received or did not receive the immunization.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient who either received or did not receive the immunization.) + */ + public Immunization setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #wasNotGiven} (Indicates if the vaccination was or was not given.). This is the underlying object with id, value and extensions. The accessor "getWasNotGiven" gives direct access to the value + */ + public BooleanType getWasNotGivenElement() { + if (this.wasNotGiven == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.wasNotGiven"); + else if (Configuration.doAutoCreate()) + this.wasNotGiven = new BooleanType(); // bb + return this.wasNotGiven; + } + + public boolean hasWasNotGivenElement() { + return this.wasNotGiven != null && !this.wasNotGiven.isEmpty(); + } + + public boolean hasWasNotGiven() { + return this.wasNotGiven != null && !this.wasNotGiven.isEmpty(); + } + + /** + * @param value {@link #wasNotGiven} (Indicates if the vaccination was or was not given.). This is the underlying object with id, value and extensions. The accessor "getWasNotGiven" gives direct access to the value + */ + public Immunization setWasNotGivenElement(BooleanType value) { + this.wasNotGiven = value; + return this; + } + + /** + * @return Indicates if the vaccination was or was not given. + */ + public boolean getWasNotGiven() { + return this.wasNotGiven == null ? false : this.wasNotGiven.getValue(); + } + + /** + * @param value Indicates if the vaccination was or was not given. + */ + public Immunization setWasNotGiven(boolean value) { + if (this.wasNotGiven == null) + this.wasNotGiven = new BooleanType(); + this.wasNotGiven.setValue(value); + return this; + } + + /** + * @return {@link #reported} (True if this administration was reported rather than directly administered.). This is the underlying object with id, value and extensions. The accessor "getReported" gives direct access to the value + */ + public BooleanType getReportedElement() { + if (this.reported == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.reported"); + else if (Configuration.doAutoCreate()) + this.reported = new BooleanType(); // bb + return this.reported; + } + + public boolean hasReportedElement() { + return this.reported != null && !this.reported.isEmpty(); + } + + public boolean hasReported() { + return this.reported != null && !this.reported.isEmpty(); + } + + /** + * @param value {@link #reported} (True if this administration was reported rather than directly administered.). This is the underlying object with id, value and extensions. The accessor "getReported" gives direct access to the value + */ + public Immunization setReportedElement(BooleanType value) { + this.reported = value; + return this; + } + + /** + * @return True if this administration was reported rather than directly administered. + */ + public boolean getReported() { + return this.reported == null ? false : this.reported.getValue(); + } + + /** + * @param value True if this administration was reported rather than directly administered. + */ + public Immunization setReported(boolean value) { + if (this.reported == null) + this.reported = new BooleanType(); + this.reported.setValue(value); + return this; + } + + /** + * @return {@link #performer} (Clinician who administered the vaccine.) + */ + public Reference getPerformer() { + if (this.performer == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.performer"); + else if (Configuration.doAutoCreate()) + this.performer = new Reference(); // cc + return this.performer; + } + + public boolean hasPerformer() { + return this.performer != null && !this.performer.isEmpty(); + } + + /** + * @param value {@link #performer} (Clinician who administered the vaccine.) + */ + public Immunization setPerformer(Reference value) { + this.performer = value; + return this; + } + + /** + * @return {@link #performer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Clinician who administered the vaccine.) + */ + public Practitioner getPerformerTarget() { + if (this.performerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.performer"); + else if (Configuration.doAutoCreate()) + this.performerTarget = new Practitioner(); // aa + return this.performerTarget; + } + + /** + * @param value {@link #performer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Clinician who administered the vaccine.) + */ + public Immunization setPerformerTarget(Practitioner value) { + this.performerTarget = value; + return this; + } + + /** + * @return {@link #requester} (Clinician who ordered the vaccination.) + */ + public Reference getRequester() { + if (this.requester == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.requester"); + else if (Configuration.doAutoCreate()) + this.requester = new Reference(); // cc + return this.requester; + } + + public boolean hasRequester() { + return this.requester != null && !this.requester.isEmpty(); + } + + /** + * @param value {@link #requester} (Clinician who ordered the vaccination.) + */ + public Immunization setRequester(Reference value) { + this.requester = value; + return this; + } + + /** + * @return {@link #requester} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Clinician who ordered the vaccination.) + */ + public Practitioner getRequesterTarget() { + if (this.requesterTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.requester"); + else if (Configuration.doAutoCreate()) + this.requesterTarget = new Practitioner(); // aa + return this.requesterTarget; + } + + /** + * @param value {@link #requester} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Clinician who ordered the vaccination.) + */ + public Immunization setRequesterTarget(Practitioner value) { + this.requesterTarget = value; + return this; + } + + /** + * @return {@link #encounter} (The visit or admission or other contact between patient and health care provider the immunization was performed as part of.) + */ + public Reference getEncounter() { + if (this.encounter == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.encounter"); + else if (Configuration.doAutoCreate()) + this.encounter = new Reference(); // cc + return this.encounter; + } + + public boolean hasEncounter() { + return this.encounter != null && !this.encounter.isEmpty(); + } + + /** + * @param value {@link #encounter} (The visit or admission or other contact between patient and health care provider the immunization was performed as part of.) + */ + public Immunization setEncounter(Reference value) { + this.encounter = value; + return this; + } + + /** + * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The visit or admission or other contact between patient and health care provider the immunization was performed as part of.) + */ + public Encounter getEncounterTarget() { + if (this.encounterTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.encounter"); + else if (Configuration.doAutoCreate()) + this.encounterTarget = new Encounter(); // aa + return this.encounterTarget; + } + + /** + * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The visit or admission or other contact between patient and health care provider the immunization was performed as part of.) + */ + public Immunization setEncounterTarget(Encounter value) { + this.encounterTarget = value; + return this; + } + + /** + * @return {@link #manufacturer} (Name of vaccine manufacturer.) + */ + public Reference getManufacturer() { + if (this.manufacturer == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.manufacturer"); + else if (Configuration.doAutoCreate()) + this.manufacturer = new Reference(); // cc + return this.manufacturer; + } + + public boolean hasManufacturer() { + return this.manufacturer != null && !this.manufacturer.isEmpty(); + } + + /** + * @param value {@link #manufacturer} (Name of vaccine manufacturer.) + */ + public Immunization setManufacturer(Reference value) { + this.manufacturer = value; + return this; + } + + /** + * @return {@link #manufacturer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Name of vaccine manufacturer.) + */ + public Organization getManufacturerTarget() { + if (this.manufacturerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.manufacturer"); + else if (Configuration.doAutoCreate()) + this.manufacturerTarget = new Organization(); // aa + return this.manufacturerTarget; + } + + /** + * @param value {@link #manufacturer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Name of vaccine manufacturer.) + */ + public Immunization setManufacturerTarget(Organization value) { + this.manufacturerTarget = value; + return this; + } + + /** + * @return {@link #location} (The service delivery location where the vaccine administration occurred.) + */ + public Reference getLocation() { + if (this.location == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.location"); + else if (Configuration.doAutoCreate()) + this.location = new Reference(); // cc + return this.location; + } + + public boolean hasLocation() { + return this.location != null && !this.location.isEmpty(); + } + + /** + * @param value {@link #location} (The service delivery location where the vaccine administration occurred.) + */ + public Immunization setLocation(Reference value) { + this.location = value; + return this; + } + + /** + * @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The service delivery location where the vaccine administration occurred.) + */ + public Location getLocationTarget() { + if (this.locationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.location"); + else if (Configuration.doAutoCreate()) + this.locationTarget = new Location(); // aa + return this.locationTarget; + } + + /** + * @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The service delivery location where the vaccine administration occurred.) + */ + public Immunization setLocationTarget(Location value) { + this.locationTarget = value; + return this; + } + + /** + * @return {@link #lotNumber} (Lot number of the vaccine product.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value + */ + public StringType getLotNumberElement() { + if (this.lotNumber == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.lotNumber"); + else if (Configuration.doAutoCreate()) + this.lotNumber = new StringType(); // bb + return this.lotNumber; + } + + public boolean hasLotNumberElement() { + return this.lotNumber != null && !this.lotNumber.isEmpty(); + } + + public boolean hasLotNumber() { + return this.lotNumber != null && !this.lotNumber.isEmpty(); + } + + /** + * @param value {@link #lotNumber} (Lot number of the vaccine product.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value + */ + public Immunization setLotNumberElement(StringType value) { + this.lotNumber = value; + return this; + } + + /** + * @return Lot number of the vaccine product. + */ + public String getLotNumber() { + return this.lotNumber == null ? null : this.lotNumber.getValue(); + } + + /** + * @param value Lot number of the vaccine product. + */ + public Immunization setLotNumber(String value) { + if (Utilities.noString(value)) + this.lotNumber = null; + else { + if (this.lotNumber == null) + this.lotNumber = new StringType(); + this.lotNumber.setValue(value); + } + return this; + } + + /** + * @return {@link #expirationDate} (Date vaccine batch expires.). This is the underlying object with id, value and extensions. The accessor "getExpirationDate" gives direct access to the value + */ + public DateType getExpirationDateElement() { + if (this.expirationDate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.expirationDate"); + else if (Configuration.doAutoCreate()) + this.expirationDate = new DateType(); // bb + return this.expirationDate; + } + + public boolean hasExpirationDateElement() { + return this.expirationDate != null && !this.expirationDate.isEmpty(); + } + + public boolean hasExpirationDate() { + return this.expirationDate != null && !this.expirationDate.isEmpty(); + } + + /** + * @param value {@link #expirationDate} (Date vaccine batch expires.). This is the underlying object with id, value and extensions. The accessor "getExpirationDate" gives direct access to the value + */ + public Immunization setExpirationDateElement(DateType value) { + this.expirationDate = value; + return this; + } + + /** + * @return Date vaccine batch expires. + */ + public Date getExpirationDate() { + return this.expirationDate == null ? null : this.expirationDate.getValue(); + } + + /** + * @param value Date vaccine batch expires. + */ + public Immunization setExpirationDate(Date value) { + if (value == null) + this.expirationDate = null; + else { + if (this.expirationDate == null) + this.expirationDate = new DateType(); + this.expirationDate.setValue(value); + } + return this; + } + + /** + * @return {@link #site} (Body site where vaccine was administered.) + */ + public CodeableConcept getSite() { + if (this.site == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.site"); + else if (Configuration.doAutoCreate()) + this.site = new CodeableConcept(); // cc + return this.site; + } + + public boolean hasSite() { + return this.site != null && !this.site.isEmpty(); + } + + /** + * @param value {@link #site} (Body site where vaccine was administered.) + */ + public Immunization setSite(CodeableConcept value) { + this.site = value; + return this; + } + + /** + * @return {@link #route} (The path by which the vaccine product is taken into the body.) + */ + public CodeableConcept getRoute() { + if (this.route == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.route"); + else if (Configuration.doAutoCreate()) + this.route = new CodeableConcept(); // cc + return this.route; + } + + public boolean hasRoute() { + return this.route != null && !this.route.isEmpty(); + } + + /** + * @param value {@link #route} (The path by which the vaccine product is taken into the body.) + */ + public Immunization setRoute(CodeableConcept value) { + this.route = value; + return this; + } + + /** + * @return {@link #doseQuantity} (The quantity of vaccine product that was administered.) + */ + public Quantity getDoseQuantity() { + if (this.doseQuantity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.doseQuantity"); + else if (Configuration.doAutoCreate()) + this.doseQuantity = new Quantity(); // cc + return this.doseQuantity; + } + + public boolean hasDoseQuantity() { + return this.doseQuantity != null && !this.doseQuantity.isEmpty(); + } + + /** + * @param value {@link #doseQuantity} (The quantity of vaccine product that was administered.) + */ + public Immunization setDoseQuantity(Quantity value) { + this.doseQuantity = value; + return this; + } + + /** + * @return {@link #explanation} (Reasons why a vaccine was or was not administered.) + */ + public ImmunizationExplanationComponent getExplanation() { + if (this.explanation == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Immunization.explanation"); + else if (Configuration.doAutoCreate()) + this.explanation = new ImmunizationExplanationComponent(); // cc + return this.explanation; + } + + public boolean hasExplanation() { + return this.explanation != null && !this.explanation.isEmpty(); + } + + /** + * @param value {@link #explanation} (Reasons why a vaccine was or was not administered.) + */ + public Immunization setExplanation(ImmunizationExplanationComponent value) { + this.explanation = value; + return this; + } + + /** + * @return {@link #reaction} (Categorical data indicating that an adverse event is associated in time to an immunization.) + */ + public List getReaction() { + if (this.reaction == null) + this.reaction = new ArrayList(); + return this.reaction; + } + + public boolean hasReaction() { + if (this.reaction == null) + return false; + for (ImmunizationReactionComponent item : this.reaction) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #reaction} (Categorical data indicating that an adverse event is associated in time to an immunization.) + */ + // syntactic sugar + public ImmunizationReactionComponent addReaction() { //3 + ImmunizationReactionComponent t = new ImmunizationReactionComponent(); + if (this.reaction == null) + this.reaction = new ArrayList(); + this.reaction.add(t); + return t; + } + + /** + * @return {@link #vaccinationProtocol} (Contains information about the protocol(s) under which the vaccine was administered.) + */ + public List getVaccinationProtocol() { + if (this.vaccinationProtocol == null) + this.vaccinationProtocol = new ArrayList(); + return this.vaccinationProtocol; + } + + public boolean hasVaccinationProtocol() { + if (this.vaccinationProtocol == null) + return false; + for (ImmunizationVaccinationProtocolComponent item : this.vaccinationProtocol) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #vaccinationProtocol} (Contains information about the protocol(s) under which the vaccine was administered.) + */ + // syntactic sugar + public ImmunizationVaccinationProtocolComponent addVaccinationProtocol() { //3 + ImmunizationVaccinationProtocolComponent t = new ImmunizationVaccinationProtocolComponent(); + if (this.vaccinationProtocol == null) + this.vaccinationProtocol = new ArrayList(); + this.vaccinationProtocol.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "A unique identifier assigned to this immunization record.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("date", "dateTime", "Date vaccine administered or was to be administered.", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("vaccineType", "CodeableConcept", "Vaccine that was administered or was to be administered.", 0, java.lang.Integer.MAX_VALUE, vaccineType)); + childrenList.add(new Property("patient", "Reference(Patient)", "The patient who either received or did not receive the immunization.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("wasNotGiven", "boolean", "Indicates if the vaccination was or was not given.", 0, java.lang.Integer.MAX_VALUE, wasNotGiven)); + childrenList.add(new Property("reported", "boolean", "True if this administration was reported rather than directly administered.", 0, java.lang.Integer.MAX_VALUE, reported)); + childrenList.add(new Property("performer", "Reference(Practitioner)", "Clinician who administered the vaccine.", 0, java.lang.Integer.MAX_VALUE, performer)); + childrenList.add(new Property("requester", "Reference(Practitioner)", "Clinician who ordered the vaccination.", 0, java.lang.Integer.MAX_VALUE, requester)); + childrenList.add(new Property("encounter", "Reference(Encounter)", "The visit or admission or other contact between patient and health care provider the immunization was performed as part of.", 0, java.lang.Integer.MAX_VALUE, encounter)); + childrenList.add(new Property("manufacturer", "Reference(Organization)", "Name of vaccine manufacturer.", 0, java.lang.Integer.MAX_VALUE, manufacturer)); + childrenList.add(new Property("location", "Reference(Location)", "The service delivery location where the vaccine administration occurred.", 0, java.lang.Integer.MAX_VALUE, location)); + childrenList.add(new Property("lotNumber", "string", "Lot number of the vaccine product.", 0, java.lang.Integer.MAX_VALUE, lotNumber)); + childrenList.add(new Property("expirationDate", "date", "Date vaccine batch expires.", 0, java.lang.Integer.MAX_VALUE, expirationDate)); + childrenList.add(new Property("site", "CodeableConcept", "Body site where vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, site)); + childrenList.add(new Property("route", "CodeableConcept", "The path by which the vaccine product is taken into the body.", 0, java.lang.Integer.MAX_VALUE, route)); + childrenList.add(new Property("doseQuantity", "Quantity", "The quantity of vaccine product that was administered.", 0, java.lang.Integer.MAX_VALUE, doseQuantity)); + childrenList.add(new Property("explanation", "", "Reasons why a vaccine was or was not administered.", 0, java.lang.Integer.MAX_VALUE, explanation)); + childrenList.add(new Property("reaction", "", "Categorical data indicating that an adverse event is associated in time to an immunization.", 0, java.lang.Integer.MAX_VALUE, reaction)); + childrenList.add(new Property("vaccinationProtocol", "", "Contains information about the protocol(s) under which the vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, vaccinationProtocol)); + } + + public Immunization copy() { + Immunization dst = new Immunization(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.date = date == null ? null : date.copy(); + dst.vaccineType = vaccineType == null ? null : vaccineType.copy(); + dst.patient = patient == null ? null : patient.copy(); + dst.wasNotGiven = wasNotGiven == null ? null : wasNotGiven.copy(); + dst.reported = reported == null ? null : reported.copy(); + dst.performer = performer == null ? null : performer.copy(); + dst.requester = requester == null ? null : requester.copy(); + dst.encounter = encounter == null ? null : encounter.copy(); + dst.manufacturer = manufacturer == null ? null : manufacturer.copy(); + dst.location = location == null ? null : location.copy(); + dst.lotNumber = lotNumber == null ? null : lotNumber.copy(); + dst.expirationDate = expirationDate == null ? null : expirationDate.copy(); + dst.site = site == null ? null : site.copy(); + dst.route = route == null ? null : route.copy(); + dst.doseQuantity = doseQuantity == null ? null : doseQuantity.copy(); + dst.explanation = explanation == null ? null : explanation.copy(); + if (reaction != null) { + dst.reaction = new ArrayList(); + for (ImmunizationReactionComponent i : reaction) + dst.reaction.add(i.copy()); + }; + if (vaccinationProtocol != null) { + dst.vaccinationProtocol = new ArrayList(); + for (ImmunizationVaccinationProtocolComponent i : vaccinationProtocol) + dst.vaccinationProtocol.add(i.copy()); + }; + return dst; + } + + protected Immunization typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Immunization)) + return false; + Immunization o = (Immunization) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(date, o.date, true) && compareDeep(vaccineType, o.vaccineType, true) + && compareDeep(patient, o.patient, true) && compareDeep(wasNotGiven, o.wasNotGiven, true) && compareDeep(reported, o.reported, true) + && compareDeep(performer, o.performer, true) && compareDeep(requester, o.requester, true) && compareDeep(encounter, o.encounter, true) + && compareDeep(manufacturer, o.manufacturer, true) && compareDeep(location, o.location, true) && compareDeep(lotNumber, o.lotNumber, true) + && compareDeep(expirationDate, o.expirationDate, true) && compareDeep(site, o.site, true) && compareDeep(route, o.route, true) + && compareDeep(doseQuantity, o.doseQuantity, true) && compareDeep(explanation, o.explanation, true) + && compareDeep(reaction, o.reaction, true) && compareDeep(vaccinationProtocol, o.vaccinationProtocol, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Immunization)) + return false; + Immunization o = (Immunization) other; + return compareValues(date, o.date, true) && compareValues(wasNotGiven, o.wasNotGiven, true) && compareValues(reported, o.reported, true) + && compareValues(lotNumber, o.lotNumber, true) && compareValues(expirationDate, o.expirationDate, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (date == null || date.isEmpty()) + && (vaccineType == null || vaccineType.isEmpty()) && (patient == null || patient.isEmpty()) + && (wasNotGiven == null || wasNotGiven.isEmpty()) && (reported == null || reported.isEmpty()) + && (performer == null || performer.isEmpty()) && (requester == null || requester.isEmpty()) + && (encounter == null || encounter.isEmpty()) && (manufacturer == null || manufacturer.isEmpty()) + && (location == null || location.isEmpty()) && (lotNumber == null || lotNumber.isEmpty()) + && (expirationDate == null || expirationDate.isEmpty()) && (site == null || site.isEmpty()) + && (route == null || route.isEmpty()) && (doseQuantity == null || doseQuantity.isEmpty()) + && (explanation == null || explanation.isEmpty()) && (reaction == null || reaction.isEmpty()) + && (vaccinationProtocol == null || vaccinationProtocol.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Immunization; + } + + @SearchParamDefinition(name="reaction", path="Immunization.reaction.detail", description="Additional information on reaction", type="reference" ) + public static final String SP_REACTION = "reaction"; + @SearchParamDefinition(name="requester", path="Immunization.requester", description="The practitioner who ordered the vaccination", type="reference" ) + public static final String SP_REQUESTER = "requester"; + @SearchParamDefinition(name="dose-sequence", path="Immunization.vaccinationProtocol.doseSequence", description="What dose number within series?", type="number" ) + public static final String SP_DOSESEQUENCE = "dose-sequence"; + @SearchParamDefinition(name="vaccine-type", path="Immunization.vaccineType", description="Vaccine Product Type Administered", type="token" ) + public static final String SP_VACCINETYPE = "vaccine-type"; + @SearchParamDefinition(name="location", path="Immunization.location", description="The service delivery location or facility in which the vaccine was / was to be administered", type="reference" ) + public static final String SP_LOCATION = "location"; + @SearchParamDefinition(name="reason", path="Immunization.explanation.reason", description="Why immunization occurred", type="token" ) + public static final String SP_REASON = "reason"; + @SearchParamDefinition(name="subject", path="Immunization.patient", description="The patient for the vaccination record", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="reaction-date", path="Immunization.reaction.date", description="When did reaction start?", type="date" ) + public static final String SP_REACTIONDATE = "reaction-date"; + @SearchParamDefinition(name="notgiven", path="Immunization.wasNotGiven", description="Administrations which were not given", type="token" ) + public static final String SP_NOTGIVEN = "notgiven"; + @SearchParamDefinition(name="date", path="Immunization.date", description="Vaccination (non)-Administration Date", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="reason-not-given", path="Immunization.explanation.reasonNotGiven", description="Explanation of reason vaccination was not administered", type="token" ) + public static final String SP_REASONNOTGIVEN = "reason-not-given"; + @SearchParamDefinition(name="patient", path="Immunization.patient", description="The patient for the vaccination record", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="lot-number", path="Immunization.lotNumber", description="Vaccine Lot Number", type="string" ) + public static final String SP_LOTNUMBER = "lot-number"; + @SearchParamDefinition(name="manufacturer", path="Immunization.manufacturer", description="Vaccine Manufacturer", type="reference" ) + public static final String SP_MANUFACTURER = "manufacturer"; + @SearchParamDefinition(name="performer", path="Immunization.performer", description="The practitioner who administered the vaccination", type="reference" ) + public static final String SP_PERFORMER = "performer"; + @SearchParamDefinition(name="identifier", path="Immunization.identifier", description="Business identifier", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation$ImmunizationRecommendationRecommendationComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation$ImmunizationRecommendationRecommendationComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..019fc390cc9a1c511b914aefddbcf3d74dc7be6b GIT binary patch literal 13659 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation$ImmunizationRecommendationRecommendationDateCriterionComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation$ImmunizationRecommendationRecommendationDateCriterionComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..33fd14568cde5e2364aad4224bc8705c46af7730 GIT binary patch literal 5210 zcmc&&`*Rc575;W5d1bK%Bi;}jQ6ShdwrFWchzzl@O)xQ!Vq*tW64vtCUXXT`)yl#2 zkv@~A?{{nZo=%%z@F=`YDlf9e0w|Dl~}o2mPq-8GhkEkiS%%;0+)K8a^rgr$pPQHM|l>I*!l8@l@oMrKP0=w&JrJ@Hu=wj^lBBA&wIoUQN&* zRkY$Y(fcKle_iCiEOTFx(N|^kH5t)LE55Gb8w#R1XVO&AIpnz0nVI~PnW-7e%~*EH zGwht1DR4EP>0@h5Zb44$!VArLx?O6qL)GAqA=(TOfGd#<&OA0b|br~yLGkr5w zev;avwoxF6s5e(+7jxW6(~U5oih@YNvZXa{DR|tZ%$dZ zB~uFY5n4()Q>jVAqs8Va$1NE7${pAGxsuA|jZ(>)vU0v}BH)@ir%*6$3Q|+5Gi7#7 zcco0j&0A*4^Yx`XCpB%&nuk+)>Udz%^m1Kva@NR~X*ylkCjl|SFbmwQL_{UnOUn?< z$q@fmA8a)=+GsABu4Uv$O}9j>mk0Y5C}$Nk@fhWJy-|S>qgI^w>zM`x4c!u;lMHuT z`zVh?j-AmPvTXBwxiDe6Ba#FP#@p(GuFaOZo2xt&tJ<{b1%@+i?R7ObkU=6>MkwoJ~>z@lx^#_e~R}5y2_W}>vJuSk#y`nr%-fk)ApD_gSKtD zeUcw0bN<(l7Lxjot&Q!#+Dp|=tPWdhf#LPfeIRc#jp@nZb;4YALR7$*Rx5}v&q$@! zYX4>Zz*H&!;Gz;=j*5aL!*RoyH8N$-%4Y;$mUOHjzU-QU*V}4$d~nG1yjAji9(7F; z+m=dbLtM&AO*IZ%)3)K2T^4V)c1L&JBD?51Mbq`>vL}5_ye^7!3g*_ynYGjO{bn$4 zI^LhWG8H7um&!)I)Nh(a1qbWr*(sxBW`zQp0-@m zt3NCp*3zMMqOh_vG3=DxoO#+3`rNyAbh;$-9_0o-m3MMCvpV|FuOp2P9mnyshHvWl z7KT`lekSJ)dpa}Vx{gck?)5yA4$CEFls%_2=bFs%)Y_OHhFH3Cyeb66w{?6+40k-j zb3(_Ah+O^uAPeu=wt9dnSxCnizN=tkH3#Sz$MasHbYVUKsnD`$@v{eGNa* z@k7j$PbR~=UBev(<$5~TKAZPhO*(#rAM3b|L1`}OFfpa$C-|w3X&LpF? z@500lGbeA;o=S%E3A{c%3pZ3|099OD1wg?0m5?5s862!jrU46)kSnrFNSZG$V{)>_ z@6aD1tz-4#xpsDtB89H~+nR5bBkNIQHNVNlv4M}>qT!kW$DUbF0XcSk|HpkA4iztB zTjxo6(X|SEy3Ym=;kq`ex6&B)@yAX(AGr}kg(ATx55JB;MJIogb(J`oxe6u6r6Ys* zFg_y9QE5KPJx`Qy3{RHu6s5_n4@w^orJok*?1R$XB7Fk8aT3o^x`(z^^diYIS)1(u zXZEpI*vHa~P=3pSg41jh+zRFIh${c!OdpUD zfl5y!)t>5Ao;K0bjSM1@MQT0WO;7jG)5qv(3q5V6r+ceB9bVPbNZ@H?0h`wHbbqy{ zBmb+OL)CgNV|2BMMbfnq>te(*+&YHmLxC)NIjZdviFctXZ=gwr3ut~Dn^!^;oYXPj zuErx9)NqA@<6trQXLXiICTG~bR zX2a0QEJODpW>&{a?6#A6pq@oseU520g#GF{99Pf#{&pj}gk4}MP4FKSHcPCxhmddc0E8y|K<&SSSme!)Kch7myp7g#g7`51qIYp%J~(iGMuN}U$_$Er zn3zY9P%mS%I*Kjo7>-i?;SsTg>2>_>A{)|(|ObU z8tgOWtJe_S*&OLnntPcAR%oFmv=B=#plzj={8~`{=5M|6P+J+2n|_w%{p&~+6!?9C Oe+iCT@kN|R<9`9MpJ9>! literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation$ImmunizationRecommendationRecommendationProtocolComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation$ImmunizationRecommendationRecommendationProtocolComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..2d3e4cbeb22fede3db8b6e28bd0cd8fe2ba55f84 GIT binary patch literal 8488 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 KSMt6PrT+tr2z1f_ literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation.java similarity index 85% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation.java index 4b6c4d8bfdd..51ea39083cf 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/ImmunizationRecommendation.java @@ -1,1060 +1,1117 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A patient's point-of-time immunization status and recommendation with optional supporting justification. - */ -@ResourceDef(name="ImmunizationRecommendation", profile="http://hl7.org/fhir/Profile/ImmunizationRecommendation") -public class ImmunizationRecommendation extends DomainResource { - - @Block() - public static class ImmunizationRecommendationRecommendationComponent extends BackboneElement { - /** - * The date the immunization recommendation was created. - */ - @Child(name="date", type={DateTimeType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Date recommendation created", formalDefinition="The date the immunization recommendation was created." ) - protected DateTimeType date; - - /** - * Vaccine that pertains to the recommendation. - */ - @Child(name="vaccineType", type={CodeableConcept.class}, order=2, min=1, max=1) - @Description(shortDefinition="Vaccine recommendation applies to", formalDefinition="Vaccine that pertains to the recommendation." ) - protected CodeableConcept vaccineType; - - /** - * This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose). - */ - @Child(name="doseNumber", type={IntegerType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Recommended dose number", formalDefinition="This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose)." ) - protected IntegerType doseNumber; - - /** - * Vaccine administration status. - */ - @Child(name="forecastStatus", type={CodeableConcept.class}, order=4, min=1, max=1) - @Description(shortDefinition="Vaccine administration status", formalDefinition="Vaccine administration status." ) - protected CodeableConcept forecastStatus; - - /** - * Vaccine date recommendations - e.g. earliest date to administer, latest date to administer, etc. - */ - @Child(name="dateCriterion", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Dates governing proposed immunization", formalDefinition="Vaccine date recommendations - e.g. earliest date to administer, latest date to administer, etc." ) - protected List dateCriterion; - - /** - * Contains information about the protocol under which the vaccine was administered. - */ - @Child(name="protocol", type={}, order=6, min=0, max=1) - @Description(shortDefinition="Protocol used by recommendation", formalDefinition="Contains information about the protocol under which the vaccine was administered." ) - protected ImmunizationRecommendationRecommendationProtocolComponent protocol; - - /** - * Immunization event history that supports the status and recommendation. - */ - @Child(name="supportingImmunization", type={Immunization.class}, order=7, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Past immunizations supporting recommendation", formalDefinition="Immunization event history that supports the status and recommendation." ) - protected List supportingImmunization; - /** - * The actual objects that are the target of the reference (Immunization event history that supports the status and recommendation.) - */ - protected List supportingImmunizationTarget; - - - /** - * Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information. - */ - @Child(name="supportingPatientInformation", type={Observation.class, AllergyIntolerance.class}, order=8, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Patient observations supporting recommendation", formalDefinition="Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information." ) - protected List supportingPatientInformation; - /** - * The actual objects that are the target of the reference (Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information.) - */ - protected List supportingPatientInformationTarget; - - - private static final long serialVersionUID = -1477214875L; - - public ImmunizationRecommendationRecommendationComponent() { - super(); - } - - public ImmunizationRecommendationRecommendationComponent(DateTimeType date, CodeableConcept vaccineType, CodeableConcept forecastStatus) { - super(); - this.date = date; - this.vaccineType = vaccineType; - this.forecastStatus = forecastStatus; - } - - /** - * @return {@link #date} (The date the immunization recommendation was created.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationComponent.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (The date the immunization recommendation was created.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public ImmunizationRecommendationRecommendationComponent setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return The date the immunization recommendation was created. - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value The date the immunization recommendation was created. - */ - public ImmunizationRecommendationRecommendationComponent setDate(Date value) { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - return this; - } - - /** - * @return {@link #vaccineType} (Vaccine that pertains to the recommendation.) - */ - public CodeableConcept getVaccineType() { - if (this.vaccineType == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationComponent.vaccineType"); - else if (Configuration.doAutoCreate()) - this.vaccineType = new CodeableConcept(); - return this.vaccineType; - } - - public boolean hasVaccineType() { - return this.vaccineType != null && !this.vaccineType.isEmpty(); - } - - /** - * @param value {@link #vaccineType} (Vaccine that pertains to the recommendation.) - */ - public ImmunizationRecommendationRecommendationComponent setVaccineType(CodeableConcept value) { - this.vaccineType = value; - return this; - } - - /** - * @return {@link #doseNumber} (This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose).). This is the underlying object with id, value and extensions. The accessor "getDoseNumber" gives direct access to the value - */ - public IntegerType getDoseNumberElement() { - if (this.doseNumber == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationComponent.doseNumber"); - else if (Configuration.doAutoCreate()) - this.doseNumber = new IntegerType(); - return this.doseNumber; - } - - public boolean hasDoseNumberElement() { - return this.doseNumber != null && !this.doseNumber.isEmpty(); - } - - public boolean hasDoseNumber() { - return this.doseNumber != null && !this.doseNumber.isEmpty(); - } - - /** - * @param value {@link #doseNumber} (This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose).). This is the underlying object with id, value and extensions. The accessor "getDoseNumber" gives direct access to the value - */ - public ImmunizationRecommendationRecommendationComponent setDoseNumberElement(IntegerType value) { - this.doseNumber = value; - return this; - } - - /** - * @return This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose). - */ - public int getDoseNumber() { - return this.doseNumber == null ? null : this.doseNumber.getValue(); - } - - /** - * @param value This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose). - */ - public ImmunizationRecommendationRecommendationComponent setDoseNumber(int value) { - if (value == -1) - this.doseNumber = null; - else { - if (this.doseNumber == null) - this.doseNumber = new IntegerType(); - this.doseNumber.setValue(value); - } - return this; - } - - /** - * @return {@link #forecastStatus} (Vaccine administration status.) - */ - public CodeableConcept getForecastStatus() { - if (this.forecastStatus == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationComponent.forecastStatus"); - else if (Configuration.doAutoCreate()) - this.forecastStatus = new CodeableConcept(); - return this.forecastStatus; - } - - public boolean hasForecastStatus() { - return this.forecastStatus != null && !this.forecastStatus.isEmpty(); - } - - /** - * @param value {@link #forecastStatus} (Vaccine administration status.) - */ - public ImmunizationRecommendationRecommendationComponent setForecastStatus(CodeableConcept value) { - this.forecastStatus = value; - return this; - } - - /** - * @return {@link #dateCriterion} (Vaccine date recommendations - e.g. earliest date to administer, latest date to administer, etc.) - */ - public List getDateCriterion() { - if (this.dateCriterion == null) - this.dateCriterion = new ArrayList(); - return this.dateCriterion; - } - - public boolean hasDateCriterion() { - if (this.dateCriterion == null) - return false; - for (ImmunizationRecommendationRecommendationDateCriterionComponent item : this.dateCriterion) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #dateCriterion} (Vaccine date recommendations - e.g. earliest date to administer, latest date to administer, etc.) - */ - // syntactic sugar - public ImmunizationRecommendationRecommendationDateCriterionComponent addDateCriterion() { //3 - ImmunizationRecommendationRecommendationDateCriterionComponent t = new ImmunizationRecommendationRecommendationDateCriterionComponent(); - if (this.dateCriterion == null) - this.dateCriterion = new ArrayList(); - this.dateCriterion.add(t); - return t; - } - - /** - * @return {@link #protocol} (Contains information about the protocol under which the vaccine was administered.) - */ - public ImmunizationRecommendationRecommendationProtocolComponent getProtocol() { - if (this.protocol == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationComponent.protocol"); - else if (Configuration.doAutoCreate()) - this.protocol = new ImmunizationRecommendationRecommendationProtocolComponent(); - return this.protocol; - } - - public boolean hasProtocol() { - return this.protocol != null && !this.protocol.isEmpty(); - } - - /** - * @param value {@link #protocol} (Contains information about the protocol under which the vaccine was administered.) - */ - public ImmunizationRecommendationRecommendationComponent setProtocol(ImmunizationRecommendationRecommendationProtocolComponent value) { - this.protocol = value; - return this; - } - - /** - * @return {@link #supportingImmunization} (Immunization event history that supports the status and recommendation.) - */ - public List getSupportingImmunization() { - if (this.supportingImmunization == null) - this.supportingImmunization = new ArrayList(); - return this.supportingImmunization; - } - - public boolean hasSupportingImmunization() { - if (this.supportingImmunization == null) - return false; - for (Reference item : this.supportingImmunization) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #supportingImmunization} (Immunization event history that supports the status and recommendation.) - */ - // syntactic sugar - public Reference addSupportingImmunization() { //3 - Reference t = new Reference(); - if (this.supportingImmunization == null) - this.supportingImmunization = new ArrayList(); - this.supportingImmunization.add(t); - return t; - } - - /** - * @return {@link #supportingImmunization} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Immunization event history that supports the status and recommendation.) - */ - public List getSupportingImmunizationTarget() { - if (this.supportingImmunizationTarget == null) - this.supportingImmunizationTarget = new ArrayList(); - return this.supportingImmunizationTarget; - } - - // syntactic sugar - /** - * @return {@link #supportingImmunization} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Immunization event history that supports the status and recommendation.) - */ - public Immunization addSupportingImmunizationTarget() { - Immunization r = new Immunization(); - if (this.supportingImmunizationTarget == null) - this.supportingImmunizationTarget = new ArrayList(); - this.supportingImmunizationTarget.add(r); - return r; - } - - /** - * @return {@link #supportingPatientInformation} (Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information.) - */ - public List getSupportingPatientInformation() { - if (this.supportingPatientInformation == null) - this.supportingPatientInformation = new ArrayList(); - return this.supportingPatientInformation; - } - - public boolean hasSupportingPatientInformation() { - if (this.supportingPatientInformation == null) - return false; - for (Reference item : this.supportingPatientInformation) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #supportingPatientInformation} (Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information.) - */ - // syntactic sugar - public Reference addSupportingPatientInformation() { //3 - Reference t = new Reference(); - if (this.supportingPatientInformation == null) - this.supportingPatientInformation = new ArrayList(); - this.supportingPatientInformation.add(t); - return t; - } - - /** - * @return {@link #supportingPatientInformation} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information.) - */ - public List getSupportingPatientInformationTarget() { - if (this.supportingPatientInformationTarget == null) - this.supportingPatientInformationTarget = new ArrayList(); - return this.supportingPatientInformationTarget; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("date", "dateTime", "The date the immunization recommendation was created.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("vaccineType", "CodeableConcept", "Vaccine that pertains to the recommendation.", 0, java.lang.Integer.MAX_VALUE, vaccineType)); - childrenList.add(new Property("doseNumber", "integer", "This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose).", 0, java.lang.Integer.MAX_VALUE, doseNumber)); - childrenList.add(new Property("forecastStatus", "CodeableConcept", "Vaccine administration status.", 0, java.lang.Integer.MAX_VALUE, forecastStatus)); - childrenList.add(new Property("dateCriterion", "", "Vaccine date recommendations - e.g. earliest date to administer, latest date to administer, etc.", 0, java.lang.Integer.MAX_VALUE, dateCriterion)); - childrenList.add(new Property("protocol", "", "Contains information about the protocol under which the vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, protocol)); - childrenList.add(new Property("supportingImmunization", "Reference(Immunization)", "Immunization event history that supports the status and recommendation.", 0, java.lang.Integer.MAX_VALUE, supportingImmunization)); - childrenList.add(new Property("supportingPatientInformation", "Reference(Observation|AllergyIntolerance)", "Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information.", 0, java.lang.Integer.MAX_VALUE, supportingPatientInformation)); - } - - public ImmunizationRecommendationRecommendationComponent copy() { - ImmunizationRecommendationRecommendationComponent dst = new ImmunizationRecommendationRecommendationComponent(); - copyValues(dst); - dst.date = date == null ? null : date.copy(); - dst.vaccineType = vaccineType == null ? null : vaccineType.copy(); - dst.doseNumber = doseNumber == null ? null : doseNumber.copy(); - dst.forecastStatus = forecastStatus == null ? null : forecastStatus.copy(); - if (dateCriterion != null) { - dst.dateCriterion = new ArrayList(); - for (ImmunizationRecommendationRecommendationDateCriterionComponent i : dateCriterion) - dst.dateCriterion.add(i.copy()); - }; - dst.protocol = protocol == null ? null : protocol.copy(); - if (supportingImmunization != null) { - dst.supportingImmunization = new ArrayList(); - for (Reference i : supportingImmunization) - dst.supportingImmunization.add(i.copy()); - }; - if (supportingPatientInformation != null) { - dst.supportingPatientInformation = new ArrayList(); - for (Reference i : supportingPatientInformation) - dst.supportingPatientInformation.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (date == null || date.isEmpty()) && (vaccineType == null || vaccineType.isEmpty()) - && (doseNumber == null || doseNumber.isEmpty()) && (forecastStatus == null || forecastStatus.isEmpty()) - && (dateCriterion == null || dateCriterion.isEmpty()) && (protocol == null || protocol.isEmpty()) - && (supportingImmunization == null || supportingImmunization.isEmpty()) && (supportingPatientInformation == null || supportingPatientInformation.isEmpty()) - ; - } - - } - - @Block() - public static class ImmunizationRecommendationRecommendationDateCriterionComponent extends BackboneElement { - /** - * Date classification of recommendation - e.g. earliest date to give, latest date to give, etc. - */ - @Child(name="code", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="Type of date", formalDefinition="Date classification of recommendation - e.g. earliest date to give, latest date to give, etc." ) - protected CodeableConcept code; - - /** - * Date recommendation. - */ - @Child(name="value", type={DateTimeType.class}, order=2, min=1, max=1) - @Description(shortDefinition="Recommended date", formalDefinition="Date recommendation." ) - protected DateTimeType value; - - private static final long serialVersionUID = 1036994566L; - - public ImmunizationRecommendationRecommendationDateCriterionComponent() { - super(); - } - - public ImmunizationRecommendationRecommendationDateCriterionComponent(CodeableConcept code, DateTimeType value) { - super(); - this.code = code; - this.value = value; - } - - /** - * @return {@link #code} (Date classification of recommendation - e.g. earliest date to give, latest date to give, etc.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationDateCriterionComponent.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (Date classification of recommendation - e.g. earliest date to give, latest date to give, etc.) - */ - public ImmunizationRecommendationRecommendationDateCriterionComponent setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #value} (Date recommendation.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public DateTimeType getValueElement() { - if (this.value == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationDateCriterionComponent.value"); - else if (Configuration.doAutoCreate()) - this.value = new DateTimeType(); - return this.value; - } - - public boolean hasValueElement() { - return this.value != null && !this.value.isEmpty(); - } - - public boolean hasValue() { - return this.value != null && !this.value.isEmpty(); - } - - /** - * @param value {@link #value} (Date recommendation.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value - */ - public ImmunizationRecommendationRecommendationDateCriterionComponent setValueElement(DateTimeType value) { - this.value = value; - return this; - } - - /** - * @return Date recommendation. - */ - public Date getValue() { - return this.value == null ? null : this.value.getValue(); - } - - /** - * @param value Date recommendation. - */ - public ImmunizationRecommendationRecommendationDateCriterionComponent setValue(Date value) { - if (this.value == null) - this.value = new DateTimeType(); - this.value.setValue(value); - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("code", "CodeableConcept", "Date classification of recommendation - e.g. earliest date to give, latest date to give, etc.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("value", "dateTime", "Date recommendation.", 0, java.lang.Integer.MAX_VALUE, value)); - } - - public ImmunizationRecommendationRecommendationDateCriterionComponent copy() { - ImmunizationRecommendationRecommendationDateCriterionComponent dst = new ImmunizationRecommendationRecommendationDateCriterionComponent(); - copyValues(dst); - dst.code = code == null ? null : code.copy(); - dst.value = value == null ? null : value.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (code == null || code.isEmpty()) && (value == null || value.isEmpty()) - ; - } - - } - - @Block() - public static class ImmunizationRecommendationRecommendationProtocolComponent extends BackboneElement { - /** - * Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol. - */ - @Child(name="doseSequence", type={IntegerType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Number of dose within sequence", formalDefinition="Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol." ) - protected IntegerType doseSequence; - - /** - * Contains the description about the protocol under which the vaccine was administered. - */ - @Child(name="description", type={StringType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Protocol details", formalDefinition="Contains the description about the protocol under which the vaccine was administered." ) - protected StringType description; - - /** - * Indicates the authority who published the protocol? E.g. ACIP. - */ - @Child(name="authority", type={Organization.class}, order=3, min=0, max=1) - @Description(shortDefinition="Who is responsible for protocol", formalDefinition="Indicates the authority who published the protocol? E.g. ACIP." ) - protected Reference authority; - - /** - * The actual object that is the target of the reference (Indicates the authority who published the protocol? E.g. ACIP.) - */ - protected Organization authorityTarget; - - /** - * One possible path to achieve presumed immunity against a disease - within the context of an authority. - */ - @Child(name="series", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Name of vaccination series", formalDefinition="One possible path to achieve presumed immunity against a disease - within the context of an authority." ) - protected StringType series; - - private static final long serialVersionUID = -512702014L; - - public ImmunizationRecommendationRecommendationProtocolComponent() { - super(); - } - - /** - * @return {@link #doseSequence} (Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol.). This is the underlying object with id, value and extensions. The accessor "getDoseSequence" gives direct access to the value - */ - public IntegerType getDoseSequenceElement() { - if (this.doseSequence == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationProtocolComponent.doseSequence"); - else if (Configuration.doAutoCreate()) - this.doseSequence = new IntegerType(); - return this.doseSequence; - } - - public boolean hasDoseSequenceElement() { - return this.doseSequence != null && !this.doseSequence.isEmpty(); - } - - public boolean hasDoseSequence() { - return this.doseSequence != null && !this.doseSequence.isEmpty(); - } - - /** - * @param value {@link #doseSequence} (Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol.). This is the underlying object with id, value and extensions. The accessor "getDoseSequence" gives direct access to the value - */ - public ImmunizationRecommendationRecommendationProtocolComponent setDoseSequenceElement(IntegerType value) { - this.doseSequence = value; - return this; - } - - /** - * @return Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol. - */ - public int getDoseSequence() { - return this.doseSequence == null ? null : this.doseSequence.getValue(); - } - - /** - * @param value Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol. - */ - public ImmunizationRecommendationRecommendationProtocolComponent setDoseSequence(int value) { - if (value == -1) - this.doseSequence = null; - else { - if (this.doseSequence == null) - this.doseSequence = new IntegerType(); - this.doseSequence.setValue(value); - } - return this; - } - - /** - * @return {@link #description} (Contains the description about the protocol under which the vaccine was administered.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationProtocolComponent.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Contains the description about the protocol under which the vaccine was administered.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public ImmunizationRecommendationRecommendationProtocolComponent setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Contains the description about the protocol under which the vaccine was administered. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Contains the description about the protocol under which the vaccine was administered. - */ - public ImmunizationRecommendationRecommendationProtocolComponent setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #authority} (Indicates the authority who published the protocol? E.g. ACIP.) - */ - public Reference getAuthority() { - if (this.authority == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationProtocolComponent.authority"); - else if (Configuration.doAutoCreate()) - this.authority = new Reference(); - return this.authority; - } - - public boolean hasAuthority() { - return this.authority != null && !this.authority.isEmpty(); - } - - /** - * @param value {@link #authority} (Indicates the authority who published the protocol? E.g. ACIP.) - */ - public ImmunizationRecommendationRecommendationProtocolComponent setAuthority(Reference value) { - this.authority = value; - return this; - } - - /** - * @return {@link #authority} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates the authority who published the protocol? E.g. ACIP.) - */ - public Organization getAuthorityTarget() { - if (this.authorityTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationProtocolComponent.authority"); - else if (Configuration.doAutoCreate()) - this.authorityTarget = new Organization(); - return this.authorityTarget; - } - - /** - * @param value {@link #authority} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates the authority who published the protocol? E.g. ACIP.) - */ - public ImmunizationRecommendationRecommendationProtocolComponent setAuthorityTarget(Organization value) { - this.authorityTarget = value; - return this; - } - - /** - * @return {@link #series} (One possible path to achieve presumed immunity against a disease - within the context of an authority.). This is the underlying object with id, value and extensions. The accessor "getSeries" gives direct access to the value - */ - public StringType getSeriesElement() { - if (this.series == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationProtocolComponent.series"); - else if (Configuration.doAutoCreate()) - this.series = new StringType(); - return this.series; - } - - public boolean hasSeriesElement() { - return this.series != null && !this.series.isEmpty(); - } - - public boolean hasSeries() { - return this.series != null && !this.series.isEmpty(); - } - - /** - * @param value {@link #series} (One possible path to achieve presumed immunity against a disease - within the context of an authority.). This is the underlying object with id, value and extensions. The accessor "getSeries" gives direct access to the value - */ - public ImmunizationRecommendationRecommendationProtocolComponent setSeriesElement(StringType value) { - this.series = value; - return this; - } - - /** - * @return One possible path to achieve presumed immunity against a disease - within the context of an authority. - */ - public String getSeries() { - return this.series == null ? null : this.series.getValue(); - } - - /** - * @param value One possible path to achieve presumed immunity against a disease - within the context of an authority. - */ - public ImmunizationRecommendationRecommendationProtocolComponent setSeries(String value) { - if (Utilities.noString(value)) - this.series = null; - else { - if (this.series == null) - this.series = new StringType(); - this.series.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("doseSequence", "integer", "Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol.", 0, java.lang.Integer.MAX_VALUE, doseSequence)); - childrenList.add(new Property("description", "string", "Contains the description about the protocol under which the vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("authority", "Reference(Organization)", "Indicates the authority who published the protocol? E.g. ACIP.", 0, java.lang.Integer.MAX_VALUE, authority)); - childrenList.add(new Property("series", "string", "One possible path to achieve presumed immunity against a disease - within the context of an authority.", 0, java.lang.Integer.MAX_VALUE, series)); - } - - public ImmunizationRecommendationRecommendationProtocolComponent copy() { - ImmunizationRecommendationRecommendationProtocolComponent dst = new ImmunizationRecommendationRecommendationProtocolComponent(); - copyValues(dst); - dst.doseSequence = doseSequence == null ? null : doseSequence.copy(); - dst.description = description == null ? null : description.copy(); - dst.authority = authority == null ? null : authority.copy(); - dst.series = series == null ? null : series.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (doseSequence == null || doseSequence.isEmpty()) && (description == null || description.isEmpty()) - && (authority == null || authority.isEmpty()) && (series == null || series.isEmpty()); - } - - } - - /** - * A unique identifier assigned to this particular recommendation record. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Business identifier", formalDefinition="A unique identifier assigned to this particular recommendation record." ) - protected List identifier; - - /** - * The patient who is the subject of the profile. - */ - @Child(name="subject", type={Patient.class}, order=0, min=1, max=1) - @Description(shortDefinition="Who this profile is for", formalDefinition="The patient who is the subject of the profile." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (The patient who is the subject of the profile.) - */ - protected Patient subjectTarget; - - /** - * Vaccine administration recommendations. - */ - @Child(name="recommendation", type={}, order=1, min=1, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Vaccine administration recommendations", formalDefinition="Vaccine administration recommendations." ) - protected List recommendation; - - private static final long serialVersionUID = -1614145779L; - - public ImmunizationRecommendation() { - super(); - } - - public ImmunizationRecommendation(Reference subject) { - super(); - this.subject = subject; - } - - /** - * @return {@link #identifier} (A unique identifier assigned to this particular recommendation record.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (A unique identifier assigned to this particular recommendation record.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #subject} (The patient who is the subject of the profile.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendation.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (The patient who is the subject of the profile.) - */ - public ImmunizationRecommendation setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient who is the subject of the profile.) - */ - public Patient getSubjectTarget() { - if (this.subjectTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ImmunizationRecommendation.subject"); - else if (Configuration.doAutoCreate()) - this.subjectTarget = new Patient(); - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient who is the subject of the profile.) - */ - public ImmunizationRecommendation setSubjectTarget(Patient value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #recommendation} (Vaccine administration recommendations.) - */ - public List getRecommendation() { - if (this.recommendation == null) - this.recommendation = new ArrayList(); - return this.recommendation; - } - - public boolean hasRecommendation() { - if (this.recommendation == null) - return false; - for (ImmunizationRecommendationRecommendationComponent item : this.recommendation) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #recommendation} (Vaccine administration recommendations.) - */ - // syntactic sugar - public ImmunizationRecommendationRecommendationComponent addRecommendation() { //3 - ImmunizationRecommendationRecommendationComponent t = new ImmunizationRecommendationRecommendationComponent(); - if (this.recommendation == null) - this.recommendation = new ArrayList(); - this.recommendation.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "A unique identifier assigned to this particular recommendation record.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("subject", "Reference(Patient)", "The patient who is the subject of the profile.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("recommendation", "", "Vaccine administration recommendations.", 0, java.lang.Integer.MAX_VALUE, recommendation)); - } - - public ImmunizationRecommendation copy() { - ImmunizationRecommendation dst = new ImmunizationRecommendation(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.subject = subject == null ? null : subject.copy(); - if (recommendation != null) { - dst.recommendation = new ArrayList(); - for (ImmunizationRecommendationRecommendationComponent i : recommendation) - dst.recommendation.add(i.copy()); - }; - return dst; - } - - protected ImmunizationRecommendation typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (subject == null || subject.isEmpty()) - && (recommendation == null || recommendation.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.ImmunizationRecommendation; - } - - @SearchParamDefinition(name="information", path="ImmunizationRecommendation.recommendation.supportingPatientInformation", description="Patient observations supporting recommendation", type="reference" ) - public static final String SP_INFORMATION = "information"; - @SearchParamDefinition(name="dose-sequence", path="ImmunizationRecommendation.recommendation.protocol.doseSequence", description="Number of dose within sequence", type="token" ) - public static final String SP_DOSESEQUENCE = "dose-sequence"; - @SearchParamDefinition(name="patient", path="ImmunizationRecommendation.subject", description="Who this profile is for", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="support", path="ImmunizationRecommendation.recommendation.supportingImmunization", description="Past immunizations supporting recommendation", type="reference" ) - public static final String SP_SUPPORT = "support"; - @SearchParamDefinition(name="vaccine-type", path="ImmunizationRecommendation.recommendation.vaccineType", description="Vaccine recommendation applies to", type="token" ) - public static final String SP_VACCINETYPE = "vaccine-type"; - @SearchParamDefinition(name="status", path="ImmunizationRecommendation.recommendation.forecastStatus", description="Vaccine administration status", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="dose-number", path="ImmunizationRecommendation.recommendation.doseNumber", description="Recommended dose number", type="number" ) - public static final String SP_DOSENUMBER = "dose-number"; - @SearchParamDefinition(name="subject", path="ImmunizationRecommendation.subject", description="Who this profile is for", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="date", path="ImmunizationRecommendation.recommendation.date", description="Date recommendation created", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="identifier", path="ImmunizationRecommendation.identifier", description="Business identifier", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A patient's point-of-time immunization status and recommendation with optional supporting justification. + */ +@ResourceDef(name="ImmunizationRecommendation", profile="http://hl7.org/fhir/Profile/ImmunizationRecommendation") +public class ImmunizationRecommendation extends DomainResource { + + @Block() + public static class ImmunizationRecommendationRecommendationComponent extends BackboneElement { + /** + * The date the immunization recommendation was created. + */ + @Child(name="date", type={DateTimeType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Date recommendation created", formalDefinition="The date the immunization recommendation was created." ) + protected DateTimeType date; + + /** + * Vaccine that pertains to the recommendation. + */ + @Child(name="vaccineType", type={CodeableConcept.class}, order=2, min=1, max=1) + @Description(shortDefinition="Vaccine recommendation applies to", formalDefinition="Vaccine that pertains to the recommendation." ) + protected CodeableConcept vaccineType; + + /** + * This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose). + */ + @Child(name="doseNumber", type={IntegerType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Recommended dose number", formalDefinition="This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose)." ) + protected IntegerType doseNumber; + + /** + * Vaccine administration status. + */ + @Child(name="forecastStatus", type={CodeableConcept.class}, order=4, min=1, max=1) + @Description(shortDefinition="Vaccine administration status", formalDefinition="Vaccine administration status." ) + protected CodeableConcept forecastStatus; + + /** + * Vaccine date recommendations - e.g. earliest date to administer, latest date to administer, etc. + */ + @Child(name="dateCriterion", type={}, order=5, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Dates governing proposed immunization", formalDefinition="Vaccine date recommendations - e.g. earliest date to administer, latest date to administer, etc." ) + protected List dateCriterion; + + /** + * Contains information about the protocol under which the vaccine was administered. + */ + @Child(name="protocol", type={}, order=6, min=0, max=1) + @Description(shortDefinition="Protocol used by recommendation", formalDefinition="Contains information about the protocol under which the vaccine was administered." ) + protected ImmunizationRecommendationRecommendationProtocolComponent protocol; + + /** + * Immunization event history that supports the status and recommendation. + */ + @Child(name="supportingImmunization", type={Immunization.class}, order=7, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Past immunizations supporting recommendation", formalDefinition="Immunization event history that supports the status and recommendation." ) + protected List supportingImmunization; + /** + * The actual objects that are the target of the reference (Immunization event history that supports the status and recommendation.) + */ + protected List supportingImmunizationTarget; + + + /** + * Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information. + */ + @Child(name="supportingPatientInformation", type={Observation.class, AllergyIntolerance.class}, order=8, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Patient observations supporting recommendation", formalDefinition="Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information." ) + protected List supportingPatientInformation; + /** + * The actual objects that are the target of the reference (Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information.) + */ + protected List supportingPatientInformationTarget; + + + private static final long serialVersionUID = -1477214875L; + + public ImmunizationRecommendationRecommendationComponent() { + super(); + } + + public ImmunizationRecommendationRecommendationComponent(DateTimeType date, CodeableConcept vaccineType, CodeableConcept forecastStatus) { + super(); + this.date = date; + this.vaccineType = vaccineType; + this.forecastStatus = forecastStatus; + } + + /** + * @return {@link #date} (The date the immunization recommendation was created.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationComponent.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (The date the immunization recommendation was created.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public ImmunizationRecommendationRecommendationComponent setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return The date the immunization recommendation was created. + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value The date the immunization recommendation was created. + */ + public ImmunizationRecommendationRecommendationComponent setDate(Date value) { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + return this; + } + + /** + * @return {@link #vaccineType} (Vaccine that pertains to the recommendation.) + */ + public CodeableConcept getVaccineType() { + if (this.vaccineType == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationComponent.vaccineType"); + else if (Configuration.doAutoCreate()) + this.vaccineType = new CodeableConcept(); // cc + return this.vaccineType; + } + + public boolean hasVaccineType() { + return this.vaccineType != null && !this.vaccineType.isEmpty(); + } + + /** + * @param value {@link #vaccineType} (Vaccine that pertains to the recommendation.) + */ + public ImmunizationRecommendationRecommendationComponent setVaccineType(CodeableConcept value) { + this.vaccineType = value; + return this; + } + + /** + * @return {@link #doseNumber} (This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose).). This is the underlying object with id, value and extensions. The accessor "getDoseNumber" gives direct access to the value + */ + public IntegerType getDoseNumberElement() { + if (this.doseNumber == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationComponent.doseNumber"); + else if (Configuration.doAutoCreate()) + this.doseNumber = new IntegerType(); // bb + return this.doseNumber; + } + + public boolean hasDoseNumberElement() { + return this.doseNumber != null && !this.doseNumber.isEmpty(); + } + + public boolean hasDoseNumber() { + return this.doseNumber != null && !this.doseNumber.isEmpty(); + } + + /** + * @param value {@link #doseNumber} (This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose).). This is the underlying object with id, value and extensions. The accessor "getDoseNumber" gives direct access to the value + */ + public ImmunizationRecommendationRecommendationComponent setDoseNumberElement(IntegerType value) { + this.doseNumber = value; + return this; + } + + /** + * @return This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose). + */ + public int getDoseNumber() { + return this.doseNumber == null ? 0 : this.doseNumber.getValue(); + } + + /** + * @param value This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose). + */ + public ImmunizationRecommendationRecommendationComponent setDoseNumber(int value) { + if (this.doseNumber == null) + this.doseNumber = new IntegerType(); + this.doseNumber.setValue(value); + return this; + } + + /** + * @return {@link #forecastStatus} (Vaccine administration status.) + */ + public CodeableConcept getForecastStatus() { + if (this.forecastStatus == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationComponent.forecastStatus"); + else if (Configuration.doAutoCreate()) + this.forecastStatus = new CodeableConcept(); // cc + return this.forecastStatus; + } + + public boolean hasForecastStatus() { + return this.forecastStatus != null && !this.forecastStatus.isEmpty(); + } + + /** + * @param value {@link #forecastStatus} (Vaccine administration status.) + */ + public ImmunizationRecommendationRecommendationComponent setForecastStatus(CodeableConcept value) { + this.forecastStatus = value; + return this; + } + + /** + * @return {@link #dateCriterion} (Vaccine date recommendations - e.g. earliest date to administer, latest date to administer, etc.) + */ + public List getDateCriterion() { + if (this.dateCriterion == null) + this.dateCriterion = new ArrayList(); + return this.dateCriterion; + } + + public boolean hasDateCriterion() { + if (this.dateCriterion == null) + return false; + for (ImmunizationRecommendationRecommendationDateCriterionComponent item : this.dateCriterion) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #dateCriterion} (Vaccine date recommendations - e.g. earliest date to administer, latest date to administer, etc.) + */ + // syntactic sugar + public ImmunizationRecommendationRecommendationDateCriterionComponent addDateCriterion() { //3 + ImmunizationRecommendationRecommendationDateCriterionComponent t = new ImmunizationRecommendationRecommendationDateCriterionComponent(); + if (this.dateCriterion == null) + this.dateCriterion = new ArrayList(); + this.dateCriterion.add(t); + return t; + } + + /** + * @return {@link #protocol} (Contains information about the protocol under which the vaccine was administered.) + */ + public ImmunizationRecommendationRecommendationProtocolComponent getProtocol() { + if (this.protocol == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationComponent.protocol"); + else if (Configuration.doAutoCreate()) + this.protocol = new ImmunizationRecommendationRecommendationProtocolComponent(); // cc + return this.protocol; + } + + public boolean hasProtocol() { + return this.protocol != null && !this.protocol.isEmpty(); + } + + /** + * @param value {@link #protocol} (Contains information about the protocol under which the vaccine was administered.) + */ + public ImmunizationRecommendationRecommendationComponent setProtocol(ImmunizationRecommendationRecommendationProtocolComponent value) { + this.protocol = value; + return this; + } + + /** + * @return {@link #supportingImmunization} (Immunization event history that supports the status and recommendation.) + */ + public List getSupportingImmunization() { + if (this.supportingImmunization == null) + this.supportingImmunization = new ArrayList(); + return this.supportingImmunization; + } + + public boolean hasSupportingImmunization() { + if (this.supportingImmunization == null) + return false; + for (Reference item : this.supportingImmunization) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #supportingImmunization} (Immunization event history that supports the status and recommendation.) + */ + // syntactic sugar + public Reference addSupportingImmunization() { //3 + Reference t = new Reference(); + if (this.supportingImmunization == null) + this.supportingImmunization = new ArrayList(); + this.supportingImmunization.add(t); + return t; + } + + /** + * @return {@link #supportingImmunization} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Immunization event history that supports the status and recommendation.) + */ + public List getSupportingImmunizationTarget() { + if (this.supportingImmunizationTarget == null) + this.supportingImmunizationTarget = new ArrayList(); + return this.supportingImmunizationTarget; + } + + // syntactic sugar + /** + * @return {@link #supportingImmunization} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Immunization event history that supports the status and recommendation.) + */ + public Immunization addSupportingImmunizationTarget() { + Immunization r = new Immunization(); + if (this.supportingImmunizationTarget == null) + this.supportingImmunizationTarget = new ArrayList(); + this.supportingImmunizationTarget.add(r); + return r; + } + + /** + * @return {@link #supportingPatientInformation} (Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information.) + */ + public List getSupportingPatientInformation() { + if (this.supportingPatientInformation == null) + this.supportingPatientInformation = new ArrayList(); + return this.supportingPatientInformation; + } + + public boolean hasSupportingPatientInformation() { + if (this.supportingPatientInformation == null) + return false; + for (Reference item : this.supportingPatientInformation) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #supportingPatientInformation} (Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information.) + */ + // syntactic sugar + public Reference addSupportingPatientInformation() { //3 + Reference t = new Reference(); + if (this.supportingPatientInformation == null) + this.supportingPatientInformation = new ArrayList(); + this.supportingPatientInformation.add(t); + return t; + } + + /** + * @return {@link #supportingPatientInformation} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information.) + */ + public List getSupportingPatientInformationTarget() { + if (this.supportingPatientInformationTarget == null) + this.supportingPatientInformationTarget = new ArrayList(); + return this.supportingPatientInformationTarget; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("date", "dateTime", "The date the immunization recommendation was created.", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("vaccineType", "CodeableConcept", "Vaccine that pertains to the recommendation.", 0, java.lang.Integer.MAX_VALUE, vaccineType)); + childrenList.add(new Property("doseNumber", "integer", "This indicates the next recommended dose number (e.g. dose 2 is the next recommended dose).", 0, java.lang.Integer.MAX_VALUE, doseNumber)); + childrenList.add(new Property("forecastStatus", "CodeableConcept", "Vaccine administration status.", 0, java.lang.Integer.MAX_VALUE, forecastStatus)); + childrenList.add(new Property("dateCriterion", "", "Vaccine date recommendations - e.g. earliest date to administer, latest date to administer, etc.", 0, java.lang.Integer.MAX_VALUE, dateCriterion)); + childrenList.add(new Property("protocol", "", "Contains information about the protocol under which the vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, protocol)); + childrenList.add(new Property("supportingImmunization", "Reference(Immunization)", "Immunization event history that supports the status and recommendation.", 0, java.lang.Integer.MAX_VALUE, supportingImmunization)); + childrenList.add(new Property("supportingPatientInformation", "Reference(Observation|AllergyIntolerance)", "Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information.", 0, java.lang.Integer.MAX_VALUE, supportingPatientInformation)); + } + + public ImmunizationRecommendationRecommendationComponent copy() { + ImmunizationRecommendationRecommendationComponent dst = new ImmunizationRecommendationRecommendationComponent(); + copyValues(dst); + dst.date = date == null ? null : date.copy(); + dst.vaccineType = vaccineType == null ? null : vaccineType.copy(); + dst.doseNumber = doseNumber == null ? null : doseNumber.copy(); + dst.forecastStatus = forecastStatus == null ? null : forecastStatus.copy(); + if (dateCriterion != null) { + dst.dateCriterion = new ArrayList(); + for (ImmunizationRecommendationRecommendationDateCriterionComponent i : dateCriterion) + dst.dateCriterion.add(i.copy()); + }; + dst.protocol = protocol == null ? null : protocol.copy(); + if (supportingImmunization != null) { + dst.supportingImmunization = new ArrayList(); + for (Reference i : supportingImmunization) + dst.supportingImmunization.add(i.copy()); + }; + if (supportingPatientInformation != null) { + dst.supportingPatientInformation = new ArrayList(); + for (Reference i : supportingPatientInformation) + dst.supportingPatientInformation.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ImmunizationRecommendationRecommendationComponent)) + return false; + ImmunizationRecommendationRecommendationComponent o = (ImmunizationRecommendationRecommendationComponent) other; + return compareDeep(date, o.date, true) && compareDeep(vaccineType, o.vaccineType, true) && compareDeep(doseNumber, o.doseNumber, true) + && compareDeep(forecastStatus, o.forecastStatus, true) && compareDeep(dateCriterion, o.dateCriterion, true) + && compareDeep(protocol, o.protocol, true) && compareDeep(supportingImmunization, o.supportingImmunization, true) + && compareDeep(supportingPatientInformation, o.supportingPatientInformation, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ImmunizationRecommendationRecommendationComponent)) + return false; + ImmunizationRecommendationRecommendationComponent o = (ImmunizationRecommendationRecommendationComponent) other; + return compareValues(date, o.date, true) && compareValues(doseNumber, o.doseNumber, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (date == null || date.isEmpty()) && (vaccineType == null || vaccineType.isEmpty()) + && (doseNumber == null || doseNumber.isEmpty()) && (forecastStatus == null || forecastStatus.isEmpty()) + && (dateCriterion == null || dateCriterion.isEmpty()) && (protocol == null || protocol.isEmpty()) + && (supportingImmunization == null || supportingImmunization.isEmpty()) && (supportingPatientInformation == null || supportingPatientInformation.isEmpty()) + ; + } + + } + + @Block() + public static class ImmunizationRecommendationRecommendationDateCriterionComponent extends BackboneElement { + /** + * Date classification of recommendation - e.g. earliest date to give, latest date to give, etc. + */ + @Child(name="code", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="Type of date", formalDefinition="Date classification of recommendation - e.g. earliest date to give, latest date to give, etc." ) + protected CodeableConcept code; + + /** + * Date recommendation. + */ + @Child(name="value", type={DateTimeType.class}, order=2, min=1, max=1) + @Description(shortDefinition="Recommended date", formalDefinition="Date recommendation." ) + protected DateTimeType value; + + private static final long serialVersionUID = 1036994566L; + + public ImmunizationRecommendationRecommendationDateCriterionComponent() { + super(); + } + + public ImmunizationRecommendationRecommendationDateCriterionComponent(CodeableConcept code, DateTimeType value) { + super(); + this.code = code; + this.value = value; + } + + /** + * @return {@link #code} (Date classification of recommendation - e.g. earliest date to give, latest date to give, etc.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationDateCriterionComponent.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (Date classification of recommendation - e.g. earliest date to give, latest date to give, etc.) + */ + public ImmunizationRecommendationRecommendationDateCriterionComponent setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #value} (Date recommendation.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public DateTimeType getValueElement() { + if (this.value == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationDateCriterionComponent.value"); + else if (Configuration.doAutoCreate()) + this.value = new DateTimeType(); // bb + return this.value; + } + + public boolean hasValueElement() { + return this.value != null && !this.value.isEmpty(); + } + + public boolean hasValue() { + return this.value != null && !this.value.isEmpty(); + } + + /** + * @param value {@link #value} (Date recommendation.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value + */ + public ImmunizationRecommendationRecommendationDateCriterionComponent setValueElement(DateTimeType value) { + this.value = value; + return this; + } + + /** + * @return Date recommendation. + */ + public Date getValue() { + return this.value == null ? null : this.value.getValue(); + } + + /** + * @param value Date recommendation. + */ + public ImmunizationRecommendationRecommendationDateCriterionComponent setValue(Date value) { + if (this.value == null) + this.value = new DateTimeType(); + this.value.setValue(value); + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("code", "CodeableConcept", "Date classification of recommendation - e.g. earliest date to give, latest date to give, etc.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("value", "dateTime", "Date recommendation.", 0, java.lang.Integer.MAX_VALUE, value)); + } + + public ImmunizationRecommendationRecommendationDateCriterionComponent copy() { + ImmunizationRecommendationRecommendationDateCriterionComponent dst = new ImmunizationRecommendationRecommendationDateCriterionComponent(); + copyValues(dst); + dst.code = code == null ? null : code.copy(); + dst.value = value == null ? null : value.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ImmunizationRecommendationRecommendationDateCriterionComponent)) + return false; + ImmunizationRecommendationRecommendationDateCriterionComponent o = (ImmunizationRecommendationRecommendationDateCriterionComponent) other; + return compareDeep(code, o.code, true) && compareDeep(value, o.value, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ImmunizationRecommendationRecommendationDateCriterionComponent)) + return false; + ImmunizationRecommendationRecommendationDateCriterionComponent o = (ImmunizationRecommendationRecommendationDateCriterionComponent) other; + return compareValues(value, o.value, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (code == null || code.isEmpty()) && (value == null || value.isEmpty()) + ; + } + + } + + @Block() + public static class ImmunizationRecommendationRecommendationProtocolComponent extends BackboneElement { + /** + * Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol. + */ + @Child(name="doseSequence", type={IntegerType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Number of dose within sequence", formalDefinition="Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol." ) + protected IntegerType doseSequence; + + /** + * Contains the description about the protocol under which the vaccine was administered. + */ + @Child(name="description", type={StringType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Protocol details", formalDefinition="Contains the description about the protocol under which the vaccine was administered." ) + protected StringType description; + + /** + * Indicates the authority who published the protocol? E.g. ACIP. + */ + @Child(name="authority", type={Organization.class}, order=3, min=0, max=1) + @Description(shortDefinition="Who is responsible for protocol", formalDefinition="Indicates the authority who published the protocol? E.g. ACIP." ) + protected Reference authority; + + /** + * The actual object that is the target of the reference (Indicates the authority who published the protocol? E.g. ACIP.) + */ + protected Organization authorityTarget; + + /** + * One possible path to achieve presumed immunity against a disease - within the context of an authority. + */ + @Child(name="series", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Name of vaccination series", formalDefinition="One possible path to achieve presumed immunity against a disease - within the context of an authority." ) + protected StringType series; + + private static final long serialVersionUID = -512702014L; + + public ImmunizationRecommendationRecommendationProtocolComponent() { + super(); + } + + /** + * @return {@link #doseSequence} (Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol.). This is the underlying object with id, value and extensions. The accessor "getDoseSequence" gives direct access to the value + */ + public IntegerType getDoseSequenceElement() { + if (this.doseSequence == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationProtocolComponent.doseSequence"); + else if (Configuration.doAutoCreate()) + this.doseSequence = new IntegerType(); // bb + return this.doseSequence; + } + + public boolean hasDoseSequenceElement() { + return this.doseSequence != null && !this.doseSequence.isEmpty(); + } + + public boolean hasDoseSequence() { + return this.doseSequence != null && !this.doseSequence.isEmpty(); + } + + /** + * @param value {@link #doseSequence} (Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol.). This is the underlying object with id, value and extensions. The accessor "getDoseSequence" gives direct access to the value + */ + public ImmunizationRecommendationRecommendationProtocolComponent setDoseSequenceElement(IntegerType value) { + this.doseSequence = value; + return this; + } + + /** + * @return Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol. + */ + public int getDoseSequence() { + return this.doseSequence == null ? 0 : this.doseSequence.getValue(); + } + + /** + * @param value Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol. + */ + public ImmunizationRecommendationRecommendationProtocolComponent setDoseSequence(int value) { + if (this.doseSequence == null) + this.doseSequence = new IntegerType(); + this.doseSequence.setValue(value); + return this; + } + + /** + * @return {@link #description} (Contains the description about the protocol under which the vaccine was administered.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationProtocolComponent.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Contains the description about the protocol under which the vaccine was administered.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public ImmunizationRecommendationRecommendationProtocolComponent setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Contains the description about the protocol under which the vaccine was administered. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Contains the description about the protocol under which the vaccine was administered. + */ + public ImmunizationRecommendationRecommendationProtocolComponent setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #authority} (Indicates the authority who published the protocol? E.g. ACIP.) + */ + public Reference getAuthority() { + if (this.authority == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationProtocolComponent.authority"); + else if (Configuration.doAutoCreate()) + this.authority = new Reference(); // cc + return this.authority; + } + + public boolean hasAuthority() { + return this.authority != null && !this.authority.isEmpty(); + } + + /** + * @param value {@link #authority} (Indicates the authority who published the protocol? E.g. ACIP.) + */ + public ImmunizationRecommendationRecommendationProtocolComponent setAuthority(Reference value) { + this.authority = value; + return this; + } + + /** + * @return {@link #authority} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Indicates the authority who published the protocol? E.g. ACIP.) + */ + public Organization getAuthorityTarget() { + if (this.authorityTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationProtocolComponent.authority"); + else if (Configuration.doAutoCreate()) + this.authorityTarget = new Organization(); // aa + return this.authorityTarget; + } + + /** + * @param value {@link #authority} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Indicates the authority who published the protocol? E.g. ACIP.) + */ + public ImmunizationRecommendationRecommendationProtocolComponent setAuthorityTarget(Organization value) { + this.authorityTarget = value; + return this; + } + + /** + * @return {@link #series} (One possible path to achieve presumed immunity against a disease - within the context of an authority.). This is the underlying object with id, value and extensions. The accessor "getSeries" gives direct access to the value + */ + public StringType getSeriesElement() { + if (this.series == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendationRecommendationProtocolComponent.series"); + else if (Configuration.doAutoCreate()) + this.series = new StringType(); // bb + return this.series; + } + + public boolean hasSeriesElement() { + return this.series != null && !this.series.isEmpty(); + } + + public boolean hasSeries() { + return this.series != null && !this.series.isEmpty(); + } + + /** + * @param value {@link #series} (One possible path to achieve presumed immunity against a disease - within the context of an authority.). This is the underlying object with id, value and extensions. The accessor "getSeries" gives direct access to the value + */ + public ImmunizationRecommendationRecommendationProtocolComponent setSeriesElement(StringType value) { + this.series = value; + return this; + } + + /** + * @return One possible path to achieve presumed immunity against a disease - within the context of an authority. + */ + public String getSeries() { + return this.series == null ? null : this.series.getValue(); + } + + /** + * @param value One possible path to achieve presumed immunity against a disease - within the context of an authority. + */ + public ImmunizationRecommendationRecommendationProtocolComponent setSeries(String value) { + if (Utilities.noString(value)) + this.series = null; + else { + if (this.series == null) + this.series = new StringType(); + this.series.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("doseSequence", "integer", "Indicates the nominal position in a series of the next dose. This is the recommended dose number as per a specified protocol.", 0, java.lang.Integer.MAX_VALUE, doseSequence)); + childrenList.add(new Property("description", "string", "Contains the description about the protocol under which the vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("authority", "Reference(Organization)", "Indicates the authority who published the protocol? E.g. ACIP.", 0, java.lang.Integer.MAX_VALUE, authority)); + childrenList.add(new Property("series", "string", "One possible path to achieve presumed immunity against a disease - within the context of an authority.", 0, java.lang.Integer.MAX_VALUE, series)); + } + + public ImmunizationRecommendationRecommendationProtocolComponent copy() { + ImmunizationRecommendationRecommendationProtocolComponent dst = new ImmunizationRecommendationRecommendationProtocolComponent(); + copyValues(dst); + dst.doseSequence = doseSequence == null ? null : doseSequence.copy(); + dst.description = description == null ? null : description.copy(); + dst.authority = authority == null ? null : authority.copy(); + dst.series = series == null ? null : series.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ImmunizationRecommendationRecommendationProtocolComponent)) + return false; + ImmunizationRecommendationRecommendationProtocolComponent o = (ImmunizationRecommendationRecommendationProtocolComponent) other; + return compareDeep(doseSequence, o.doseSequence, true) && compareDeep(description, o.description, true) + && compareDeep(authority, o.authority, true) && compareDeep(series, o.series, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ImmunizationRecommendationRecommendationProtocolComponent)) + return false; + ImmunizationRecommendationRecommendationProtocolComponent o = (ImmunizationRecommendationRecommendationProtocolComponent) other; + return compareValues(doseSequence, o.doseSequence, true) && compareValues(description, o.description, true) + && compareValues(series, o.series, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (doseSequence == null || doseSequence.isEmpty()) && (description == null || description.isEmpty()) + && (authority == null || authority.isEmpty()) && (series == null || series.isEmpty()); + } + + } + + /** + * A unique identifier assigned to this particular recommendation record. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Business identifier", formalDefinition="A unique identifier assigned to this particular recommendation record." ) + protected List identifier; + + /** + * The patient for whom the recommendations are for. + */ + @Child(name="patient", type={Patient.class}, order=0, min=1, max=1) + @Description(shortDefinition="Who this profile is for", formalDefinition="The patient for whom the recommendations are for." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (The patient for whom the recommendations are for.) + */ + protected Patient patientTarget; + + /** + * Vaccine administration recommendations. + */ + @Child(name="recommendation", type={}, order=1, min=1, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Vaccine administration recommendations", formalDefinition="Vaccine administration recommendations." ) + protected List recommendation; + + private static final long serialVersionUID = 641058495L; + + public ImmunizationRecommendation() { + super(); + } + + public ImmunizationRecommendation(Reference patient) { + super(); + this.patient = patient; + } + + /** + * @return {@link #identifier} (A unique identifier assigned to this particular recommendation record.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (A unique identifier assigned to this particular recommendation record.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #patient} (The patient for whom the recommendations are for.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendation.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (The patient for whom the recommendations are for.) + */ + public ImmunizationRecommendation setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The patient for whom the recommendations are for.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ImmunizationRecommendation.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The patient for whom the recommendations are for.) + */ + public ImmunizationRecommendation setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #recommendation} (Vaccine administration recommendations.) + */ + public List getRecommendation() { + if (this.recommendation == null) + this.recommendation = new ArrayList(); + return this.recommendation; + } + + public boolean hasRecommendation() { + if (this.recommendation == null) + return false; + for (ImmunizationRecommendationRecommendationComponent item : this.recommendation) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #recommendation} (Vaccine administration recommendations.) + */ + // syntactic sugar + public ImmunizationRecommendationRecommendationComponent addRecommendation() { //3 + ImmunizationRecommendationRecommendationComponent t = new ImmunizationRecommendationRecommendationComponent(); + if (this.recommendation == null) + this.recommendation = new ArrayList(); + this.recommendation.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "A unique identifier assigned to this particular recommendation record.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("patient", "Reference(Patient)", "The patient for whom the recommendations are for.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("recommendation", "", "Vaccine administration recommendations.", 0, java.lang.Integer.MAX_VALUE, recommendation)); + } + + public ImmunizationRecommendation copy() { + ImmunizationRecommendation dst = new ImmunizationRecommendation(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.patient = patient == null ? null : patient.copy(); + if (recommendation != null) { + dst.recommendation = new ArrayList(); + for (ImmunizationRecommendationRecommendationComponent i : recommendation) + dst.recommendation.add(i.copy()); + }; + return dst; + } + + protected ImmunizationRecommendation typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ImmunizationRecommendation)) + return false; + ImmunizationRecommendation o = (ImmunizationRecommendation) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(patient, o.patient, true) && compareDeep(recommendation, o.recommendation, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ImmunizationRecommendation)) + return false; + ImmunizationRecommendation o = (ImmunizationRecommendation) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (patient == null || patient.isEmpty()) + && (recommendation == null || recommendation.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.ImmunizationRecommendation; + } + + @SearchParamDefinition(name="information", path="ImmunizationRecommendation.recommendation.supportingPatientInformation", description="Patient observations supporting recommendation", type="reference" ) + public static final String SP_INFORMATION = "information"; + @SearchParamDefinition(name="dose-sequence", path="ImmunizationRecommendation.recommendation.protocol.doseSequence", description="Number of dose within sequence", type="token" ) + public static final String SP_DOSESEQUENCE = "dose-sequence"; + @SearchParamDefinition(name="patient", path="ImmunizationRecommendation.patient", description="Who this profile is for", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="support", path="ImmunizationRecommendation.recommendation.supportingImmunization", description="Past immunizations supporting recommendation", type="reference" ) + public static final String SP_SUPPORT = "support"; + @SearchParamDefinition(name="vaccine-type", path="ImmunizationRecommendation.recommendation.vaccineType", description="Vaccine recommendation applies to", type="token" ) + public static final String SP_VACCINETYPE = "vaccine-type"; + @SearchParamDefinition(name="status", path="ImmunizationRecommendation.recommendation.forecastStatus", description="Vaccine administration status", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="dose-number", path="ImmunizationRecommendation.recommendation.doseNumber", description="Recommended dose number", type="number" ) + public static final String SP_DOSENUMBER = "dose-number"; + @SearchParamDefinition(name="subject", path="ImmunizationRecommendation.patient", description="Who this profile is for", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="date", path="ImmunizationRecommendation.recommendation.date", description="Date recommendation created", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="identifier", path="ImmunizationRecommendation.identifier", description="Business identifier", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstantType$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstantType$1.class new file mode 100644 index 0000000000000000000000000000000000000000..f1a08a31515b67dc28ad8ddcf4fe0a8976b06485 GIT binary patch literal 779 zcmbVKO>fgc6r4?*I0-H_pA7{;p>CU8u&PRMpyCozDIy<8j^NPK##xeWH@nf=DdHFP z3`hte)E~f)LcFzv-~s|9+xzC(GqdBjU%!360C0eI12=H94j&tJs+tbo^0Dc_Z69}h z++#S5k~cC>=L5csjGaYu^*DMxmo}0*%ehWPv@lblqOn*kjpgcv6{*am(Otb-FqDpa z47I~lNiFlI4CPk)C4<)?4#Rq1YB5|bCc=*SL{Vog$$5H8UInJTFfE?Ythk=VLzAr1 z`H>WA+O^i$04?k=v?*gu8Dp0*{*f^*GRD7{NBaz52zpuz+fh8rL`K{DsXv;Wh%{%| z`%6KF{Xc#Ao8MbK<7(xcAGO-Y{eKpC!ca}Rozd_a!@+;iePgFmb5%^1MqL^7`u$$G zMTe?Jhm3_yHv?A@zJ!3*H9`}VsRCM`z%ITtKA`m8UFDDPywN$l=LM`1tQ7DaN~Cig y8>pa(ZJK6WeSV_@@3jj^EjwG%`h+r?K zBbdQ#4`O&%yJ`4oJ_B* z*?!s%kp-D9ddt#D=Vfu-^DXD9FAKJEGUJwu69Qe6wrdAx1lkiv7X&&ov=->k*{-}? zE-pzwZ!J088BFBvSr4pqIk25{#&V>)Z21!kvRHpIZ3S}T6@=80=k20g^jsN|k0n}? zowrI-xm1|^qxA}A=QDzo%-LslTQWC~mm=Dwi5$yaP0t6u?XHGWJFS&K`T|YdFEY+c za>er*$o(Z59}t`unPAt zS?fBH{SWP6tXh;!IsKd&u12_fEf@t{sOw@QdxQh zZ~YPL(Dfb)80(f_k_+Pkr<;ZQCG^H$BuABvz>yc2%{a2igwe8lvf${RiOhRtzaVFA z)gjTkIE|`aF>x424BR$x2X{@x@rDTtOKLl1q5x)fTdk*58Jmz;F|mp@6E^M{xNpL# zAkrq@#F&Y<)KY|Nz%#LqkEpy=+t+C_;VT7)F=CSHwk1P1RSrrjpcb~7t5)+(9L0UDmaY`c~delW<IS~=a@#x+6$ zU{Jq{JWw3_}?Mco34MHQ6D3 zv94rl6MZ%Lm7ssjOMF60jvj3v*Y;*|1KSt_-n;)X#Z*$&#V7D7SI(*DBchFn&uBZo zRR_m-J;f7CK80~(6WhZ;H{Nbr7=+JZ;tST%m$W~IF!j`UnMqwq8opq4}V9eDE6!dzs{$+RwprgYLH4njE1J?{+B7) mr?x6#f5-_K4DR=6ua#$o_c#@wr_(lM!qi4+KE$DeX!pNg<+d~c literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/InstantType.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstantType.java similarity index 88% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/InstantType.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstantType.java index 1206cd157a4..e1f6b11f0eb 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/InstantType.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstantType.java @@ -1,238 +1,220 @@ -/* -Copyright (c) 2011+, HL7, Inc -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -*/ -/** - * - */ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -import java.util.Calendar; -import java.util.Date; -import java.util.TimeZone; -import java.util.zip.DataFormatException; - -/** - * Represents a FHIR instant datatype. Valid precisions values for this type are: - *
      - *
    • {@link TemporalPrecisionEnum#SECOND} - *
    • {@link TemporalPrecisionEnum#MILLI} - *
    - */ -public class InstantType extends BaseDateTimeType { - - private static final long serialVersionUID = 1L; - - /** - * The default precision for this type - */ - public static final TemporalPrecisionEnum DEFAULT_PRECISION = TemporalPrecisionEnum.MILLI; - - /** - * Constructor which creates an InstantDt with no timne value. Note - * that unlike the default constructor for the Java {@link Date} or - * {@link Calendar} objects, this constructor does not initialize the object - * with the current time. - * - * @see #withCurrentTime() to create a new object that has been initialized - * with the current time. - */ - public InstantType() { - super(); - } - - /** - * Create a new DateTimeDt - */ - public InstantType(Calendar theCalendar) { - super(theCalendar.getTime(), DEFAULT_PRECISION, theCalendar.getTimeZone()); - } - - /** - * Create a new instance using the given date, precision level, and time zone - * - * @throws ca.uhn.fhir.parser.DataFormatException - * If the specified precision is not allowed for this type - */ - public InstantType(Date theDate, TemporalPrecisionEnum thePrecision, TimeZone theTimezone) { - super(theDate, thePrecision, theTimezone); - } - - - /** - * Create a new DateTimeDt using an existing value. Use this constructor with caution, - * as it may create more precision than warranted (since for example it is possible to pass in - * a DateTime with only a year, and this constructor will convert to an InstantDt with - * milliseconds precision). - */ - public InstantType(BaseDateTimeType theDateTime) { - // Do not call super(foo) here, we don't want to trigger a DataFormatException - setValue(theDateTime.getValue()); - setPrecision(DEFAULT_PRECISION); - setTimeZone(theDateTime.getTimeZone()); - } - - /** - * Create a new DateTimeDt with the given date/time and {@link TemporalPrecisionEnum#MILLI} precision - */ - public InstantType(Date theDate) { - super(theDate, DEFAULT_PRECISION, TimeZone.getDefault()); - } - - /** - * Constructor which accepts a date value and a precision value. Valid - * precisions values for this type are: - *
      - *
    • {@link TemporalPrecisionEnum#SECOND} - *
    • {@link TemporalPrecisionEnum#MILLI} - *
    - */ - public InstantType(Date theDate, TemporalPrecisionEnum thePrecision) { - setValue(theDate); - setPrecision(thePrecision); - setTimeZone(TimeZone.getDefault()); - } - - /** - * Create a new InstantDt from a string value - * - * @param theString - * The string representation of the string. Must be in a valid - * format according to the FHIR specification - * @throws ca.uhn.fhir.parser.DataFormatException If the value is invalid - */ - public InstantType(String theString) { - super(theString); - } - - /** - * Invokes {@link Date#after(Date)} on the contained Date against the given - * date - * - * @throws NullPointerException - * If the {@link #getValue() contained Date} is null - */ - public boolean after(Date theDate) { - return getValue().after(theDate); - } - - /** - * Invokes {@link Date#before(Date)} on the contained Date against the given - * date - * - * @throws NullPointerException - * If the {@link #getValue() contained Date} is null - */ - public boolean before(Date theDate) { - return getValue().before(theDate); - } - - /** - * Sets the value of this instant to the current time (from the system - * clock) and the local/default timezone (as retrieved using - * {@link TimeZone#getDefault()}. This TimeZone is generally obtained from - * the underlying OS. - */ - public void setToCurrentTimeInLocalTimeZone() { - setValue(new Date()); - setTimeZone(TimeZone.getDefault()); - } - - @Override - boolean isPrecisionAllowed(TemporalPrecisionEnum thePrecision) { - switch (thePrecision) { - case SECOND: - case MILLI: - return true; - default: - return false; - } - } - - /** - * Factory method which creates a new InstantDt with millisecond precision and initializes it with the - * current time and the system local timezone. - */ - public static InstantType withCurrentTime() { - return new InstantType(new Date(), TemporalPrecisionEnum.MILLI, TimeZone.getDefault()); - } - - /** - * Returns the default precision for this datatype - * - * @see #DEFAULT_PRECISION - */ - @Override - protected TemporalPrecisionEnum getDefaultPrecisionForDatatype() { - return DEFAULT_PRECISION; - } - - - @Override - public InstantType copy() { - return new InstantType(getValue()); - } - - /** - * Returns a new instance of DateTimeType with the current system time and MILLI precision and the system local time - * zone - */ - public static InstantType now() { - return new InstantType(new Date(), TemporalPrecisionEnum.MILLI, TimeZone.getDefault()); - } - - /** - * Creates a new instance by parsing an HL7 v3 format date time string - */ - public static InstantType parseV3(String theV3String) { - InstantType retVal = new InstantType(); - retVal.setValueAsV3String(theV3String); - return retVal; - } - -} +/* +Copyright (c) 2011+, HL7, Inc +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +*/ +/** + * + */ +package org.hl7.fhir.instance.model; + +import java.util.Calendar; +import java.util.Date; +import java.util.TimeZone; +import java.util.zip.DataFormatException; + +import org.hl7.fhir.instance.model.annotations.DatatypeDef; + +/** + * Represents a FHIR instant datatype. Valid precisions values for this type are: + *
      + *
    • {@link TemporalPrecisionEnum#SECOND} + *
    • {@link TemporalPrecisionEnum#MILLI} + *
    + */ +@DatatypeDef(name="Instant") +public class InstantType extends BaseDateTimeType { + + private static final long serialVersionUID = 3L; + + /** + * The default precision for this type + */ + public static final TemporalPrecisionEnum DEFAULT_PRECISION = TemporalPrecisionEnum.MILLI; + + /** + * Constructor which creates an InstantDt with no timne value. Note + * that unlike the default constructor for the Java {@link Date} or + * {@link Calendar} objects, this constructor does not initialize the object + * with the current time. + * + * @see #withCurrentTime() to create a new object that has been initialized + * with the current time. + */ + public InstantType() { + super(); + } + + /** + * Create a new DateTimeDt + */ + public InstantType(Calendar theCalendar) { + super(theCalendar.getTime(), DEFAULT_PRECISION, theCalendar.getTimeZone()); + } + + /** + * Create a new instance using the given date, precision level, and time zone + * + * @throws DataFormatException + * If the specified precision is not allowed for this type + */ + public InstantType(Date theDate, TemporalPrecisionEnum thePrecision, TimeZone theTimezone) { + super(theDate, thePrecision, theTimezone); + } + + + /** + * Create a new DateTimeDt using an existing value. Use this constructor with caution, + * as it may create more precision than warranted (since for example it is possible to pass in + * a DateTime with only a year, and this constructor will convert to an InstantDt with + * milliseconds precision). + */ + public InstantType(BaseDateTimeType theDateTime) { + // Do not call super(foo) here, we don't want to trigger a DataFormatException + setValue(theDateTime.getValue()); + setPrecision(DEFAULT_PRECISION); + setTimeZone(theDateTime.getTimeZone()); + } + + /** + * Create a new DateTimeDt with the given date/time and {@link TemporalPrecisionEnum#MILLI} precision + */ + public InstantType(Date theDate) { + super(theDate, DEFAULT_PRECISION, TimeZone.getDefault()); + } + + /** + * Constructor which accepts a date value and a precision value. Valid + * precisions values for this type are: + *
      + *
    • {@link TemporalPrecisionEnum#SECOND} + *
    • {@link TemporalPrecisionEnum#MILLI} + *
    + */ + public InstantType(Date theDate, TemporalPrecisionEnum thePrecision) { + setValue(theDate); + setPrecision(thePrecision); + setTimeZone(TimeZone.getDefault()); + } + + /** + * Create a new InstantDt from a string value + * + * @param theString + * The string representation of the string. Must be in a valid + * format according to the FHIR specification + * @throws DataFormatException + */ + public InstantType(String theString) { + super(theString); + } + + /** + * Invokes {@link Date#after(Date)} on the contained Date against the given + * date + * + * @throws NullPointerException + * If the {@link #getValue() contained Date} is null + */ + public boolean after(Date theDate) { + return getValue().after(theDate); + } + + /** + * Invokes {@link Date#before(Date)} on the contained Date against the given + * date + * + * @throws NullPointerException + * If the {@link #getValue() contained Date} is null + */ + public boolean before(Date theDate) { + return getValue().before(theDate); + } + + /** + * Sets the value of this instant to the current time (from the system + * clock) and the local/default timezone (as retrieved using + * {@link TimeZone#getDefault()}. This TimeZone is generally obtained from + * the underlying OS. + */ + public void setToCurrentTimeInLocalTimeZone() { + setValue(new Date()); + setTimeZone(TimeZone.getDefault()); + } + + @Override + boolean isPrecisionAllowed(TemporalPrecisionEnum thePrecision) { + switch (thePrecision) { + case SECOND: + case MILLI: + return true; + default: + return false; + } + } + + /** + * Factory method which creates a new InstantDt with millisecond precision and initializes it with the + * current time and the system local timezone. + */ + public static InstantType withCurrentTime() { + return new InstantType(new Date(), TemporalPrecisionEnum.MILLI, TimeZone.getDefault()); + } + + /** + * Returns the default precision for this datatype + * + * @see #DEFAULT_PRECISION + */ + @Override + protected TemporalPrecisionEnum getDefaultPrecisionForDatatype() { + return DEFAULT_PRECISION; + } + + + @Override + public InstantType copy() { + return new InstantType(getValue()); + } + + /** + * Returns a new instance of DateTimeType with the current system time and MILLI precision and the system local time + * zone + */ + public static InstantType now() { + return new InstantType(new Date(), TemporalPrecisionEnum.MILLI, TimeZone.getDefault()); + } + + /** + * Creates a new instance by parsing an HL7 v3 format date time string + */ + public static InstantType parseV3(String theV3String) { + InstantType retVal = new InstantType(); + retVal.setValueAsV3String(theV3String); + return retVal; + } + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7e8574e3b47375ba73eddc5f7cfcafed931b39a9 GIT binary patch literal 941 zcmbVL+iuf95IvhXagw?;EzqXrR#DR?1>yptAQd5^)KMdnI!atF>XYLv$+nJ-Y^VGS zKfp5}A%svrfR94VT7n4msg>-RIlD7+W<29xzki$pc!aG2mQczgkL5gBD-vE)ab1EN zQrwi{mWovsYYa8L_d&$&sO`MhgK(&iyeIm*kqC9+N3r9(TptGm?&(c}BA&z|@Ex!2 zIby6IM7$;ZV}{gWlOgxa^@K0t=M3p`ZyO=LYg<;r2}V)=GxoOP?+X_>ak z@buzY)F2!PT9{-f$g@y9_htn@-E>)@-Z$mLX%=duF$|N^4u7HD<+1hA} literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$CoverageComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$CoverageComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..6ad3f7627561cd8f55d8b8b34f8cbc975cfa5f74 GIT binary patch literal 12781 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 Tf#8m69Dn>^&?h=*j7t6t_Q^j% literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$DetailComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$DetailComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..06266fb3575a095be70790d6fa668cf72e2683ff GIT binary patch literal 12889 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$ItemsComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$ItemsComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..5c50fa5909ce39bfcbde10fc741d1ed6e1c30763 GIT binary patch literal 19165 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 B;fnwO literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$PayeeComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$PayeeComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..e308657e370c8ed7f8b6a06f7012010b3a5e8500 GIT binary patch literal 6873 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$SubDetailComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$SubDetailComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..3f2271086aaab3f24c93f57f0a046f8a4c2914f7 GIT binary patch literal 11326 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 b9-(i!pZ!?CKVkd<{88~fBrc=hp~U|KY6xD} literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$UseLink.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim$UseLink.class new file mode 100644 index 0000000000000000000000000000000000000000..fa367ac75ba0a34fe0ad867a71c8ec2261c1918c GIT binary patch literal 2976 zcmb_eTUQfT6#fQ6GK2wfyi;3KjY3coX}uPzAV$Rof&|cLy$s1A8JNt(nF&ZQzoJk5 z3w?^X7If9s)~7!7M|Jf(6Rx6NOX(!%?Cdl9>~HV0FDHNh^V=T)zQm8M2;oi?qqrME ze*~E*x-llFaTVDpCU8&1q!h}jn38l_#f+r)RXmV1AHl;29z~(!TNRHbeWK#2q|c(* z52F>cC`2h)R3TK%sVJ!^t1wmc$mMwz=T!8mNUBIljSCT23e=J8*hD5hl~xd$_C&_C z7Zhltwk_Nd%kVtmDY%kx+)}D+T~5uFO*duQo^RL%k*YXFVWmdNntshU9ow+D$E?KH z6%A1R#AJ3Nn@itR(3XBMk;zUDPh}_b3R<#LchZvzLgUk!46)-g!=m;Hm;d@LYon zo|0N{DpgDPLPHPElCQc>)$v48!#T;fi5FGNaSh*bmo@asr54983s*x@G6%NOVe|0m z&DLroNp93kt0*^J0X;uFZ72Y_%g_vO%V}6+{uBf`g<7+Qw#Ddz4%{eaLiI^wcMYABh zq=MWoO&iX?N7IBW`iz=ic3ks2LuShVrnSfjxD}I`{vNHV;h5zV49i-M6=kA|VvG(2 zkytW4L61GhTI4Ewlwb3bL8LXLWQ;ntq9K!(5iD4a&7|8|8QIx+QScd_G-K z*#Oz0dt)nG%lQv;Jl?NhIG$TF{X&^dD9+t+-WG9rTf{eRi+FHb#CMnX#%-aX>Cq^A ztm76Le_l;&bE8B3ys5f*hlYoa$-)FkS&#u`6$X?A7*GZo=8!uT{`_m``86ES53b@6Umem9b6UlbH5~mjfS2wj(Z=~U+HnW__?P4; z?&3JU!D(cWz!(p0oClG`b^a|G!99FUX%*piMdO2O>BcZp_FM2~C>iQ@0Xq$pqbTJyh6k|QjXwJ~s`;6uTg5(23 zB53Jp;zO;&dq9uW_08`t^v6VhLiDFZe@1kJ=(BI5-`E5C@w)zLUH`1EpLmDwb3`u@ zy-akI=<`HhcpH6W59t4S@($6fM1M|nm*^hR{hjD4ZZeGIUNa@GwScu(9C?#)LI(1g1owoUQ(SI7Gjzw*gt=cH?HF?fCxI z8Q=Azf56Yt4=`hA)EQ^|;E!^AZjy#zYCe#e+;h&|bI*CsInTX+|MTl_050Nn9pkv5 zVpc~IPpf!F!x-jNT$J)z70*dIui}!FmlZs(-~}DS^2maeiz;4}a!H4QWffNxT-EUi z(sH?`Afw^|kIF{P z=J#CzW7YHQAnjVUnq3pfPG@gfZ(B*%^2*6V7&u;eA)fVva&pJLl)Sm)1WCuMg_c*c zlNIK1ldCkHupT%$r>yEo^ z2LdNHyj{YpUthOin;YojyhMop5Y*3R<&w-+X5H5aXjEc92zfKsfPajT1KZI zc*PD?c0VG=Jln5tz4XRezIfvhc$5!ol#)c}dWzO5N^&02nSF?#sR*3r8f$Le;Yv%bqM~6&TKmc`h&Iev$50xk+A*|-sdtQ_#yuFD_b|M< zkB7`-dl=!T5%V~gJ(&A=_;=gc+vI{;F$kGxC!u|;{Gt!`@NG&EcO=_yt zhNPx9%+UtjTd2-6KJW$KjW40&D;&qy7{xbi^0!3&9n*Y|Y5dSc5<^7SG;Jis-Klo+ zv+d;COyUoW?cszBeP|4HKf@5MF`RC@$7a~4lRds&6%Mj7666dLP5Bgg0GQkvLkbgD L#>t8lR-pY00=(i2 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim.class new file mode 100644 index 0000000000000000000000000000000000000000..525636fe995f22f56394e088a204e1e1c40e5de5 GIT binary patch literal 29768 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 I&Dr<=03pldCIA2c literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim.java similarity index 87% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim.java index 54974c80738..780fd961853 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/InstitutionalClaim.java @@ -1,3807 +1,3952 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import java.math.*; -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery. - */ -@ResourceDef(name="InstitutionalClaim", profile="http://hl7.org/fhir/Profile/InstitutionalClaim") -public class InstitutionalClaim extends DomainResource { - - public enum UseLink implements FhirEnum { - /** - * The treatment is complete and this represents a Claim for the services. - */ - COMPLETE, - /** - * The treatment is proposed and this represents a Pre-authorization for the services. - */ - PROPOSED, - /** - * The treatment is proposed and this represents a Pre-determination for the services. - */ - EXPLORATORY, - /** - * A locally defined or otherwise resolved status. - */ - OTHER, - /** - * added to help the parsers - */ - NULL; - - public static final UseLinkEnumFactory ENUM_FACTORY = new UseLinkEnumFactory(); - - public static UseLink fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("complete".equals(codeString)) - return COMPLETE; - if ("proposed".equals(codeString)) - return PROPOSED; - if ("exploratory".equals(codeString)) - return EXPLORATORY; - if ("other".equals(codeString)) - return OTHER; - throw new IllegalArgumentException("Unknown UseLink code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case COMPLETE: return "complete"; - case PROPOSED: return "proposed"; - case EXPLORATORY: return "exploratory"; - case OTHER: return "other"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case COMPLETE: return ""; - case PROPOSED: return ""; - case EXPLORATORY: return ""; - case OTHER: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case COMPLETE: return "The treatment is complete and this represents a Claim for the services."; - case PROPOSED: return "The treatment is proposed and this represents a Pre-authorization for the services."; - case EXPLORATORY: return "The treatment is proposed and this represents a Pre-determination for the services."; - case OTHER: return "A locally defined or otherwise resolved status."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case COMPLETE: return "complete"; - case PROPOSED: return "proposed"; - case EXPLORATORY: return "exploratory"; - case OTHER: return "other"; - default: return "?"; - } - } - } - - public static class UseLinkEnumFactory implements EnumFactory { - public UseLink fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("complete".equals(codeString)) - return UseLink.COMPLETE; - if ("proposed".equals(codeString)) - return UseLink.PROPOSED; - if ("exploratory".equals(codeString)) - return UseLink.EXPLORATORY; - if ("other".equals(codeString)) - return UseLink.OTHER; - throw new IllegalArgumentException("Unknown UseLink code '"+codeString+"'"); - } - public String toCode(UseLink code) throws IllegalArgumentException { - if (code == UseLink.COMPLETE) - return "complete"; - if (code == UseLink.PROPOSED) - return "proposed"; - if (code == UseLink.EXPLORATORY) - return "exploratory"; - if (code == UseLink.OTHER) - return "other"; - return "?"; - } - } - - @Block() - public static class PayeeComponent extends BackboneElement { - /** - * Party to be reimbursed: Subscriber, provider, other. - */ - @Child(name="type", type={Coding.class}, order=1, min=0, max=1) - @Description(shortDefinition="Party to be paid any benefits payable", formalDefinition="Party to be reimbursed: Subscriber, provider, other." ) - protected Coding type; - - /** - * The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned). - */ - @Child(name="provider", type={Practitioner.class}, order=2, min=0, max=1) - @Description(shortDefinition="Provider who is the payee", formalDefinition="The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned)." ) - protected Reference provider; - - /** - * The actual object that is the target of the reference (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - protected Practitioner providerTarget; - - /** - * The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned). - */ - @Child(name="organization", type={Organization.class}, order=3, min=0, max=1) - @Description(shortDefinition="Organization who is the payee", formalDefinition="The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned)." ) - protected Reference organization; - - /** - * The actual object that is the target of the reference (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - protected Organization organizationTarget; - - /** - * The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned). - */ - @Child(name="person", type={Patient.class}, order=4, min=0, max=1) - @Description(shortDefinition="Other person who is the payee", formalDefinition="The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned)." ) - protected Reference person; - - /** - * The actual object that is the target of the reference (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - protected Patient personTarget; - - private static final long serialVersionUID = -503108488L; - - public PayeeComponent() { - super(); - } - - /** - * @return {@link #type} (Party to be reimbursed: Subscriber, provider, other.) - */ - public Coding getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create PayeeComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new Coding(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Party to be reimbursed: Subscriber, provider, other.) - */ - public PayeeComponent setType(Coding value) { - this.type = value; - return this; - } - - /** - * @return {@link #provider} (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - public Reference getProvider() { - if (this.provider == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create PayeeComponent.provider"); - else if (Configuration.doAutoCreate()) - this.provider = new Reference(); - return this.provider; - } - - public boolean hasProvider() { - return this.provider != null && !this.provider.isEmpty(); - } - - /** - * @param value {@link #provider} (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - public PayeeComponent setProvider(Reference value) { - this.provider = value; - return this; - } - - /** - * @return {@link #provider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - public Practitioner getProviderTarget() { - if (this.providerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create PayeeComponent.provider"); - else if (Configuration.doAutoCreate()) - this.providerTarget = new Practitioner(); - return this.providerTarget; - } - - /** - * @param value {@link #provider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - public PayeeComponent setProviderTarget(Practitioner value) { - this.providerTarget = value; - return this; - } - - /** - * @return {@link #organization} (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - public Reference getOrganization() { - if (this.organization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create PayeeComponent.organization"); - else if (Configuration.doAutoCreate()) - this.organization = new Reference(); - return this.organization; - } - - public boolean hasOrganization() { - return this.organization != null && !this.organization.isEmpty(); - } - - /** - * @param value {@link #organization} (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - public PayeeComponent setOrganization(Reference value) { - this.organization = value; - return this; - } - - /** - * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - public Organization getOrganizationTarget() { - if (this.organizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create PayeeComponent.organization"); - else if (Configuration.doAutoCreate()) - this.organizationTarget = new Organization(); - return this.organizationTarget; - } - - /** - * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - public PayeeComponent setOrganizationTarget(Organization value) { - this.organizationTarget = value; - return this; - } - - /** - * @return {@link #person} (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - public Reference getPerson() { - if (this.person == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create PayeeComponent.person"); - else if (Configuration.doAutoCreate()) - this.person = new Reference(); - return this.person; - } - - public boolean hasPerson() { - return this.person != null && !this.person.isEmpty(); - } - - /** - * @param value {@link #person} (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - public PayeeComponent setPerson(Reference value) { - this.person = value; - return this; - } - - /** - * @return {@link #person} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - public Patient getPersonTarget() { - if (this.personTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create PayeeComponent.person"); - else if (Configuration.doAutoCreate()) - this.personTarget = new Patient(); - return this.personTarget; - } - - /** - * @param value {@link #person} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).) - */ - public PayeeComponent setPersonTarget(Patient value) { - this.personTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "Coding", "Party to be reimbursed: Subscriber, provider, other.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("provider", "Reference(Practitioner)", "The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).", 0, java.lang.Integer.MAX_VALUE, provider)); - childrenList.add(new Property("organization", "Reference(Organization)", "The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).", 0, java.lang.Integer.MAX_VALUE, organization)); - childrenList.add(new Property("person", "Reference(Patient)", "The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).", 0, java.lang.Integer.MAX_VALUE, person)); - } - - public PayeeComponent copy() { - PayeeComponent dst = new PayeeComponent(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - dst.provider = provider == null ? null : provider.copy(); - dst.organization = organization == null ? null : organization.copy(); - dst.person = person == null ? null : person.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (provider == null || provider.isEmpty()) - && (organization == null || organization.isEmpty()) && (person == null || person.isEmpty()) - ; - } - - } - - @Block() - public static class DiagnosisComponent extends BackboneElement { - /** - * Sequence of diagnosis. - */ - @Child(name="sequence", type={IntegerType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Sequence of diagnosis", formalDefinition="Sequence of diagnosis." ) - protected IntegerType sequence; - - /** - * The diagnosis. - */ - @Child(name="diagnosis", type={Coding.class}, order=2, min=1, max=1) - @Description(shortDefinition="Patient's list of diagnosis", formalDefinition="The diagnosis." ) - protected Coding diagnosis; - - private static final long serialVersionUID = -935927954L; - - public DiagnosisComponent() { - super(); - } - - public DiagnosisComponent(IntegerType sequence, Coding diagnosis) { - super(); - this.sequence = sequence; - this.diagnosis = diagnosis; - } - - /** - * @return {@link #sequence} (Sequence of diagnosis.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value - */ - public IntegerType getSequenceElement() { - if (this.sequence == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosisComponent.sequence"); - else if (Configuration.doAutoCreate()) - this.sequence = new IntegerType(); - return this.sequence; - } - - public boolean hasSequenceElement() { - return this.sequence != null && !this.sequence.isEmpty(); - } - - public boolean hasSequence() { - return this.sequence != null && !this.sequence.isEmpty(); - } - - /** - * @param value {@link #sequence} (Sequence of diagnosis.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value - */ - public DiagnosisComponent setSequenceElement(IntegerType value) { - this.sequence = value; - return this; - } - - /** - * @return Sequence of diagnosis. - */ - public int getSequence() { - return this.sequence == null ? null : this.sequence.getValue(); - } - - /** - * @param value Sequence of diagnosis. - */ - public DiagnosisComponent setSequence(int value) { - if (this.sequence == null) - this.sequence = new IntegerType(); - this.sequence.setValue(value); - return this; - } - - /** - * @return {@link #diagnosis} (The diagnosis.) - */ - public Coding getDiagnosis() { - if (this.diagnosis == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DiagnosisComponent.diagnosis"); - else if (Configuration.doAutoCreate()) - this.diagnosis = new Coding(); - return this.diagnosis; - } - - public boolean hasDiagnosis() { - return this.diagnosis != null && !this.diagnosis.isEmpty(); - } - - /** - * @param value {@link #diagnosis} (The diagnosis.) - */ - public DiagnosisComponent setDiagnosis(Coding value) { - this.diagnosis = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("sequence", "integer", "Sequence of diagnosis.", 0, java.lang.Integer.MAX_VALUE, sequence)); - childrenList.add(new Property("diagnosis", "Coding", "The diagnosis.", 0, java.lang.Integer.MAX_VALUE, diagnosis)); - } - - public DiagnosisComponent copy() { - DiagnosisComponent dst = new DiagnosisComponent(); - copyValues(dst); - dst.sequence = sequence == null ? null : sequence.copy(); - dst.diagnosis = diagnosis == null ? null : diagnosis.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (diagnosis == null || diagnosis.isEmpty()) - ; - } - - } - - @Block() - public static class CoverageComponent extends BackboneElement { - /** - * A service line item. - */ - @Child(name="sequence", type={IntegerType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Service instance identifier", formalDefinition="A service line item." ) - protected IntegerType sequence; - - /** - * The instance number of the Coverage which is the focus for adjudication, that is the Coverage to which the claim is to be adjudicated against. - */ - @Child(name="focal", type={BooleanType.class}, order=2, min=1, max=1) - @Description(shortDefinition="Is the focal Coverage", formalDefinition="The instance number of the Coverage which is the focus for adjudication, that is the Coverage to which the claim is to be adjudicated against." ) - protected BooleanType focal; - - /** - * Reference to the program or plan identification, underwriter or payor. - */ - @Child(name="coverage", type={Coverage.class}, order=3, min=1, max=1) - @Description(shortDefinition="Insurance information", formalDefinition="Reference to the program or plan identification, underwriter or payor." ) - protected Reference coverage; - - /** - * The actual object that is the target of the reference (Reference to the program or plan identification, underwriter or payor.) - */ - protected Coverage coverageTarget; - - /** - * The contract number of a business agrement which describes the terms and conditions. - */ - @Child(name="businessArrangement", type={StringType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Business agreement", formalDefinition="The contract number of a business agrement which describes the terms and conditions." ) - protected StringType businessArrangement; - - /** - * The relationship of the patient to the subscriber. - */ - @Child(name="relationship", type={Coding.class}, order=5, min=1, max=1) - @Description(shortDefinition="Patient relationship to subscriber", formalDefinition="The relationship of the patient to the subscriber." ) - protected Coding relationship; - - /** - * A list of references from the Insurer to which these services pertain. - */ - @Child(name="preauthref", type={StringType.class}, order=6, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Pre-Authorization/Determination Reference", formalDefinition="A list of references from the Insurer to which these services pertain." ) - protected List preauthref; - - /** - * The Coverages adjudication details. - */ - @Child(name="claimResponse", type={ClaimResponse.class}, order=7, min=0, max=1) - @Description(shortDefinition="Adjudication results", formalDefinition="The Coverages adjudication details." ) - protected Reference claimResponse; - - /** - * The actual object that is the target of the reference (The Coverages adjudication details.) - */ - protected ClaimResponse claimResponseTarget; - - /** - * The style (standard) and version of the original material which was converted into this resource. - */ - @Child(name="originalRuleset", type={Coding.class}, order=8, min=0, max=1) - @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) - protected Coding originalRuleset; - - private static final long serialVersionUID = 450222500L; - - public CoverageComponent() { - super(); - } - - public CoverageComponent(IntegerType sequence, BooleanType focal, Reference coverage, Coding relationship) { - super(); - this.sequence = sequence; - this.focal = focal; - this.coverage = coverage; - this.relationship = relationship; - } - - /** - * @return {@link #sequence} (A service line item.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value - */ - public IntegerType getSequenceElement() { - if (this.sequence == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CoverageComponent.sequence"); - else if (Configuration.doAutoCreate()) - this.sequence = new IntegerType(); - return this.sequence; - } - - public boolean hasSequenceElement() { - return this.sequence != null && !this.sequence.isEmpty(); - } - - public boolean hasSequence() { - return this.sequence != null && !this.sequence.isEmpty(); - } - - /** - * @param value {@link #sequence} (A service line item.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value - */ - public CoverageComponent setSequenceElement(IntegerType value) { - this.sequence = value; - return this; - } - - /** - * @return A service line item. - */ - public int getSequence() { - return this.sequence == null ? null : this.sequence.getValue(); - } - - /** - * @param value A service line item. - */ - public CoverageComponent setSequence(int value) { - if (this.sequence == null) - this.sequence = new IntegerType(); - this.sequence.setValue(value); - return this; - } - - /** - * @return {@link #focal} (The instance number of the Coverage which is the focus for adjudication, that is the Coverage to which the claim is to be adjudicated against.). This is the underlying object with id, value and extensions. The accessor "getFocal" gives direct access to the value - */ - public BooleanType getFocalElement() { - if (this.focal == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CoverageComponent.focal"); - else if (Configuration.doAutoCreate()) - this.focal = new BooleanType(); - return this.focal; - } - - public boolean hasFocalElement() { - return this.focal != null && !this.focal.isEmpty(); - } - - public boolean hasFocal() { - return this.focal != null && !this.focal.isEmpty(); - } - - /** - * @param value {@link #focal} (The instance number of the Coverage which is the focus for adjudication, that is the Coverage to which the claim is to be adjudicated against.). This is the underlying object with id, value and extensions. The accessor "getFocal" gives direct access to the value - */ - public CoverageComponent setFocalElement(BooleanType value) { - this.focal = value; - return this; - } - - /** - * @return The instance number of the Coverage which is the focus for adjudication, that is the Coverage to which the claim is to be adjudicated against. - */ - public boolean getFocal() { - return this.focal == null ? false : this.focal.getValue(); - } - - /** - * @param value The instance number of the Coverage which is the focus for adjudication, that is the Coverage to which the claim is to be adjudicated against. - */ - public CoverageComponent setFocal(boolean value) { - if (this.focal == null) - this.focal = new BooleanType(); - this.focal.setValue(value); - return this; - } - - /** - * @return {@link #coverage} (Reference to the program or plan identification, underwriter or payor.) - */ - public Reference getCoverage() { - if (this.coverage == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CoverageComponent.coverage"); - else if (Configuration.doAutoCreate()) - this.coverage = new Reference(); - return this.coverage; - } - - public boolean hasCoverage() { - return this.coverage != null && !this.coverage.isEmpty(); - } - - /** - * @param value {@link #coverage} (Reference to the program or plan identification, underwriter or payor.) - */ - public CoverageComponent setCoverage(Reference value) { - this.coverage = value; - return this; - } - - /** - * @return {@link #coverage} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Reference to the program or plan identification, underwriter or payor.) - */ - public Coverage getCoverageTarget() { - if (this.coverageTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CoverageComponent.coverage"); - else if (Configuration.doAutoCreate()) - this.coverageTarget = new Coverage(); - return this.coverageTarget; - } - - /** - * @param value {@link #coverage} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Reference to the program or plan identification, underwriter or payor.) - */ - public CoverageComponent setCoverageTarget(Coverage value) { - this.coverageTarget = value; - return this; - } - - /** - * @return {@link #businessArrangement} (The contract number of a business agrement which describes the terms and conditions.). This is the underlying object with id, value and extensions. The accessor "getBusinessArrangement" gives direct access to the value - */ - public StringType getBusinessArrangementElement() { - if (this.businessArrangement == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CoverageComponent.businessArrangement"); - else if (Configuration.doAutoCreate()) - this.businessArrangement = new StringType(); - return this.businessArrangement; - } - - public boolean hasBusinessArrangementElement() { - return this.businessArrangement != null && !this.businessArrangement.isEmpty(); - } - - public boolean hasBusinessArrangement() { - return this.businessArrangement != null && !this.businessArrangement.isEmpty(); - } - - /** - * @param value {@link #businessArrangement} (The contract number of a business agrement which describes the terms and conditions.). This is the underlying object with id, value and extensions. The accessor "getBusinessArrangement" gives direct access to the value - */ - public CoverageComponent setBusinessArrangementElement(StringType value) { - this.businessArrangement = value; - return this; - } - - /** - * @return The contract number of a business agrement which describes the terms and conditions. - */ - public String getBusinessArrangement() { - return this.businessArrangement == null ? null : this.businessArrangement.getValue(); - } - - /** - * @param value The contract number of a business agrement which describes the terms and conditions. - */ - public CoverageComponent setBusinessArrangement(String value) { - if (Utilities.noString(value)) - this.businessArrangement = null; - else { - if (this.businessArrangement == null) - this.businessArrangement = new StringType(); - this.businessArrangement.setValue(value); - } - return this; - } - - /** - * @return {@link #relationship} (The relationship of the patient to the subscriber.) - */ - public Coding getRelationship() { - if (this.relationship == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CoverageComponent.relationship"); - else if (Configuration.doAutoCreate()) - this.relationship = new Coding(); - return this.relationship; - } - - public boolean hasRelationship() { - return this.relationship != null && !this.relationship.isEmpty(); - } - - /** - * @param value {@link #relationship} (The relationship of the patient to the subscriber.) - */ - public CoverageComponent setRelationship(Coding value) { - this.relationship = value; - return this; - } - - /** - * @return {@link #preauthref} (A list of references from the Insurer to which these services pertain.) - */ - public List getPreauthref() { - if (this.preauthref == null) - this.preauthref = new ArrayList(); - return this.preauthref; - } - - public boolean hasPreauthref() { - if (this.preauthref == null) - return false; - for (StringType item : this.preauthref) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #preauthref} (A list of references from the Insurer to which these services pertain.) - */ - // syntactic sugar - public StringType addPreauthrefElement() {//2 - StringType t = new StringType(); - if (this.preauthref == null) - this.preauthref = new ArrayList(); - this.preauthref.add(t); - return t; - } - - /** - * @param value {@link #preauthref} (A list of references from the Insurer to which these services pertain.) - */ - public CoverageComponent addPreauthref(String value) { //1 - StringType t = new StringType(); - t.setValue(value); - if (this.preauthref == null) - this.preauthref = new ArrayList(); - this.preauthref.add(t); - return this; - } - - /** - * @param value {@link #preauthref} (A list of references from the Insurer to which these services pertain.) - */ - public boolean hasPreauthref(String value) { - if (this.preauthref == null) - return false; - for (StringType v : this.preauthref) - if (v.equals(value)) // string - return true; - return false; - } - - /** - * @return {@link #claimResponse} (The Coverages adjudication details.) - */ - public Reference getClaimResponse() { - if (this.claimResponse == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CoverageComponent.claimResponse"); - else if (Configuration.doAutoCreate()) - this.claimResponse = new Reference(); - return this.claimResponse; - } - - public boolean hasClaimResponse() { - return this.claimResponse != null && !this.claimResponse.isEmpty(); - } - - /** - * @param value {@link #claimResponse} (The Coverages adjudication details.) - */ - public CoverageComponent setClaimResponse(Reference value) { - this.claimResponse = value; - return this; - } - - /** - * @return {@link #claimResponse} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Coverages adjudication details.) - */ - public ClaimResponse getClaimResponseTarget() { - if (this.claimResponseTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CoverageComponent.claimResponse"); - else if (Configuration.doAutoCreate()) - this.claimResponseTarget = new ClaimResponse(); - return this.claimResponseTarget; - } - - /** - * @param value {@link #claimResponse} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Coverages adjudication details.) - */ - public CoverageComponent setClaimResponseTarget(ClaimResponse value) { - this.claimResponseTarget = value; - return this; - } - - /** - * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public Coding getOriginalRuleset() { - if (this.originalRuleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create CoverageComponent.originalRuleset"); - else if (Configuration.doAutoCreate()) - this.originalRuleset = new Coding(); - return this.originalRuleset; - } - - public boolean hasOriginalRuleset() { - return this.originalRuleset != null && !this.originalRuleset.isEmpty(); - } - - /** - * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) - */ - public CoverageComponent setOriginalRuleset(Coding value) { - this.originalRuleset = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("sequence", "integer", "A service line item.", 0, java.lang.Integer.MAX_VALUE, sequence)); - childrenList.add(new Property("focal", "boolean", "The instance number of the Coverage which is the focus for adjudication, that is the Coverage to which the claim is to be adjudicated against.", 0, java.lang.Integer.MAX_VALUE, focal)); - childrenList.add(new Property("coverage", "Reference(Coverage)", "Reference to the program or plan identification, underwriter or payor.", 0, java.lang.Integer.MAX_VALUE, coverage)); - childrenList.add(new Property("businessArrangement", "string", "The contract number of a business agrement which describes the terms and conditions.", 0, java.lang.Integer.MAX_VALUE, businessArrangement)); - childrenList.add(new Property("relationship", "Coding", "The relationship of the patient to the subscriber.", 0, java.lang.Integer.MAX_VALUE, relationship)); - childrenList.add(new Property("preauthref", "string", "A list of references from the Insurer to which these services pertain.", 0, java.lang.Integer.MAX_VALUE, preauthref)); - childrenList.add(new Property("claimResponse", "Reference(ClaimResponse)", "The Coverages adjudication details.", 0, java.lang.Integer.MAX_VALUE, claimResponse)); - childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); - } - - public CoverageComponent copy() { - CoverageComponent dst = new CoverageComponent(); - copyValues(dst); - dst.sequence = sequence == null ? null : sequence.copy(); - dst.focal = focal == null ? null : focal.copy(); - dst.coverage = coverage == null ? null : coverage.copy(); - dst.businessArrangement = businessArrangement == null ? null : businessArrangement.copy(); - dst.relationship = relationship == null ? null : relationship.copy(); - if (preauthref != null) { - dst.preauthref = new ArrayList(); - for (StringType i : preauthref) - dst.preauthref.add(i.copy()); - }; - dst.claimResponse = claimResponse == null ? null : claimResponse.copy(); - dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (focal == null || focal.isEmpty()) - && (coverage == null || coverage.isEmpty()) && (businessArrangement == null || businessArrangement.isEmpty()) - && (relationship == null || relationship.isEmpty()) && (preauthref == null || preauthref.isEmpty()) - && (claimResponse == null || claimResponse.isEmpty()) && (originalRuleset == null || originalRuleset.isEmpty()) - ; - } - - } - - @Block() - public static class ItemsComponent extends BackboneElement { - /** - * A service line number. - */ - @Child(name="sequence", type={IntegerType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Service instance", formalDefinition="A service line number." ) - protected IntegerType sequence; - - /** - * The type of product or service. - */ - @Child(name="type", type={Coding.class}, order=2, min=1, max=1) - @Description(shortDefinition="Group or type of product or service", formalDefinition="The type of product or service." ) - protected Coding type; - - /** - * The practitioner who is responsible for the services rendered to the patient. - */ - @Child(name="provider", type={Practitioner.class}, order=3, min=0, max=1) - @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) - protected Reference provider; - - /** - * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) - */ - protected Practitioner providerTarget; - - /** - * Diagnosis applicable for this service or product line. - */ - @Child(name="diagnosisLinkId", type={IntegerType.class}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Diagnosis Link", formalDefinition="Diagnosis applicable for this service or product line." ) - protected List diagnosisLinkId; - - /** - * If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied. - */ - @Child(name="service", type={Coding.class}, order=5, min=1, max=1) - @Description(shortDefinition="Item Code", formalDefinition="If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied." ) - protected Coding service; - - /** - * The date when the enclosed suite of services were performed or completed. - */ - @Child(name="serviceDate", type={DateType.class}, order=6, min=0, max=1) - @Description(shortDefinition="Date of Service", formalDefinition="The date when the enclosed suite of services were performed or completed." ) - protected DateType serviceDate; - - /** - * The number of repetitions of a service or product. - */ - @Child(name="quantity", type={Quantity.class}, order=7, min=0, max=1) - @Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." ) - protected Quantity quantity; - - /** - * If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group. - */ - @Child(name="unitPrice", type={Money.class}, order=8, min=0, max=1) - @Description(shortDefinition="Fee, charge or cost per point", formalDefinition="If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group." ) - protected Money unitPrice; - - /** - * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - @Child(name="factor", type={DecimalType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Price scaling factor", formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount." ) - protected DecimalType factor; - - /** - * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - @Child(name="points", type={DecimalType.class}, order=10, min=0, max=1) - @Description(shortDefinition="Difficulty scaling factor", formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point." ) - protected DecimalType points; - - /** - * The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. - */ - @Child(name="net", type={Money.class}, order=11, min=0, max=1) - @Description(shortDefinition="Total item cost", formalDefinition="The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." ) - protected Money net; - - /** - * List of Unique Device Identifiers associated with this line item. - */ - @Child(name="udi", type={Coding.class}, order=12, min=0, max=1) - @Description(shortDefinition="Unique Device Identifier", formalDefinition="List of Unique Device Identifiers associated with this line item." ) - protected Coding udi; - - /** - * Physical service site on the patient (limb, tooth, etc). - */ - @Child(name="bodySite", type={Coding.class}, order=13, min=0, max=1) - @Description(shortDefinition="Service Location", formalDefinition="Physical service site on the patient (limb, tooth, etc)." ) - protected Coding bodySite; - - /** - * A region or surface of the site, eg. limb region or tooth surface(s). - */ - @Child(name="subsite", type={Coding.class}, order=14, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Service Sub-location", formalDefinition="A region or surface of the site, eg. limb region or tooth surface(s)." ) - protected List subsite; - - /** - * Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen. - */ - @Child(name="modifier", type={Coding.class}, order=15, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Service/Product billing modifiers", formalDefinition="Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen." ) - protected List modifier; - - /** - * Second tier of goods and services. - */ - @Child(name="detail", type={}, order=16, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Additional items", formalDefinition="Second tier of goods and services." ) - protected List detail; - - private static final long serialVersionUID = -1140048455L; - - public ItemsComponent() { - super(); - } - - public ItemsComponent(IntegerType sequence, Coding type, Coding service) { - super(); - this.sequence = sequence; - this.type = type; - this.service = service; - } - - /** - * @return {@link #sequence} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value - */ - public IntegerType getSequenceElement() { - if (this.sequence == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.sequence"); - else if (Configuration.doAutoCreate()) - this.sequence = new IntegerType(); - return this.sequence; - } - - public boolean hasSequenceElement() { - return this.sequence != null && !this.sequence.isEmpty(); - } - - public boolean hasSequence() { - return this.sequence != null && !this.sequence.isEmpty(); - } - - /** - * @param value {@link #sequence} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value - */ - public ItemsComponent setSequenceElement(IntegerType value) { - this.sequence = value; - return this; - } - - /** - * @return A service line number. - */ - public int getSequence() { - return this.sequence == null ? null : this.sequence.getValue(); - } - - /** - * @param value A service line number. - */ - public ItemsComponent setSequence(int value) { - if (this.sequence == null) - this.sequence = new IntegerType(); - this.sequence.setValue(value); - return this; - } - - /** - * @return {@link #type} (The type of product or service.) - */ - public Coding getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new Coding(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The type of product or service.) - */ - public ItemsComponent setType(Coding value) { - this.type = value; - return this; - } - - /** - * @return {@link #provider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public Reference getProvider() { - if (this.provider == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.provider"); - else if (Configuration.doAutoCreate()) - this.provider = new Reference(); - return this.provider; - } - - public boolean hasProvider() { - return this.provider != null && !this.provider.isEmpty(); - } - - /** - * @param value {@link #provider} (The practitioner who is responsible for the services rendered to the patient.) - */ - public ItemsComponent setProvider(Reference value) { - this.provider = value; - return this; - } - - /** - * @return {@link #provider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public Practitioner getProviderTarget() { - if (this.providerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.provider"); - else if (Configuration.doAutoCreate()) - this.providerTarget = new Practitioner(); - return this.providerTarget; - } - - /** - * @param value {@link #provider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) - */ - public ItemsComponent setProviderTarget(Practitioner value) { - this.providerTarget = value; - return this; - } - - /** - * @return {@link #diagnosisLinkId} (Diagnosis applicable for this service or product line.) - */ - public List getDiagnosisLinkId() { - if (this.diagnosisLinkId == null) - this.diagnosisLinkId = new ArrayList(); - return this.diagnosisLinkId; - } - - public boolean hasDiagnosisLinkId() { - if (this.diagnosisLinkId == null) - return false; - for (IntegerType item : this.diagnosisLinkId) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #diagnosisLinkId} (Diagnosis applicable for this service or product line.) - */ - // syntactic sugar - public IntegerType addDiagnosisLinkIdElement() {//2 - IntegerType t = new IntegerType(); - if (this.diagnosisLinkId == null) - this.diagnosisLinkId = new ArrayList(); - this.diagnosisLinkId.add(t); - return t; - } - - /** - * @param value {@link #diagnosisLinkId} (Diagnosis applicable for this service or product line.) - */ - public ItemsComponent addDiagnosisLinkId(int value) { //1 - IntegerType t = new IntegerType(); - t.setValue(value); - if (this.diagnosisLinkId == null) - this.diagnosisLinkId = new ArrayList(); - this.diagnosisLinkId.add(t); - return this; - } - - /** - * @param value {@link #diagnosisLinkId} (Diagnosis applicable for this service or product line.) - */ - public boolean hasDiagnosisLinkId(int value) { - if (this.diagnosisLinkId == null) - return false; - for (IntegerType v : this.diagnosisLinkId) - if (v.equals(value)) // integer - return true; - return false; - } - - /** - * @return {@link #service} (If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied.) - */ - public Coding getService() { - if (this.service == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.service"); - else if (Configuration.doAutoCreate()) - this.service = new Coding(); - return this.service; - } - - public boolean hasService() { - return this.service != null && !this.service.isEmpty(); - } - - /** - * @param value {@link #service} (If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied.) - */ - public ItemsComponent setService(Coding value) { - this.service = value; - return this; - } - - /** - * @return {@link #serviceDate} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getServiceDate" gives direct access to the value - */ - public DateType getServiceDateElement() { - if (this.serviceDate == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.serviceDate"); - else if (Configuration.doAutoCreate()) - this.serviceDate = new DateType(); - return this.serviceDate; - } - - public boolean hasServiceDateElement() { - return this.serviceDate != null && !this.serviceDate.isEmpty(); - } - - public boolean hasServiceDate() { - return this.serviceDate != null && !this.serviceDate.isEmpty(); - } - - /** - * @param value {@link #serviceDate} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getServiceDate" gives direct access to the value - */ - public ItemsComponent setServiceDateElement(DateType value) { - this.serviceDate = value; - return this; - } - - /** - * @return The date when the enclosed suite of services were performed or completed. - */ - public Date getServiceDate() { - return this.serviceDate == null ? null : this.serviceDate.getValue(); - } - - /** - * @param value The date when the enclosed suite of services were performed or completed. - */ - public ItemsComponent setServiceDate(Date value) { - if (value == null) - this.serviceDate = null; - else { - if (this.serviceDate == null) - this.serviceDate = new DateType(); - this.serviceDate.setValue(value); - } - return this; - } - - /** - * @return {@link #quantity} (The number of repetitions of a service or product.) - */ - public Quantity getQuantity() { - if (this.quantity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.quantity"); - else if (Configuration.doAutoCreate()) - this.quantity = new Quantity(); - return this.quantity; - } - - public boolean hasQuantity() { - return this.quantity != null && !this.quantity.isEmpty(); - } - - /** - * @param value {@link #quantity} (The number of repetitions of a service or product.) - */ - public ItemsComponent setQuantity(Quantity value) { - this.quantity = value; - return this; - } - - /** - * @return {@link #unitPrice} (If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.) - */ - public Money getUnitPrice() { - if (this.unitPrice == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.unitPrice"); - else if (Configuration.doAutoCreate()) - this.unitPrice = new Money(); - return this.unitPrice; - } - - public boolean hasUnitPrice() { - return this.unitPrice != null && !this.unitPrice.isEmpty(); - } - - /** - * @param value {@link #unitPrice} (If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.) - */ - public ItemsComponent setUnitPrice(Money value) { - this.unitPrice = value; - return this; - } - - /** - * @return {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value - */ - public DecimalType getFactorElement() { - if (this.factor == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.factor"); - else if (Configuration.doAutoCreate()) - this.factor = new DecimalType(); - return this.factor; - } - - public boolean hasFactorElement() { - return this.factor != null && !this.factor.isEmpty(); - } - - public boolean hasFactor() { - return this.factor != null && !this.factor.isEmpty(); - } - - /** - * @param value {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value - */ - public ItemsComponent setFactorElement(DecimalType value) { - this.factor = value; - return this; - } - - /** - * @return A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - public BigDecimal getFactor() { - return this.factor == null ? null : this.factor.getValue(); - } - - /** - * @param value A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - public ItemsComponent setFactor(BigDecimal value) { - if (value == null) - this.factor = null; - else { - if (this.factor == null) - this.factor = new DecimalType(); - this.factor.setValue(value); - } - return this; - } - - /** - * @return {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value - */ - public DecimalType getPointsElement() { - if (this.points == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.points"); - else if (Configuration.doAutoCreate()) - this.points = new DecimalType(); - return this.points; - } - - public boolean hasPointsElement() { - return this.points != null && !this.points.isEmpty(); - } - - public boolean hasPoints() { - return this.points != null && !this.points.isEmpty(); - } - - /** - * @param value {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value - */ - public ItemsComponent setPointsElement(DecimalType value) { - this.points = value; - return this; - } - - /** - * @return An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - public BigDecimal getPoints() { - return this.points == null ? null : this.points.getValue(); - } - - /** - * @param value An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - public ItemsComponent setPoints(BigDecimal value) { - if (value == null) - this.points = null; - else { - if (this.points == null) - this.points = new DecimalType(); - this.points.setValue(value); - } - return this; - } - - /** - * @return {@link #net} (The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) - */ - public Money getNet() { - if (this.net == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.net"); - else if (Configuration.doAutoCreate()) - this.net = new Money(); - return this.net; - } - - public boolean hasNet() { - return this.net != null && !this.net.isEmpty(); - } - - /** - * @param value {@link #net} (The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) - */ - public ItemsComponent setNet(Money value) { - this.net = value; - return this; - } - - /** - * @return {@link #udi} (List of Unique Device Identifiers associated with this line item.) - */ - public Coding getUdi() { - if (this.udi == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.udi"); - else if (Configuration.doAutoCreate()) - this.udi = new Coding(); - return this.udi; - } - - public boolean hasUdi() { - return this.udi != null && !this.udi.isEmpty(); - } - - /** - * @param value {@link #udi} (List of Unique Device Identifiers associated with this line item.) - */ - public ItemsComponent setUdi(Coding value) { - this.udi = value; - return this; - } - - /** - * @return {@link #bodySite} (Physical service site on the patient (limb, tooth, etc).) - */ - public Coding getBodySite() { - if (this.bodySite == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ItemsComponent.bodySite"); - else if (Configuration.doAutoCreate()) - this.bodySite = new Coding(); - return this.bodySite; - } - - public boolean hasBodySite() { - return this.bodySite != null && !this.bodySite.isEmpty(); - } - - /** - * @param value {@link #bodySite} (Physical service site on the patient (limb, tooth, etc).) - */ - public ItemsComponent setBodySite(Coding value) { - this.bodySite = value; - return this; - } - - /** - * @return {@link #subsite} (A region or surface of the site, eg. limb region or tooth surface(s).) - */ - public List getSubsite() { - if (this.subsite == null) - this.subsite = new ArrayList(); - return this.subsite; - } - - public boolean hasSubsite() { - if (this.subsite == null) - return false; - for (Coding item : this.subsite) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #subsite} (A region or surface of the site, eg. limb region or tooth surface(s).) - */ - // syntactic sugar - public Coding addSubsite() { //3 - Coding t = new Coding(); - if (this.subsite == null) - this.subsite = new ArrayList(); - this.subsite.add(t); - return t; - } - - /** - * @return {@link #modifier} (Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.) - */ - public List getModifier() { - if (this.modifier == null) - this.modifier = new ArrayList(); - return this.modifier; - } - - public boolean hasModifier() { - if (this.modifier == null) - return false; - for (Coding item : this.modifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #modifier} (Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.) - */ - // syntactic sugar - public Coding addModifier() { //3 - Coding t = new Coding(); - if (this.modifier == null) - this.modifier = new ArrayList(); - this.modifier.add(t); - return t; - } - - /** - * @return {@link #detail} (Second tier of goods and services.) - */ - public List getDetail() { - if (this.detail == null) - this.detail = new ArrayList(); - return this.detail; - } - - public boolean hasDetail() { - if (this.detail == null) - return false; - for (DetailComponent item : this.detail) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #detail} (Second tier of goods and services.) - */ - // syntactic sugar - public DetailComponent addDetail() { //3 - DetailComponent t = new DetailComponent(); - if (this.detail == null) - this.detail = new ArrayList(); - this.detail.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("sequence", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequence)); - childrenList.add(new Property("type", "Coding", "The type of product or service.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("provider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, provider)); - childrenList.add(new Property("diagnosisLinkId", "integer", "Diagnosis applicable for this service or product line.", 0, java.lang.Integer.MAX_VALUE, diagnosisLinkId)); - childrenList.add(new Property("service", "Coding", "If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied.", 0, java.lang.Integer.MAX_VALUE, service)); - childrenList.add(new Property("serviceDate", "date", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, serviceDate)); - childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity)); - childrenList.add(new Property("unitPrice", "Money", "If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.", 0, java.lang.Integer.MAX_VALUE, unitPrice)); - childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor)); - childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points)); - childrenList.add(new Property("net", "Money", "The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 0, java.lang.Integer.MAX_VALUE, net)); - childrenList.add(new Property("udi", "Coding", "List of Unique Device Identifiers associated with this line item.", 0, java.lang.Integer.MAX_VALUE, udi)); - childrenList.add(new Property("bodySite", "Coding", "Physical service site on the patient (limb, tooth, etc).", 0, java.lang.Integer.MAX_VALUE, bodySite)); - childrenList.add(new Property("subsite", "Coding", "A region or surface of the site, eg. limb region or tooth surface(s).", 0, java.lang.Integer.MAX_VALUE, subsite)); - childrenList.add(new Property("modifier", "Coding", "Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.", 0, java.lang.Integer.MAX_VALUE, modifier)); - childrenList.add(new Property("detail", "", "Second tier of goods and services.", 0, java.lang.Integer.MAX_VALUE, detail)); - } - - public ItemsComponent copy() { - ItemsComponent dst = new ItemsComponent(); - copyValues(dst); - dst.sequence = sequence == null ? null : sequence.copy(); - dst.type = type == null ? null : type.copy(); - dst.provider = provider == null ? null : provider.copy(); - if (diagnosisLinkId != null) { - dst.diagnosisLinkId = new ArrayList(); - for (IntegerType i : diagnosisLinkId) - dst.diagnosisLinkId.add(i.copy()); - }; - dst.service = service == null ? null : service.copy(); - dst.serviceDate = serviceDate == null ? null : serviceDate.copy(); - dst.quantity = quantity == null ? null : quantity.copy(); - dst.unitPrice = unitPrice == null ? null : unitPrice.copy(); - dst.factor = factor == null ? null : factor.copy(); - dst.points = points == null ? null : points.copy(); - dst.net = net == null ? null : net.copy(); - dst.udi = udi == null ? null : udi.copy(); - dst.bodySite = bodySite == null ? null : bodySite.copy(); - if (subsite != null) { - dst.subsite = new ArrayList(); - for (Coding i : subsite) - dst.subsite.add(i.copy()); - }; - if (modifier != null) { - dst.modifier = new ArrayList(); - for (Coding i : modifier) - dst.modifier.add(i.copy()); - }; - if (detail != null) { - dst.detail = new ArrayList(); - for (DetailComponent i : detail) - dst.detail.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (type == null || type.isEmpty()) - && (provider == null || provider.isEmpty()) && (diagnosisLinkId == null || diagnosisLinkId.isEmpty()) - && (service == null || service.isEmpty()) && (serviceDate == null || serviceDate.isEmpty()) - && (quantity == null || quantity.isEmpty()) && (unitPrice == null || unitPrice.isEmpty()) - && (factor == null || factor.isEmpty()) && (points == null || points.isEmpty()) && (net == null || net.isEmpty()) - && (udi == null || udi.isEmpty()) && (bodySite == null || bodySite.isEmpty()) && (subsite == null || subsite.isEmpty()) - && (modifier == null || modifier.isEmpty()) && (detail == null || detail.isEmpty()); - } - - } - - @Block() - public static class DetailComponent extends BackboneElement { - /** - * A service line number. - */ - @Child(name="sequence", type={IntegerType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Service instance", formalDefinition="A service line number." ) - protected IntegerType sequence; - - /** - * The type of product or service. - */ - @Child(name="type", type={Coding.class}, order=2, min=1, max=1) - @Description(shortDefinition="Group or type of product or service", formalDefinition="The type of product or service." ) - protected Coding type; - - /** - * If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied. - */ - @Child(name="service", type={Coding.class}, order=3, min=1, max=1) - @Description(shortDefinition="Additional item codes", formalDefinition="If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied." ) - protected Coding service; - - /** - * The number of repetitions of a service or product. - */ - @Child(name="quantity", type={Quantity.class}, order=4, min=0, max=1) - @Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." ) - protected Quantity quantity; - - /** - * If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group. - */ - @Child(name="unitPrice", type={Money.class}, order=5, min=0, max=1) - @Description(shortDefinition="Fee, charge or cost per point", formalDefinition="If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group." ) - protected Money unitPrice; - - /** - * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - @Child(name="factor", type={DecimalType.class}, order=6, min=0, max=1) - @Description(shortDefinition="Price scaling factor", formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount." ) - protected DecimalType factor; - - /** - * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - @Child(name="points", type={DecimalType.class}, order=7, min=0, max=1) - @Description(shortDefinition="Difficulty scaling factor", formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point." ) - protected DecimalType points; - - /** - * The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. - */ - @Child(name="net", type={Money.class}, order=8, min=0, max=1) - @Description(shortDefinition="Total additional item cost", formalDefinition="The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." ) - protected Money net; - - /** - * List of Unique Device Identifiers associated with this line item. - */ - @Child(name="udi", type={Coding.class}, order=9, min=0, max=1) - @Description(shortDefinition="Unique Device Identifier", formalDefinition="List of Unique Device Identifiers associated with this line item." ) - protected Coding udi; - - /** - * Third tier of goods and services. - */ - @Child(name="subDetail", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Additional items", formalDefinition="Third tier of goods and services." ) - protected List subDetail; - - private static final long serialVersionUID = -342502025L; - - public DetailComponent() { - super(); - } - - public DetailComponent(IntegerType sequence, Coding type, Coding service) { - super(); - this.sequence = sequence; - this.type = type; - this.service = service; - } - - /** - * @return {@link #sequence} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value - */ - public IntegerType getSequenceElement() { - if (this.sequence == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DetailComponent.sequence"); - else if (Configuration.doAutoCreate()) - this.sequence = new IntegerType(); - return this.sequence; - } - - public boolean hasSequenceElement() { - return this.sequence != null && !this.sequence.isEmpty(); - } - - public boolean hasSequence() { - return this.sequence != null && !this.sequence.isEmpty(); - } - - /** - * @param value {@link #sequence} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value - */ - public DetailComponent setSequenceElement(IntegerType value) { - this.sequence = value; - return this; - } - - /** - * @return A service line number. - */ - public int getSequence() { - return this.sequence == null ? null : this.sequence.getValue(); - } - - /** - * @param value A service line number. - */ - public DetailComponent setSequence(int value) { - if (this.sequence == null) - this.sequence = new IntegerType(); - this.sequence.setValue(value); - return this; - } - - /** - * @return {@link #type} (The type of product or service.) - */ - public Coding getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DetailComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new Coding(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The type of product or service.) - */ - public DetailComponent setType(Coding value) { - this.type = value; - return this; - } - - /** - * @return {@link #service} (If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied.) - */ - public Coding getService() { - if (this.service == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DetailComponent.service"); - else if (Configuration.doAutoCreate()) - this.service = new Coding(); - return this.service; - } - - public boolean hasService() { - return this.service != null && !this.service.isEmpty(); - } - - /** - * @param value {@link #service} (If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied.) - */ - public DetailComponent setService(Coding value) { - this.service = value; - return this; - } - - /** - * @return {@link #quantity} (The number of repetitions of a service or product.) - */ - public Quantity getQuantity() { - if (this.quantity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DetailComponent.quantity"); - else if (Configuration.doAutoCreate()) - this.quantity = new Quantity(); - return this.quantity; - } - - public boolean hasQuantity() { - return this.quantity != null && !this.quantity.isEmpty(); - } - - /** - * @param value {@link #quantity} (The number of repetitions of a service or product.) - */ - public DetailComponent setQuantity(Quantity value) { - this.quantity = value; - return this; - } - - /** - * @return {@link #unitPrice} (If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.) - */ - public Money getUnitPrice() { - if (this.unitPrice == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DetailComponent.unitPrice"); - else if (Configuration.doAutoCreate()) - this.unitPrice = new Money(); - return this.unitPrice; - } - - public boolean hasUnitPrice() { - return this.unitPrice != null && !this.unitPrice.isEmpty(); - } - - /** - * @param value {@link #unitPrice} (If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.) - */ - public DetailComponent setUnitPrice(Money value) { - this.unitPrice = value; - return this; - } - - /** - * @return {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value - */ - public DecimalType getFactorElement() { - if (this.factor == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DetailComponent.factor"); - else if (Configuration.doAutoCreate()) - this.factor = new DecimalType(); - return this.factor; - } - - public boolean hasFactorElement() { - return this.factor != null && !this.factor.isEmpty(); - } - - public boolean hasFactor() { - return this.factor != null && !this.factor.isEmpty(); - } - - /** - * @param value {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value - */ - public DetailComponent setFactorElement(DecimalType value) { - this.factor = value; - return this; - } - - /** - * @return A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - public BigDecimal getFactor() { - return this.factor == null ? null : this.factor.getValue(); - } - - /** - * @param value A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - public DetailComponent setFactor(BigDecimal value) { - if (value == null) - this.factor = null; - else { - if (this.factor == null) - this.factor = new DecimalType(); - this.factor.setValue(value); - } - return this; - } - - /** - * @return {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value - */ - public DecimalType getPointsElement() { - if (this.points == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DetailComponent.points"); - else if (Configuration.doAutoCreate()) - this.points = new DecimalType(); - return this.points; - } - - public boolean hasPointsElement() { - return this.points != null && !this.points.isEmpty(); - } - - public boolean hasPoints() { - return this.points != null && !this.points.isEmpty(); - } - - /** - * @param value {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value - */ - public DetailComponent setPointsElement(DecimalType value) { - this.points = value; - return this; - } - - /** - * @return An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - public BigDecimal getPoints() { - return this.points == null ? null : this.points.getValue(); - } - - /** - * @param value An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - public DetailComponent setPoints(BigDecimal value) { - if (value == null) - this.points = null; - else { - if (this.points == null) - this.points = new DecimalType(); - this.points.setValue(value); - } - return this; - } - - /** - * @return {@link #net} (The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) - */ - public Money getNet() { - if (this.net == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DetailComponent.net"); - else if (Configuration.doAutoCreate()) - this.net = new Money(); - return this.net; - } - - public boolean hasNet() { - return this.net != null && !this.net.isEmpty(); - } - - /** - * @param value {@link #net} (The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) - */ - public DetailComponent setNet(Money value) { - this.net = value; - return this; - } - - /** - * @return {@link #udi} (List of Unique Device Identifiers associated with this line item.) - */ - public Coding getUdi() { - if (this.udi == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create DetailComponent.udi"); - else if (Configuration.doAutoCreate()) - this.udi = new Coding(); - return this.udi; - } - - public boolean hasUdi() { - return this.udi != null && !this.udi.isEmpty(); - } - - /** - * @param value {@link #udi} (List of Unique Device Identifiers associated with this line item.) - */ - public DetailComponent setUdi(Coding value) { - this.udi = value; - return this; - } - - /** - * @return {@link #subDetail} (Third tier of goods and services.) - */ - public List getSubDetail() { - if (this.subDetail == null) - this.subDetail = new ArrayList(); - return this.subDetail; - } - - public boolean hasSubDetail() { - if (this.subDetail == null) - return false; - for (SubDetailComponent item : this.subDetail) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #subDetail} (Third tier of goods and services.) - */ - // syntactic sugar - public SubDetailComponent addSubDetail() { //3 - SubDetailComponent t = new SubDetailComponent(); - if (this.subDetail == null) - this.subDetail = new ArrayList(); - this.subDetail.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("sequence", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequence)); - childrenList.add(new Property("type", "Coding", "The type of product or service.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("service", "Coding", "If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied.", 0, java.lang.Integer.MAX_VALUE, service)); - childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity)); - childrenList.add(new Property("unitPrice", "Money", "If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.", 0, java.lang.Integer.MAX_VALUE, unitPrice)); - childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor)); - childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points)); - childrenList.add(new Property("net", "Money", "The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 0, java.lang.Integer.MAX_VALUE, net)); - childrenList.add(new Property("udi", "Coding", "List of Unique Device Identifiers associated with this line item.", 0, java.lang.Integer.MAX_VALUE, udi)); - childrenList.add(new Property("subDetail", "", "Third tier of goods and services.", 0, java.lang.Integer.MAX_VALUE, subDetail)); - } - - public DetailComponent copy() { - DetailComponent dst = new DetailComponent(); - copyValues(dst); - dst.sequence = sequence == null ? null : sequence.copy(); - dst.type = type == null ? null : type.copy(); - dst.service = service == null ? null : service.copy(); - dst.quantity = quantity == null ? null : quantity.copy(); - dst.unitPrice = unitPrice == null ? null : unitPrice.copy(); - dst.factor = factor == null ? null : factor.copy(); - dst.points = points == null ? null : points.copy(); - dst.net = net == null ? null : net.copy(); - dst.udi = udi == null ? null : udi.copy(); - if (subDetail != null) { - dst.subDetail = new ArrayList(); - for (SubDetailComponent i : subDetail) - dst.subDetail.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (type == null || type.isEmpty()) - && (service == null || service.isEmpty()) && (quantity == null || quantity.isEmpty()) && (unitPrice == null || unitPrice.isEmpty()) - && (factor == null || factor.isEmpty()) && (points == null || points.isEmpty()) && (net == null || net.isEmpty()) - && (udi == null || udi.isEmpty()) && (subDetail == null || subDetail.isEmpty()); - } - - } - - @Block() - public static class SubDetailComponent extends BackboneElement { - /** - * A service line number. - */ - @Child(name="sequence", type={IntegerType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Service instance", formalDefinition="A service line number." ) - protected IntegerType sequence; - - /** - * The type of product or service. - */ - @Child(name="type", type={Coding.class}, order=2, min=1, max=1) - @Description(shortDefinition="Type of product or service", formalDefinition="The type of product or service." ) - protected Coding type; - - /** - * The fee for an addtional service or product or charge. - */ - @Child(name="service", type={Coding.class}, order=3, min=1, max=1) - @Description(shortDefinition="Additional item codes", formalDefinition="The fee for an addtional service or product or charge." ) - protected Coding service; - - /** - * The number of repetitions of a service or product. - */ - @Child(name="quantity", type={Quantity.class}, order=4, min=0, max=1) - @Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." ) - protected Quantity quantity; - - /** - * The fee for an addtional service or product or charge. - */ - @Child(name="unitPrice", type={Money.class}, order=5, min=0, max=1) - @Description(shortDefinition="Fee, charge or cost per point", formalDefinition="The fee for an addtional service or product or charge." ) - protected Money unitPrice; - - /** - * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - @Child(name="factor", type={DecimalType.class}, order=6, min=0, max=1) - @Description(shortDefinition="Price scaling factor", formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount." ) - protected DecimalType factor; - - /** - * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - @Child(name="points", type={DecimalType.class}, order=7, min=0, max=1) - @Description(shortDefinition="Difficulty scaling factor", formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point." ) - protected DecimalType points; - - /** - * The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. - */ - @Child(name="net", type={Money.class}, order=8, min=0, max=1) - @Description(shortDefinition="Net additional item cost", formalDefinition="The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." ) - protected Money net; - - /** - * List of Unique Device Identifiers associated with this line item. - */ - @Child(name="udi", type={Coding.class}, order=9, min=0, max=1) - @Description(shortDefinition="Unique Device Identifier", formalDefinition="List of Unique Device Identifiers associated with this line item." ) - protected Coding udi; - - private static final long serialVersionUID = 122809194L; - - public SubDetailComponent() { - super(); - } - - public SubDetailComponent(IntegerType sequence, Coding type, Coding service) { - super(); - this.sequence = sequence; - this.type = type; - this.service = service; - } - - /** - * @return {@link #sequence} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value - */ - public IntegerType getSequenceElement() { - if (this.sequence == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SubDetailComponent.sequence"); - else if (Configuration.doAutoCreate()) - this.sequence = new IntegerType(); - return this.sequence; - } - - public boolean hasSequenceElement() { - return this.sequence != null && !this.sequence.isEmpty(); - } - - public boolean hasSequence() { - return this.sequence != null && !this.sequence.isEmpty(); - } - - /** - * @param value {@link #sequence} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value - */ - public SubDetailComponent setSequenceElement(IntegerType value) { - this.sequence = value; - return this; - } - - /** - * @return A service line number. - */ - public int getSequence() { - return this.sequence == null ? null : this.sequence.getValue(); - } - - /** - * @param value A service line number. - */ - public SubDetailComponent setSequence(int value) { - if (this.sequence == null) - this.sequence = new IntegerType(); - this.sequence.setValue(value); - return this; - } - - /** - * @return {@link #type} (The type of product or service.) - */ - public Coding getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SubDetailComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new Coding(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (The type of product or service.) - */ - public SubDetailComponent setType(Coding value) { - this.type = value; - return this; - } - - /** - * @return {@link #service} (The fee for an addtional service or product or charge.) - */ - public Coding getService() { - if (this.service == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SubDetailComponent.service"); - else if (Configuration.doAutoCreate()) - this.service = new Coding(); - return this.service; - } - - public boolean hasService() { - return this.service != null && !this.service.isEmpty(); - } - - /** - * @param value {@link #service} (The fee for an addtional service or product or charge.) - */ - public SubDetailComponent setService(Coding value) { - this.service = value; - return this; - } - - /** - * @return {@link #quantity} (The number of repetitions of a service or product.) - */ - public Quantity getQuantity() { - if (this.quantity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SubDetailComponent.quantity"); - else if (Configuration.doAutoCreate()) - this.quantity = new Quantity(); - return this.quantity; - } - - public boolean hasQuantity() { - return this.quantity != null && !this.quantity.isEmpty(); - } - - /** - * @param value {@link #quantity} (The number of repetitions of a service or product.) - */ - public SubDetailComponent setQuantity(Quantity value) { - this.quantity = value; - return this; - } - - /** - * @return {@link #unitPrice} (The fee for an addtional service or product or charge.) - */ - public Money getUnitPrice() { - if (this.unitPrice == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SubDetailComponent.unitPrice"); - else if (Configuration.doAutoCreate()) - this.unitPrice = new Money(); - return this.unitPrice; - } - - public boolean hasUnitPrice() { - return this.unitPrice != null && !this.unitPrice.isEmpty(); - } - - /** - * @param value {@link #unitPrice} (The fee for an addtional service or product or charge.) - */ - public SubDetailComponent setUnitPrice(Money value) { - this.unitPrice = value; - return this; - } - - /** - * @return {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value - */ - public DecimalType getFactorElement() { - if (this.factor == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SubDetailComponent.factor"); - else if (Configuration.doAutoCreate()) - this.factor = new DecimalType(); - return this.factor; - } - - public boolean hasFactorElement() { - return this.factor != null && !this.factor.isEmpty(); - } - - public boolean hasFactor() { - return this.factor != null && !this.factor.isEmpty(); - } - - /** - * @param value {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value - */ - public SubDetailComponent setFactorElement(DecimalType value) { - this.factor = value; - return this; - } - - /** - * @return A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - public BigDecimal getFactor() { - return this.factor == null ? null : this.factor.getValue(); - } - - /** - * @param value A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. - */ - public SubDetailComponent setFactor(BigDecimal value) { - if (value == null) - this.factor = null; - else { - if (this.factor == null) - this.factor = new DecimalType(); - this.factor.setValue(value); - } - return this; - } - - /** - * @return {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value - */ - public DecimalType getPointsElement() { - if (this.points == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SubDetailComponent.points"); - else if (Configuration.doAutoCreate()) - this.points = new DecimalType(); - return this.points; - } - - public boolean hasPointsElement() { - return this.points != null && !this.points.isEmpty(); - } - - public boolean hasPoints() { - return this.points != null && !this.points.isEmpty(); - } - - /** - * @param value {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value - */ - public SubDetailComponent setPointsElement(DecimalType value) { - this.points = value; - return this; - } - - /** - * @return An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - public BigDecimal getPoints() { - return this.points == null ? null : this.points.getValue(); - } - - /** - * @param value An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. - */ - public SubDetailComponent setPoints(BigDecimal value) { - if (value == null) - this.points = null; - else { - if (this.points == null) - this.points = new DecimalType(); - this.points.setValue(value); - } - return this; - } - - /** - * @return {@link #net} (The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) - */ - public Money getNet() { - if (this.net == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SubDetailComponent.net"); - else if (Configuration.doAutoCreate()) - this.net = new Money(); - return this.net; - } - - public boolean hasNet() { - return this.net != null && !this.net.isEmpty(); - } - - /** - * @param value {@link #net} (The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) - */ - public SubDetailComponent setNet(Money value) { - this.net = value; - return this; - } - - /** - * @return {@link #udi} (List of Unique Device Identifiers associated with this line item.) - */ - public Coding getUdi() { - if (this.udi == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create SubDetailComponent.udi"); - else if (Configuration.doAutoCreate()) - this.udi = new Coding(); - return this.udi; - } - - public boolean hasUdi() { - return this.udi != null && !this.udi.isEmpty(); - } - - /** - * @param value {@link #udi} (List of Unique Device Identifiers associated with this line item.) - */ - public SubDetailComponent setUdi(Coding value) { - this.udi = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("sequence", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequence)); - childrenList.add(new Property("type", "Coding", "The type of product or service.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("service", "Coding", "The fee for an addtional service or product or charge.", 0, java.lang.Integer.MAX_VALUE, service)); - childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity)); - childrenList.add(new Property("unitPrice", "Money", "The fee for an addtional service or product or charge.", 0, java.lang.Integer.MAX_VALUE, unitPrice)); - childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor)); - childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points)); - childrenList.add(new Property("net", "Money", "The quantity times the unit price for an addtional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 0, java.lang.Integer.MAX_VALUE, net)); - childrenList.add(new Property("udi", "Coding", "List of Unique Device Identifiers associated with this line item.", 0, java.lang.Integer.MAX_VALUE, udi)); - } - - public SubDetailComponent copy() { - SubDetailComponent dst = new SubDetailComponent(); - copyValues(dst); - dst.sequence = sequence == null ? null : sequence.copy(); - dst.type = type == null ? null : type.copy(); - dst.service = service == null ? null : service.copy(); - dst.quantity = quantity == null ? null : quantity.copy(); - dst.unitPrice = unitPrice == null ? null : unitPrice.copy(); - dst.factor = factor == null ? null : factor.copy(); - dst.points = points == null ? null : points.copy(); - dst.net = net == null ? null : net.copy(); - dst.udi = udi == null ? null : udi.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (type == null || type.isEmpty()) - && (service == null || service.isEmpty()) && (quantity == null || quantity.isEmpty()) && (unitPrice == null || unitPrice.isEmpty()) - && (factor == null || factor.isEmpty()) && (points == null || points.isEmpty()) && (net == null || net.isEmpty()) - && (udi == null || udi.isEmpty()); - } - - } - - /** - * The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Claim number", formalDefinition="The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number." ) - protected List identifier; - - /** - * The version of the specification on which this instance relies. - */ - @Child(name="ruleset", type={Coding.class}, order=0, min=0, max=1) - @Description(shortDefinition="Current specification followed", formalDefinition="The version of the specification on which this instance relies." ) - protected Coding ruleset; - - /** - * The version of the specification from which the original instance was created. - */ - @Child(name="originalRuleset", type={Coding.class}, order=1, min=0, max=1) - @Description(shortDefinition="Original specification followed", formalDefinition="The version of the specification from which the original instance was created." ) - protected Coding originalRuleset; - - /** - * The date when the enclosed suite of services were performed or completed. - */ - @Child(name="created", type={DateTimeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="Creation date", formalDefinition="The date when the enclosed suite of services were performed or completed." ) - protected DateTimeType created; - - /** - * Insurer Identifier, typical BIN number (6 digit). - */ - @Child(name="target", type={Organization.class}, order=3, min=0, max=1) - @Description(shortDefinition="Insurer", formalDefinition="Insurer Identifier, typical BIN number (6 digit)." ) - protected Reference target; - - /** - * The actual object that is the target of the reference (Insurer Identifier, typical BIN number (6 digit).) - */ - protected Organization targetTarget; - - /** - * The provider which is responsible for the bill, claim pre-determination, pre-authorization. - */ - @Child(name="provider", type={Practitioner.class}, order=4, min=0, max=1) - @Description(shortDefinition="Responsible provider", formalDefinition="The provider which is responsible for the bill, claim pre-determination, pre-authorization." ) - protected Reference provider; - - /** - * The actual object that is the target of the reference (The provider which is responsible for the bill, claim pre-determination, pre-authorization.) - */ - protected Practitioner providerTarget; - - /** - * The organization which is responsible for the bill, claim pre-determination, pre-authorization. - */ - @Child(name="organization", type={Organization.class}, order=5, min=0, max=1) - @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the bill, claim pre-determination, pre-authorization." ) - protected Reference organization; - - /** - * The actual object that is the target of the reference (The organization which is responsible for the bill, claim pre-determination, pre-authorization.) - */ - protected Organization organizationTarget; - - /** - * Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination). - */ - @Child(name="use", type={CodeType.class}, order=6, min=0, max=1) - @Description(shortDefinition="complete | proposed | exploratory | other", formalDefinition="Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination)." ) - protected Enumeration use; - - /** - * Immediate (STAT), best effort (NORMAL), deferred (DEFER). - */ - @Child(name="priority", type={Coding.class}, order=7, min=0, max=1) - @Description(shortDefinition="Desired processing priority", formalDefinition="Immediate (STAT), best effort (NORMAL), deferred (DEFER)." ) - protected Coding priority; - - /** - * In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested. - */ - @Child(name="fundsReserve", type={Coding.class}, order=8, min=0, max=1) - @Description(shortDefinition="Funds requested to be reserved", formalDefinition="In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested." ) - protected Coding fundsReserve; - - /** - * Person who created the invoice/claim/pre-determination or pre-authorization. - */ - @Child(name="enterer", type={Practitioner.class}, order=9, min=0, max=1) - @Description(shortDefinition="Author", formalDefinition="Person who created the invoice/claim/pre-determination or pre-authorization." ) - protected Reference enterer; - - /** - * The actual object that is the target of the reference (Person who created the invoice/claim/pre-determination or pre-authorization.) - */ - protected Practitioner entererTarget; - - /** - * Facility where the services were provided. - */ - @Child(name="facility", type={Location.class}, order=10, min=0, max=1) - @Description(shortDefinition="Servicing Facility", formalDefinition="Facility where the services were provided." ) - protected Reference facility; - - /** - * The actual object that is the target of the reference (Facility where the services were provided.) - */ - protected Location facilityTarget; - - /** - * Theparty to be reimbused for the services. - */ - @Child(name="payee", type={}, order=11, min=0, max=1) - @Description(shortDefinition="Payee", formalDefinition="Theparty to be reimbused for the services." ) - protected PayeeComponent payee; - - /** - * The referral resource which lists the date, practitioner, reason and other supporting information. - */ - @Child(name="referral", type={ReferralRequest.class}, order=12, min=0, max=1) - @Description(shortDefinition="Treatment Referral", formalDefinition="The referral resource which lists the date, practitioner, reason and other supporting information." ) - protected Reference referral; - - /** - * The actual object that is the target of the reference (The referral resource which lists the date, practitioner, reason and other supporting information.) - */ - protected ReferralRequest referralTarget; - - /** - * Ordered list of patient diagnosis for which care is sought. - */ - @Child(name="diagnosis", type={}, order=13, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Diagnosis", formalDefinition="Ordered list of patient diagnosis for which care is sought." ) - protected List diagnosis; - - /** - * List of patient conditions for which care is sought. - */ - @Child(name="condition", type={Coding.class}, order=14, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="List of presenting Conditions", formalDefinition="List of patient conditions for which care is sought." ) - protected List condition; - - /** - * Patient Resource. - */ - @Child(name="patient", type={Patient.class}, order=15, min=1, max=1) - @Description(shortDefinition="The subject of the Products and Services", formalDefinition="Patient Resource." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (Patient Resource.) - */ - protected Patient patientTarget; - - /** - * Financial instrument by which payment information for health care. - */ - @Child(name="coverage", type={}, order=16, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Insurance or medical plan", formalDefinition="Financial instrument by which payment information for health care." ) - protected List coverage; - - /** - * Factors which may influence the applicability of coverage. - */ - @Child(name="exception", type={Coding.class}, order=17, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Eligibility exceptions", formalDefinition="Factors which may influence the applicability of coverage." ) - protected List exception; - - /** - * Name of school for over-aged dependants. - */ - @Child(name="school", type={StringType.class}, order=18, min=0, max=1) - @Description(shortDefinition="Name of School", formalDefinition="Name of school for over-aged dependants." ) - protected StringType school; - - /** - * Date of an accident which these services are addessing. - */ - @Child(name="accident", type={DateType.class}, order=19, min=0, max=1) - @Description(shortDefinition="Accident Date", formalDefinition="Date of an accident which these services are addessing." ) - protected DateType accident; - - /** - * Type of accident: work, auto, etc. - */ - @Child(name="accidentType", type={Coding.class}, order=20, min=0, max=1) - @Description(shortDefinition="Accident Type", formalDefinition="Type of accident: work, auto, etc." ) - protected Coding accidentType; - - /** - * A list of intervention and exception codes which may influence the adjudication of the claim. - */ - @Child(name="interventionException", type={Coding.class}, order=21, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Intervention and exception code (Pharma)", formalDefinition="A list of intervention and exception codes which may influence the adjudication of the claim." ) - protected List interventionException; - - /** - * First tier of goods and services. - */ - @Child(name="item", type={}, order=22, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Goods and Servcies", formalDefinition="First tier of goods and services." ) - protected List item; - - /** - * Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission. - */ - @Child(name="additionalMaterials", type={Coding.class}, order=23, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Additional materials, documents, etc.", formalDefinition="Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission." ) - protected List additionalMaterials; - - private static final long serialVersionUID = 1113876752L; - - public InstitutionalClaim() { - super(); - } - - public InstitutionalClaim(Reference patient) { - super(); - this.patient = patient; - } - - /** - * @return {@link #identifier} (The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #ruleset} (The version of the specification on which this instance relies.) - */ - public Coding getRuleset() { - if (this.ruleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.ruleset"); - else if (Configuration.doAutoCreate()) - this.ruleset = new Coding(); - return this.ruleset; - } - - public boolean hasRuleset() { - return this.ruleset != null && !this.ruleset.isEmpty(); - } - - /** - * @param value {@link #ruleset} (The version of the specification on which this instance relies.) - */ - public InstitutionalClaim setRuleset(Coding value) { - this.ruleset = value; - return this; - } - - /** - * @return {@link #originalRuleset} (The version of the specification from which the original instance was created.) - */ - public Coding getOriginalRuleset() { - if (this.originalRuleset == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.originalRuleset"); - else if (Configuration.doAutoCreate()) - this.originalRuleset = new Coding(); - return this.originalRuleset; - } - - public boolean hasOriginalRuleset() { - return this.originalRuleset != null && !this.originalRuleset.isEmpty(); - } - - /** - * @param value {@link #originalRuleset} (The version of the specification from which the original instance was created.) - */ - public InstitutionalClaim setOriginalRuleset(Coding value) { - this.originalRuleset = value; - return this; - } - - /** - * @return {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DateTimeType getCreatedElement() { - if (this.created == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.created"); - else if (Configuration.doAutoCreate()) - this.created = new DateTimeType(); - return this.created; - } - - public boolean hasCreatedElement() { - return this.created != null && !this.created.isEmpty(); - } - - public boolean hasCreated() { - return this.created != null && !this.created.isEmpty(); - } - - /** - * @param value {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public InstitutionalClaim setCreatedElement(DateTimeType value) { - this.created = value; - return this; - } - - /** - * @return The date when the enclosed suite of services were performed or completed. - */ - public Date getCreated() { - return this.created == null ? null : this.created.getValue(); - } - - /** - * @param value The date when the enclosed suite of services were performed or completed. - */ - public InstitutionalClaim setCreated(Date value) { - if (value == null) - this.created = null; - else { - if (this.created == null) - this.created = new DateTimeType(); - this.created.setValue(value); - } - return this; - } - - /** - * @return {@link #target} (Insurer Identifier, typical BIN number (6 digit).) - */ - public Reference getTarget() { - if (this.target == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.target"); - else if (Configuration.doAutoCreate()) - this.target = new Reference(); - return this.target; - } - - public boolean hasTarget() { - return this.target != null && !this.target.isEmpty(); - } - - /** - * @param value {@link #target} (Insurer Identifier, typical BIN number (6 digit).) - */ - public InstitutionalClaim setTarget(Reference value) { - this.target = value; - return this; - } - - /** - * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Insurer Identifier, typical BIN number (6 digit).) - */ - public Organization getTargetTarget() { - if (this.targetTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.target"); - else if (Configuration.doAutoCreate()) - this.targetTarget = new Organization(); - return this.targetTarget; - } - - /** - * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Insurer Identifier, typical BIN number (6 digit).) - */ - public InstitutionalClaim setTargetTarget(Organization value) { - this.targetTarget = value; - return this; - } - - /** - * @return {@link #provider} (The provider which is responsible for the bill, claim pre-determination, pre-authorization.) - */ - public Reference getProvider() { - if (this.provider == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.provider"); - else if (Configuration.doAutoCreate()) - this.provider = new Reference(); - return this.provider; - } - - public boolean hasProvider() { - return this.provider != null && !this.provider.isEmpty(); - } - - /** - * @param value {@link #provider} (The provider which is responsible for the bill, claim pre-determination, pre-authorization.) - */ - public InstitutionalClaim setProvider(Reference value) { - this.provider = value; - return this; - } - - /** - * @return {@link #provider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The provider which is responsible for the bill, claim pre-determination, pre-authorization.) - */ - public Practitioner getProviderTarget() { - if (this.providerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.provider"); - else if (Configuration.doAutoCreate()) - this.providerTarget = new Practitioner(); - return this.providerTarget; - } - - /** - * @param value {@link #provider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The provider which is responsible for the bill, claim pre-determination, pre-authorization.) - */ - public InstitutionalClaim setProviderTarget(Practitioner value) { - this.providerTarget = value; - return this; - } - - /** - * @return {@link #organization} (The organization which is responsible for the bill, claim pre-determination, pre-authorization.) - */ - public Reference getOrganization() { - if (this.organization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.organization"); - else if (Configuration.doAutoCreate()) - this.organization = new Reference(); - return this.organization; - } - - public boolean hasOrganization() { - return this.organization != null && !this.organization.isEmpty(); - } - - /** - * @param value {@link #organization} (The organization which is responsible for the bill, claim pre-determination, pre-authorization.) - */ - public InstitutionalClaim setOrganization(Reference value) { - this.organization = value; - return this; - } - - /** - * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the bill, claim pre-determination, pre-authorization.) - */ - public Organization getOrganizationTarget() { - if (this.organizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.organization"); - else if (Configuration.doAutoCreate()) - this.organizationTarget = new Organization(); - return this.organizationTarget; - } - - /** - * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the bill, claim pre-determination, pre-authorization.) - */ - public InstitutionalClaim setOrganizationTarget(Organization value) { - this.organizationTarget = value; - return this; - } - - /** - * @return {@link #use} (Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination).). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value - */ - public Enumeration getUseElement() { - if (this.use == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.use"); - else if (Configuration.doAutoCreate()) - this.use = new Enumeration(); - return this.use; - } - - public boolean hasUseElement() { - return this.use != null && !this.use.isEmpty(); - } - - public boolean hasUse() { - return this.use != null && !this.use.isEmpty(); - } - - /** - * @param value {@link #use} (Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination).). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value - */ - public InstitutionalClaim setUseElement(Enumeration value) { - this.use = value; - return this; - } - - /** - * @return Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination). - */ - public UseLink getUse() { - return this.use == null ? null : this.use.getValue(); - } - - /** - * @param value Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination). - */ - public InstitutionalClaim setUse(UseLink value) { - if (value == null) - this.use = null; - else { - if (this.use == null) - this.use = new Enumeration(UseLink.ENUM_FACTORY); - this.use.setValue(value); - } - return this; - } - - /** - * @return {@link #priority} (Immediate (STAT), best effort (NORMAL), deferred (DEFER).) - */ - public Coding getPriority() { - if (this.priority == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.priority"); - else if (Configuration.doAutoCreate()) - this.priority = new Coding(); - return this.priority; - } - - public boolean hasPriority() { - return this.priority != null && !this.priority.isEmpty(); - } - - /** - * @param value {@link #priority} (Immediate (STAT), best effort (NORMAL), deferred (DEFER).) - */ - public InstitutionalClaim setPriority(Coding value) { - this.priority = value; - return this; - } - - /** - * @return {@link #fundsReserve} (In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested.) - */ - public Coding getFundsReserve() { - if (this.fundsReserve == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.fundsReserve"); - else if (Configuration.doAutoCreate()) - this.fundsReserve = new Coding(); - return this.fundsReserve; - } - - public boolean hasFundsReserve() { - return this.fundsReserve != null && !this.fundsReserve.isEmpty(); - } - - /** - * @param value {@link #fundsReserve} (In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested.) - */ - public InstitutionalClaim setFundsReserve(Coding value) { - this.fundsReserve = value; - return this; - } - - /** - * @return {@link #enterer} (Person who created the invoice/claim/pre-determination or pre-authorization.) - */ - public Reference getEnterer() { - if (this.enterer == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.enterer"); - else if (Configuration.doAutoCreate()) - this.enterer = new Reference(); - return this.enterer; - } - - public boolean hasEnterer() { - return this.enterer != null && !this.enterer.isEmpty(); - } - - /** - * @param value {@link #enterer} (Person who created the invoice/claim/pre-determination or pre-authorization.) - */ - public InstitutionalClaim setEnterer(Reference value) { - this.enterer = value; - return this; - } - - /** - * @return {@link #enterer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Person who created the invoice/claim/pre-determination or pre-authorization.) - */ - public Practitioner getEntererTarget() { - if (this.entererTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.enterer"); - else if (Configuration.doAutoCreate()) - this.entererTarget = new Practitioner(); - return this.entererTarget; - } - - /** - * @param value {@link #enterer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Person who created the invoice/claim/pre-determination or pre-authorization.) - */ - public InstitutionalClaim setEntererTarget(Practitioner value) { - this.entererTarget = value; - return this; - } - - /** - * @return {@link #facility} (Facility where the services were provided.) - */ - public Reference getFacility() { - if (this.facility == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.facility"); - else if (Configuration.doAutoCreate()) - this.facility = new Reference(); - return this.facility; - } - - public boolean hasFacility() { - return this.facility != null && !this.facility.isEmpty(); - } - - /** - * @param value {@link #facility} (Facility where the services were provided.) - */ - public InstitutionalClaim setFacility(Reference value) { - this.facility = value; - return this; - } - - /** - * @return {@link #facility} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Facility where the services were provided.) - */ - public Location getFacilityTarget() { - if (this.facilityTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.facility"); - else if (Configuration.doAutoCreate()) - this.facilityTarget = new Location(); - return this.facilityTarget; - } - - /** - * @param value {@link #facility} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Facility where the services were provided.) - */ - public InstitutionalClaim setFacilityTarget(Location value) { - this.facilityTarget = value; - return this; - } - - /** - * @return {@link #payee} (Theparty to be reimbused for the services.) - */ - public PayeeComponent getPayee() { - if (this.payee == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.payee"); - else if (Configuration.doAutoCreate()) - this.payee = new PayeeComponent(); - return this.payee; - } - - public boolean hasPayee() { - return this.payee != null && !this.payee.isEmpty(); - } - - /** - * @param value {@link #payee} (Theparty to be reimbused for the services.) - */ - public InstitutionalClaim setPayee(PayeeComponent value) { - this.payee = value; - return this; - } - - /** - * @return {@link #referral} (The referral resource which lists the date, practitioner, reason and other supporting information.) - */ - public Reference getReferral() { - if (this.referral == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.referral"); - else if (Configuration.doAutoCreate()) - this.referral = new Reference(); - return this.referral; - } - - public boolean hasReferral() { - return this.referral != null && !this.referral.isEmpty(); - } - - /** - * @param value {@link #referral} (The referral resource which lists the date, practitioner, reason and other supporting information.) - */ - public InstitutionalClaim setReferral(Reference value) { - this.referral = value; - return this; - } - - /** - * @return {@link #referral} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The referral resource which lists the date, practitioner, reason and other supporting information.) - */ - public ReferralRequest getReferralTarget() { - if (this.referralTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.referral"); - else if (Configuration.doAutoCreate()) - this.referralTarget = new ReferralRequest(); - return this.referralTarget; - } - - /** - * @param value {@link #referral} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The referral resource which lists the date, practitioner, reason and other supporting information.) - */ - public InstitutionalClaim setReferralTarget(ReferralRequest value) { - this.referralTarget = value; - return this; - } - - /** - * @return {@link #diagnosis} (Ordered list of patient diagnosis for which care is sought.) - */ - public List getDiagnosis() { - if (this.diagnosis == null) - this.diagnosis = new ArrayList(); - return this.diagnosis; - } - - public boolean hasDiagnosis() { - if (this.diagnosis == null) - return false; - for (DiagnosisComponent item : this.diagnosis) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #diagnosis} (Ordered list of patient diagnosis for which care is sought.) - */ - // syntactic sugar - public DiagnosisComponent addDiagnosis() { //3 - DiagnosisComponent t = new DiagnosisComponent(); - if (this.diagnosis == null) - this.diagnosis = new ArrayList(); - this.diagnosis.add(t); - return t; - } - - /** - * @return {@link #condition} (List of patient conditions for which care is sought.) - */ - public List getCondition() { - if (this.condition == null) - this.condition = new ArrayList(); - return this.condition; - } - - public boolean hasCondition() { - if (this.condition == null) - return false; - for (Coding item : this.condition) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #condition} (List of patient conditions for which care is sought.) - */ - // syntactic sugar - public Coding addCondition() { //3 - Coding t = new Coding(); - if (this.condition == null) - this.condition = new ArrayList(); - this.condition.add(t); - return t; - } - - /** - * @return {@link #patient} (Patient Resource.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (Patient Resource.) - */ - public InstitutionalClaim setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Patient Resource.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Patient Resource.) - */ - public InstitutionalClaim setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #coverage} (Financial instrument by which payment information for health care.) - */ - public List getCoverage() { - if (this.coverage == null) - this.coverage = new ArrayList(); - return this.coverage; - } - - public boolean hasCoverage() { - if (this.coverage == null) - return false; - for (CoverageComponent item : this.coverage) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #coverage} (Financial instrument by which payment information for health care.) - */ - // syntactic sugar - public CoverageComponent addCoverage() { //3 - CoverageComponent t = new CoverageComponent(); - if (this.coverage == null) - this.coverage = new ArrayList(); - this.coverage.add(t); - return t; - } - - /** - * @return {@link #exception} (Factors which may influence the applicability of coverage.) - */ - public List getException() { - if (this.exception == null) - this.exception = new ArrayList(); - return this.exception; - } - - public boolean hasException() { - if (this.exception == null) - return false; - for (Coding item : this.exception) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #exception} (Factors which may influence the applicability of coverage.) - */ - // syntactic sugar - public Coding addException() { //3 - Coding t = new Coding(); - if (this.exception == null) - this.exception = new ArrayList(); - this.exception.add(t); - return t; - } - - /** - * @return {@link #school} (Name of school for over-aged dependants.). This is the underlying object with id, value and extensions. The accessor "getSchool" gives direct access to the value - */ - public StringType getSchoolElement() { - if (this.school == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.school"); - else if (Configuration.doAutoCreate()) - this.school = new StringType(); - return this.school; - } - - public boolean hasSchoolElement() { - return this.school != null && !this.school.isEmpty(); - } - - public boolean hasSchool() { - return this.school != null && !this.school.isEmpty(); - } - - /** - * @param value {@link #school} (Name of school for over-aged dependants.). This is the underlying object with id, value and extensions. The accessor "getSchool" gives direct access to the value - */ - public InstitutionalClaim setSchoolElement(StringType value) { - this.school = value; - return this; - } - - /** - * @return Name of school for over-aged dependants. - */ - public String getSchool() { - return this.school == null ? null : this.school.getValue(); - } - - /** - * @param value Name of school for over-aged dependants. - */ - public InstitutionalClaim setSchool(String value) { - if (Utilities.noString(value)) - this.school = null; - else { - if (this.school == null) - this.school = new StringType(); - this.school.setValue(value); - } - return this; - } - - /** - * @return {@link #accident} (Date of an accident which these services are addessing.). This is the underlying object with id, value and extensions. The accessor "getAccident" gives direct access to the value - */ - public DateType getAccidentElement() { - if (this.accident == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.accident"); - else if (Configuration.doAutoCreate()) - this.accident = new DateType(); - return this.accident; - } - - public boolean hasAccidentElement() { - return this.accident != null && !this.accident.isEmpty(); - } - - public boolean hasAccident() { - return this.accident != null && !this.accident.isEmpty(); - } - - /** - * @param value {@link #accident} (Date of an accident which these services are addessing.). This is the underlying object with id, value and extensions. The accessor "getAccident" gives direct access to the value - */ - public InstitutionalClaim setAccidentElement(DateType value) { - this.accident = value; - return this; - } - - /** - * @return Date of an accident which these services are addessing. - */ - public Date getAccident() { - return this.accident == null ? null : this.accident.getValue(); - } - - /** - * @param value Date of an accident which these services are addessing. - */ - public InstitutionalClaim setAccident(Date value) { - if (value == null) - this.accident = null; - else { - if (this.accident == null) - this.accident = new DateType(); - this.accident.setValue(value); - } - return this; - } - - /** - * @return {@link #accidentType} (Type of accident: work, auto, etc.) - */ - public Coding getAccidentType() { - if (this.accidentType == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create InstitutionalClaim.accidentType"); - else if (Configuration.doAutoCreate()) - this.accidentType = new Coding(); - return this.accidentType; - } - - public boolean hasAccidentType() { - return this.accidentType != null && !this.accidentType.isEmpty(); - } - - /** - * @param value {@link #accidentType} (Type of accident: work, auto, etc.) - */ - public InstitutionalClaim setAccidentType(Coding value) { - this.accidentType = value; - return this; - } - - /** - * @return {@link #interventionException} (A list of intervention and exception codes which may influence the adjudication of the claim.) - */ - public List getInterventionException() { - if (this.interventionException == null) - this.interventionException = new ArrayList(); - return this.interventionException; - } - - public boolean hasInterventionException() { - if (this.interventionException == null) - return false; - for (Coding item : this.interventionException) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #interventionException} (A list of intervention and exception codes which may influence the adjudication of the claim.) - */ - // syntactic sugar - public Coding addInterventionException() { //3 - Coding t = new Coding(); - if (this.interventionException == null) - this.interventionException = new ArrayList(); - this.interventionException.add(t); - return t; - } - - /** - * @return {@link #item} (First tier of goods and services.) - */ - public List getItem() { - if (this.item == null) - this.item = new ArrayList(); - return this.item; - } - - public boolean hasItem() { - if (this.item == null) - return false; - for (ItemsComponent item : this.item) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #item} (First tier of goods and services.) - */ - // syntactic sugar - public ItemsComponent addItem() { //3 - ItemsComponent t = new ItemsComponent(); - if (this.item == null) - this.item = new ArrayList(); - this.item.add(t); - return t; - } - - /** - * @return {@link #additionalMaterials} (Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission.) - */ - public List getAdditionalMaterials() { - if (this.additionalMaterials == null) - this.additionalMaterials = new ArrayList(); - return this.additionalMaterials; - } - - public boolean hasAdditionalMaterials() { - if (this.additionalMaterials == null) - return false; - for (Coding item : this.additionalMaterials) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #additionalMaterials} (Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission.) - */ - // syntactic sugar - public Coding addAdditionalMaterials() { //3 - Coding t = new Coding(); - if (this.additionalMaterials == null) - this.additionalMaterials = new ArrayList(); - this.additionalMaterials.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("ruleset", "Coding", "The version of the specification on which this instance relies.", 0, java.lang.Integer.MAX_VALUE, ruleset)); - childrenList.add(new Property("originalRuleset", "Coding", "The version of the specification from which the original instance was created.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); - childrenList.add(new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, created)); - childrenList.add(new Property("target", "Reference(Organization)", "Insurer Identifier, typical BIN number (6 digit).", 0, java.lang.Integer.MAX_VALUE, target)); - childrenList.add(new Property("provider", "Reference(Practitioner)", "The provider which is responsible for the bill, claim pre-determination, pre-authorization.", 0, java.lang.Integer.MAX_VALUE, provider)); - childrenList.add(new Property("organization", "Reference(Organization)", "The organization which is responsible for the bill, claim pre-determination, pre-authorization.", 0, java.lang.Integer.MAX_VALUE, organization)); - childrenList.add(new Property("use", "code", "Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination).", 0, java.lang.Integer.MAX_VALUE, use)); - childrenList.add(new Property("priority", "Coding", "Immediate (STAT), best effort (NORMAL), deferred (DEFER).", 0, java.lang.Integer.MAX_VALUE, priority)); - childrenList.add(new Property("fundsReserve", "Coding", "In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested.", 0, java.lang.Integer.MAX_VALUE, fundsReserve)); - childrenList.add(new Property("enterer", "Reference(Practitioner)", "Person who created the invoice/claim/pre-determination or pre-authorization.", 0, java.lang.Integer.MAX_VALUE, enterer)); - childrenList.add(new Property("facility", "Reference(Location)", "Facility where the services were provided.", 0, java.lang.Integer.MAX_VALUE, facility)); - childrenList.add(new Property("payee", "", "Theparty to be reimbused for the services.", 0, java.lang.Integer.MAX_VALUE, payee)); - childrenList.add(new Property("referral", "Reference(ReferralRequest)", "The referral resource which lists the date, practitioner, reason and other supporting information.", 0, java.lang.Integer.MAX_VALUE, referral)); - childrenList.add(new Property("diagnosis", "", "Ordered list of patient diagnosis for which care is sought.", 0, java.lang.Integer.MAX_VALUE, diagnosis)); - childrenList.add(new Property("condition", "Coding", "List of patient conditions for which care is sought.", 0, java.lang.Integer.MAX_VALUE, condition)); - childrenList.add(new Property("patient", "Reference(Patient)", "Patient Resource.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("coverage", "", "Financial instrument by which payment information for health care.", 0, java.lang.Integer.MAX_VALUE, coverage)); - childrenList.add(new Property("exception", "Coding", "Factors which may influence the applicability of coverage.", 0, java.lang.Integer.MAX_VALUE, exception)); - childrenList.add(new Property("school", "string", "Name of school for over-aged dependants.", 0, java.lang.Integer.MAX_VALUE, school)); - childrenList.add(new Property("accident", "date", "Date of an accident which these services are addessing.", 0, java.lang.Integer.MAX_VALUE, accident)); - childrenList.add(new Property("accidentType", "Coding", "Type of accident: work, auto, etc.", 0, java.lang.Integer.MAX_VALUE, accidentType)); - childrenList.add(new Property("interventionException", "Coding", "A list of intervention and exception codes which may influence the adjudication of the claim.", 0, java.lang.Integer.MAX_VALUE, interventionException)); - childrenList.add(new Property("item", "", "First tier of goods and services.", 0, java.lang.Integer.MAX_VALUE, item)); - childrenList.add(new Property("additionalMaterials", "Coding", "Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission.", 0, java.lang.Integer.MAX_VALUE, additionalMaterials)); - } - - public InstitutionalClaim copy() { - InstitutionalClaim dst = new InstitutionalClaim(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.ruleset = ruleset == null ? null : ruleset.copy(); - dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); - dst.created = created == null ? null : created.copy(); - dst.target = target == null ? null : target.copy(); - dst.provider = provider == null ? null : provider.copy(); - dst.organization = organization == null ? null : organization.copy(); - dst.use = use == null ? null : use.copy(); - dst.priority = priority == null ? null : priority.copy(); - dst.fundsReserve = fundsReserve == null ? null : fundsReserve.copy(); - dst.enterer = enterer == null ? null : enterer.copy(); - dst.facility = facility == null ? null : facility.copy(); - dst.payee = payee == null ? null : payee.copy(); - dst.referral = referral == null ? null : referral.copy(); - if (diagnosis != null) { - dst.diagnosis = new ArrayList(); - for (DiagnosisComponent i : diagnosis) - dst.diagnosis.add(i.copy()); - }; - if (condition != null) { - dst.condition = new ArrayList(); - for (Coding i : condition) - dst.condition.add(i.copy()); - }; - dst.patient = patient == null ? null : patient.copy(); - if (coverage != null) { - dst.coverage = new ArrayList(); - for (CoverageComponent i : coverage) - dst.coverage.add(i.copy()); - }; - if (exception != null) { - dst.exception = new ArrayList(); - for (Coding i : exception) - dst.exception.add(i.copy()); - }; - dst.school = school == null ? null : school.copy(); - dst.accident = accident == null ? null : accident.copy(); - dst.accidentType = accidentType == null ? null : accidentType.copy(); - if (interventionException != null) { - dst.interventionException = new ArrayList(); - for (Coding i : interventionException) - dst.interventionException.add(i.copy()); - }; - if (item != null) { - dst.item = new ArrayList(); - for (ItemsComponent i : item) - dst.item.add(i.copy()); - }; - if (additionalMaterials != null) { - dst.additionalMaterials = new ArrayList(); - for (Coding i : additionalMaterials) - dst.additionalMaterials.add(i.copy()); - }; - return dst; - } - - protected InstitutionalClaim typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (ruleset == null || ruleset.isEmpty()) - && (originalRuleset == null || originalRuleset.isEmpty()) && (created == null || created.isEmpty()) - && (target == null || target.isEmpty()) && (provider == null || provider.isEmpty()) && (organization == null || organization.isEmpty()) - && (use == null || use.isEmpty()) && (priority == null || priority.isEmpty()) && (fundsReserve == null || fundsReserve.isEmpty()) - && (enterer == null || enterer.isEmpty()) && (facility == null || facility.isEmpty()) && (payee == null || payee.isEmpty()) - && (referral == null || referral.isEmpty()) && (diagnosis == null || diagnosis.isEmpty()) - && (condition == null || condition.isEmpty()) && (patient == null || patient.isEmpty()) && (coverage == null || coverage.isEmpty()) - && (exception == null || exception.isEmpty()) && (school == null || school.isEmpty()) && (accident == null || accident.isEmpty()) - && (accidentType == null || accidentType.isEmpty()) && (interventionException == null || interventionException.isEmpty()) - && (item == null || item.isEmpty()) && (additionalMaterials == null || additionalMaterials.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.InstitutionalClaim; - } - - @SearchParamDefinition(name="patient", path="InstitutionalClaim.patient", description="Patient", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="priority", path="InstitutionalClaim.priority", description="Processing priority requested", type="token" ) - public static final String SP_PRIORITY = "priority"; - @SearchParamDefinition(name="use", path="InstitutionalClaim.use", description="The kind of financial resource", type="token" ) - public static final String SP_USE = "use"; - @SearchParamDefinition(name="identifier", path="InstitutionalClaim.identifier", description="The primary identifier of the financial resource", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import java.math.*; +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery. + */ +@ResourceDef(name="InstitutionalClaim", profile="http://hl7.org/fhir/Profile/InstitutionalClaim") +public class InstitutionalClaim extends DomainResource { + + public enum UseLink { + /** + * The treatment is complete and this represents a Claim for the services. + */ + COMPLETE, + /** + * The treatment is proposed and this represents a Pre-authorization for the services. + */ + PROPOSED, + /** + * The treatment is proposed and this represents a Pre-determination for the services. + */ + EXPLORATORY, + /** + * A locally defined or otherwise resolved status. + */ + OTHER, + /** + * added to help the parsers + */ + NULL; + public static UseLink fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("complete".equals(codeString)) + return COMPLETE; + if ("proposed".equals(codeString)) + return PROPOSED; + if ("exploratory".equals(codeString)) + return EXPLORATORY; + if ("other".equals(codeString)) + return OTHER; + throw new Exception("Unknown UseLink code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case COMPLETE: return "complete"; + case PROPOSED: return "proposed"; + case EXPLORATORY: return "exploratory"; + case OTHER: return "other"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case COMPLETE: return ""; + case PROPOSED: return ""; + case EXPLORATORY: return ""; + case OTHER: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case COMPLETE: return "The treatment is complete and this represents a Claim for the services."; + case PROPOSED: return "The treatment is proposed and this represents a Pre-authorization for the services."; + case EXPLORATORY: return "The treatment is proposed and this represents a Pre-determination for the services."; + case OTHER: return "A locally defined or otherwise resolved status."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case COMPLETE: return "complete"; + case PROPOSED: return "proposed"; + case EXPLORATORY: return "exploratory"; + case OTHER: return "other"; + default: return "?"; + } + } + } + + public static class UseLinkEnumFactory implements EnumFactory { + public UseLink fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("complete".equals(codeString)) + return UseLink.COMPLETE; + if ("proposed".equals(codeString)) + return UseLink.PROPOSED; + if ("exploratory".equals(codeString)) + return UseLink.EXPLORATORY; + if ("other".equals(codeString)) + return UseLink.OTHER; + throw new IllegalArgumentException("Unknown UseLink code '"+codeString+"'"); + } + public String toCode(UseLink code) { + if (code == UseLink.COMPLETE) + return "complete"; + if (code == UseLink.PROPOSED) + return "proposed"; + if (code == UseLink.EXPLORATORY) + return "exploratory"; + if (code == UseLink.OTHER) + return "other"; + return "?"; + } + } + + @Block() + public static class PayeeComponent extends BackboneElement { + /** + * Party to be reimbursed: Subscriber, provider, other. + */ + @Child(name="type", type={Coding.class}, order=1, min=0, max=1) + @Description(shortDefinition="Party to be paid any benefits payable", formalDefinition="Party to be reimbursed: Subscriber, provider, other." ) + protected Coding type; + + /** + * The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned). + */ + @Child(name="provider", type={Practitioner.class}, order=2, min=0, max=1) + @Description(shortDefinition="Provider who is the payee", formalDefinition="The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned)." ) + protected Reference provider; + + /** + * The actual object that is the target of the reference (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + protected Practitioner providerTarget; + + /** + * The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned). + */ + @Child(name="organization", type={Organization.class}, order=3, min=0, max=1) + @Description(shortDefinition="Organization who is the payee", formalDefinition="The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned)." ) + protected Reference organization; + + /** + * The actual object that is the target of the reference (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + protected Organization organizationTarget; + + /** + * The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned). + */ + @Child(name="person", type={Patient.class}, order=4, min=0, max=1) + @Description(shortDefinition="Other person who is the payee", formalDefinition="The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned)." ) + protected Reference person; + + /** + * The actual object that is the target of the reference (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + protected Patient personTarget; + + private static final long serialVersionUID = -503108488L; + + public PayeeComponent() { + super(); + } + + /** + * @return {@link #type} (Party to be reimbursed: Subscriber, provider, other.) + */ + public Coding getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create PayeeComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new Coding(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Party to be reimbursed: Subscriber, provider, other.) + */ + public PayeeComponent setType(Coding value) { + this.type = value; + return this; + } + + /** + * @return {@link #provider} (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + public Reference getProvider() { + if (this.provider == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create PayeeComponent.provider"); + else if (Configuration.doAutoCreate()) + this.provider = new Reference(); // cc + return this.provider; + } + + public boolean hasProvider() { + return this.provider != null && !this.provider.isEmpty(); + } + + /** + * @param value {@link #provider} (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + public PayeeComponent setProvider(Reference value) { + this.provider = value; + return this; + } + + /** + * @return {@link #provider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + public Practitioner getProviderTarget() { + if (this.providerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create PayeeComponent.provider"); + else if (Configuration.doAutoCreate()) + this.providerTarget = new Practitioner(); // aa + return this.providerTarget; + } + + /** + * @param value {@link #provider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + public PayeeComponent setProviderTarget(Practitioner value) { + this.providerTarget = value; + return this; + } + + /** + * @return {@link #organization} (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + public Reference getOrganization() { + if (this.organization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create PayeeComponent.organization"); + else if (Configuration.doAutoCreate()) + this.organization = new Reference(); // cc + return this.organization; + } + + public boolean hasOrganization() { + return this.organization != null && !this.organization.isEmpty(); + } + + /** + * @param value {@link #organization} (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + public PayeeComponent setOrganization(Reference value) { + this.organization = value; + return this; + } + + /** + * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + public Organization getOrganizationTarget() { + if (this.organizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create PayeeComponent.organization"); + else if (Configuration.doAutoCreate()) + this.organizationTarget = new Organization(); // aa + return this.organizationTarget; + } + + /** + * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + public PayeeComponent setOrganizationTarget(Organization value) { + this.organizationTarget = value; + return this; + } + + /** + * @return {@link #person} (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + public Reference getPerson() { + if (this.person == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create PayeeComponent.person"); + else if (Configuration.doAutoCreate()) + this.person = new Reference(); // cc + return this.person; + } + + public boolean hasPerson() { + return this.person != null && !this.person.isEmpty(); + } + + /** + * @param value {@link #person} (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + public PayeeComponent setPerson(Reference value) { + this.person = value; + return this; + } + + /** + * @return {@link #person} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + public Patient getPersonTarget() { + if (this.personTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create PayeeComponent.person"); + else if (Configuration.doAutoCreate()) + this.personTarget = new Patient(); // aa + return this.personTarget; + } + + /** + * @param value {@link #person} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).) + */ + public PayeeComponent setPersonTarget(Patient value) { + this.personTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "Coding", "Party to be reimbursed: Subscriber, provider, other.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("provider", "Reference(Practitioner)", "The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned).", 0, java.lang.Integer.MAX_VALUE, provider)); + childrenList.add(new Property("organization", "Reference(Organization)", "The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned).", 0, java.lang.Integer.MAX_VALUE, organization)); + childrenList.add(new Property("person", "Reference(Patient)", "The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned).", 0, java.lang.Integer.MAX_VALUE, person)); + } + + public PayeeComponent copy() { + PayeeComponent dst = new PayeeComponent(); + copyValues(dst); + dst.type = type == null ? null : type.copy(); + dst.provider = provider == null ? null : provider.copy(); + dst.organization = organization == null ? null : organization.copy(); + dst.person = person == null ? null : person.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof PayeeComponent)) + return false; + PayeeComponent o = (PayeeComponent) other; + return compareDeep(type, o.type, true) && compareDeep(provider, o.provider, true) && compareDeep(organization, o.organization, true) + && compareDeep(person, o.person, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof PayeeComponent)) + return false; + PayeeComponent o = (PayeeComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (provider == null || provider.isEmpty()) + && (organization == null || organization.isEmpty()) && (person == null || person.isEmpty()) + ; + } + + } + + @Block() + public static class DiagnosisComponent extends BackboneElement { + /** + * Sequence of diagnosis. + */ + @Child(name="sequence", type={IntegerType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Sequence of diagnosis", formalDefinition="Sequence of diagnosis." ) + protected IntegerType sequence; + + /** + * The diagnosis. + */ + @Child(name="diagnosis", type={Coding.class}, order=2, min=1, max=1) + @Description(shortDefinition="Patient's list of diagnosis", formalDefinition="The diagnosis." ) + protected Coding diagnosis; + + private static final long serialVersionUID = -935927954L; + + public DiagnosisComponent() { + super(); + } + + public DiagnosisComponent(IntegerType sequence, Coding diagnosis) { + super(); + this.sequence = sequence; + this.diagnosis = diagnosis; + } + + /** + * @return {@link #sequence} (Sequence of diagnosis.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value + */ + public IntegerType getSequenceElement() { + if (this.sequence == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosisComponent.sequence"); + else if (Configuration.doAutoCreate()) + this.sequence = new IntegerType(); // bb + return this.sequence; + } + + public boolean hasSequenceElement() { + return this.sequence != null && !this.sequence.isEmpty(); + } + + public boolean hasSequence() { + return this.sequence != null && !this.sequence.isEmpty(); + } + + /** + * @param value {@link #sequence} (Sequence of diagnosis.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value + */ + public DiagnosisComponent setSequenceElement(IntegerType value) { + this.sequence = value; + return this; + } + + /** + * @return Sequence of diagnosis. + */ + public int getSequence() { + return this.sequence == null ? 0 : this.sequence.getValue(); + } + + /** + * @param value Sequence of diagnosis. + */ + public DiagnosisComponent setSequence(int value) { + if (this.sequence == null) + this.sequence = new IntegerType(); + this.sequence.setValue(value); + return this; + } + + /** + * @return {@link #diagnosis} (The diagnosis.) + */ + public Coding getDiagnosis() { + if (this.diagnosis == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DiagnosisComponent.diagnosis"); + else if (Configuration.doAutoCreate()) + this.diagnosis = new Coding(); // cc + return this.diagnosis; + } + + public boolean hasDiagnosis() { + return this.diagnosis != null && !this.diagnosis.isEmpty(); + } + + /** + * @param value {@link #diagnosis} (The diagnosis.) + */ + public DiagnosisComponent setDiagnosis(Coding value) { + this.diagnosis = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("sequence", "integer", "Sequence of diagnosis.", 0, java.lang.Integer.MAX_VALUE, sequence)); + childrenList.add(new Property("diagnosis", "Coding", "The diagnosis.", 0, java.lang.Integer.MAX_VALUE, diagnosis)); + } + + public DiagnosisComponent copy() { + DiagnosisComponent dst = new DiagnosisComponent(); + copyValues(dst); + dst.sequence = sequence == null ? null : sequence.copy(); + dst.diagnosis = diagnosis == null ? null : diagnosis.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DiagnosisComponent)) + return false; + DiagnosisComponent o = (DiagnosisComponent) other; + return compareDeep(sequence, o.sequence, true) && compareDeep(diagnosis, o.diagnosis, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DiagnosisComponent)) + return false; + DiagnosisComponent o = (DiagnosisComponent) other; + return compareValues(sequence, o.sequence, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (diagnosis == null || diagnosis.isEmpty()) + ; + } + + } + + @Block() + public static class CoverageComponent extends BackboneElement { + /** + * A service line item. + */ + @Child(name="sequence", type={IntegerType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Service instance identifier", formalDefinition="A service line item." ) + protected IntegerType sequence; + + /** + * The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated. + */ + @Child(name="focal", type={BooleanType.class}, order=2, min=1, max=1) + @Description(shortDefinition="Is the focal Coverage", formalDefinition="The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated." ) + protected BooleanType focal; + + /** + * Reference to the program or plan identification, underwriter or payor. + */ + @Child(name="coverage", type={Coverage.class}, order=3, min=1, max=1) + @Description(shortDefinition="Insurance information", formalDefinition="Reference to the program or plan identification, underwriter or payor." ) + protected Reference coverage; + + /** + * The actual object that is the target of the reference (Reference to the program or plan identification, underwriter or payor.) + */ + protected Coverage coverageTarget; + + /** + * The contract number of a business agreement which describes the terms and conditions. + */ + @Child(name="businessArrangement", type={StringType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Business agreement", formalDefinition="The contract number of a business agreement which describes the terms and conditions." ) + protected StringType businessArrangement; + + /** + * The relationship of the patient to the subscriber. + */ + @Child(name="relationship", type={Coding.class}, order=5, min=1, max=1) + @Description(shortDefinition="Patient relationship to subscriber", formalDefinition="The relationship of the patient to the subscriber." ) + protected Coding relationship; + + /** + * A list of references from the Insurer to which these services pertain. + */ + @Child(name="preauthref", type={StringType.class}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Pre-Authorization/Determination Reference", formalDefinition="A list of references from the Insurer to which these services pertain." ) + protected List preauthref; + + /** + * The Coverages adjudication details. + */ + @Child(name="claimResponse", type={ClaimResponse.class}, order=7, min=0, max=1) + @Description(shortDefinition="Adjudication results", formalDefinition="The Coverages adjudication details." ) + protected Reference claimResponse; + + /** + * The actual object that is the target of the reference (The Coverages adjudication details.) + */ + protected ClaimResponse claimResponseTarget; + + /** + * The style (standard) and version of the original material which was converted into this resource. + */ + @Child(name="originalRuleset", type={Coding.class}, order=8, min=0, max=1) + @Description(shortDefinition="Original version", formalDefinition="The style (standard) and version of the original material which was converted into this resource." ) + protected Coding originalRuleset; + + private static final long serialVersionUID = 450222500L; + + public CoverageComponent() { + super(); + } + + public CoverageComponent(IntegerType sequence, BooleanType focal, Reference coverage, Coding relationship) { + super(); + this.sequence = sequence; + this.focal = focal; + this.coverage = coverage; + this.relationship = relationship; + } + + /** + * @return {@link #sequence} (A service line item.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value + */ + public IntegerType getSequenceElement() { + if (this.sequence == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CoverageComponent.sequence"); + else if (Configuration.doAutoCreate()) + this.sequence = new IntegerType(); // bb + return this.sequence; + } + + public boolean hasSequenceElement() { + return this.sequence != null && !this.sequence.isEmpty(); + } + + public boolean hasSequence() { + return this.sequence != null && !this.sequence.isEmpty(); + } + + /** + * @param value {@link #sequence} (A service line item.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value + */ + public CoverageComponent setSequenceElement(IntegerType value) { + this.sequence = value; + return this; + } + + /** + * @return A service line item. + */ + public int getSequence() { + return this.sequence == null ? 0 : this.sequence.getValue(); + } + + /** + * @param value A service line item. + */ + public CoverageComponent setSequence(int value) { + if (this.sequence == null) + this.sequence = new IntegerType(); + this.sequence.setValue(value); + return this; + } + + /** + * @return {@link #focal} (The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated.). This is the underlying object with id, value and extensions. The accessor "getFocal" gives direct access to the value + */ + public BooleanType getFocalElement() { + if (this.focal == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CoverageComponent.focal"); + else if (Configuration.doAutoCreate()) + this.focal = new BooleanType(); // bb + return this.focal; + } + + public boolean hasFocalElement() { + return this.focal != null && !this.focal.isEmpty(); + } + + public boolean hasFocal() { + return this.focal != null && !this.focal.isEmpty(); + } + + /** + * @param value {@link #focal} (The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated.). This is the underlying object with id, value and extensions. The accessor "getFocal" gives direct access to the value + */ + public CoverageComponent setFocalElement(BooleanType value) { + this.focal = value; + return this; + } + + /** + * @return The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated. + */ + public boolean getFocal() { + return this.focal == null ? false : this.focal.getValue(); + } + + /** + * @param value The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated. + */ + public CoverageComponent setFocal(boolean value) { + if (this.focal == null) + this.focal = new BooleanType(); + this.focal.setValue(value); + return this; + } + + /** + * @return {@link #coverage} (Reference to the program or plan identification, underwriter or payor.) + */ + public Reference getCoverage() { + if (this.coverage == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CoverageComponent.coverage"); + else if (Configuration.doAutoCreate()) + this.coverage = new Reference(); // cc + return this.coverage; + } + + public boolean hasCoverage() { + return this.coverage != null && !this.coverage.isEmpty(); + } + + /** + * @param value {@link #coverage} (Reference to the program or plan identification, underwriter or payor.) + */ + public CoverageComponent setCoverage(Reference value) { + this.coverage = value; + return this; + } + + /** + * @return {@link #coverage} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Reference to the program or plan identification, underwriter or payor.) + */ + public Coverage getCoverageTarget() { + if (this.coverageTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CoverageComponent.coverage"); + else if (Configuration.doAutoCreate()) + this.coverageTarget = new Coverage(); // aa + return this.coverageTarget; + } + + /** + * @param value {@link #coverage} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Reference to the program or plan identification, underwriter or payor.) + */ + public CoverageComponent setCoverageTarget(Coverage value) { + this.coverageTarget = value; + return this; + } + + /** + * @return {@link #businessArrangement} (The contract number of a business agreement which describes the terms and conditions.). This is the underlying object with id, value and extensions. The accessor "getBusinessArrangement" gives direct access to the value + */ + public StringType getBusinessArrangementElement() { + if (this.businessArrangement == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CoverageComponent.businessArrangement"); + else if (Configuration.doAutoCreate()) + this.businessArrangement = new StringType(); // bb + return this.businessArrangement; + } + + public boolean hasBusinessArrangementElement() { + return this.businessArrangement != null && !this.businessArrangement.isEmpty(); + } + + public boolean hasBusinessArrangement() { + return this.businessArrangement != null && !this.businessArrangement.isEmpty(); + } + + /** + * @param value {@link #businessArrangement} (The contract number of a business agreement which describes the terms and conditions.). This is the underlying object with id, value and extensions. The accessor "getBusinessArrangement" gives direct access to the value + */ + public CoverageComponent setBusinessArrangementElement(StringType value) { + this.businessArrangement = value; + return this; + } + + /** + * @return The contract number of a business agreement which describes the terms and conditions. + */ + public String getBusinessArrangement() { + return this.businessArrangement == null ? null : this.businessArrangement.getValue(); + } + + /** + * @param value The contract number of a business agreement which describes the terms and conditions. + */ + public CoverageComponent setBusinessArrangement(String value) { + if (Utilities.noString(value)) + this.businessArrangement = null; + else { + if (this.businessArrangement == null) + this.businessArrangement = new StringType(); + this.businessArrangement.setValue(value); + } + return this; + } + + /** + * @return {@link #relationship} (The relationship of the patient to the subscriber.) + */ + public Coding getRelationship() { + if (this.relationship == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CoverageComponent.relationship"); + else if (Configuration.doAutoCreate()) + this.relationship = new Coding(); // cc + return this.relationship; + } + + public boolean hasRelationship() { + return this.relationship != null && !this.relationship.isEmpty(); + } + + /** + * @param value {@link #relationship} (The relationship of the patient to the subscriber.) + */ + public CoverageComponent setRelationship(Coding value) { + this.relationship = value; + return this; + } + + /** + * @return {@link #preauthref} (A list of references from the Insurer to which these services pertain.) + */ + public List getPreauthref() { + if (this.preauthref == null) + this.preauthref = new ArrayList(); + return this.preauthref; + } + + public boolean hasPreauthref() { + if (this.preauthref == null) + return false; + for (StringType item : this.preauthref) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #preauthref} (A list of references from the Insurer to which these services pertain.) + */ + // syntactic sugar + public StringType addPreauthrefElement() {//2 + StringType t = new StringType(); + if (this.preauthref == null) + this.preauthref = new ArrayList(); + this.preauthref.add(t); + return t; + } + + /** + * @param value {@link #preauthref} (A list of references from the Insurer to which these services pertain.) + */ + public CoverageComponent addPreauthref(String value) { //1 + StringType t = new StringType(); + t.setValue(value); + if (this.preauthref == null) + this.preauthref = new ArrayList(); + this.preauthref.add(t); + return this; + } + + /** + * @param value {@link #preauthref} (A list of references from the Insurer to which these services pertain.) + */ + public boolean hasPreauthref(String value) { + if (this.preauthref == null) + return false; + for (StringType v : this.preauthref) + if (v.equals(value)) // string + return true; + return false; + } + + /** + * @return {@link #claimResponse} (The Coverages adjudication details.) + */ + public Reference getClaimResponse() { + if (this.claimResponse == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CoverageComponent.claimResponse"); + else if (Configuration.doAutoCreate()) + this.claimResponse = new Reference(); // cc + return this.claimResponse; + } + + public boolean hasClaimResponse() { + return this.claimResponse != null && !this.claimResponse.isEmpty(); + } + + /** + * @param value {@link #claimResponse} (The Coverages adjudication details.) + */ + public CoverageComponent setClaimResponse(Reference value) { + this.claimResponse = value; + return this; + } + + /** + * @return {@link #claimResponse} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Coverages adjudication details.) + */ + public ClaimResponse getClaimResponseTarget() { + if (this.claimResponseTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CoverageComponent.claimResponse"); + else if (Configuration.doAutoCreate()) + this.claimResponseTarget = new ClaimResponse(); // aa + return this.claimResponseTarget; + } + + /** + * @param value {@link #claimResponse} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Coverages adjudication details.) + */ + public CoverageComponent setClaimResponseTarget(ClaimResponse value) { + this.claimResponseTarget = value; + return this; + } + + /** + * @return {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public Coding getOriginalRuleset() { + if (this.originalRuleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create CoverageComponent.originalRuleset"); + else if (Configuration.doAutoCreate()) + this.originalRuleset = new Coding(); // cc + return this.originalRuleset; + } + + public boolean hasOriginalRuleset() { + return this.originalRuleset != null && !this.originalRuleset.isEmpty(); + } + + /** + * @param value {@link #originalRuleset} (The style (standard) and version of the original material which was converted into this resource.) + */ + public CoverageComponent setOriginalRuleset(Coding value) { + this.originalRuleset = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("sequence", "integer", "A service line item.", 0, java.lang.Integer.MAX_VALUE, sequence)); + childrenList.add(new Property("focal", "boolean", "The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated.", 0, java.lang.Integer.MAX_VALUE, focal)); + childrenList.add(new Property("coverage", "Reference(Coverage)", "Reference to the program or plan identification, underwriter or payor.", 0, java.lang.Integer.MAX_VALUE, coverage)); + childrenList.add(new Property("businessArrangement", "string", "The contract number of a business agreement which describes the terms and conditions.", 0, java.lang.Integer.MAX_VALUE, businessArrangement)); + childrenList.add(new Property("relationship", "Coding", "The relationship of the patient to the subscriber.", 0, java.lang.Integer.MAX_VALUE, relationship)); + childrenList.add(new Property("preauthref", "string", "A list of references from the Insurer to which these services pertain.", 0, java.lang.Integer.MAX_VALUE, preauthref)); + childrenList.add(new Property("claimResponse", "Reference(ClaimResponse)", "The Coverages adjudication details.", 0, java.lang.Integer.MAX_VALUE, claimResponse)); + childrenList.add(new Property("originalRuleset", "Coding", "The style (standard) and version of the original material which was converted into this resource.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); + } + + public CoverageComponent copy() { + CoverageComponent dst = new CoverageComponent(); + copyValues(dst); + dst.sequence = sequence == null ? null : sequence.copy(); + dst.focal = focal == null ? null : focal.copy(); + dst.coverage = coverage == null ? null : coverage.copy(); + dst.businessArrangement = businessArrangement == null ? null : businessArrangement.copy(); + dst.relationship = relationship == null ? null : relationship.copy(); + if (preauthref != null) { + dst.preauthref = new ArrayList(); + for (StringType i : preauthref) + dst.preauthref.add(i.copy()); + }; + dst.claimResponse = claimResponse == null ? null : claimResponse.copy(); + dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof CoverageComponent)) + return false; + CoverageComponent o = (CoverageComponent) other; + return compareDeep(sequence, o.sequence, true) && compareDeep(focal, o.focal, true) && compareDeep(coverage, o.coverage, true) + && compareDeep(businessArrangement, o.businessArrangement, true) && compareDeep(relationship, o.relationship, true) + && compareDeep(preauthref, o.preauthref, true) && compareDeep(claimResponse, o.claimResponse, true) + && compareDeep(originalRuleset, o.originalRuleset, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof CoverageComponent)) + return false; + CoverageComponent o = (CoverageComponent) other; + return compareValues(sequence, o.sequence, true) && compareValues(focal, o.focal, true) && compareValues(businessArrangement, o.businessArrangement, true) + && compareValues(preauthref, o.preauthref, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (focal == null || focal.isEmpty()) + && (coverage == null || coverage.isEmpty()) && (businessArrangement == null || businessArrangement.isEmpty()) + && (relationship == null || relationship.isEmpty()) && (preauthref == null || preauthref.isEmpty()) + && (claimResponse == null || claimResponse.isEmpty()) && (originalRuleset == null || originalRuleset.isEmpty()) + ; + } + + } + + @Block() + public static class ItemsComponent extends BackboneElement { + /** + * A service line number. + */ + @Child(name="sequence", type={IntegerType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Service instance", formalDefinition="A service line number." ) + protected IntegerType sequence; + + /** + * The type of product or service. + */ + @Child(name="type", type={Coding.class}, order=2, min=1, max=1) + @Description(shortDefinition="Group or type of product or service", formalDefinition="The type of product or service." ) + protected Coding type; + + /** + * The practitioner who is responsible for the services rendered to the patient. + */ + @Child(name="provider", type={Practitioner.class}, order=3, min=0, max=1) + @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) + protected Reference provider; + + /** + * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) + */ + protected Practitioner providerTarget; + + /** + * Diagnosis applicable for this service or product line. + */ + @Child(name="diagnosisLinkId", type={IntegerType.class}, order=4, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Diagnosis Link", formalDefinition="Diagnosis applicable for this service or product line." ) + protected List diagnosisLinkId; + + /** + * If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied. + */ + @Child(name="service", type={Coding.class}, order=5, min=1, max=1) + @Description(shortDefinition="Item Code", formalDefinition="If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied." ) + protected Coding service; + + /** + * The date when the enclosed suite of services were performed or completed. + */ + @Child(name="serviceDate", type={DateType.class}, order=6, min=0, max=1) + @Description(shortDefinition="Date of Service", formalDefinition="The date when the enclosed suite of services were performed or completed." ) + protected DateType serviceDate; + + /** + * The number of repetitions of a service or product. + */ + @Child(name="quantity", type={Quantity.class}, order=7, min=0, max=1) + @Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." ) + protected Quantity quantity; + + /** + * If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group. + */ + @Child(name="unitPrice", type={Money.class}, order=8, min=0, max=1) + @Description(shortDefinition="Fee, charge or cost per point", formalDefinition="If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group." ) + protected Money unitPrice; + + /** + * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + @Child(name="factor", type={DecimalType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Price scaling factor", formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount." ) + protected DecimalType factor; + + /** + * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + @Child(name="points", type={DecimalType.class}, order=10, min=0, max=1) + @Description(shortDefinition="Difficulty scaling factor", formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point." ) + protected DecimalType points; + + /** + * The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. + */ + @Child(name="net", type={Money.class}, order=11, min=0, max=1) + @Description(shortDefinition="Total item cost", formalDefinition="The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." ) + protected Money net; + + /** + * List of Unique Device Identifiers associated with this line item. + */ + @Child(name="udi", type={Coding.class}, order=12, min=0, max=1) + @Description(shortDefinition="Unique Device Identifier", formalDefinition="List of Unique Device Identifiers associated with this line item." ) + protected Coding udi; + + /** + * Physical service site on the patient (limb, tooth, etc). + */ + @Child(name="bodySite", type={Coding.class}, order=13, min=0, max=1) + @Description(shortDefinition="Service Location", formalDefinition="Physical service site on the patient (limb, tooth, etc)." ) + protected Coding bodySite; + + /** + * A region or surface of the site, eg. limb region or tooth surface(s). + */ + @Child(name="subsite", type={Coding.class}, order=14, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Service Sub-location", formalDefinition="A region or surface of the site, eg. limb region or tooth surface(s)." ) + protected List subsite; + + /** + * Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen. + */ + @Child(name="modifier", type={Coding.class}, order=15, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Service/Product billing modifiers", formalDefinition="Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen." ) + protected List modifier; + + /** + * Second tier of goods and services. + */ + @Child(name="detail", type={}, order=16, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Additional items", formalDefinition="Second tier of goods and services." ) + protected List detail; + + private static final long serialVersionUID = -1140048455L; + + public ItemsComponent() { + super(); + } + + public ItemsComponent(IntegerType sequence, Coding type, Coding service) { + super(); + this.sequence = sequence; + this.type = type; + this.service = service; + } + + /** + * @return {@link #sequence} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value + */ + public IntegerType getSequenceElement() { + if (this.sequence == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.sequence"); + else if (Configuration.doAutoCreate()) + this.sequence = new IntegerType(); // bb + return this.sequence; + } + + public boolean hasSequenceElement() { + return this.sequence != null && !this.sequence.isEmpty(); + } + + public boolean hasSequence() { + return this.sequence != null && !this.sequence.isEmpty(); + } + + /** + * @param value {@link #sequence} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value + */ + public ItemsComponent setSequenceElement(IntegerType value) { + this.sequence = value; + return this; + } + + /** + * @return A service line number. + */ + public int getSequence() { + return this.sequence == null ? 0 : this.sequence.getValue(); + } + + /** + * @param value A service line number. + */ + public ItemsComponent setSequence(int value) { + if (this.sequence == null) + this.sequence = new IntegerType(); + this.sequence.setValue(value); + return this; + } + + /** + * @return {@link #type} (The type of product or service.) + */ + public Coding getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new Coding(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The type of product or service.) + */ + public ItemsComponent setType(Coding value) { + this.type = value; + return this; + } + + /** + * @return {@link #provider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public Reference getProvider() { + if (this.provider == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.provider"); + else if (Configuration.doAutoCreate()) + this.provider = new Reference(); // cc + return this.provider; + } + + public boolean hasProvider() { + return this.provider != null && !this.provider.isEmpty(); + } + + /** + * @param value {@link #provider} (The practitioner who is responsible for the services rendered to the patient.) + */ + public ItemsComponent setProvider(Reference value) { + this.provider = value; + return this; + } + + /** + * @return {@link #provider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public Practitioner getProviderTarget() { + if (this.providerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.provider"); + else if (Configuration.doAutoCreate()) + this.providerTarget = new Practitioner(); // aa + return this.providerTarget; + } + + /** + * @param value {@link #provider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) + */ + public ItemsComponent setProviderTarget(Practitioner value) { + this.providerTarget = value; + return this; + } + + /** + * @return {@link #diagnosisLinkId} (Diagnosis applicable for this service or product line.) + */ + public List getDiagnosisLinkId() { + if (this.diagnosisLinkId == null) + this.diagnosisLinkId = new ArrayList(); + return this.diagnosisLinkId; + } + + public boolean hasDiagnosisLinkId() { + if (this.diagnosisLinkId == null) + return false; + for (IntegerType item : this.diagnosisLinkId) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #diagnosisLinkId} (Diagnosis applicable for this service or product line.) + */ + // syntactic sugar + public IntegerType addDiagnosisLinkIdElement() {//2 + IntegerType t = new IntegerType(); + if (this.diagnosisLinkId == null) + this.diagnosisLinkId = new ArrayList(); + this.diagnosisLinkId.add(t); + return t; + } + + /** + * @param value {@link #diagnosisLinkId} (Diagnosis applicable for this service or product line.) + */ + public ItemsComponent addDiagnosisLinkId(int value) { //1 + IntegerType t = new IntegerType(); + t.setValue(value); + if (this.diagnosisLinkId == null) + this.diagnosisLinkId = new ArrayList(); + this.diagnosisLinkId.add(t); + return this; + } + + /** + * @param value {@link #diagnosisLinkId} (Diagnosis applicable for this service or product line.) + */ + public boolean hasDiagnosisLinkId(int value) { + if (this.diagnosisLinkId == null) + return false; + for (IntegerType v : this.diagnosisLinkId) + if (v.equals(value)) // integer + return true; + return false; + } + + /** + * @return {@link #service} (If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied.) + */ + public Coding getService() { + if (this.service == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.service"); + else if (Configuration.doAutoCreate()) + this.service = new Coding(); // cc + return this.service; + } + + public boolean hasService() { + return this.service != null && !this.service.isEmpty(); + } + + /** + * @param value {@link #service} (If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied.) + */ + public ItemsComponent setService(Coding value) { + this.service = value; + return this; + } + + /** + * @return {@link #serviceDate} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getServiceDate" gives direct access to the value + */ + public DateType getServiceDateElement() { + if (this.serviceDate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.serviceDate"); + else if (Configuration.doAutoCreate()) + this.serviceDate = new DateType(); // bb + return this.serviceDate; + } + + public boolean hasServiceDateElement() { + return this.serviceDate != null && !this.serviceDate.isEmpty(); + } + + public boolean hasServiceDate() { + return this.serviceDate != null && !this.serviceDate.isEmpty(); + } + + /** + * @param value {@link #serviceDate} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getServiceDate" gives direct access to the value + */ + public ItemsComponent setServiceDateElement(DateType value) { + this.serviceDate = value; + return this; + } + + /** + * @return The date when the enclosed suite of services were performed or completed. + */ + public Date getServiceDate() { + return this.serviceDate == null ? null : this.serviceDate.getValue(); + } + + /** + * @param value The date when the enclosed suite of services were performed or completed. + */ + public ItemsComponent setServiceDate(Date value) { + if (value == null) + this.serviceDate = null; + else { + if (this.serviceDate == null) + this.serviceDate = new DateType(); + this.serviceDate.setValue(value); + } + return this; + } + + /** + * @return {@link #quantity} (The number of repetitions of a service or product.) + */ + public Quantity getQuantity() { + if (this.quantity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.quantity"); + else if (Configuration.doAutoCreate()) + this.quantity = new Quantity(); // cc + return this.quantity; + } + + public boolean hasQuantity() { + return this.quantity != null && !this.quantity.isEmpty(); + } + + /** + * @param value {@link #quantity} (The number of repetitions of a service or product.) + */ + public ItemsComponent setQuantity(Quantity value) { + this.quantity = value; + return this; + } + + /** + * @return {@link #unitPrice} (If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.) + */ + public Money getUnitPrice() { + if (this.unitPrice == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.unitPrice"); + else if (Configuration.doAutoCreate()) + this.unitPrice = new Money(); // cc + return this.unitPrice; + } + + public boolean hasUnitPrice() { + return this.unitPrice != null && !this.unitPrice.isEmpty(); + } + + /** + * @param value {@link #unitPrice} (If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.) + */ + public ItemsComponent setUnitPrice(Money value) { + this.unitPrice = value; + return this; + } + + /** + * @return {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value + */ + public DecimalType getFactorElement() { + if (this.factor == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.factor"); + else if (Configuration.doAutoCreate()) + this.factor = new DecimalType(); // bb + return this.factor; + } + + public boolean hasFactorElement() { + return this.factor != null && !this.factor.isEmpty(); + } + + public boolean hasFactor() { + return this.factor != null && !this.factor.isEmpty(); + } + + /** + * @param value {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value + */ + public ItemsComponent setFactorElement(DecimalType value) { + this.factor = value; + return this; + } + + /** + * @return A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + public BigDecimal getFactor() { + return this.factor == null ? null : this.factor.getValue(); + } + + /** + * @param value A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + public ItemsComponent setFactor(BigDecimal value) { + if (value == null) + this.factor = null; + else { + if (this.factor == null) + this.factor = new DecimalType(); + this.factor.setValue(value); + } + return this; + } + + /** + * @return {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value + */ + public DecimalType getPointsElement() { + if (this.points == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.points"); + else if (Configuration.doAutoCreate()) + this.points = new DecimalType(); // bb + return this.points; + } + + public boolean hasPointsElement() { + return this.points != null && !this.points.isEmpty(); + } + + public boolean hasPoints() { + return this.points != null && !this.points.isEmpty(); + } + + /** + * @param value {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value + */ + public ItemsComponent setPointsElement(DecimalType value) { + this.points = value; + return this; + } + + /** + * @return An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + public BigDecimal getPoints() { + return this.points == null ? null : this.points.getValue(); + } + + /** + * @param value An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + public ItemsComponent setPoints(BigDecimal value) { + if (value == null) + this.points = null; + else { + if (this.points == null) + this.points = new DecimalType(); + this.points.setValue(value); + } + return this; + } + + /** + * @return {@link #net} (The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) + */ + public Money getNet() { + if (this.net == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.net"); + else if (Configuration.doAutoCreate()) + this.net = new Money(); // cc + return this.net; + } + + public boolean hasNet() { + return this.net != null && !this.net.isEmpty(); + } + + /** + * @param value {@link #net} (The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) + */ + public ItemsComponent setNet(Money value) { + this.net = value; + return this; + } + + /** + * @return {@link #udi} (List of Unique Device Identifiers associated with this line item.) + */ + public Coding getUdi() { + if (this.udi == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.udi"); + else if (Configuration.doAutoCreate()) + this.udi = new Coding(); // cc + return this.udi; + } + + public boolean hasUdi() { + return this.udi != null && !this.udi.isEmpty(); + } + + /** + * @param value {@link #udi} (List of Unique Device Identifiers associated with this line item.) + */ + public ItemsComponent setUdi(Coding value) { + this.udi = value; + return this; + } + + /** + * @return {@link #bodySite} (Physical service site on the patient (limb, tooth, etc).) + */ + public Coding getBodySite() { + if (this.bodySite == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ItemsComponent.bodySite"); + else if (Configuration.doAutoCreate()) + this.bodySite = new Coding(); // cc + return this.bodySite; + } + + public boolean hasBodySite() { + return this.bodySite != null && !this.bodySite.isEmpty(); + } + + /** + * @param value {@link #bodySite} (Physical service site on the patient (limb, tooth, etc).) + */ + public ItemsComponent setBodySite(Coding value) { + this.bodySite = value; + return this; + } + + /** + * @return {@link #subsite} (A region or surface of the site, eg. limb region or tooth surface(s).) + */ + public List getSubsite() { + if (this.subsite == null) + this.subsite = new ArrayList(); + return this.subsite; + } + + public boolean hasSubsite() { + if (this.subsite == null) + return false; + for (Coding item : this.subsite) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #subsite} (A region or surface of the site, eg. limb region or tooth surface(s).) + */ + // syntactic sugar + public Coding addSubsite() { //3 + Coding t = new Coding(); + if (this.subsite == null) + this.subsite = new ArrayList(); + this.subsite.add(t); + return t; + } + + /** + * @return {@link #modifier} (Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.) + */ + public List getModifier() { + if (this.modifier == null) + this.modifier = new ArrayList(); + return this.modifier; + } + + public boolean hasModifier() { + if (this.modifier == null) + return false; + for (Coding item : this.modifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #modifier} (Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.) + */ + // syntactic sugar + public Coding addModifier() { //3 + Coding t = new Coding(); + if (this.modifier == null) + this.modifier = new ArrayList(); + this.modifier.add(t); + return t; + } + + /** + * @return {@link #detail} (Second tier of goods and services.) + */ + public List getDetail() { + if (this.detail == null) + this.detail = new ArrayList(); + return this.detail; + } + + public boolean hasDetail() { + if (this.detail == null) + return false; + for (DetailComponent item : this.detail) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #detail} (Second tier of goods and services.) + */ + // syntactic sugar + public DetailComponent addDetail() { //3 + DetailComponent t = new DetailComponent(); + if (this.detail == null) + this.detail = new ArrayList(); + this.detail.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("sequence", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequence)); + childrenList.add(new Property("type", "Coding", "The type of product or service.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("provider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, provider)); + childrenList.add(new Property("diagnosisLinkId", "integer", "Diagnosis applicable for this service or product line.", 0, java.lang.Integer.MAX_VALUE, diagnosisLinkId)); + childrenList.add(new Property("service", "Coding", "If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied.", 0, java.lang.Integer.MAX_VALUE, service)); + childrenList.add(new Property("serviceDate", "date", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, serviceDate)); + childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity)); + childrenList.add(new Property("unitPrice", "Money", "If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.", 0, java.lang.Integer.MAX_VALUE, unitPrice)); + childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor)); + childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points)); + childrenList.add(new Property("net", "Money", "The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 0, java.lang.Integer.MAX_VALUE, net)); + childrenList.add(new Property("udi", "Coding", "List of Unique Device Identifiers associated with this line item.", 0, java.lang.Integer.MAX_VALUE, udi)); + childrenList.add(new Property("bodySite", "Coding", "Physical service site on the patient (limb, tooth, etc).", 0, java.lang.Integer.MAX_VALUE, bodySite)); + childrenList.add(new Property("subsite", "Coding", "A region or surface of the site, eg. limb region or tooth surface(s).", 0, java.lang.Integer.MAX_VALUE, subsite)); + childrenList.add(new Property("modifier", "Coding", "Item typification or modifiers codes, eg for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.", 0, java.lang.Integer.MAX_VALUE, modifier)); + childrenList.add(new Property("detail", "", "Second tier of goods and services.", 0, java.lang.Integer.MAX_VALUE, detail)); + } + + public ItemsComponent copy() { + ItemsComponent dst = new ItemsComponent(); + copyValues(dst); + dst.sequence = sequence == null ? null : sequence.copy(); + dst.type = type == null ? null : type.copy(); + dst.provider = provider == null ? null : provider.copy(); + if (diagnosisLinkId != null) { + dst.diagnosisLinkId = new ArrayList(); + for (IntegerType i : diagnosisLinkId) + dst.diagnosisLinkId.add(i.copy()); + }; + dst.service = service == null ? null : service.copy(); + dst.serviceDate = serviceDate == null ? null : serviceDate.copy(); + dst.quantity = quantity == null ? null : quantity.copy(); + dst.unitPrice = unitPrice == null ? null : unitPrice.copy(); + dst.factor = factor == null ? null : factor.copy(); + dst.points = points == null ? null : points.copy(); + dst.net = net == null ? null : net.copy(); + dst.udi = udi == null ? null : udi.copy(); + dst.bodySite = bodySite == null ? null : bodySite.copy(); + if (subsite != null) { + dst.subsite = new ArrayList(); + for (Coding i : subsite) + dst.subsite.add(i.copy()); + }; + if (modifier != null) { + dst.modifier = new ArrayList(); + for (Coding i : modifier) + dst.modifier.add(i.copy()); + }; + if (detail != null) { + dst.detail = new ArrayList(); + for (DetailComponent i : detail) + dst.detail.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ItemsComponent)) + return false; + ItemsComponent o = (ItemsComponent) other; + return compareDeep(sequence, o.sequence, true) && compareDeep(type, o.type, true) && compareDeep(provider, o.provider, true) + && compareDeep(diagnosisLinkId, o.diagnosisLinkId, true) && compareDeep(service, o.service, true) + && compareDeep(serviceDate, o.serviceDate, true) && compareDeep(quantity, o.quantity, true) && compareDeep(unitPrice, o.unitPrice, true) + && compareDeep(factor, o.factor, true) && compareDeep(points, o.points, true) && compareDeep(net, o.net, true) + && compareDeep(udi, o.udi, true) && compareDeep(bodySite, o.bodySite, true) && compareDeep(subsite, o.subsite, true) + && compareDeep(modifier, o.modifier, true) && compareDeep(detail, o.detail, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ItemsComponent)) + return false; + ItemsComponent o = (ItemsComponent) other; + return compareValues(sequence, o.sequence, true) && compareValues(diagnosisLinkId, o.diagnosisLinkId, true) + && compareValues(serviceDate, o.serviceDate, true) && compareValues(factor, o.factor, true) && compareValues(points, o.points, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (type == null || type.isEmpty()) + && (provider == null || provider.isEmpty()) && (diagnosisLinkId == null || diagnosisLinkId.isEmpty()) + && (service == null || service.isEmpty()) && (serviceDate == null || serviceDate.isEmpty()) + && (quantity == null || quantity.isEmpty()) && (unitPrice == null || unitPrice.isEmpty()) + && (factor == null || factor.isEmpty()) && (points == null || points.isEmpty()) && (net == null || net.isEmpty()) + && (udi == null || udi.isEmpty()) && (bodySite == null || bodySite.isEmpty()) && (subsite == null || subsite.isEmpty()) + && (modifier == null || modifier.isEmpty()) && (detail == null || detail.isEmpty()); + } + + } + + @Block() + public static class DetailComponent extends BackboneElement { + /** + * A service line number. + */ + @Child(name="sequence", type={IntegerType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Service instance", formalDefinition="A service line number." ) + protected IntegerType sequence; + + /** + * The type of product or service. + */ + @Child(name="type", type={Coding.class}, order=2, min=1, max=1) + @Description(shortDefinition="Group or type of product or service", formalDefinition="The type of product or service." ) + protected Coding type; + + /** + * If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied. + */ + @Child(name="service", type={Coding.class}, order=3, min=1, max=1) + @Description(shortDefinition="Additional item codes", formalDefinition="If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied." ) + protected Coding service; + + /** + * The number of repetitions of a service or product. + */ + @Child(name="quantity", type={Quantity.class}, order=4, min=0, max=1) + @Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." ) + protected Quantity quantity; + + /** + * If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group. + */ + @Child(name="unitPrice", type={Money.class}, order=5, min=0, max=1) + @Description(shortDefinition="Fee, charge or cost per point", formalDefinition="If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group." ) + protected Money unitPrice; + + /** + * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + @Child(name="factor", type={DecimalType.class}, order=6, min=0, max=1) + @Description(shortDefinition="Price scaling factor", formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount." ) + protected DecimalType factor; + + /** + * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + @Child(name="points", type={DecimalType.class}, order=7, min=0, max=1) + @Description(shortDefinition="Difficulty scaling factor", formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point." ) + protected DecimalType points; + + /** + * The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. + */ + @Child(name="net", type={Money.class}, order=8, min=0, max=1) + @Description(shortDefinition="Total additional item cost", formalDefinition="The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." ) + protected Money net; + + /** + * List of Unique Device Identifiers associated with this line item. + */ + @Child(name="udi", type={Coding.class}, order=9, min=0, max=1) + @Description(shortDefinition="Unique Device Identifier", formalDefinition="List of Unique Device Identifiers associated with this line item." ) + protected Coding udi; + + /** + * Third tier of goods and services. + */ + @Child(name="subDetail", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Additional items", formalDefinition="Third tier of goods and services." ) + protected List subDetail; + + private static final long serialVersionUID = -342502025L; + + public DetailComponent() { + super(); + } + + public DetailComponent(IntegerType sequence, Coding type, Coding service) { + super(); + this.sequence = sequence; + this.type = type; + this.service = service; + } + + /** + * @return {@link #sequence} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value + */ + public IntegerType getSequenceElement() { + if (this.sequence == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DetailComponent.sequence"); + else if (Configuration.doAutoCreate()) + this.sequence = new IntegerType(); // bb + return this.sequence; + } + + public boolean hasSequenceElement() { + return this.sequence != null && !this.sequence.isEmpty(); + } + + public boolean hasSequence() { + return this.sequence != null && !this.sequence.isEmpty(); + } + + /** + * @param value {@link #sequence} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value + */ + public DetailComponent setSequenceElement(IntegerType value) { + this.sequence = value; + return this; + } + + /** + * @return A service line number. + */ + public int getSequence() { + return this.sequence == null ? 0 : this.sequence.getValue(); + } + + /** + * @param value A service line number. + */ + public DetailComponent setSequence(int value) { + if (this.sequence == null) + this.sequence = new IntegerType(); + this.sequence.setValue(value); + return this; + } + + /** + * @return {@link #type} (The type of product or service.) + */ + public Coding getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DetailComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new Coding(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The type of product or service.) + */ + public DetailComponent setType(Coding value) { + this.type = value; + return this; + } + + /** + * @return {@link #service} (If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied.) + */ + public Coding getService() { + if (this.service == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DetailComponent.service"); + else if (Configuration.doAutoCreate()) + this.service = new Coding(); // cc + return this.service; + } + + public boolean hasService() { + return this.service != null && !this.service.isEmpty(); + } + + /** + * @param value {@link #service} (If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied.) + */ + public DetailComponent setService(Coding value) { + this.service = value; + return this; + } + + /** + * @return {@link #quantity} (The number of repetitions of a service or product.) + */ + public Quantity getQuantity() { + if (this.quantity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DetailComponent.quantity"); + else if (Configuration.doAutoCreate()) + this.quantity = new Quantity(); // cc + return this.quantity; + } + + public boolean hasQuantity() { + return this.quantity != null && !this.quantity.isEmpty(); + } + + /** + * @param value {@link #quantity} (The number of repetitions of a service or product.) + */ + public DetailComponent setQuantity(Quantity value) { + this.quantity = value; + return this; + } + + /** + * @return {@link #unitPrice} (If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.) + */ + public Money getUnitPrice() { + if (this.unitPrice == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DetailComponent.unitPrice"); + else if (Configuration.doAutoCreate()) + this.unitPrice = new Money(); // cc + return this.unitPrice; + } + + public boolean hasUnitPrice() { + return this.unitPrice != null && !this.unitPrice.isEmpty(); + } + + /** + * @param value {@link #unitPrice} (If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.) + */ + public DetailComponent setUnitPrice(Money value) { + this.unitPrice = value; + return this; + } + + /** + * @return {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value + */ + public DecimalType getFactorElement() { + if (this.factor == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DetailComponent.factor"); + else if (Configuration.doAutoCreate()) + this.factor = new DecimalType(); // bb + return this.factor; + } + + public boolean hasFactorElement() { + return this.factor != null && !this.factor.isEmpty(); + } + + public boolean hasFactor() { + return this.factor != null && !this.factor.isEmpty(); + } + + /** + * @param value {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value + */ + public DetailComponent setFactorElement(DecimalType value) { + this.factor = value; + return this; + } + + /** + * @return A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + public BigDecimal getFactor() { + return this.factor == null ? null : this.factor.getValue(); + } + + /** + * @param value A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + public DetailComponent setFactor(BigDecimal value) { + if (value == null) + this.factor = null; + else { + if (this.factor == null) + this.factor = new DecimalType(); + this.factor.setValue(value); + } + return this; + } + + /** + * @return {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value + */ + public DecimalType getPointsElement() { + if (this.points == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DetailComponent.points"); + else if (Configuration.doAutoCreate()) + this.points = new DecimalType(); // bb + return this.points; + } + + public boolean hasPointsElement() { + return this.points != null && !this.points.isEmpty(); + } + + public boolean hasPoints() { + return this.points != null && !this.points.isEmpty(); + } + + /** + * @param value {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value + */ + public DetailComponent setPointsElement(DecimalType value) { + this.points = value; + return this; + } + + /** + * @return An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + public BigDecimal getPoints() { + return this.points == null ? null : this.points.getValue(); + } + + /** + * @param value An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + public DetailComponent setPoints(BigDecimal value) { + if (value == null) + this.points = null; + else { + if (this.points == null) + this.points = new DecimalType(); + this.points.setValue(value); + } + return this; + } + + /** + * @return {@link #net} (The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) + */ + public Money getNet() { + if (this.net == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DetailComponent.net"); + else if (Configuration.doAutoCreate()) + this.net = new Money(); // cc + return this.net; + } + + public boolean hasNet() { + return this.net != null && !this.net.isEmpty(); + } + + /** + * @param value {@link #net} (The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) + */ + public DetailComponent setNet(Money value) { + this.net = value; + return this; + } + + /** + * @return {@link #udi} (List of Unique Device Identifiers associated with this line item.) + */ + public Coding getUdi() { + if (this.udi == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create DetailComponent.udi"); + else if (Configuration.doAutoCreate()) + this.udi = new Coding(); // cc + return this.udi; + } + + public boolean hasUdi() { + return this.udi != null && !this.udi.isEmpty(); + } + + /** + * @param value {@link #udi} (List of Unique Device Identifiers associated with this line item.) + */ + public DetailComponent setUdi(Coding value) { + this.udi = value; + return this; + } + + /** + * @return {@link #subDetail} (Third tier of goods and services.) + */ + public List getSubDetail() { + if (this.subDetail == null) + this.subDetail = new ArrayList(); + return this.subDetail; + } + + public boolean hasSubDetail() { + if (this.subDetail == null) + return false; + for (SubDetailComponent item : this.subDetail) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #subDetail} (Third tier of goods and services.) + */ + // syntactic sugar + public SubDetailComponent addSubDetail() { //3 + SubDetailComponent t = new SubDetailComponent(); + if (this.subDetail == null) + this.subDetail = new ArrayList(); + this.subDetail.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("sequence", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequence)); + childrenList.add(new Property("type", "Coding", "The type of product or service.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("service", "Coding", "If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Institutional Service or Product supplied.", 0, java.lang.Integer.MAX_VALUE, service)); + childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity)); + childrenList.add(new Property("unitPrice", "Money", "If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.", 0, java.lang.Integer.MAX_VALUE, unitPrice)); + childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor)); + childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points)); + childrenList.add(new Property("net", "Money", "The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 0, java.lang.Integer.MAX_VALUE, net)); + childrenList.add(new Property("udi", "Coding", "List of Unique Device Identifiers associated with this line item.", 0, java.lang.Integer.MAX_VALUE, udi)); + childrenList.add(new Property("subDetail", "", "Third tier of goods and services.", 0, java.lang.Integer.MAX_VALUE, subDetail)); + } + + public DetailComponent copy() { + DetailComponent dst = new DetailComponent(); + copyValues(dst); + dst.sequence = sequence == null ? null : sequence.copy(); + dst.type = type == null ? null : type.copy(); + dst.service = service == null ? null : service.copy(); + dst.quantity = quantity == null ? null : quantity.copy(); + dst.unitPrice = unitPrice == null ? null : unitPrice.copy(); + dst.factor = factor == null ? null : factor.copy(); + dst.points = points == null ? null : points.copy(); + dst.net = net == null ? null : net.copy(); + dst.udi = udi == null ? null : udi.copy(); + if (subDetail != null) { + dst.subDetail = new ArrayList(); + for (SubDetailComponent i : subDetail) + dst.subDetail.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof DetailComponent)) + return false; + DetailComponent o = (DetailComponent) other; + return compareDeep(sequence, o.sequence, true) && compareDeep(type, o.type, true) && compareDeep(service, o.service, true) + && compareDeep(quantity, o.quantity, true) && compareDeep(unitPrice, o.unitPrice, true) && compareDeep(factor, o.factor, true) + && compareDeep(points, o.points, true) && compareDeep(net, o.net, true) && compareDeep(udi, o.udi, true) + && compareDeep(subDetail, o.subDetail, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof DetailComponent)) + return false; + DetailComponent o = (DetailComponent) other; + return compareValues(sequence, o.sequence, true) && compareValues(factor, o.factor, true) && compareValues(points, o.points, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (type == null || type.isEmpty()) + && (service == null || service.isEmpty()) && (quantity == null || quantity.isEmpty()) && (unitPrice == null || unitPrice.isEmpty()) + && (factor == null || factor.isEmpty()) && (points == null || points.isEmpty()) && (net == null || net.isEmpty()) + && (udi == null || udi.isEmpty()) && (subDetail == null || subDetail.isEmpty()); + } + + } + + @Block() + public static class SubDetailComponent extends BackboneElement { + /** + * A service line number. + */ + @Child(name="sequence", type={IntegerType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Service instance", formalDefinition="A service line number." ) + protected IntegerType sequence; + + /** + * The type of product or service. + */ + @Child(name="type", type={Coding.class}, order=2, min=1, max=1) + @Description(shortDefinition="Type of product or service", formalDefinition="The type of product or service." ) + protected Coding type; + + /** + * The fee for an additional service or product or charge. + */ + @Child(name="service", type={Coding.class}, order=3, min=1, max=1) + @Description(shortDefinition="Additional item codes", formalDefinition="The fee for an additional service or product or charge." ) + protected Coding service; + + /** + * The number of repetitions of a service or product. + */ + @Child(name="quantity", type={Quantity.class}, order=4, min=0, max=1) + @Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." ) + protected Quantity quantity; + + /** + * The fee for an additional service or product or charge. + */ + @Child(name="unitPrice", type={Money.class}, order=5, min=0, max=1) + @Description(shortDefinition="Fee, charge or cost per point", formalDefinition="The fee for an additional service or product or charge." ) + protected Money unitPrice; + + /** + * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + @Child(name="factor", type={DecimalType.class}, order=6, min=0, max=1) + @Description(shortDefinition="Price scaling factor", formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount." ) + protected DecimalType factor; + + /** + * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + @Child(name="points", type={DecimalType.class}, order=7, min=0, max=1) + @Description(shortDefinition="Difficulty scaling factor", formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point." ) + protected DecimalType points; + + /** + * The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied. + */ + @Child(name="net", type={Money.class}, order=8, min=0, max=1) + @Description(shortDefinition="Net additional item cost", formalDefinition="The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." ) + protected Money net; + + /** + * List of Unique Device Identifiers associated with this line item. + */ + @Child(name="udi", type={Coding.class}, order=9, min=0, max=1) + @Description(shortDefinition="Unique Device Identifier", formalDefinition="List of Unique Device Identifiers associated with this line item." ) + protected Coding udi; + + private static final long serialVersionUID = 122809194L; + + public SubDetailComponent() { + super(); + } + + public SubDetailComponent(IntegerType sequence, Coding type, Coding service) { + super(); + this.sequence = sequence; + this.type = type; + this.service = service; + } + + /** + * @return {@link #sequence} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value + */ + public IntegerType getSequenceElement() { + if (this.sequence == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SubDetailComponent.sequence"); + else if (Configuration.doAutoCreate()) + this.sequence = new IntegerType(); // bb + return this.sequence; + } + + public boolean hasSequenceElement() { + return this.sequence != null && !this.sequence.isEmpty(); + } + + public boolean hasSequence() { + return this.sequence != null && !this.sequence.isEmpty(); + } + + /** + * @param value {@link #sequence} (A service line number.). This is the underlying object with id, value and extensions. The accessor "getSequence" gives direct access to the value + */ + public SubDetailComponent setSequenceElement(IntegerType value) { + this.sequence = value; + return this; + } + + /** + * @return A service line number. + */ + public int getSequence() { + return this.sequence == null ? 0 : this.sequence.getValue(); + } + + /** + * @param value A service line number. + */ + public SubDetailComponent setSequence(int value) { + if (this.sequence == null) + this.sequence = new IntegerType(); + this.sequence.setValue(value); + return this; + } + + /** + * @return {@link #type} (The type of product or service.) + */ + public Coding getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SubDetailComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new Coding(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (The type of product or service.) + */ + public SubDetailComponent setType(Coding value) { + this.type = value; + return this; + } + + /** + * @return {@link #service} (The fee for an additional service or product or charge.) + */ + public Coding getService() { + if (this.service == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SubDetailComponent.service"); + else if (Configuration.doAutoCreate()) + this.service = new Coding(); // cc + return this.service; + } + + public boolean hasService() { + return this.service != null && !this.service.isEmpty(); + } + + /** + * @param value {@link #service} (The fee for an additional service or product or charge.) + */ + public SubDetailComponent setService(Coding value) { + this.service = value; + return this; + } + + /** + * @return {@link #quantity} (The number of repetitions of a service or product.) + */ + public Quantity getQuantity() { + if (this.quantity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SubDetailComponent.quantity"); + else if (Configuration.doAutoCreate()) + this.quantity = new Quantity(); // cc + return this.quantity; + } + + public boolean hasQuantity() { + return this.quantity != null && !this.quantity.isEmpty(); + } + + /** + * @param value {@link #quantity} (The number of repetitions of a service or product.) + */ + public SubDetailComponent setQuantity(Quantity value) { + this.quantity = value; + return this; + } + + /** + * @return {@link #unitPrice} (The fee for an additional service or product or charge.) + */ + public Money getUnitPrice() { + if (this.unitPrice == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SubDetailComponent.unitPrice"); + else if (Configuration.doAutoCreate()) + this.unitPrice = new Money(); // cc + return this.unitPrice; + } + + public boolean hasUnitPrice() { + return this.unitPrice != null && !this.unitPrice.isEmpty(); + } + + /** + * @param value {@link #unitPrice} (The fee for an additional service or product or charge.) + */ + public SubDetailComponent setUnitPrice(Money value) { + this.unitPrice = value; + return this; + } + + /** + * @return {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value + */ + public DecimalType getFactorElement() { + if (this.factor == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SubDetailComponent.factor"); + else if (Configuration.doAutoCreate()) + this.factor = new DecimalType(); // bb + return this.factor; + } + + public boolean hasFactorElement() { + return this.factor != null && !this.factor.isEmpty(); + } + + public boolean hasFactor() { + return this.factor != null && !this.factor.isEmpty(); + } + + /** + * @param value {@link #factor} (A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.). This is the underlying object with id, value and extensions. The accessor "getFactor" gives direct access to the value + */ + public SubDetailComponent setFactorElement(DecimalType value) { + this.factor = value; + return this; + } + + /** + * @return A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + public BigDecimal getFactor() { + return this.factor == null ? null : this.factor.getValue(); + } + + /** + * @param value A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount. + */ + public SubDetailComponent setFactor(BigDecimal value) { + if (value == null) + this.factor = null; + else { + if (this.factor == null) + this.factor = new DecimalType(); + this.factor.setValue(value); + } + return this; + } + + /** + * @return {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value + */ + public DecimalType getPointsElement() { + if (this.points == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SubDetailComponent.points"); + else if (Configuration.doAutoCreate()) + this.points = new DecimalType(); // bb + return this.points; + } + + public boolean hasPointsElement() { + return this.points != null && !this.points.isEmpty(); + } + + public boolean hasPoints() { + return this.points != null && !this.points.isEmpty(); + } + + /** + * @param value {@link #points} (An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.). This is the underlying object with id, value and extensions. The accessor "getPoints" gives direct access to the value + */ + public SubDetailComponent setPointsElement(DecimalType value) { + this.points = value; + return this; + } + + /** + * @return An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + public BigDecimal getPoints() { + return this.points == null ? null : this.points.getValue(); + } + + /** + * @param value An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point. + */ + public SubDetailComponent setPoints(BigDecimal value) { + if (value == null) + this.points = null; + else { + if (this.points == null) + this.points = new DecimalType(); + this.points.setValue(value); + } + return this; + } + + /** + * @return {@link #net} (The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) + */ + public Money getNet() { + if (this.net == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SubDetailComponent.net"); + else if (Configuration.doAutoCreate()) + this.net = new Money(); // cc + return this.net; + } + + public boolean hasNet() { + return this.net != null && !this.net.isEmpty(); + } + + /** + * @param value {@link #net} (The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.) + */ + public SubDetailComponent setNet(Money value) { + this.net = value; + return this; + } + + /** + * @return {@link #udi} (List of Unique Device Identifiers associated with this line item.) + */ + public Coding getUdi() { + if (this.udi == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create SubDetailComponent.udi"); + else if (Configuration.doAutoCreate()) + this.udi = new Coding(); // cc + return this.udi; + } + + public boolean hasUdi() { + return this.udi != null && !this.udi.isEmpty(); + } + + /** + * @param value {@link #udi} (List of Unique Device Identifiers associated with this line item.) + */ + public SubDetailComponent setUdi(Coding value) { + this.udi = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("sequence", "integer", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequence)); + childrenList.add(new Property("type", "Coding", "The type of product or service.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("service", "Coding", "The fee for an additional service or product or charge.", 0, java.lang.Integer.MAX_VALUE, service)); + childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity)); + childrenList.add(new Property("unitPrice", "Money", "The fee for an additional service or product or charge.", 0, java.lang.Integer.MAX_VALUE, unitPrice)); + childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor)); + childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points)); + childrenList.add(new Property("net", "Money", "The quantity times the unit price for an additional service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.", 0, java.lang.Integer.MAX_VALUE, net)); + childrenList.add(new Property("udi", "Coding", "List of Unique Device Identifiers associated with this line item.", 0, java.lang.Integer.MAX_VALUE, udi)); + } + + public SubDetailComponent copy() { + SubDetailComponent dst = new SubDetailComponent(); + copyValues(dst); + dst.sequence = sequence == null ? null : sequence.copy(); + dst.type = type == null ? null : type.copy(); + dst.service = service == null ? null : service.copy(); + dst.quantity = quantity == null ? null : quantity.copy(); + dst.unitPrice = unitPrice == null ? null : unitPrice.copy(); + dst.factor = factor == null ? null : factor.copy(); + dst.points = points == null ? null : points.copy(); + dst.net = net == null ? null : net.copy(); + dst.udi = udi == null ? null : udi.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof SubDetailComponent)) + return false; + SubDetailComponent o = (SubDetailComponent) other; + return compareDeep(sequence, o.sequence, true) && compareDeep(type, o.type, true) && compareDeep(service, o.service, true) + && compareDeep(quantity, o.quantity, true) && compareDeep(unitPrice, o.unitPrice, true) && compareDeep(factor, o.factor, true) + && compareDeep(points, o.points, true) && compareDeep(net, o.net, true) && compareDeep(udi, o.udi, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof SubDetailComponent)) + return false; + SubDetailComponent o = (SubDetailComponent) other; + return compareValues(sequence, o.sequence, true) && compareValues(factor, o.factor, true) && compareValues(points, o.points, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (sequence == null || sequence.isEmpty()) && (type == null || type.isEmpty()) + && (service == null || service.isEmpty()) && (quantity == null || quantity.isEmpty()) && (unitPrice == null || unitPrice.isEmpty()) + && (factor == null || factor.isEmpty()) && (points == null || points.isEmpty()) && (net == null || net.isEmpty()) + && (udi == null || udi.isEmpty()); + } + + } + + /** + * The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Claim number", formalDefinition="The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number." ) + protected List identifier; + + /** + * The version of the specification on which this instance relies. + */ + @Child(name="ruleset", type={Coding.class}, order=0, min=0, max=1) + @Description(shortDefinition="Current specification followed", formalDefinition="The version of the specification on which this instance relies." ) + protected Coding ruleset; + + /** + * The version of the specification from which the original instance was created. + */ + @Child(name="originalRuleset", type={Coding.class}, order=1, min=0, max=1) + @Description(shortDefinition="Original specification followed", formalDefinition="The version of the specification from which the original instance was created." ) + protected Coding originalRuleset; + + /** + * The date when the enclosed suite of services were performed or completed. + */ + @Child(name="created", type={DateTimeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="Creation date", formalDefinition="The date when the enclosed suite of services were performed or completed." ) + protected DateTimeType created; + + /** + * Insurer Identifier, typical BIN number (6 digit). + */ + @Child(name="target", type={Organization.class}, order=3, min=0, max=1) + @Description(shortDefinition="Insurer", formalDefinition="Insurer Identifier, typical BIN number (6 digit)." ) + protected Reference target; + + /** + * The actual object that is the target of the reference (Insurer Identifier, typical BIN number (6 digit).) + */ + protected Organization targetTarget; + + /** + * The provider which is responsible for the bill, claim pre-determination, pre-authorization. + */ + @Child(name="provider", type={Practitioner.class}, order=4, min=0, max=1) + @Description(shortDefinition="Responsible provider", formalDefinition="The provider which is responsible for the bill, claim pre-determination, pre-authorization." ) + protected Reference provider; + + /** + * The actual object that is the target of the reference (The provider which is responsible for the bill, claim pre-determination, pre-authorization.) + */ + protected Practitioner providerTarget; + + /** + * The organization which is responsible for the bill, claim pre-determination, pre-authorization. + */ + @Child(name="organization", type={Organization.class}, order=5, min=0, max=1) + @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the bill, claim pre-determination, pre-authorization." ) + protected Reference organization; + + /** + * The actual object that is the target of the reference (The organization which is responsible for the bill, claim pre-determination, pre-authorization.) + */ + protected Organization organizationTarget; + + /** + * Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination). + */ + @Child(name="use", type={CodeType.class}, order=6, min=0, max=1) + @Description(shortDefinition="complete | proposed | exploratory | other", formalDefinition="Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination)." ) + protected Enumeration use; + + /** + * Immediate (STAT), best effort (NORMAL), deferred (DEFER). + */ + @Child(name="priority", type={Coding.class}, order=7, min=0, max=1) + @Description(shortDefinition="Desired processing priority", formalDefinition="Immediate (STAT), best effort (NORMAL), deferred (DEFER)." ) + protected Coding priority; + + /** + * In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested. + */ + @Child(name="fundsReserve", type={Coding.class}, order=8, min=0, max=1) + @Description(shortDefinition="Funds requested to be reserved", formalDefinition="In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested." ) + protected Coding fundsReserve; + + /** + * Person who created the invoice/claim/pre-determination or pre-authorization. + */ + @Child(name="enterer", type={Practitioner.class}, order=9, min=0, max=1) + @Description(shortDefinition="Author", formalDefinition="Person who created the invoice/claim/pre-determination or pre-authorization." ) + protected Reference enterer; + + /** + * The actual object that is the target of the reference (Person who created the invoice/claim/pre-determination or pre-authorization.) + */ + protected Practitioner entererTarget; + + /** + * Facility where the services were provided. + */ + @Child(name="facility", type={Location.class}, order=10, min=0, max=1) + @Description(shortDefinition="Servicing Facility", formalDefinition="Facility where the services were provided." ) + protected Reference facility; + + /** + * The actual object that is the target of the reference (Facility where the services were provided.) + */ + protected Location facilityTarget; + + /** + * The party to be reimbursed for the services. + */ + @Child(name="payee", type={}, order=11, min=0, max=1) + @Description(shortDefinition="Payee", formalDefinition="The party to be reimbursed for the services." ) + protected PayeeComponent payee; + + /** + * The referral resource which lists the date, practitioner, reason and other supporting information. + */ + @Child(name="referral", type={ReferralRequest.class}, order=12, min=0, max=1) + @Description(shortDefinition="Treatment Referral", formalDefinition="The referral resource which lists the date, practitioner, reason and other supporting information." ) + protected Reference referral; + + /** + * The actual object that is the target of the reference (The referral resource which lists the date, practitioner, reason and other supporting information.) + */ + protected ReferralRequest referralTarget; + + /** + * Ordered list of patient diagnosis for which care is sought. + */ + @Child(name="diagnosis", type={}, order=13, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Diagnosis", formalDefinition="Ordered list of patient diagnosis for which care is sought." ) + protected List diagnosis; + + /** + * List of patient conditions for which care is sought. + */ + @Child(name="condition", type={Coding.class}, order=14, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="List of presenting Conditions", formalDefinition="List of patient conditions for which care is sought." ) + protected List condition; + + /** + * Patient Resource. + */ + @Child(name="patient", type={Patient.class}, order=15, min=1, max=1) + @Description(shortDefinition="The subject of the Products and Services", formalDefinition="Patient Resource." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (Patient Resource.) + */ + protected Patient patientTarget; + + /** + * Financial instrument by which payment information for health care. + */ + @Child(name="coverage", type={}, order=16, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Insurance or medical plan", formalDefinition="Financial instrument by which payment information for health care." ) + protected List coverage; + + /** + * Factors which may influence the applicability of coverage. + */ + @Child(name="exception", type={Coding.class}, order=17, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Eligibility exceptions", formalDefinition="Factors which may influence the applicability of coverage." ) + protected List exception; + + /** + * Name of school for over-aged dependants. + */ + @Child(name="school", type={StringType.class}, order=18, min=0, max=1) + @Description(shortDefinition="Name of School", formalDefinition="Name of school for over-aged dependants." ) + protected StringType school; + + /** + * Date of an accident which these services are addressing. + */ + @Child(name="accident", type={DateType.class}, order=19, min=0, max=1) + @Description(shortDefinition="Accident Date", formalDefinition="Date of an accident which these services are addressing." ) + protected DateType accident; + + /** + * Type of accident: work, auto, etc. + */ + @Child(name="accidentType", type={Coding.class}, order=20, min=0, max=1) + @Description(shortDefinition="Accident Type", formalDefinition="Type of accident: work, auto, etc." ) + protected Coding accidentType; + + /** + * A list of intervention and exception codes which may influence the adjudication of the claim. + */ + @Child(name="interventionException", type={Coding.class}, order=21, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Intervention and exception code (Pharma)", formalDefinition="A list of intervention and exception codes which may influence the adjudication of the claim." ) + protected List interventionException; + + /** + * First tier of goods and services. + */ + @Child(name="item", type={}, order=22, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Goods and Services", formalDefinition="First tier of goods and services." ) + protected List item; + + /** + * Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission. + */ + @Child(name="additionalMaterials", type={Coding.class}, order=23, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Additional materials, documents, etc.", formalDefinition="Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission." ) + protected List additionalMaterials; + + private static final long serialVersionUID = 1113876752L; + + public InstitutionalClaim() { + super(); + } + + public InstitutionalClaim(Reference patient) { + super(); + this.patient = patient; + } + + /** + * @return {@link #identifier} (The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #ruleset} (The version of the specification on which this instance relies.) + */ + public Coding getRuleset() { + if (this.ruleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.ruleset"); + else if (Configuration.doAutoCreate()) + this.ruleset = new Coding(); // cc + return this.ruleset; + } + + public boolean hasRuleset() { + return this.ruleset != null && !this.ruleset.isEmpty(); + } + + /** + * @param value {@link #ruleset} (The version of the specification on which this instance relies.) + */ + public InstitutionalClaim setRuleset(Coding value) { + this.ruleset = value; + return this; + } + + /** + * @return {@link #originalRuleset} (The version of the specification from which the original instance was created.) + */ + public Coding getOriginalRuleset() { + if (this.originalRuleset == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.originalRuleset"); + else if (Configuration.doAutoCreate()) + this.originalRuleset = new Coding(); // cc + return this.originalRuleset; + } + + public boolean hasOriginalRuleset() { + return this.originalRuleset != null && !this.originalRuleset.isEmpty(); + } + + /** + * @param value {@link #originalRuleset} (The version of the specification from which the original instance was created.) + */ + public InstitutionalClaim setOriginalRuleset(Coding value) { + this.originalRuleset = value; + return this; + } + + /** + * @return {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DateTimeType getCreatedElement() { + if (this.created == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.created"); + else if (Configuration.doAutoCreate()) + this.created = new DateTimeType(); // bb + return this.created; + } + + public boolean hasCreatedElement() { + return this.created != null && !this.created.isEmpty(); + } + + public boolean hasCreated() { + return this.created != null && !this.created.isEmpty(); + } + + /** + * @param value {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public InstitutionalClaim setCreatedElement(DateTimeType value) { + this.created = value; + return this; + } + + /** + * @return The date when the enclosed suite of services were performed or completed. + */ + public Date getCreated() { + return this.created == null ? null : this.created.getValue(); + } + + /** + * @param value The date when the enclosed suite of services were performed or completed. + */ + public InstitutionalClaim setCreated(Date value) { + if (value == null) + this.created = null; + else { + if (this.created == null) + this.created = new DateTimeType(); + this.created.setValue(value); + } + return this; + } + + /** + * @return {@link #target} (Insurer Identifier, typical BIN number (6 digit).) + */ + public Reference getTarget() { + if (this.target == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.target"); + else if (Configuration.doAutoCreate()) + this.target = new Reference(); // cc + return this.target; + } + + public boolean hasTarget() { + return this.target != null && !this.target.isEmpty(); + } + + /** + * @param value {@link #target} (Insurer Identifier, typical BIN number (6 digit).) + */ + public InstitutionalClaim setTarget(Reference value) { + this.target = value; + return this; + } + + /** + * @return {@link #target} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Insurer Identifier, typical BIN number (6 digit).) + */ + public Organization getTargetTarget() { + if (this.targetTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.target"); + else if (Configuration.doAutoCreate()) + this.targetTarget = new Organization(); // aa + return this.targetTarget; + } + + /** + * @param value {@link #target} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Insurer Identifier, typical BIN number (6 digit).) + */ + public InstitutionalClaim setTargetTarget(Organization value) { + this.targetTarget = value; + return this; + } + + /** + * @return {@link #provider} (The provider which is responsible for the bill, claim pre-determination, pre-authorization.) + */ + public Reference getProvider() { + if (this.provider == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.provider"); + else if (Configuration.doAutoCreate()) + this.provider = new Reference(); // cc + return this.provider; + } + + public boolean hasProvider() { + return this.provider != null && !this.provider.isEmpty(); + } + + /** + * @param value {@link #provider} (The provider which is responsible for the bill, claim pre-determination, pre-authorization.) + */ + public InstitutionalClaim setProvider(Reference value) { + this.provider = value; + return this; + } + + /** + * @return {@link #provider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The provider which is responsible for the bill, claim pre-determination, pre-authorization.) + */ + public Practitioner getProviderTarget() { + if (this.providerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.provider"); + else if (Configuration.doAutoCreate()) + this.providerTarget = new Practitioner(); // aa + return this.providerTarget; + } + + /** + * @param value {@link #provider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The provider which is responsible for the bill, claim pre-determination, pre-authorization.) + */ + public InstitutionalClaim setProviderTarget(Practitioner value) { + this.providerTarget = value; + return this; + } + + /** + * @return {@link #organization} (The organization which is responsible for the bill, claim pre-determination, pre-authorization.) + */ + public Reference getOrganization() { + if (this.organization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.organization"); + else if (Configuration.doAutoCreate()) + this.organization = new Reference(); // cc + return this.organization; + } + + public boolean hasOrganization() { + return this.organization != null && !this.organization.isEmpty(); + } + + /** + * @param value {@link #organization} (The organization which is responsible for the bill, claim pre-determination, pre-authorization.) + */ + public InstitutionalClaim setOrganization(Reference value) { + this.organization = value; + return this; + } + + /** + * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the bill, claim pre-determination, pre-authorization.) + */ + public Organization getOrganizationTarget() { + if (this.organizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.organization"); + else if (Configuration.doAutoCreate()) + this.organizationTarget = new Organization(); // aa + return this.organizationTarget; + } + + /** + * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the bill, claim pre-determination, pre-authorization.) + */ + public InstitutionalClaim setOrganizationTarget(Organization value) { + this.organizationTarget = value; + return this; + } + + /** + * @return {@link #use} (Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination).). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value + */ + public Enumeration getUseElement() { + if (this.use == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.use"); + else if (Configuration.doAutoCreate()) + this.use = new Enumeration(new UseLinkEnumFactory()); // bb + return this.use; + } + + public boolean hasUseElement() { + return this.use != null && !this.use.isEmpty(); + } + + public boolean hasUse() { + return this.use != null && !this.use.isEmpty(); + } + + /** + * @param value {@link #use} (Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination).). This is the underlying object with id, value and extensions. The accessor "getUse" gives direct access to the value + */ + public InstitutionalClaim setUseElement(Enumeration value) { + this.use = value; + return this; + } + + /** + * @return Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination). + */ + public UseLink getUse() { + return this.use == null ? null : this.use.getValue(); + } + + /** + * @param value Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination). + */ + public InstitutionalClaim setUse(UseLink value) { + if (value == null) + this.use = null; + else { + if (this.use == null) + this.use = new Enumeration(new UseLinkEnumFactory()); + this.use.setValue(value); + } + return this; + } + + /** + * @return {@link #priority} (Immediate (STAT), best effort (NORMAL), deferred (DEFER).) + */ + public Coding getPriority() { + if (this.priority == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.priority"); + else if (Configuration.doAutoCreate()) + this.priority = new Coding(); // cc + return this.priority; + } + + public boolean hasPriority() { + return this.priority != null && !this.priority.isEmpty(); + } + + /** + * @param value {@link #priority} (Immediate (STAT), best effort (NORMAL), deferred (DEFER).) + */ + public InstitutionalClaim setPriority(Coding value) { + this.priority = value; + return this; + } + + /** + * @return {@link #fundsReserve} (In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested.) + */ + public Coding getFundsReserve() { + if (this.fundsReserve == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.fundsReserve"); + else if (Configuration.doAutoCreate()) + this.fundsReserve = new Coding(); // cc + return this.fundsReserve; + } + + public boolean hasFundsReserve() { + return this.fundsReserve != null && !this.fundsReserve.isEmpty(); + } + + /** + * @param value {@link #fundsReserve} (In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested.) + */ + public InstitutionalClaim setFundsReserve(Coding value) { + this.fundsReserve = value; + return this; + } + + /** + * @return {@link #enterer} (Person who created the invoice/claim/pre-determination or pre-authorization.) + */ + public Reference getEnterer() { + if (this.enterer == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.enterer"); + else if (Configuration.doAutoCreate()) + this.enterer = new Reference(); // cc + return this.enterer; + } + + public boolean hasEnterer() { + return this.enterer != null && !this.enterer.isEmpty(); + } + + /** + * @param value {@link #enterer} (Person who created the invoice/claim/pre-determination or pre-authorization.) + */ + public InstitutionalClaim setEnterer(Reference value) { + this.enterer = value; + return this; + } + + /** + * @return {@link #enterer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Person who created the invoice/claim/pre-determination or pre-authorization.) + */ + public Practitioner getEntererTarget() { + if (this.entererTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.enterer"); + else if (Configuration.doAutoCreate()) + this.entererTarget = new Practitioner(); // aa + return this.entererTarget; + } + + /** + * @param value {@link #enterer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Person who created the invoice/claim/pre-determination or pre-authorization.) + */ + public InstitutionalClaim setEntererTarget(Practitioner value) { + this.entererTarget = value; + return this; + } + + /** + * @return {@link #facility} (Facility where the services were provided.) + */ + public Reference getFacility() { + if (this.facility == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.facility"); + else if (Configuration.doAutoCreate()) + this.facility = new Reference(); // cc + return this.facility; + } + + public boolean hasFacility() { + return this.facility != null && !this.facility.isEmpty(); + } + + /** + * @param value {@link #facility} (Facility where the services were provided.) + */ + public InstitutionalClaim setFacility(Reference value) { + this.facility = value; + return this; + } + + /** + * @return {@link #facility} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Facility where the services were provided.) + */ + public Location getFacilityTarget() { + if (this.facilityTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.facility"); + else if (Configuration.doAutoCreate()) + this.facilityTarget = new Location(); // aa + return this.facilityTarget; + } + + /** + * @param value {@link #facility} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Facility where the services were provided.) + */ + public InstitutionalClaim setFacilityTarget(Location value) { + this.facilityTarget = value; + return this; + } + + /** + * @return {@link #payee} (The party to be reimbursed for the services.) + */ + public PayeeComponent getPayee() { + if (this.payee == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.payee"); + else if (Configuration.doAutoCreate()) + this.payee = new PayeeComponent(); // cc + return this.payee; + } + + public boolean hasPayee() { + return this.payee != null && !this.payee.isEmpty(); + } + + /** + * @param value {@link #payee} (The party to be reimbursed for the services.) + */ + public InstitutionalClaim setPayee(PayeeComponent value) { + this.payee = value; + return this; + } + + /** + * @return {@link #referral} (The referral resource which lists the date, practitioner, reason and other supporting information.) + */ + public Reference getReferral() { + if (this.referral == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.referral"); + else if (Configuration.doAutoCreate()) + this.referral = new Reference(); // cc + return this.referral; + } + + public boolean hasReferral() { + return this.referral != null && !this.referral.isEmpty(); + } + + /** + * @param value {@link #referral} (The referral resource which lists the date, practitioner, reason and other supporting information.) + */ + public InstitutionalClaim setReferral(Reference value) { + this.referral = value; + return this; + } + + /** + * @return {@link #referral} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The referral resource which lists the date, practitioner, reason and other supporting information.) + */ + public ReferralRequest getReferralTarget() { + if (this.referralTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.referral"); + else if (Configuration.doAutoCreate()) + this.referralTarget = new ReferralRequest(); // aa + return this.referralTarget; + } + + /** + * @param value {@link #referral} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The referral resource which lists the date, practitioner, reason and other supporting information.) + */ + public InstitutionalClaim setReferralTarget(ReferralRequest value) { + this.referralTarget = value; + return this; + } + + /** + * @return {@link #diagnosis} (Ordered list of patient diagnosis for which care is sought.) + */ + public List getDiagnosis() { + if (this.diagnosis == null) + this.diagnosis = new ArrayList(); + return this.diagnosis; + } + + public boolean hasDiagnosis() { + if (this.diagnosis == null) + return false; + for (DiagnosisComponent item : this.diagnosis) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #diagnosis} (Ordered list of patient diagnosis for which care is sought.) + */ + // syntactic sugar + public DiagnosisComponent addDiagnosis() { //3 + DiagnosisComponent t = new DiagnosisComponent(); + if (this.diagnosis == null) + this.diagnosis = new ArrayList(); + this.diagnosis.add(t); + return t; + } + + /** + * @return {@link #condition} (List of patient conditions for which care is sought.) + */ + public List getCondition() { + if (this.condition == null) + this.condition = new ArrayList(); + return this.condition; + } + + public boolean hasCondition() { + if (this.condition == null) + return false; + for (Coding item : this.condition) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #condition} (List of patient conditions for which care is sought.) + */ + // syntactic sugar + public Coding addCondition() { //3 + Coding t = new Coding(); + if (this.condition == null) + this.condition = new ArrayList(); + this.condition.add(t); + return t; + } + + /** + * @return {@link #patient} (Patient Resource.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (Patient Resource.) + */ + public InstitutionalClaim setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Patient Resource.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Patient Resource.) + */ + public InstitutionalClaim setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #coverage} (Financial instrument by which payment information for health care.) + */ + public List getCoverage() { + if (this.coverage == null) + this.coverage = new ArrayList(); + return this.coverage; + } + + public boolean hasCoverage() { + if (this.coverage == null) + return false; + for (CoverageComponent item : this.coverage) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #coverage} (Financial instrument by which payment information for health care.) + */ + // syntactic sugar + public CoverageComponent addCoverage() { //3 + CoverageComponent t = new CoverageComponent(); + if (this.coverage == null) + this.coverage = new ArrayList(); + this.coverage.add(t); + return t; + } + + /** + * @return {@link #exception} (Factors which may influence the applicability of coverage.) + */ + public List getException() { + if (this.exception == null) + this.exception = new ArrayList(); + return this.exception; + } + + public boolean hasException() { + if (this.exception == null) + return false; + for (Coding item : this.exception) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #exception} (Factors which may influence the applicability of coverage.) + */ + // syntactic sugar + public Coding addException() { //3 + Coding t = new Coding(); + if (this.exception == null) + this.exception = new ArrayList(); + this.exception.add(t); + return t; + } + + /** + * @return {@link #school} (Name of school for over-aged dependants.). This is the underlying object with id, value and extensions. The accessor "getSchool" gives direct access to the value + */ + public StringType getSchoolElement() { + if (this.school == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.school"); + else if (Configuration.doAutoCreate()) + this.school = new StringType(); // bb + return this.school; + } + + public boolean hasSchoolElement() { + return this.school != null && !this.school.isEmpty(); + } + + public boolean hasSchool() { + return this.school != null && !this.school.isEmpty(); + } + + /** + * @param value {@link #school} (Name of school for over-aged dependants.). This is the underlying object with id, value and extensions. The accessor "getSchool" gives direct access to the value + */ + public InstitutionalClaim setSchoolElement(StringType value) { + this.school = value; + return this; + } + + /** + * @return Name of school for over-aged dependants. + */ + public String getSchool() { + return this.school == null ? null : this.school.getValue(); + } + + /** + * @param value Name of school for over-aged dependants. + */ + public InstitutionalClaim setSchool(String value) { + if (Utilities.noString(value)) + this.school = null; + else { + if (this.school == null) + this.school = new StringType(); + this.school.setValue(value); + } + return this; + } + + /** + * @return {@link #accident} (Date of an accident which these services are addressing.). This is the underlying object with id, value and extensions. The accessor "getAccident" gives direct access to the value + */ + public DateType getAccidentElement() { + if (this.accident == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.accident"); + else if (Configuration.doAutoCreate()) + this.accident = new DateType(); // bb + return this.accident; + } + + public boolean hasAccidentElement() { + return this.accident != null && !this.accident.isEmpty(); + } + + public boolean hasAccident() { + return this.accident != null && !this.accident.isEmpty(); + } + + /** + * @param value {@link #accident} (Date of an accident which these services are addressing.). This is the underlying object with id, value and extensions. The accessor "getAccident" gives direct access to the value + */ + public InstitutionalClaim setAccidentElement(DateType value) { + this.accident = value; + return this; + } + + /** + * @return Date of an accident which these services are addressing. + */ + public Date getAccident() { + return this.accident == null ? null : this.accident.getValue(); + } + + /** + * @param value Date of an accident which these services are addressing. + */ + public InstitutionalClaim setAccident(Date value) { + if (value == null) + this.accident = null; + else { + if (this.accident == null) + this.accident = new DateType(); + this.accident.setValue(value); + } + return this; + } + + /** + * @return {@link #accidentType} (Type of accident: work, auto, etc.) + */ + public Coding getAccidentType() { + if (this.accidentType == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create InstitutionalClaim.accidentType"); + else if (Configuration.doAutoCreate()) + this.accidentType = new Coding(); // cc + return this.accidentType; + } + + public boolean hasAccidentType() { + return this.accidentType != null && !this.accidentType.isEmpty(); + } + + /** + * @param value {@link #accidentType} (Type of accident: work, auto, etc.) + */ + public InstitutionalClaim setAccidentType(Coding value) { + this.accidentType = value; + return this; + } + + /** + * @return {@link #interventionException} (A list of intervention and exception codes which may influence the adjudication of the claim.) + */ + public List getInterventionException() { + if (this.interventionException == null) + this.interventionException = new ArrayList(); + return this.interventionException; + } + + public boolean hasInterventionException() { + if (this.interventionException == null) + return false; + for (Coding item : this.interventionException) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #interventionException} (A list of intervention and exception codes which may influence the adjudication of the claim.) + */ + // syntactic sugar + public Coding addInterventionException() { //3 + Coding t = new Coding(); + if (this.interventionException == null) + this.interventionException = new ArrayList(); + this.interventionException.add(t); + return t; + } + + /** + * @return {@link #item} (First tier of goods and services.) + */ + public List getItem() { + if (this.item == null) + this.item = new ArrayList(); + return this.item; + } + + public boolean hasItem() { + if (this.item == null) + return false; + for (ItemsComponent item : this.item) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #item} (First tier of goods and services.) + */ + // syntactic sugar + public ItemsComponent addItem() { //3 + ItemsComponent t = new ItemsComponent(); + if (this.item == null) + this.item = new ArrayList(); + this.item.add(t); + return t; + } + + /** + * @return {@link #additionalMaterials} (Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission.) + */ + public List getAdditionalMaterials() { + if (this.additionalMaterials == null) + this.additionalMaterials = new ArrayList(); + return this.additionalMaterials; + } + + public boolean hasAdditionalMaterials() { + if (this.additionalMaterials == null) + return false; + for (Coding item : this.additionalMaterials) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #additionalMaterials} (Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission.) + */ + // syntactic sugar + public Coding addAdditionalMaterials() { //3 + Coding t = new Coding(); + if (this.additionalMaterials == null) + this.additionalMaterials = new ArrayList(); + this.additionalMaterials.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("ruleset", "Coding", "The version of the specification on which this instance relies.", 0, java.lang.Integer.MAX_VALUE, ruleset)); + childrenList.add(new Property("originalRuleset", "Coding", "The version of the specification from which the original instance was created.", 0, java.lang.Integer.MAX_VALUE, originalRuleset)); + childrenList.add(new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, created)); + childrenList.add(new Property("target", "Reference(Organization)", "Insurer Identifier, typical BIN number (6 digit).", 0, java.lang.Integer.MAX_VALUE, target)); + childrenList.add(new Property("provider", "Reference(Practitioner)", "The provider which is responsible for the bill, claim pre-determination, pre-authorization.", 0, java.lang.Integer.MAX_VALUE, provider)); + childrenList.add(new Property("organization", "Reference(Organization)", "The organization which is responsible for the bill, claim pre-determination, pre-authorization.", 0, java.lang.Integer.MAX_VALUE, organization)); + childrenList.add(new Property("use", "code", "Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination).", 0, java.lang.Integer.MAX_VALUE, use)); + childrenList.add(new Property("priority", "Coding", "Immediate (STAT), best effort (NORMAL), deferred (DEFER).", 0, java.lang.Integer.MAX_VALUE, priority)); + childrenList.add(new Property("fundsReserve", "Coding", "In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested.", 0, java.lang.Integer.MAX_VALUE, fundsReserve)); + childrenList.add(new Property("enterer", "Reference(Practitioner)", "Person who created the invoice/claim/pre-determination or pre-authorization.", 0, java.lang.Integer.MAX_VALUE, enterer)); + childrenList.add(new Property("facility", "Reference(Location)", "Facility where the services were provided.", 0, java.lang.Integer.MAX_VALUE, facility)); + childrenList.add(new Property("payee", "", "The party to be reimbursed for the services.", 0, java.lang.Integer.MAX_VALUE, payee)); + childrenList.add(new Property("referral", "Reference(ReferralRequest)", "The referral resource which lists the date, practitioner, reason and other supporting information.", 0, java.lang.Integer.MAX_VALUE, referral)); + childrenList.add(new Property("diagnosis", "", "Ordered list of patient diagnosis for which care is sought.", 0, java.lang.Integer.MAX_VALUE, diagnosis)); + childrenList.add(new Property("condition", "Coding", "List of patient conditions for which care is sought.", 0, java.lang.Integer.MAX_VALUE, condition)); + childrenList.add(new Property("patient", "Reference(Patient)", "Patient Resource.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("coverage", "", "Financial instrument by which payment information for health care.", 0, java.lang.Integer.MAX_VALUE, coverage)); + childrenList.add(new Property("exception", "Coding", "Factors which may influence the applicability of coverage.", 0, java.lang.Integer.MAX_VALUE, exception)); + childrenList.add(new Property("school", "string", "Name of school for over-aged dependants.", 0, java.lang.Integer.MAX_VALUE, school)); + childrenList.add(new Property("accident", "date", "Date of an accident which these services are addressing.", 0, java.lang.Integer.MAX_VALUE, accident)); + childrenList.add(new Property("accidentType", "Coding", "Type of accident: work, auto, etc.", 0, java.lang.Integer.MAX_VALUE, accidentType)); + childrenList.add(new Property("interventionException", "Coding", "A list of intervention and exception codes which may influence the adjudication of the claim.", 0, java.lang.Integer.MAX_VALUE, interventionException)); + childrenList.add(new Property("item", "", "First tier of goods and services.", 0, java.lang.Integer.MAX_VALUE, item)); + childrenList.add(new Property("additionalMaterials", "Coding", "Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission.", 0, java.lang.Integer.MAX_VALUE, additionalMaterials)); + } + + public InstitutionalClaim copy() { + InstitutionalClaim dst = new InstitutionalClaim(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.ruleset = ruleset == null ? null : ruleset.copy(); + dst.originalRuleset = originalRuleset == null ? null : originalRuleset.copy(); + dst.created = created == null ? null : created.copy(); + dst.target = target == null ? null : target.copy(); + dst.provider = provider == null ? null : provider.copy(); + dst.organization = organization == null ? null : organization.copy(); + dst.use = use == null ? null : use.copy(); + dst.priority = priority == null ? null : priority.copy(); + dst.fundsReserve = fundsReserve == null ? null : fundsReserve.copy(); + dst.enterer = enterer == null ? null : enterer.copy(); + dst.facility = facility == null ? null : facility.copy(); + dst.payee = payee == null ? null : payee.copy(); + dst.referral = referral == null ? null : referral.copy(); + if (diagnosis != null) { + dst.diagnosis = new ArrayList(); + for (DiagnosisComponent i : diagnosis) + dst.diagnosis.add(i.copy()); + }; + if (condition != null) { + dst.condition = new ArrayList(); + for (Coding i : condition) + dst.condition.add(i.copy()); + }; + dst.patient = patient == null ? null : patient.copy(); + if (coverage != null) { + dst.coverage = new ArrayList(); + for (CoverageComponent i : coverage) + dst.coverage.add(i.copy()); + }; + if (exception != null) { + dst.exception = new ArrayList(); + for (Coding i : exception) + dst.exception.add(i.copy()); + }; + dst.school = school == null ? null : school.copy(); + dst.accident = accident == null ? null : accident.copy(); + dst.accidentType = accidentType == null ? null : accidentType.copy(); + if (interventionException != null) { + dst.interventionException = new ArrayList(); + for (Coding i : interventionException) + dst.interventionException.add(i.copy()); + }; + if (item != null) { + dst.item = new ArrayList(); + for (ItemsComponent i : item) + dst.item.add(i.copy()); + }; + if (additionalMaterials != null) { + dst.additionalMaterials = new ArrayList(); + for (Coding i : additionalMaterials) + dst.additionalMaterials.add(i.copy()); + }; + return dst; + } + + protected InstitutionalClaim typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof InstitutionalClaim)) + return false; + InstitutionalClaim o = (InstitutionalClaim) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(ruleset, o.ruleset, true) && compareDeep(originalRuleset, o.originalRuleset, true) + && compareDeep(created, o.created, true) && compareDeep(target, o.target, true) && compareDeep(provider, o.provider, true) + && compareDeep(organization, o.organization, true) && compareDeep(use, o.use, true) && compareDeep(priority, o.priority, true) + && compareDeep(fundsReserve, o.fundsReserve, true) && compareDeep(enterer, o.enterer, true) && compareDeep(facility, o.facility, true) + && compareDeep(payee, o.payee, true) && compareDeep(referral, o.referral, true) && compareDeep(diagnosis, o.diagnosis, true) + && compareDeep(condition, o.condition, true) && compareDeep(patient, o.patient, true) && compareDeep(coverage, o.coverage, true) + && compareDeep(exception, o.exception, true) && compareDeep(school, o.school, true) && compareDeep(accident, o.accident, true) + && compareDeep(accidentType, o.accidentType, true) && compareDeep(interventionException, o.interventionException, true) + && compareDeep(item, o.item, true) && compareDeep(additionalMaterials, o.additionalMaterials, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof InstitutionalClaim)) + return false; + InstitutionalClaim o = (InstitutionalClaim) other; + return compareValues(created, o.created, true) && compareValues(use, o.use, true) && compareValues(school, o.school, true) + && compareValues(accident, o.accident, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (ruleset == null || ruleset.isEmpty()) + && (originalRuleset == null || originalRuleset.isEmpty()) && (created == null || created.isEmpty()) + && (target == null || target.isEmpty()) && (provider == null || provider.isEmpty()) && (organization == null || organization.isEmpty()) + && (use == null || use.isEmpty()) && (priority == null || priority.isEmpty()) && (fundsReserve == null || fundsReserve.isEmpty()) + && (enterer == null || enterer.isEmpty()) && (facility == null || facility.isEmpty()) && (payee == null || payee.isEmpty()) + && (referral == null || referral.isEmpty()) && (diagnosis == null || diagnosis.isEmpty()) + && (condition == null || condition.isEmpty()) && (patient == null || patient.isEmpty()) && (coverage == null || coverage.isEmpty()) + && (exception == null || exception.isEmpty()) && (school == null || school.isEmpty()) && (accident == null || accident.isEmpty()) + && (accidentType == null || accidentType.isEmpty()) && (interventionException == null || interventionException.isEmpty()) + && (item == null || item.isEmpty()) && (additionalMaterials == null || additionalMaterials.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.InstitutionalClaim; + } + + @SearchParamDefinition(name="patient", path="InstitutionalClaim.patient", description="Patient", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="priority", path="InstitutionalClaim.priority", description="Processing priority requested", type="token" ) + public static final String SP_PRIORITY = "priority"; + @SearchParamDefinition(name="use", path="InstitutionalClaim.use", description="The kind of financial resource", type="token" ) + public static final String SP_USE = "use"; + @SearchParamDefinition(name="identifier", path="InstitutionalClaim.identifier", description="The primary identifier of the financial resource", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IntegerType.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IntegerType.class new file mode 100644 index 0000000000000000000000000000000000000000..a43b6e14dd8af96bd0a5c84b650c24cf83dc6188 GIT binary patch literal 2371 zcma)7T~`xV6y2Av31Ps1Ac7TxOC=vlT3fUhssaIx4WNKnv|mHGB!iQgtjPrHQ~TJ} zXWzP3e}jDqtg=?^Qy==HYWJNCO+r&DYvtUTJA0qA?>Xll{`~9L-vE4wQW#^H4Pyjz zVGLtlnRFNnSnPbuzwZg^gdSu#**^0tYJmHJX9}_ zlv&lVru?pJc&ye9Wu7SWxiXs?o(e?D(lrfhL%L^(=$Lo5rNF7IY0KqGaZ9@E#+JpMj#x&0ABtsnjXfh}8FoIk z=DDVwpH};)8~3wLu-m)l8M)_6M#*j)BWpaq^NIp>sK3M6CktmEcW1?y&Nr(n7%)6YasriyfEr2-%8FH3S-;L`t~ z1K5>D?JHZmGUrXV6ww51amawHvT?G^1xpsC?NMU)nwhr^ui`R?cTYUpL)R>tp1CKL z>Y0Wd9p&vd-G$ejikp**rYdu!Asdsb(gGu^727k5a>Fc}Y=v3dc09vlbCm_AP7H6< zp{cY%5>=$-4r6xMMv>7pvsPjqmvC9f7x+@gSNK}TH;A)UbQstYxLEJFjAhBZVa>Yv zib}@9w>eo-QUr$UpjwvaDyFq9T^%`W3tW%pd^OQ6$)~ax^_(b!M_-s;!KrxBT!9VE zW{#R(Il8Cr$fROQ9XrS?d2t;Dm;x8-accKt(Q%7LU5Uc(>Ua)IQH!kWJNBLq8;(GK z-G5LDO;WF(N?u>I4Tssr{5Wo0@3ED8BKnfk~8wHOA@Ja5g zFMSH0ICp@yD%zjad3|W-*Bj*BL@z$}x$%IT2)JRNo2;VaIB$-;d2}P~^AZ8?NA9Ya z_Y{w`&Ovm&`U!ot$Iz>vF?NXX<{^4E_n~vQcc8C|Q&mLv(f=m-2Oi@8`L33 z(M6l3`z1avV+xOO3#(YfI+Fa-kM_6x(5B(4hHJz}2;~(DbS?6%>a+vN0}Rml>m?=Q z>OKbF5CLci;WU-2P_?{la_1?}_sniR`e>)9fwXt(iC(ffQ|=6 z>rNzn=kK+GPqNxIMPmWHOQrn$zp+Y%>I$X)WEDKxErQzc38wvZ2A^_O-FutAJ7wJc E8zsmsO#lD@ literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/IntegerType.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IntegerType.java similarity index 79% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/IntegerType.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IntegerType.java index cea3fb3fe47..8410a0f2fbb 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/IntegerType.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/IntegerType.java @@ -1,126 +1,106 @@ -/* -Copyright (c) 2011+, HL7, Inc -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - - */ -/** - * - */ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -import org.hl7.fhir.instance.model.annotations.DatatypeDef; - -/** - * Primitive type "integer" in FHIR: A signed 32-bit integer - */ -@DatatypeDef(name = "integer") -public class IntegerType extends PrimitiveType { - - private static final long serialVersionUID = 1L; - - /** - * Constructor - */ - public IntegerType() { - // nothing - } - - /** - * Constructor - */ - public IntegerType(int theInteger) { - setValue(theInteger); - } - - /** - * Constructor - * - * @param theIntegerAsString - * A string representation of an integer - * @throws IllegalArgumentException - * If the string is not a valid integer representation - */ - public IntegerType(String theIntegerAsString) { - setValueAsString(theIntegerAsString); - } - - /** - * Constructor - * - * @param theValue The value - * @throws IllegalArgumentException If the value is too large to fit in a signed integer - */ - public IntegerType(Long theValue) { - if (theValue < java.lang.Integer.MIN_VALUE || theValue > java.lang.Integer.MAX_VALUE) { - throw new IllegalArgumentException - (theValue + " cannot be cast to int without changing its value."); - } - if(theValue!=null) { - setValue((int)theValue.longValue()); - } - } - - @Override - protected Integer parse(String theValue) { - try { - return Integer.parseInt(theValue); - } catch (NumberFormatException e) { - throw new IllegalArgumentException(e); - } - } - - @Override - protected String encode(Integer theValue) { - return Integer.toString(theValue); - } - - @Override - public IntegerType copy() { - return new IntegerType(getValue()); - } - -} +/* +Copyright (c) 2011+, HL7, Inc +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + */ +/** + * + */ +package org.hl7.fhir.instance.model; + +import org.hl7.fhir.instance.model.annotations.DatatypeDef; +import org.hl7.fhir.instance.model.api.IBaseIntegerDatatype; + +/** + * Primitive type "integer" in FHIR: A signed 32-bit integer + */ +@DatatypeDef(name = "integer") +public class IntegerType extends PrimitiveType implements IBaseIntegerDatatype { + + private static final long serialVersionUID = 3L; + + /** + * Constructor + */ + public IntegerType() { + // nothing + } + + /** + * Constructor + */ + public IntegerType(int theInteger) { + setValue(theInteger); + } + + /** + * Constructor + * + * @param theIntegerAsString + * A string representation of an integer + * @throws IllegalArgumentException + * If the string is not a valid integer representation + */ + public IntegerType(String theIntegerAsString) { + setValueAsString(theIntegerAsString); + } + + /** + * Constructor + * + * @param theValue The value + * @throws IllegalArgumentException If the value is too large to fit in a signed integer + */ + public IntegerType(Long theValue) { + if (theValue < java.lang.Integer.MIN_VALUE || theValue > java.lang.Integer.MAX_VALUE) { + throw new IllegalArgumentException + (theValue + " cannot be cast to int without changing its value."); + } + if(theValue!=null) { + setValue((int)theValue.longValue()); + } + } + + @Override + protected Integer parse(String theValue) { + try { + return Integer.parseInt(theValue); + } catch (NumberFormatException e) { + throw new IllegalArgumentException(e); + } + } + + @Override + protected String encode(Integer theValue) { + return Integer.toString(theValue); + } + + @Override + public IntegerType copy() { + return new IntegerType(getValue()); + } + +} diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_$1.class new file mode 100644 index 0000000000000000000000000000000000000000..fcba686c399182371a089a401c87ebabeda70419 GIT binary patch literal 804 zcmb7CT~E|d5IuLdwB1_ViXsbs1l$U{h&E~n4;mxcEU;nQC6>qo52o9#+l%Gav|W7j z@A#}H#u&p7@JAWvmMFfVN$<>@J2PiGcjm{>Z>Inrftfr`gz!lMVZI%rl#dya+@X*~jT9O6)$*i&v#|2{Tj!yOGx6L+y}!oVdHD`=T$W0he+rZ`C;#*UZzlQ7=mQ8Mag zS(=%+C&SjzVrWut4)x~9-kjgPIc0CoS#J*+z+m=-h_X%+_A-Bu^N$gTag4p0~}g_MeGqHsT^k${EU``rhWA zzcbh;&d$!Jx83!vMcSkqZ5Fc{asbkz8xzx{FB5u?Dp|nBSFqFX#%EMM$*=kaiZb{B zWw(SX!Krho5mZa~kVZbm{Ua!Sh8z`K ZB@#fvEXhSWGjyj*Wa+f@v#_7f{{mBEymJ5m literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_$ListEntryComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_$ListEntryComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..a57c896dd835c41fad81cb9e2d809b20061cc78d GIT binary patch literal 7893 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 HMVIm~7=mI8 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_$ListModeEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_$ListModeEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..286500b22aa3f68263a0d58c2851bf8562604344 GIT binary patch literal 1732 zcmb7ETT|0e5dIFdO&WthK=B5Gg3wm2_ZtY*3WAh^)XV5N^FY1Q~tEUQRZ<-|n|LKYxAx3g9&66m%dV`6ZxU*6e=&}jOF>$L7Y0tx#^~D-SbS3VRRt# zNPnUyZJp@5)-hfx5YkQH{|H-aX+1Fbk|CP2@?7^z zE{)2n%QG|o$Ta-HZPAJpC&59e2F{Dyt~G1w?TAw_p8WYnt_p##f$(sOWuft8w~M(XH>;u z^s4AYH^bR~|EzA%3~e=N8%|r+TdGjU(7#=QzkOVp2W_nRxTM>(y1VMvt-2Mldo=eu zGjmguSt97@|8P$P=CY~T+{DaH%8{N(Wv`9psGMFbntXxbSbe!I)^-D5v`4b<)F8JH zZ22Q>XrPvnZj7Go#uF?gdg#vS0K*=-(!!)^HA(I#uah)wDZ=qpu#aRg93UA94mnAp z7!5(_2ZYE1jKmM9T0>$5jqjkC8hPe8f<~DLlbBEMo*uk;XIX5|9yT zQkkl%I7D8E8c^t=WhE*4y-#^X6Fmt6_#P20R3=LjRzz4)Vaa7pD^pMfLKpqRz;lu> zDA`N2;uYHQn$o>N7v2VC!)R2Z(Uufd>Z?}jsaA@{6W`Icf_9N{!*nUU6Gtda0PCuT oN8&V#U7KR-+G#|8fNg+=ATY*pkhDft8!n@3bT5&88CMYf4g1ihPyhe` literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/List_.class new file mode 100644 index 0000000000000000000000000000000000000000..a25b677986c01204af4bf9dc02e7e4bbf3d1a630 GIT binary patch literal 14434 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 { - public ListMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("working".equals(codeString)) - return ListMode.WORKING; - if ("snapshot".equals(codeString)) - return ListMode.SNAPSHOT; - if ("changes".equals(codeString)) - return ListMode.CHANGES; - throw new IllegalArgumentException("Unknown ListMode code '"+codeString+"'"); - } - public String toCode(ListMode code) throws IllegalArgumentException { - if (code == ListMode.WORKING) - return "working"; - if (code == ListMode.SNAPSHOT) - return "snapshot"; - if (code == ListMode.CHANGES) - return "changes"; - return "?"; - } - } - - @Block() - public static class ListEntryComponent extends BackboneElement { - /** - * The flag allows the system constructing the list to make one or more statements about the role and significance of the item in the list. - */ - @Child(name="flag", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Workflow information about this item", formalDefinition="The flag allows the system constructing the list to make one or more statements about the role and significance of the item in the list." ) - protected List flag; - - /** - * True if this item is marked as deleted in the list. - */ - @Child(name="deleted", type={BooleanType.class}, order=2, min=0, max=1) - @Description(shortDefinition="If this item is actually marked as deleted", formalDefinition="True if this item is marked as deleted in the list." ) - protected BooleanType deleted; - - /** - * When this item was added to the list. - */ - @Child(name="date", type={DateTimeType.class}, order=3, min=0, max=1) - @Description(shortDefinition="When item added to list", formalDefinition="When this item was added to the list." ) - protected DateTimeType date; - - /** - * A reference to the actual resource from which data was derived. - */ - @Child(name="item", type={}, order=4, min=1, max=1) - @Description(shortDefinition="Actual entry", formalDefinition="A reference to the actual resource from which data was derived." ) - protected Reference item; - - /** - * The actual object that is the target of the reference (A reference to the actual resource from which data was derived.) - */ - protected Resource itemTarget; - - private static final long serialVersionUID = -27973283L; - - public ListEntryComponent() { - super(); - } - - public ListEntryComponent(Reference item) { - super(); - this.item = item; - } - - /** - * @return {@link #flag} (The flag allows the system constructing the list to make one or more statements about the role and significance of the item in the list.) - */ - public List getFlag() { - if (this.flag == null) - this.flag = new ArrayList(); - return this.flag; - } - - public boolean hasFlag() { - if (this.flag == null) - return false; - for (CodeableConcept item : this.flag) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #flag} (The flag allows the system constructing the list to make one or more statements about the role and significance of the item in the list.) - */ - // syntactic sugar - public CodeableConcept addFlag() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.flag == null) - this.flag = new ArrayList(); - this.flag.add(t); - return t; - } - - /** - * @return {@link #deleted} (True if this item is marked as deleted in the list.). This is the underlying object with id, value and extensions. The accessor "getDeleted" gives direct access to the value - */ - public BooleanType getDeletedElement() { - if (this.deleted == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ListEntryComponent.deleted"); - else if (Configuration.doAutoCreate()) - this.deleted = new BooleanType(); - return this.deleted; - } - - public boolean hasDeletedElement() { - return this.deleted != null && !this.deleted.isEmpty(); - } - - public boolean hasDeleted() { - return this.deleted != null && !this.deleted.isEmpty(); - } - - /** - * @param value {@link #deleted} (True if this item is marked as deleted in the list.). This is the underlying object with id, value and extensions. The accessor "getDeleted" gives direct access to the value - */ - public ListEntryComponent setDeletedElement(BooleanType value) { - this.deleted = value; - return this; - } - - /** - * @return True if this item is marked as deleted in the list. - */ - public boolean getDeleted() { - return this.deleted == null ? false : this.deleted.getValue(); - } - - /** - * @param value True if this item is marked as deleted in the list. - */ - public ListEntryComponent setDeleted(boolean value) { - if (value == false) - this.deleted = null; - else { - if (this.deleted == null) - this.deleted = new BooleanType(); - this.deleted.setValue(value); - } - return this; - } - - /** - * @return {@link #date} (When this item was added to the list.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ListEntryComponent.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (When this item was added to the list.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public ListEntryComponent setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return When this item was added to the list. - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value When this item was added to the list. - */ - public ListEntryComponent setDate(Date value) { - if (value == null) - this.date = null; - else { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - } - return this; - } - - /** - * @return {@link #item} (A reference to the actual resource from which data was derived.) - */ - public Reference getItem() { - if (this.item == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create ListEntryComponent.item"); - else if (Configuration.doAutoCreate()) - this.item = new Reference(); - return this.item; - } - - public boolean hasItem() { - return this.item != null && !this.item.isEmpty(); - } - - /** - * @param value {@link #item} (A reference to the actual resource from which data was derived.) - */ - public ListEntryComponent setItem(Reference value) { - this.item = value; - return this; - } - - /** - * @return {@link #item} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to the actual resource from which data was derived.) - */ - public Resource getItemTarget() { - return this.itemTarget; - } - - /** - * @param value {@link #item} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to the actual resource from which data was derived.) - */ - public ListEntryComponent setItemTarget(Resource value) { - this.itemTarget = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("flag", "CodeableConcept", "The flag allows the system constructing the list to make one or more statements about the role and significance of the item in the list.", 0, java.lang.Integer.MAX_VALUE, flag)); - childrenList.add(new Property("deleted", "boolean", "True if this item is marked as deleted in the list.", 0, java.lang.Integer.MAX_VALUE, deleted)); - childrenList.add(new Property("date", "dateTime", "When this item was added to the list.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("item", "Reference(Any)", "A reference to the actual resource from which data was derived.", 0, java.lang.Integer.MAX_VALUE, item)); - } - - public ListEntryComponent copy() { - ListEntryComponent dst = new ListEntryComponent(); - copyValues(dst); - if (flag != null) { - dst.flag = new ArrayList(); - for (CodeableConcept i : flag) - dst.flag.add(i.copy()); - }; - dst.deleted = deleted == null ? null : deleted.copy(); - dst.date = date == null ? null : date.copy(); - dst.item = item == null ? null : item.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (flag == null || flag.isEmpty()) && (deleted == null || deleted.isEmpty()) - && (date == null || date.isEmpty()) && (item == null || item.isEmpty()); - } - - } - - /** - * Identifier for the List assigned for business purposes outside the context of FHIR. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Business identifier", formalDefinition="Identifier for the List assigned for business purposes outside the context of FHIR." ) - protected List identifier; - - /** - * This code defines the purpose of the list - why it was created. - */ - @Child(name="code", type={CodeableConcept.class}, order=0, min=0, max=1) - @Description(shortDefinition="What the purpose of this list is", formalDefinition="This code defines the purpose of the list - why it was created." ) - protected CodeableConcept code; - - /** - * The common subject (or patient) of the resources that are in the list, if there is one. - */ - @Child(name="subject", type={Patient.class, Group.class, Device.class, Location.class}, order=1, min=0, max=1) - @Description(shortDefinition="If all resources have the same subject", formalDefinition="The common subject (or patient) of the resources that are in the list, if there is one." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (The common subject (or patient) of the resources that are in the list, if there is one.) - */ - protected Resource subjectTarget; - - /** - * The entity responsible for deciding what the contents of the list were. - */ - @Child(name="source", type={Practitioner.class, Patient.class, Device.class}, order=2, min=0, max=1) - @Description(shortDefinition="Who and/or what defined the list contents", formalDefinition="The entity responsible for deciding what the contents of the list were." ) - protected Reference source; - - /** - * The actual object that is the target of the reference (The entity responsible for deciding what the contents of the list were.) - */ - protected Resource sourceTarget; - - /** - * The date that the list was prepared. - */ - @Child(name="date", type={DateTimeType.class}, order=3, min=0, max=1) - @Description(shortDefinition="When the list was prepared", formalDefinition="The date that the list was prepared." ) - protected DateTimeType date; - - /** - * Whether items in the list have a meaningful order. - */ - @Child(name="ordered", type={BooleanType.class}, order=4, min=0, max=1) - @Description(shortDefinition="Whether items in the list have a meaningful order", formalDefinition="Whether items in the list have a meaningful order." ) - protected BooleanType ordered; - - /** - * How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. - */ - @Child(name="mode", type={CodeType.class}, order=5, min=1, max=1) - @Description(shortDefinition="working | snapshot | changes", formalDefinition="How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted." ) - protected Enumeration mode; - - /** - * Entries in this list. - */ - @Child(name="entry", type={}, order=6, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Entries in the list", formalDefinition="Entries in this list." ) - protected List entry; - - /** - * If the list is empty, why the list is empty. - */ - @Child(name="emptyReason", type={CodeableConcept.class}, order=7, min=0, max=1) - @Description(shortDefinition="Why list is empty", formalDefinition="If the list is empty, why the list is empty." ) - protected CodeableConcept emptyReason; - - private static final long serialVersionUID = 1475323442L; - - public List_() { - super(); - } - - public List_(Enumeration mode) { - super(); - this.mode = mode; - } - - /** - * @return {@link #identifier} (Identifier for the List assigned for business purposes outside the context of FHIR.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Identifier for the List assigned for business purposes outside the context of FHIR.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #code} (This code defines the purpose of the list - why it was created.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create List_.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (This code defines the purpose of the list - why it was created.) - */ - public List_ setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #subject} (The common subject (or patient) of the resources that are in the list, if there is one.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create List_.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (The common subject (or patient) of the resources that are in the list, if there is one.) - */ - public List_ setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The common subject (or patient) of the resources that are in the list, if there is one.) - */ - public Resource getSubjectTarget() { - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The common subject (or patient) of the resources that are in the list, if there is one.) - */ - public List_ setSubjectTarget(Resource value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #source} (The entity responsible for deciding what the contents of the list were.) - */ - public Reference getSource() { - if (this.source == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create List_.source"); - else if (Configuration.doAutoCreate()) - this.source = new Reference(); - return this.source; - } - - public boolean hasSource() { - return this.source != null && !this.source.isEmpty(); - } - - /** - * @param value {@link #source} (The entity responsible for deciding what the contents of the list were.) - */ - public List_ setSource(Reference value) { - this.source = value; - return this; - } - - /** - * @return {@link #source} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The entity responsible for deciding what the contents of the list were.) - */ - public Resource getSourceTarget() { - return this.sourceTarget; - } - - /** - * @param value {@link #source} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The entity responsible for deciding what the contents of the list were.) - */ - public List_ setSourceTarget(Resource value) { - this.sourceTarget = value; - return this; - } - - /** - * @return {@link #date} (The date that the list was prepared.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public DateTimeType getDateElement() { - if (this.date == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create List_.date"); - else if (Configuration.doAutoCreate()) - this.date = new DateTimeType(); - return this.date; - } - - public boolean hasDateElement() { - return this.date != null && !this.date.isEmpty(); - } - - public boolean hasDate() { - return this.date != null && !this.date.isEmpty(); - } - - /** - * @param value {@link #date} (The date that the list was prepared.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value - */ - public List_ setDateElement(DateTimeType value) { - this.date = value; - return this; - } - - /** - * @return The date that the list was prepared. - */ - public Date getDate() { - return this.date == null ? null : this.date.getValue(); - } - - /** - * @param value The date that the list was prepared. - */ - public List_ setDate(Date value) { - if (value == null) - this.date = null; - else { - if (this.date == null) - this.date = new DateTimeType(); - this.date.setValue(value); - } - return this; - } - - /** - * @return {@link #ordered} (Whether items in the list have a meaningful order.). This is the underlying object with id, value and extensions. The accessor "getOrdered" gives direct access to the value - */ - public BooleanType getOrderedElement() { - if (this.ordered == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create List_.ordered"); - else if (Configuration.doAutoCreate()) - this.ordered = new BooleanType(); - return this.ordered; - } - - public boolean hasOrderedElement() { - return this.ordered != null && !this.ordered.isEmpty(); - } - - public boolean hasOrdered() { - return this.ordered != null && !this.ordered.isEmpty(); - } - - /** - * @param value {@link #ordered} (Whether items in the list have a meaningful order.). This is the underlying object with id, value and extensions. The accessor "getOrdered" gives direct access to the value - */ - public List_ setOrderedElement(BooleanType value) { - this.ordered = value; - return this; - } - - /** - * @return Whether items in the list have a meaningful order. - */ - public boolean getOrdered() { - return this.ordered == null ? false : this.ordered.getValue(); - } - - /** - * @param value Whether items in the list have a meaningful order. - */ - public List_ setOrdered(boolean value) { - if (value == false) - this.ordered = null; - else { - if (this.ordered == null) - this.ordered = new BooleanType(); - this.ordered.setValue(value); - } - return this; - } - - /** - * @return {@link #mode} (How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public Enumeration getModeElement() { - if (this.mode == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create List_.mode"); - else if (Configuration.doAutoCreate()) - this.mode = new Enumeration(); - return this.mode; - } - - public boolean hasModeElement() { - return this.mode != null && !this.mode.isEmpty(); - } - - public boolean hasMode() { - return this.mode != null && !this.mode.isEmpty(); - } - - /** - * @param value {@link #mode} (How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public List_ setModeElement(Enumeration value) { - this.mode = value; - return this; - } - - /** - * @return How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. - */ - public ListMode getMode() { - return this.mode == null ? null : this.mode.getValue(); - } - - /** - * @param value How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. - */ - public List_ setMode(ListMode value) { - if (this.mode == null) - this.mode = new Enumeration(ListMode.ENUM_FACTORY); - this.mode.setValue(value); - return this; - } - - /** - * @return {@link #entry} (Entries in this list.) - */ - public List getEntry() { - if (this.entry == null) - this.entry = new ArrayList(); - return this.entry; - } - - public boolean hasEntry() { - if (this.entry == null) - return false; - for (ListEntryComponent item : this.entry) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #entry} (Entries in this list.) - */ - // syntactic sugar - public ListEntryComponent addEntry() { //3 - ListEntryComponent t = new ListEntryComponent(); - if (this.entry == null) - this.entry = new ArrayList(); - this.entry.add(t); - return t; - } - - /** - * @return {@link #emptyReason} (If the list is empty, why the list is empty.) - */ - public CodeableConcept getEmptyReason() { - if (this.emptyReason == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create List_.emptyReason"); - else if (Configuration.doAutoCreate()) - this.emptyReason = new CodeableConcept(); - return this.emptyReason; - } - - public boolean hasEmptyReason() { - return this.emptyReason != null && !this.emptyReason.isEmpty(); - } - - /** - * @param value {@link #emptyReason} (If the list is empty, why the list is empty.) - */ - public List_ setEmptyReason(CodeableConcept value) { - this.emptyReason = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "Identifier for the List assigned for business purposes outside the context of FHIR.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("code", "CodeableConcept", "This code defines the purpose of the list - why it was created.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("subject", "Reference(Patient|Group|Device|Location)", "The common subject (or patient) of the resources that are in the list, if there is one.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("source", "Reference(Practitioner|Patient|Device)", "The entity responsible for deciding what the contents of the list were.", 0, java.lang.Integer.MAX_VALUE, source)); - childrenList.add(new Property("date", "dateTime", "The date that the list was prepared.", 0, java.lang.Integer.MAX_VALUE, date)); - childrenList.add(new Property("ordered", "boolean", "Whether items in the list have a meaningful order.", 0, java.lang.Integer.MAX_VALUE, ordered)); - childrenList.add(new Property("mode", "code", "How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.", 0, java.lang.Integer.MAX_VALUE, mode)); - childrenList.add(new Property("entry", "", "Entries in this list.", 0, java.lang.Integer.MAX_VALUE, entry)); - childrenList.add(new Property("emptyReason", "CodeableConcept", "If the list is empty, why the list is empty.", 0, java.lang.Integer.MAX_VALUE, emptyReason)); - } - - public List_ copy() { - List_ dst = new List_(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.code = code == null ? null : code.copy(); - dst.subject = subject == null ? null : subject.copy(); - dst.source = source == null ? null : source.copy(); - dst.date = date == null ? null : date.copy(); - dst.ordered = ordered == null ? null : ordered.copy(); - dst.mode = mode == null ? null : mode.copy(); - if (entry != null) { - dst.entry = new ArrayList(); - for (ListEntryComponent i : entry) - dst.entry.add(i.copy()); - }; - dst.emptyReason = emptyReason == null ? null : emptyReason.copy(); - return dst; - } - - protected List_ typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (code == null || code.isEmpty()) - && (subject == null || subject.isEmpty()) && (source == null || source.isEmpty()) && (date == null || date.isEmpty()) - && (ordered == null || ordered.isEmpty()) && (mode == null || mode.isEmpty()) && (entry == null || entry.isEmpty()) - && (emptyReason == null || emptyReason.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.List; - } - - @SearchParamDefinition(name="patient", path="List.subject", description="If all resources have the same subject", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="source", path="List.source", description="Who and/or what defined the list contents", type="reference" ) - public static final String SP_SOURCE = "source"; - @SearchParamDefinition(name="subject", path="List.subject", description="If all resources have the same subject", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="item", path="List.entry.item", description="Actual entry", type="reference" ) - public static final String SP_ITEM = "item"; - @SearchParamDefinition(name="code", path="List.code", description="What the purpose of this list is", type="token" ) - public static final String SP_CODE = "code"; - @SearchParamDefinition(name="date", path="List.date", description="When the list was prepared", type="date" ) - public static final String SP_DATE = "date"; - @SearchParamDefinition(name="empty-reason", path="List.emptyReason", description="Why list is empty", type="token" ) - public static final String SP_EMPTYREASON = "empty-reason"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +import org.hl7.fhir.instance.model.api.IAnyResource; +/** + * A set of information summarized from a list of other resources. + */ +@ResourceDef(name="List", profile="http://hl7.org/fhir/Profile/List_") +public class List_ extends DomainResource { + + public enum ListMode { + /** + * This list is the master list, maintained in an ongoing fashion with regular updates as the real world list it is tracking changes. + */ + WORKING, + /** + * This list was prepared as a snapshot. It should not be assumed to be current. + */ + SNAPSHOT, + /** + * The list is prepared as a statement of changes that have been made or recommended. + */ + CHANGES, + /** + * added to help the parsers + */ + NULL; + public static ListMode fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("working".equals(codeString)) + return WORKING; + if ("snapshot".equals(codeString)) + return SNAPSHOT; + if ("changes".equals(codeString)) + return CHANGES; + throw new Exception("Unknown ListMode code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case WORKING: return "working"; + case SNAPSHOT: return "snapshot"; + case CHANGES: return "changes"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case WORKING: return ""; + case SNAPSHOT: return ""; + case CHANGES: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case WORKING: return "This list is the master list, maintained in an ongoing fashion with regular updates as the real world list it is tracking changes."; + case SNAPSHOT: return "This list was prepared as a snapshot. It should not be assumed to be current."; + case CHANGES: return "The list is prepared as a statement of changes that have been made or recommended."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case WORKING: return "working"; + case SNAPSHOT: return "snapshot"; + case CHANGES: return "changes"; + default: return "?"; + } + } + } + + public static class ListModeEnumFactory implements EnumFactory { + public ListMode fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("working".equals(codeString)) + return ListMode.WORKING; + if ("snapshot".equals(codeString)) + return ListMode.SNAPSHOT; + if ("changes".equals(codeString)) + return ListMode.CHANGES; + throw new IllegalArgumentException("Unknown ListMode code '"+codeString+"'"); + } + public String toCode(ListMode code) { + if (code == ListMode.WORKING) + return "working"; + if (code == ListMode.SNAPSHOT) + return "snapshot"; + if (code == ListMode.CHANGES) + return "changes"; + return "?"; + } + } + + @Block() + public static class ListEntryComponent extends BackboneElement { + /** + * The flag allows the system constructing the list to make one or more statements about the role and significance of the item in the list. + */ + @Child(name="flag", type={CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Workflow information about this item", formalDefinition="The flag allows the system constructing the list to make one or more statements about the role and significance of the item in the list." ) + protected List flag; + + /** + * True if this item is marked as deleted in the list. + */ + @Child(name="deleted", type={BooleanType.class}, order=2, min=0, max=1) + @Description(shortDefinition="If this item is actually marked as deleted", formalDefinition="True if this item is marked as deleted in the list." ) + protected BooleanType deleted; + + /** + * When this item was added to the list. + */ + @Child(name="date", type={DateTimeType.class}, order=3, min=0, max=1) + @Description(shortDefinition="When item added to list", formalDefinition="When this item was added to the list." ) + protected DateTimeType date; + + /** + * A reference to the actual resource from which data was derived. + */ + @Child(name="item", type={}, order=4, min=1, max=1) + @Description(shortDefinition="Actual entry", formalDefinition="A reference to the actual resource from which data was derived." ) + protected Reference item; + + /** + * The actual object that is the target of the reference (A reference to the actual resource from which data was derived.) + */ + protected Resource itemTarget; + + private static final long serialVersionUID = -27973283L; + + public ListEntryComponent() { + super(); + } + + public ListEntryComponent(Reference item) { + super(); + this.item = item; + } + + /** + * @return {@link #flag} (The flag allows the system constructing the list to make one or more statements about the role and significance of the item in the list.) + */ + public List getFlag() { + if (this.flag == null) + this.flag = new ArrayList(); + return this.flag; + } + + public boolean hasFlag() { + if (this.flag == null) + return false; + for (CodeableConcept item : this.flag) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #flag} (The flag allows the system constructing the list to make one or more statements about the role and significance of the item in the list.) + */ + // syntactic sugar + public CodeableConcept addFlag() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.flag == null) + this.flag = new ArrayList(); + this.flag.add(t); + return t; + } + + /** + * @return {@link #deleted} (True if this item is marked as deleted in the list.). This is the underlying object with id, value and extensions. The accessor "getDeleted" gives direct access to the value + */ + public BooleanType getDeletedElement() { + if (this.deleted == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ListEntryComponent.deleted"); + else if (Configuration.doAutoCreate()) + this.deleted = new BooleanType(); // bb + return this.deleted; + } + + public boolean hasDeletedElement() { + return this.deleted != null && !this.deleted.isEmpty(); + } + + public boolean hasDeleted() { + return this.deleted != null && !this.deleted.isEmpty(); + } + + /** + * @param value {@link #deleted} (True if this item is marked as deleted in the list.). This is the underlying object with id, value and extensions. The accessor "getDeleted" gives direct access to the value + */ + public ListEntryComponent setDeletedElement(BooleanType value) { + this.deleted = value; + return this; + } + + /** + * @return True if this item is marked as deleted in the list. + */ + public boolean getDeleted() { + return this.deleted == null ? false : this.deleted.getValue(); + } + + /** + * @param value True if this item is marked as deleted in the list. + */ + public ListEntryComponent setDeleted(boolean value) { + if (this.deleted == null) + this.deleted = new BooleanType(); + this.deleted.setValue(value); + return this; + } + + /** + * @return {@link #date} (When this item was added to the list.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ListEntryComponent.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (When this item was added to the list.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public ListEntryComponent setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return When this item was added to the list. + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value When this item was added to the list. + */ + public ListEntryComponent setDate(Date value) { + if (value == null) + this.date = null; + else { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + } + return this; + } + + /** + * @return {@link #item} (A reference to the actual resource from which data was derived.) + */ + public Reference getItem() { + if (this.item == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create ListEntryComponent.item"); + else if (Configuration.doAutoCreate()) + this.item = new Reference(); // cc + return this.item; + } + + public boolean hasItem() { + return this.item != null && !this.item.isEmpty(); + } + + /** + * @param value {@link #item} (A reference to the actual resource from which data was derived.) + */ + public ListEntryComponent setItem(Reference value) { + this.item = value; + return this; + } + + /** + * @return {@link #item} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A reference to the actual resource from which data was derived.) + */ + public Resource getItemTarget() { + return this.itemTarget; + } + + /** + * @param value {@link #item} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A reference to the actual resource from which data was derived.) + */ + public ListEntryComponent setItemTarget(Resource value) { + this.itemTarget = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("flag", "CodeableConcept", "The flag allows the system constructing the list to make one or more statements about the role and significance of the item in the list.", 0, java.lang.Integer.MAX_VALUE, flag)); + childrenList.add(new Property("deleted", "boolean", "True if this item is marked as deleted in the list.", 0, java.lang.Integer.MAX_VALUE, deleted)); + childrenList.add(new Property("date", "dateTime", "When this item was added to the list.", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("item", "Reference(Any)", "A reference to the actual resource from which data was derived.", 0, java.lang.Integer.MAX_VALUE, item)); + } + + public ListEntryComponent copy() { + ListEntryComponent dst = new ListEntryComponent(); + copyValues(dst); + if (flag != null) { + dst.flag = new ArrayList(); + for (CodeableConcept i : flag) + dst.flag.add(i.copy()); + }; + dst.deleted = deleted == null ? null : deleted.copy(); + dst.date = date == null ? null : date.copy(); + dst.item = item == null ? null : item.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof ListEntryComponent)) + return false; + ListEntryComponent o = (ListEntryComponent) other; + return compareDeep(flag, o.flag, true) && compareDeep(deleted, o.deleted, true) && compareDeep(date, o.date, true) + && compareDeep(item, o.item, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof ListEntryComponent)) + return false; + ListEntryComponent o = (ListEntryComponent) other; + return compareValues(deleted, o.deleted, true) && compareValues(date, o.date, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (flag == null || flag.isEmpty()) && (deleted == null || deleted.isEmpty()) + && (date == null || date.isEmpty()) && (item == null || item.isEmpty()); + } + + } + + /** + * Identifier for the List assigned for business purposes outside the context of FHIR. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Business identifier", formalDefinition="Identifier for the List assigned for business purposes outside the context of FHIR." ) + protected List identifier; + + /** + * This code defines the purpose of the list - why it was created. + */ + @Child(name="code", type={CodeableConcept.class}, order=0, min=0, max=1) + @Description(shortDefinition="What the purpose of this list is", formalDefinition="This code defines the purpose of the list - why it was created." ) + protected CodeableConcept code; + + /** + * The common subject (or patient) of the resources that are in the list, if there is one. + */ + @Child(name="subject", type={Patient.class, Group.class, Device.class, Location.class}, order=1, min=0, max=1) + @Description(shortDefinition="If all resources have the same subject", formalDefinition="The common subject (or patient) of the resources that are in the list, if there is one." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (The common subject (or patient) of the resources that are in the list, if there is one.) + */ + protected Resource subjectTarget; + + /** + * The entity responsible for deciding what the contents of the list were. + */ + @Child(name="source", type={Practitioner.class, Patient.class, Device.class}, order=2, min=0, max=1) + @Description(shortDefinition="Who and/or what defined the list contents", formalDefinition="The entity responsible for deciding what the contents of the list were." ) + protected Reference source; + + /** + * The actual object that is the target of the reference (The entity responsible for deciding what the contents of the list were.) + */ + protected Resource sourceTarget; + + /** + * The date that the list was prepared. + */ + @Child(name="date", type={DateTimeType.class}, order=3, min=0, max=1) + @Description(shortDefinition="When the list was prepared", formalDefinition="The date that the list was prepared." ) + protected DateTimeType date; + + /** + * Whether items in the list have a meaningful order. + */ + @Child(name="ordered", type={BooleanType.class}, order=4, min=0, max=1) + @Description(shortDefinition="Whether items in the list have a meaningful order", formalDefinition="Whether items in the list have a meaningful order." ) + protected BooleanType ordered; + + /** + * How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. + */ + @Child(name="mode", type={CodeType.class}, order=5, min=1, max=1) + @Description(shortDefinition="working | snapshot | changes", formalDefinition="How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted." ) + protected Enumeration mode; + + /** + * Entries in this list. + */ + @Child(name="entry", type={}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Entries in the list", formalDefinition="Entries in this list." ) + protected List entry; + + /** + * If the list is empty, why the list is empty. + */ + @Child(name="emptyReason", type={CodeableConcept.class}, order=7, min=0, max=1) + @Description(shortDefinition="Why list is empty", formalDefinition="If the list is empty, why the list is empty." ) + protected CodeableConcept emptyReason; + + private static final long serialVersionUID = 1475323442L; + + public List_() { + super(); + } + + public List_(Enumeration mode) { + super(); + this.mode = mode; + } + + /** + * @return {@link #identifier} (Identifier for the List assigned for business purposes outside the context of FHIR.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Identifier for the List assigned for business purposes outside the context of FHIR.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #code} (This code defines the purpose of the list - why it was created.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create List_.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (This code defines the purpose of the list - why it was created.) + */ + public List_ setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #subject} (The common subject (or patient) of the resources that are in the list, if there is one.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create List_.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (The common subject (or patient) of the resources that are in the list, if there is one.) + */ + public List_ setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The common subject (or patient) of the resources that are in the list, if there is one.) + */ + public Resource getSubjectTarget() { + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The common subject (or patient) of the resources that are in the list, if there is one.) + */ + public List_ setSubjectTarget(Resource value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #source} (The entity responsible for deciding what the contents of the list were.) + */ + public Reference getSource() { + if (this.source == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create List_.source"); + else if (Configuration.doAutoCreate()) + this.source = new Reference(); // cc + return this.source; + } + + public boolean hasSource() { + return this.source != null && !this.source.isEmpty(); + } + + /** + * @param value {@link #source} (The entity responsible for deciding what the contents of the list were.) + */ + public List_ setSource(Reference value) { + this.source = value; + return this; + } + + /** + * @return {@link #source} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The entity responsible for deciding what the contents of the list were.) + */ + public Resource getSourceTarget() { + return this.sourceTarget; + } + + /** + * @param value {@link #source} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The entity responsible for deciding what the contents of the list were.) + */ + public List_ setSourceTarget(Resource value) { + this.sourceTarget = value; + return this; + } + + /** + * @return {@link #date} (The date that the list was prepared.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public DateTimeType getDateElement() { + if (this.date == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create List_.date"); + else if (Configuration.doAutoCreate()) + this.date = new DateTimeType(); // bb + return this.date; + } + + public boolean hasDateElement() { + return this.date != null && !this.date.isEmpty(); + } + + public boolean hasDate() { + return this.date != null && !this.date.isEmpty(); + } + + /** + * @param value {@link #date} (The date that the list was prepared.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value + */ + public List_ setDateElement(DateTimeType value) { + this.date = value; + return this; + } + + /** + * @return The date that the list was prepared. + */ + public Date getDate() { + return this.date == null ? null : this.date.getValue(); + } + + /** + * @param value The date that the list was prepared. + */ + public List_ setDate(Date value) { + if (value == null) + this.date = null; + else { + if (this.date == null) + this.date = new DateTimeType(); + this.date.setValue(value); + } + return this; + } + + /** + * @return {@link #ordered} (Whether items in the list have a meaningful order.). This is the underlying object with id, value and extensions. The accessor "getOrdered" gives direct access to the value + */ + public BooleanType getOrderedElement() { + if (this.ordered == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create List_.ordered"); + else if (Configuration.doAutoCreate()) + this.ordered = new BooleanType(); // bb + return this.ordered; + } + + public boolean hasOrderedElement() { + return this.ordered != null && !this.ordered.isEmpty(); + } + + public boolean hasOrdered() { + return this.ordered != null && !this.ordered.isEmpty(); + } + + /** + * @param value {@link #ordered} (Whether items in the list have a meaningful order.). This is the underlying object with id, value and extensions. The accessor "getOrdered" gives direct access to the value + */ + public List_ setOrderedElement(BooleanType value) { + this.ordered = value; + return this; + } + + /** + * @return Whether items in the list have a meaningful order. + */ + public boolean getOrdered() { + return this.ordered == null ? false : this.ordered.getValue(); + } + + /** + * @param value Whether items in the list have a meaningful order. + */ + public List_ setOrdered(boolean value) { + if (this.ordered == null) + this.ordered = new BooleanType(); + this.ordered.setValue(value); + return this; + } + + /** + * @return {@link #mode} (How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value + */ + public Enumeration getModeElement() { + if (this.mode == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create List_.mode"); + else if (Configuration.doAutoCreate()) + this.mode = new Enumeration(new ListModeEnumFactory()); // bb + return this.mode; + } + + public boolean hasModeElement() { + return this.mode != null && !this.mode.isEmpty(); + } + + public boolean hasMode() { + return this.mode != null && !this.mode.isEmpty(); + } + + /** + * @param value {@link #mode} (How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value + */ + public List_ setModeElement(Enumeration value) { + this.mode = value; + return this; + } + + /** + * @return How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. + */ + public ListMode getMode() { + return this.mode == null ? null : this.mode.getValue(); + } + + /** + * @param value How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted. + */ + public List_ setMode(ListMode value) { + if (this.mode == null) + this.mode = new Enumeration(new ListModeEnumFactory()); + this.mode.setValue(value); + return this; + } + + /** + * @return {@link #entry} (Entries in this list.) + */ + public List getEntry() { + if (this.entry == null) + this.entry = new ArrayList(); + return this.entry; + } + + public boolean hasEntry() { + if (this.entry == null) + return false; + for (ListEntryComponent item : this.entry) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #entry} (Entries in this list.) + */ + // syntactic sugar + public ListEntryComponent addEntry() { //3 + ListEntryComponent t = new ListEntryComponent(); + if (this.entry == null) + this.entry = new ArrayList(); + this.entry.add(t); + return t; + } + + /** + * @return {@link #emptyReason} (If the list is empty, why the list is empty.) + */ + public CodeableConcept getEmptyReason() { + if (this.emptyReason == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create List_.emptyReason"); + else if (Configuration.doAutoCreate()) + this.emptyReason = new CodeableConcept(); // cc + return this.emptyReason; + } + + public boolean hasEmptyReason() { + return this.emptyReason != null && !this.emptyReason.isEmpty(); + } + + /** + * @param value {@link #emptyReason} (If the list is empty, why the list is empty.) + */ + public List_ setEmptyReason(CodeableConcept value) { + this.emptyReason = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Identifier for the List assigned for business purposes outside the context of FHIR.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("code", "CodeableConcept", "This code defines the purpose of the list - why it was created.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("subject", "Reference(Patient|Group|Device|Location)", "The common subject (or patient) of the resources that are in the list, if there is one.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("source", "Reference(Practitioner|Patient|Device)", "The entity responsible for deciding what the contents of the list were.", 0, java.lang.Integer.MAX_VALUE, source)); + childrenList.add(new Property("date", "dateTime", "The date that the list was prepared.", 0, java.lang.Integer.MAX_VALUE, date)); + childrenList.add(new Property("ordered", "boolean", "Whether items in the list have a meaningful order.", 0, java.lang.Integer.MAX_VALUE, ordered)); + childrenList.add(new Property("mode", "code", "How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.", 0, java.lang.Integer.MAX_VALUE, mode)); + childrenList.add(new Property("entry", "", "Entries in this list.", 0, java.lang.Integer.MAX_VALUE, entry)); + childrenList.add(new Property("emptyReason", "CodeableConcept", "If the list is empty, why the list is empty.", 0, java.lang.Integer.MAX_VALUE, emptyReason)); + } + + public List_ copy() { + List_ dst = new List_(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.code = code == null ? null : code.copy(); + dst.subject = subject == null ? null : subject.copy(); + dst.source = source == null ? null : source.copy(); + dst.date = date == null ? null : date.copy(); + dst.ordered = ordered == null ? null : ordered.copy(); + dst.mode = mode == null ? null : mode.copy(); + if (entry != null) { + dst.entry = new ArrayList(); + for (ListEntryComponent i : entry) + dst.entry.add(i.copy()); + }; + dst.emptyReason = emptyReason == null ? null : emptyReason.copy(); + return dst; + } + + protected List_ typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof List_)) + return false; + List_ o = (List_) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(code, o.code, true) && compareDeep(subject, o.subject, true) + && compareDeep(source, o.source, true) && compareDeep(date, o.date, true) && compareDeep(ordered, o.ordered, true) + && compareDeep(mode, o.mode, true) && compareDeep(entry, o.entry, true) && compareDeep(emptyReason, o.emptyReason, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof List_)) + return false; + List_ o = (List_) other; + return compareValues(date, o.date, true) && compareValues(ordered, o.ordered, true) && compareValues(mode, o.mode, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (code == null || code.isEmpty()) + && (subject == null || subject.isEmpty()) && (source == null || source.isEmpty()) && (date == null || date.isEmpty()) + && (ordered == null || ordered.isEmpty()) && (mode == null || mode.isEmpty()) && (entry == null || entry.isEmpty()) + && (emptyReason == null || emptyReason.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.List; + } + + @SearchParamDefinition(name="patient", path="List.subject", description="If all resources have the same subject", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="source", path="List.source", description="Who and/or what defined the list contents", type="reference" ) + public static final String SP_SOURCE = "source"; + @SearchParamDefinition(name="subject", path="List.subject", description="If all resources have the same subject", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="item", path="List.entry.item", description="Actual entry", type="reference" ) + public static final String SP_ITEM = "item"; + @SearchParamDefinition(name="code", path="List.code", description="What the purpose of this list is", type="token" ) + public static final String SP_CODE = "code"; + @SearchParamDefinition(name="date", path="List.date", description="When the list was prepared", type="date" ) + public static final String SP_DATE = "date"; + @SearchParamDefinition(name="empty-reason", path="List.emptyReason", description="Why list is empty", type="token" ) + public static final String SP_EMPTYREASON = "empty-reason"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$1.class new file mode 100644 index 0000000000000000000000000000000000000000..91117c787166da1197193b4cb1fbe7828f419d43 GIT binary patch literal 1248 zcmbVMZBNrs6n^d)>sAZQcV2v%T6u{|!O4q)6Ea3JWy7S1F&LB5RaPvm={o#3e)Y4M z5Mm5p{N|4`KDSHfM;%FfpYz;%&bjA2_qM-&e?J9KL`lUpT+d+uH*&OYN?K5GOOo3v z?m(AocXPDHB`rv6LJpG(rWD*4DCy=WH?o^G>!TiodwSDb(BC)RPDU!irm2O8fIig?Uq1lrz)^~)+{w97sxK#p6k0&NuY0XYFi*(j^~FqT;Hj;4|bh! z%i8tmIlyi04=gt3Y*j!tgLY^;>u$WB)H%Ix9a;iI72o!Pmh11;oTwQz6g*HctzibU z8qOoH;US6|9$`*kRE8LyE zN7fNrON!~x%%SDAWfk+2Q#%_y=VRyDYTevgt(PkT#WN*Pg0SKGmKUEsZ&Uh3wZ6t= zJr$GO$HAn%WMZ-BzB-ZYEVEkPs&2Edx!(HfCdiqu%$Jq=T7~UUrcSzifgj}{Kj2h; zSY9Q7$h*iHdf@^t5-*YcL?12S-3i3$5A_>TNAl@AMmoLug)+r7L)stH6DYA;_6U4( z$50bD(sQI8w|G?}&BRe((T^PWyGk6Ee+uFZmQW%-!*kS#b-ck_VhWd8k4gkSV}kQn yXpKRAtuVeOhwZKvQ?@WnmlQ@YN=(xkxW{*tD+7|{v;13)!B`pL=3`h~8TkX=EI%#) literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationMode.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationMode.class new file mode 100644 index 0000000000000000000000000000000000000000..1a2bb19f6dd70b742e487502f0904eaa5098cc2f GIT binary patch literal 2467 zcmbVNTUQ%Z6#h;w%w#$NI`m2rVw<*v79zH#DoCM_*4Pl#0Gd)S!(>+fHG2XF!T z0DPE~a0OEW&I-6HVE{AyF)Jb_;To=sc#bQ@MLf^P8v+sn<|K3?DPo?FFNk=Nk1t6G zA{D>_7A4YL67jN#S45;mg!sZu5n&Ohxs_!Bw;05DGPN+BoQW~W30qSg!?xz^j84@HBdmYyum?40JelRqN1TWUs$uIj1|RyCp}@GXzPV)wA3g+RPyFxlt;Z z>Rkey(9D{fu_i+?tDK)`BkD=2x|FiZMNPkE@Wck|lo;Vzm2rlX{H%;u@tT0w8Aks% zuVkFZ8!|=^Wq<&(xdM#>sdG|B2&ag2>xPw)5$1BwZbchOWH`FJTCMZdvSDWQBDX!t zaAMI~x9mGss2%|)bx7k6@;?I#j**bX7~hZ+uqwmAnv8Xr^y&)3%)+YP*c~eBB{wf5 z6iC)Brxa2{rGl;*Swjoe-4EGWTCQV`Fbx08O4DYIwCqOtyFSv85zhnsEI z9E#i|1+`Gntqf(MSz#ZHmI@M>=-73T7Tfi$)N5xRCEPGEVIrKmV>sF>^&(GEn2y0P zKL*3~nuXnCuyOh|1kM-+&vKj&7`vD;ER~o+jUJyGr6YKNJ^;R{s#NmoP?89?`8@3Whgum|%{Kd_#-$J4v^P zZti$rO&(AJw5`m0s^QPHaMQCw)G5BD<5v{O+W`<2Tat60=fi-v;DV+P{JR)F#+2XREb) nhY0a5dhs54aF57cW$-vA+!{aY5<#JA`!J2isSg)uM7Q`4n*%BW literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationModeEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationModeEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..6af70481f6ddb14be3c8cdd1fbe293b26b1798f5 GIT binary patch literal 1712 zcmbVM+foxj5IqA)cC&5-RxTo_fGC6r5l|38i8SncmZ<`*ddi_lF$-y_i){gRqPa1rgko(HTS)x@1Jf zdP_pLgdPP!5z;Hx+cNHmwNHVJei?Tq+*44EL1Bg@+?Vh`!U#iP$mFIw%uwDQUSRNz z+sg(+Mcm}ZTsFOAIP?0FMJMu#W2Xz3YTQohu4(hxe5@Md+;GM%ePhGeV3=-?uj$YA zsHO8%G~qfXPYs6Swv&pkTK&0cst)3%r2N^;MS5L0b>X`!y z%H+$Wkr9b0O~ADaY$)H^!NbQnGPD*mpXAvz@jh0{Utxy@9tGyVWC$kA6xZFXL(R(+ z;XGbiGm`G$siXzOl%8~L=he`ufnLW-TQ^M2QxbO8Ng7k85HIA#bqSg(>Tr<(5=K>w zVVuPE6j3pONt%LnlP{~75`N23WiiV#Qo1$jq_Sy)yN7Zx)ExyCIx?0ut!2YuXn4Zc zx&4ASc@%`WO-W(eR7~R`10yGfM}pQ2?PxCJ4BclIRYfyeR5aiU!_b+(E^0ZIQ%ttx zrt+xJf{+Ytr{((B$AvD@7#q*Bx<&I`Q#^bJGZKDE(!}Nx^P_X)q(tw3i~?yn6Puf$ zM0zG;@MVV1;zTEmZ;5_1NV02tWUJdx{6myb_YmnVX+5nmUWZAvYI@ojYU!Qx(@L{R zww`vEX{9lRzhevR9XSk_$OiI<+hj>L7AkfLxh$W%g-VW$zw$Y#VkKBPO0d@sV4DwMgB_7QRBb{NKqXD1@CLL}m|!8A pCs+hJsNM_5VvD$!Q;~ww4YcLgcG3pW=%fk*XdJ00QUe%9@DJYov5Wu! literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationPositionComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationPositionComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..4e55b25ad41c3172a8c3ef826adfaaafa6b484aa GIT binary patch literal 6111 zcmb_f*>e=f8UOXJ#I9B&SXSl+WeH%U6|f`@;Sd2`UDYVovMUyR{W0(Cg2hG*1p zIfgH*?^oh@R5uI?I^=?G-2%F!o} zX1j)sLY~rUOua}0YFr8zsI~08w4)5A5Qr8HQ;qt0flad(+%27)ZHy>`D1M$ZY}szN z95hTrkpx!shHj^ICoRv9*wS%iK5dxkefxU_l7p5_XG>WwPq1uAA03wIvwC4vrt?-& zCzEdG(=LgI=}Mcz{8*%QTY6-N?kPo->aAUQ-c4JB-h2Xpv@FP?G~K|6bh9I6nqier zdO#Meb1fSL;spj-p{1e|5m??EtSh^5DcpX*CWlIAW3gVCv^c8F2F>mWh<7nN+yD)aI6c zW^xy6hKbi}nDW4AaX{Kfb(V?1vF55dTv}waKByEn4oP<+L3jCyB+%M?FE!oJ=jypL z`}L8)*2ZDonJ$wKo)pkZ_o&{fq<%@SmGhdyAmb;q7@ zX7+KZ?oz07bvT)(n+-uLjh4V-hUv6^R?il7cR1T=3u_NC_KX0 z6%5Dqy1Xsfb{m7(jk-o5+smysmAiF)#*nGIqc-cKZR&~bRmW*wv#nIq1^$qI<_HBWf;p{4o zxU?)ggJqp8zyVfB5L~9}+8H<|PbT`TQ9CDh8>-JVgg$OiiG443a%aKHooUms8;@#e zK}N$CWMcS^hA|vuOY;h)pqoS4UAAr60^2%VSJJ(-Yo+y3*IJ*mrS8gfXu-4s+%R$F zDJ|DDysiYVo#o?0!;?6u;SIbg@KB|y)$kVH7T9|4W(6grVLLMSBR~&sH4TFp5?Ec$ zqcC%s9eMv{rGoL@7`~_B9eh8AcLjD-6A*^??n$iS2l%0e)9BS;!qRXZKhiLwW6Iz-gItSr&2jv*5(eQklVl>dp9&Z4`MQot433_Ef2az$(AV zm)bd<($iD5Ir;s74Q{TNrV~w%j|4rRpAwAFaJG-Cc@x6U)})%97X#j(8)s@w<$Xo9 z-TEAFW4=)R-nM5Z0qkuvdwbGre}Ul8wv*LGm!nZtNBL1I!%F^=Y37@f5LpL&F`^o=DBPh1hRyBR+-?k{D&ZYg#Fy9L1a;q3J&04pl}<%O5q|U=mX4GpPQ(^hFHyY)I{H#5Ix5` zHtvb3MPxy{;yZMoazwOT&S4y-G!?;B^hCur=0{JtRuXc-U+|)ylw;@*7~1$%4lMK| z78BRe;5(tckA}(6c=n5wr#FU3eNPO>$@myf1cLT5^h)yzU(nPbx8B6u6|1OcH5$YkED{f6g;&l_{?ET8wST5&OWk{o52umT|Oh~sdVxOxBDI*p_N+&8oy3^BJ z0_o=~LP|j;ka|I`4C!tve3X#xA*4N?>;TdyDngnphje}=NRxy#ITg}F)N`1S9wDTC zg!CvOJ?7~PA=N8Fk@O)=R)O?HITQo;E9X?XoLpr{lhYv06H-Y?^A#aw#6n2vL?uWI zp578j<4P~GSvo3!c)$1| zr)(|f)(U?sIk7c)FD&GJ3Gp=Jb`fcD32ovT^oz?Frt%03#**(vj>@P%kfMw_d6b!n)P-? zv-nFaFl&%sbqBWd+41lgwyEHJ5MG1zV`x#~@d@fC7{g)}AfKT6$aGu$+wxscZydFY zlgVhiNOmv_?Lg;>Kxb{{Cf2IV@q4=eO!&Qb)S1;$;_Q+=f>H1Fs05tlx{rSe&YSQJ I96{ax0my04P5=M^ literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationStatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location$LocationStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..7e31a588201d07dd41db4e992ad855afc5e2944e GIT binary patch literal 2602 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Location.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location.java similarity index 90% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Location.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location.java index b8347c43062..0c4b9153253 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Location.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Location.java @@ -1,1053 +1,1071 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import java.math.*; -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Details and position information for a physical place where services are provided and resources and participants may be stored, found, contained or accommodated. - */ -@ResourceDef(name="Location", profile="http://hl7.org/fhir/Profile/Location") -public class Location extends DomainResource { - - public enum LocationStatus implements FhirEnum { - /** - * The location is operational. - */ - ACTIVE, - /** - * The location is temporarily closed. - */ - SUSPENDED, - /** - * The location is no longer used. - */ - INACTIVE, - /** - * added to help the parsers - */ - NULL; - - public static final LocationStatusEnumFactory ENUM_FACTORY = new LocationStatusEnumFactory(); - - public static LocationStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("active".equals(codeString)) - return ACTIVE; - if ("suspended".equals(codeString)) - return SUSPENDED; - if ("inactive".equals(codeString)) - return INACTIVE; - throw new IllegalArgumentException("Unknown LocationStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case ACTIVE: return "active"; - case SUSPENDED: return "suspended"; - case INACTIVE: return "inactive"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case ACTIVE: return ""; - case SUSPENDED: return ""; - case INACTIVE: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case ACTIVE: return "The location is operational."; - case SUSPENDED: return "The location is temporarily closed."; - case INACTIVE: return "The location is no longer used."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case ACTIVE: return "active"; - case SUSPENDED: return "suspended"; - case INACTIVE: return "inactive"; - default: return "?"; - } - } - } - - public static class LocationStatusEnumFactory implements EnumFactory { - public LocationStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("active".equals(codeString)) - return LocationStatus.ACTIVE; - if ("suspended".equals(codeString)) - return LocationStatus.SUSPENDED; - if ("inactive".equals(codeString)) - return LocationStatus.INACTIVE; - throw new IllegalArgumentException("Unknown LocationStatus code '"+codeString+"'"); - } - public String toCode(LocationStatus code) throws IllegalArgumentException { - if (code == LocationStatus.ACTIVE) - return "active"; - if (code == LocationStatus.SUSPENDED) - return "suspended"; - if (code == LocationStatus.INACTIVE) - return "inactive"; - return "?"; - } - } - - public enum LocationMode implements FhirEnum { - /** - * The Location resource represents a specific instance of a Location. - */ - INSTANCE, - /** - * The Location represents a class of Locations. - */ - KIND, - /** - * added to help the parsers - */ - NULL; - - public static final LocationModeEnumFactory ENUM_FACTORY = new LocationModeEnumFactory(); - - public static LocationMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("instance".equals(codeString)) - return INSTANCE; - if ("kind".equals(codeString)) - return KIND; - throw new IllegalArgumentException("Unknown LocationMode code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case INSTANCE: return "instance"; - case KIND: return "kind"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case INSTANCE: return ""; - case KIND: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case INSTANCE: return "The Location resource represents a specific instance of a Location."; - case KIND: return "The Location represents a class of Locations."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case INSTANCE: return "instance"; - case KIND: return "kind"; - default: return "?"; - } - } - } - - public static class LocationModeEnumFactory implements EnumFactory { - public LocationMode fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("instance".equals(codeString)) - return LocationMode.INSTANCE; - if ("kind".equals(codeString)) - return LocationMode.KIND; - throw new IllegalArgumentException("Unknown LocationMode code '"+codeString+"'"); - } - public String toCode(LocationMode code) throws IllegalArgumentException { - if (code == LocationMode.INSTANCE) - return "instance"; - if (code == LocationMode.KIND) - return "kind"; - return "?"; - } - } - - @Block() - public static class LocationPositionComponent extends BackboneElement { - /** - * Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below). - */ - @Child(name="longitude", type={DecimalType.class}, order=1, min=1, max=1) - @Description(shortDefinition="Longitude as expressed in KML", formalDefinition="Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)." ) - protected DecimalType longitude; - - /** - * Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below). - */ - @Child(name="latitude", type={DecimalType.class}, order=2, min=1, max=1) - @Description(shortDefinition="Latitude as expressed in KML", formalDefinition="Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)." ) - protected DecimalType latitude; - - /** - * Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below). - */ - @Child(name="altitude", type={DecimalType.class}, order=3, min=0, max=1) - @Description(shortDefinition="Altitude as expressed in KML", formalDefinition="Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)." ) - protected DecimalType altitude; - - private static final long serialVersionUID = -74276134L; - - public LocationPositionComponent() { - super(); - } - - public LocationPositionComponent(DecimalType longitude, DecimalType latitude) { - super(); - this.longitude = longitude; - this.latitude = latitude; - } - - /** - * @return {@link #longitude} (Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below).). This is the underlying object with id, value and extensions. The accessor "getLongitude" gives direct access to the value - */ - public DecimalType getLongitudeElement() { - if (this.longitude == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create LocationPositionComponent.longitude"); - else if (Configuration.doAutoCreate()) - this.longitude = new DecimalType(); - return this.longitude; - } - - public boolean hasLongitudeElement() { - return this.longitude != null && !this.longitude.isEmpty(); - } - - public boolean hasLongitude() { - return this.longitude != null && !this.longitude.isEmpty(); - } - - /** - * @param value {@link #longitude} (Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below).). This is the underlying object with id, value and extensions. The accessor "getLongitude" gives direct access to the value - */ - public LocationPositionComponent setLongitudeElement(DecimalType value) { - this.longitude = value; - return this; - } - - /** - * @return Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below). - */ - public BigDecimal getLongitude() { - return this.longitude == null ? null : this.longitude.getValue(); - } - - /** - * @param value Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below). - */ - public LocationPositionComponent setLongitude(BigDecimal value) { - if (this.longitude == null) - this.longitude = new DecimalType(); - this.longitude.setValue(value); - return this; - } - - /** - * @return {@link #latitude} (Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below).). This is the underlying object with id, value and extensions. The accessor "getLatitude" gives direct access to the value - */ - public DecimalType getLatitudeElement() { - if (this.latitude == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create LocationPositionComponent.latitude"); - else if (Configuration.doAutoCreate()) - this.latitude = new DecimalType(); - return this.latitude; - } - - public boolean hasLatitudeElement() { - return this.latitude != null && !this.latitude.isEmpty(); - } - - public boolean hasLatitude() { - return this.latitude != null && !this.latitude.isEmpty(); - } - - /** - * @param value {@link #latitude} (Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below).). This is the underlying object with id, value and extensions. The accessor "getLatitude" gives direct access to the value - */ - public LocationPositionComponent setLatitudeElement(DecimalType value) { - this.latitude = value; - return this; - } - - /** - * @return Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below). - */ - public BigDecimal getLatitude() { - return this.latitude == null ? null : this.latitude.getValue(); - } - - /** - * @param value Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below). - */ - public LocationPositionComponent setLatitude(BigDecimal value) { - if (this.latitude == null) - this.latitude = new DecimalType(); - this.latitude.setValue(value); - return this; - } - - /** - * @return {@link #altitude} (Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below).). This is the underlying object with id, value and extensions. The accessor "getAltitude" gives direct access to the value - */ - public DecimalType getAltitudeElement() { - if (this.altitude == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create LocationPositionComponent.altitude"); - else if (Configuration.doAutoCreate()) - this.altitude = new DecimalType(); - return this.altitude; - } - - public boolean hasAltitudeElement() { - return this.altitude != null && !this.altitude.isEmpty(); - } - - public boolean hasAltitude() { - return this.altitude != null && !this.altitude.isEmpty(); - } - - /** - * @param value {@link #altitude} (Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below).). This is the underlying object with id, value and extensions. The accessor "getAltitude" gives direct access to the value - */ - public LocationPositionComponent setAltitudeElement(DecimalType value) { - this.altitude = value; - return this; - } - - /** - * @return Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below). - */ - public BigDecimal getAltitude() { - return this.altitude == null ? null : this.altitude.getValue(); - } - - /** - * @param value Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below). - */ - public LocationPositionComponent setAltitude(BigDecimal value) { - if (value == null) - this.altitude = null; - else { - if (this.altitude == null) - this.altitude = new DecimalType(); - this.altitude.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("longitude", "decimal", "Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below).", 0, java.lang.Integer.MAX_VALUE, longitude)); - childrenList.add(new Property("latitude", "decimal", "Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below).", 0, java.lang.Integer.MAX_VALUE, latitude)); - childrenList.add(new Property("altitude", "decimal", "Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below).", 0, java.lang.Integer.MAX_VALUE, altitude)); - } - - public LocationPositionComponent copy() { - LocationPositionComponent dst = new LocationPositionComponent(); - copyValues(dst); - dst.longitude = longitude == null ? null : longitude.copy(); - dst.latitude = latitude == null ? null : latitude.copy(); - dst.altitude = altitude == null ? null : altitude.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (longitude == null || longitude.isEmpty()) && (latitude == null || latitude.isEmpty()) - && (altitude == null || altitude.isEmpty()); - } - - } - - /** - * Unique code or number identifying the location to its users. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Unique code or number identifying the location to its users", formalDefinition="Unique code or number identifying the location to its users." ) - protected List identifier; - - /** - * Name of the location as used by humans. Does not need to be unique. - */ - @Child(name="name", type={StringType.class}, order=0, min=0, max=1) - @Description(shortDefinition="Name of the location as used by humans", formalDefinition="Name of the location as used by humans. Does not need to be unique." ) - protected StringType name; - - /** - * Description of the Location, which helps in finding or referencing the place. - */ - @Child(name="description", type={StringType.class}, order=1, min=0, max=1) - @Description(shortDefinition="Description of the Location, which helps in finding or referencing the place", formalDefinition="Description of the Location, which helps in finding or referencing the place." ) - protected StringType description; - - /** - * Indicates the type of function performed at the location. - */ - @Child(name="type", type={CodeableConcept.class}, order=2, min=0, max=1) - @Description(shortDefinition="Indicates the type of function performed at the location", formalDefinition="Indicates the type of function performed at the location." ) - protected CodeableConcept type; - - /** - * The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites. - */ - @Child(name="telecom", type={ContactPoint.class}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Contact details of the location", formalDefinition="The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites." ) - protected List telecom; - - /** - * Physical location. - */ - @Child(name="address", type={Address.class}, order=4, min=0, max=1) - @Description(shortDefinition="Physical location", formalDefinition="Physical location." ) - protected Address address; - - /** - * Physical form of the location, e.g. building, room, vehicle, road. - */ - @Child(name="physicalType", type={CodeableConcept.class}, order=5, min=0, max=1) - @Description(shortDefinition="Physical form of the location", formalDefinition="Physical form of the location, e.g. building, room, vehicle, road." ) - protected CodeableConcept physicalType; - - /** - * The absolute geographic location of the Location, expressed in a KML compatible manner (see notes below for KML). - */ - @Child(name="position", type={}, order=6, min=0, max=1) - @Description(shortDefinition="The absolute geographic location", formalDefinition="The absolute geographic location of the Location, expressed in a KML compatible manner (see notes below for KML)." ) - protected LocationPositionComponent position; - - /** - * The organization that is responsible for the provisioning and upkeep of the location. - */ - @Child(name="managingOrganization", type={Organization.class}, order=7, min=0, max=1) - @Description(shortDefinition="The organization that is responsible for the provisioning and upkeep of the location", formalDefinition="The organization that is responsible for the provisioning and upkeep of the location." ) - protected Reference managingOrganization; - - /** - * The actual object that is the target of the reference (The organization that is responsible for the provisioning and upkeep of the location.) - */ - protected Organization managingOrganizationTarget; - - /** - * active | suspended | inactive. - */ - @Child(name="status", type={CodeType.class}, order=8, min=0, max=1) - @Description(shortDefinition="active | suspended | inactive", formalDefinition="active | suspended | inactive." ) - protected Enumeration status; - - /** - * Another Location which this Location is physically part of. - */ - @Child(name="partOf", type={Location.class}, order=9, min=0, max=1) - @Description(shortDefinition="Another Location which this Location is physically part of", formalDefinition="Another Location which this Location is physically part of." ) - protected Reference partOf; - - /** - * The actual object that is the target of the reference (Another Location which this Location is physically part of.) - */ - protected Location partOfTarget; - - /** - * Indicates whether a resource instance represents a specific location or a class of locations. - */ - @Child(name="mode", type={CodeType.class}, order=10, min=0, max=1) - @Description(shortDefinition="instance | kind", formalDefinition="Indicates whether a resource instance represents a specific location or a class of locations." ) - protected Enumeration mode; - - private static final long serialVersionUID = -1202061661L; - - public Location() { - super(); - } - - /** - * @return {@link #identifier} (Unique code or number identifying the location to its users.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Unique code or number identifying the location to its users.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #name} (Name of the location as used by humans. Does not need to be unique.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Location.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (Name of the location as used by humans. Does not need to be unique.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public Location setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return Name of the location as used by humans. Does not need to be unique. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value Name of the location as used by humans. Does not need to be unique. - */ - public Location setName(String value) { - if (Utilities.noString(value)) - this.name = null; - else { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - } - return this; - } - - /** - * @return {@link #description} (Description of the Location, which helps in finding or referencing the place.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public StringType getDescriptionElement() { - if (this.description == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Location.description"); - else if (Configuration.doAutoCreate()) - this.description = new StringType(); - return this.description; - } - - public boolean hasDescriptionElement() { - return this.description != null && !this.description.isEmpty(); - } - - public boolean hasDescription() { - return this.description != null && !this.description.isEmpty(); - } - - /** - * @param value {@link #description} (Description of the Location, which helps in finding or referencing the place.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value - */ - public Location setDescriptionElement(StringType value) { - this.description = value; - return this; - } - - /** - * @return Description of the Location, which helps in finding or referencing the place. - */ - public String getDescription() { - return this.description == null ? null : this.description.getValue(); - } - - /** - * @param value Description of the Location, which helps in finding or referencing the place. - */ - public Location setDescription(String value) { - if (Utilities.noString(value)) - this.description = null; - else { - if (this.description == null) - this.description = new StringType(); - this.description.setValue(value); - } - return this; - } - - /** - * @return {@link #type} (Indicates the type of function performed at the location.) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Location.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Indicates the type of function performed at the location.) - */ - public Location setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #telecom} (The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites.) - */ - public List getTelecom() { - if (this.telecom == null) - this.telecom = new ArrayList(); - return this.telecom; - } - - public boolean hasTelecom() { - if (this.telecom == null) - return false; - for (ContactPoint item : this.telecom) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #telecom} (The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites.) - */ - // syntactic sugar - public ContactPoint addTelecom() { //3 - ContactPoint t = new ContactPoint(); - if (this.telecom == null) - this.telecom = new ArrayList(); - this.telecom.add(t); - return t; - } - - /** - * @return {@link #address} (Physical location.) - */ - public Address getAddress() { - if (this.address == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Location.address"); - else if (Configuration.doAutoCreate()) - this.address = new Address(); - return this.address; - } - - public boolean hasAddress() { - return this.address != null && !this.address.isEmpty(); - } - - /** - * @param value {@link #address} (Physical location.) - */ - public Location setAddress(Address value) { - this.address = value; - return this; - } - - /** - * @return {@link #physicalType} (Physical form of the location, e.g. building, room, vehicle, road.) - */ - public CodeableConcept getPhysicalType() { - if (this.physicalType == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Location.physicalType"); - else if (Configuration.doAutoCreate()) - this.physicalType = new CodeableConcept(); - return this.physicalType; - } - - public boolean hasPhysicalType() { - return this.physicalType != null && !this.physicalType.isEmpty(); - } - - /** - * @param value {@link #physicalType} (Physical form of the location, e.g. building, room, vehicle, road.) - */ - public Location setPhysicalType(CodeableConcept value) { - this.physicalType = value; - return this; - } - - /** - * @return {@link #position} (The absolute geographic location of the Location, expressed in a KML compatible manner (see notes below for KML).) - */ - public LocationPositionComponent getPosition() { - if (this.position == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Location.position"); - else if (Configuration.doAutoCreate()) - this.position = new LocationPositionComponent(); - return this.position; - } - - public boolean hasPosition() { - return this.position != null && !this.position.isEmpty(); - } - - /** - * @param value {@link #position} (The absolute geographic location of the Location, expressed in a KML compatible manner (see notes below for KML).) - */ - public Location setPosition(LocationPositionComponent value) { - this.position = value; - return this; - } - - /** - * @return {@link #managingOrganization} (The organization that is responsible for the provisioning and upkeep of the location.) - */ - public Reference getManagingOrganization() { - if (this.managingOrganization == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Location.managingOrganization"); - else if (Configuration.doAutoCreate()) - this.managingOrganization = new Reference(); - return this.managingOrganization; - } - - public boolean hasManagingOrganization() { - return this.managingOrganization != null && !this.managingOrganization.isEmpty(); - } - - /** - * @param value {@link #managingOrganization} (The organization that is responsible for the provisioning and upkeep of the location.) - */ - public Location setManagingOrganization(Reference value) { - this.managingOrganization = value; - return this; - } - - /** - * @return {@link #managingOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization that is responsible for the provisioning and upkeep of the location.) - */ - public Organization getManagingOrganizationTarget() { - if (this.managingOrganizationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Location.managingOrganization"); - else if (Configuration.doAutoCreate()) - this.managingOrganizationTarget = new Organization(); - return this.managingOrganizationTarget; - } - - /** - * @param value {@link #managingOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization that is responsible for the provisioning and upkeep of the location.) - */ - public Location setManagingOrganizationTarget(Organization value) { - this.managingOrganizationTarget = value; - return this; - } - - /** - * @return {@link #status} (active | suspended | inactive.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Location.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (active | suspended | inactive.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Location setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return active | suspended | inactive. - */ - public LocationStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value active | suspended | inactive. - */ - public Location setStatus(LocationStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(LocationStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #partOf} (Another Location which this Location is physically part of.) - */ - public Reference getPartOf() { - if (this.partOf == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Location.partOf"); - else if (Configuration.doAutoCreate()) - this.partOf = new Reference(); - return this.partOf; - } - - public boolean hasPartOf() { - return this.partOf != null && !this.partOf.isEmpty(); - } - - /** - * @param value {@link #partOf} (Another Location which this Location is physically part of.) - */ - public Location setPartOf(Reference value) { - this.partOf = value; - return this; - } - - /** - * @return {@link #partOf} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Another Location which this Location is physically part of.) - */ - public Location getPartOfTarget() { - if (this.partOfTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Location.partOf"); - else if (Configuration.doAutoCreate()) - this.partOfTarget = new Location(); - return this.partOfTarget; - } - - /** - * @param value {@link #partOf} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Another Location which this Location is physically part of.) - */ - public Location setPartOfTarget(Location value) { - this.partOfTarget = value; - return this; - } - - /** - * @return {@link #mode} (Indicates whether a resource instance represents a specific location or a class of locations.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public Enumeration getModeElement() { - if (this.mode == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Location.mode"); - else if (Configuration.doAutoCreate()) - this.mode = new Enumeration(); - return this.mode; - } - - public boolean hasModeElement() { - return this.mode != null && !this.mode.isEmpty(); - } - - public boolean hasMode() { - return this.mode != null && !this.mode.isEmpty(); - } - - /** - * @param value {@link #mode} (Indicates whether a resource instance represents a specific location or a class of locations.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value - */ - public Location setModeElement(Enumeration value) { - this.mode = value; - return this; - } - - /** - * @return Indicates whether a resource instance represents a specific location or a class of locations. - */ - public LocationMode getMode() { - return this.mode == null ? null : this.mode.getValue(); - } - - /** - * @param value Indicates whether a resource instance represents a specific location or a class of locations. - */ - public Location setMode(LocationMode value) { - if (value == null) - this.mode = null; - else { - if (this.mode == null) - this.mode = new Enumeration(LocationMode.ENUM_FACTORY); - this.mode.setValue(value); - } - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "Unique code or number identifying the location to its users.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("name", "string", "Name of the location as used by humans. Does not need to be unique.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("description", "string", "Description of the Location, which helps in finding or referencing the place.", 0, java.lang.Integer.MAX_VALUE, description)); - childrenList.add(new Property("type", "CodeableConcept", "Indicates the type of function performed at the location.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("telecom", "ContactPoint", "The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites.", 0, java.lang.Integer.MAX_VALUE, telecom)); - childrenList.add(new Property("address", "Address", "Physical location.", 0, java.lang.Integer.MAX_VALUE, address)); - childrenList.add(new Property("physicalType", "CodeableConcept", "Physical form of the location, e.g. building, room, vehicle, road.", 0, java.lang.Integer.MAX_VALUE, physicalType)); - childrenList.add(new Property("position", "", "The absolute geographic location of the Location, expressed in a KML compatible manner (see notes below for KML).", 0, java.lang.Integer.MAX_VALUE, position)); - childrenList.add(new Property("managingOrganization", "Reference(Organization)", "The organization that is responsible for the provisioning and upkeep of the location.", 0, java.lang.Integer.MAX_VALUE, managingOrganization)); - childrenList.add(new Property("status", "code", "active | suspended | inactive.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("partOf", "Reference(Location)", "Another Location which this Location is physically part of.", 0, java.lang.Integer.MAX_VALUE, partOf)); - childrenList.add(new Property("mode", "code", "Indicates whether a resource instance represents a specific location or a class of locations.", 0, java.lang.Integer.MAX_VALUE, mode)); - } - - public Location copy() { - Location dst = new Location(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.name = name == null ? null : name.copy(); - dst.description = description == null ? null : description.copy(); - dst.type = type == null ? null : type.copy(); - if (telecom != null) { - dst.telecom = new ArrayList(); - for (ContactPoint i : telecom) - dst.telecom.add(i.copy()); - }; - dst.address = address == null ? null : address.copy(); - dst.physicalType = physicalType == null ? null : physicalType.copy(); - dst.position = position == null ? null : position.copy(); - dst.managingOrganization = managingOrganization == null ? null : managingOrganization.copy(); - dst.status = status == null ? null : status.copy(); - dst.partOf = partOf == null ? null : partOf.copy(); - dst.mode = mode == null ? null : mode.copy(); - return dst; - } - - protected Location typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (name == null || name.isEmpty()) - && (description == null || description.isEmpty()) && (type == null || type.isEmpty()) && (telecom == null || telecom.isEmpty()) - && (address == null || address.isEmpty()) && (physicalType == null || physicalType.isEmpty()) - && (position == null || position.isEmpty()) && (managingOrganization == null || managingOrganization.isEmpty()) - && (status == null || status.isEmpty()) && (partOf == null || partOf.isEmpty()) && (mode == null || mode.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Location; - } - - @SearchParamDefinition(name="organization", path="Location.managingOrganization", description="Searches for locations that are managed by the provided organization", type="reference" ) - public static final String SP_ORGANIZATION = "organization"; - @SearchParamDefinition(name="near", path="", description="The coordinates expressed as [lat],[long] (using KML, see notes) to find locations near to (servers may search using a square rather than a circle for efficiency)", type="token" ) - public static final String SP_NEAR = "near"; - @SearchParamDefinition(name="partof", path="Location.partOf", description="The location of which this location is a part", type="reference" ) - public static final String SP_PARTOF = "partof"; - @SearchParamDefinition(name="status", path="Location.status", description="Searches for locations with a specific kind of status", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="address", path="Location.address", description="A (part of the) address of the location", type="string" ) - public static final String SP_ADDRESS = "address"; - @SearchParamDefinition(name="name", path="Location.name", description="A (portion of the) name of the location", type="string" ) - public static final String SP_NAME = "name"; - @SearchParamDefinition(name="near-distance", path="", description="A distance quantity to limit the near search to locations within a specific distance", type="token" ) - public static final String SP_NEARDISTANCE = "near-distance"; - @SearchParamDefinition(name="type", path="Location.type", description="A code for the type of location", type="token" ) - public static final String SP_TYPE = "type"; - @SearchParamDefinition(name="identifier", path="Location.identifier", description="Unique code or number identifying the location to its users", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import java.math.*; +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Details and position information for a physical place where services are provided and resources and participants may be stored, found, contained or accommodated. + */ +@ResourceDef(name="Location", profile="http://hl7.org/fhir/Profile/Location") +public class Location extends DomainResource { + + public enum LocationStatus { + /** + * The location is operational. + */ + ACTIVE, + /** + * The location is temporarily closed. + */ + SUSPENDED, + /** + * The location is no longer used. + */ + INACTIVE, + /** + * added to help the parsers + */ + NULL; + public static LocationStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("active".equals(codeString)) + return ACTIVE; + if ("suspended".equals(codeString)) + return SUSPENDED; + if ("inactive".equals(codeString)) + return INACTIVE; + throw new Exception("Unknown LocationStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case ACTIVE: return "active"; + case SUSPENDED: return "suspended"; + case INACTIVE: return "inactive"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case ACTIVE: return ""; + case SUSPENDED: return ""; + case INACTIVE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case ACTIVE: return "The location is operational."; + case SUSPENDED: return "The location is temporarily closed."; + case INACTIVE: return "The location is no longer used."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case ACTIVE: return "active"; + case SUSPENDED: return "suspended"; + case INACTIVE: return "inactive"; + default: return "?"; + } + } + } + + public static class LocationStatusEnumFactory implements EnumFactory { + public LocationStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("active".equals(codeString)) + return LocationStatus.ACTIVE; + if ("suspended".equals(codeString)) + return LocationStatus.SUSPENDED; + if ("inactive".equals(codeString)) + return LocationStatus.INACTIVE; + throw new IllegalArgumentException("Unknown LocationStatus code '"+codeString+"'"); + } + public String toCode(LocationStatus code) { + if (code == LocationStatus.ACTIVE) + return "active"; + if (code == LocationStatus.SUSPENDED) + return "suspended"; + if (code == LocationStatus.INACTIVE) + return "inactive"; + return "?"; + } + } + + public enum LocationMode { + /** + * The Location resource represents a specific instance of a Location. + */ + INSTANCE, + /** + * The Location represents a class of Locations. + */ + KIND, + /** + * added to help the parsers + */ + NULL; + public static LocationMode fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("instance".equals(codeString)) + return INSTANCE; + if ("kind".equals(codeString)) + return KIND; + throw new Exception("Unknown LocationMode code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case INSTANCE: return "instance"; + case KIND: return "kind"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case INSTANCE: return ""; + case KIND: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case INSTANCE: return "The Location resource represents a specific instance of a Location."; + case KIND: return "The Location represents a class of Locations."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case INSTANCE: return "instance"; + case KIND: return "kind"; + default: return "?"; + } + } + } + + public static class LocationModeEnumFactory implements EnumFactory { + public LocationMode fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("instance".equals(codeString)) + return LocationMode.INSTANCE; + if ("kind".equals(codeString)) + return LocationMode.KIND; + throw new IllegalArgumentException("Unknown LocationMode code '"+codeString+"'"); + } + public String toCode(LocationMode code) { + if (code == LocationMode.INSTANCE) + return "instance"; + if (code == LocationMode.KIND) + return "kind"; + return "?"; + } + } + + @Block() + public static class LocationPositionComponent extends BackboneElement { + /** + * Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below). + */ + @Child(name="longitude", type={DecimalType.class}, order=1, min=1, max=1) + @Description(shortDefinition="Longitude as expressed in KML", formalDefinition="Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)." ) + protected DecimalType longitude; + + /** + * Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below). + */ + @Child(name="latitude", type={DecimalType.class}, order=2, min=1, max=1) + @Description(shortDefinition="Latitude as expressed in KML", formalDefinition="Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)." ) + protected DecimalType latitude; + + /** + * Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below). + */ + @Child(name="altitude", type={DecimalType.class}, order=3, min=0, max=1) + @Description(shortDefinition="Altitude as expressed in KML", formalDefinition="Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)." ) + protected DecimalType altitude; + + private static final long serialVersionUID = -74276134L; + + public LocationPositionComponent() { + super(); + } + + public LocationPositionComponent(DecimalType longitude, DecimalType latitude) { + super(); + this.longitude = longitude; + this.latitude = latitude; + } + + /** + * @return {@link #longitude} (Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below).). This is the underlying object with id, value and extensions. The accessor "getLongitude" gives direct access to the value + */ + public DecimalType getLongitudeElement() { + if (this.longitude == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create LocationPositionComponent.longitude"); + else if (Configuration.doAutoCreate()) + this.longitude = new DecimalType(); // bb + return this.longitude; + } + + public boolean hasLongitudeElement() { + return this.longitude != null && !this.longitude.isEmpty(); + } + + public boolean hasLongitude() { + return this.longitude != null && !this.longitude.isEmpty(); + } + + /** + * @param value {@link #longitude} (Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below).). This is the underlying object with id, value and extensions. The accessor "getLongitude" gives direct access to the value + */ + public LocationPositionComponent setLongitudeElement(DecimalType value) { + this.longitude = value; + return this; + } + + /** + * @return Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below). + */ + public BigDecimal getLongitude() { + return this.longitude == null ? null : this.longitude.getValue(); + } + + /** + * @param value Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below). + */ + public LocationPositionComponent setLongitude(BigDecimal value) { + if (this.longitude == null) + this.longitude = new DecimalType(); + this.longitude.setValue(value); + return this; + } + + /** + * @return {@link #latitude} (Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below).). This is the underlying object with id, value and extensions. The accessor "getLatitude" gives direct access to the value + */ + public DecimalType getLatitudeElement() { + if (this.latitude == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create LocationPositionComponent.latitude"); + else if (Configuration.doAutoCreate()) + this.latitude = new DecimalType(); // bb + return this.latitude; + } + + public boolean hasLatitudeElement() { + return this.latitude != null && !this.latitude.isEmpty(); + } + + public boolean hasLatitude() { + return this.latitude != null && !this.latitude.isEmpty(); + } + + /** + * @param value {@link #latitude} (Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below).). This is the underlying object with id, value and extensions. The accessor "getLatitude" gives direct access to the value + */ + public LocationPositionComponent setLatitudeElement(DecimalType value) { + this.latitude = value; + return this; + } + + /** + * @return Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below). + */ + public BigDecimal getLatitude() { + return this.latitude == null ? null : this.latitude.getValue(); + } + + /** + * @param value Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below). + */ + public LocationPositionComponent setLatitude(BigDecimal value) { + if (this.latitude == null) + this.latitude = new DecimalType(); + this.latitude.setValue(value); + return this; + } + + /** + * @return {@link #altitude} (Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below).). This is the underlying object with id, value and extensions. The accessor "getAltitude" gives direct access to the value + */ + public DecimalType getAltitudeElement() { + if (this.altitude == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create LocationPositionComponent.altitude"); + else if (Configuration.doAutoCreate()) + this.altitude = new DecimalType(); // bb + return this.altitude; + } + + public boolean hasAltitudeElement() { + return this.altitude != null && !this.altitude.isEmpty(); + } + + public boolean hasAltitude() { + return this.altitude != null && !this.altitude.isEmpty(); + } + + /** + * @param value {@link #altitude} (Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below).). This is the underlying object with id, value and extensions. The accessor "getAltitude" gives direct access to the value + */ + public LocationPositionComponent setAltitudeElement(DecimalType value) { + this.altitude = value; + return this; + } + + /** + * @return Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below). + */ + public BigDecimal getAltitude() { + return this.altitude == null ? null : this.altitude.getValue(); + } + + /** + * @param value Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below). + */ + public LocationPositionComponent setAltitude(BigDecimal value) { + if (value == null) + this.altitude = null; + else { + if (this.altitude == null) + this.altitude = new DecimalType(); + this.altitude.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("longitude", "decimal", "Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below).", 0, java.lang.Integer.MAX_VALUE, longitude)); + childrenList.add(new Property("latitude", "decimal", "Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below).", 0, java.lang.Integer.MAX_VALUE, latitude)); + childrenList.add(new Property("altitude", "decimal", "Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below).", 0, java.lang.Integer.MAX_VALUE, altitude)); + } + + public LocationPositionComponent copy() { + LocationPositionComponent dst = new LocationPositionComponent(); + copyValues(dst); + dst.longitude = longitude == null ? null : longitude.copy(); + dst.latitude = latitude == null ? null : latitude.copy(); + dst.altitude = altitude == null ? null : altitude.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof LocationPositionComponent)) + return false; + LocationPositionComponent o = (LocationPositionComponent) other; + return compareDeep(longitude, o.longitude, true) && compareDeep(latitude, o.latitude, true) && compareDeep(altitude, o.altitude, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof LocationPositionComponent)) + return false; + LocationPositionComponent o = (LocationPositionComponent) other; + return compareValues(longitude, o.longitude, true) && compareValues(latitude, o.latitude, true) && compareValues(altitude, o.altitude, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (longitude == null || longitude.isEmpty()) && (latitude == null || latitude.isEmpty()) + && (altitude == null || altitude.isEmpty()); + } + + } + + /** + * Unique code or number identifying the location to its users. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Unique code or number identifying the location to its users", formalDefinition="Unique code or number identifying the location to its users." ) + protected List identifier; + + /** + * Name of the location as used by humans. Does not need to be unique. + */ + @Child(name="name", type={StringType.class}, order=0, min=0, max=1) + @Description(shortDefinition="Name of the location as used by humans", formalDefinition="Name of the location as used by humans. Does not need to be unique." ) + protected StringType name; + + /** + * Description of the Location, which helps in finding or referencing the place. + */ + @Child(name="description", type={StringType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Description of the Location, which helps in finding or referencing the place", formalDefinition="Description of the Location, which helps in finding or referencing the place." ) + protected StringType description; + + /** + * Indicates the type of function performed at the location. + */ + @Child(name="type", type={CodeableConcept.class}, order=2, min=0, max=1) + @Description(shortDefinition="Indicates the type of function performed at the location", formalDefinition="Indicates the type of function performed at the location." ) + protected CodeableConcept type; + + /** + * The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites. + */ + @Child(name="telecom", type={ContactPoint.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Contact details of the location", formalDefinition="The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites." ) + protected List telecom; + + /** + * Physical location. + */ + @Child(name="address", type={Address.class}, order=4, min=0, max=1) + @Description(shortDefinition="Physical location", formalDefinition="Physical location." ) + protected Address address; + + /** + * Physical form of the location, e.g. building, room, vehicle, road. + */ + @Child(name="physicalType", type={CodeableConcept.class}, order=5, min=0, max=1) + @Description(shortDefinition="Physical form of the location", formalDefinition="Physical form of the location, e.g. building, room, vehicle, road." ) + protected CodeableConcept physicalType; + + /** + * The absolute geographic location of the Location, expressed in a KML compatible manner (see notes below for KML). + */ + @Child(name="position", type={}, order=6, min=0, max=1) + @Description(shortDefinition="The absolute geographic location", formalDefinition="The absolute geographic location of the Location, expressed in a KML compatible manner (see notes below for KML)." ) + protected LocationPositionComponent position; + + /** + * The organization that is responsible for the provisioning and upkeep of the location. + */ + @Child(name="managingOrganization", type={Organization.class}, order=7, min=0, max=1) + @Description(shortDefinition="The organization that is responsible for the provisioning and upkeep of the location", formalDefinition="The organization that is responsible for the provisioning and upkeep of the location." ) + protected Reference managingOrganization; + + /** + * The actual object that is the target of the reference (The organization that is responsible for the provisioning and upkeep of the location.) + */ + protected Organization managingOrganizationTarget; + + /** + * active | suspended | inactive. + */ + @Child(name="status", type={CodeType.class}, order=8, min=0, max=1) + @Description(shortDefinition="active | suspended | inactive", formalDefinition="active | suspended | inactive." ) + protected Enumeration status; + + /** + * Another Location which this Location is physically part of. + */ + @Child(name="partOf", type={Location.class}, order=9, min=0, max=1) + @Description(shortDefinition="Another Location which this Location is physically part of", formalDefinition="Another Location which this Location is physically part of." ) + protected Reference partOf; + + /** + * The actual object that is the target of the reference (Another Location which this Location is physically part of.) + */ + protected Location partOfTarget; + + /** + * Indicates whether a resource instance represents a specific location or a class of locations. + */ + @Child(name="mode", type={CodeType.class}, order=10, min=0, max=1) + @Description(shortDefinition="instance | kind", formalDefinition="Indicates whether a resource instance represents a specific location or a class of locations." ) + protected Enumeration mode; + + private static final long serialVersionUID = -1202061661L; + + public Location() { + super(); + } + + /** + * @return {@link #identifier} (Unique code or number identifying the location to its users.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Unique code or number identifying the location to its users.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #name} (Name of the location as used by humans. Does not need to be unique.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Location.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (Name of the location as used by humans. Does not need to be unique.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public Location setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return Name of the location as used by humans. Does not need to be unique. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value Name of the location as used by humans. Does not need to be unique. + */ + public Location setName(String value) { + if (Utilities.noString(value)) + this.name = null; + else { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + } + return this; + } + + /** + * @return {@link #description} (Description of the Location, which helps in finding or referencing the place.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public StringType getDescriptionElement() { + if (this.description == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Location.description"); + else if (Configuration.doAutoCreate()) + this.description = new StringType(); // bb + return this.description; + } + + public boolean hasDescriptionElement() { + return this.description != null && !this.description.isEmpty(); + } + + public boolean hasDescription() { + return this.description != null && !this.description.isEmpty(); + } + + /** + * @param value {@link #description} (Description of the Location, which helps in finding or referencing the place.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value + */ + public Location setDescriptionElement(StringType value) { + this.description = value; + return this; + } + + /** + * @return Description of the Location, which helps in finding or referencing the place. + */ + public String getDescription() { + return this.description == null ? null : this.description.getValue(); + } + + /** + * @param value Description of the Location, which helps in finding or referencing the place. + */ + public Location setDescription(String value) { + if (Utilities.noString(value)) + this.description = null; + else { + if (this.description == null) + this.description = new StringType(); + this.description.setValue(value); + } + return this; + } + + /** + * @return {@link #type} (Indicates the type of function performed at the location.) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Location.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Indicates the type of function performed at the location.) + */ + public Location setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #telecom} (The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites.) + */ + public List getTelecom() { + if (this.telecom == null) + this.telecom = new ArrayList(); + return this.telecom; + } + + public boolean hasTelecom() { + if (this.telecom == null) + return false; + for (ContactPoint item : this.telecom) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #telecom} (The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites.) + */ + // syntactic sugar + public ContactPoint addTelecom() { //3 + ContactPoint t = new ContactPoint(); + if (this.telecom == null) + this.telecom = new ArrayList(); + this.telecom.add(t); + return t; + } + + /** + * @return {@link #address} (Physical location.) + */ + public Address getAddress() { + if (this.address == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Location.address"); + else if (Configuration.doAutoCreate()) + this.address = new Address(); // cc + return this.address; + } + + public boolean hasAddress() { + return this.address != null && !this.address.isEmpty(); + } + + /** + * @param value {@link #address} (Physical location.) + */ + public Location setAddress(Address value) { + this.address = value; + return this; + } + + /** + * @return {@link #physicalType} (Physical form of the location, e.g. building, room, vehicle, road.) + */ + public CodeableConcept getPhysicalType() { + if (this.physicalType == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Location.physicalType"); + else if (Configuration.doAutoCreate()) + this.physicalType = new CodeableConcept(); // cc + return this.physicalType; + } + + public boolean hasPhysicalType() { + return this.physicalType != null && !this.physicalType.isEmpty(); + } + + /** + * @param value {@link #physicalType} (Physical form of the location, e.g. building, room, vehicle, road.) + */ + public Location setPhysicalType(CodeableConcept value) { + this.physicalType = value; + return this; + } + + /** + * @return {@link #position} (The absolute geographic location of the Location, expressed in a KML compatible manner (see notes below for KML).) + */ + public LocationPositionComponent getPosition() { + if (this.position == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Location.position"); + else if (Configuration.doAutoCreate()) + this.position = new LocationPositionComponent(); // cc + return this.position; + } + + public boolean hasPosition() { + return this.position != null && !this.position.isEmpty(); + } + + /** + * @param value {@link #position} (The absolute geographic location of the Location, expressed in a KML compatible manner (see notes below for KML).) + */ + public Location setPosition(LocationPositionComponent value) { + this.position = value; + return this; + } + + /** + * @return {@link #managingOrganization} (The organization that is responsible for the provisioning and upkeep of the location.) + */ + public Reference getManagingOrganization() { + if (this.managingOrganization == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Location.managingOrganization"); + else if (Configuration.doAutoCreate()) + this.managingOrganization = new Reference(); // cc + return this.managingOrganization; + } + + public boolean hasManagingOrganization() { + return this.managingOrganization != null && !this.managingOrganization.isEmpty(); + } + + /** + * @param value {@link #managingOrganization} (The organization that is responsible for the provisioning and upkeep of the location.) + */ + public Location setManagingOrganization(Reference value) { + this.managingOrganization = value; + return this; + } + + /** + * @return {@link #managingOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization that is responsible for the provisioning and upkeep of the location.) + */ + public Organization getManagingOrganizationTarget() { + if (this.managingOrganizationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Location.managingOrganization"); + else if (Configuration.doAutoCreate()) + this.managingOrganizationTarget = new Organization(); // aa + return this.managingOrganizationTarget; + } + + /** + * @param value {@link #managingOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization that is responsible for the provisioning and upkeep of the location.) + */ + public Location setManagingOrganizationTarget(Organization value) { + this.managingOrganizationTarget = value; + return this; + } + + /** + * @return {@link #status} (active | suspended | inactive.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Location.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new LocationStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (active | suspended | inactive.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Location setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return active | suspended | inactive. + */ + public LocationStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value active | suspended | inactive. + */ + public Location setStatus(LocationStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new LocationStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #partOf} (Another Location which this Location is physically part of.) + */ + public Reference getPartOf() { + if (this.partOf == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Location.partOf"); + else if (Configuration.doAutoCreate()) + this.partOf = new Reference(); // cc + return this.partOf; + } + + public boolean hasPartOf() { + return this.partOf != null && !this.partOf.isEmpty(); + } + + /** + * @param value {@link #partOf} (Another Location which this Location is physically part of.) + */ + public Location setPartOf(Reference value) { + this.partOf = value; + return this; + } + + /** + * @return {@link #partOf} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Another Location which this Location is physically part of.) + */ + public Location getPartOfTarget() { + if (this.partOfTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Location.partOf"); + else if (Configuration.doAutoCreate()) + this.partOfTarget = new Location(); // aa + return this.partOfTarget; + } + + /** + * @param value {@link #partOf} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Another Location which this Location is physically part of.) + */ + public Location setPartOfTarget(Location value) { + this.partOfTarget = value; + return this; + } + + /** + * @return {@link #mode} (Indicates whether a resource instance represents a specific location or a class of locations.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value + */ + public Enumeration getModeElement() { + if (this.mode == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Location.mode"); + else if (Configuration.doAutoCreate()) + this.mode = new Enumeration(new LocationModeEnumFactory()); // bb + return this.mode; + } + + public boolean hasModeElement() { + return this.mode != null && !this.mode.isEmpty(); + } + + public boolean hasMode() { + return this.mode != null && !this.mode.isEmpty(); + } + + /** + * @param value {@link #mode} (Indicates whether a resource instance represents a specific location or a class of locations.). This is the underlying object with id, value and extensions. The accessor "getMode" gives direct access to the value + */ + public Location setModeElement(Enumeration value) { + this.mode = value; + return this; + } + + /** + * @return Indicates whether a resource instance represents a specific location or a class of locations. + */ + public LocationMode getMode() { + return this.mode == null ? null : this.mode.getValue(); + } + + /** + * @param value Indicates whether a resource instance represents a specific location or a class of locations. + */ + public Location setMode(LocationMode value) { + if (value == null) + this.mode = null; + else { + if (this.mode == null) + this.mode = new Enumeration(new LocationModeEnumFactory()); + this.mode.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Unique code or number identifying the location to its users.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("name", "string", "Name of the location as used by humans. Does not need to be unique.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("description", "string", "Description of the Location, which helps in finding or referencing the place.", 0, java.lang.Integer.MAX_VALUE, description)); + childrenList.add(new Property("type", "CodeableConcept", "Indicates the type of function performed at the location.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("telecom", "ContactPoint", "The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites.", 0, java.lang.Integer.MAX_VALUE, telecom)); + childrenList.add(new Property("address", "Address", "Physical location.", 0, java.lang.Integer.MAX_VALUE, address)); + childrenList.add(new Property("physicalType", "CodeableConcept", "Physical form of the location, e.g. building, room, vehicle, road.", 0, java.lang.Integer.MAX_VALUE, physicalType)); + childrenList.add(new Property("position", "", "The absolute geographic location of the Location, expressed in a KML compatible manner (see notes below for KML).", 0, java.lang.Integer.MAX_VALUE, position)); + childrenList.add(new Property("managingOrganization", "Reference(Organization)", "The organization that is responsible for the provisioning and upkeep of the location.", 0, java.lang.Integer.MAX_VALUE, managingOrganization)); + childrenList.add(new Property("status", "code", "active | suspended | inactive.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("partOf", "Reference(Location)", "Another Location which this Location is physically part of.", 0, java.lang.Integer.MAX_VALUE, partOf)); + childrenList.add(new Property("mode", "code", "Indicates whether a resource instance represents a specific location or a class of locations.", 0, java.lang.Integer.MAX_VALUE, mode)); + } + + public Location copy() { + Location dst = new Location(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.name = name == null ? null : name.copy(); + dst.description = description == null ? null : description.copy(); + dst.type = type == null ? null : type.copy(); + if (telecom != null) { + dst.telecom = new ArrayList(); + for (ContactPoint i : telecom) + dst.telecom.add(i.copy()); + }; + dst.address = address == null ? null : address.copy(); + dst.physicalType = physicalType == null ? null : physicalType.copy(); + dst.position = position == null ? null : position.copy(); + dst.managingOrganization = managingOrganization == null ? null : managingOrganization.copy(); + dst.status = status == null ? null : status.copy(); + dst.partOf = partOf == null ? null : partOf.copy(); + dst.mode = mode == null ? null : mode.copy(); + return dst; + } + + protected Location typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Location)) + return false; + Location o = (Location) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(name, o.name, true) && compareDeep(description, o.description, true) + && compareDeep(type, o.type, true) && compareDeep(telecom, o.telecom, true) && compareDeep(address, o.address, true) + && compareDeep(physicalType, o.physicalType, true) && compareDeep(position, o.position, true) && compareDeep(managingOrganization, o.managingOrganization, true) + && compareDeep(status, o.status, true) && compareDeep(partOf, o.partOf, true) && compareDeep(mode, o.mode, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Location)) + return false; + Location o = (Location) other; + return compareValues(name, o.name, true) && compareValues(description, o.description, true) && compareValues(status, o.status, true) + && compareValues(mode, o.mode, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (name == null || name.isEmpty()) + && (description == null || description.isEmpty()) && (type == null || type.isEmpty()) && (telecom == null || telecom.isEmpty()) + && (address == null || address.isEmpty()) && (physicalType == null || physicalType.isEmpty()) + && (position == null || position.isEmpty()) && (managingOrganization == null || managingOrganization.isEmpty()) + && (status == null || status.isEmpty()) && (partOf == null || partOf.isEmpty()) && (mode == null || mode.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Location; + } + + @SearchParamDefinition(name="organization", path="Location.managingOrganization", description="Searches for locations that are managed by the provided organization", type="reference" ) + public static final String SP_ORGANIZATION = "organization"; + @SearchParamDefinition(name="near", path="", description="The coordinates expressed as [lat],[long] (using KML, see notes) to find locations near to (servers may search using a square rather than a circle for efficiency)", type="token" ) + public static final String SP_NEAR = "near"; + @SearchParamDefinition(name="partof", path="Location.partOf", description="The location of which this location is a part", type="reference" ) + public static final String SP_PARTOF = "partof"; + @SearchParamDefinition(name="status", path="Location.status", description="Searches for locations with a specific kind of status", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="address", path="Location.address", description="A (part of the) address of the location", type="string" ) + public static final String SP_ADDRESS = "address"; + @SearchParamDefinition(name="name", path="Location.name", description="A (portion of the) name of the location", type="string" ) + public static final String SP_NAME = "name"; + @SearchParamDefinition(name="near-distance", path="", description="A distance quantity to limit the near search to locations within a specific distance", type="token" ) + public static final String SP_NEARDISTANCE = "near-distance"; + @SearchParamDefinition(name="type", path="Location.type", description="A code for the type of location", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="identifier", path="Location.identifier", description="Unique code or number identifying the location to its users", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4b93169a25c65ae83339ed7b5f832873905c4aa6 GIT binary patch literal 802 zcmb7CO>fgc5Ph3Cb`o4_3Z-fJP)kgkP>T5w^Z-JjHWd+djg(LhJ#FkI+2XD%+bQD0 z-{A~M2qDxTz>h-AI)ZYmD%mshW@p~)%+9ahKaK%Bz*-%bF;_zsjT%|=8ZKD4qQO-y zu35NlVTs|9+j}qbaOCqtH%W)?C|-Bpj%4aemE~N8!aYbL5xc&KB%jFsheN?o+Uqh@ zpME%MlyB7L6FN0i9|*1v-t|EzyS>5Kl#-(VQQCm1ga zXcDZPK#QPRz|WLk!zIk2f(DvcCcT3Dcu2a0X(BcYdLIti7ht}zNc#T-rO(ho2^Wb3 XFfdDUk^UL-RW)*|wDPlXpUwXP+gH1S literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media$MediaType.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media$MediaType.class new file mode 100644 index 0000000000000000000000000000000000000000..d72236c64869eb55c3db5788bc6a24af592e61b6 GIT binary patch literal 2660 zcmbVNTUQfT6#gb8%n*l5gZI)pLR3H@(0Xg30s?9*7i|EI)XQOVl8h!ZaWcWWR-gMH zy7~|Ll;T>@RaaY|`p_TM)$dG@i{NtMBs2T$GkfoEpM9Hu|NG-F0AHfkf+!~An8LJ< z3p#Gb(Suv+kv4EUj&CtzU{(pu8JJh}j)A+1ey1a&Vx4ak~*u>&gnlw7M zI5VR`PcBW&EKX-M3@#tgV)Lpf)s!nky?qDOjZV@{4ec|IE9YwE73nXCl@fRK(CB<# z!$j}QQ?V*iCE*rQnZS44!bsmiT^w~>C%C5J=sw2MeM^jR#woZWsQJWh>Qy^N-uKE4 z_gXW7u%FF}%BFMi=^t!a2^`Pmshb0@A$7R7Z?C7cT#!NLWi^mx4Xs>H$-Hug${ON| zcdC_=cuBxfyR_-%*bYO}Zmm3epz~g1n&TO-=G*dyqk5RUWRqOf03D8rr+CI%suaDzGm*qOGOJEblIaZ@QOh}G`V`Z-oyV;JYB;vN z+sN+qnp4V2U%_0~aD35y=6Ww&YpaMYn>AydGf@IVs&V0BL`i!(Dkh$Ts#OGhHKyUG zg`%{|s(YyBR-I~4wY@LUC7REpfT zy>g`%NPnOp*?=ODIjix?5^m12i^2~mrPftjut#%N&a-P}=?2w74b%HOBCM+P9T_^6 z_eGhjpeO>%78O;DmY|Q@&e2Zqd+m5NLi^J8eC7LKm?jhbD)MdHF;?ZoB-tf~K*R2u zonLt>?SR#D`hzv0;nL1l3dhmNj;h^i)ZNIm-LbvX5Mm3-=QUAcFCE!wbJLr?2NV#M zigY;;2X+eVgR!fE2xbJ{TaaD0->S0Ddp>y9x~rDO|# z0~myc6uE9vb;Z}9tt0XVO?7e{zh(n9zXx%Vh)YDgN5uO?%)W#8%|{}htS3ILC%X1I<3l1oBI08rJ|Uub2l3iRBECPW zl8AXC7Km6RqO%Lpz!=lq$m5U9t-2OoBbrTo*0h1oUm+ecr=lTahKv;pnYNHQ-5fIA z`kz#4VsU1&(KVQvY-|l}nQZeKx-+k!Z5Mwd*B4oMS8e* literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media$MediaTypeEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media$MediaTypeEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..847dd2bf7def2a11c7f10fb8d7e269b8eed70385 GIT binary patch literal 1727 zcmb7ETT>Hf7=AuT_T-|tU{PBrSQL^}(|W+RAQ(B+R1g((#!hdRWDSd(-MHCBnbDs9 zg@3@i&ZND7nL5+<$_sx~r_Z;EA&6y$i@b*~&-cF1d)V*ozkmJ(;1cc`7(h zf`+_~K766!OQ|nvxFq#u6<1VD7&s!KSEc?+!`D)OW5B?qhA9=(20p@!6xUT0RLrWF z6HumH-;JgPy2mpQ1X8m>*%3Il==#p>xVq+qtM;156YWtLRGWY5OHSFfSGQ_BHjBRR zgtMMquRC>t!uaBby=mt?+ppwTqR{m#lbOXJtmN0dtNBOkZkTuddSv@0CtqbIFQ3F3 zZAY9G=vj&E(&Ht&*2-+mKPx%4$PIiZP@puGL!P-Ub z0+X8p`ifie?I;e}mW_@$%WE4>DVjWxt_-nYm!crtnmQ2pe!HgGFk>Z%!;-V$$~hSc z;(}yn;uKB`K*hX?1$--zuB``AVB#iKJlzRiy>dI}S`z5SSCoLLQs(G&dfpo)C+K$?=w6>!+Uc-3!8b==PFjCJpj`FXg z)-j50^zPvJ-%Qh$5Xti41ZwEP6LJoDR>xUH$RNf=Y+?dWF@tBA#TKgsG$=i$FijI@ z=%rYI!5=}g{m;EKyR);KN#ytYYCD;G z=bUrTIsbFdJ@?+VKY9PbhlpsFuRKWCi)+hhhxjxPZZ;(n$&6G1hBbOhGjgPji#ucS zD5RAnj4tRq-IH-KtYvS3zBHMNnkhd*<(MFUS1jSjTowFkTq&1O21igjDA zt4MbyQ<-M7J(h@Zm!K27JCm8DzEj^8i<fNxFVxrB5303J#EFRZmT}FplU8frfB}q@25ttH7bkym|6sXlW+1>_0fppIn6$SO4 zX0dk+Ah9@!$mq_@V~-%_s@tFr^XtiW-H2S$1H9Na-Nb8mmzl^kcBhgNGY#AhHk%nE z7Ed!NTVb>1EUMRg(mh5zzP(QGO!n%rjNWU&NEVwiqk2_ur;*9BMa^xoh*{mBx3nw6 z(|S7DlZt?_J(cW&waqPySFhC5+tV4d3rhQ*sDA}?;sX* zQm$2%uGSGJQd0@MpjUEV;kI--8HpJgnA;o6bmr*vdVWtMjEwE@L?qr5HT76lrF6bj zppZ7>?R7;dBFRL?yfnjzf=rJj<8d=0@vkx)IvVt}nTnb4XB4^`i6{sZJv#JsPoxt{ z0$vUeju|AHEoKVwkqEd| z9x=-HB;o+e7+cLmqnZ^QW=MajOtqlf+CUbCkVZ~LdT$|TG8OBHB{*WOsb)qS^rg^W zO*A%HPHA{g#eCdMbN~x$24p89M;tO7&`2Y_BFrL2BEu1x3r49_0i!j8FNW6zo$Be0 zwPw4SGBJA*uG2gz*C5j(+Ck^--!&;LDssA;DG*Qb6nb_l+0zZGsh(8La#DlLJ6Esk zHY0!}A=8jw(BzGs$;OQ`JFv^t%*Kmh!2-WQzrl&%&T=F~c4wQB>M-F{Z$;Kx*#jDD z$!=aIlPQk066nOygRV3pySFo`cbHh6<#goevu5lWE+Qj})dndANJV9oI;NBrG?EjF zj<%SiOJBg9Z_K*vpP z9Tk<{h&+~~%NL=;hgdRrlJ}(9qe&2N#nJ5z9i2eiyA*1H<2uY#R__32 z$TG=k4=cgp<)u4zsTogK$>q6GW&dK6pfUzRW?>#l^>gZ4pwG0%s1{5 zw;PwLdL$vI0mqrMbg&l*2_5I=v|{d#n|eBqH6IHK50(Zax}?i(c}4P$v(JNqCbg<%0mG(I zu_drNR>^e(!EMKm^t#Pw$3ZrRS!0{EUM}E@pI0C$0iy<_V-tvS@5$Me$rzDNuH9sM z9WF?3!X!lQP-thBZ5Ru7b=O$5v8RtMyPZ9)s(_vSqs-g)1T%ha`BK zXQd)mC7IqHioWa`C9xl_q(V9ZM4N=lEtZZ{Iqx-}QB zX=-a(vZ_r`SXE|mBhk^Q(#|}M-W0UZa~*P4@#{<@73o}KAY^hCITC)LTdkAWU*N41 z3Q7MoSPO`t;n7_EkDXK2Yf8h#YnL>&ErBf-Tehev;gUnqtXqH9@+FI51)GFM+om;3 zvJBbEy)=_V0Rx3Vw4r6mMvyB_IQgq?#b|YN;SDLEZfS;(T9&pfSqm>Ko?NK~13rg+~i^#`6n0 zy@AaMlzZcHn3U@Zi2ucuF{0627fPc+fXva(!>OmBN~pb9?I5$0wr&s^d0R<{fL3l1 z?0l;a1aQ8aV6}I|ew0L2pe*X$l#oi>joJH&9$>bt@H-aG1AcN<#d-D2E!t}WV&U;lISGe0CP%f}G-k~jtiEt=QW4njl}kWbwoApm>+>K>zEk|rY$(gxAS=Zdl)~_j z8Wra&RV_mkQvoq@Uz_zr1q{jW(d-_Sp%}yU(H4LWnEeqRK<`qy0nW;0pSil&XR1s2 z%>6klL>Xt3hSA?_?e((a!;n?b$r-`!#7fEm@eSLdjI2Nhn`4eT zTGb3$PPtatVg{K%4k<$eFcinZmb{X|_E^v;=Tan((YdIf=kE2c7S^PaNUE9bs1@WE zB$DjL9oMu$62B@&aXBY1R=A_wi|Ke8?&1Qdu|QR zGScQeuBgiu)4EO^4JUaE7E3Sb>drtlj$-@JkV|nK)eWMolNu{k!yx3%$u1+7u$jOR zTqkcumSQiBhBUo_)7A&M$g;&@{|kwwQV6WV)edjbae&d8$#lM)=tX)dApR5*e--Z3_&YXuA3#n>{6oAIqT6W? zPQE?uO50_>r+8PP9-_PH9!#ZN)!mdz8QXa_1;jr?;$Pz5D49dzKdk)Qto(E@<#UyC zNc>m46QaFz|6qD6aH2R=@{;TB}G3N$-ZJpY{(n7@VYv$7x=JWlP5p9j5Px z=n)n?&C~mwMfmJKM32$IL2PlBN+CMJ(0Yd~AH#&`ar!Bu)l-Y8y!}uI=$=63Y8Na= zxe27Y1L9~%yeHld(UbHPu01@5?6eNPJ*Sal&BxXzH=flW634{)kPp{uA$ppJoa{Ly zjzlw^A$oRj<=W-C9HQr#)EmI4wOS4qLDt#iAQJ)lTSuTFkrYV$Q@!HNUW9N27Qqo1 z5{3^qjTNrBisb8@Uw$9%t+Xh@pRXv9jI&W&W!=B+bOzc^d4IN3)t@`<`!C!njB)Te z?&I)fSX$n)@am)PEucZpFa)iaO)6>oN_?dukrF|EjN``?eoW`bOnx-;V>Lgv@*^D* zmx;?mzG1!qKeUjzf}3T&V8Ay#B(C;_uwC~WHh=X(@OlxeoIMleQZApg@GTc6GOlvG zSW)q`$2zhxQ)%+jvpUg)@0GYY@E*rISS+|iOI58^SEHh!;1BR5oWq^z5NEo6G@fcT#Bep zS#@cMbIWsqZG0!N8n?cqd4ExmvS8%}PUl)u9E1b*w6qMN21K0T{2({%fYJ(SAU_w* z*}6E$m8~?6e*xtkbNQ1A7#ch-Uj zn0p_%QL|ax^K!YDdzq~A@?tt`&Zyb0aeKTw3GYSh1|bk?q|S_qNa0TU=bYSsDCB;gxnBS`wsnQvFIwC$vE45-cm7;>g}Gm)@$?$K4(>PPjQS&uqd(D~ z5mBoB7a85-@%^tD2Q%zV`dga*PX9>LL$oVRZ-M@w4*HAS^n029Urhf1)BhXv|8dYq z-1Pm0^51sQZ*tS$&h-Cf`FFDXcOd^=2Yt*7(*PRJtiVY(E7aK0sO@omg{-$~GOM;HLdFd_RSF zIFR25KA%)`Jh8IxQUD$=r}t8R|DNm+!&psGBE^-G@5DtAEh>&zj+QTHq^Pv~F$Iogmj{$n*+d5t zq5{AC8fh64#+Omz1j~?lmLa2+BLiX&l`CUL9Hxq#tCSsM2oa;j7)#JO zK!i1zsss(-``UgQxv?fER^lxtQb3$S^@?QM(1oA z!Ba^rf=x{n7H8Rh3tKp!0;zh|oL+d3XC6-&NG!!HNnbZV_VNaF=clyP`DNnpJ_ zd1YNcP1sGPCHL$(_KG8#0ThN@iXqR&FT$45bkRcfVmT&E3!NrbNEOPdr0gh_1;nJ2 z-a$kNFgu={eV^Ot3?aYh{9Zh-eUvmY|C)l&fox(C``o-|nG_>|PbjPKP5M zoa#&m%IzP+k7PeiA@NE48!=bXL~#|JDz35Y^oJ^WC72;*TBA9EuF40xIuGa?0F4!= z3Yt{qtWhK00CPVJpg#woZv@bv2hh9Zh&Irt6$PkD0bSKkbprwYrF?*9iPJ5`^8l(U z0O%F~bSp?_iw{{06RcES3JdDl0+mM;9w=(X9C3z4nkT!yK=!vG`(BWqS=5US`Ce=+ z=EVl+(BSrBKfJgfUOWIV9)uSkgclFxd2w!0FE%JIHh6gP;e0R7EAGXH0!tr*rAJ`t zeDOb)Yn<^i!^_f{h?mp$(F|BR!)@sku=MA!^hsFy6fFG(Ed6Dkr3=KuVpz;5(D1j= z@OL0xRCKAEm9OFHd01FW-7IK0%dO!{(C}qw_zE<96&k(<4PVdGu&F2(vlJGyJeImY zSo$a>t9a#D1<``?0!0PfVqovSgr!INqXt=$_eDlIU6fykt99a?J?g7D)m)>v;|9S zVUmW&>?92%<{qYbIoHUf;2SN+wURU!?yX{_C5Wd1FU55zo#*$dJUv_GX~^ZG!|8M6 z>HjIn)4mB5@J*x&pH8EFlW3A}GS&E|TBiCdWS(9nRyzi?3%CXOSTD@OdJ(X0+D8k3 z^@5y1GEe(zF=8E+`|4?ouYo4`8mY=RLylcb>#}@U zTZ+ND3@R*h!+I{p*#uZO1J?5Z>-m870y&-y>!zY`EK{&9^MKW`eWG?=n~ztHnJ?$O z;;=3&fHe+SyWp|&i^2+z*|5Th0btG8Ln~M>C<-eiIbfAu9uU@#z}-6m>t%rTaw*(` z^}|JBU7io?iej)X2dvB8uwIFAt^%xA1J-K*>!$$gwQ@Wg)(eZmv0TBr+ymC@ZJ#Ju zFFIa1H|EPRio?3R09Ksm`gQ}>Ek$94$81<(!~n2<%^q688Yv1ZBspM}ULFwEJK*j+ z0qb3W^=>KLf;Czc*4BJjR~CbnH)ySHSntO;-vO)-0M>ngwI8tVm*d&6nnmGgRj{^t zz^ban?1I~VymDOSVn=aUTMJ-CxroywAv%k~3Xj>a!iWK2eIg&$SW#FZ$pNeM@_?{D z4R`+Jzn{(-Xl;GN_KBLUT_RyAp0`i&7r^l*;P@LhgSco{ha=cbmT}o4 z%$nN$w6^vTt=klC3$G7v@P{|TDBpfM*E&3qpEiXzhtE@=DqWw>4_^@eu=+H5KV9hL zx+rXfx2R9Liz^b2hE4UU%Jr!|+!5|npBh}BVo>8^^=X#t)7Ef2+@(Ivc6~~Oli_al zX@Tq0CHRz5pO(2krSU1FJ}q~B>cOXN>Qk%hQ*Zdv@OJgdpZ%0OmR&#?`^uo_g}is_YUpxy-Sbyj?#0!_vmfk`(l*um}o%uY4HmY^;_3r;u4^a zUjiuXeQ%&B!C|l1c!+i&EI-m(gDP`pEu)BehI7auzxLB*IJV_poch_lIEcGk9r2BR zjOHT>oCjp`OlxJGb*42DFX~KdRV@y@>ig*m1@)d|&$CqPq=U!8NykTVSi!wGNU+Dk z-u`1aHQ-)sjO||RRngnPz1X7Jz1THDuUXt{73VA$#remvci~HUJ zpecTh&h(ejB7cxp_=i)cKSbO8Bj^Ty1^#bPM$#dFB|YU2)9e0G^q&6&G0K0UsP>N* z3;kondjD9S%Q!t9e+*X{zJS2b$ucDHIEKS?yRH8AtSZ{Q?I=ye>EJswWku2Ny~Wus z{XpH@ic@bd-o4}hvHK%PU_0%o$Mu4JVbV`matd}F;`sT@7{8KH69gyXe*8o9BImlR za2o5sr}q1_L%kfP9V-F6uMYn!IY3wU(IGS|(X3QWdA^J0Xf&_sqnq(nM^jf{uSc^A z%_`Nr0?h_A8&tC!%~@#9QcVNR*=WvI&9!JQKy!g=E=F@1n#)v^515yuxm-1;q1lRN zt7`HQwjWKuYPxSr7PoY{L^Txf4W>kLR1pej?&|Zn?=0E!EcC^ zvv9?$oOLxj>r>v&y0(wlB-*-f;tf?icW@QoN7Z;k{l^_# z|Mk&WyrFX74z3&u{U%Q^{BtGjVX7EAGCVT-AHM|uV>l#M^^fhTlKbg1?m5*wvI&dM zCoD>@=|}aFwD7pKaHdi{`EfkW_lQ@@8&keJx(b!a?zFgCT$2``qR-*$cm(AQ_-zP{ U)Nm!bgKk9iQh~ppUo`Ij0FIz%SpWb4 literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Media.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media.java similarity index 91% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Media.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media.java index 25e13ec94fa..b3402562b6b 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/Media.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Media.java @@ -1,872 +1,857 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference. - */ -@ResourceDef(name="Media", profile="http://hl7.org/fhir/Profile/Media") -public class Media extends DomainResource { - - public enum MediaType implements FhirEnum { - /** - * The media consists of one or more unmoving images, including photographs, computer-generated graphs and charts, and scanned documents. - */ - PHOTO, - /** - * The media consists of a series of frames that capture a moving image. - */ - VIDEO, - /** - * The media consists of a sound recording. - */ - AUDIO, - /** - * added to help the parsers - */ - NULL; - - public static final MediaTypeEnumFactory ENUM_FACTORY = new MediaTypeEnumFactory(); - - public static MediaType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("photo".equals(codeString)) - return PHOTO; - if ("video".equals(codeString)) - return VIDEO; - if ("audio".equals(codeString)) - return AUDIO; - throw new IllegalArgumentException("Unknown MediaType code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case PHOTO: return "photo"; - case VIDEO: return "video"; - case AUDIO: return "audio"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case PHOTO: return ""; - case VIDEO: return ""; - case AUDIO: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case PHOTO: return "The media consists of one or more unmoving images, including photographs, computer-generated graphs and charts, and scanned documents."; - case VIDEO: return "The media consists of a series of frames that capture a moving image."; - case AUDIO: return "The media consists of a sound recording."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case PHOTO: return "photo"; - case VIDEO: return "video"; - case AUDIO: return "audio"; - default: return "?"; - } - } - } - - public static class MediaTypeEnumFactory implements EnumFactory { - public MediaType fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("photo".equals(codeString)) - return MediaType.PHOTO; - if ("video".equals(codeString)) - return MediaType.VIDEO; - if ("audio".equals(codeString)) - return MediaType.AUDIO; - throw new IllegalArgumentException("Unknown MediaType code '"+codeString+"'"); - } - public String toCode(MediaType code) throws IllegalArgumentException { - if (code == MediaType.PHOTO) - return "photo"; - if (code == MediaType.VIDEO) - return "video"; - if (code == MediaType.AUDIO) - return "audio"; - return "?"; - } - } - - /** - * Whether the media is a photo (still image), an audio recording, or a video recording. - */ - @Child(name="type", type={CodeType.class}, order=-1, min=1, max=1) - @Description(shortDefinition="photo | video | audio", formalDefinition="Whether the media is a photo (still image), an audio recording, or a video recording." ) - protected Enumeration type; - - /** - * Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality. - */ - @Child(name="subtype", type={CodeableConcept.class}, order=0, min=0, max=1) - @Description(shortDefinition="The type of acquisition equipment/process", formalDefinition="Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality." ) - protected CodeableConcept subtype; - - /** - * Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers. - */ - @Child(name="identifier", type={Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Identifier(s) for the image", formalDefinition="Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers." ) - protected List identifier; - - /** - * The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording. - */ - @Child(name="created", type={DateTimeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="When the media was taken/recorded (start)", formalDefinition="The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording." ) - protected DateTimeType created; - - /** - * Who/What this Media is a record of. - */ - @Child(name="subject", type={Patient.class, Practitioner.class, Group.class, Device.class, Specimen.class}, order=3, min=0, max=1) - @Description(shortDefinition="Who/What this Media is a record of", formalDefinition="Who/What this Media is a record of." ) - protected Reference subject; - - /** - * The actual object that is the target of the reference (Who/What this Media is a record of.) - */ - protected Resource subjectTarget; - - /** - * The person who administered the collection of the image. - */ - @Child(name="operator", type={Practitioner.class}, order=4, min=0, max=1) - @Description(shortDefinition="The person who generated the image", formalDefinition="The person who administered the collection of the image." ) - protected Reference operator; - - /** - * The actual object that is the target of the reference (The person who administered the collection of the image.) - */ - protected Practitioner operatorTarget; - - /** - * The name of the imaging view e.g Lateral or Antero-posterior (AP). - */ - @Child(name="view", type={CodeableConcept.class}, order=5, min=0, max=1) - @Description(shortDefinition="Imaging view e.g Lateral or Antero-posterior", formalDefinition="The name of the imaging view e.g Lateral or Antero-posterior (AP)." ) - protected CodeableConcept view; - - /** - * The name of the device / manufacturer of the device that was used to make the recording. - */ - @Child(name="deviceName", type={StringType.class}, order=6, min=0, max=1) - @Description(shortDefinition="Name of the device/manufacturer", formalDefinition="The name of the device / manufacturer of the device that was used to make the recording." ) - protected StringType deviceName; - - /** - * Height of the image in pixels(photo/video). - */ - @Child(name="height", type={IntegerType.class}, order=7, min=0, max=1) - @Description(shortDefinition="Height of the image in pixels(photo/video)", formalDefinition="Height of the image in pixels(photo/video)." ) - protected IntegerType height; - - /** - * Width of the image in pixels (photo/video). - */ - @Child(name="width", type={IntegerType.class}, order=8, min=0, max=1) - @Description(shortDefinition="Width of the image in pixels (photo/video)", formalDefinition="Width of the image in pixels (photo/video)." ) - protected IntegerType width; - - /** - * The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required. - */ - @Child(name="frames", type={IntegerType.class}, order=9, min=0, max=1) - @Description(shortDefinition="Number of frames if > 1 (photo)", formalDefinition="The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required." ) - protected IntegerType frames; - - /** - * The duration of the recording in seconds - for audio and video. - */ - @Child(name="duration", type={IntegerType.class}, order=10, min=0, max=1) - @Description(shortDefinition="Length in seconds (audio / video)", formalDefinition="The duration of the recording in seconds - for audio and video." ) - protected IntegerType duration; - - /** - * The actual content of the media - inline or by direct reference to the media source file. - */ - @Child(name="content", type={Attachment.class}, order=11, min=1, max=1) - @Description(shortDefinition="Actual Media - reference or data", formalDefinition="The actual content of the media - inline or by direct reference to the media source file." ) - protected Attachment content; - - private static final long serialVersionUID = 1930988698L; - - public Media() { - super(); - } - - public Media(Enumeration type, Attachment content) { - super(); - this.type = type; - this.content = content; - } - - /** - * @return {@link #type} (Whether the media is a photo (still image), an audio recording, or a video recording.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public Enumeration getTypeElement() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.type"); - else if (Configuration.doAutoCreate()) - this.type = new Enumeration(); - return this.type; - } - - public boolean hasTypeElement() { - return this.type != null && !this.type.isEmpty(); - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Whether the media is a photo (still image), an audio recording, or a video recording.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value - */ - public Media setTypeElement(Enumeration value) { - this.type = value; - return this; - } - - /** - * @return Whether the media is a photo (still image), an audio recording, or a video recording. - */ - public MediaType getType() { - return this.type == null ? null : this.type.getValue(); - } - - /** - * @param value Whether the media is a photo (still image), an audio recording, or a video recording. - */ - public Media setType(MediaType value) { - if (this.type == null) - this.type = new Enumeration(MediaType.ENUM_FACTORY); - this.type.setValue(value); - return this; - } - - /** - * @return {@link #subtype} (Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality.) - */ - public CodeableConcept getSubtype() { - if (this.subtype == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.subtype"); - else if (Configuration.doAutoCreate()) - this.subtype = new CodeableConcept(); - return this.subtype; - } - - public boolean hasSubtype() { - return this.subtype != null && !this.subtype.isEmpty(); - } - - /** - * @param value {@link #subtype} (Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality.) - */ - public Media setSubtype(CodeableConcept value) { - this.subtype = value; - return this; - } - - /** - * @return {@link #identifier} (Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #created} (The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public DateTimeType getCreatedElement() { - if (this.created == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.created"); - else if (Configuration.doAutoCreate()) - this.created = new DateTimeType(); - return this.created; - } - - public boolean hasCreatedElement() { - return this.created != null && !this.created.isEmpty(); - } - - public boolean hasCreated() { - return this.created != null && !this.created.isEmpty(); - } - - /** - * @param value {@link #created} (The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value - */ - public Media setCreatedElement(DateTimeType value) { - this.created = value; - return this; - } - - /** - * @return The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording. - */ - public Date getCreated() { - return this.created == null ? null : this.created.getValue(); - } - - /** - * @param value The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording. - */ - public Media setCreated(Date value) { - if (value == null) - this.created = null; - else { - if (this.created == null) - this.created = new DateTimeType(); - this.created.setValue(value); - } - return this; - } - - /** - * @return {@link #subject} (Who/What this Media is a record of.) - */ - public Reference getSubject() { - if (this.subject == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.subject"); - else if (Configuration.doAutoCreate()) - this.subject = new Reference(); - return this.subject; - } - - public boolean hasSubject() { - return this.subject != null && !this.subject.isEmpty(); - } - - /** - * @param value {@link #subject} (Who/What this Media is a record of.) - */ - public Media setSubject(Reference value) { - this.subject = value; - return this; - } - - /** - * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who/What this Media is a record of.) - */ - public Resource getSubjectTarget() { - return this.subjectTarget; - } - - /** - * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who/What this Media is a record of.) - */ - public Media setSubjectTarget(Resource value) { - this.subjectTarget = value; - return this; - } - - /** - * @return {@link #operator} (The person who administered the collection of the image.) - */ - public Reference getOperator() { - if (this.operator == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.operator"); - else if (Configuration.doAutoCreate()) - this.operator = new Reference(); - return this.operator; - } - - public boolean hasOperator() { - return this.operator != null && !this.operator.isEmpty(); - } - - /** - * @param value {@link #operator} (The person who administered the collection of the image.) - */ - public Media setOperator(Reference value) { - this.operator = value; - return this; - } - - /** - * @return {@link #operator} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person who administered the collection of the image.) - */ - public Practitioner getOperatorTarget() { - if (this.operatorTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.operator"); - else if (Configuration.doAutoCreate()) - this.operatorTarget = new Practitioner(); - return this.operatorTarget; - } - - /** - * @param value {@link #operator} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person who administered the collection of the image.) - */ - public Media setOperatorTarget(Practitioner value) { - this.operatorTarget = value; - return this; - } - - /** - * @return {@link #view} (The name of the imaging view e.g Lateral or Antero-posterior (AP).) - */ - public CodeableConcept getView() { - if (this.view == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.view"); - else if (Configuration.doAutoCreate()) - this.view = new CodeableConcept(); - return this.view; - } - - public boolean hasView() { - return this.view != null && !this.view.isEmpty(); - } - - /** - * @param value {@link #view} (The name of the imaging view e.g Lateral or Antero-posterior (AP).) - */ - public Media setView(CodeableConcept value) { - this.view = value; - return this; - } - - /** - * @return {@link #deviceName} (The name of the device / manufacturer of the device that was used to make the recording.). This is the underlying object with id, value and extensions. The accessor "getDeviceName" gives direct access to the value - */ - public StringType getDeviceNameElement() { - if (this.deviceName == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.deviceName"); - else if (Configuration.doAutoCreate()) - this.deviceName = new StringType(); - return this.deviceName; - } - - public boolean hasDeviceNameElement() { - return this.deviceName != null && !this.deviceName.isEmpty(); - } - - public boolean hasDeviceName() { - return this.deviceName != null && !this.deviceName.isEmpty(); - } - - /** - * @param value {@link #deviceName} (The name of the device / manufacturer of the device that was used to make the recording.). This is the underlying object with id, value and extensions. The accessor "getDeviceName" gives direct access to the value - */ - public Media setDeviceNameElement(StringType value) { - this.deviceName = value; - return this; - } - - /** - * @return The name of the device / manufacturer of the device that was used to make the recording. - */ - public String getDeviceName() { - return this.deviceName == null ? null : this.deviceName.getValue(); - } - - /** - * @param value The name of the device / manufacturer of the device that was used to make the recording. - */ - public Media setDeviceName(String value) { - if (Utilities.noString(value)) - this.deviceName = null; - else { - if (this.deviceName == null) - this.deviceName = new StringType(); - this.deviceName.setValue(value); - } - return this; - } - - /** - * @return {@link #height} (Height of the image in pixels(photo/video).). This is the underlying object with id, value and extensions. The accessor "getHeight" gives direct access to the value - */ - public IntegerType getHeightElement() { - if (this.height == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.height"); - else if (Configuration.doAutoCreate()) - this.height = new IntegerType(); - return this.height; - } - - public boolean hasHeightElement() { - return this.height != null && !this.height.isEmpty(); - } - - public boolean hasHeight() { - return this.height != null && !this.height.isEmpty(); - } - - /** - * @param value {@link #height} (Height of the image in pixels(photo/video).). This is the underlying object with id, value and extensions. The accessor "getHeight" gives direct access to the value - */ - public Media setHeightElement(IntegerType value) { - this.height = value; - return this; - } - - /** - * @return Height of the image in pixels(photo/video). - */ - public int getHeight() { - return this.height == null ? null : this.height.getValue(); - } - - /** - * @param value Height of the image in pixels(photo/video). - */ - public Media setHeight(int value) { - if (value == -1) - this.height = null; - else { - if (this.height == null) - this.height = new IntegerType(); - this.height.setValue(value); - } - return this; - } - - /** - * @return {@link #width} (Width of the image in pixels (photo/video).). This is the underlying object with id, value and extensions. The accessor "getWidth" gives direct access to the value - */ - public IntegerType getWidthElement() { - if (this.width == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.width"); - else if (Configuration.doAutoCreate()) - this.width = new IntegerType(); - return this.width; - } - - public boolean hasWidthElement() { - return this.width != null && !this.width.isEmpty(); - } - - public boolean hasWidth() { - return this.width != null && !this.width.isEmpty(); - } - - /** - * @param value {@link #width} (Width of the image in pixels (photo/video).). This is the underlying object with id, value and extensions. The accessor "getWidth" gives direct access to the value - */ - public Media setWidthElement(IntegerType value) { - this.width = value; - return this; - } - - /** - * @return Width of the image in pixels (photo/video). - */ - public int getWidth() { - return this.width == null ? null : this.width.getValue(); - } - - /** - * @param value Width of the image in pixels (photo/video). - */ - public Media setWidth(int value) { - if (value == -1) - this.width = null; - else { - if (this.width == null) - this.width = new IntegerType(); - this.width.setValue(value); - } - return this; - } - - /** - * @return {@link #frames} (The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.). This is the underlying object with id, value and extensions. The accessor "getFrames" gives direct access to the value - */ - public IntegerType getFramesElement() { - if (this.frames == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.frames"); - else if (Configuration.doAutoCreate()) - this.frames = new IntegerType(); - return this.frames; - } - - public boolean hasFramesElement() { - return this.frames != null && !this.frames.isEmpty(); - } - - public boolean hasFrames() { - return this.frames != null && !this.frames.isEmpty(); - } - - /** - * @param value {@link #frames} (The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.). This is the underlying object with id, value and extensions. The accessor "getFrames" gives direct access to the value - */ - public Media setFramesElement(IntegerType value) { - this.frames = value; - return this; - } - - /** - * @return The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required. - */ - public int getFrames() { - return this.frames == null ? null : this.frames.getValue(); - } - - /** - * @param value The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required. - */ - public Media setFrames(int value) { - if (value == -1) - this.frames = null; - else { - if (this.frames == null) - this.frames = new IntegerType(); - this.frames.setValue(value); - } - return this; - } - - /** - * @return {@link #duration} (The duration of the recording in seconds - for audio and video.). This is the underlying object with id, value and extensions. The accessor "getDuration" gives direct access to the value - */ - public IntegerType getDurationElement() { - if (this.duration == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.duration"); - else if (Configuration.doAutoCreate()) - this.duration = new IntegerType(); - return this.duration; - } - - public boolean hasDurationElement() { - return this.duration != null && !this.duration.isEmpty(); - } - - public boolean hasDuration() { - return this.duration != null && !this.duration.isEmpty(); - } - - /** - * @param value {@link #duration} (The duration of the recording in seconds - for audio and video.). This is the underlying object with id, value and extensions. The accessor "getDuration" gives direct access to the value - */ - public Media setDurationElement(IntegerType value) { - this.duration = value; - return this; - } - - /** - * @return The duration of the recording in seconds - for audio and video. - */ - public int getDuration() { - return this.duration == null ? null : this.duration.getValue(); - } - - /** - * @param value The duration of the recording in seconds - for audio and video. - */ - public Media setDuration(int value) { - if (value == -1) - this.duration = null; - else { - if (this.duration == null) - this.duration = new IntegerType(); - this.duration.setValue(value); - } - return this; - } - - /** - * @return {@link #content} (The actual content of the media - inline or by direct reference to the media source file.) - */ - public Attachment getContent() { - if (this.content == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Media.content"); - else if (Configuration.doAutoCreate()) - this.content = new Attachment(); - return this.content; - } - - public boolean hasContent() { - return this.content != null && !this.content.isEmpty(); - } - - /** - * @param value {@link #content} (The actual content of the media - inline or by direct reference to the media source file.) - */ - public Media setContent(Attachment value) { - this.content = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "code", "Whether the media is a photo (still image), an audio recording, or a video recording.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("subtype", "CodeableConcept", "Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality.", 0, java.lang.Integer.MAX_VALUE, subtype)); - childrenList.add(new Property("identifier", "Identifier", "Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("created", "dateTime", "The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording.", 0, java.lang.Integer.MAX_VALUE, created)); - childrenList.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device|Specimen)", "Who/What this Media is a record of.", 0, java.lang.Integer.MAX_VALUE, subject)); - childrenList.add(new Property("operator", "Reference(Practitioner)", "The person who administered the collection of the image.", 0, java.lang.Integer.MAX_VALUE, operator)); - childrenList.add(new Property("view", "CodeableConcept", "The name of the imaging view e.g Lateral or Antero-posterior (AP).", 0, java.lang.Integer.MAX_VALUE, view)); - childrenList.add(new Property("deviceName", "string", "The name of the device / manufacturer of the device that was used to make the recording.", 0, java.lang.Integer.MAX_VALUE, deviceName)); - childrenList.add(new Property("height", "integer", "Height of the image in pixels(photo/video).", 0, java.lang.Integer.MAX_VALUE, height)); - childrenList.add(new Property("width", "integer", "Width of the image in pixels (photo/video).", 0, java.lang.Integer.MAX_VALUE, width)); - childrenList.add(new Property("frames", "integer", "The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.", 0, java.lang.Integer.MAX_VALUE, frames)); - childrenList.add(new Property("duration", "integer", "The duration of the recording in seconds - for audio and video.", 0, java.lang.Integer.MAX_VALUE, duration)); - childrenList.add(new Property("content", "Attachment", "The actual content of the media - inline or by direct reference to the media source file.", 0, java.lang.Integer.MAX_VALUE, content)); - } - - public Media copy() { - Media dst = new Media(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - dst.subtype = subtype == null ? null : subtype.copy(); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.created = created == null ? null : created.copy(); - dst.subject = subject == null ? null : subject.copy(); - dst.operator = operator == null ? null : operator.copy(); - dst.view = view == null ? null : view.copy(); - dst.deviceName = deviceName == null ? null : deviceName.copy(); - dst.height = height == null ? null : height.copy(); - dst.width = width == null ? null : width.copy(); - dst.frames = frames == null ? null : frames.copy(); - dst.duration = duration == null ? null : duration.copy(); - dst.content = content == null ? null : content.copy(); - return dst; - } - - protected Media typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (subtype == null || subtype.isEmpty()) - && (identifier == null || identifier.isEmpty()) && (created == null || created.isEmpty()) - && (subject == null || subject.isEmpty()) && (operator == null || operator.isEmpty()) && (view == null || view.isEmpty()) - && (deviceName == null || deviceName.isEmpty()) && (height == null || height.isEmpty()) && (width == null || width.isEmpty()) - && (frames == null || frames.isEmpty()) && (duration == null || duration.isEmpty()) && (content == null || content.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Media; - } - - @SearchParamDefinition(name="patient", path="Media.subject", description="Who/What this Media is a record of", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="created", path="Media.created", description="When the media was taken/recorded (start)", type="date" ) - public static final String SP_CREATED = "created"; - @SearchParamDefinition(name="subject", path="Media.subject", description="Who/What this Media is a record of", type="reference" ) - public static final String SP_SUBJECT = "subject"; - @SearchParamDefinition(name="subtype", path="Media.subtype", description="The type of acquisition equipment/process", type="token" ) - public static final String SP_SUBTYPE = "subtype"; - @SearchParamDefinition(name="view", path="Media.view", description="Imaging view e.g Lateral or Antero-posterior", type="token" ) - public static final String SP_VIEW = "view"; - @SearchParamDefinition(name="type", path="Media.type", description="photo | video | audio", type="token" ) - public static final String SP_TYPE = "type"; - @SearchParamDefinition(name="identifier", path="Media.identifier", description="Identifier(s) for the image", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - @SearchParamDefinition(name="operator", path="Media.operator", description="The person who generated the image", type="reference" ) - public static final String SP_OPERATOR = "operator"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference. + */ +@ResourceDef(name="Media", profile="http://hl7.org/fhir/Profile/Media") +public class Media extends DomainResource { + + public enum MediaType { + /** + * The media consists of one or more unmoving images, including photographs, computer-generated graphs and charts, and scanned documents. + */ + PHOTO, + /** + * The media consists of a series of frames that capture a moving image. + */ + VIDEO, + /** + * The media consists of a sound recording. + */ + AUDIO, + /** + * added to help the parsers + */ + NULL; + public static MediaType fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("photo".equals(codeString)) + return PHOTO; + if ("video".equals(codeString)) + return VIDEO; + if ("audio".equals(codeString)) + return AUDIO; + throw new Exception("Unknown MediaType code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PHOTO: return "photo"; + case VIDEO: return "video"; + case AUDIO: return "audio"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PHOTO: return ""; + case VIDEO: return ""; + case AUDIO: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PHOTO: return "The media consists of one or more unmoving images, including photographs, computer-generated graphs and charts, and scanned documents."; + case VIDEO: return "The media consists of a series of frames that capture a moving image."; + case AUDIO: return "The media consists of a sound recording."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PHOTO: return "photo"; + case VIDEO: return "video"; + case AUDIO: return "audio"; + default: return "?"; + } + } + } + + public static class MediaTypeEnumFactory implements EnumFactory { + public MediaType fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("photo".equals(codeString)) + return MediaType.PHOTO; + if ("video".equals(codeString)) + return MediaType.VIDEO; + if ("audio".equals(codeString)) + return MediaType.AUDIO; + throw new IllegalArgumentException("Unknown MediaType code '"+codeString+"'"); + } + public String toCode(MediaType code) { + if (code == MediaType.PHOTO) + return "photo"; + if (code == MediaType.VIDEO) + return "video"; + if (code == MediaType.AUDIO) + return "audio"; + return "?"; + } + } + + /** + * Whether the media is a photo (still image), an audio recording, or a video recording. + */ + @Child(name="type", type={CodeType.class}, order=-1, min=1, max=1) + @Description(shortDefinition="photo | video | audio", formalDefinition="Whether the media is a photo (still image), an audio recording, or a video recording." ) + protected Enumeration type; + + /** + * Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality. + */ + @Child(name="subtype", type={CodeableConcept.class}, order=0, min=0, max=1) + @Description(shortDefinition="The type of acquisition equipment/process", formalDefinition="Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality." ) + protected CodeableConcept subtype; + + /** + * Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers. + */ + @Child(name="identifier", type={Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Identifier(s) for the image", formalDefinition="Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers." ) + protected List identifier; + + /** + * The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording. + */ + @Child(name="created", type={DateTimeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="When the media was taken/recorded (start)", formalDefinition="The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording." ) + protected DateTimeType created; + + /** + * Who/What this Media is a record of. + */ + @Child(name="subject", type={Patient.class, Practitioner.class, Group.class, Device.class, Specimen.class}, order=3, min=0, max=1) + @Description(shortDefinition="Who/What this Media is a record of", formalDefinition="Who/What this Media is a record of." ) + protected Reference subject; + + /** + * The actual object that is the target of the reference (Who/What this Media is a record of.) + */ + protected Resource subjectTarget; + + /** + * The person who administered the collection of the image. + */ + @Child(name="operator", type={Practitioner.class}, order=4, min=0, max=1) + @Description(shortDefinition="The person who generated the image", formalDefinition="The person who administered the collection of the image." ) + protected Reference operator; + + /** + * The actual object that is the target of the reference (The person who administered the collection of the image.) + */ + protected Practitioner operatorTarget; + + /** + * The name of the imaging view e.g Lateral or Antero-posterior (AP). + */ + @Child(name="view", type={CodeableConcept.class}, order=5, min=0, max=1) + @Description(shortDefinition="Imaging view e.g Lateral or Antero-posterior", formalDefinition="The name of the imaging view e.g Lateral or Antero-posterior (AP)." ) + protected CodeableConcept view; + + /** + * The name of the device / manufacturer of the device that was used to make the recording. + */ + @Child(name="deviceName", type={StringType.class}, order=6, min=0, max=1) + @Description(shortDefinition="Name of the device/manufacturer", formalDefinition="The name of the device / manufacturer of the device that was used to make the recording." ) + protected StringType deviceName; + + /** + * Height of the image in pixels(photo/video). + */ + @Child(name="height", type={IntegerType.class}, order=7, min=0, max=1) + @Description(shortDefinition="Height of the image in pixels(photo/video)", formalDefinition="Height of the image in pixels(photo/video)." ) + protected IntegerType height; + + /** + * Width of the image in pixels (photo/video). + */ + @Child(name="width", type={IntegerType.class}, order=8, min=0, max=1) + @Description(shortDefinition="Width of the image in pixels (photo/video)", formalDefinition="Width of the image in pixels (photo/video)." ) + protected IntegerType width; + + /** + * The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required. + */ + @Child(name="frames", type={IntegerType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Number of frames if > 1 (photo)", formalDefinition="The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required." ) + protected IntegerType frames; + + /** + * The duration of the recording in seconds - for audio and video. + */ + @Child(name="duration", type={IntegerType.class}, order=10, min=0, max=1) + @Description(shortDefinition="Length in seconds (audio / video)", formalDefinition="The duration of the recording in seconds - for audio and video." ) + protected IntegerType duration; + + /** + * The actual content of the media - inline or by direct reference to the media source file. + */ + @Child(name="content", type={Attachment.class}, order=11, min=1, max=1) + @Description(shortDefinition="Actual Media - reference or data", formalDefinition="The actual content of the media - inline or by direct reference to the media source file." ) + protected Attachment content; + + private static final long serialVersionUID = 1930988698L; + + public Media() { + super(); + } + + public Media(Enumeration type, Attachment content) { + super(); + this.type = type; + this.content = content; + } + + /** + * @return {@link #type} (Whether the media is a photo (still image), an audio recording, or a video recording.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public Enumeration getTypeElement() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.type"); + else if (Configuration.doAutoCreate()) + this.type = new Enumeration(new MediaTypeEnumFactory()); // bb + return this.type; + } + + public boolean hasTypeElement() { + return this.type != null && !this.type.isEmpty(); + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Whether the media is a photo (still image), an audio recording, or a video recording.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value + */ + public Media setTypeElement(Enumeration value) { + this.type = value; + return this; + } + + /** + * @return Whether the media is a photo (still image), an audio recording, or a video recording. + */ + public MediaType getType() { + return this.type == null ? null : this.type.getValue(); + } + + /** + * @param value Whether the media is a photo (still image), an audio recording, or a video recording. + */ + public Media setType(MediaType value) { + if (this.type == null) + this.type = new Enumeration(new MediaTypeEnumFactory()); + this.type.setValue(value); + return this; + } + + /** + * @return {@link #subtype} (Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality.) + */ + public CodeableConcept getSubtype() { + if (this.subtype == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.subtype"); + else if (Configuration.doAutoCreate()) + this.subtype = new CodeableConcept(); // cc + return this.subtype; + } + + public boolean hasSubtype() { + return this.subtype != null && !this.subtype.isEmpty(); + } + + /** + * @param value {@link #subtype} (Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality.) + */ + public Media setSubtype(CodeableConcept value) { + this.subtype = value; + return this; + } + + /** + * @return {@link #identifier} (Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #created} (The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public DateTimeType getCreatedElement() { + if (this.created == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.created"); + else if (Configuration.doAutoCreate()) + this.created = new DateTimeType(); // bb + return this.created; + } + + public boolean hasCreatedElement() { + return this.created != null && !this.created.isEmpty(); + } + + public boolean hasCreated() { + return this.created != null && !this.created.isEmpty(); + } + + /** + * @param value {@link #created} (The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value + */ + public Media setCreatedElement(DateTimeType value) { + this.created = value; + return this; + } + + /** + * @return The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording. + */ + public Date getCreated() { + return this.created == null ? null : this.created.getValue(); + } + + /** + * @param value The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording. + */ + public Media setCreated(Date value) { + if (value == null) + this.created = null; + else { + if (this.created == null) + this.created = new DateTimeType(); + this.created.setValue(value); + } + return this; + } + + /** + * @return {@link #subject} (Who/What this Media is a record of.) + */ + public Reference getSubject() { + if (this.subject == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.subject"); + else if (Configuration.doAutoCreate()) + this.subject = new Reference(); // cc + return this.subject; + } + + public boolean hasSubject() { + return this.subject != null && !this.subject.isEmpty(); + } + + /** + * @param value {@link #subject} (Who/What this Media is a record of.) + */ + public Media setSubject(Reference value) { + this.subject = value; + return this; + } + + /** + * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Who/What this Media is a record of.) + */ + public Resource getSubjectTarget() { + return this.subjectTarget; + } + + /** + * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Who/What this Media is a record of.) + */ + public Media setSubjectTarget(Resource value) { + this.subjectTarget = value; + return this; + } + + /** + * @return {@link #operator} (The person who administered the collection of the image.) + */ + public Reference getOperator() { + if (this.operator == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.operator"); + else if (Configuration.doAutoCreate()) + this.operator = new Reference(); // cc + return this.operator; + } + + public boolean hasOperator() { + return this.operator != null && !this.operator.isEmpty(); + } + + /** + * @param value {@link #operator} (The person who administered the collection of the image.) + */ + public Media setOperator(Reference value) { + this.operator = value; + return this; + } + + /** + * @return {@link #operator} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person who administered the collection of the image.) + */ + public Practitioner getOperatorTarget() { + if (this.operatorTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.operator"); + else if (Configuration.doAutoCreate()) + this.operatorTarget = new Practitioner(); // aa + return this.operatorTarget; + } + + /** + * @param value {@link #operator} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person who administered the collection of the image.) + */ + public Media setOperatorTarget(Practitioner value) { + this.operatorTarget = value; + return this; + } + + /** + * @return {@link #view} (The name of the imaging view e.g Lateral or Antero-posterior (AP).) + */ + public CodeableConcept getView() { + if (this.view == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.view"); + else if (Configuration.doAutoCreate()) + this.view = new CodeableConcept(); // cc + return this.view; + } + + public boolean hasView() { + return this.view != null && !this.view.isEmpty(); + } + + /** + * @param value {@link #view} (The name of the imaging view e.g Lateral or Antero-posterior (AP).) + */ + public Media setView(CodeableConcept value) { + this.view = value; + return this; + } + + /** + * @return {@link #deviceName} (The name of the device / manufacturer of the device that was used to make the recording.). This is the underlying object with id, value and extensions. The accessor "getDeviceName" gives direct access to the value + */ + public StringType getDeviceNameElement() { + if (this.deviceName == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.deviceName"); + else if (Configuration.doAutoCreate()) + this.deviceName = new StringType(); // bb + return this.deviceName; + } + + public boolean hasDeviceNameElement() { + return this.deviceName != null && !this.deviceName.isEmpty(); + } + + public boolean hasDeviceName() { + return this.deviceName != null && !this.deviceName.isEmpty(); + } + + /** + * @param value {@link #deviceName} (The name of the device / manufacturer of the device that was used to make the recording.). This is the underlying object with id, value and extensions. The accessor "getDeviceName" gives direct access to the value + */ + public Media setDeviceNameElement(StringType value) { + this.deviceName = value; + return this; + } + + /** + * @return The name of the device / manufacturer of the device that was used to make the recording. + */ + public String getDeviceName() { + return this.deviceName == null ? null : this.deviceName.getValue(); + } + + /** + * @param value The name of the device / manufacturer of the device that was used to make the recording. + */ + public Media setDeviceName(String value) { + if (Utilities.noString(value)) + this.deviceName = null; + else { + if (this.deviceName == null) + this.deviceName = new StringType(); + this.deviceName.setValue(value); + } + return this; + } + + /** + * @return {@link #height} (Height of the image in pixels(photo/video).). This is the underlying object with id, value and extensions. The accessor "getHeight" gives direct access to the value + */ + public IntegerType getHeightElement() { + if (this.height == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.height"); + else if (Configuration.doAutoCreate()) + this.height = new IntegerType(); // bb + return this.height; + } + + public boolean hasHeightElement() { + return this.height != null && !this.height.isEmpty(); + } + + public boolean hasHeight() { + return this.height != null && !this.height.isEmpty(); + } + + /** + * @param value {@link #height} (Height of the image in pixels(photo/video).). This is the underlying object with id, value and extensions. The accessor "getHeight" gives direct access to the value + */ + public Media setHeightElement(IntegerType value) { + this.height = value; + return this; + } + + /** + * @return Height of the image in pixels(photo/video). + */ + public int getHeight() { + return this.height == null ? 0 : this.height.getValue(); + } + + /** + * @param value Height of the image in pixels(photo/video). + */ + public Media setHeight(int value) { + if (this.height == null) + this.height = new IntegerType(); + this.height.setValue(value); + return this; + } + + /** + * @return {@link #width} (Width of the image in pixels (photo/video).). This is the underlying object with id, value and extensions. The accessor "getWidth" gives direct access to the value + */ + public IntegerType getWidthElement() { + if (this.width == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.width"); + else if (Configuration.doAutoCreate()) + this.width = new IntegerType(); // bb + return this.width; + } + + public boolean hasWidthElement() { + return this.width != null && !this.width.isEmpty(); + } + + public boolean hasWidth() { + return this.width != null && !this.width.isEmpty(); + } + + /** + * @param value {@link #width} (Width of the image in pixels (photo/video).). This is the underlying object with id, value and extensions. The accessor "getWidth" gives direct access to the value + */ + public Media setWidthElement(IntegerType value) { + this.width = value; + return this; + } + + /** + * @return Width of the image in pixels (photo/video). + */ + public int getWidth() { + return this.width == null ? 0 : this.width.getValue(); + } + + /** + * @param value Width of the image in pixels (photo/video). + */ + public Media setWidth(int value) { + if (this.width == null) + this.width = new IntegerType(); + this.width.setValue(value); + return this; + } + + /** + * @return {@link #frames} (The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.). This is the underlying object with id, value and extensions. The accessor "getFrames" gives direct access to the value + */ + public IntegerType getFramesElement() { + if (this.frames == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.frames"); + else if (Configuration.doAutoCreate()) + this.frames = new IntegerType(); // bb + return this.frames; + } + + public boolean hasFramesElement() { + return this.frames != null && !this.frames.isEmpty(); + } + + public boolean hasFrames() { + return this.frames != null && !this.frames.isEmpty(); + } + + /** + * @param value {@link #frames} (The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.). This is the underlying object with id, value and extensions. The accessor "getFrames" gives direct access to the value + */ + public Media setFramesElement(IntegerType value) { + this.frames = value; + return this; + } + + /** + * @return The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required. + */ + public int getFrames() { + return this.frames == null ? 0 : this.frames.getValue(); + } + + /** + * @param value The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required. + */ + public Media setFrames(int value) { + if (this.frames == null) + this.frames = new IntegerType(); + this.frames.setValue(value); + return this; + } + + /** + * @return {@link #duration} (The duration of the recording in seconds - for audio and video.). This is the underlying object with id, value and extensions. The accessor "getDuration" gives direct access to the value + */ + public IntegerType getDurationElement() { + if (this.duration == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.duration"); + else if (Configuration.doAutoCreate()) + this.duration = new IntegerType(); // bb + return this.duration; + } + + public boolean hasDurationElement() { + return this.duration != null && !this.duration.isEmpty(); + } + + public boolean hasDuration() { + return this.duration != null && !this.duration.isEmpty(); + } + + /** + * @param value {@link #duration} (The duration of the recording in seconds - for audio and video.). This is the underlying object with id, value and extensions. The accessor "getDuration" gives direct access to the value + */ + public Media setDurationElement(IntegerType value) { + this.duration = value; + return this; + } + + /** + * @return The duration of the recording in seconds - for audio and video. + */ + public int getDuration() { + return this.duration == null ? 0 : this.duration.getValue(); + } + + /** + * @param value The duration of the recording in seconds - for audio and video. + */ + public Media setDuration(int value) { + if (this.duration == null) + this.duration = new IntegerType(); + this.duration.setValue(value); + return this; + } + + /** + * @return {@link #content} (The actual content of the media - inline or by direct reference to the media source file.) + */ + public Attachment getContent() { + if (this.content == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Media.content"); + else if (Configuration.doAutoCreate()) + this.content = new Attachment(); // cc + return this.content; + } + + public boolean hasContent() { + return this.content != null && !this.content.isEmpty(); + } + + /** + * @param value {@link #content} (The actual content of the media - inline or by direct reference to the media source file.) + */ + public Media setContent(Attachment value) { + this.content = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "code", "Whether the media is a photo (still image), an audio recording, or a video recording.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("subtype", "CodeableConcept", "Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality.", 0, java.lang.Integer.MAX_VALUE, subtype)); + childrenList.add(new Property("identifier", "Identifier", "Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("created", "dateTime", "The date/time when the media was originally recorded. For video and audio, if the length of the recording is not insignificant, this is the start of the recording.", 0, java.lang.Integer.MAX_VALUE, created)); + childrenList.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device|Specimen)", "Who/What this Media is a record of.", 0, java.lang.Integer.MAX_VALUE, subject)); + childrenList.add(new Property("operator", "Reference(Practitioner)", "The person who administered the collection of the image.", 0, java.lang.Integer.MAX_VALUE, operator)); + childrenList.add(new Property("view", "CodeableConcept", "The name of the imaging view e.g Lateral or Antero-posterior (AP).", 0, java.lang.Integer.MAX_VALUE, view)); + childrenList.add(new Property("deviceName", "string", "The name of the device / manufacturer of the device that was used to make the recording.", 0, java.lang.Integer.MAX_VALUE, deviceName)); + childrenList.add(new Property("height", "integer", "Height of the image in pixels(photo/video).", 0, java.lang.Integer.MAX_VALUE, height)); + childrenList.add(new Property("width", "integer", "Width of the image in pixels (photo/video).", 0, java.lang.Integer.MAX_VALUE, width)); + childrenList.add(new Property("frames", "integer", "The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required.", 0, java.lang.Integer.MAX_VALUE, frames)); + childrenList.add(new Property("duration", "integer", "The duration of the recording in seconds - for audio and video.", 0, java.lang.Integer.MAX_VALUE, duration)); + childrenList.add(new Property("content", "Attachment", "The actual content of the media - inline or by direct reference to the media source file.", 0, java.lang.Integer.MAX_VALUE, content)); + } + + public Media copy() { + Media dst = new Media(); + copyValues(dst); + dst.type = type == null ? null : type.copy(); + dst.subtype = subtype == null ? null : subtype.copy(); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.created = created == null ? null : created.copy(); + dst.subject = subject == null ? null : subject.copy(); + dst.operator = operator == null ? null : operator.copy(); + dst.view = view == null ? null : view.copy(); + dst.deviceName = deviceName == null ? null : deviceName.copy(); + dst.height = height == null ? null : height.copy(); + dst.width = width == null ? null : width.copy(); + dst.frames = frames == null ? null : frames.copy(); + dst.duration = duration == null ? null : duration.copy(); + dst.content = content == null ? null : content.copy(); + return dst; + } + + protected Media typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Media)) + return false; + Media o = (Media) other; + return compareDeep(type, o.type, true) && compareDeep(subtype, o.subtype, true) && compareDeep(identifier, o.identifier, true) + && compareDeep(created, o.created, true) && compareDeep(subject, o.subject, true) && compareDeep(operator, o.operator, true) + && compareDeep(view, o.view, true) && compareDeep(deviceName, o.deviceName, true) && compareDeep(height, o.height, true) + && compareDeep(width, o.width, true) && compareDeep(frames, o.frames, true) && compareDeep(duration, o.duration, true) + && compareDeep(content, o.content, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Media)) + return false; + Media o = (Media) other; + return compareValues(type, o.type, true) && compareValues(created, o.created, true) && compareValues(deviceName, o.deviceName, true) + && compareValues(height, o.height, true) && compareValues(width, o.width, true) && compareValues(frames, o.frames, true) + && compareValues(duration, o.duration, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (subtype == null || subtype.isEmpty()) + && (identifier == null || identifier.isEmpty()) && (created == null || created.isEmpty()) + && (subject == null || subject.isEmpty()) && (operator == null || operator.isEmpty()) && (view == null || view.isEmpty()) + && (deviceName == null || deviceName.isEmpty()) && (height == null || height.isEmpty()) && (width == null || width.isEmpty()) + && (frames == null || frames.isEmpty()) && (duration == null || duration.isEmpty()) && (content == null || content.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Media; + } + + @SearchParamDefinition(name="patient", path="Media.subject", description="Who/What this Media is a record of", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="created", path="Media.created", description="When the media was taken/recorded (start)", type="date" ) + public static final String SP_CREATED = "created"; + @SearchParamDefinition(name="subject", path="Media.subject", description="Who/What this Media is a record of", type="reference" ) + public static final String SP_SUBJECT = "subject"; + @SearchParamDefinition(name="subtype", path="Media.subtype", description="The type of acquisition equipment/process", type="token" ) + public static final String SP_SUBTYPE = "subtype"; + @SearchParamDefinition(name="view", path="Media.view", description="Imaging view e.g Lateral or Antero-posterior", type="token" ) + public static final String SP_VIEW = "view"; + @SearchParamDefinition(name="type", path="Media.type", description="photo | video | audio", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="identifier", path="Media.identifier", description="Identifier(s) for the image", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + @SearchParamDefinition(name="operator", path="Media.operator", description="The person who generated the image", type="reference" ) + public static final String SP_OPERATOR = "operator"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$1.class new file mode 100644 index 0000000000000000000000000000000000000000..0707807b3c0b781c2785183f420a48896abf9ae8 GIT binary patch literal 820 zcmbVL!EVz)5Pj>o*(A7)DTSs5K>-sS4p<1GN`O$SkXBWirfLctdfM1ayv1E3+bN&K z8ITY{s2{*bA!dzGkhoNpY|ndR&zqT@@y}o1&j38eg9fhRS{)qAbwVveS2$J;xz2He z;}*k)H~OH8Fdm5aUYbq3I9d1J#wzoa&I_SK>7AsJOuT`NR459S>VIHg>4?EP+F__Y z4-=(T@q(e^cV08tU5aC9?kX+!rYB>W9g1;6p7~KB!grLf_N+wY+ z%hJq22W3X#{W0TrsH_WZkpRj~G H8!Nv7Y#7d` literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationKind.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationKind.class new file mode 100644 index 0000000000000000000000000000000000000000..5742db408506ccf5396a5b17f81146d6ef838ec5 GIT binary patch literal 2497 zcmbVN+j7%Z6kW%5BE={d6z&Z~1p`SSF|^!D(%b`>I2Ujd2;oviRvdvXxv~u91NssD zhQ7FACSl67<*5(-s7}|Bo!FVAGmI@u=j@|>_S%=VkN)}h_dfxAi$WV>7>#2L;|eY- zn2e(rQ}QvbVkVAzxUb@YR7$CMD92d^X$5m}bYNb^f*coBJd)$%INFhE!xEO`)Lc>V zM8#7Tt11k+@JvNQ#YJglO~G>kW%2RC^zzh_K*yY&bu2S*Ja^V{vjSSmb!~qtZ*3KvEn-le^v@bgHG{HGFQR>NMcwedLeH&YFUX54aNq{+xfNrZUDEBlsx&yfl4tn*|@=2ycdN&m|lUf`vIR{}SiBAkY+ z_(8)Ek^)dbyX&x6&!X>T%T}Plzy&EXjb_f)kdR_`y~2A56*yU6t=4_A?BuhyFRfn} zIJ@k=alLo0QIAA2-mpk1gK=cRFa;+YxFxsb6l`j6@LIzg0dx3Ts_i_*uY1$d`9fx zhKOt?DoTJ}M0v5X2Cnq%p!K%{)~|6Tg6l;2hA7odKQkKXS8CvIXu2}64fPkah>G4; zohn<1SM(!$f>!y2_SH}5SlvOV-nEURe05aU`PfGH4vzg5g2$~({O`x=}0^8o4CcNjOckS1%q2SPM8xzzjBek^SmRxrQf6b)+0re4@1xvL=zF2+}lkeDHWan14#2kS|HLQksj?w zy3-`msfvF35Ts=ytq|!6k)G~H`mRZ&|HXQ%tD95uckQR`KK4f>#?#Xw)bH0ySlTf?wYhC?m2d*eAuw2rwmPX4cl5VtQ3R1Y+1UKG}T;A&oQhF ztsbcF)R?JS>DY$r7*;wSUbUTcY~P%W?d=;*%&>BUFJkFYYPy*%$1?PGJ^#xpCSI2Qo7)Fo~Y+odXpizVWch9 z%{x>^w*qH<_dwU&__f42#Gw%pu7jWF0$|*IXI%Sl}ippr&;hi`?wudXtT*CerwUi8W6#2tp& znh+{PVCbl(U3J#vC0!PmVeq<$|9iPyF=}u9D6g8-=dG0udD=JOx1`MLH|z6T$xVjI z8oPsIB$6wMB@#BEX0tl~poc5NUD4Q8ic))tu6;(iW$4OJr7D3lM7nPVt}BmMX_Byo zE&^{7J}lrPzIR=K^~O zAx-u^x?tcw4iLs6Mqy$C8Qdig0sfH8WEnkV_=u`V4>c=|JhNqj<8<4jMCA(timyN` zfv*AurKvzi<#=sW5+F->N08vqA0bEOa!WBNV=35_AlQ4Su)U|S!ASHMnu}04P*u^$ xy%YW9##!*yN|I9=z+h<}B5eSLcA7DTuGtPEHH8@j{{gbUy0ZWP literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationPackageComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationPackageComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..08a4ddd2c227aede44d022975c59af812c04e53b GIT binary patch literal 4610 zcmb_gX>%0U6+QiCM2|)zK!e$2gB!C6ZDVW`JB+XqLIgPyV1z|jOx&7z8a0~f9(VTu z!cJ_wWcQZDi|`&N!A?k379&Aal{jCZDpmOn`I5hoFD@#|c|9$Skd%>0QpLP}@AZB6 z+~wT+TKx52fBX}G`|)WUtti&Qz*BL!@O1bwl;Viuj9Q=7aW0M+ifR~DV&`={9Y+Gi zIy{4K)#2NCRt?YTcs`B>jH)4c_kz;=qK=nhXp7-HF?2+potm18V->y|!>$;<7sEca z`o4}I#HpDW27ai3ex#JVtj@op_Fh%PYijwr8b%c|aSZ%e$4@lWW*pl$EnB)8+Ik%~ zmm1DLm>L?k+>~W|zG-JdsIbeAfUv%2Gzd)ho>rb@n*PxTUs zM%DIPIotG0F5TYHC$m;22;!l#8ire)>~ac4#|~5^dTgevD{p$9WTa2d(b!QnHWmGw zD%1Y}m3}y_qAnt2-js$lN0p0o(6DTJDyJQNM8nQb!;^kFAfcUJIU+g7@ExOIj!2_a z3{GW(j10=GVfnJa;4Jr~%g_%<*JDZ^@7b$CdsIU`Jy!(u2h4m))~NKaU-Hj~G%V>* z*?X8=XxcVF!YE=gwY?h@NE7RqFZNqWV@Fa+F5G6?escxv9}|CK{DAq*T% z(D75Q&1_c1EHJ5ek-Sv*^VZ@>vyn0-s)U2K;!2kIil(_PE83*z?pF8tkn0qs>yNS~ z0@7ui;;4r1|H=009I=J-reIj)QzbL+?Uk~qVRLn^>@hu=R{X0kAL<`A^LghiTaD#) z7m7ZOTa55~NbW)Ql^CbamDB0E=BVo5I>r*Xhuc^$4{uD>B@3P+`pItcErWKJg&mHX>RjR z&%Gijh7J5mZsli3gdg;5P5k;yadj^Qe>K?dar3?t&@y~=e-9qOjvjmk531Qil=-TM zok)A=;AyrG?mWWN0($~2Z51uMlotLu(SxoT6?>;ubSoA6(1@>LKMm*!R6L5MoU>(e zJiwg|e6qSx(>wv~cbsTA$T3a~h!cp4liWFk$2cnS3_VifZOxxS+`y)*h>W3r647JH znh7lV^Hu0$SlT>^*s%%JUV%_@zvTfDsBOd&P6wfj4C+M|tA)fmF@z?O!(mEAAyzLZ zKtGOzfIInAfUA|F>u6Aqal|h|k6uDFa(PDe5+x=^0yQ-dD|f4NkK-suW%x!~K$oC5 zweNofr==8xI8UFRMp8Tz7{DMU z!<-$b))O=CoaIV=7(Yo}4ZQ4_s|eOw~oy#nsPmULW@5|T>J_R;@4OqE@O@OO<-vP(Rl18 zw$Q@es-Ac^hjtudT9qA*DzQxq*b%LiW*O!8MEL_zJ|oH%qKp$|B0yo)$4MXcxfE(2 z;8Ruoc6Oz0V+b;L9rfj`#m9(Bm#$-(dR#-Zs+xuS!DIlSBf2IT*{v<_BuPd>jCCPK yP4hT{B$oR@xsU7*MDt%tlyNA~RslO`&q{&AbtivG?l#~8n~C}_oC_F0?Y{vaeNbPS+N`?cAM4^c_qOn0R{l$ zC|#27`@SmgoxG$o?M!UB^-SBmBs2X7?M&OJt`B`{pW3MBf}|kHGU#+VvMzv&?>pc5 z)(h)5@BZSK03O9k0vT9w^ukV{iWj1AVsI0Pz?09lC|*n;21_nCrPxbREGMAXbzY9) z<57GfflevWiJKDblTmyshHMP4#Bf@BWo>OOf!%nu9iPT$Vi<_wvoQ=u@wo)isMU+l zOYkp9{Vz)WFUh?x%e$}0g_yngY7}2n5HUSbQE+t1b`}dux&J5iMdF6~T+Q zT;(Mbs((S0%%X3Kify)25{|}zD+;uVY01@iNx{ibjEx*7gj;mXs^m_e!`P(My|F+FKIos!_aQERtyFg6&j{@wk6W`g0CXO z>u%BSSCEkVmkno8cnWqH6`Mg-a3qxb(=~$zyyZdZwJH}Vc<8)+GhH#P<+S05Ep~<# zJaU<|>+nrRO`p6agN|*(tb5=&K$EUyg8#>6K$-)wV#x= z8PXq;Av?RF|G9y2&@SE|gPOou*cS;84F8?Gx@-R=YP z59J#eJ`~*EhXd=fqY;Q^vE*8WBfyl(4S$=;UbqVzbi-pF2tJSxar!XYsPRk-{_9n) zAkOSH)#CJ|dGCaKv5xS6^+7M2uIG;}PC^B{GE>)$7mY&AGs}f3z8aKO8=o~7EyJrh zEcd~!5<{V7G2_@(;jp{U`bd$YU0qf%)goH&DG@v%c=qsc;rtOV)Qqw_Aw*Td;qZ8l z8Lk+V-P2K5nq4x=W&0+($#lZh`7Sc`>oj$=Ct9v}5Me5zjB zv(rY+vyT@YVR#}Pn7>cQ_RGO8ZG2P5wbPRxj9R8n~ z){g}Rhr;YNn@Pt<@O%r|W(h0Uvp$qF0pY9+%eSNWj*jo*dkSJrYz61TC%RY5jPnuo@Mxma`j&k_Y)LYB`(Ym_B3 z?pF+B(U=2%dChu`X)XF4u9xhMV$W|QRv$4N74O}doD3Z+_2%VhN^TxkJgtpVX$!lH z^Vda@lZ?Hdkn_hs>3Q;CUAep<1*p*ep2`lA(N(I%Y(}Nwn{S%_NdjaX|eW zGV0$kMX3nX?oJxGfa!+80bZrSZVB`@y5!|H60ac|c^wh$jdkc9QcV4a57P#9&xq8! zh)Z0h!v`A$sh-wsXP{p#yFIdMI_E{wlftDyZ)iv7sHI zm7_>&84PM!eAKU_kC7m!c7x`R8znP%7rl(&`=@gG+eqi7!FLcK57fce=;9msx6oU^`89ekNXEzb8@Yo+E7&Vp^D$X}+}cupw`wQJ z`7tE4Q|Qu8W0!UY`?LX{w~k06_HP^^u@TvAJoOqpW*9ojqemv}@HRXmLF3k~4AaU8 zt&Gyj7_E%c%7kx)Ga(TpEKX$u)kV|x;5Mx7aD zDN9*f%D#iczJ#y@XrWC~at=*_({ebx!5eRIfWsT>1LpwYyECImvK%?h$vM`{ojd>i zm+$-U|KIVi{`Zrg0=OH`#jy>iThN6wah%2DQM@gNx5p92JLK~_qj(~Y7*5N}yX58F zQM@OP_u_r>;r(*qlQBFM#RuYOmtyTwtX+ydE$<(c`acxKhhylC;Uh8Z4n1-G`t>+E z@zKTj7(O1uo)|t6Lw^*Xic=d^bm7xd`Df(%&&u_mlXIV!qggpRCr7l>g)c<$MS+%r z4W?xteQOrX!GPsz$4dW(H@BLY~^frdHH>bE#Y)V%d4!4iRD@5Gop`96}DY zGXnSAvi2d}$=OCpdPN%vXU4MKA$`g)4LK#G%C;%XE^39^*}m}^J*hd4F>UJkB+*Hl z9z02FDybzWH8(dShc2a@lAbfB42qR(D__pJy#h=0GbO|Jpcv9zMw4pluap@ljvlNs zPDNn*kr~~j0mG?S$W`qImXfE9LLuqd(rLBL(QQL3Oz5`5&<>9b35W*;S_er8Idmtq zLRpVU7*F-?7!+94CsEi#OuKs~2>c)!CPbr#sr$(=u8~!NrPI1QT1k-Mf?m{3mmzic zG!3dQQ(DJdEq8LiR;s9+(VRw=^y8R-TKkUHo%yV<+pp)1oQLosANB!B%Ai#&S*GWo zI%1l-Jy;-%I`h%K<-BelR@Lst>Tq5cm~Lt01ZArJ?v)MhKrf|+GofUX+ffT5w{enAy9f|FatxX`VKUUTX&XBH`1U5A%dq8va ztSkks{-UuNtx&K|3q%cPxL9)OWM%;;2Uu<2D5e9S7_IsJY^7QaL_ z++MkNUrlElC|J3ZSru=<11frviQ-EtzKny^S}g;^wr#QP?(275ov|fdE2))TYg^9N znR&^o`FV>>?~Tqa&3r}0SEc&Rx7NZ{JcffRzJ{-}c~m{}D|Zy%Q1MNiSMe=eP_YMl z1%_|aNv}oKw8QRZ{?%@Ewo=cp8{12I^KBJ6rUW)N(^AQ8wmHW;vq*ft6UBE`d=D1| zV)>xyM)7@t`1GD!B(FeE zGikQ>DPy|qA2(Q~beT{G&3-1)pqE1e%jfGStQ~6Jsuhc|77^ORz!<7+%H7!4ZZeo_(I>tg8*x6g_SzxAl1wCXNMH)TjpO(0BYHOZXtedZw z#icgI7}cY-PWaAe8yj%r%*aU7^6Hl{!d#QXvTXCfrRDQ;;Hkt;c$)6sYBI8>%7X0y z$pg;zg=%VjL6ogyagN6&&DQ;*{J=sASdg`&2p{c;T*jgouOK>$C8?{39leZ}=b=cs zXShJ|)UL)Ns(leraSg5FC9D)b!y55(bc?1YiRrAvB1l(lR<3S}kI~ zK}7tPGlww|EXeXM16biB78MuJ>Ibp-8q_K@zW=}T>_(w19*N=z7rq%s14R;gX?bh< z3R-8eI3?)71+4Y;&c!@^2}_Q6?$sjydm{e_B*Y)FLi`Eq#h;N9e+fbjCE8;&bqq|& z2CftJT({M6-A=AMo=1Y7B&q@VT>q68|3Xz^}Gdd4FIU)Ix&}PC5(s?q3CgF!Gc<@iCBee2C?iKmRF(ixK>op zZou^yT8E$SUhGO)Cm!7#)uoL5$})Bl9_X641N)#vg2f@pA z)}hL?e=i)Ece+Stc~S~oew?((e}Z^GZ8?WX=wkXMboqm8=-Mwm-pXJ23c6>#EuY|H z!hf7wvAhkUY@^S;h$|ViE8EG|4s{4E9EUdi%!XvKOr}AqiKI5 z40vXu2zR!H_KCKBCW#$bSQA)?q%L8rq}wmHez837i8{9=O5R*9S5WqvuvBo0&tv?> MIqt$I@eo@656HuG4FCWD literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationProductComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationProductComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..a63c1310d456f00dda7d7ff85134665434619a85 GIT binary patch literal 5732 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationProductIngredientComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication$MedicationProductIngredientComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..095d2ef4c031262aa2ea58fa53be032ed9a9d09b GIT binary patch literal 4677 zcmb_eYjYFl6@Fe>wq&t3wkY9JlPm>{EC-7wB^28wzETXv5F4DBHZ5yuZ7oQ;#W~T8^P-_0#K_9ZwTm{qW_lY|61Pt zM(%zq3o*O!y9nM^2wT3HS2#H7xQnT5?r3TuYq=@Q_I$%mo2k5$F>|SDbHQ{?J`X7D znl9SDl{aTC&zjGf!?x}ChHp8xr;w_PVpK&_qggALAzIir@+L3-Qh}HHUd$BdOI}eg zQPtu>)Ur#%>Z&!_nJq@%VLBD| z)z=U%2ZX|qEKqp-q;p-*7t`4q=XhHoK_N3!Fw@q8WqNv6L=AgMPtf_`fqIN&L1!4c z`0dG^OJ4XRh@Z7Qy_&;5T_5jT?9-n*a#+tV>IH`G8!SDaVRv|@YZXbs;DC?0G?9UpxqS?%TSzU2&MHE^FC27Z50*Rhk*4-%Un;D&CzNU)#dDA^F$O_5& z1y*ecL5Yy`iJ*;o5Ib#&cCL>wHE1}T0i$wJ*sQas2oGTUC#9HNy zI{AWQvxF413EMW^(VXFVCY$lvrbDRfa@F>x++csSmFcKdW1=A`YxUSxj=7>*Y!pLT zvp(yO9zrWa7%sQQfky5J&7siB{8e;X8As*bZ4g7C{{Id@%UPZu3|Y=?g>8w+%f>Y$ zRrIY~YLcG@q;6YhtVP@Ki!KX(V57uf-Kt<6vJd^Gf#U&EIPDac6wWrF>QNKH9gUkL zcSFuM^D0NCH)fgzg#+~|9Wgv}Kw7A+q%@N?ayjQZTgvjr^97%trW$xU!q%K;UybL? zJe!MEeXxN>RWddcjMo#E43e$YnENCJkFrUQ$nO-!#*ca!Pk99H;TS_hmVdvnZaV_Jq_;*{DDm!1~gMCe29-UT*7HtUeI7-LBq#b*03mdm%z&Ct!HpUMJn{vlji=n zU@aD135NaOX-buxwTD?5qd{Tt&{FRBpo(UEm#2}Sm$i&jEB4|8#7e`YR`LEf6BBg@ zNU29Tgxc2+Chp8ehDWD$-kqJlY^FK0*wWqgqOK-|14Bkqu>Er{JltqttnYRij$6{) zS$QBSO`MaB061|P$9u8oBKGp=-OV#pn1AePo~3&D^fW?9q8Ys&Uq1O0gwi;aMjuiW zIE?Sh@{}wh_5%+`@QjC}1Yqw4P;9?4(BUdjzW}K;KM`e6P=2%y<+z|ci`^K)FttaB z6v8MvdC!T%^~Zd(msiDWb8-dh@4Qhs$u&k%s3QogXZU6u6I?|+$@lz%n20BPKS!vl z(+(aU)iLVyqg9E+r*OKgm*zJyb13;4LSJM5T{JDD?HF$h->47@+}Vv5LJuRNM$o24u|thvj~Yipoxmie!U*l?pn)@(DjV$QRSfPBps&y= zmph2vMkM?R!cCv9LAQvQIu*b)BeZ=;^v+_Ms|38S9B?EEHYqOEGV~mpm59#Zd|6=+ zuO&i1!-z&+o0(4c%iIN%c8cP#kO@Uwv)xJpF?BR+C~<$ zWYHpvm&xK4vX~=_`E@MLJ&;AM#G-Zw9S>vi>UtJ0g7tYni`spW-e9ClOd{t#=@!~A zp*5(p!DR0WI(zRSJ{R8>|4w{+Q~WVWxMwoidk2sAiovhR+9xdgpp2eify!Iv zpz@Zq=p?+i%JySycc|A8Rj-rnH?U8=iDT-mfTBT!SFsDB2T`D*uDq&5w5me$;yYc z@)50kOe@Q@a+_BET&crYl(;;8l+mTRq^VLIJNuW>BSC$IHo35=m$6gAD!q{UTz*KG z|0RHrAiT4qX-IVpGxb*4LbYx0;K0VV-4lpj-jpa=xDu3BE*SjM_jx`)$6t*1U3d-W G(E49QJGsXI literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/Medication.class new file mode 100644 index 0000000000000000000000000000000000000000..66be059345ddebe173ae5f784539427bb2d13ad4 GIT binary patch literal 13406 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 { - public MedicationKind fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("product".equals(codeString)) - return MedicationKind.PRODUCT; - if ("package".equals(codeString)) - return MedicationKind.PACKAGE; - throw new IllegalArgumentException("Unknown MedicationKind code '"+codeString+"'"); - } - public String toCode(MedicationKind code) throws IllegalArgumentException { - if (code == MedicationKind.PRODUCT) - return "product"; - if (code == MedicationKind.PACKAGE) - return "package"; - return "?"; - } - } - - @Block() - public static class MedicationProductComponent extends BackboneElement { - /** - * Describes the form of the item. Powder; tables; carton. - */ - @Child(name="form", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="powder | tablets | carton +", formalDefinition="Describes the form of the item. Powder; tables; carton." ) - protected CodeableConcept form; - - /** - * Identifies a particular constituent of interest in the product. - */ - @Child(name="ingredient", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Active or inactive ingredient", formalDefinition="Identifies a particular constituent of interest in the product." ) - protected List ingredient; - - private static final long serialVersionUID = -506109200L; - - public MedicationProductComponent() { - super(); - } - - /** - * @return {@link #form} (Describes the form of the item. Powder; tables; carton.) - */ - public CodeableConcept getForm() { - if (this.form == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationProductComponent.form"); - else if (Configuration.doAutoCreate()) - this.form = new CodeableConcept(); - return this.form; - } - - public boolean hasForm() { - return this.form != null && !this.form.isEmpty(); - } - - /** - * @param value {@link #form} (Describes the form of the item. Powder; tables; carton.) - */ - public MedicationProductComponent setForm(CodeableConcept value) { - this.form = value; - return this; - } - - /** - * @return {@link #ingredient} (Identifies a particular constituent of interest in the product.) - */ - public List getIngredient() { - if (this.ingredient == null) - this.ingredient = new ArrayList(); - return this.ingredient; - } - - public boolean hasIngredient() { - if (this.ingredient == null) - return false; - for (MedicationProductIngredientComponent item : this.ingredient) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #ingredient} (Identifies a particular constituent of interest in the product.) - */ - // syntactic sugar - public MedicationProductIngredientComponent addIngredient() { //3 - MedicationProductIngredientComponent t = new MedicationProductIngredientComponent(); - if (this.ingredient == null) - this.ingredient = new ArrayList(); - this.ingredient.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("form", "CodeableConcept", "Describes the form of the item. Powder; tables; carton.", 0, java.lang.Integer.MAX_VALUE, form)); - childrenList.add(new Property("ingredient", "", "Identifies a particular constituent of interest in the product.", 0, java.lang.Integer.MAX_VALUE, ingredient)); - } - - public MedicationProductComponent copy() { - MedicationProductComponent dst = new MedicationProductComponent(); - copyValues(dst); - dst.form = form == null ? null : form.copy(); - if (ingredient != null) { - dst.ingredient = new ArrayList(); - for (MedicationProductIngredientComponent i : ingredient) - dst.ingredient.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (form == null || form.isEmpty()) && (ingredient == null || ingredient.isEmpty()) - ; - } - - } - - @Block() - public static class MedicationProductIngredientComponent extends BackboneElement { - /** - * The actual ingredient - either a substance (simple ingredient) or another medication. - */ - @Child(name="item", type={Substance.class, Medication.class}, order=1, min=1, max=1) - @Description(shortDefinition="The product contained", formalDefinition="The actual ingredient - either a substance (simple ingredient) or another medication." ) - protected Reference item; - - /** - * The actual object that is the target of the reference (The actual ingredient - either a substance (simple ingredient) or another medication.) - */ - protected Resource itemTarget; - - /** - * Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet. - */ - @Child(name="amount", type={Ratio.class}, order=2, min=0, max=1) - @Description(shortDefinition="How much ingredient in product", formalDefinition="Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet." ) - protected Ratio amount; - - private static final long serialVersionUID = -1217232889L; - - public MedicationProductIngredientComponent() { - super(); - } - - public MedicationProductIngredientComponent(Reference item) { - super(); - this.item = item; - } - - /** - * @return {@link #item} (The actual ingredient - either a substance (simple ingredient) or another medication.) - */ - public Reference getItem() { - if (this.item == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationProductIngredientComponent.item"); - else if (Configuration.doAutoCreate()) - this.item = new Reference(); - return this.item; - } - - public boolean hasItem() { - return this.item != null && !this.item.isEmpty(); - } - - /** - * @param value {@link #item} (The actual ingredient - either a substance (simple ingredient) or another medication.) - */ - public MedicationProductIngredientComponent setItem(Reference value) { - this.item = value; - return this; - } - - /** - * @return {@link #item} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The actual ingredient - either a substance (simple ingredient) or another medication.) - */ - public Resource getItemTarget() { - return this.itemTarget; - } - - /** - * @param value {@link #item} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The actual ingredient - either a substance (simple ingredient) or another medication.) - */ - public MedicationProductIngredientComponent setItemTarget(Resource value) { - this.itemTarget = value; - return this; - } - - /** - * @return {@link #amount} (Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet.) - */ - public Ratio getAmount() { - if (this.amount == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationProductIngredientComponent.amount"); - else if (Configuration.doAutoCreate()) - this.amount = new Ratio(); - return this.amount; - } - - public boolean hasAmount() { - return this.amount != null && !this.amount.isEmpty(); - } - - /** - * @param value {@link #amount} (Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet.) - */ - public MedicationProductIngredientComponent setAmount(Ratio value) { - this.amount = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("item", "Reference(Substance|Medication)", "The actual ingredient - either a substance (simple ingredient) or another medication.", 0, java.lang.Integer.MAX_VALUE, item)); - childrenList.add(new Property("amount", "Ratio", "Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet.", 0, java.lang.Integer.MAX_VALUE, amount)); - } - - public MedicationProductIngredientComponent copy() { - MedicationProductIngredientComponent dst = new MedicationProductIngredientComponent(); - copyValues(dst); - dst.item = item == null ? null : item.copy(); - dst.amount = amount == null ? null : amount.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (item == null || item.isEmpty()) && (amount == null || amount.isEmpty()) - ; - } - - } - - @Block() - public static class MedicationPackageComponent extends BackboneElement { - /** - * The kind of container that this package comes as. - */ - @Child(name="container", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="E.g. box, vial, blister-pack", formalDefinition="The kind of container that this package comes as." ) - protected CodeableConcept container; - - /** - * A set of components that go to make up the described item. - */ - @Child(name="content", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="What is in the package?", formalDefinition="A set of components that go to make up the described item." ) - protected List content; - - private static final long serialVersionUID = 503772472L; - - public MedicationPackageComponent() { - super(); - } - - /** - * @return {@link #container} (The kind of container that this package comes as.) - */ - public CodeableConcept getContainer() { - if (this.container == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationPackageComponent.container"); - else if (Configuration.doAutoCreate()) - this.container = new CodeableConcept(); - return this.container; - } - - public boolean hasContainer() { - return this.container != null && !this.container.isEmpty(); - } - - /** - * @param value {@link #container} (The kind of container that this package comes as.) - */ - public MedicationPackageComponent setContainer(CodeableConcept value) { - this.container = value; - return this; - } - - /** - * @return {@link #content} (A set of components that go to make up the described item.) - */ - public List getContent() { - if (this.content == null) - this.content = new ArrayList(); - return this.content; - } - - public boolean hasContent() { - if (this.content == null) - return false; - for (MedicationPackageContentComponent item : this.content) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #content} (A set of components that go to make up the described item.) - */ - // syntactic sugar - public MedicationPackageContentComponent addContent() { //3 - MedicationPackageContentComponent t = new MedicationPackageContentComponent(); - if (this.content == null) - this.content = new ArrayList(); - this.content.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("container", "CodeableConcept", "The kind of container that this package comes as.", 0, java.lang.Integer.MAX_VALUE, container)); - childrenList.add(new Property("content", "", "A set of components that go to make up the described item.", 0, java.lang.Integer.MAX_VALUE, content)); - } - - public MedicationPackageComponent copy() { - MedicationPackageComponent dst = new MedicationPackageComponent(); - copyValues(dst); - dst.container = container == null ? null : container.copy(); - if (content != null) { - dst.content = new ArrayList(); - for (MedicationPackageContentComponent i : content) - dst.content.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (container == null || container.isEmpty()) && (content == null || content.isEmpty()) - ; - } - - } - - @Block() - public static class MedicationPackageContentComponent extends BackboneElement { - /** - * Identifies one of the items in the package. - */ - @Child(name="item", type={Medication.class}, order=1, min=1, max=1) - @Description(shortDefinition="A product in the package", formalDefinition="Identifies one of the items in the package." ) - protected Reference item; - - /** - * The actual object that is the target of the reference (Identifies one of the items in the package.) - */ - protected Medication itemTarget; - - /** - * The amount of the product that is in the package. - */ - @Child(name="amount", type={Quantity.class}, order=2, min=0, max=1) - @Description(shortDefinition="How many are in the package?", formalDefinition="The amount of the product that is in the package." ) - protected Quantity amount; - - private static final long serialVersionUID = -1385430192L; - - public MedicationPackageContentComponent() { - super(); - } - - public MedicationPackageContentComponent(Reference item) { - super(); - this.item = item; - } - - /** - * @return {@link #item} (Identifies one of the items in the package.) - */ - public Reference getItem() { - if (this.item == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationPackageContentComponent.item"); - else if (Configuration.doAutoCreate()) - this.item = new Reference(); - return this.item; - } - - public boolean hasItem() { - return this.item != null && !this.item.isEmpty(); - } - - /** - * @param value {@link #item} (Identifies one of the items in the package.) - */ - public MedicationPackageContentComponent setItem(Reference value) { - this.item = value; - return this; - } - - /** - * @return {@link #item} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies one of the items in the package.) - */ - public Medication getItemTarget() { - if (this.itemTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationPackageContentComponent.item"); - else if (Configuration.doAutoCreate()) - this.itemTarget = new Medication(); - return this.itemTarget; - } - - /** - * @param value {@link #item} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies one of the items in the package.) - */ - public MedicationPackageContentComponent setItemTarget(Medication value) { - this.itemTarget = value; - return this; - } - - /** - * @return {@link #amount} (The amount of the product that is in the package.) - */ - public Quantity getAmount() { - if (this.amount == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationPackageContentComponent.amount"); - else if (Configuration.doAutoCreate()) - this.amount = new Quantity(); - return this.amount; - } - - public boolean hasAmount() { - return this.amount != null && !this.amount.isEmpty(); - } - - /** - * @param value {@link #amount} (The amount of the product that is in the package.) - */ - public MedicationPackageContentComponent setAmount(Quantity value) { - this.amount = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("item", "Reference(Medication)", "Identifies one of the items in the package.", 0, java.lang.Integer.MAX_VALUE, item)); - childrenList.add(new Property("amount", "Quantity", "The amount of the product that is in the package.", 0, java.lang.Integer.MAX_VALUE, amount)); - } - - public MedicationPackageContentComponent copy() { - MedicationPackageContentComponent dst = new MedicationPackageContentComponent(); - copyValues(dst); - dst.item = item == null ? null : item.copy(); - dst.amount = amount == null ? null : amount.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (item == null || item.isEmpty()) && (amount == null || amount.isEmpty()) - ; - } - - } - - /** - * The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code. - */ - @Child(name="name", type={StringType.class}, order=-1, min=0, max=1) - @Description(shortDefinition="Common / Commercial name", formalDefinition="The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code." ) - protected StringType name; - - /** - * A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes. - */ - @Child(name="code", type={CodeableConcept.class}, order=0, min=0, max=1) - @Description(shortDefinition="Codes that identify this medication", formalDefinition="A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes." ) - protected CodeableConcept code; - - /** - * Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is). - */ - @Child(name="isBrand", type={BooleanType.class}, order=1, min=0, max=1) - @Description(shortDefinition="True if a brand", formalDefinition="Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is)." ) - protected BooleanType isBrand; - - /** - * Describes the details of the manufacturer. - */ - @Child(name="manufacturer", type={Organization.class}, order=2, min=0, max=1) - @Description(shortDefinition="Manufacturer of the item", formalDefinition="Describes the details of the manufacturer." ) - protected Reference manufacturer; - - /** - * The actual object that is the target of the reference (Describes the details of the manufacturer.) - */ - protected Organization manufacturerTarget; - - /** - * Medications are either a single administrable product or a package that contains one or more products. - */ - @Child(name="kind", type={CodeType.class}, order=3, min=0, max=1) - @Description(shortDefinition="product | package", formalDefinition="Medications are either a single administrable product or a package that contains one or more products." ) - protected Enumeration kind; - - /** - * Information that only applies to products (not packages). - */ - @Child(name="product", type={}, order=4, min=0, max=1) - @Description(shortDefinition="Administrable medication details", formalDefinition="Information that only applies to products (not packages)." ) - protected MedicationProductComponent product; - - /** - * Information that only applies to packages (not products). - */ - @Child(name="package_", type={}, order=5, min=0, max=1) - @Description(shortDefinition="Details about packaged medications", formalDefinition="Information that only applies to packages (not products)." ) - protected MedicationPackageComponent package_; - - private static final long serialVersionUID = 385691577L; - - public Medication() { - super(); - } - - /** - * @return {@link #name} (The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public StringType getNameElement() { - if (this.name == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Medication.name"); - else if (Configuration.doAutoCreate()) - this.name = new StringType(); - return this.name; - } - - public boolean hasNameElement() { - return this.name != null && !this.name.isEmpty(); - } - - public boolean hasName() { - return this.name != null && !this.name.isEmpty(); - } - - /** - * @param value {@link #name} (The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value - */ - public Medication setNameElement(StringType value) { - this.name = value; - return this; - } - - /** - * @return The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code. - */ - public String getName() { - return this.name == null ? null : this.name.getValue(); - } - - /** - * @param value The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code. - */ - public Medication setName(String value) { - if (Utilities.noString(value)) - this.name = null; - else { - if (this.name == null) - this.name = new StringType(); - this.name.setValue(value); - } - return this; - } - - /** - * @return {@link #code} (A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes.) - */ - public CodeableConcept getCode() { - if (this.code == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Medication.code"); - else if (Configuration.doAutoCreate()) - this.code = new CodeableConcept(); - return this.code; - } - - public boolean hasCode() { - return this.code != null && !this.code.isEmpty(); - } - - /** - * @param value {@link #code} (A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes.) - */ - public Medication setCode(CodeableConcept value) { - this.code = value; - return this; - } - - /** - * @return {@link #isBrand} (Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is).). This is the underlying object with id, value and extensions. The accessor "getIsBrand" gives direct access to the value - */ - public BooleanType getIsBrandElement() { - if (this.isBrand == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Medication.isBrand"); - else if (Configuration.doAutoCreate()) - this.isBrand = new BooleanType(); - return this.isBrand; - } - - public boolean hasIsBrandElement() { - return this.isBrand != null && !this.isBrand.isEmpty(); - } - - public boolean hasIsBrand() { - return this.isBrand != null && !this.isBrand.isEmpty(); - } - - /** - * @param value {@link #isBrand} (Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is).). This is the underlying object with id, value and extensions. The accessor "getIsBrand" gives direct access to the value - */ - public Medication setIsBrandElement(BooleanType value) { - this.isBrand = value; - return this; - } - - /** - * @return Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is). - */ - public boolean getIsBrand() { - return this.isBrand == null ? false : this.isBrand.getValue(); - } - - /** - * @param value Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is). - */ - public Medication setIsBrand(boolean value) { - if (value == false) - this.isBrand = null; - else { - if (this.isBrand == null) - this.isBrand = new BooleanType(); - this.isBrand.setValue(value); - } - return this; - } - - /** - * @return {@link #manufacturer} (Describes the details of the manufacturer.) - */ - public Reference getManufacturer() { - if (this.manufacturer == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Medication.manufacturer"); - else if (Configuration.doAutoCreate()) - this.manufacturer = new Reference(); - return this.manufacturer; - } - - public boolean hasManufacturer() { - return this.manufacturer != null && !this.manufacturer.isEmpty(); - } - - /** - * @param value {@link #manufacturer} (Describes the details of the manufacturer.) - */ - public Medication setManufacturer(Reference value) { - this.manufacturer = value; - return this; - } - - /** - * @return {@link #manufacturer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the details of the manufacturer.) - */ - public Organization getManufacturerTarget() { - if (this.manufacturerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Medication.manufacturer"); - else if (Configuration.doAutoCreate()) - this.manufacturerTarget = new Organization(); - return this.manufacturerTarget; - } - - /** - * @param value {@link #manufacturer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the details of the manufacturer.) - */ - public Medication setManufacturerTarget(Organization value) { - this.manufacturerTarget = value; - return this; - } - - /** - * @return {@link #kind} (Medications are either a single administrable product or a package that contains one or more products.). This is the underlying object with id, value and extensions. The accessor "getKind" gives direct access to the value - */ - public Enumeration getKindElement() { - if (this.kind == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Medication.kind"); - else if (Configuration.doAutoCreate()) - this.kind = new Enumeration(); - return this.kind; - } - - public boolean hasKindElement() { - return this.kind != null && !this.kind.isEmpty(); - } - - public boolean hasKind() { - return this.kind != null && !this.kind.isEmpty(); - } - - /** - * @param value {@link #kind} (Medications are either a single administrable product or a package that contains one or more products.). This is the underlying object with id, value and extensions. The accessor "getKind" gives direct access to the value - */ - public Medication setKindElement(Enumeration value) { - this.kind = value; - return this; - } - - /** - * @return Medications are either a single administrable product or a package that contains one or more products. - */ - public MedicationKind getKind() { - return this.kind == null ? null : this.kind.getValue(); - } - - /** - * @param value Medications are either a single administrable product or a package that contains one or more products. - */ - public Medication setKind(MedicationKind value) { - if (value == null) - this.kind = null; - else { - if (this.kind == null) - this.kind = new Enumeration(MedicationKind.ENUM_FACTORY); - this.kind.setValue(value); - } - return this; - } - - /** - * @return {@link #product} (Information that only applies to products (not packages).) - */ - public MedicationProductComponent getProduct() { - if (this.product == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Medication.product"); - else if (Configuration.doAutoCreate()) - this.product = new MedicationProductComponent(); - return this.product; - } - - public boolean hasProduct() { - return this.product != null && !this.product.isEmpty(); - } - - /** - * @param value {@link #product} (Information that only applies to products (not packages).) - */ - public Medication setProduct(MedicationProductComponent value) { - this.product = value; - return this; - } - - /** - * @return {@link #package_} (Information that only applies to packages (not products).) - */ - public MedicationPackageComponent getPackage() { - if (this.package_ == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create Medication.package_"); - else if (Configuration.doAutoCreate()) - this.package_ = new MedicationPackageComponent(); - return this.package_; - } - - public boolean hasPackage() { - return this.package_ != null && !this.package_.isEmpty(); - } - - /** - * @param value {@link #package_} (Information that only applies to packages (not products).) - */ - public Medication setPackage(MedicationPackageComponent value) { - this.package_ = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("name", "string", "The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code.", 0, java.lang.Integer.MAX_VALUE, name)); - childrenList.add(new Property("code", "CodeableConcept", "A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes.", 0, java.lang.Integer.MAX_VALUE, code)); - childrenList.add(new Property("isBrand", "boolean", "Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is).", 0, java.lang.Integer.MAX_VALUE, isBrand)); - childrenList.add(new Property("manufacturer", "Reference(Organization)", "Describes the details of the manufacturer.", 0, java.lang.Integer.MAX_VALUE, manufacturer)); - childrenList.add(new Property("kind", "code", "Medications are either a single administrable product or a package that contains one or more products.", 0, java.lang.Integer.MAX_VALUE, kind)); - childrenList.add(new Property("product", "", "Information that only applies to products (not packages).", 0, java.lang.Integer.MAX_VALUE, product)); - childrenList.add(new Property("package", "", "Information that only applies to packages (not products).", 0, java.lang.Integer.MAX_VALUE, package_)); - } - - public Medication copy() { - Medication dst = new Medication(); - copyValues(dst); - dst.name = name == null ? null : name.copy(); - dst.code = code == null ? null : code.copy(); - dst.isBrand = isBrand == null ? null : isBrand.copy(); - dst.manufacturer = manufacturer == null ? null : manufacturer.copy(); - dst.kind = kind == null ? null : kind.copy(); - dst.product = product == null ? null : product.copy(); - dst.package_ = package_ == null ? null : package_.copy(); - return dst; - } - - protected Medication typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (name == null || name.isEmpty()) && (code == null || code.isEmpty()) - && (isBrand == null || isBrand.isEmpty()) && (manufacturer == null || manufacturer.isEmpty()) - && (kind == null || kind.isEmpty()) && (product == null || product.isEmpty()) && (package_ == null || package_.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.Medication; - } - - @SearchParamDefinition(name="content", path="Medication.package.content.item", description="A product in the package", type="reference" ) - public static final String SP_CONTENT = "content"; - @SearchParamDefinition(name="form", path="Medication.product.form", description="powder | tablets | carton +", type="token" ) - public static final String SP_FORM = "form"; - @SearchParamDefinition(name="container", path="Medication.package.container", description="E.g. box, vial, blister-pack", type="token" ) - public static final String SP_CONTAINER = "container"; - @SearchParamDefinition(name="manufacturer", path="Medication.manufacturer", description="Manufacturer of the item", type="reference" ) - public static final String SP_MANUFACTURER = "manufacturer"; - @SearchParamDefinition(name="name", path="Medication.name", description="Common / Commercial name", type="string" ) - public static final String SP_NAME = "name"; - @SearchParamDefinition(name="ingredient", path="Medication.product.ingredient.item", description="The product contained", type="reference" ) - public static final String SP_INGREDIENT = "ingredient"; - @SearchParamDefinition(name="code", path="Medication.code", description="Codes that identify this medication", type="token" ) - public static final String SP_CODE = "code"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Primarily used for identification and definition of Medication, but also covers ingredients and packaging. + */ +@ResourceDef(name="Medication", profile="http://hl7.org/fhir/Profile/Medication") +public class Medication extends DomainResource { + + public enum MedicationKind { + /** + * The medication is a product. + */ + PRODUCT, + /** + * The medication is a package - a contained group of one of more products. + */ + PACKAGE, + /** + * added to help the parsers + */ + NULL; + public static MedicationKind fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("product".equals(codeString)) + return PRODUCT; + if ("package".equals(codeString)) + return PACKAGE; + throw new Exception("Unknown MedicationKind code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case PRODUCT: return "product"; + case PACKAGE: return "package"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case PRODUCT: return ""; + case PACKAGE: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case PRODUCT: return "The medication is a product."; + case PACKAGE: return "The medication is a package - a contained group of one of more products."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case PRODUCT: return "product"; + case PACKAGE: return "package"; + default: return "?"; + } + } + } + + public static class MedicationKindEnumFactory implements EnumFactory { + public MedicationKind fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("product".equals(codeString)) + return MedicationKind.PRODUCT; + if ("package".equals(codeString)) + return MedicationKind.PACKAGE; + throw new IllegalArgumentException("Unknown MedicationKind code '"+codeString+"'"); + } + public String toCode(MedicationKind code) { + if (code == MedicationKind.PRODUCT) + return "product"; + if (code == MedicationKind.PACKAGE) + return "package"; + return "?"; + } + } + + @Block() + public static class MedicationProductComponent extends BackboneElement { + /** + * Describes the form of the item. Powder; tables; carton. + */ + @Child(name="form", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="powder | tablets | carton +", formalDefinition="Describes the form of the item. Powder; tables; carton." ) + protected CodeableConcept form; + + /** + * Identifies a particular constituent of interest in the product. + */ + @Child(name="ingredient", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Active or inactive ingredient", formalDefinition="Identifies a particular constituent of interest in the product." ) + protected List ingredient; + + /** + * Information about a group of medication produced or packaged from one production run. + */ + @Child(name="batch", type={}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="", formalDefinition="Information about a group of medication produced or packaged from one production run." ) + protected List batch; + + private static final long serialVersionUID = 1132853671L; + + public MedicationProductComponent() { + super(); + } + + /** + * @return {@link #form} (Describes the form of the item. Powder; tables; carton.) + */ + public CodeableConcept getForm() { + if (this.form == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationProductComponent.form"); + else if (Configuration.doAutoCreate()) + this.form = new CodeableConcept(); // cc + return this.form; + } + + public boolean hasForm() { + return this.form != null && !this.form.isEmpty(); + } + + /** + * @param value {@link #form} (Describes the form of the item. Powder; tables; carton.) + */ + public MedicationProductComponent setForm(CodeableConcept value) { + this.form = value; + return this; + } + + /** + * @return {@link #ingredient} (Identifies a particular constituent of interest in the product.) + */ + public List getIngredient() { + if (this.ingredient == null) + this.ingredient = new ArrayList(); + return this.ingredient; + } + + public boolean hasIngredient() { + if (this.ingredient == null) + return false; + for (MedicationProductIngredientComponent item : this.ingredient) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #ingredient} (Identifies a particular constituent of interest in the product.) + */ + // syntactic sugar + public MedicationProductIngredientComponent addIngredient() { //3 + MedicationProductIngredientComponent t = new MedicationProductIngredientComponent(); + if (this.ingredient == null) + this.ingredient = new ArrayList(); + this.ingredient.add(t); + return t; + } + + /** + * @return {@link #batch} (Information about a group of medication produced or packaged from one production run.) + */ + public List getBatch() { + if (this.batch == null) + this.batch = new ArrayList(); + return this.batch; + } + + public boolean hasBatch() { + if (this.batch == null) + return false; + for (MedicationProductBatchComponent item : this.batch) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #batch} (Information about a group of medication produced or packaged from one production run.) + */ + // syntactic sugar + public MedicationProductBatchComponent addBatch() { //3 + MedicationProductBatchComponent t = new MedicationProductBatchComponent(); + if (this.batch == null) + this.batch = new ArrayList(); + this.batch.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("form", "CodeableConcept", "Describes the form of the item. Powder; tables; carton.", 0, java.lang.Integer.MAX_VALUE, form)); + childrenList.add(new Property("ingredient", "", "Identifies a particular constituent of interest in the product.", 0, java.lang.Integer.MAX_VALUE, ingredient)); + childrenList.add(new Property("batch", "", "Information about a group of medication produced or packaged from one production run.", 0, java.lang.Integer.MAX_VALUE, batch)); + } + + public MedicationProductComponent copy() { + MedicationProductComponent dst = new MedicationProductComponent(); + copyValues(dst); + dst.form = form == null ? null : form.copy(); + if (ingredient != null) { + dst.ingredient = new ArrayList(); + for (MedicationProductIngredientComponent i : ingredient) + dst.ingredient.add(i.copy()); + }; + if (batch != null) { + dst.batch = new ArrayList(); + for (MedicationProductBatchComponent i : batch) + dst.batch.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof MedicationProductComponent)) + return false; + MedicationProductComponent o = (MedicationProductComponent) other; + return compareDeep(form, o.form, true) && compareDeep(ingredient, o.ingredient, true) && compareDeep(batch, o.batch, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof MedicationProductComponent)) + return false; + MedicationProductComponent o = (MedicationProductComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (form == null || form.isEmpty()) && (ingredient == null || ingredient.isEmpty()) + && (batch == null || batch.isEmpty()); + } + + } + + @Block() + public static class MedicationProductIngredientComponent extends BackboneElement { + /** + * The actual ingredient - either a substance (simple ingredient) or another medication. + */ + @Child(name="item", type={Substance.class, Medication.class}, order=1, min=1, max=1) + @Description(shortDefinition="The product contained", formalDefinition="The actual ingredient - either a substance (simple ingredient) or another medication." ) + protected Reference item; + + /** + * The actual object that is the target of the reference (The actual ingredient - either a substance (simple ingredient) or another medication.) + */ + protected Resource itemTarget; + + /** + * Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet. + */ + @Child(name="amount", type={Ratio.class}, order=2, min=0, max=1) + @Description(shortDefinition="How much ingredient in product", formalDefinition="Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet." ) + protected Ratio amount; + + private static final long serialVersionUID = -1217232889L; + + public MedicationProductIngredientComponent() { + super(); + } + + public MedicationProductIngredientComponent(Reference item) { + super(); + this.item = item; + } + + /** + * @return {@link #item} (The actual ingredient - either a substance (simple ingredient) or another medication.) + */ + public Reference getItem() { + if (this.item == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationProductIngredientComponent.item"); + else if (Configuration.doAutoCreate()) + this.item = new Reference(); // cc + return this.item; + } + + public boolean hasItem() { + return this.item != null && !this.item.isEmpty(); + } + + /** + * @param value {@link #item} (The actual ingredient - either a substance (simple ingredient) or another medication.) + */ + public MedicationProductIngredientComponent setItem(Reference value) { + this.item = value; + return this; + } + + /** + * @return {@link #item} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The actual ingredient - either a substance (simple ingredient) or another medication.) + */ + public Resource getItemTarget() { + return this.itemTarget; + } + + /** + * @param value {@link #item} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The actual ingredient - either a substance (simple ingredient) or another medication.) + */ + public MedicationProductIngredientComponent setItemTarget(Resource value) { + this.itemTarget = value; + return this; + } + + /** + * @return {@link #amount} (Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet.) + */ + public Ratio getAmount() { + if (this.amount == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationProductIngredientComponent.amount"); + else if (Configuration.doAutoCreate()) + this.amount = new Ratio(); // cc + return this.amount; + } + + public boolean hasAmount() { + return this.amount != null && !this.amount.isEmpty(); + } + + /** + * @param value {@link #amount} (Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet.) + */ + public MedicationProductIngredientComponent setAmount(Ratio value) { + this.amount = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("item", "Reference(Substance|Medication)", "The actual ingredient - either a substance (simple ingredient) or another medication.", 0, java.lang.Integer.MAX_VALUE, item)); + childrenList.add(new Property("amount", "Ratio", "Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet.", 0, java.lang.Integer.MAX_VALUE, amount)); + } + + public MedicationProductIngredientComponent copy() { + MedicationProductIngredientComponent dst = new MedicationProductIngredientComponent(); + copyValues(dst); + dst.item = item == null ? null : item.copy(); + dst.amount = amount == null ? null : amount.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof MedicationProductIngredientComponent)) + return false; + MedicationProductIngredientComponent o = (MedicationProductIngredientComponent) other; + return compareDeep(item, o.item, true) && compareDeep(amount, o.amount, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof MedicationProductIngredientComponent)) + return false; + MedicationProductIngredientComponent o = (MedicationProductIngredientComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (item == null || item.isEmpty()) && (amount == null || amount.isEmpty()) + ; + } + + } + + @Block() + public static class MedicationProductBatchComponent extends BackboneElement { + /** + * The assigned lot number of a batch of the specified product. + */ + @Child(name="lotNumber", type={StringType.class}, order=1, min=0, max=1) + @Description(shortDefinition="", formalDefinition="The assigned lot number of a batch of the specified product." ) + protected StringType lotNumber; + + /** + * When this specific batch of product will expire. + */ + @Child(name="expirationDate", type={DateTimeType.class}, order=2, min=0, max=1) + @Description(shortDefinition="", formalDefinition="When this specific batch of product will expire." ) + protected DateTimeType expirationDate; + + private static final long serialVersionUID = 1982738755L; + + public MedicationProductBatchComponent() { + super(); + } + + /** + * @return {@link #lotNumber} (The assigned lot number of a batch of the specified product.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value + */ + public StringType getLotNumberElement() { + if (this.lotNumber == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationProductBatchComponent.lotNumber"); + else if (Configuration.doAutoCreate()) + this.lotNumber = new StringType(); // bb + return this.lotNumber; + } + + public boolean hasLotNumberElement() { + return this.lotNumber != null && !this.lotNumber.isEmpty(); + } + + public boolean hasLotNumber() { + return this.lotNumber != null && !this.lotNumber.isEmpty(); + } + + /** + * @param value {@link #lotNumber} (The assigned lot number of a batch of the specified product.). This is the underlying object with id, value and extensions. The accessor "getLotNumber" gives direct access to the value + */ + public MedicationProductBatchComponent setLotNumberElement(StringType value) { + this.lotNumber = value; + return this; + } + + /** + * @return The assigned lot number of a batch of the specified product. + */ + public String getLotNumber() { + return this.lotNumber == null ? null : this.lotNumber.getValue(); + } + + /** + * @param value The assigned lot number of a batch of the specified product. + */ + public MedicationProductBatchComponent setLotNumber(String value) { + if (Utilities.noString(value)) + this.lotNumber = null; + else { + if (this.lotNumber == null) + this.lotNumber = new StringType(); + this.lotNumber.setValue(value); + } + return this; + } + + /** + * @return {@link #expirationDate} (When this specific batch of product will expire.). This is the underlying object with id, value and extensions. The accessor "getExpirationDate" gives direct access to the value + */ + public DateTimeType getExpirationDateElement() { + if (this.expirationDate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationProductBatchComponent.expirationDate"); + else if (Configuration.doAutoCreate()) + this.expirationDate = new DateTimeType(); // bb + return this.expirationDate; + } + + public boolean hasExpirationDateElement() { + return this.expirationDate != null && !this.expirationDate.isEmpty(); + } + + public boolean hasExpirationDate() { + return this.expirationDate != null && !this.expirationDate.isEmpty(); + } + + /** + * @param value {@link #expirationDate} (When this specific batch of product will expire.). This is the underlying object with id, value and extensions. The accessor "getExpirationDate" gives direct access to the value + */ + public MedicationProductBatchComponent setExpirationDateElement(DateTimeType value) { + this.expirationDate = value; + return this; + } + + /** + * @return When this specific batch of product will expire. + */ + public Date getExpirationDate() { + return this.expirationDate == null ? null : this.expirationDate.getValue(); + } + + /** + * @param value When this specific batch of product will expire. + */ + public MedicationProductBatchComponent setExpirationDate(Date value) { + if (value == null) + this.expirationDate = null; + else { + if (this.expirationDate == null) + this.expirationDate = new DateTimeType(); + this.expirationDate.setValue(value); + } + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("lotNumber", "string", "The assigned lot number of a batch of the specified product.", 0, java.lang.Integer.MAX_VALUE, lotNumber)); + childrenList.add(new Property("expirationDate", "dateTime", "When this specific batch of product will expire.", 0, java.lang.Integer.MAX_VALUE, expirationDate)); + } + + public MedicationProductBatchComponent copy() { + MedicationProductBatchComponent dst = new MedicationProductBatchComponent(); + copyValues(dst); + dst.lotNumber = lotNumber == null ? null : lotNumber.copy(); + dst.expirationDate = expirationDate == null ? null : expirationDate.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof MedicationProductBatchComponent)) + return false; + MedicationProductBatchComponent o = (MedicationProductBatchComponent) other; + return compareDeep(lotNumber, o.lotNumber, true) && compareDeep(expirationDate, o.expirationDate, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof MedicationProductBatchComponent)) + return false; + MedicationProductBatchComponent o = (MedicationProductBatchComponent) other; + return compareValues(lotNumber, o.lotNumber, true) && compareValues(expirationDate, o.expirationDate, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (lotNumber == null || lotNumber.isEmpty()) && (expirationDate == null || expirationDate.isEmpty()) + ; + } + + } + + @Block() + public static class MedicationPackageComponent extends BackboneElement { + /** + * The kind of container that this package comes as. + */ + @Child(name="container", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="E.g. box, vial, blister-pack", formalDefinition="The kind of container that this package comes as." ) + protected CodeableConcept container; + + /** + * A set of components that go to make up the described item. + */ + @Child(name="content", type={}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="What is in the package?", formalDefinition="A set of components that go to make up the described item." ) + protected List content; + + private static final long serialVersionUID = 503772472L; + + public MedicationPackageComponent() { + super(); + } + + /** + * @return {@link #container} (The kind of container that this package comes as.) + */ + public CodeableConcept getContainer() { + if (this.container == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationPackageComponent.container"); + else if (Configuration.doAutoCreate()) + this.container = new CodeableConcept(); // cc + return this.container; + } + + public boolean hasContainer() { + return this.container != null && !this.container.isEmpty(); + } + + /** + * @param value {@link #container} (The kind of container that this package comes as.) + */ + public MedicationPackageComponent setContainer(CodeableConcept value) { + this.container = value; + return this; + } + + /** + * @return {@link #content} (A set of components that go to make up the described item.) + */ + public List getContent() { + if (this.content == null) + this.content = new ArrayList(); + return this.content; + } + + public boolean hasContent() { + if (this.content == null) + return false; + for (MedicationPackageContentComponent item : this.content) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #content} (A set of components that go to make up the described item.) + */ + // syntactic sugar + public MedicationPackageContentComponent addContent() { //3 + MedicationPackageContentComponent t = new MedicationPackageContentComponent(); + if (this.content == null) + this.content = new ArrayList(); + this.content.add(t); + return t; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("container", "CodeableConcept", "The kind of container that this package comes as.", 0, java.lang.Integer.MAX_VALUE, container)); + childrenList.add(new Property("content", "", "A set of components that go to make up the described item.", 0, java.lang.Integer.MAX_VALUE, content)); + } + + public MedicationPackageComponent copy() { + MedicationPackageComponent dst = new MedicationPackageComponent(); + copyValues(dst); + dst.container = container == null ? null : container.copy(); + if (content != null) { + dst.content = new ArrayList(); + for (MedicationPackageContentComponent i : content) + dst.content.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof MedicationPackageComponent)) + return false; + MedicationPackageComponent o = (MedicationPackageComponent) other; + return compareDeep(container, o.container, true) && compareDeep(content, o.content, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof MedicationPackageComponent)) + return false; + MedicationPackageComponent o = (MedicationPackageComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (container == null || container.isEmpty()) && (content == null || content.isEmpty()) + ; + } + + } + + @Block() + public static class MedicationPackageContentComponent extends BackboneElement { + /** + * Identifies one of the items in the package. + */ + @Child(name="item", type={Medication.class}, order=1, min=1, max=1) + @Description(shortDefinition="A product in the package", formalDefinition="Identifies one of the items in the package." ) + protected Reference item; + + /** + * The actual object that is the target of the reference (Identifies one of the items in the package.) + */ + protected Medication itemTarget; + + /** + * The amount of the product that is in the package. + */ + @Child(name="amount", type={Quantity.class}, order=2, min=0, max=1) + @Description(shortDefinition="How many are in the package?", formalDefinition="The amount of the product that is in the package." ) + protected Quantity amount; + + private static final long serialVersionUID = -1385430192L; + + public MedicationPackageContentComponent() { + super(); + } + + public MedicationPackageContentComponent(Reference item) { + super(); + this.item = item; + } + + /** + * @return {@link #item} (Identifies one of the items in the package.) + */ + public Reference getItem() { + if (this.item == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationPackageContentComponent.item"); + else if (Configuration.doAutoCreate()) + this.item = new Reference(); // cc + return this.item; + } + + public boolean hasItem() { + return this.item != null && !this.item.isEmpty(); + } + + /** + * @param value {@link #item} (Identifies one of the items in the package.) + */ + public MedicationPackageContentComponent setItem(Reference value) { + this.item = value; + return this; + } + + /** + * @return {@link #item} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies one of the items in the package.) + */ + public Medication getItemTarget() { + if (this.itemTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationPackageContentComponent.item"); + else if (Configuration.doAutoCreate()) + this.itemTarget = new Medication(); // aa + return this.itemTarget; + } + + /** + * @param value {@link #item} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies one of the items in the package.) + */ + public MedicationPackageContentComponent setItemTarget(Medication value) { + this.itemTarget = value; + return this; + } + + /** + * @return {@link #amount} (The amount of the product that is in the package.) + */ + public Quantity getAmount() { + if (this.amount == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationPackageContentComponent.amount"); + else if (Configuration.doAutoCreate()) + this.amount = new Quantity(); // cc + return this.amount; + } + + public boolean hasAmount() { + return this.amount != null && !this.amount.isEmpty(); + } + + /** + * @param value {@link #amount} (The amount of the product that is in the package.) + */ + public MedicationPackageContentComponent setAmount(Quantity value) { + this.amount = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("item", "Reference(Medication)", "Identifies one of the items in the package.", 0, java.lang.Integer.MAX_VALUE, item)); + childrenList.add(new Property("amount", "Quantity", "The amount of the product that is in the package.", 0, java.lang.Integer.MAX_VALUE, amount)); + } + + public MedicationPackageContentComponent copy() { + MedicationPackageContentComponent dst = new MedicationPackageContentComponent(); + copyValues(dst); + dst.item = item == null ? null : item.copy(); + dst.amount = amount == null ? null : amount.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof MedicationPackageContentComponent)) + return false; + MedicationPackageContentComponent o = (MedicationPackageContentComponent) other; + return compareDeep(item, o.item, true) && compareDeep(amount, o.amount, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof MedicationPackageContentComponent)) + return false; + MedicationPackageContentComponent o = (MedicationPackageContentComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (item == null || item.isEmpty()) && (amount == null || amount.isEmpty()) + ; + } + + } + + /** + * The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code. + */ + @Child(name="name", type={StringType.class}, order=-1, min=0, max=1) + @Description(shortDefinition="Common / Commercial name", formalDefinition="The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code." ) + protected StringType name; + + /** + * A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes. + */ + @Child(name="code", type={CodeableConcept.class}, order=0, min=0, max=1) + @Description(shortDefinition="Codes that identify this medication", formalDefinition="A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes." ) + protected CodeableConcept code; + + /** + * Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is). + */ + @Child(name="isBrand", type={BooleanType.class}, order=1, min=0, max=1) + @Description(shortDefinition="True if a brand", formalDefinition="Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is)." ) + protected BooleanType isBrand; + + /** + * Describes the details of the manufacturer. + */ + @Child(name="manufacturer", type={Organization.class}, order=2, min=0, max=1) + @Description(shortDefinition="Manufacturer of the item", formalDefinition="Describes the details of the manufacturer." ) + protected Reference manufacturer; + + /** + * The actual object that is the target of the reference (Describes the details of the manufacturer.) + */ + protected Organization manufacturerTarget; + + /** + * Medications are either a single administrable product or a package that contains one or more products. + */ + @Child(name="kind", type={CodeType.class}, order=3, min=0, max=1) + @Description(shortDefinition="product | package", formalDefinition="Medications are either a single administrable product or a package that contains one or more products." ) + protected Enumeration kind; + + /** + * Information that only applies to products (not packages). + */ + @Child(name="product", type={}, order=4, min=0, max=1) + @Description(shortDefinition="Administrable medication details", formalDefinition="Information that only applies to products (not packages)." ) + protected MedicationProductComponent product; + + /** + * Information that only applies to packages (not products). + */ + @Child(name="package_", type={}, order=5, min=0, max=1) + @Description(shortDefinition="Details about packaged medications", formalDefinition="Information that only applies to packages (not products)." ) + protected MedicationPackageComponent package_; + + private static final long serialVersionUID = 385691577L; + + public Medication() { + super(); + } + + /** + * @return {@link #name} (The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public StringType getNameElement() { + if (this.name == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Medication.name"); + else if (Configuration.doAutoCreate()) + this.name = new StringType(); // bb + return this.name; + } + + public boolean hasNameElement() { + return this.name != null && !this.name.isEmpty(); + } + + public boolean hasName() { + return this.name != null && !this.name.isEmpty(); + } + + /** + * @param value {@link #name} (The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value + */ + public Medication setNameElement(StringType value) { + this.name = value; + return this; + } + + /** + * @return The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code. + */ + public String getName() { + return this.name == null ? null : this.name.getValue(); + } + + /** + * @param value The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code. + */ + public Medication setName(String value) { + if (Utilities.noString(value)) + this.name = null; + else { + if (this.name == null) + this.name = new StringType(); + this.name.setValue(value); + } + return this; + } + + /** + * @return {@link #code} (A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes.) + */ + public CodeableConcept getCode() { + if (this.code == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Medication.code"); + else if (Configuration.doAutoCreate()) + this.code = new CodeableConcept(); // cc + return this.code; + } + + public boolean hasCode() { + return this.code != null && !this.code.isEmpty(); + } + + /** + * @param value {@link #code} (A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes.) + */ + public Medication setCode(CodeableConcept value) { + this.code = value; + return this; + } + + /** + * @return {@link #isBrand} (Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is).). This is the underlying object with id, value and extensions. The accessor "getIsBrand" gives direct access to the value + */ + public BooleanType getIsBrandElement() { + if (this.isBrand == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Medication.isBrand"); + else if (Configuration.doAutoCreate()) + this.isBrand = new BooleanType(); // bb + return this.isBrand; + } + + public boolean hasIsBrandElement() { + return this.isBrand != null && !this.isBrand.isEmpty(); + } + + public boolean hasIsBrand() { + return this.isBrand != null && !this.isBrand.isEmpty(); + } + + /** + * @param value {@link #isBrand} (Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is).). This is the underlying object with id, value and extensions. The accessor "getIsBrand" gives direct access to the value + */ + public Medication setIsBrandElement(BooleanType value) { + this.isBrand = value; + return this; + } + + /** + * @return Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is). + */ + public boolean getIsBrand() { + return this.isBrand == null ? false : this.isBrand.getValue(); + } + + /** + * @param value Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is). + */ + public Medication setIsBrand(boolean value) { + if (this.isBrand == null) + this.isBrand = new BooleanType(); + this.isBrand.setValue(value); + return this; + } + + /** + * @return {@link #manufacturer} (Describes the details of the manufacturer.) + */ + public Reference getManufacturer() { + if (this.manufacturer == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Medication.manufacturer"); + else if (Configuration.doAutoCreate()) + this.manufacturer = new Reference(); // cc + return this.manufacturer; + } + + public boolean hasManufacturer() { + return this.manufacturer != null && !this.manufacturer.isEmpty(); + } + + /** + * @param value {@link #manufacturer} (Describes the details of the manufacturer.) + */ + public Medication setManufacturer(Reference value) { + this.manufacturer = value; + return this; + } + + /** + * @return {@link #manufacturer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the details of the manufacturer.) + */ + public Organization getManufacturerTarget() { + if (this.manufacturerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Medication.manufacturer"); + else if (Configuration.doAutoCreate()) + this.manufacturerTarget = new Organization(); // aa + return this.manufacturerTarget; + } + + /** + * @param value {@link #manufacturer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the details of the manufacturer.) + */ + public Medication setManufacturerTarget(Organization value) { + this.manufacturerTarget = value; + return this; + } + + /** + * @return {@link #kind} (Medications are either a single administrable product or a package that contains one or more products.). This is the underlying object with id, value and extensions. The accessor "getKind" gives direct access to the value + */ + public Enumeration getKindElement() { + if (this.kind == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Medication.kind"); + else if (Configuration.doAutoCreate()) + this.kind = new Enumeration(new MedicationKindEnumFactory()); // bb + return this.kind; + } + + public boolean hasKindElement() { + return this.kind != null && !this.kind.isEmpty(); + } + + public boolean hasKind() { + return this.kind != null && !this.kind.isEmpty(); + } + + /** + * @param value {@link #kind} (Medications are either a single administrable product or a package that contains one or more products.). This is the underlying object with id, value and extensions. The accessor "getKind" gives direct access to the value + */ + public Medication setKindElement(Enumeration value) { + this.kind = value; + return this; + } + + /** + * @return Medications are either a single administrable product or a package that contains one or more products. + */ + public MedicationKind getKind() { + return this.kind == null ? null : this.kind.getValue(); + } + + /** + * @param value Medications are either a single administrable product or a package that contains one or more products. + */ + public Medication setKind(MedicationKind value) { + if (value == null) + this.kind = null; + else { + if (this.kind == null) + this.kind = new Enumeration(new MedicationKindEnumFactory()); + this.kind.setValue(value); + } + return this; + } + + /** + * @return {@link #product} (Information that only applies to products (not packages).) + */ + public MedicationProductComponent getProduct() { + if (this.product == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Medication.product"); + else if (Configuration.doAutoCreate()) + this.product = new MedicationProductComponent(); // cc + return this.product; + } + + public boolean hasProduct() { + return this.product != null && !this.product.isEmpty(); + } + + /** + * @param value {@link #product} (Information that only applies to products (not packages).) + */ + public Medication setProduct(MedicationProductComponent value) { + this.product = value; + return this; + } + + /** + * @return {@link #package_} (Information that only applies to packages (not products).) + */ + public MedicationPackageComponent getPackage() { + if (this.package_ == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create Medication.package_"); + else if (Configuration.doAutoCreate()) + this.package_ = new MedicationPackageComponent(); // cc + return this.package_; + } + + public boolean hasPackage() { + return this.package_ != null && !this.package_.isEmpty(); + } + + /** + * @param value {@link #package_} (Information that only applies to packages (not products).) + */ + public Medication setPackage(MedicationPackageComponent value) { + this.package_ = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("name", "string", "The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code.", 0, java.lang.Integer.MAX_VALUE, name)); + childrenList.add(new Property("code", "CodeableConcept", "A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes.", 0, java.lang.Integer.MAX_VALUE, code)); + childrenList.add(new Property("isBrand", "boolean", "Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is).", 0, java.lang.Integer.MAX_VALUE, isBrand)); + childrenList.add(new Property("manufacturer", "Reference(Organization)", "Describes the details of the manufacturer.", 0, java.lang.Integer.MAX_VALUE, manufacturer)); + childrenList.add(new Property("kind", "code", "Medications are either a single administrable product or a package that contains one or more products.", 0, java.lang.Integer.MAX_VALUE, kind)); + childrenList.add(new Property("product", "", "Information that only applies to products (not packages).", 0, java.lang.Integer.MAX_VALUE, product)); + childrenList.add(new Property("package", "", "Information that only applies to packages (not products).", 0, java.lang.Integer.MAX_VALUE, package_)); + } + + public Medication copy() { + Medication dst = new Medication(); + copyValues(dst); + dst.name = name == null ? null : name.copy(); + dst.code = code == null ? null : code.copy(); + dst.isBrand = isBrand == null ? null : isBrand.copy(); + dst.manufacturer = manufacturer == null ? null : manufacturer.copy(); + dst.kind = kind == null ? null : kind.copy(); + dst.product = product == null ? null : product.copy(); + dst.package_ = package_ == null ? null : package_.copy(); + return dst; + } + + protected Medication typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof Medication)) + return false; + Medication o = (Medication) other; + return compareDeep(name, o.name, true) && compareDeep(code, o.code, true) && compareDeep(isBrand, o.isBrand, true) + && compareDeep(manufacturer, o.manufacturer, true) && compareDeep(kind, o.kind, true) && compareDeep(product, o.product, true) + && compareDeep(package_, o.package_, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof Medication)) + return false; + Medication o = (Medication) other; + return compareValues(name, o.name, true) && compareValues(isBrand, o.isBrand, true) && compareValues(kind, o.kind, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (name == null || name.isEmpty()) && (code == null || code.isEmpty()) + && (isBrand == null || isBrand.isEmpty()) && (manufacturer == null || manufacturer.isEmpty()) + && (kind == null || kind.isEmpty()) && (product == null || product.isEmpty()) && (package_ == null || package_.isEmpty()) + ; + } + + @Override + public ResourceType getResourceType() { + return ResourceType.Medication; + } + + @SearchParamDefinition(name="content", path="Medication.package.content.item", description="A product in the package", type="reference" ) + public static final String SP_CONTENT = "content"; + @SearchParamDefinition(name="form", path="Medication.product.form", description="powder | tablets | carton +", type="token" ) + public static final String SP_FORM = "form"; + @SearchParamDefinition(name="container", path="Medication.package.container", description="E.g. box, vial, blister-pack", type="token" ) + public static final String SP_CONTAINER = "container"; + @SearchParamDefinition(name="manufacturer", path="Medication.manufacturer", description="Manufacturer of the item", type="reference" ) + public static final String SP_MANUFACTURER = "manufacturer"; + @SearchParamDefinition(name="name", path="Medication.name", description="Common / Commercial name", type="string" ) + public static final String SP_NAME = "name"; + @SearchParamDefinition(name="ingredient", path="Medication.product.ingredient.item", description="The product contained", type="reference" ) + public static final String SP_INGREDIENT = "ingredient"; + @SearchParamDefinition(name="code", path="Medication.code", description="Codes that identify this medication", type="token" ) + public static final String SP_CODE = "code"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration$1.class new file mode 100644 index 0000000000000000000000000000000000000000..28999994896720f6c6aad86ee773eaaf679dd735 GIT binary patch literal 1108 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration$MedicationAdminStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration$MedicationAdminStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..e49108eebebeaddcdbc2a290806685ffdd09b08f GIT binary patch literal 2173 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration.class new file mode 100644 index 0000000000000000000000000000000000000000..8e4c9f52e00989cf439ef3ad605d8a669e2030bc GIT binary patch literal 24547 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 M_cVNeeZ|!O13y%sNdN!< literal 0 HcmV?d00001 diff --git a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration.java b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration.java similarity index 74% rename from hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration.java rename to hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration.java index 7523417d90d..c8c4807d47a 100644 --- a/hapi-fhir-base/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration.java +++ b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationAdministration.java @@ -1,1221 +1,1255 @@ -package org.hl7.fhir.instance.model; - -/* - * #%L - * HAPI FHIR - Core Library - * %% - * Copyright (C) 2014 - 2015 University Health Network - * %% - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - - -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of HL7 nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - -*/ - -// Generated on Sun, Dec 7, 2014 21:45-0500 for FHIR v0.3.0 - -import java.util.*; - -import org.hl7.fhir.utilities.Utilities; -import org.hl7.fhir.instance.model.annotations.ResourceDef; -import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; -import org.hl7.fhir.instance.model.annotations.Block; -import org.hl7.fhir.instance.model.annotations.Child; -import org.hl7.fhir.instance.model.annotations.Description; -/** - * Describes the event of a patient being given a dose of a medication. This may be as simple as swallowing a tablet or it may be a long running infusion. - -Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner. - */ -@ResourceDef(name="MedicationAdministration", profile="http://hl7.org/fhir/Profile/MedicationAdministration") -public class MedicationAdministration extends DomainResource { - - public enum MedicationAdminStatus implements FhirEnum { - /** - * The administration has started but has not yet completed. - */ - INPROGRESS, - /** - * Actions implied by the administration have been temporarily halted, but are expected to continue later. May also be called "suspended". - */ - ONHOLD, - /** - * All actions that are implied by the administration have occurred. - */ - COMPLETED, - /** - * The administration was entered in error and therefore nullified. - */ - ENTEREDINERROR, - /** - * Actions implied by the administration have been permanently halted, before all of them occurred. - */ - STOPPED, - /** - * added to help the parsers - */ - NULL; - - public static final MedicationAdminStatusEnumFactory ENUM_FACTORY = new MedicationAdminStatusEnumFactory(); - - public static MedicationAdminStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - return null; - if ("in progress".equals(codeString)) - return INPROGRESS; - if ("on hold".equals(codeString)) - return ONHOLD; - if ("completed".equals(codeString)) - return COMPLETED; - if ("entered in error".equals(codeString)) - return ENTEREDINERROR; - if ("stopped".equals(codeString)) - return STOPPED; - throw new IllegalArgumentException("Unknown MedicationAdminStatus code '"+codeString+"'"); - } - @Override - public String toCode() { - switch (this) { - case INPROGRESS: return "in progress"; - case ONHOLD: return "on hold"; - case COMPLETED: return "completed"; - case ENTEREDINERROR: return "entered in error"; - case STOPPED: return "stopped"; - default: return "?"; - } - } - public String getSystem() { - switch (this) { - case INPROGRESS: return ""; - case ONHOLD: return ""; - case COMPLETED: return ""; - case ENTEREDINERROR: return ""; - case STOPPED: return ""; - default: return "?"; - } - } - public String getDefinition() { - switch (this) { - case INPROGRESS: return "The administration has started but has not yet completed."; - case ONHOLD: return "Actions implied by the administration have been temporarily halted, but are expected to continue later. May also be called 'suspended'."; - case COMPLETED: return "All actions that are implied by the administration have occurred."; - case ENTEREDINERROR: return "The administration was entered in error and therefore nullified."; - case STOPPED: return "Actions implied by the administration have been permanently halted, before all of them occurred."; - default: return "?"; - } - } - public String getDisplay() { - switch (this) { - case INPROGRESS: return "in progress"; - case ONHOLD: return "on hold"; - case COMPLETED: return "completed"; - case ENTEREDINERROR: return "entered in error"; - case STOPPED: return "stopped"; - default: return "?"; - } - } - } - - public static class MedicationAdminStatusEnumFactory implements EnumFactory { - public MedicationAdminStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("in progress".equals(codeString)) - return MedicationAdminStatus.INPROGRESS; - if ("on hold".equals(codeString)) - return MedicationAdminStatus.ONHOLD; - if ("completed".equals(codeString)) - return MedicationAdminStatus.COMPLETED; - if ("entered in error".equals(codeString)) - return MedicationAdminStatus.ENTEREDINERROR; - if ("stopped".equals(codeString)) - return MedicationAdminStatus.STOPPED; - throw new IllegalArgumentException("Unknown MedicationAdminStatus code '"+codeString+"'"); - } - public String toCode(MedicationAdminStatus code) throws IllegalArgumentException { - if (code == MedicationAdminStatus.INPROGRESS) - return "in progress"; - if (code == MedicationAdminStatus.ONHOLD) - return "on hold"; - if (code == MedicationAdminStatus.COMPLETED) - return "completed"; - if (code == MedicationAdminStatus.ENTEREDINERROR) - return "entered in error"; - if (code == MedicationAdminStatus.STOPPED) - return "stopped"; - return "?"; - } - } - - @Block() - public static class MedicationAdministrationDosageComponent extends BackboneElement { - /** - * The timing schedule for giving the medication to the patient. This may be a single time point (using dateTime) or it may be a start and end dateTime (Period). - */ - @Child(name="timing", type={DateTimeType.class, Period.class}, order=1, min=0, max=1) - @Description(shortDefinition="When dose(s) were given", formalDefinition="The timing schedule for giving the medication to the patient. This may be a single time point (using dateTime) or it may be a start and end dateTime (Period)." ) - protected Type timing; - - /** - * If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication. - */ - @Child(name="asNeeded", type={BooleanType.class, CodeableConcept.class}, order=2, min=0, max=1) - @Description(shortDefinition="Take 'as needed' f(or x)", formalDefinition="If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication." ) - protected Type asNeeded; - - /** - * A coded specification of the anatomic site where the medication first entered the body. E.g. "left arm". - */ - @Child(name="site", type={CodeableConcept.class}, order=3, min=0, max=1) - @Description(shortDefinition="Body site administered to", formalDefinition="A coded specification of the anatomic site where the medication first entered the body. E.g. 'left arm'." ) - protected CodeableConcept site; - - /** - * A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. E.g. topical, intravenous, etc. - */ - @Child(name="route", type={CodeableConcept.class}, order=4, min=0, max=1) - @Description(shortDefinition="Path of substance into body", formalDefinition="A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. E.g. topical, intravenous, etc." ) - protected CodeableConcept route; - - /** - * A coded value indicating the method by which the medication was introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. - -Terminologies used often pre-coordinate this term with the route and or form of administration. - */ - @Child(name="method", type={CodeableConcept.class}, order=5, min=0, max=1) - @Description(shortDefinition="How drug was administered", formalDefinition="A coded value indicating the method by which the medication was introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.\n\nTerminologies used often pre-coordinate this term with the route and or form of administration." ) - protected CodeableConcept method; - - /** - * The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection. - */ - @Child(name="quantity", type={Quantity.class}, order=6, min=0, max=1) - @Description(shortDefinition="Amount administered in one dose", formalDefinition="The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection." ) - protected Quantity quantity; - - /** - * Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity. - */ - @Child(name="rate", type={Ratio.class}, order=7, min=0, max=1) - @Description(shortDefinition="Dose quantity per unit of time", formalDefinition="Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity." ) - protected Ratio rate; - - /** - * The maximum total quantity of a therapeutic substance that was administered to the patient over the specified period of time. E.g. 1000mg in 24 hours. - */ - @Child(name="maxDosePerPeriod", type={Ratio.class}, order=8, min=0, max=1) - @Description(shortDefinition="Total dose that was consumed per unit of time", formalDefinition="The maximum total quantity of a therapeutic substance that was administered to the patient over the specified period of time. E.g. 1000mg in 24 hours." ) - protected Ratio maxDosePerPeriod; - - private static final long serialVersionUID = 1667442570L; - - public MedicationAdministrationDosageComponent() { - super(); - } - - /** - * @return {@link #timing} (The timing schedule for giving the medication to the patient. This may be a single time point (using dateTime) or it may be a start and end dateTime (Period).) - */ - public Type getTiming() { - return this.timing; - } - - /** - * @return {@link #timing} (The timing schedule for giving the medication to the patient. This may be a single time point (using dateTime) or it may be a start and end dateTime (Period).) - */ - public DateTimeType getTimingDateTimeType() throws Exception { - if (!(this.timing instanceof DateTimeType)) - throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.timing.getClass().getName()+" was encountered"); - return (DateTimeType) this.timing; - } - - /** - * @return {@link #timing} (The timing schedule for giving the medication to the patient. This may be a single time point (using dateTime) or it may be a start and end dateTime (Period).) - */ - public Period getTimingPeriod() throws Exception { - if (!(this.timing instanceof Period)) - throw new Exception("Type mismatch: the type Period was expected, but "+this.timing.getClass().getName()+" was encountered"); - return (Period) this.timing; - } - - public boolean hasTiming() { - return this.timing != null && !this.timing.isEmpty(); - } - - /** - * @param value {@link #timing} (The timing schedule for giving the medication to the patient. This may be a single time point (using dateTime) or it may be a start and end dateTime (Period).) - */ - public MedicationAdministrationDosageComponent setTiming(Type value) { - this.timing = value; - return this; - } - - /** - * @return {@link #asNeeded} (If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.) - */ - public Type getAsNeeded() { - return this.asNeeded; - } - - /** - * @return {@link #asNeeded} (If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.) - */ - public BooleanType getAsNeededBooleanType() throws Exception { - if (!(this.asNeeded instanceof BooleanType)) - throw new Exception("Type mismatch: the type BooleanType was expected, but "+this.asNeeded.getClass().getName()+" was encountered"); - return (BooleanType) this.asNeeded; - } - - /** - * @return {@link #asNeeded} (If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.) - */ - public CodeableConcept getAsNeededCodeableConcept() throws Exception { - if (!(this.asNeeded instanceof CodeableConcept)) - throw new Exception("Type mismatch: the type CodeableConcept was expected, but "+this.asNeeded.getClass().getName()+" was encountered"); - return (CodeableConcept) this.asNeeded; - } - - public boolean hasAsNeeded() { - return this.asNeeded != null && !this.asNeeded.isEmpty(); - } - - /** - * @param value {@link #asNeeded} (If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.) - */ - public MedicationAdministrationDosageComponent setAsNeeded(Type value) { - this.asNeeded = value; - return this; - } - - /** - * @return {@link #site} (A coded specification of the anatomic site where the medication first entered the body. E.g. "left arm".) - */ - public CodeableConcept getSite() { - if (this.site == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.site"); - else if (Configuration.doAutoCreate()) - this.site = new CodeableConcept(); - return this.site; - } - - public boolean hasSite() { - return this.site != null && !this.site.isEmpty(); - } - - /** - * @param value {@link #site} (A coded specification of the anatomic site where the medication first entered the body. E.g. "left arm".) - */ - public MedicationAdministrationDosageComponent setSite(CodeableConcept value) { - this.site = value; - return this; - } - - /** - * @return {@link #route} (A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. E.g. topical, intravenous, etc.) - */ - public CodeableConcept getRoute() { - if (this.route == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.route"); - else if (Configuration.doAutoCreate()) - this.route = new CodeableConcept(); - return this.route; - } - - public boolean hasRoute() { - return this.route != null && !this.route.isEmpty(); - } - - /** - * @param value {@link #route} (A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. E.g. topical, intravenous, etc.) - */ - public MedicationAdministrationDosageComponent setRoute(CodeableConcept value) { - this.route = value; - return this; - } - - /** - * @return {@link #method} (A coded value indicating the method by which the medication was introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. - -Terminologies used often pre-coordinate this term with the route and or form of administration.) - */ - public CodeableConcept getMethod() { - if (this.method == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.method"); - else if (Configuration.doAutoCreate()) - this.method = new CodeableConcept(); - return this.method; - } - - public boolean hasMethod() { - return this.method != null && !this.method.isEmpty(); - } - - /** - * @param value {@link #method} (A coded value indicating the method by which the medication was introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. - -Terminologies used often pre-coordinate this term with the route and or form of administration.) - */ - public MedicationAdministrationDosageComponent setMethod(CodeableConcept value) { - this.method = value; - return this; - } - - /** - * @return {@link #quantity} (The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.) - */ - public Quantity getQuantity() { - if (this.quantity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.quantity"); - else if (Configuration.doAutoCreate()) - this.quantity = new Quantity(); - return this.quantity; - } - - public boolean hasQuantity() { - return this.quantity != null && !this.quantity.isEmpty(); - } - - /** - * @param value {@link #quantity} (The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.) - */ - public MedicationAdministrationDosageComponent setQuantity(Quantity value) { - this.quantity = value; - return this; - } - - /** - * @return {@link #rate} (Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.) - */ - public Ratio getRate() { - if (this.rate == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.rate"); - else if (Configuration.doAutoCreate()) - this.rate = new Ratio(); - return this.rate; - } - - public boolean hasRate() { - return this.rate != null && !this.rate.isEmpty(); - } - - /** - * @param value {@link #rate} (Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.) - */ - public MedicationAdministrationDosageComponent setRate(Ratio value) { - this.rate = value; - return this; - } - - /** - * @return {@link #maxDosePerPeriod} (The maximum total quantity of a therapeutic substance that was administered to the patient over the specified period of time. E.g. 1000mg in 24 hours.) - */ - public Ratio getMaxDosePerPeriod() { - if (this.maxDosePerPeriod == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.maxDosePerPeriod"); - else if (Configuration.doAutoCreate()) - this.maxDosePerPeriod = new Ratio(); - return this.maxDosePerPeriod; - } - - public boolean hasMaxDosePerPeriod() { - return this.maxDosePerPeriod != null && !this.maxDosePerPeriod.isEmpty(); - } - - /** - * @param value {@link #maxDosePerPeriod} (The maximum total quantity of a therapeutic substance that was administered to the patient over the specified period of time. E.g. 1000mg in 24 hours.) - */ - public MedicationAdministrationDosageComponent setMaxDosePerPeriod(Ratio value) { - this.maxDosePerPeriod = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("timing[x]", "dateTime|Period", "The timing schedule for giving the medication to the patient. This may be a single time point (using dateTime) or it may be a start and end dateTime (Period).", 0, java.lang.Integer.MAX_VALUE, timing)); - childrenList.add(new Property("asNeeded[x]", "boolean|CodeableConcept", "If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.", 0, java.lang.Integer.MAX_VALUE, asNeeded)); - childrenList.add(new Property("site", "CodeableConcept", "A coded specification of the anatomic site where the medication first entered the body. E.g. 'left arm'.", 0, java.lang.Integer.MAX_VALUE, site)); - childrenList.add(new Property("route", "CodeableConcept", "A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. E.g. topical, intravenous, etc.", 0, java.lang.Integer.MAX_VALUE, route)); - childrenList.add(new Property("method", "CodeableConcept", "A coded value indicating the method by which the medication was introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.\n\nTerminologies used often pre-coordinate this term with the route and or form of administration.", 0, java.lang.Integer.MAX_VALUE, method)); - childrenList.add(new Property("quantity", "Quantity", "The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.", 0, java.lang.Integer.MAX_VALUE, quantity)); - childrenList.add(new Property("rate", "Ratio", "Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.", 0, java.lang.Integer.MAX_VALUE, rate)); - childrenList.add(new Property("maxDosePerPeriod", "Ratio", "The maximum total quantity of a therapeutic substance that was administered to the patient over the specified period of time. E.g. 1000mg in 24 hours.", 0, java.lang.Integer.MAX_VALUE, maxDosePerPeriod)); - } - - public MedicationAdministrationDosageComponent copy() { - MedicationAdministrationDosageComponent dst = new MedicationAdministrationDosageComponent(); - copyValues(dst); - dst.timing = timing == null ? null : timing.copy(); - dst.asNeeded = asNeeded == null ? null : asNeeded.copy(); - dst.site = site == null ? null : site.copy(); - dst.route = route == null ? null : route.copy(); - dst.method = method == null ? null : method.copy(); - dst.quantity = quantity == null ? null : quantity.copy(); - dst.rate = rate == null ? null : rate.copy(); - dst.maxDosePerPeriod = maxDosePerPeriod == null ? null : maxDosePerPeriod.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (timing == null || timing.isEmpty()) && (asNeeded == null || asNeeded.isEmpty()) - && (site == null || site.isEmpty()) && (route == null || route.isEmpty()) && (method == null || method.isEmpty()) - && (quantity == null || quantity.isEmpty()) && (rate == null || rate.isEmpty()) && (maxDosePerPeriod == null || maxDosePerPeriod.isEmpty()) - ; - } - - } - - /** - * External identifier - FHIR will generate its own internal IDs (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. Particularly important if these records have to be updated. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="External identifier", formalDefinition="External identifier - FHIR will generate its own internal IDs (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. Particularly important if these records have to be updated." ) - protected List identifier; - - /** - * Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way. - */ - @Child(name="status", type={CodeType.class}, order=0, min=1, max=1) - @Description(shortDefinition="in progress | on hold | completed | entered in error | stopped", formalDefinition="Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way." ) - protected Enumeration status; - - /** - * The person or animal to whom the medication was given. - */ - @Child(name="patient", type={Patient.class}, order=1, min=1, max=1) - @Description(shortDefinition="Who received medication?", formalDefinition="The person or animal to whom the medication was given." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (The person or animal to whom the medication was given.) - */ - protected Patient patientTarget; - - /** - * The individual who was responsible for giving the medication to the patient. - */ - @Child(name="practitioner", type={Practitioner.class}, order=2, min=1, max=1) - @Description(shortDefinition="Who administered substance?", formalDefinition="The individual who was responsible for giving the medication to the patient." ) - protected Reference practitioner; - - /** - * The actual object that is the target of the reference (The individual who was responsible for giving the medication to the patient.) - */ - protected Practitioner practitionerTarget; - - /** - * The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of. - */ - @Child(name="encounter", type={Encounter.class}, order=3, min=0, max=1) - @Description(shortDefinition="Encounter administered as part of", formalDefinition="The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of." ) - protected Reference encounter; - - /** - * The actual object that is the target of the reference (The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.) - */ - protected Encounter encounterTarget; - - /** - * The original request, instruction or authority to perform the administration. - */ - @Child(name="prescription", type={MedicationPrescription.class}, order=4, min=1, max=1) - @Description(shortDefinition="Order administration performed against", formalDefinition="The original request, instruction or authority to perform the administration." ) - protected Reference prescription; - - /** - * The actual object that is the target of the reference (The original request, instruction or authority to perform the administration.) - */ - protected MedicationPrescription prescriptionTarget; - - /** - * Set this to true if the record is saying that the medication was NOT administered. - */ - @Child(name="wasNotGiven", type={BooleanType.class}, order=5, min=0, max=1) - @Description(shortDefinition="True if medication not administered", formalDefinition="Set this to true if the record is saying that the medication was NOT administered." ) - protected BooleanType wasNotGiven; - - /** - * A code indicating why the administration was not performed. - */ - @Child(name="reasonNotGiven", type={CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Reason administration not performed", formalDefinition="A code indicating why the administration was not performed." ) - protected List reasonNotGiven; - - /** - * An interval of time during which the administration took place. For many administrations, such as swallowing a tablet the lower and upper values of the interval will be the same. - */ - @Child(name="effectiveTime", type={DateTimeType.class, Period.class}, order=7, min=1, max=1) - @Description(shortDefinition="Start and end time of administration", formalDefinition="An interval of time during which the administration took place. For many administrations, such as swallowing a tablet the lower and upper values of the interval will be the same." ) - protected Type effectiveTime; - - /** - * Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications. - */ - @Child(name="medication", type={Medication.class}, order=8, min=0, max=1) - @Description(shortDefinition="What was administered?", formalDefinition="Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications." ) - protected Reference medication; - - /** - * The actual object that is the target of the reference (Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) - */ - protected Medication medicationTarget; - - /** - * The device used in administering the medication to the patient. E.g. a particular infusion pump. - */ - @Child(name="device", type={Device.class}, order=9, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Device used to administer", formalDefinition="The device used in administering the medication to the patient. E.g. a particular infusion pump." ) - protected List device; - /** - * The actual objects that are the target of the reference (The device used in administering the medication to the patient. E.g. a particular infusion pump.) - */ - protected List deviceTarget; - - - /** - * Provides details of how much of the medication was administered. - */ - @Child(name="dosage", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Medicine administration instructions to the patient/carer", formalDefinition="Provides details of how much of the medication was administered." ) - protected List dosage; - - private static final long serialVersionUID = -138666373L; - - public MedicationAdministration() { - super(); - } - - public MedicationAdministration(Enumeration status, Reference patient, Reference practitioner, Reference prescription, Type effectiveTime) { - super(); - this.status = status; - this.patient = patient; - this.practitioner = practitioner; - this.prescription = prescription; - this.effectiveTime = effectiveTime; - } - - /** - * @return {@link #identifier} (External identifier - FHIR will generate its own internal IDs (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. Particularly important if these records have to be updated.) - */ - public List getIdentifier() { - if (this.identifier == null) - this.identifier = new ArrayList(); - return this.identifier; - } - - public boolean hasIdentifier() { - if (this.identifier == null) - return false; - for (Identifier item : this.identifier) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #identifier} (External identifier - FHIR will generate its own internal IDs (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. Particularly important if these records have to be updated.) - */ - // syntactic sugar - public Identifier addIdentifier() { //3 - Identifier t = new Identifier(); - if (this.identifier == null) - this.identifier = new ArrayList(); - this.identifier.add(t); - return t; - } - - /** - * @return {@link #status} (Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministration.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public MedicationAdministration setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way. - */ - public MedicationAdminStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way. - */ - public MedicationAdministration setStatus(MedicationAdminStatus value) { - if (this.status == null) - this.status = new Enumeration(MedicationAdminStatus.ENUM_FACTORY); - this.status.setValue(value); - return this; - } - - /** - * @return {@link #patient} (The person or animal to whom the medication was given.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministration.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (The person or animal to whom the medication was given.) - */ - public MedicationAdministration setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person or animal to whom the medication was given.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministration.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person or animal to whom the medication was given.) - */ - public MedicationAdministration setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #practitioner} (The individual who was responsible for giving the medication to the patient.) - */ - public Reference getPractitioner() { - if (this.practitioner == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministration.practitioner"); - else if (Configuration.doAutoCreate()) - this.practitioner = new Reference(); - return this.practitioner; - } - - public boolean hasPractitioner() { - return this.practitioner != null && !this.practitioner.isEmpty(); - } - - /** - * @param value {@link #practitioner} (The individual who was responsible for giving the medication to the patient.) - */ - public MedicationAdministration setPractitioner(Reference value) { - this.practitioner = value; - return this; - } - - /** - * @return {@link #practitioner} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The individual who was responsible for giving the medication to the patient.) - */ - public Practitioner getPractitionerTarget() { - if (this.practitionerTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministration.practitioner"); - else if (Configuration.doAutoCreate()) - this.practitionerTarget = new Practitioner(); - return this.practitionerTarget; - } - - /** - * @param value {@link #practitioner} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The individual who was responsible for giving the medication to the patient.) - */ - public MedicationAdministration setPractitionerTarget(Practitioner value) { - this.practitionerTarget = value; - return this; - } - - /** - * @return {@link #encounter} (The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.) - */ - public Reference getEncounter() { - if (this.encounter == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministration.encounter"); - else if (Configuration.doAutoCreate()) - this.encounter = new Reference(); - return this.encounter; - } - - public boolean hasEncounter() { - return this.encounter != null && !this.encounter.isEmpty(); - } - - /** - * @param value {@link #encounter} (The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.) - */ - public MedicationAdministration setEncounter(Reference value) { - this.encounter = value; - return this; - } - - /** - * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.) - */ - public Encounter getEncounterTarget() { - if (this.encounterTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministration.encounter"); - else if (Configuration.doAutoCreate()) - this.encounterTarget = new Encounter(); - return this.encounterTarget; - } - - /** - * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.) - */ - public MedicationAdministration setEncounterTarget(Encounter value) { - this.encounterTarget = value; - return this; - } - - /** - * @return {@link #prescription} (The original request, instruction or authority to perform the administration.) - */ - public Reference getPrescription() { - if (this.prescription == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministration.prescription"); - else if (Configuration.doAutoCreate()) - this.prescription = new Reference(); - return this.prescription; - } - - public boolean hasPrescription() { - return this.prescription != null && !this.prescription.isEmpty(); - } - - /** - * @param value {@link #prescription} (The original request, instruction or authority to perform the administration.) - */ - public MedicationAdministration setPrescription(Reference value) { - this.prescription = value; - return this; - } - - /** - * @return {@link #prescription} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The original request, instruction or authority to perform the administration.) - */ - public MedicationPrescription getPrescriptionTarget() { - if (this.prescriptionTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministration.prescription"); - else if (Configuration.doAutoCreate()) - this.prescriptionTarget = new MedicationPrescription(); - return this.prescriptionTarget; - } - - /** - * @param value {@link #prescription} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The original request, instruction or authority to perform the administration.) - */ - public MedicationAdministration setPrescriptionTarget(MedicationPrescription value) { - this.prescriptionTarget = value; - return this; - } - - /** - * @return {@link #wasNotGiven} (Set this to true if the record is saying that the medication was NOT administered.). This is the underlying object with id, value and extensions. The accessor "getWasNotGiven" gives direct access to the value - */ - public BooleanType getWasNotGivenElement() { - if (this.wasNotGiven == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministration.wasNotGiven"); - else if (Configuration.doAutoCreate()) - this.wasNotGiven = new BooleanType(); - return this.wasNotGiven; - } - - public boolean hasWasNotGivenElement() { - return this.wasNotGiven != null && !this.wasNotGiven.isEmpty(); - } - - public boolean hasWasNotGiven() { - return this.wasNotGiven != null && !this.wasNotGiven.isEmpty(); - } - - /** - * @param value {@link #wasNotGiven} (Set this to true if the record is saying that the medication was NOT administered.). This is the underlying object with id, value and extensions. The accessor "getWasNotGiven" gives direct access to the value - */ - public MedicationAdministration setWasNotGivenElement(BooleanType value) { - this.wasNotGiven = value; - return this; - } - - /** - * @return Set this to true if the record is saying that the medication was NOT administered. - */ - public boolean getWasNotGiven() { - return this.wasNotGiven == null ? false : this.wasNotGiven.getValue(); - } - - /** - * @param value Set this to true if the record is saying that the medication was NOT administered. - */ - public MedicationAdministration setWasNotGiven(boolean value) { - if (value == false) - this.wasNotGiven = null; - else { - if (this.wasNotGiven == null) - this.wasNotGiven = new BooleanType(); - this.wasNotGiven.setValue(value); - } - return this; - } - - /** - * @return {@link #reasonNotGiven} (A code indicating why the administration was not performed.) - */ - public List getReasonNotGiven() { - if (this.reasonNotGiven == null) - this.reasonNotGiven = new ArrayList(); - return this.reasonNotGiven; - } - - public boolean hasReasonNotGiven() { - if (this.reasonNotGiven == null) - return false; - for (CodeableConcept item : this.reasonNotGiven) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #reasonNotGiven} (A code indicating why the administration was not performed.) - */ - // syntactic sugar - public CodeableConcept addReasonNotGiven() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.reasonNotGiven == null) - this.reasonNotGiven = new ArrayList(); - this.reasonNotGiven.add(t); - return t; - } - - /** - * @return {@link #effectiveTime} (An interval of time during which the administration took place. For many administrations, such as swallowing a tablet the lower and upper values of the interval will be the same.) - */ - public Type getEffectiveTime() { - return this.effectiveTime; - } - - /** - * @return {@link #effectiveTime} (An interval of time during which the administration took place. For many administrations, such as swallowing a tablet the lower and upper values of the interval will be the same.) - */ - public DateTimeType getEffectiveTimeDateTimeType() throws Exception { - if (!(this.effectiveTime instanceof DateTimeType)) - throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.effectiveTime.getClass().getName()+" was encountered"); - return (DateTimeType) this.effectiveTime; - } - - /** - * @return {@link #effectiveTime} (An interval of time during which the administration took place. For many administrations, such as swallowing a tablet the lower and upper values of the interval will be the same.) - */ - public Period getEffectiveTimePeriod() throws Exception { - if (!(this.effectiveTime instanceof Period)) - throw new Exception("Type mismatch: the type Period was expected, but "+this.effectiveTime.getClass().getName()+" was encountered"); - return (Period) this.effectiveTime; - } - - public boolean hasEffectiveTime() { - return this.effectiveTime != null && !this.effectiveTime.isEmpty(); - } - - /** - * @param value {@link #effectiveTime} (An interval of time during which the administration took place. For many administrations, such as swallowing a tablet the lower and upper values of the interval will be the same.) - */ - public MedicationAdministration setEffectiveTime(Type value) { - this.effectiveTime = value; - return this; - } - - /** - * @return {@link #medication} (Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) - */ - public Reference getMedication() { - if (this.medication == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministration.medication"); - else if (Configuration.doAutoCreate()) - this.medication = new Reference(); - return this.medication; - } - - public boolean hasMedication() { - return this.medication != null && !this.medication.isEmpty(); - } - - /** - * @param value {@link #medication} (Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) - */ - public MedicationAdministration setMedication(Reference value) { - this.medication = value; - return this; - } - - /** - * @return {@link #medication} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) - */ - public Medication getMedicationTarget() { - if (this.medicationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationAdministration.medication"); - else if (Configuration.doAutoCreate()) - this.medicationTarget = new Medication(); - return this.medicationTarget; - } - - /** - * @param value {@link #medication} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) - */ - public MedicationAdministration setMedicationTarget(Medication value) { - this.medicationTarget = value; - return this; - } - - /** - * @return {@link #device} (The device used in administering the medication to the patient. E.g. a particular infusion pump.) - */ - public List getDevice() { - if (this.device == null) - this.device = new ArrayList(); - return this.device; - } - - public boolean hasDevice() { - if (this.device == null) - return false; - for (Reference item : this.device) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #device} (The device used in administering the medication to the patient. E.g. a particular infusion pump.) - */ - // syntactic sugar - public Reference addDevice() { //3 - Reference t = new Reference(); - if (this.device == null) - this.device = new ArrayList(); - this.device.add(t); - return t; - } - - /** - * @return {@link #device} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The device used in administering the medication to the patient. E.g. a particular infusion pump.) - */ - public List getDeviceTarget() { - if (this.deviceTarget == null) - this.deviceTarget = new ArrayList(); - return this.deviceTarget; - } - - // syntactic sugar - /** - * @return {@link #device} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The device used in administering the medication to the patient. E.g. a particular infusion pump.) - */ - public Device addDeviceTarget() { - Device r = new Device(); - if (this.deviceTarget == null) - this.deviceTarget = new ArrayList(); - this.deviceTarget.add(r); - return r; - } - - /** - * @return {@link #dosage} (Provides details of how much of the medication was administered.) - */ - public List getDosage() { - if (this.dosage == null) - this.dosage = new ArrayList(); - return this.dosage; - } - - public boolean hasDosage() { - if (this.dosage == null) - return false; - for (MedicationAdministrationDosageComponent item : this.dosage) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #dosage} (Provides details of how much of the medication was administered.) - */ - // syntactic sugar - public MedicationAdministrationDosageComponent addDosage() { //3 - MedicationAdministrationDosageComponent t = new MedicationAdministrationDosageComponent(); - if (this.dosage == null) - this.dosage = new ArrayList(); - this.dosage.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "External identifier - FHIR will generate its own internal IDs (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. Particularly important if these records have to be updated.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("status", "code", "Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("patient", "Reference(Patient)", "The person or animal to whom the medication was given.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("practitioner", "Reference(Practitioner)", "The individual who was responsible for giving the medication to the patient.", 0, java.lang.Integer.MAX_VALUE, practitioner)); - childrenList.add(new Property("encounter", "Reference(Encounter)", "The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.", 0, java.lang.Integer.MAX_VALUE, encounter)); - childrenList.add(new Property("prescription", "Reference(MedicationPrescription)", "The original request, instruction or authority to perform the administration.", 0, java.lang.Integer.MAX_VALUE, prescription)); - childrenList.add(new Property("wasNotGiven", "boolean", "Set this to true if the record is saying that the medication was NOT administered.", 0, java.lang.Integer.MAX_VALUE, wasNotGiven)); - childrenList.add(new Property("reasonNotGiven", "CodeableConcept", "A code indicating why the administration was not performed.", 0, java.lang.Integer.MAX_VALUE, reasonNotGiven)); - childrenList.add(new Property("effectiveTime[x]", "dateTime|Period", "An interval of time during which the administration took place. For many administrations, such as swallowing a tablet the lower and upper values of the interval will be the same.", 0, java.lang.Integer.MAX_VALUE, effectiveTime)); - childrenList.add(new Property("medication", "Reference(Medication)", "Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.", 0, java.lang.Integer.MAX_VALUE, medication)); - childrenList.add(new Property("device", "Reference(Device)", "The device used in administering the medication to the patient. E.g. a particular infusion pump.", 0, java.lang.Integer.MAX_VALUE, device)); - childrenList.add(new Property("dosage", "", "Provides details of how much of the medication was administered.", 0, java.lang.Integer.MAX_VALUE, dosage)); - } - - public MedicationAdministration copy() { - MedicationAdministration dst = new MedicationAdministration(); - copyValues(dst); - if (identifier != null) { - dst.identifier = new ArrayList(); - for (Identifier i : identifier) - dst.identifier.add(i.copy()); - }; - dst.status = status == null ? null : status.copy(); - dst.patient = patient == null ? null : patient.copy(); - dst.practitioner = practitioner == null ? null : practitioner.copy(); - dst.encounter = encounter == null ? null : encounter.copy(); - dst.prescription = prescription == null ? null : prescription.copy(); - dst.wasNotGiven = wasNotGiven == null ? null : wasNotGiven.copy(); - if (reasonNotGiven != null) { - dst.reasonNotGiven = new ArrayList(); - for (CodeableConcept i : reasonNotGiven) - dst.reasonNotGiven.add(i.copy()); - }; - dst.effectiveTime = effectiveTime == null ? null : effectiveTime.copy(); - dst.medication = medication == null ? null : medication.copy(); - if (device != null) { - dst.device = new ArrayList(); - for (Reference i : device) - dst.device.add(i.copy()); - }; - if (dosage != null) { - dst.dosage = new ArrayList(); - for (MedicationAdministrationDosageComponent i : dosage) - dst.dosage.add(i.copy()); - }; - return dst; - } - - protected MedicationAdministration typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (status == null || status.isEmpty()) - && (patient == null || patient.isEmpty()) && (practitioner == null || practitioner.isEmpty()) - && (encounter == null || encounter.isEmpty()) && (prescription == null || prescription.isEmpty()) - && (wasNotGiven == null || wasNotGiven.isEmpty()) && (reasonNotGiven == null || reasonNotGiven.isEmpty()) - && (effectiveTime == null || effectiveTime.isEmpty()) && (medication == null || medication.isEmpty()) - && (device == null || device.isEmpty()) && (dosage == null || dosage.isEmpty()); - } - - @Override - public ResourceType getResourceType() { - return ResourceType.MedicationAdministration; - } - - @SearchParamDefinition(name="medication", path="MedicationAdministration.medication", description="Return administrations of this medication", type="reference" ) - public static final String SP_MEDICATION = "medication"; - @SearchParamDefinition(name="effectivetime", path="MedicationAdministration.effectiveTime[x]", description="Date administration happened (or did not happen)", type="date" ) - public static final String SP_EFFECTIVETIME = "effectivetime"; - @SearchParamDefinition(name="patient", path="MedicationAdministration.patient", description="The identity of a patient to list administrations for", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="status", path="MedicationAdministration.status", description="MedicationAdministration event status (for example one of active/paused/completed/nullified)", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="prescription", path="MedicationAdministration.prescription", description="The identity of a prescription to list administrations from", type="reference" ) - public static final String SP_PRESCRIPTION = "prescription"; - @SearchParamDefinition(name="device", path="MedicationAdministration.device", description="Return administrations with this administration device identity", type="reference" ) - public static final String SP_DEVICE = "device"; - @SearchParamDefinition(name="notgiven", path="MedicationAdministration.wasNotGiven", description="Administrations that were not made", type="token" ) - public static final String SP_NOTGIVEN = "notgiven"; - @SearchParamDefinition(name="encounter", path="MedicationAdministration.encounter", description="Return administrations that share this encounter", type="reference" ) - public static final String SP_ENCOUNTER = "encounter"; - @SearchParamDefinition(name="identifier", path="MedicationAdministration.identifier", description="Return administrations with this external identity", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Describes the event of a patient consuming or otherwise being administered a medication. This may be as simple as swallowing a tablet or it may be a long running infusion. Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner. + */ +@ResourceDef(name="MedicationAdministration", profile="http://hl7.org/fhir/Profile/MedicationAdministration") +public class MedicationAdministration extends DomainResource { + + public enum MedicationAdminStatus { + /** + * The administration has started but has not yet completed. + */ + INPROGRESS, + /** + * Actions implied by the administration have been temporarily halted, but are expected to continue later. May also be called "suspended". + */ + ONHOLD, + /** + * All actions that are implied by the administration have occurred. + */ + COMPLETED, + /** + * The administration was entered in error and therefore nullified. + */ + ENTEREDINERROR, + /** + * Actions implied by the administration have been permanently halted, before all of them occurred. + */ + STOPPED, + /** + * added to help the parsers + */ + NULL; + public static MedicationAdminStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("in-progress".equals(codeString)) + return INPROGRESS; + if ("on-hold".equals(codeString)) + return ONHOLD; + if ("completed".equals(codeString)) + return COMPLETED; + if ("entered-in-error".equals(codeString)) + return ENTEREDINERROR; + if ("stopped".equals(codeString)) + return STOPPED; + throw new Exception("Unknown MedicationAdminStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case INPROGRESS: return "in-progress"; + case ONHOLD: return "on-hold"; + case COMPLETED: return "completed"; + case ENTEREDINERROR: return "entered-in-error"; + case STOPPED: return "stopped"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case INPROGRESS: return ""; + case ONHOLD: return ""; + case COMPLETED: return ""; + case ENTEREDINERROR: return ""; + case STOPPED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case INPROGRESS: return "The administration has started but has not yet completed."; + case ONHOLD: return "Actions implied by the administration have been temporarily halted, but are expected to continue later. May also be called 'suspended'."; + case COMPLETED: return "All actions that are implied by the administration have occurred."; + case ENTEREDINERROR: return "The administration was entered in error and therefore nullified."; + case STOPPED: return "Actions implied by the administration have been permanently halted, before all of them occurred."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case INPROGRESS: return "in-progress"; + case ONHOLD: return "on-hold"; + case COMPLETED: return "completed"; + case ENTEREDINERROR: return "entered-in-error"; + case STOPPED: return "stopped"; + default: return "?"; + } + } + } + + public static class MedicationAdminStatusEnumFactory implements EnumFactory { + public MedicationAdminStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("in-progress".equals(codeString)) + return MedicationAdminStatus.INPROGRESS; + if ("on-hold".equals(codeString)) + return MedicationAdminStatus.ONHOLD; + if ("completed".equals(codeString)) + return MedicationAdminStatus.COMPLETED; + if ("entered-in-error".equals(codeString)) + return MedicationAdminStatus.ENTEREDINERROR; + if ("stopped".equals(codeString)) + return MedicationAdminStatus.STOPPED; + throw new IllegalArgumentException("Unknown MedicationAdminStatus code '"+codeString+"'"); + } + public String toCode(MedicationAdminStatus code) { + if (code == MedicationAdminStatus.INPROGRESS) + return "in-progress"; + if (code == MedicationAdminStatus.ONHOLD) + return "on-hold"; + if (code == MedicationAdminStatus.COMPLETED) + return "completed"; + if (code == MedicationAdminStatus.ENTEREDINERROR) + return "entered-in-error"; + if (code == MedicationAdminStatus.STOPPED) + return "stopped"; + return "?"; + } + } + + @Block() + public static class MedicationAdministrationDosageComponent extends BackboneElement { + /** + * Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. + */ + @Child(name="text", type={StringType.class}, order=1, min=0, max=1) + @Description(shortDefinition="Dosage Instructions", formalDefinition="Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication." ) + protected StringType text; + + /** + * A coded specification of the anatomic site where the medication first entered the body. E.g. "left arm". + */ + @Child(name="site", type={CodeableConcept.class}, order=2, min=0, max=1) + @Description(shortDefinition="Body site administered to", formalDefinition="A coded specification of the anatomic site where the medication first entered the body. E.g. 'left arm'." ) + protected CodeableConcept site; + + /** + * A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. E.g. topical, intravenous, etc. + */ + @Child(name="route", type={CodeableConcept.class}, order=3, min=0, max=1) + @Description(shortDefinition="Path of substance into body", formalDefinition="A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. E.g. topical, intravenous, etc." ) + protected CodeableConcept route; + + /** + * A coded value indicating the method by which the medication was introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration. + */ + @Child(name="method", type={CodeableConcept.class}, order=4, min=0, max=1) + @Description(shortDefinition="How drug was administered", formalDefinition="A coded value indicating the method by which the medication was introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.\r\rTerminologies used often pre-coordinate this term with the route and or form of administration." ) + protected CodeableConcept method; + + /** + * The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection. + */ + @Child(name="quantity", type={Quantity.class}, order=5, min=0, max=1) + @Description(shortDefinition="Amount administered in one dose", formalDefinition="The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection." ) + protected Quantity quantity; + + /** + * Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity. + */ + @Child(name="rate", type={Ratio.class}, order=6, min=0, max=1) + @Description(shortDefinition="Dose quantity per unit of time", formalDefinition="Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity." ) + protected Ratio rate; + + private static final long serialVersionUID = -358534919L; + + public MedicationAdministrationDosageComponent() { + super(); + } + + /** + * @return {@link #text} (Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value + */ + public StringType getTextElement() { + if (this.text == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.text"); + else if (Configuration.doAutoCreate()) + this.text = new StringType(); // bb + return this.text; + } + + public boolean hasTextElement() { + return this.text != null && !this.text.isEmpty(); + } + + public boolean hasText() { + return this.text != null && !this.text.isEmpty(); + } + + /** + * @param value {@link #text} (Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value + */ + public MedicationAdministrationDosageComponent setTextElement(StringType value) { + this.text = value; + return this; + } + + /** + * @return Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. + */ + public String getText() { + return this.text == null ? null : this.text.getValue(); + } + + /** + * @param value Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. + */ + public MedicationAdministrationDosageComponent setText(String value) { + if (Utilities.noString(value)) + this.text = null; + else { + if (this.text == null) + this.text = new StringType(); + this.text.setValue(value); + } + return this; + } + + /** + * @return {@link #site} (A coded specification of the anatomic site where the medication first entered the body. E.g. "left arm".) + */ + public CodeableConcept getSite() { + if (this.site == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.site"); + else if (Configuration.doAutoCreate()) + this.site = new CodeableConcept(); // cc + return this.site; + } + + public boolean hasSite() { + return this.site != null && !this.site.isEmpty(); + } + + /** + * @param value {@link #site} (A coded specification of the anatomic site where the medication first entered the body. E.g. "left arm".) + */ + public MedicationAdministrationDosageComponent setSite(CodeableConcept value) { + this.site = value; + return this; + } + + /** + * @return {@link #route} (A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. E.g. topical, intravenous, etc.) + */ + public CodeableConcept getRoute() { + if (this.route == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.route"); + else if (Configuration.doAutoCreate()) + this.route = new CodeableConcept(); // cc + return this.route; + } + + public boolean hasRoute() { + return this.route != null && !this.route.isEmpty(); + } + + /** + * @param value {@link #route} (A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. E.g. topical, intravenous, etc.) + */ + public MedicationAdministrationDosageComponent setRoute(CodeableConcept value) { + this.route = value; + return this; + } + + /** + * @return {@link #method} (A coded value indicating the method by which the medication was introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration.) + */ + public CodeableConcept getMethod() { + if (this.method == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.method"); + else if (Configuration.doAutoCreate()) + this.method = new CodeableConcept(); // cc + return this.method; + } + + public boolean hasMethod() { + return this.method != null && !this.method.isEmpty(); + } + + /** + * @param value {@link #method} (A coded value indicating the method by which the medication was introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration.) + */ + public MedicationAdministrationDosageComponent setMethod(CodeableConcept value) { + this.method = value; + return this; + } + + /** + * @return {@link #quantity} (The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.) + */ + public Quantity getQuantity() { + if (this.quantity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.quantity"); + else if (Configuration.doAutoCreate()) + this.quantity = new Quantity(); // cc + return this.quantity; + } + + public boolean hasQuantity() { + return this.quantity != null && !this.quantity.isEmpty(); + } + + /** + * @param value {@link #quantity} (The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.) + */ + public MedicationAdministrationDosageComponent setQuantity(Quantity value) { + this.quantity = value; + return this; + } + + /** + * @return {@link #rate} (Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.) + */ + public Ratio getRate() { + if (this.rate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.rate"); + else if (Configuration.doAutoCreate()) + this.rate = new Ratio(); // cc + return this.rate; + } + + public boolean hasRate() { + return this.rate != null && !this.rate.isEmpty(); + } + + /** + * @param value {@link #rate} (Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.) + */ + public MedicationAdministrationDosageComponent setRate(Ratio value) { + this.rate = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("text", "string", "Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication.", 0, java.lang.Integer.MAX_VALUE, text)); + childrenList.add(new Property("site", "CodeableConcept", "A coded specification of the anatomic site where the medication first entered the body. E.g. 'left arm'.", 0, java.lang.Integer.MAX_VALUE, site)); + childrenList.add(new Property("route", "CodeableConcept", "A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. E.g. topical, intravenous, etc.", 0, java.lang.Integer.MAX_VALUE, route)); + childrenList.add(new Property("method", "CodeableConcept", "A coded value indicating the method by which the medication was introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.\r\rTerminologies used often pre-coordinate this term with the route and or form of administration.", 0, java.lang.Integer.MAX_VALUE, method)); + childrenList.add(new Property("quantity", "Quantity", "The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.", 0, java.lang.Integer.MAX_VALUE, quantity)); + childrenList.add(new Property("rate", "Ratio", "Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.", 0, java.lang.Integer.MAX_VALUE, rate)); + } + + public MedicationAdministrationDosageComponent copy() { + MedicationAdministrationDosageComponent dst = new MedicationAdministrationDosageComponent(); + copyValues(dst); + dst.text = text == null ? null : text.copy(); + dst.site = site == null ? null : site.copy(); + dst.route = route == null ? null : route.copy(); + dst.method = method == null ? null : method.copy(); + dst.quantity = quantity == null ? null : quantity.copy(); + dst.rate = rate == null ? null : rate.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof MedicationAdministrationDosageComponent)) + return false; + MedicationAdministrationDosageComponent o = (MedicationAdministrationDosageComponent) other; + return compareDeep(text, o.text, true) && compareDeep(site, o.site, true) && compareDeep(route, o.route, true) + && compareDeep(method, o.method, true) && compareDeep(quantity, o.quantity, true) && compareDeep(rate, o.rate, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof MedicationAdministrationDosageComponent)) + return false; + MedicationAdministrationDosageComponent o = (MedicationAdministrationDosageComponent) other; + return compareValues(text, o.text, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (text == null || text.isEmpty()) && (site == null || site.isEmpty()) + && (route == null || route.isEmpty()) && (method == null || method.isEmpty()) && (quantity == null || quantity.isEmpty()) + && (rate == null || rate.isEmpty()); + } + + } + + /** + * External identifier - FHIR will generate its own internal IDs (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. Particularly important if these records have to be updated. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="External identifier", formalDefinition="External identifier - FHIR will generate its own internal IDs (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. Particularly important if these records have to be updated." ) + protected List identifier; + + /** + * Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way. + */ + @Child(name="status", type={CodeType.class}, order=0, min=1, max=1) + @Description(shortDefinition="in-progress | on-hold | completed | entered-in-error | stopped", formalDefinition="Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way." ) + protected Enumeration status; + + /** + * The person or animal to whom the medication was given. + */ + @Child(name="patient", type={Patient.class}, order=1, min=1, max=1) + @Description(shortDefinition="Who received medication?", formalDefinition="The person or animal to whom the medication was given." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (The person or animal to whom the medication was given.) + */ + protected Patient patientTarget; + + /** + * The individual who was responsible for giving the medication to the patient. + */ + @Child(name="practitioner", type={Practitioner.class}, order=2, min=0, max=1) + @Description(shortDefinition="Who administered substance?", formalDefinition="The individual who was responsible for giving the medication to the patient." ) + protected Reference practitioner; + + /** + * The actual object that is the target of the reference (The individual who was responsible for giving the medication to the patient.) + */ + protected Practitioner practitionerTarget; + + /** + * The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of. + */ + @Child(name="encounter", type={Encounter.class}, order=3, min=0, max=1) + @Description(shortDefinition="Encounter administered as part of", formalDefinition="The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of." ) + protected Reference encounter; + + /** + * The actual object that is the target of the reference (The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.) + */ + protected Encounter encounterTarget; + + /** + * The original request, instruction or authority to perform the administration. + */ + @Child(name="prescription", type={MedicationPrescription.class}, order=4, min=0, max=1) + @Description(shortDefinition="Order administration performed against", formalDefinition="The original request, instruction or authority to perform the administration." ) + protected Reference prescription; + + /** + * The actual object that is the target of the reference (The original request, instruction or authority to perform the administration.) + */ + protected MedicationPrescription prescriptionTarget; + + /** + * Set this to true if the record is saying that the medication was NOT administered. + */ + @Child(name="wasNotGiven", type={BooleanType.class}, order=5, min=0, max=1) + @Description(shortDefinition="True if medication not administered", formalDefinition="Set this to true if the record is saying that the medication was NOT administered." ) + protected BooleanType wasNotGiven; + + /** + * A code indicating why the administration was not performed. + */ + @Child(name="reasonNotGiven", type={CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Reason administration not performed", formalDefinition="A code indicating why the administration was not performed." ) + protected List reasonNotGiven; + + /** + * A code indicating why the medication was given. + */ + @Child(name="reasonGiven", type={CodeableConcept.class}, order=7, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Reason administration performed", formalDefinition="A code indicating why the medication was given." ) + protected List reasonGiven; + + /** + * An interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate. + */ + @Child(name="effectiveTime", type={DateTimeType.class, Period.class}, order=8, min=1, max=1) + @Description(shortDefinition="Start and end time of administration", formalDefinition="An interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate." ) + protected Type effectiveTime; + + /** + * Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications. + */ + @Child(name="medication", type={Medication.class}, order=9, min=0, max=1) + @Description(shortDefinition="What was administered?", formalDefinition="Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications." ) + protected Reference medication; + + /** + * The actual object that is the target of the reference (Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) + */ + protected Medication medicationTarget; + + /** + * The device used in administering the medication to the patient. E.g. a particular infusion pump. + */ + @Child(name="device", type={Device.class}, order=10, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Device used to administer", formalDefinition="The device used in administering the medication to the patient. E.g. a particular infusion pump." ) + protected List device; + /** + * The actual objects that are the target of the reference (The device used in administering the medication to the patient. E.g. a particular infusion pump.) + */ + protected List deviceTarget; + + + /** + * Extra information about the medication administration that is not conveyed by the other attributes. + */ + @Child(name="note", type={StringType.class}, order=11, min=0, max=1) + @Description(shortDefinition="Information about the administration", formalDefinition="Extra information about the medication administration that is not conveyed by the other attributes." ) + protected StringType note; + + /** + * Indicates how the medication is/was used by the patient. + */ + @Child(name="dosage", type={}, order=12, min=0, max=1) + @Description(shortDefinition="Details of how medication was taken", formalDefinition="Indicates how the medication is/was used by the patient." ) + protected MedicationAdministrationDosageComponent dosage; + + private static final long serialVersionUID = 1898346148L; + + public MedicationAdministration() { + super(); + } + + public MedicationAdministration(Enumeration status, Reference patient, Type effectiveTime) { + super(); + this.status = status; + this.patient = patient; + this.effectiveTime = effectiveTime; + } + + /** + * @return {@link #identifier} (External identifier - FHIR will generate its own internal IDs (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. Particularly important if these records have to be updated.) + */ + public List getIdentifier() { + if (this.identifier == null) + this.identifier = new ArrayList(); + return this.identifier; + } + + public boolean hasIdentifier() { + if (this.identifier == null) + return false; + for (Identifier item : this.identifier) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #identifier} (External identifier - FHIR will generate its own internal IDs (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. Particularly important if these records have to be updated.) + */ + // syntactic sugar + public Identifier addIdentifier() { //3 + Identifier t = new Identifier(); + if (this.identifier == null) + this.identifier = new ArrayList(); + this.identifier.add(t); + return t; + } + + /** + * @return {@link #status} (Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new MedicationAdminStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public MedicationAdministration setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way. + */ + public MedicationAdminStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way. + */ + public MedicationAdministration setStatus(MedicationAdminStatus value) { + if (this.status == null) + this.status = new Enumeration(new MedicationAdminStatusEnumFactory()); + this.status.setValue(value); + return this; + } + + /** + * @return {@link #patient} (The person or animal to whom the medication was given.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (The person or animal to whom the medication was given.) + */ + public MedicationAdministration setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The person or animal to whom the medication was given.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The person or animal to whom the medication was given.) + */ + public MedicationAdministration setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #practitioner} (The individual who was responsible for giving the medication to the patient.) + */ + public Reference getPractitioner() { + if (this.practitioner == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.practitioner"); + else if (Configuration.doAutoCreate()) + this.practitioner = new Reference(); // cc + return this.practitioner; + } + + public boolean hasPractitioner() { + return this.practitioner != null && !this.practitioner.isEmpty(); + } + + /** + * @param value {@link #practitioner} (The individual who was responsible for giving the medication to the patient.) + */ + public MedicationAdministration setPractitioner(Reference value) { + this.practitioner = value; + return this; + } + + /** + * @return {@link #practitioner} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The individual who was responsible for giving the medication to the patient.) + */ + public Practitioner getPractitionerTarget() { + if (this.practitionerTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.practitioner"); + else if (Configuration.doAutoCreate()) + this.practitionerTarget = new Practitioner(); // aa + return this.practitionerTarget; + } + + /** + * @param value {@link #practitioner} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The individual who was responsible for giving the medication to the patient.) + */ + public MedicationAdministration setPractitionerTarget(Practitioner value) { + this.practitionerTarget = value; + return this; + } + + /** + * @return {@link #encounter} (The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.) + */ + public Reference getEncounter() { + if (this.encounter == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.encounter"); + else if (Configuration.doAutoCreate()) + this.encounter = new Reference(); // cc + return this.encounter; + } + + public boolean hasEncounter() { + return this.encounter != null && !this.encounter.isEmpty(); + } + + /** + * @param value {@link #encounter} (The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.) + */ + public MedicationAdministration setEncounter(Reference value) { + this.encounter = value; + return this; + } + + /** + * @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.) + */ + public Encounter getEncounterTarget() { + if (this.encounterTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.encounter"); + else if (Configuration.doAutoCreate()) + this.encounterTarget = new Encounter(); // aa + return this.encounterTarget; + } + + /** + * @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.) + */ + public MedicationAdministration setEncounterTarget(Encounter value) { + this.encounterTarget = value; + return this; + } + + /** + * @return {@link #prescription} (The original request, instruction or authority to perform the administration.) + */ + public Reference getPrescription() { + if (this.prescription == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.prescription"); + else if (Configuration.doAutoCreate()) + this.prescription = new Reference(); // cc + return this.prescription; + } + + public boolean hasPrescription() { + return this.prescription != null && !this.prescription.isEmpty(); + } + + /** + * @param value {@link #prescription} (The original request, instruction or authority to perform the administration.) + */ + public MedicationAdministration setPrescription(Reference value) { + this.prescription = value; + return this; + } + + /** + * @return {@link #prescription} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The original request, instruction or authority to perform the administration.) + */ + public MedicationPrescription getPrescriptionTarget() { + if (this.prescriptionTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.prescription"); + else if (Configuration.doAutoCreate()) + this.prescriptionTarget = new MedicationPrescription(); // aa + return this.prescriptionTarget; + } + + /** + * @param value {@link #prescription} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The original request, instruction or authority to perform the administration.) + */ + public MedicationAdministration setPrescriptionTarget(MedicationPrescription value) { + this.prescriptionTarget = value; + return this; + } + + /** + * @return {@link #wasNotGiven} (Set this to true if the record is saying that the medication was NOT administered.). This is the underlying object with id, value and extensions. The accessor "getWasNotGiven" gives direct access to the value + */ + public BooleanType getWasNotGivenElement() { + if (this.wasNotGiven == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.wasNotGiven"); + else if (Configuration.doAutoCreate()) + this.wasNotGiven = new BooleanType(); // bb + return this.wasNotGiven; + } + + public boolean hasWasNotGivenElement() { + return this.wasNotGiven != null && !this.wasNotGiven.isEmpty(); + } + + public boolean hasWasNotGiven() { + return this.wasNotGiven != null && !this.wasNotGiven.isEmpty(); + } + + /** + * @param value {@link #wasNotGiven} (Set this to true if the record is saying that the medication was NOT administered.). This is the underlying object with id, value and extensions. The accessor "getWasNotGiven" gives direct access to the value + */ + public MedicationAdministration setWasNotGivenElement(BooleanType value) { + this.wasNotGiven = value; + return this; + } + + /** + * @return Set this to true if the record is saying that the medication was NOT administered. + */ + public boolean getWasNotGiven() { + return this.wasNotGiven == null ? false : this.wasNotGiven.getValue(); + } + + /** + * @param value Set this to true if the record is saying that the medication was NOT administered. + */ + public MedicationAdministration setWasNotGiven(boolean value) { + if (this.wasNotGiven == null) + this.wasNotGiven = new BooleanType(); + this.wasNotGiven.setValue(value); + return this; + } + + /** + * @return {@link #reasonNotGiven} (A code indicating why the administration was not performed.) + */ + public List getReasonNotGiven() { + if (this.reasonNotGiven == null) + this.reasonNotGiven = new ArrayList(); + return this.reasonNotGiven; + } + + public boolean hasReasonNotGiven() { + if (this.reasonNotGiven == null) + return false; + for (CodeableConcept item : this.reasonNotGiven) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #reasonNotGiven} (A code indicating why the administration was not performed.) + */ + // syntactic sugar + public CodeableConcept addReasonNotGiven() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.reasonNotGiven == null) + this.reasonNotGiven = new ArrayList(); + this.reasonNotGiven.add(t); + return t; + } + + /** + * @return {@link #reasonGiven} (A code indicating why the medication was given.) + */ + public List getReasonGiven() { + if (this.reasonGiven == null) + this.reasonGiven = new ArrayList(); + return this.reasonGiven; + } + + public boolean hasReasonGiven() { + if (this.reasonGiven == null) + return false; + for (CodeableConcept item : this.reasonGiven) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #reasonGiven} (A code indicating why the medication was given.) + */ + // syntactic sugar + public CodeableConcept addReasonGiven() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.reasonGiven == null) + this.reasonGiven = new ArrayList(); + this.reasonGiven.add(t); + return t; + } + + /** + * @return {@link #effectiveTime} (An interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.) + */ + public Type getEffectiveTime() { + return this.effectiveTime; + } + + /** + * @return {@link #effectiveTime} (An interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.) + */ + public DateTimeType getEffectiveTimeDateTimeType() throws Exception { + if (!(this.effectiveTime instanceof DateTimeType)) + throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.effectiveTime.getClass().getName()+" was encountered"); + return (DateTimeType) this.effectiveTime; + } + + /** + * @return {@link #effectiveTime} (An interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.) + */ + public Period getEffectiveTimePeriod() throws Exception { + if (!(this.effectiveTime instanceof Period)) + throw new Exception("Type mismatch: the type Period was expected, but "+this.effectiveTime.getClass().getName()+" was encountered"); + return (Period) this.effectiveTime; + } + + public boolean hasEffectiveTime() { + return this.effectiveTime != null && !this.effectiveTime.isEmpty(); + } + + /** + * @param value {@link #effectiveTime} (An interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.) + */ + public MedicationAdministration setEffectiveTime(Type value) { + this.effectiveTime = value; + return this; + } + + /** + * @return {@link #medication} (Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) + */ + public Reference getMedication() { + if (this.medication == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.medication"); + else if (Configuration.doAutoCreate()) + this.medication = new Reference(); // cc + return this.medication; + } + + public boolean hasMedication() { + return this.medication != null && !this.medication.isEmpty(); + } + + /** + * @param value {@link #medication} (Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) + */ + public MedicationAdministration setMedication(Reference value) { + this.medication = value; + return this; + } + + /** + * @return {@link #medication} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) + */ + public Medication getMedicationTarget() { + if (this.medicationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.medication"); + else if (Configuration.doAutoCreate()) + this.medicationTarget = new Medication(); // aa + return this.medicationTarget; + } + + /** + * @param value {@link #medication} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) + */ + public MedicationAdministration setMedicationTarget(Medication value) { + this.medicationTarget = value; + return this; + } + + /** + * @return {@link #device} (The device used in administering the medication to the patient. E.g. a particular infusion pump.) + */ + public List getDevice() { + if (this.device == null) + this.device = new ArrayList(); + return this.device; + } + + public boolean hasDevice() { + if (this.device == null) + return false; + for (Reference item : this.device) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #device} (The device used in administering the medication to the patient. E.g. a particular infusion pump.) + */ + // syntactic sugar + public Reference addDevice() { //3 + Reference t = new Reference(); + if (this.device == null) + this.device = new ArrayList(); + this.device.add(t); + return t; + } + + /** + * @return {@link #device} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The device used in administering the medication to the patient. E.g. a particular infusion pump.) + */ + public List getDeviceTarget() { + if (this.deviceTarget == null) + this.deviceTarget = new ArrayList(); + return this.deviceTarget; + } + + // syntactic sugar + /** + * @return {@link #device} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The device used in administering the medication to the patient. E.g. a particular infusion pump.) + */ + public Device addDeviceTarget() { + Device r = new Device(); + if (this.deviceTarget == null) + this.deviceTarget = new ArrayList(); + this.deviceTarget.add(r); + return r; + } + + /** + * @return {@link #note} (Extra information about the medication administration that is not conveyed by the other attributes.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value + */ + public StringType getNoteElement() { + if (this.note == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.note"); + else if (Configuration.doAutoCreate()) + this.note = new StringType(); // bb + return this.note; + } + + public boolean hasNoteElement() { + return this.note != null && !this.note.isEmpty(); + } + + public boolean hasNote() { + return this.note != null && !this.note.isEmpty(); + } + + /** + * @param value {@link #note} (Extra information about the medication administration that is not conveyed by the other attributes.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value + */ + public MedicationAdministration setNoteElement(StringType value) { + this.note = value; + return this; + } + + /** + * @return Extra information about the medication administration that is not conveyed by the other attributes. + */ + public String getNote() { + return this.note == null ? null : this.note.getValue(); + } + + /** + * @param value Extra information about the medication administration that is not conveyed by the other attributes. + */ + public MedicationAdministration setNote(String value) { + if (Utilities.noString(value)) + this.note = null; + else { + if (this.note == null) + this.note = new StringType(); + this.note.setValue(value); + } + return this; + } + + /** + * @return {@link #dosage} (Indicates how the medication is/was used by the patient.) + */ + public MedicationAdministrationDosageComponent getDosage() { + if (this.dosage == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationAdministration.dosage"); + else if (Configuration.doAutoCreate()) + this.dosage = new MedicationAdministrationDosageComponent(); // cc + return this.dosage; + } + + public boolean hasDosage() { + return this.dosage != null && !this.dosage.isEmpty(); + } + + /** + * @param value {@link #dosage} (Indicates how the medication is/was used by the patient.) + */ + public MedicationAdministration setDosage(MedicationAdministrationDosageComponent value) { + this.dosage = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "External identifier - FHIR will generate its own internal IDs (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. Particularly important if these records have to be updated.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("status", "code", "Will generally be set to show that the administration has been completed. For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("patient", "Reference(Patient)", "The person or animal to whom the medication was given.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("practitioner", "Reference(Practitioner)", "The individual who was responsible for giving the medication to the patient.", 0, java.lang.Integer.MAX_VALUE, practitioner)); + childrenList.add(new Property("encounter", "Reference(Encounter)", "The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.", 0, java.lang.Integer.MAX_VALUE, encounter)); + childrenList.add(new Property("prescription", "Reference(MedicationPrescription)", "The original request, instruction or authority to perform the administration.", 0, java.lang.Integer.MAX_VALUE, prescription)); + childrenList.add(new Property("wasNotGiven", "boolean", "Set this to true if the record is saying that the medication was NOT administered.", 0, java.lang.Integer.MAX_VALUE, wasNotGiven)); + childrenList.add(new Property("reasonNotGiven", "CodeableConcept", "A code indicating why the administration was not performed.", 0, java.lang.Integer.MAX_VALUE, reasonNotGiven)); + childrenList.add(new Property("reasonGiven", "CodeableConcept", "A code indicating why the medication was given.", 0, java.lang.Integer.MAX_VALUE, reasonGiven)); + childrenList.add(new Property("effectiveTime[x]", "dateTime|Period", "An interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.", 0, java.lang.Integer.MAX_VALUE, effectiveTime)); + childrenList.add(new Property("medication", "Reference(Medication)", "Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.", 0, java.lang.Integer.MAX_VALUE, medication)); + childrenList.add(new Property("device", "Reference(Device)", "The device used in administering the medication to the patient. E.g. a particular infusion pump.", 0, java.lang.Integer.MAX_VALUE, device)); + childrenList.add(new Property("note", "string", "Extra information about the medication administration that is not conveyed by the other attributes.", 0, java.lang.Integer.MAX_VALUE, note)); + childrenList.add(new Property("dosage", "", "Indicates how the medication is/was used by the patient.", 0, java.lang.Integer.MAX_VALUE, dosage)); + } + + public MedicationAdministration copy() { + MedicationAdministration dst = new MedicationAdministration(); + copyValues(dst); + if (identifier != null) { + dst.identifier = new ArrayList(); + for (Identifier i : identifier) + dst.identifier.add(i.copy()); + }; + dst.status = status == null ? null : status.copy(); + dst.patient = patient == null ? null : patient.copy(); + dst.practitioner = practitioner == null ? null : practitioner.copy(); + dst.encounter = encounter == null ? null : encounter.copy(); + dst.prescription = prescription == null ? null : prescription.copy(); + dst.wasNotGiven = wasNotGiven == null ? null : wasNotGiven.copy(); + if (reasonNotGiven != null) { + dst.reasonNotGiven = new ArrayList(); + for (CodeableConcept i : reasonNotGiven) + dst.reasonNotGiven.add(i.copy()); + }; + if (reasonGiven != null) { + dst.reasonGiven = new ArrayList(); + for (CodeableConcept i : reasonGiven) + dst.reasonGiven.add(i.copy()); + }; + dst.effectiveTime = effectiveTime == null ? null : effectiveTime.copy(); + dst.medication = medication == null ? null : medication.copy(); + if (device != null) { + dst.device = new ArrayList(); + for (Reference i : device) + dst.device.add(i.copy()); + }; + dst.note = note == null ? null : note.copy(); + dst.dosage = dosage == null ? null : dosage.copy(); + return dst; + } + + protected MedicationAdministration typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof MedicationAdministration)) + return false; + MedicationAdministration o = (MedicationAdministration) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(patient, o.patient, true) + && compareDeep(practitioner, o.practitioner, true) && compareDeep(encounter, o.encounter, true) + && compareDeep(prescription, o.prescription, true) && compareDeep(wasNotGiven, o.wasNotGiven, true) + && compareDeep(reasonNotGiven, o.reasonNotGiven, true) && compareDeep(reasonGiven, o.reasonGiven, true) + && compareDeep(effectiveTime, o.effectiveTime, true) && compareDeep(medication, o.medication, true) + && compareDeep(device, o.device, true) && compareDeep(note, o.note, true) && compareDeep(dosage, o.dosage, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof MedicationAdministration)) + return false; + MedicationAdministration o = (MedicationAdministration) other; + return compareValues(status, o.status, true) && compareValues(wasNotGiven, o.wasNotGiven, true) && compareValues(note, o.note, true) + ; + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (status == null || status.isEmpty()) + && (patient == null || patient.isEmpty()) && (practitioner == null || practitioner.isEmpty()) + && (encounter == null || encounter.isEmpty()) && (prescription == null || prescription.isEmpty()) + && (wasNotGiven == null || wasNotGiven.isEmpty()) && (reasonNotGiven == null || reasonNotGiven.isEmpty()) + && (reasonGiven == null || reasonGiven.isEmpty()) && (effectiveTime == null || effectiveTime.isEmpty()) + && (medication == null || medication.isEmpty()) && (device == null || device.isEmpty()) && (note == null || note.isEmpty()) + && (dosage == null || dosage.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.MedicationAdministration; + } + + @SearchParamDefinition(name="medication", path="MedicationAdministration.medication", description="Return administrations of this medication", type="reference" ) + public static final String SP_MEDICATION = "medication"; + @SearchParamDefinition(name="effectivetime", path="MedicationAdministration.effectiveTime[x]", description="Date administration happened (or did not happen)", type="date" ) + public static final String SP_EFFECTIVETIME = "effectivetime"; + @SearchParamDefinition(name="patient", path="MedicationAdministration.patient", description="The identity of a patient to list administrations for", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="status", path="MedicationAdministration.status", description="MedicationAdministration event status (for example one of active/paused/completed/nullified)", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="prescription", path="MedicationAdministration.prescription", description="The identity of a prescription to list administrations from", type="reference" ) + public static final String SP_PRESCRIPTION = "prescription"; + @SearchParamDefinition(name="device", path="MedicationAdministration.device", description="Return administrations with this administration device identity", type="reference" ) + public static final String SP_DEVICE = "device"; + @SearchParamDefinition(name="notgiven", path="MedicationAdministration.wasNotGiven", description="Administrations that were not made", type="token" ) + public static final String SP_NOTGIVEN = "notgiven"; + @SearchParamDefinition(name="encounter", path="MedicationAdministration.encounter", description="Return administrations that share this encounter", type="reference" ) + public static final String SP_ENCOUNTER = "encounter"; + @SearchParamDefinition(name="identifier", path="MedicationAdministration.identifier", description="Return administrations with this external identity", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationDispense$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationDispense$1.class new file mode 100644 index 0000000000000000000000000000000000000000..372942dd161a6f028ee3072c2ebad4bcf424a1ce GIT binary patch literal 1081 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationDispense$MedicationDispenseStatusEnumFactory.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationDispense$MedicationDispenseStatusEnumFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..f17c6f290ea71e7e99a37e9091703d28535a84a5 GIT binary patch literal 2152 zcmb_dTXWk~5dKbLTe2c2sYpp%Xi3^Y;uy!!(iWPKGmJ}>&IEEFuTvm`$@VtUFLuk$xwm;9%KNY>o5J)dW}I(3BkRjW7TS$%xhEW8`kSq!m&g-QSd!m zlxL%9*DEJBo%4z7o3@v*Ma{QFktZsY*h%yrJ<+?>$~MaoA+30G)vC5ZYUZ0oUX{Qo zdB}HLcnQTprHuCSVVLM$AUB4&@VUoJaSG+0=XyHUnsGJXtyZPm z6=|N_sawi%c-e9my>h)m!JQT$pgT^jdS9yBPKkRAlUKw|;l3fpda1OUYph7^I5w%{ zDqdt@q`ZW6N$_Q|78Ja~uyR06rDGCPI>s@-ja zebCITnR#<5l`-@AY@Qmiu$Il`g^w1%3Sw`irlLSNJM z9|TAP-j4kR-RO&Lq5lqyZX?JVMxeE?{EA@12z3mlVW=G=+%U9`G0-sdjuC0x#o+o~ z46Sct*f_LB=hJOGK+6_JwsH6m0?^llc!B;*z&nWGU1E2exV?u*@jjyX0H^UG&fz00 z;A1553DWqKJ|CZ99iQVGz92t9gBsD9E-ySrc7VtZ(oNGutE|l}$|MP&jS-oj5i$Y| z(iEwMq!yN%DzyQrX;OYybBPqf`b(^SKw iJ-%I}`w?rReH`(ooWUuQ2E~uU#L0_CslXt*t#5PD15-OqLA)%z8SZ-!+k_+?dy>|*h zTiUABzO~xcw3JqBr4Q8B76Qdm>RM8D`CdMjf2^-RK7Y9U)x|P?``k%pGBZqwYmsyB zIrp5s_xGK>zjKBk{r8P?0ItRNf>?$4+P=EgVKMrQI8u#A@ug~f8IMWxxOAV8319JJB#1gZB8{^Aq#sWOF;|SN#8E$<4&d4V zjs?(Oad>QOEQoqM6F^4*-SYZu0Gk5%Y5-gPcrHkTT-JcEO90P{$#002<1+SwG%rf` zC21a!5a_i5FZ*#qgU=mKn;Mq)r0l`gq4=8Cfg#IowUUl&B%@|)A{8^^t(|O*{!ZURWCgmZpJ1RHxztc zTb6;s{aM#0Bxc-N~30HC)q)5MIO!F+xUEchUkf z*U0g>5#681qB7Q04tFg{NHaSmS+*IrJFMZlX+hj>D!!v;+d5L!T$YY)wh@)RO(jiR zF;SsmY2Q#PVmSmi5l2ac8n*2q2WivhHbn@Pbzvl}Ln^t+2RC(yo1M0;gkcZo%vo{E z9WH5+yFMq+t3toSum??7!`f+aFbS8?Q0thsWyE(fSc1K|yGw(%Nka|mRO;8=X~Z*T zrDVazqyM?U>{}~^u#RQb*tC;nCwapv>9LaLmQ14Gw0B6AYq+MdEWd^6Cbs;@YR22^GM_dZ>8yJ{8TM>3&fT=_jN4wi*;JWIv|ZV9>-7p*rC?_&!6aiQo35b&##cwrTpET#`E8=_(QKcmb`OX3#|?G_OR2 zIGG25h2YrI9hLq5rUoDGSzi2YQeu$}_Y z&(hrxHxsO1*2&T-0On=}ds7)ZYTjsxbj>XWzCucDI@gl*@l4(%A#`9pQ!S?>9ky)@%bmiH?}YFgUZ)0xa8jn8!e|JmaVCUKvS>*;XA@Nz z!Zw-AbN|ve#QahS;Q)APTU>s=m(--R;4~33-jL=jH*+F}#(W1&etcKM&T{sP>A&3c z58+Lm3*ivP317~6d$k# zGn}ffuCq`RU#3JrShlE%=wnQ&=9aDLYOm2LB~U5 z0m>=7#XQK_zNC6wF+Njy+uFa+j7p(aP(ceK$$k?_*i#}xPZaZGE*|ObE_(!fl0z}Q z>HoJsnH0s_igNo=oKuuZQDb$@;w58>Yg0i=D2LTiURey=^mKOPW$5hGwCon%7Z)Bf zZG}e>r(q#~2d?Dxu#!JzDRkgZE%vT~jt_Bcjl;ofKMpO*Pap2ab+}%dHfh#!&PN=q z!wnAFxtb!xkxs7G(N$=rBj3sfv2vqW`RKTnjbf#nR;Wr7R&FY^vMFn&M`GDrY-NjB z*-9&vDCGJH7X)Q`bIVESxivGvA6$AL*W7|CeHT}J0(-LSqWmUqmN&l+{T(bmjfxS} zoP}>!xN;OT-Z~Bc2xc~)MPSz`s%Tc`y}|{$3a1`3_-iLibH&gF%$CO~1fPW8cO1To6BDLq$TWROnW=<+WxK315MwL+ zEXo4*E3nNHQa(c|RO)Gtm>A$hSksn8f03bYhoean2+b=g{e#LKa^mB*vnj zEM(E4RTr6J0CNf8DgjW!`lSH8NdV^v;4K0;PXKRE0&qKPnb)UmF&##g%DBGfmQm*S zS=8?e&kw&Ze04>50ln&@cz-t8)TanPE%ZKBkKzOQpB9A|hnIMt!V{lz+T~^F_gT#s z5TQV|=|8|u{fF6F942yJc|81D1Ixh2jePzr8i;>sPjkyDG`2`Q@4&Aer#LFHY4T*O z`U2K6@_Z3c8Mk>^wr&^j#jD#bEiCHgr_kg@ethg*S_)5EuhRb#>+58FnCqJ-*5?)B zO8$Q=^dFP`pHM@8ibeX*(5(L)tMy-CyZ%c=^h(nfu6@=+{lMku5B$iW4nwqrrPQ zkA}@c*)sn5PGi{!matpRZZ*5hMf&M9I)ZhA@d9e(L46)khat0LmViBjYed8A1*tbgT~b4ZXuSjL z-`T3Eyeb^7XxC~xn4ouO{a&5*TiJXHACw~ZPAqTXDmC?<%bH4VKEvfYKCA8`V&HS^ PNBI}zdjr0PepLMrJ(gZn literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationDispense.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationDispense.class new file mode 100644 index 0000000000000000000000000000000000000000..ca153c193d7857c618320ed832d5117cb3f83a19 GIT binary patch literal 24994 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 { - public MedicationDispenseStatus fromCode(String codeString) throws IllegalArgumentException { - if (codeString == null || "".equals(codeString)) - if (codeString == null || "".equals(codeString)) - return null; - if ("in progress".equals(codeString)) - return MedicationDispenseStatus.INPROGRESS; - if ("on hold".equals(codeString)) - return MedicationDispenseStatus.ONHOLD; - if ("completed".equals(codeString)) - return MedicationDispenseStatus.COMPLETED; - if ("entered in error".equals(codeString)) - return MedicationDispenseStatus.ENTEREDINERROR; - if ("stopped".equals(codeString)) - return MedicationDispenseStatus.STOPPED; - throw new IllegalArgumentException("Unknown MedicationDispenseStatus code '"+codeString+"'"); - } - public String toCode(MedicationDispenseStatus code) throws IllegalArgumentException { - if (code == MedicationDispenseStatus.INPROGRESS) - return "in progress"; - if (code == MedicationDispenseStatus.ONHOLD) - return "on hold"; - if (code == MedicationDispenseStatus.COMPLETED) - return "completed"; - if (code == MedicationDispenseStatus.ENTEREDINERROR) - return "entered in error"; - if (code == MedicationDispenseStatus.STOPPED) - return "stopped"; - return "?"; - } - } - - @Block() - public static class MedicationDispenseDispenseComponent extends BackboneElement { - /** - * Identifier assigned by the dispensing facility. This is an identifier assigned outside FHIR. - */ - @Child(name="identifier", type={Identifier.class}, order=1, min=0, max=1) - @Description(shortDefinition="External identifier for individual item", formalDefinition="Identifier assigned by the dispensing facility. This is an identifier assigned outside FHIR." ) - protected Identifier identifier; - - /** - * A code specifying the state of the dispense event. - */ - @Child(name="status", type={CodeType.class}, order=2, min=0, max=1) - @Description(shortDefinition="in progress | on hold | completed | entered in error | stopped", formalDefinition="A code specifying the state of the dispense event." ) - protected Enumeration status; - - /** - * Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc. - */ - @Child(name="type", type={CodeableConcept.class}, order=3, min=0, max=1) - @Description(shortDefinition="Trial fill, partial fill, emergency fill, etc.", formalDefinition="Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc." ) - protected CodeableConcept type; - - /** - * The amount of medication that has been dispensed. Includes unit of measure. - */ - @Child(name="quantity", type={Quantity.class}, order=4, min=0, max=1) - @Description(shortDefinition="Amount dispensed", formalDefinition="The amount of medication that has been dispensed. Includes unit of measure." ) - protected Quantity quantity; - - /** - * Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications. - */ - @Child(name="medication", type={Medication.class}, order=5, min=0, max=1) - @Description(shortDefinition="What medication was supplied", formalDefinition="Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications." ) - protected Reference medication; - - /** - * The actual object that is the target of the reference (Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) - */ - protected Medication medicationTarget; - - /** - * The time when the dispensed product was packaged and reviewed. - */ - @Child(name="whenPrepared", type={DateTimeType.class}, order=6, min=0, max=1) - @Description(shortDefinition="Dispense processing time", formalDefinition="The time when the dispensed product was packaged and reviewed." ) - protected DateTimeType whenPrepared; - - /** - * The time the dispensed product was provided to the patient or their representative. - */ - @Child(name="whenHandedOver", type={DateTimeType.class}, order=7, min=0, max=1) - @Description(shortDefinition="Handover time", formalDefinition="The time the dispensed product was provided to the patient or their representative." ) - protected DateTimeType whenHandedOver; - - /** - * Identification of the facility/location where the medication was shipped to, as part of the dispense event. - */ - @Child(name="destination", type={Location.class}, order=8, min=0, max=1) - @Description(shortDefinition="Where the medication was sent", formalDefinition="Identification of the facility/location where the medication was shipped to, as part of the dispense event." ) - protected Reference destination; - - /** - * The actual object that is the target of the reference (Identification of the facility/location where the medication was shipped to, as part of the dispense event.) - */ - protected Location destinationTarget; - - /** - * Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional. - */ - @Child(name="receiver", type={Patient.class, Practitioner.class}, order=9, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Who collected the medication", formalDefinition="Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional." ) - protected List receiver; - /** - * The actual objects that are the target of the reference (Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional.) - */ - protected List receiverTarget; - - - /** - * Indicates how the medication is to be used by the patient. - */ - @Child(name="dosage", type={}, order=10, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Medicine administration instructions to the patient/carer", formalDefinition="Indicates how the medication is to be used by the patient." ) - protected List dosage; - - private static final long serialVersionUID = -1394745561L; - - public MedicationDispenseDispenseComponent() { - super(); - } - - /** - * @return {@link #identifier} (Identifier assigned by the dispensing facility. This is an identifier assigned outside FHIR.) - */ - public Identifier getIdentifier() { - if (this.identifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseComponent.identifier"); - else if (Configuration.doAutoCreate()) - this.identifier = new Identifier(); - return this.identifier; - } - - public boolean hasIdentifier() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - /** - * @param value {@link #identifier} (Identifier assigned by the dispensing facility. This is an identifier assigned outside FHIR.) - */ - public MedicationDispenseDispenseComponent setIdentifier(Identifier value) { - this.identifier = value; - return this; - } - - /** - * @return {@link #status} (A code specifying the state of the dispense event.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseComponent.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (A code specifying the state of the dispense event.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public MedicationDispenseDispenseComponent setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return A code specifying the state of the dispense event. - */ - public MedicationDispenseStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value A code specifying the state of the dispense event. - */ - public MedicationDispenseDispenseComponent setStatus(MedicationDispenseStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(MedicationDispenseStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #type} (Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.) - */ - public MedicationDispenseDispenseComponent setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #quantity} (The amount of medication that has been dispensed. Includes unit of measure.) - */ - public Quantity getQuantity() { - if (this.quantity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseComponent.quantity"); - else if (Configuration.doAutoCreate()) - this.quantity = new Quantity(); - return this.quantity; - } - - public boolean hasQuantity() { - return this.quantity != null && !this.quantity.isEmpty(); - } - - /** - * @param value {@link #quantity} (The amount of medication that has been dispensed. Includes unit of measure.) - */ - public MedicationDispenseDispenseComponent setQuantity(Quantity value) { - this.quantity = value; - return this; - } - - /** - * @return {@link #medication} (Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) - */ - public Reference getMedication() { - if (this.medication == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseComponent.medication"); - else if (Configuration.doAutoCreate()) - this.medication = new Reference(); - return this.medication; - } - - public boolean hasMedication() { - return this.medication != null && !this.medication.isEmpty(); - } - - /** - * @param value {@link #medication} (Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) - */ - public MedicationDispenseDispenseComponent setMedication(Reference value) { - this.medication = value; - return this; - } - - /** - * @return {@link #medication} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) - */ - public Medication getMedicationTarget() { - if (this.medicationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseComponent.medication"); - else if (Configuration.doAutoCreate()) - this.medicationTarget = new Medication(); - return this.medicationTarget; - } - - /** - * @param value {@link #medication} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) - */ - public MedicationDispenseDispenseComponent setMedicationTarget(Medication value) { - this.medicationTarget = value; - return this; - } - - /** - * @return {@link #whenPrepared} (The time when the dispensed product was packaged and reviewed.). This is the underlying object with id, value and extensions. The accessor "getWhenPrepared" gives direct access to the value - */ - public DateTimeType getWhenPreparedElement() { - if (this.whenPrepared == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseComponent.whenPrepared"); - else if (Configuration.doAutoCreate()) - this.whenPrepared = new DateTimeType(); - return this.whenPrepared; - } - - public boolean hasWhenPreparedElement() { - return this.whenPrepared != null && !this.whenPrepared.isEmpty(); - } - - public boolean hasWhenPrepared() { - return this.whenPrepared != null && !this.whenPrepared.isEmpty(); - } - - /** - * @param value {@link #whenPrepared} (The time when the dispensed product was packaged and reviewed.). This is the underlying object with id, value and extensions. The accessor "getWhenPrepared" gives direct access to the value - */ - public MedicationDispenseDispenseComponent setWhenPreparedElement(DateTimeType value) { - this.whenPrepared = value; - return this; - } - - /** - * @return The time when the dispensed product was packaged and reviewed. - */ - public Date getWhenPrepared() { - return this.whenPrepared == null ? null : this.whenPrepared.getValue(); - } - - /** - * @param value The time when the dispensed product was packaged and reviewed. - */ - public MedicationDispenseDispenseComponent setWhenPrepared(Date value) { - if (value == null) - this.whenPrepared = null; - else { - if (this.whenPrepared == null) - this.whenPrepared = new DateTimeType(); - this.whenPrepared.setValue(value); - } - return this; - } - - /** - * @return {@link #whenHandedOver} (The time the dispensed product was provided to the patient or their representative.). This is the underlying object with id, value and extensions. The accessor "getWhenHandedOver" gives direct access to the value - */ - public DateTimeType getWhenHandedOverElement() { - if (this.whenHandedOver == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseComponent.whenHandedOver"); - else if (Configuration.doAutoCreate()) - this.whenHandedOver = new DateTimeType(); - return this.whenHandedOver; - } - - public boolean hasWhenHandedOverElement() { - return this.whenHandedOver != null && !this.whenHandedOver.isEmpty(); - } - - public boolean hasWhenHandedOver() { - return this.whenHandedOver != null && !this.whenHandedOver.isEmpty(); - } - - /** - * @param value {@link #whenHandedOver} (The time the dispensed product was provided to the patient or their representative.). This is the underlying object with id, value and extensions. The accessor "getWhenHandedOver" gives direct access to the value - */ - public MedicationDispenseDispenseComponent setWhenHandedOverElement(DateTimeType value) { - this.whenHandedOver = value; - return this; - } - - /** - * @return The time the dispensed product was provided to the patient or their representative. - */ - public Date getWhenHandedOver() { - return this.whenHandedOver == null ? null : this.whenHandedOver.getValue(); - } - - /** - * @param value The time the dispensed product was provided to the patient or their representative. - */ - public MedicationDispenseDispenseComponent setWhenHandedOver(Date value) { - if (value == null) - this.whenHandedOver = null; - else { - if (this.whenHandedOver == null) - this.whenHandedOver = new DateTimeType(); - this.whenHandedOver.setValue(value); - } - return this; - } - - /** - * @return {@link #destination} (Identification of the facility/location where the medication was shipped to, as part of the dispense event.) - */ - public Reference getDestination() { - if (this.destination == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseComponent.destination"); - else if (Configuration.doAutoCreate()) - this.destination = new Reference(); - return this.destination; - } - - public boolean hasDestination() { - return this.destination != null && !this.destination.isEmpty(); - } - - /** - * @param value {@link #destination} (Identification of the facility/location where the medication was shipped to, as part of the dispense event.) - */ - public MedicationDispenseDispenseComponent setDestination(Reference value) { - this.destination = value; - return this; - } - - /** - * @return {@link #destination} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identification of the facility/location where the medication was shipped to, as part of the dispense event.) - */ - public Location getDestinationTarget() { - if (this.destinationTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseComponent.destination"); - else if (Configuration.doAutoCreate()) - this.destinationTarget = new Location(); - return this.destinationTarget; - } - - /** - * @param value {@link #destination} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identification of the facility/location where the medication was shipped to, as part of the dispense event.) - */ - public MedicationDispenseDispenseComponent setDestinationTarget(Location value) { - this.destinationTarget = value; - return this; - } - - /** - * @return {@link #receiver} (Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional.) - */ - public List getReceiver() { - if (this.receiver == null) - this.receiver = new ArrayList(); - return this.receiver; - } - - public boolean hasReceiver() { - if (this.receiver == null) - return false; - for (Reference item : this.receiver) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #receiver} (Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional.) - */ - // syntactic sugar - public Reference addReceiver() { //3 - Reference t = new Reference(); - if (this.receiver == null) - this.receiver = new ArrayList(); - this.receiver.add(t); - return t; - } - - /** - * @return {@link #receiver} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional.) - */ - public List getReceiverTarget() { - if (this.receiverTarget == null) - this.receiverTarget = new ArrayList(); - return this.receiverTarget; - } - - /** - * @return {@link #dosage} (Indicates how the medication is to be used by the patient.) - */ - public List getDosage() { - if (this.dosage == null) - this.dosage = new ArrayList(); - return this.dosage; - } - - public boolean hasDosage() { - if (this.dosage == null) - return false; - for (MedicationDispenseDispenseDosageComponent item : this.dosage) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #dosage} (Indicates how the medication is to be used by the patient.) - */ - // syntactic sugar - public MedicationDispenseDispenseDosageComponent addDosage() { //3 - MedicationDispenseDispenseDosageComponent t = new MedicationDispenseDispenseDosageComponent(); - if (this.dosage == null) - this.dosage = new ArrayList(); - this.dosage.add(t); - return t; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "Identifier assigned by the dispensing facility. This is an identifier assigned outside FHIR.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("status", "code", "A code specifying the state of the dispense event.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("type", "CodeableConcept", "Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("quantity", "Quantity", "The amount of medication that has been dispensed. Includes unit of measure.", 0, java.lang.Integer.MAX_VALUE, quantity)); - childrenList.add(new Property("medication", "Reference(Medication)", "Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.", 0, java.lang.Integer.MAX_VALUE, medication)); - childrenList.add(new Property("whenPrepared", "dateTime", "The time when the dispensed product was packaged and reviewed.", 0, java.lang.Integer.MAX_VALUE, whenPrepared)); - childrenList.add(new Property("whenHandedOver", "dateTime", "The time the dispensed product was provided to the patient or their representative.", 0, java.lang.Integer.MAX_VALUE, whenHandedOver)); - childrenList.add(new Property("destination", "Reference(Location)", "Identification of the facility/location where the medication was shipped to, as part of the dispense event.", 0, java.lang.Integer.MAX_VALUE, destination)); - childrenList.add(new Property("receiver", "Reference(Patient|Practitioner)", "Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional.", 0, java.lang.Integer.MAX_VALUE, receiver)); - childrenList.add(new Property("dosage", "", "Indicates how the medication is to be used by the patient.", 0, java.lang.Integer.MAX_VALUE, dosage)); - } - - public MedicationDispenseDispenseComponent copy() { - MedicationDispenseDispenseComponent dst = new MedicationDispenseDispenseComponent(); - copyValues(dst); - dst.identifier = identifier == null ? null : identifier.copy(); - dst.status = status == null ? null : status.copy(); - dst.type = type == null ? null : type.copy(); - dst.quantity = quantity == null ? null : quantity.copy(); - dst.medication = medication == null ? null : medication.copy(); - dst.whenPrepared = whenPrepared == null ? null : whenPrepared.copy(); - dst.whenHandedOver = whenHandedOver == null ? null : whenHandedOver.copy(); - dst.destination = destination == null ? null : destination.copy(); - if (receiver != null) { - dst.receiver = new ArrayList(); - for (Reference i : receiver) - dst.receiver.add(i.copy()); - }; - if (dosage != null) { - dst.dosage = new ArrayList(); - for (MedicationDispenseDispenseDosageComponent i : dosage) - dst.dosage.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (status == null || status.isEmpty()) - && (type == null || type.isEmpty()) && (quantity == null || quantity.isEmpty()) && (medication == null || medication.isEmpty()) - && (whenPrepared == null || whenPrepared.isEmpty()) && (whenHandedOver == null || whenHandedOver.isEmpty()) - && (destination == null || destination.isEmpty()) && (receiver == null || receiver.isEmpty()) - && (dosage == null || dosage.isEmpty()); - } - - } - - @Block() - public static class MedicationDispenseDispenseDosageComponent extends BackboneElement { - /** - * Additional instructions such as "Swallow with plenty of water" which may or may not be coded. - */ - @Child(name="additionalInstructions", type={CodeableConcept.class}, order=1, min=0, max=1) - @Description(shortDefinition="E.g. 'Take with food'", formalDefinition="Additional instructions such as 'Swallow with plenty of water' which may or may not be coded." ) - protected CodeableConcept additionalInstructions; - - /** - * The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". - */ - @Child(name="schedule", type={DateTimeType.class, Period.class, Timing.class}, order=2, min=0, max=1) - @Description(shortDefinition="When medication should be administered", formalDefinition="The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'." ) - protected Type schedule; - - /** - * If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication. - */ - @Child(name="asNeeded", type={BooleanType.class, CodeableConcept.class}, order=3, min=0, max=1) - @Description(shortDefinition="Take 'as needed' f(or x)", formalDefinition="If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication." ) - protected Type asNeeded; - - /** - * A coded specification of the anatomic site where the medication first enters the body. - */ - @Child(name="site", type={CodeableConcept.class}, order=4, min=0, max=1) - @Description(shortDefinition="Body site to administer to", formalDefinition="A coded specification of the anatomic site where the medication first enters the body." ) - protected CodeableConcept site; - - /** - * A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject. - */ - @Child(name="route", type={CodeableConcept.class}, order=5, min=0, max=1) - @Description(shortDefinition="How drug should enter body", formalDefinition="A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject." ) - protected CodeableConcept route; - - /** - * A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. - -Terminologies used often pre-coordinate this term with the route and or form of administration. - */ - @Child(name="method", type={CodeableConcept.class}, order=6, min=0, max=1) - @Description(shortDefinition="Technique for administering medication", formalDefinition="A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.\n\nTerminologies used often pre-coordinate this term with the route and or form of administration." ) - protected CodeableConcept method; - - /** - * The amount of therapeutic or other substance given at one administration event. - */ - @Child(name="quantity", type={Quantity.class}, order=7, min=0, max=1) - @Description(shortDefinition="Amount of medication per dose", formalDefinition="The amount of therapeutic or other substance given at one administration event." ) - protected Quantity quantity; - - /** - * Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours. - */ - @Child(name="rate", type={Ratio.class}, order=8, min=0, max=1) - @Description(shortDefinition="Amount of medication per unit of time", formalDefinition="Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours." ) - protected Ratio rate; - - /** - * The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours. - */ - @Child(name="maxDosePerPeriod", type={Ratio.class}, order=9, min=0, max=1) - @Description(shortDefinition="Upper limit on medication per unit of time", formalDefinition="The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours." ) - protected Ratio maxDosePerPeriod; - - private static final long serialVersionUID = -677555528L; - - public MedicationDispenseDispenseDosageComponent() { - super(); - } - - /** - * @return {@link #additionalInstructions} (Additional instructions such as "Swallow with plenty of water" which may or may not be coded.) - */ - public CodeableConcept getAdditionalInstructions() { - if (this.additionalInstructions == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseDosageComponent.additionalInstructions"); - else if (Configuration.doAutoCreate()) - this.additionalInstructions = new CodeableConcept(); - return this.additionalInstructions; - } - - public boolean hasAdditionalInstructions() { - return this.additionalInstructions != null && !this.additionalInstructions.isEmpty(); - } - - /** - * @param value {@link #additionalInstructions} (Additional instructions such as "Swallow with plenty of water" which may or may not be coded.) - */ - public MedicationDispenseDispenseDosageComponent setAdditionalInstructions(CodeableConcept value) { - this.additionalInstructions = value; - return this; - } - - /** - * @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) - */ - public Type getSchedule() { - return this.schedule; - } - - /** - * @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) - */ - public DateTimeType getScheduleDateTimeType() throws Exception { - if (!(this.schedule instanceof DateTimeType)) - throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.schedule.getClass().getName()+" was encountered"); - return (DateTimeType) this.schedule; - } - - /** - * @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) - */ - public Period getSchedulePeriod() throws Exception { - if (!(this.schedule instanceof Period)) - throw new Exception("Type mismatch: the type Period was expected, but "+this.schedule.getClass().getName()+" was encountered"); - return (Period) this.schedule; - } - - /** - * @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) - */ - public Timing getScheduleTiming() throws Exception { - if (!(this.schedule instanceof Timing)) - throw new Exception("Type mismatch: the type Timing was expected, but "+this.schedule.getClass().getName()+" was encountered"); - return (Timing) this.schedule; - } - - public boolean hasSchedule() { - return this.schedule != null && !this.schedule.isEmpty(); - } - - /** - * @param value {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) - */ - public MedicationDispenseDispenseDosageComponent setSchedule(Type value) { - this.schedule = value; - return this; - } - - /** - * @return {@link #asNeeded} (If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.) - */ - public Type getAsNeeded() { - return this.asNeeded; - } - - /** - * @return {@link #asNeeded} (If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.) - */ - public BooleanType getAsNeededBooleanType() throws Exception { - if (!(this.asNeeded instanceof BooleanType)) - throw new Exception("Type mismatch: the type BooleanType was expected, but "+this.asNeeded.getClass().getName()+" was encountered"); - return (BooleanType) this.asNeeded; - } - - /** - * @return {@link #asNeeded} (If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.) - */ - public CodeableConcept getAsNeededCodeableConcept() throws Exception { - if (!(this.asNeeded instanceof CodeableConcept)) - throw new Exception("Type mismatch: the type CodeableConcept was expected, but "+this.asNeeded.getClass().getName()+" was encountered"); - return (CodeableConcept) this.asNeeded; - } - - public boolean hasAsNeeded() { - return this.asNeeded != null && !this.asNeeded.isEmpty(); - } - - /** - * @param value {@link #asNeeded} (If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.) - */ - public MedicationDispenseDispenseDosageComponent setAsNeeded(Type value) { - this.asNeeded = value; - return this; - } - - /** - * @return {@link #site} (A coded specification of the anatomic site where the medication first enters the body.) - */ - public CodeableConcept getSite() { - if (this.site == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseDosageComponent.site"); - else if (Configuration.doAutoCreate()) - this.site = new CodeableConcept(); - return this.site; - } - - public boolean hasSite() { - return this.site != null && !this.site.isEmpty(); - } - - /** - * @param value {@link #site} (A coded specification of the anatomic site where the medication first enters the body.) - */ - public MedicationDispenseDispenseDosageComponent setSite(CodeableConcept value) { - this.site = value; - return this; - } - - /** - * @return {@link #route} (A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject.) - */ - public CodeableConcept getRoute() { - if (this.route == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseDosageComponent.route"); - else if (Configuration.doAutoCreate()) - this.route = new CodeableConcept(); - return this.route; - } - - public boolean hasRoute() { - return this.route != null && !this.route.isEmpty(); - } - - /** - * @param value {@link #route} (A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject.) - */ - public MedicationDispenseDispenseDosageComponent setRoute(CodeableConcept value) { - this.route = value; - return this; - } - - /** - * @return {@link #method} (A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. - -Terminologies used often pre-coordinate this term with the route and or form of administration.) - */ - public CodeableConcept getMethod() { - if (this.method == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseDosageComponent.method"); - else if (Configuration.doAutoCreate()) - this.method = new CodeableConcept(); - return this.method; - } - - public boolean hasMethod() { - return this.method != null && !this.method.isEmpty(); - } - - /** - * @param value {@link #method} (A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. - -Terminologies used often pre-coordinate this term with the route and or form of administration.) - */ - public MedicationDispenseDispenseDosageComponent setMethod(CodeableConcept value) { - this.method = value; - return this; - } - - /** - * @return {@link #quantity} (The amount of therapeutic or other substance given at one administration event.) - */ - public Quantity getQuantity() { - if (this.quantity == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseDosageComponent.quantity"); - else if (Configuration.doAutoCreate()) - this.quantity = new Quantity(); - return this.quantity; - } - - public boolean hasQuantity() { - return this.quantity != null && !this.quantity.isEmpty(); - } - - /** - * @param value {@link #quantity} (The amount of therapeutic or other substance given at one administration event.) - */ - public MedicationDispenseDispenseDosageComponent setQuantity(Quantity value) { - this.quantity = value; - return this; - } - - /** - * @return {@link #rate} (Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.) - */ - public Ratio getRate() { - if (this.rate == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseDosageComponent.rate"); - else if (Configuration.doAutoCreate()) - this.rate = new Ratio(); - return this.rate; - } - - public boolean hasRate() { - return this.rate != null && !this.rate.isEmpty(); - } - - /** - * @param value {@link #rate} (Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.) - */ - public MedicationDispenseDispenseDosageComponent setRate(Ratio value) { - this.rate = value; - return this; - } - - /** - * @return {@link #maxDosePerPeriod} (The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours.) - */ - public Ratio getMaxDosePerPeriod() { - if (this.maxDosePerPeriod == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseDispenseDosageComponent.maxDosePerPeriod"); - else if (Configuration.doAutoCreate()) - this.maxDosePerPeriod = new Ratio(); - return this.maxDosePerPeriod; - } - - public boolean hasMaxDosePerPeriod() { - return this.maxDosePerPeriod != null && !this.maxDosePerPeriod.isEmpty(); - } - - /** - * @param value {@link #maxDosePerPeriod} (The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours.) - */ - public MedicationDispenseDispenseDosageComponent setMaxDosePerPeriod(Ratio value) { - this.maxDosePerPeriod = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("additionalInstructions", "CodeableConcept", "Additional instructions such as 'Swallow with plenty of water' which may or may not be coded.", 0, java.lang.Integer.MAX_VALUE, additionalInstructions)); - childrenList.add(new Property("schedule[x]", "dateTime|Period|Timing", "The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'.", 0, java.lang.Integer.MAX_VALUE, schedule)); - childrenList.add(new Property("asNeeded[x]", "boolean|CodeableConcept", "If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.", 0, java.lang.Integer.MAX_VALUE, asNeeded)); - childrenList.add(new Property("site", "CodeableConcept", "A coded specification of the anatomic site where the medication first enters the body.", 0, java.lang.Integer.MAX_VALUE, site)); - childrenList.add(new Property("route", "CodeableConcept", "A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject.", 0, java.lang.Integer.MAX_VALUE, route)); - childrenList.add(new Property("method", "CodeableConcept", "A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.\n\nTerminologies used often pre-coordinate this term with the route and or form of administration.", 0, java.lang.Integer.MAX_VALUE, method)); - childrenList.add(new Property("quantity", "Quantity", "The amount of therapeutic or other substance given at one administration event.", 0, java.lang.Integer.MAX_VALUE, quantity)); - childrenList.add(new Property("rate", "Ratio", "Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.", 0, java.lang.Integer.MAX_VALUE, rate)); - childrenList.add(new Property("maxDosePerPeriod", "Ratio", "The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours.", 0, java.lang.Integer.MAX_VALUE, maxDosePerPeriod)); - } - - public MedicationDispenseDispenseDosageComponent copy() { - MedicationDispenseDispenseDosageComponent dst = new MedicationDispenseDispenseDosageComponent(); - copyValues(dst); - dst.additionalInstructions = additionalInstructions == null ? null : additionalInstructions.copy(); - dst.schedule = schedule == null ? null : schedule.copy(); - dst.asNeeded = asNeeded == null ? null : asNeeded.copy(); - dst.site = site == null ? null : site.copy(); - dst.route = route == null ? null : route.copy(); - dst.method = method == null ? null : method.copy(); - dst.quantity = quantity == null ? null : quantity.copy(); - dst.rate = rate == null ? null : rate.copy(); - dst.maxDosePerPeriod = maxDosePerPeriod == null ? null : maxDosePerPeriod.copy(); - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (additionalInstructions == null || additionalInstructions.isEmpty()) - && (schedule == null || schedule.isEmpty()) && (asNeeded == null || asNeeded.isEmpty()) && (site == null || site.isEmpty()) - && (route == null || route.isEmpty()) && (method == null || method.isEmpty()) && (quantity == null || quantity.isEmpty()) - && (rate == null || rate.isEmpty()) && (maxDosePerPeriod == null || maxDosePerPeriod.isEmpty()) - ; - } - - } - - @Block() - public static class MedicationDispenseSubstitutionComponent extends BackboneElement { - /** - * A code signifying whether a different drug was dispensed from what was prescribed. - */ - @Child(name="type", type={CodeableConcept.class}, order=1, min=1, max=1) - @Description(shortDefinition="Type of substitiution", formalDefinition="A code signifying whether a different drug was dispensed from what was prescribed." ) - protected CodeableConcept type; - - /** - * Indicates the reason for the substitution of (or lack of substitution) from what was prescribed. - */ - @Child(name="reason", type={CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Why was substitution made", formalDefinition="Indicates the reason for the substitution of (or lack of substitution) from what was prescribed." ) - protected List reason; - - /** - * The person or organization that has primary responsibility for the substitution. - */ - @Child(name="responsibleParty", type={Practitioner.class}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Who is responsible for the substitution", formalDefinition="The person or organization that has primary responsibility for the substitution." ) - protected List responsibleParty; - /** - * The actual objects that are the target of the reference (The person or organization that has primary responsibility for the substitution.) - */ - protected List responsiblePartyTarget; - - - private static final long serialVersionUID = 1218245830L; - - public MedicationDispenseSubstitutionComponent() { - super(); - } - - public MedicationDispenseSubstitutionComponent(CodeableConcept type) { - super(); - this.type = type; - } - - /** - * @return {@link #type} (A code signifying whether a different drug was dispensed from what was prescribed.) - */ - public CodeableConcept getType() { - if (this.type == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispenseSubstitutionComponent.type"); - else if (Configuration.doAutoCreate()) - this.type = new CodeableConcept(); - return this.type; - } - - public boolean hasType() { - return this.type != null && !this.type.isEmpty(); - } - - /** - * @param value {@link #type} (A code signifying whether a different drug was dispensed from what was prescribed.) - */ - public MedicationDispenseSubstitutionComponent setType(CodeableConcept value) { - this.type = value; - return this; - } - - /** - * @return {@link #reason} (Indicates the reason for the substitution of (or lack of substitution) from what was prescribed.) - */ - public List getReason() { - if (this.reason == null) - this.reason = new ArrayList(); - return this.reason; - } - - public boolean hasReason() { - if (this.reason == null) - return false; - for (CodeableConcept item : this.reason) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #reason} (Indicates the reason for the substitution of (or lack of substitution) from what was prescribed.) - */ - // syntactic sugar - public CodeableConcept addReason() { //3 - CodeableConcept t = new CodeableConcept(); - if (this.reason == null) - this.reason = new ArrayList(); - this.reason.add(t); - return t; - } - - /** - * @return {@link #responsibleParty} (The person or organization that has primary responsibility for the substitution.) - */ - public List getResponsibleParty() { - if (this.responsibleParty == null) - this.responsibleParty = new ArrayList(); - return this.responsibleParty; - } - - public boolean hasResponsibleParty() { - if (this.responsibleParty == null) - return false; - for (Reference item : this.responsibleParty) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #responsibleParty} (The person or organization that has primary responsibility for the substitution.) - */ - // syntactic sugar - public Reference addResponsibleParty() { //3 - Reference t = new Reference(); - if (this.responsibleParty == null) - this.responsibleParty = new ArrayList(); - this.responsibleParty.add(t); - return t; - } - - /** - * @return {@link #responsibleParty} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The person or organization that has primary responsibility for the substitution.) - */ - public List getResponsiblePartyTarget() { - if (this.responsiblePartyTarget == null) - this.responsiblePartyTarget = new ArrayList(); - return this.responsiblePartyTarget; - } - - // syntactic sugar - /** - * @return {@link #responsibleParty} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The person or organization that has primary responsibility for the substitution.) - */ - public Practitioner addResponsiblePartyTarget() { - Practitioner r = new Practitioner(); - if (this.responsiblePartyTarget == null) - this.responsiblePartyTarget = new ArrayList(); - this.responsiblePartyTarget.add(r); - return r; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("type", "CodeableConcept", "A code signifying whether a different drug was dispensed from what was prescribed.", 0, java.lang.Integer.MAX_VALUE, type)); - childrenList.add(new Property("reason", "CodeableConcept", "Indicates the reason for the substitution of (or lack of substitution) from what was prescribed.", 0, java.lang.Integer.MAX_VALUE, reason)); - childrenList.add(new Property("responsibleParty", "Reference(Practitioner)", "The person or organization that has primary responsibility for the substitution.", 0, java.lang.Integer.MAX_VALUE, responsibleParty)); - } - - public MedicationDispenseSubstitutionComponent copy() { - MedicationDispenseSubstitutionComponent dst = new MedicationDispenseSubstitutionComponent(); - copyValues(dst); - dst.type = type == null ? null : type.copy(); - if (reason != null) { - dst.reason = new ArrayList(); - for (CodeableConcept i : reason) - dst.reason.add(i.copy()); - }; - if (responsibleParty != null) { - dst.responsibleParty = new ArrayList(); - for (Reference i : responsibleParty) - dst.responsibleParty.add(i.copy()); - }; - return dst; - } - - public boolean isEmpty() { - return super.isEmpty() && (type == null || type.isEmpty()) && (reason == null || reason.isEmpty()) - && (responsibleParty == null || responsibleParty.isEmpty()); - } - - } - - /** - * Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIR. - */ - @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=1) - @Description(shortDefinition="External identifier", formalDefinition="Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIR." ) - protected Identifier identifier; - - /** - * A code specifying the state of the set of dispense events. - */ - @Child(name="status", type={CodeType.class}, order=0, min=0, max=1) - @Description(shortDefinition="in progress | on hold | completed | entered in error | stopped", formalDefinition="A code specifying the state of the set of dispense events." ) - protected Enumeration status; - - /** - * A link to a resource representing the person to whom the medication will be given. - */ - @Child(name="patient", type={Patient.class}, order=1, min=0, max=1) - @Description(shortDefinition="Who the dispense is for", formalDefinition="A link to a resource representing the person to whom the medication will be given." ) - protected Reference patient; - - /** - * The actual object that is the target of the reference (A link to a resource representing the person to whom the medication will be given.) - */ - protected Patient patientTarget; - - /** - * The individual responsible for dispensing the medication. - */ - @Child(name="dispenser", type={Practitioner.class}, order=2, min=0, max=1) - @Description(shortDefinition="Practitioner responsible for dispensing medication", formalDefinition="The individual responsible for dispensing the medication." ) - protected Reference dispenser; - - /** - * The actual object that is the target of the reference (The individual responsible for dispensing the medication.) - */ - protected Practitioner dispenserTarget; - - /** - * Indicates the medication order that is being dispensed against. - */ - @Child(name="authorizingPrescription", type={MedicationPrescription.class}, order=3, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Medication order that authorizes the dispense", formalDefinition="Indicates the medication order that is being dispensed against." ) - protected List authorizingPrescription; - /** - * The actual objects that are the target of the reference (Indicates the medication order that is being dispensed against.) - */ - protected List authorizingPrescriptionTarget; - - - /** - * Indicates the details of the dispense event such as the days supply and quantity of medication dispensed. - */ - @Child(name="dispense", type={}, order=4, min=0, max=Child.MAX_UNLIMITED) - @Description(shortDefinition="Details for individual dispensed medicationdetails", formalDefinition="Indicates the details of the dispense event such as the days supply and quantity of medication dispensed." ) - protected List dispense; - - /** - * Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and why. - */ - @Child(name="substitution", type={}, order=5, min=0, max=1) - @Description(shortDefinition="Deals with substitution of one medicine for another", formalDefinition="Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and why." ) - protected MedicationDispenseSubstitutionComponent substitution; - - private static final long serialVersionUID = -1188892461L; - - public MedicationDispense() { - super(); - } - - /** - * @return {@link #identifier} (Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIR.) - */ - public Identifier getIdentifier() { - if (this.identifier == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispense.identifier"); - else if (Configuration.doAutoCreate()) - this.identifier = new Identifier(); - return this.identifier; - } - - public boolean hasIdentifier() { - return this.identifier != null && !this.identifier.isEmpty(); - } - - /** - * @param value {@link #identifier} (Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIR.) - */ - public MedicationDispense setIdentifier(Identifier value) { - this.identifier = value; - return this; - } - - /** - * @return {@link #status} (A code specifying the state of the set of dispense events.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public Enumeration getStatusElement() { - if (this.status == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispense.status"); - else if (Configuration.doAutoCreate()) - this.status = new Enumeration(); - return this.status; - } - - public boolean hasStatusElement() { - return this.status != null && !this.status.isEmpty(); - } - - public boolean hasStatus() { - return this.status != null && !this.status.isEmpty(); - } - - /** - * @param value {@link #status} (A code specifying the state of the set of dispense events.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value - */ - public MedicationDispense setStatusElement(Enumeration value) { - this.status = value; - return this; - } - - /** - * @return A code specifying the state of the set of dispense events. - */ - public MedicationDispenseStatus getStatus() { - return this.status == null ? null : this.status.getValue(); - } - - /** - * @param value A code specifying the state of the set of dispense events. - */ - public MedicationDispense setStatus(MedicationDispenseStatus value) { - if (value == null) - this.status = null; - else { - if (this.status == null) - this.status = new Enumeration(MedicationDispenseStatus.ENUM_FACTORY); - this.status.setValue(value); - } - return this; - } - - /** - * @return {@link #patient} (A link to a resource representing the person to whom the medication will be given.) - */ - public Reference getPatient() { - if (this.patient == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispense.patient"); - else if (Configuration.doAutoCreate()) - this.patient = new Reference(); - return this.patient; - } - - public boolean hasPatient() { - return this.patient != null && !this.patient.isEmpty(); - } - - /** - * @param value {@link #patient} (A link to a resource representing the person to whom the medication will be given.) - */ - public MedicationDispense setPatient(Reference value) { - this.patient = value; - return this; - } - - /** - * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A link to a resource representing the person to whom the medication will be given.) - */ - public Patient getPatientTarget() { - if (this.patientTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispense.patient"); - else if (Configuration.doAutoCreate()) - this.patientTarget = new Patient(); - return this.patientTarget; - } - - /** - * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A link to a resource representing the person to whom the medication will be given.) - */ - public MedicationDispense setPatientTarget(Patient value) { - this.patientTarget = value; - return this; - } - - /** - * @return {@link #dispenser} (The individual responsible for dispensing the medication.) - */ - public Reference getDispenser() { - if (this.dispenser == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispense.dispenser"); - else if (Configuration.doAutoCreate()) - this.dispenser = new Reference(); - return this.dispenser; - } - - public boolean hasDispenser() { - return this.dispenser != null && !this.dispenser.isEmpty(); - } - - /** - * @param value {@link #dispenser} (The individual responsible for dispensing the medication.) - */ - public MedicationDispense setDispenser(Reference value) { - this.dispenser = value; - return this; - } - - /** - * @return {@link #dispenser} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The individual responsible for dispensing the medication.) - */ - public Practitioner getDispenserTarget() { - if (this.dispenserTarget == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispense.dispenser"); - else if (Configuration.doAutoCreate()) - this.dispenserTarget = new Practitioner(); - return this.dispenserTarget; - } - - /** - * @param value {@link #dispenser} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The individual responsible for dispensing the medication.) - */ - public MedicationDispense setDispenserTarget(Practitioner value) { - this.dispenserTarget = value; - return this; - } - - /** - * @return {@link #authorizingPrescription} (Indicates the medication order that is being dispensed against.) - */ - public List getAuthorizingPrescription() { - if (this.authorizingPrescription == null) - this.authorizingPrescription = new ArrayList(); - return this.authorizingPrescription; - } - - public boolean hasAuthorizingPrescription() { - if (this.authorizingPrescription == null) - return false; - for (Reference item : this.authorizingPrescription) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #authorizingPrescription} (Indicates the medication order that is being dispensed against.) - */ - // syntactic sugar - public Reference addAuthorizingPrescription() { //3 - Reference t = new Reference(); - if (this.authorizingPrescription == null) - this.authorizingPrescription = new ArrayList(); - this.authorizingPrescription.add(t); - return t; - } - - /** - * @return {@link #authorizingPrescription} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Indicates the medication order that is being dispensed against.) - */ - public List getAuthorizingPrescriptionTarget() { - if (this.authorizingPrescriptionTarget == null) - this.authorizingPrescriptionTarget = new ArrayList(); - return this.authorizingPrescriptionTarget; - } - - // syntactic sugar - /** - * @return {@link #authorizingPrescription} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Indicates the medication order that is being dispensed against.) - */ - public MedicationPrescription addAuthorizingPrescriptionTarget() { - MedicationPrescription r = new MedicationPrescription(); - if (this.authorizingPrescriptionTarget == null) - this.authorizingPrescriptionTarget = new ArrayList(); - this.authorizingPrescriptionTarget.add(r); - return r; - } - - /** - * @return {@link #dispense} (Indicates the details of the dispense event such as the days supply and quantity of medication dispensed.) - */ - public List getDispense() { - if (this.dispense == null) - this.dispense = new ArrayList(); - return this.dispense; - } - - public boolean hasDispense() { - if (this.dispense == null) - return false; - for (MedicationDispenseDispenseComponent item : this.dispense) - if (!item.isEmpty()) - return true; - return false; - } - - /** - * @return {@link #dispense} (Indicates the details of the dispense event such as the days supply and quantity of medication dispensed.) - */ - // syntactic sugar - public MedicationDispenseDispenseComponent addDispense() { //3 - MedicationDispenseDispenseComponent t = new MedicationDispenseDispenseComponent(); - if (this.dispense == null) - this.dispense = new ArrayList(); - this.dispense.add(t); - return t; - } - - /** - * @return {@link #substitution} (Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and why.) - */ - public MedicationDispenseSubstitutionComponent getSubstitution() { - if (this.substitution == null) - if (Configuration.errorOnAutoCreate()) - throw new Error("Attempt to auto-create MedicationDispense.substitution"); - else if (Configuration.doAutoCreate()) - this.substitution = new MedicationDispenseSubstitutionComponent(); - return this.substitution; - } - - public boolean hasSubstitution() { - return this.substitution != null && !this.substitution.isEmpty(); - } - - /** - * @param value {@link #substitution} (Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and why.) - */ - public MedicationDispense setSubstitution(MedicationDispenseSubstitutionComponent value) { - this.substitution = value; - return this; - } - - protected void listChildren(List childrenList) { - super.listChildren(childrenList); - childrenList.add(new Property("identifier", "Identifier", "Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIR.", 0, java.lang.Integer.MAX_VALUE, identifier)); - childrenList.add(new Property("status", "code", "A code specifying the state of the set of dispense events.", 0, java.lang.Integer.MAX_VALUE, status)); - childrenList.add(new Property("patient", "Reference(Patient)", "A link to a resource representing the person to whom the medication will be given.", 0, java.lang.Integer.MAX_VALUE, patient)); - childrenList.add(new Property("dispenser", "Reference(Practitioner)", "The individual responsible for dispensing the medication.", 0, java.lang.Integer.MAX_VALUE, dispenser)); - childrenList.add(new Property("authorizingPrescription", "Reference(MedicationPrescription)", "Indicates the medication order that is being dispensed against.", 0, java.lang.Integer.MAX_VALUE, authorizingPrescription)); - childrenList.add(new Property("dispense", "", "Indicates the details of the dispense event such as the days supply and quantity of medication dispensed.", 0, java.lang.Integer.MAX_VALUE, dispense)); - childrenList.add(new Property("substitution", "", "Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and why.", 0, java.lang.Integer.MAX_VALUE, substitution)); - } - - public MedicationDispense copy() { - MedicationDispense dst = new MedicationDispense(); - copyValues(dst); - dst.identifier = identifier == null ? null : identifier.copy(); - dst.status = status == null ? null : status.copy(); - dst.patient = patient == null ? null : patient.copy(); - dst.dispenser = dispenser == null ? null : dispenser.copy(); - if (authorizingPrescription != null) { - dst.authorizingPrescription = new ArrayList(); - for (Reference i : authorizingPrescription) - dst.authorizingPrescription.add(i.copy()); - }; - if (dispense != null) { - dst.dispense = new ArrayList(); - for (MedicationDispenseDispenseComponent i : dispense) - dst.dispense.add(i.copy()); - }; - dst.substitution = substitution == null ? null : substitution.copy(); - return dst; - } - - protected MedicationDispense typedCopy() { - return copy(); - } - - public boolean isEmpty() { - return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (status == null || status.isEmpty()) - && (patient == null || patient.isEmpty()) && (dispenser == null || dispenser.isEmpty()) && (authorizingPrescription == null || authorizingPrescription.isEmpty()) - && (dispense == null || dispense.isEmpty()) && (substitution == null || substitution.isEmpty()) - ; - } - - @Override - public ResourceType getResourceType() { - return ResourceType.MedicationDispense; - } - - @SearchParamDefinition(name="medication", path="MedicationDispense.dispense.medication", description="Returns dispenses of this medicine", type="reference" ) - public static final String SP_MEDICATION = "medication"; - @SearchParamDefinition(name="patient", path="MedicationDispense.patient", description="The identity of a patient to list dispenses for", type="reference" ) - public static final String SP_PATIENT = "patient"; - @SearchParamDefinition(name="status", path="MedicationDispense.dispense.status", description="Status of the dispense", type="token" ) - public static final String SP_STATUS = "status"; - @SearchParamDefinition(name="prescription", path="MedicationDispense.authorizingPrescription", description="The identity of a prescription to list dispenses from", type="reference" ) - public static final String SP_PRESCRIPTION = "prescription"; - @SearchParamDefinition(name="responsibleparty", path="MedicationDispense.substitution.responsibleParty", description="Return all dispenses with the specified responsible party", type="reference" ) - public static final String SP_RESPONSIBLEPARTY = "responsibleparty"; - @SearchParamDefinition(name="dispenser", path="MedicationDispense.dispenser", description="Return all dispenses performed by a specific indiividual", type="reference" ) - public static final String SP_DISPENSER = "dispenser"; - @SearchParamDefinition(name="type", path="MedicationDispense.dispense.type", description="Return all dispenses of a specific type", type="token" ) - public static final String SP_TYPE = "type"; - @SearchParamDefinition(name="identifier", path="MedicationDispense.identifier", description="Return dispenses with this external identity", type="token" ) - public static final String SP_IDENTIFIER = "identifier"; - @SearchParamDefinition(name="whenprepared", path="MedicationDispense.dispense.whenPrepared", description="Date when medication prepared", type="date" ) - public static final String SP_WHENPREPARED = "whenprepared"; - @SearchParamDefinition(name="whenhandedover", path="MedicationDispense.dispense.whenHandedOver", description="Date when medication handed over to patient (outpatient setting), or supplied to ward or clinic (inpatient setting)", type="date" ) - public static final String SP_WHENHANDEDOVER = "whenhandedover"; - @SearchParamDefinition(name="destination", path="MedicationDispense.dispense.destination", description="Return dispenses that should be sent to a secific destination", type="reference" ) - public static final String SP_DESTINATION = "destination"; - -} - +package org.hl7.fhir.instance.model; + +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of HL7 nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +*/ + +// Generated on Sat, Feb 14, 2015 16:12-0500 for FHIR v0.4.0 + +import java.util.*; + +import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.instance.model.annotations.ResourceDef; +import org.hl7.fhir.instance.model.annotations.SearchParamDefinition; +import org.hl7.fhir.instance.model.annotations.Block; +import org.hl7.fhir.instance.model.annotations.Child; +import org.hl7.fhir.instance.model.annotations.Description; +/** + * Dispensing a medication to a named patient. This includes a description of the supply provided and the instructions for administering the medication. + */ +@ResourceDef(name="MedicationDispense", profile="http://hl7.org/fhir/Profile/MedicationDispense") +public class MedicationDispense extends DomainResource { + + public enum MedicationDispenseStatus { + /** + * The dispense has started but has not yet completed. + */ + INPROGRESS, + /** + * Actions implied by the administration have been temporarily halted, but are expected to continue later. May also be called "suspended". + */ + ONHOLD, + /** + * All actions that are implied by the dispense have occurred. + */ + COMPLETED, + /** + * The dispense was entered in error and therefore nullified. + */ + ENTEREDINERROR, + /** + * Actions implied by the dispense have been permanently halted, before all of them occurred. + */ + STOPPED, + /** + * added to help the parsers + */ + NULL; + public static MedicationDispenseStatus fromCode(String codeString) throws Exception { + if (codeString == null || "".equals(codeString)) + return null; + if ("in-progress".equals(codeString)) + return INPROGRESS; + if ("on-hold".equals(codeString)) + return ONHOLD; + if ("completed".equals(codeString)) + return COMPLETED; + if ("entered-in-error".equals(codeString)) + return ENTEREDINERROR; + if ("stopped".equals(codeString)) + return STOPPED; + throw new Exception("Unknown MedicationDispenseStatus code '"+codeString+"'"); + } + public String toCode() { + switch (this) { + case INPROGRESS: return "in-progress"; + case ONHOLD: return "on-hold"; + case COMPLETED: return "completed"; + case ENTEREDINERROR: return "entered-in-error"; + case STOPPED: return "stopped"; + default: return "?"; + } + } + public String getSystem() { + switch (this) { + case INPROGRESS: return ""; + case ONHOLD: return ""; + case COMPLETED: return ""; + case ENTEREDINERROR: return ""; + case STOPPED: return ""; + default: return "?"; + } + } + public String getDefinition() { + switch (this) { + case INPROGRESS: return "The dispense has started but has not yet completed."; + case ONHOLD: return "Actions implied by the administration have been temporarily halted, but are expected to continue later. May also be called 'suspended'."; + case COMPLETED: return "All actions that are implied by the dispense have occurred."; + case ENTEREDINERROR: return "The dispense was entered in error and therefore nullified."; + case STOPPED: return "Actions implied by the dispense have been permanently halted, before all of them occurred."; + default: return "?"; + } + } + public String getDisplay() { + switch (this) { + case INPROGRESS: return "in-progress"; + case ONHOLD: return "on-hold"; + case COMPLETED: return "completed"; + case ENTEREDINERROR: return "entered-in-error"; + case STOPPED: return "stopped"; + default: return "?"; + } + } + } + + public static class MedicationDispenseStatusEnumFactory implements EnumFactory { + public MedicationDispenseStatus fromCode(String codeString) throws IllegalArgumentException { + if (codeString == null || "".equals(codeString)) + if (codeString == null || "".equals(codeString)) + return null; + if ("in-progress".equals(codeString)) + return MedicationDispenseStatus.INPROGRESS; + if ("on-hold".equals(codeString)) + return MedicationDispenseStatus.ONHOLD; + if ("completed".equals(codeString)) + return MedicationDispenseStatus.COMPLETED; + if ("entered-in-error".equals(codeString)) + return MedicationDispenseStatus.ENTEREDINERROR; + if ("stopped".equals(codeString)) + return MedicationDispenseStatus.STOPPED; + throw new IllegalArgumentException("Unknown MedicationDispenseStatus code '"+codeString+"'"); + } + public String toCode(MedicationDispenseStatus code) { + if (code == MedicationDispenseStatus.INPROGRESS) + return "in-progress"; + if (code == MedicationDispenseStatus.ONHOLD) + return "on-hold"; + if (code == MedicationDispenseStatus.COMPLETED) + return "completed"; + if (code == MedicationDispenseStatus.ENTEREDINERROR) + return "entered-in-error"; + if (code == MedicationDispenseStatus.STOPPED) + return "stopped"; + return "?"; + } + } + + @Block() + public static class MedicationDispenseDosageInstructionComponent extends BackboneElement { + /** + * Additional instructions such as "Swallow with plenty of water" which may or may not be coded. + */ + @Child(name="additionalInstructions", type={CodeableConcept.class}, order=1, min=0, max=1) + @Description(shortDefinition="E.g. 'Take with food'", formalDefinition="Additional instructions such as 'Swallow with plenty of water' which may or may not be coded." ) + protected CodeableConcept additionalInstructions; + + /** + * The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". + */ + @Child(name="schedule", type={DateTimeType.class, Period.class, Timing.class}, order=2, min=0, max=1) + @Description(shortDefinition="When medication should be administered", formalDefinition="The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'." ) + protected Type schedule; + + /** + * If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication. + */ + @Child(name="asNeeded", type={BooleanType.class, CodeableConcept.class}, order=3, min=0, max=1) + @Description(shortDefinition="Take 'as needed' f(or x)", formalDefinition="If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication." ) + protected Type asNeeded; + + /** + * A coded specification of the anatomic site where the medication first enters the body. + */ + @Child(name="site", type={CodeableConcept.class}, order=4, min=0, max=1) + @Description(shortDefinition="Body site to administer to", formalDefinition="A coded specification of the anatomic site where the medication first enters the body." ) + protected CodeableConcept site; + + /** + * A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject. + */ + @Child(name="route", type={CodeableConcept.class}, order=5, min=0, max=1) + @Description(shortDefinition="How drug should enter body", formalDefinition="A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject." ) + protected CodeableConcept route; + + /** + * A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration. + */ + @Child(name="method", type={CodeableConcept.class}, order=6, min=0, max=1) + @Description(shortDefinition="Technique for administering medication", formalDefinition="A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.\r\rTerminologies used often pre-coordinate this term with the route and or form of administration." ) + protected CodeableConcept method; + + /** + * The amount of therapeutic or other substance given at one administration event. + */ + @Child(name="dose", type={Range.class, Quantity.class}, order=7, min=0, max=1) + @Description(shortDefinition="Amount of medication per dose", formalDefinition="The amount of therapeutic or other substance given at one administration event." ) + protected Type dose; + + /** + * Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours. + */ + @Child(name="rate", type={Ratio.class}, order=8, min=0, max=1) + @Description(shortDefinition="Amount of medication per unit of time", formalDefinition="Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours." ) + protected Ratio rate; + + /** + * The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours. + */ + @Child(name="maxDosePerPeriod", type={Ratio.class}, order=9, min=0, max=1) + @Description(shortDefinition="Upper limit on medication per unit of time", formalDefinition="The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours." ) + protected Ratio maxDosePerPeriod; + + private static final long serialVersionUID = -1523433515L; + + public MedicationDispenseDosageInstructionComponent() { + super(); + } + + /** + * @return {@link #additionalInstructions} (Additional instructions such as "Swallow with plenty of water" which may or may not be coded.) + */ + public CodeableConcept getAdditionalInstructions() { + if (this.additionalInstructions == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispenseDosageInstructionComponent.additionalInstructions"); + else if (Configuration.doAutoCreate()) + this.additionalInstructions = new CodeableConcept(); // cc + return this.additionalInstructions; + } + + public boolean hasAdditionalInstructions() { + return this.additionalInstructions != null && !this.additionalInstructions.isEmpty(); + } + + /** + * @param value {@link #additionalInstructions} (Additional instructions such as "Swallow with plenty of water" which may or may not be coded.) + */ + public MedicationDispenseDosageInstructionComponent setAdditionalInstructions(CodeableConcept value) { + this.additionalInstructions = value; + return this; + } + + /** + * @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) + */ + public Type getSchedule() { + return this.schedule; + } + + /** + * @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) + */ + public DateTimeType getScheduleDateTimeType() throws Exception { + if (!(this.schedule instanceof DateTimeType)) + throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.schedule.getClass().getName()+" was encountered"); + return (DateTimeType) this.schedule; + } + + /** + * @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) + */ + public Period getSchedulePeriod() throws Exception { + if (!(this.schedule instanceof Period)) + throw new Exception("Type mismatch: the type Period was expected, but "+this.schedule.getClass().getName()+" was encountered"); + return (Period) this.schedule; + } + + /** + * @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) + */ + public Timing getScheduleTiming() throws Exception { + if (!(this.schedule instanceof Timing)) + throw new Exception("Type mismatch: the type Timing was expected, but "+this.schedule.getClass().getName()+" was encountered"); + return (Timing) this.schedule; + } + + public boolean hasSchedule() { + return this.schedule != null && !this.schedule.isEmpty(); + } + + /** + * @param value {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".) + */ + public MedicationDispenseDosageInstructionComponent setSchedule(Type value) { + this.schedule = value; + return this; + } + + /** + * @return {@link #asNeeded} (If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.) + */ + public Type getAsNeeded() { + return this.asNeeded; + } + + /** + * @return {@link #asNeeded} (If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.) + */ + public BooleanType getAsNeededBooleanType() throws Exception { + if (!(this.asNeeded instanceof BooleanType)) + throw new Exception("Type mismatch: the type BooleanType was expected, but "+this.asNeeded.getClass().getName()+" was encountered"); + return (BooleanType) this.asNeeded; + } + + /** + * @return {@link #asNeeded} (If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.) + */ + public CodeableConcept getAsNeededCodeableConcept() throws Exception { + if (!(this.asNeeded instanceof CodeableConcept)) + throw new Exception("Type mismatch: the type CodeableConcept was expected, but "+this.asNeeded.getClass().getName()+" was encountered"); + return (CodeableConcept) this.asNeeded; + } + + public boolean hasAsNeeded() { + return this.asNeeded != null && !this.asNeeded.isEmpty(); + } + + /** + * @param value {@link #asNeeded} (If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.) + */ + public MedicationDispenseDosageInstructionComponent setAsNeeded(Type value) { + this.asNeeded = value; + return this; + } + + /** + * @return {@link #site} (A coded specification of the anatomic site where the medication first enters the body.) + */ + public CodeableConcept getSite() { + if (this.site == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispenseDosageInstructionComponent.site"); + else if (Configuration.doAutoCreate()) + this.site = new CodeableConcept(); // cc + return this.site; + } + + public boolean hasSite() { + return this.site != null && !this.site.isEmpty(); + } + + /** + * @param value {@link #site} (A coded specification of the anatomic site where the medication first enters the body.) + */ + public MedicationDispenseDosageInstructionComponent setSite(CodeableConcept value) { + this.site = value; + return this; + } + + /** + * @return {@link #route} (A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject.) + */ + public CodeableConcept getRoute() { + if (this.route == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispenseDosageInstructionComponent.route"); + else if (Configuration.doAutoCreate()) + this.route = new CodeableConcept(); // cc + return this.route; + } + + public boolean hasRoute() { + return this.route != null && !this.route.isEmpty(); + } + + /** + * @param value {@link #route} (A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject.) + */ + public MedicationDispenseDosageInstructionComponent setRoute(CodeableConcept value) { + this.route = value; + return this; + } + + /** + * @return {@link #method} (A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration.) + */ + public CodeableConcept getMethod() { + if (this.method == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispenseDosageInstructionComponent.method"); + else if (Configuration.doAutoCreate()) + this.method = new CodeableConcept(); // cc + return this.method; + } + + public boolean hasMethod() { + return this.method != null && !this.method.isEmpty(); + } + + /** + * @param value {@link #method} (A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration.) + */ + public MedicationDispenseDosageInstructionComponent setMethod(CodeableConcept value) { + this.method = value; + return this; + } + + /** + * @return {@link #dose} (The amount of therapeutic or other substance given at one administration event.) + */ + public Type getDose() { + return this.dose; + } + + /** + * @return {@link #dose} (The amount of therapeutic or other substance given at one administration event.) + */ + public Range getDoseRange() throws Exception { + if (!(this.dose instanceof Range)) + throw new Exception("Type mismatch: the type Range was expected, but "+this.dose.getClass().getName()+" was encountered"); + return (Range) this.dose; + } + + /** + * @return {@link #dose} (The amount of therapeutic or other substance given at one administration event.) + */ + public Quantity getDoseQuantity() throws Exception { + if (!(this.dose instanceof Quantity)) + throw new Exception("Type mismatch: the type Quantity was expected, but "+this.dose.getClass().getName()+" was encountered"); + return (Quantity) this.dose; + } + + public boolean hasDose() { + return this.dose != null && !this.dose.isEmpty(); + } + + /** + * @param value {@link #dose} (The amount of therapeutic or other substance given at one administration event.) + */ + public MedicationDispenseDosageInstructionComponent setDose(Type value) { + this.dose = value; + return this; + } + + /** + * @return {@link #rate} (Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.) + */ + public Ratio getRate() { + if (this.rate == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispenseDosageInstructionComponent.rate"); + else if (Configuration.doAutoCreate()) + this.rate = new Ratio(); // cc + return this.rate; + } + + public boolean hasRate() { + return this.rate != null && !this.rate.isEmpty(); + } + + /** + * @param value {@link #rate} (Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.) + */ + public MedicationDispenseDosageInstructionComponent setRate(Ratio value) { + this.rate = value; + return this; + } + + /** + * @return {@link #maxDosePerPeriod} (The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours.) + */ + public Ratio getMaxDosePerPeriod() { + if (this.maxDosePerPeriod == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispenseDosageInstructionComponent.maxDosePerPeriod"); + else if (Configuration.doAutoCreate()) + this.maxDosePerPeriod = new Ratio(); // cc + return this.maxDosePerPeriod; + } + + public boolean hasMaxDosePerPeriod() { + return this.maxDosePerPeriod != null && !this.maxDosePerPeriod.isEmpty(); + } + + /** + * @param value {@link #maxDosePerPeriod} (The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours.) + */ + public MedicationDispenseDosageInstructionComponent setMaxDosePerPeriod(Ratio value) { + this.maxDosePerPeriod = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("additionalInstructions", "CodeableConcept", "Additional instructions such as 'Swallow with plenty of water' which may or may not be coded.", 0, java.lang.Integer.MAX_VALUE, additionalInstructions)); + childrenList.add(new Property("schedule[x]", "dateTime|Period|Timing", "The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'.", 0, java.lang.Integer.MAX_VALUE, schedule)); + childrenList.add(new Property("asNeeded[x]", "boolean|CodeableConcept", "If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.", 0, java.lang.Integer.MAX_VALUE, asNeeded)); + childrenList.add(new Property("site", "CodeableConcept", "A coded specification of the anatomic site where the medication first enters the body.", 0, java.lang.Integer.MAX_VALUE, site)); + childrenList.add(new Property("route", "CodeableConcept", "A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject.", 0, java.lang.Integer.MAX_VALUE, route)); + childrenList.add(new Property("method", "CodeableConcept", "A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.\r\rTerminologies used often pre-coordinate this term with the route and or form of administration.", 0, java.lang.Integer.MAX_VALUE, method)); + childrenList.add(new Property("dose[x]", "Range|Quantity", "The amount of therapeutic or other substance given at one administration event.", 0, java.lang.Integer.MAX_VALUE, dose)); + childrenList.add(new Property("rate", "Ratio", "Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.", 0, java.lang.Integer.MAX_VALUE, rate)); + childrenList.add(new Property("maxDosePerPeriod", "Ratio", "The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours.", 0, java.lang.Integer.MAX_VALUE, maxDosePerPeriod)); + } + + public MedicationDispenseDosageInstructionComponent copy() { + MedicationDispenseDosageInstructionComponent dst = new MedicationDispenseDosageInstructionComponent(); + copyValues(dst); + dst.additionalInstructions = additionalInstructions == null ? null : additionalInstructions.copy(); + dst.schedule = schedule == null ? null : schedule.copy(); + dst.asNeeded = asNeeded == null ? null : asNeeded.copy(); + dst.site = site == null ? null : site.copy(); + dst.route = route == null ? null : route.copy(); + dst.method = method == null ? null : method.copy(); + dst.dose = dose == null ? null : dose.copy(); + dst.rate = rate == null ? null : rate.copy(); + dst.maxDosePerPeriod = maxDosePerPeriod == null ? null : maxDosePerPeriod.copy(); + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof MedicationDispenseDosageInstructionComponent)) + return false; + MedicationDispenseDosageInstructionComponent o = (MedicationDispenseDosageInstructionComponent) other; + return compareDeep(additionalInstructions, o.additionalInstructions, true) && compareDeep(schedule, o.schedule, true) + && compareDeep(asNeeded, o.asNeeded, true) && compareDeep(site, o.site, true) && compareDeep(route, o.route, true) + && compareDeep(method, o.method, true) && compareDeep(dose, o.dose, true) && compareDeep(rate, o.rate, true) + && compareDeep(maxDosePerPeriod, o.maxDosePerPeriod, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof MedicationDispenseDosageInstructionComponent)) + return false; + MedicationDispenseDosageInstructionComponent o = (MedicationDispenseDosageInstructionComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (additionalInstructions == null || additionalInstructions.isEmpty()) + && (schedule == null || schedule.isEmpty()) && (asNeeded == null || asNeeded.isEmpty()) && (site == null || site.isEmpty()) + && (route == null || route.isEmpty()) && (method == null || method.isEmpty()) && (dose == null || dose.isEmpty()) + && (rate == null || rate.isEmpty()) && (maxDosePerPeriod == null || maxDosePerPeriod.isEmpty()) + ; + } + + } + + @Block() + public static class MedicationDispenseSubstitutionComponent extends BackboneElement { + /** + * A code signifying whether a different drug was dispensed from what was prescribed. + */ + @Child(name="type", type={CodeableConcept.class}, order=1, min=1, max=1) + @Description(shortDefinition="Type of substitiution", formalDefinition="A code signifying whether a different drug was dispensed from what was prescribed." ) + protected CodeableConcept type; + + /** + * Indicates the reason for the substitution of (or lack of substitution) from what was prescribed. + */ + @Child(name="reason", type={CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Why was substitution made", formalDefinition="Indicates the reason for the substitution of (or lack of substitution) from what was prescribed." ) + protected List reason; + + /** + * The person or organization that has primary responsibility for the substitution. + */ + @Child(name="responsibleParty", type={Practitioner.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Who is responsible for the substitution", formalDefinition="The person or organization that has primary responsibility for the substitution." ) + protected List responsibleParty; + /** + * The actual objects that are the target of the reference (The person or organization that has primary responsibility for the substitution.) + */ + protected List responsiblePartyTarget; + + + private static final long serialVersionUID = 1218245830L; + + public MedicationDispenseSubstitutionComponent() { + super(); + } + + public MedicationDispenseSubstitutionComponent(CodeableConcept type) { + super(); + this.type = type; + } + + /** + * @return {@link #type} (A code signifying whether a different drug was dispensed from what was prescribed.) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispenseSubstitutionComponent.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (A code signifying whether a different drug was dispensed from what was prescribed.) + */ + public MedicationDispenseSubstitutionComponent setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #reason} (Indicates the reason for the substitution of (or lack of substitution) from what was prescribed.) + */ + public List getReason() { + if (this.reason == null) + this.reason = new ArrayList(); + return this.reason; + } + + public boolean hasReason() { + if (this.reason == null) + return false; + for (CodeableConcept item : this.reason) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #reason} (Indicates the reason for the substitution of (or lack of substitution) from what was prescribed.) + */ + // syntactic sugar + public CodeableConcept addReason() { //3 + CodeableConcept t = new CodeableConcept(); + if (this.reason == null) + this.reason = new ArrayList(); + this.reason.add(t); + return t; + } + + /** + * @return {@link #responsibleParty} (The person or organization that has primary responsibility for the substitution.) + */ + public List getResponsibleParty() { + if (this.responsibleParty == null) + this.responsibleParty = new ArrayList(); + return this.responsibleParty; + } + + public boolean hasResponsibleParty() { + if (this.responsibleParty == null) + return false; + for (Reference item : this.responsibleParty) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #responsibleParty} (The person or organization that has primary responsibility for the substitution.) + */ + // syntactic sugar + public Reference addResponsibleParty() { //3 + Reference t = new Reference(); + if (this.responsibleParty == null) + this.responsibleParty = new ArrayList(); + this.responsibleParty.add(t); + return t; + } + + /** + * @return {@link #responsibleParty} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The person or organization that has primary responsibility for the substitution.) + */ + public List getResponsiblePartyTarget() { + if (this.responsiblePartyTarget == null) + this.responsiblePartyTarget = new ArrayList(); + return this.responsiblePartyTarget; + } + + // syntactic sugar + /** + * @return {@link #responsibleParty} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. The person or organization that has primary responsibility for the substitution.) + */ + public Practitioner addResponsiblePartyTarget() { + Practitioner r = new Practitioner(); + if (this.responsiblePartyTarget == null) + this.responsiblePartyTarget = new ArrayList(); + this.responsiblePartyTarget.add(r); + return r; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("type", "CodeableConcept", "A code signifying whether a different drug was dispensed from what was prescribed.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("reason", "CodeableConcept", "Indicates the reason for the substitution of (or lack of substitution) from what was prescribed.", 0, java.lang.Integer.MAX_VALUE, reason)); + childrenList.add(new Property("responsibleParty", "Reference(Practitioner)", "The person or organization that has primary responsibility for the substitution.", 0, java.lang.Integer.MAX_VALUE, responsibleParty)); + } + + public MedicationDispenseSubstitutionComponent copy() { + MedicationDispenseSubstitutionComponent dst = new MedicationDispenseSubstitutionComponent(); + copyValues(dst); + dst.type = type == null ? null : type.copy(); + if (reason != null) { + dst.reason = new ArrayList(); + for (CodeableConcept i : reason) + dst.reason.add(i.copy()); + }; + if (responsibleParty != null) { + dst.responsibleParty = new ArrayList(); + for (Reference i : responsibleParty) + dst.responsibleParty.add(i.copy()); + }; + return dst; + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof MedicationDispenseSubstitutionComponent)) + return false; + MedicationDispenseSubstitutionComponent o = (MedicationDispenseSubstitutionComponent) other; + return compareDeep(type, o.type, true) && compareDeep(reason, o.reason, true) && compareDeep(responsibleParty, o.responsibleParty, true) + ; + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof MedicationDispenseSubstitutionComponent)) + return false; + MedicationDispenseSubstitutionComponent o = (MedicationDispenseSubstitutionComponent) other; + return true; + } + + public boolean isEmpty() { + return super.isEmpty() && (type == null || type.isEmpty()) && (reason == null || reason.isEmpty()) + && (responsibleParty == null || responsibleParty.isEmpty()); + } + + } + + /** + * Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIR. + */ + @Child(name="identifier", type={Identifier.class}, order=-1, min=0, max=1) + @Description(shortDefinition="External identifier", formalDefinition="Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIR." ) + protected Identifier identifier; + + /** + * A code specifying the state of the set of dispense events. + */ + @Child(name="status", type={CodeType.class}, order=0, min=0, max=1) + @Description(shortDefinition="in-progress | on-hold | completed | entered-in-error | stopped", formalDefinition="A code specifying the state of the set of dispense events." ) + protected Enumeration status; + + /** + * A link to a resource representing the person to whom the medication will be given. + */ + @Child(name="patient", type={Patient.class}, order=1, min=0, max=1) + @Description(shortDefinition="Who the dispense is for", formalDefinition="A link to a resource representing the person to whom the medication will be given." ) + protected Reference patient; + + /** + * The actual object that is the target of the reference (A link to a resource representing the person to whom the medication will be given.) + */ + protected Patient patientTarget; + + /** + * The individual responsible for dispensing the medication. + */ + @Child(name="dispenser", type={Practitioner.class}, order=2, min=0, max=1) + @Description(shortDefinition="Practitioner responsible for dispensing medication", formalDefinition="The individual responsible for dispensing the medication." ) + protected Reference dispenser; + + /** + * The actual object that is the target of the reference (The individual responsible for dispensing the medication.) + */ + protected Practitioner dispenserTarget; + + /** + * Indicates the medication order that is being dispensed against. + */ + @Child(name="authorizingPrescription", type={MedicationPrescription.class}, order=3, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Medication order that authorizes the dispense", formalDefinition="Indicates the medication order that is being dispensed against." ) + protected List authorizingPrescription; + /** + * The actual objects that are the target of the reference (Indicates the medication order that is being dispensed against.) + */ + protected List authorizingPrescriptionTarget; + + + /** + * Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc. + */ + @Child(name="type", type={CodeableConcept.class}, order=4, min=0, max=1) + @Description(shortDefinition="Trial fill, partial fill, emergency fill, etc.", formalDefinition="Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc." ) + protected CodeableConcept type; + + /** + * The amount of medication that has been dispensed. Includes unit of measure. + */ + @Child(name="quantity", type={Quantity.class}, order=5, min=0, max=1) + @Description(shortDefinition="Amount dispensed", formalDefinition="The amount of medication that has been dispensed. Includes unit of measure." ) + protected Quantity quantity; + + /** + * The amount of medication expressed as a timing amount. + */ + @Child(name="daysSupply", type={Quantity.class}, order=6, min=0, max=1) + @Description(shortDefinition="Days Supply", formalDefinition="The amount of medication expressed as a timing amount." ) + protected Quantity daysSupply; + + /** + * Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications. + */ + @Child(name="medication", type={Medication.class}, order=7, min=0, max=1) + @Description(shortDefinition="What medication was supplied", formalDefinition="Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications." ) + protected Reference medication; + + /** + * The actual object that is the target of the reference (Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) + */ + protected Medication medicationTarget; + + /** + * The time when the dispensed product was packaged and reviewed. + */ + @Child(name="whenPrepared", type={DateTimeType.class}, order=8, min=0, max=1) + @Description(shortDefinition="Dispense processing time", formalDefinition="The time when the dispensed product was packaged and reviewed." ) + protected DateTimeType whenPrepared; + + /** + * The time the dispensed product was provided to the patient or their representative. + */ + @Child(name="whenHandedOver", type={DateTimeType.class}, order=9, min=0, max=1) + @Description(shortDefinition="Handover time", formalDefinition="The time the dispensed product was provided to the patient or their representative." ) + protected DateTimeType whenHandedOver; + + /** + * Identification of the facility/location where the medication was shipped to, as part of the dispense event. + */ + @Child(name="destination", type={Location.class}, order=10, min=0, max=1) + @Description(shortDefinition="Where the medication was sent", formalDefinition="Identification of the facility/location where the medication was shipped to, as part of the dispense event." ) + protected Reference destination; + + /** + * The actual object that is the target of the reference (Identification of the facility/location where the medication was shipped to, as part of the dispense event.) + */ + protected Location destinationTarget; + + /** + * Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional. + */ + @Child(name="receiver", type={Patient.class, Practitioner.class}, order=11, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Who collected the medication", formalDefinition="Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional." ) + protected List receiver; + /** + * The actual objects that are the target of the reference (Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional.) + */ + protected List receiverTarget; + + + /** + * Extra information about the dispense that could not be conveyed in the other attributes. + */ + @Child(name="note", type={StringType.class}, order=12, min=0, max=1) + @Description(shortDefinition="Information about the dispense", formalDefinition="Extra information about the dispense that could not be conveyed in the other attributes." ) + protected StringType note; + + /** + * Indicates how the medication is to be used by the patient. + */ + @Child(name="dosageInstruction", type={}, order=13, min=0, max=Child.MAX_UNLIMITED) + @Description(shortDefinition="Medicine administration instructions to the patient/carer", formalDefinition="Indicates how the medication is to be used by the patient." ) + protected List dosageInstruction; + + /** + * Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and why. + */ + @Child(name="substitution", type={}, order=14, min=0, max=1) + @Description(shortDefinition="Deals with substitution of one medicine for another", formalDefinition="Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and why." ) + protected MedicationDispenseSubstitutionComponent substitution; + + private static final long serialVersionUID = -217601399L; + + public MedicationDispense() { + super(); + } + + /** + * @return {@link #identifier} (Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIR.) + */ + public Identifier getIdentifier() { + if (this.identifier == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.identifier"); + else if (Configuration.doAutoCreate()) + this.identifier = new Identifier(); // cc + return this.identifier; + } + + public boolean hasIdentifier() { + return this.identifier != null && !this.identifier.isEmpty(); + } + + /** + * @param value {@link #identifier} (Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIR.) + */ + public MedicationDispense setIdentifier(Identifier value) { + this.identifier = value; + return this; + } + + /** + * @return {@link #status} (A code specifying the state of the set of dispense events.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public Enumeration getStatusElement() { + if (this.status == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.status"); + else if (Configuration.doAutoCreate()) + this.status = new Enumeration(new MedicationDispenseStatusEnumFactory()); // bb + return this.status; + } + + public boolean hasStatusElement() { + return this.status != null && !this.status.isEmpty(); + } + + public boolean hasStatus() { + return this.status != null && !this.status.isEmpty(); + } + + /** + * @param value {@link #status} (A code specifying the state of the set of dispense events.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value + */ + public MedicationDispense setStatusElement(Enumeration value) { + this.status = value; + return this; + } + + /** + * @return A code specifying the state of the set of dispense events. + */ + public MedicationDispenseStatus getStatus() { + return this.status == null ? null : this.status.getValue(); + } + + /** + * @param value A code specifying the state of the set of dispense events. + */ + public MedicationDispense setStatus(MedicationDispenseStatus value) { + if (value == null) + this.status = null; + else { + if (this.status == null) + this.status = new Enumeration(new MedicationDispenseStatusEnumFactory()); + this.status.setValue(value); + } + return this; + } + + /** + * @return {@link #patient} (A link to a resource representing the person to whom the medication will be given.) + */ + public Reference getPatient() { + if (this.patient == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.patient"); + else if (Configuration.doAutoCreate()) + this.patient = new Reference(); // cc + return this.patient; + } + + public boolean hasPatient() { + return this.patient != null && !this.patient.isEmpty(); + } + + /** + * @param value {@link #patient} (A link to a resource representing the person to whom the medication will be given.) + */ + public MedicationDispense setPatient(Reference value) { + this.patient = value; + return this; + } + + /** + * @return {@link #patient} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (A link to a resource representing the person to whom the medication will be given.) + */ + public Patient getPatientTarget() { + if (this.patientTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.patient"); + else if (Configuration.doAutoCreate()) + this.patientTarget = new Patient(); // aa + return this.patientTarget; + } + + /** + * @param value {@link #patient} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (A link to a resource representing the person to whom the medication will be given.) + */ + public MedicationDispense setPatientTarget(Patient value) { + this.patientTarget = value; + return this; + } + + /** + * @return {@link #dispenser} (The individual responsible for dispensing the medication.) + */ + public Reference getDispenser() { + if (this.dispenser == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.dispenser"); + else if (Configuration.doAutoCreate()) + this.dispenser = new Reference(); // cc + return this.dispenser; + } + + public boolean hasDispenser() { + return this.dispenser != null && !this.dispenser.isEmpty(); + } + + /** + * @param value {@link #dispenser} (The individual responsible for dispensing the medication.) + */ + public MedicationDispense setDispenser(Reference value) { + this.dispenser = value; + return this; + } + + /** + * @return {@link #dispenser} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The individual responsible for dispensing the medication.) + */ + public Practitioner getDispenserTarget() { + if (this.dispenserTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.dispenser"); + else if (Configuration.doAutoCreate()) + this.dispenserTarget = new Practitioner(); // aa + return this.dispenserTarget; + } + + /** + * @param value {@link #dispenser} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The individual responsible for dispensing the medication.) + */ + public MedicationDispense setDispenserTarget(Practitioner value) { + this.dispenserTarget = value; + return this; + } + + /** + * @return {@link #authorizingPrescription} (Indicates the medication order that is being dispensed against.) + */ + public List getAuthorizingPrescription() { + if (this.authorizingPrescription == null) + this.authorizingPrescription = new ArrayList(); + return this.authorizingPrescription; + } + + public boolean hasAuthorizingPrescription() { + if (this.authorizingPrescription == null) + return false; + for (Reference item : this.authorizingPrescription) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #authorizingPrescription} (Indicates the medication order that is being dispensed against.) + */ + // syntactic sugar + public Reference addAuthorizingPrescription() { //3 + Reference t = new Reference(); + if (this.authorizingPrescription == null) + this.authorizingPrescription = new ArrayList(); + this.authorizingPrescription.add(t); + return t; + } + + /** + * @return {@link #authorizingPrescription} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Indicates the medication order that is being dispensed against.) + */ + public List getAuthorizingPrescriptionTarget() { + if (this.authorizingPrescriptionTarget == null) + this.authorizingPrescriptionTarget = new ArrayList(); + return this.authorizingPrescriptionTarget; + } + + // syntactic sugar + /** + * @return {@link #authorizingPrescription} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Indicates the medication order that is being dispensed against.) + */ + public MedicationPrescription addAuthorizingPrescriptionTarget() { + MedicationPrescription r = new MedicationPrescription(); + if (this.authorizingPrescriptionTarget == null) + this.authorizingPrescriptionTarget = new ArrayList(); + this.authorizingPrescriptionTarget.add(r); + return r; + } + + /** + * @return {@link #type} (Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.) + */ + public CodeableConcept getType() { + if (this.type == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.type"); + else if (Configuration.doAutoCreate()) + this.type = new CodeableConcept(); // cc + return this.type; + } + + public boolean hasType() { + return this.type != null && !this.type.isEmpty(); + } + + /** + * @param value {@link #type} (Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.) + */ + public MedicationDispense setType(CodeableConcept value) { + this.type = value; + return this; + } + + /** + * @return {@link #quantity} (The amount of medication that has been dispensed. Includes unit of measure.) + */ + public Quantity getQuantity() { + if (this.quantity == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.quantity"); + else if (Configuration.doAutoCreate()) + this.quantity = new Quantity(); // cc + return this.quantity; + } + + public boolean hasQuantity() { + return this.quantity != null && !this.quantity.isEmpty(); + } + + /** + * @param value {@link #quantity} (The amount of medication that has been dispensed. Includes unit of measure.) + */ + public MedicationDispense setQuantity(Quantity value) { + this.quantity = value; + return this; + } + + /** + * @return {@link #daysSupply} (The amount of medication expressed as a timing amount.) + */ + public Quantity getDaysSupply() { + if (this.daysSupply == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.daysSupply"); + else if (Configuration.doAutoCreate()) + this.daysSupply = new Quantity(); // cc + return this.daysSupply; + } + + public boolean hasDaysSupply() { + return this.daysSupply != null && !this.daysSupply.isEmpty(); + } + + /** + * @param value {@link #daysSupply} (The amount of medication expressed as a timing amount.) + */ + public MedicationDispense setDaysSupply(Quantity value) { + this.daysSupply = value; + return this; + } + + /** + * @return {@link #medication} (Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) + */ + public Reference getMedication() { + if (this.medication == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.medication"); + else if (Configuration.doAutoCreate()) + this.medication = new Reference(); // cc + return this.medication; + } + + public boolean hasMedication() { + return this.medication != null && !this.medication.isEmpty(); + } + + /** + * @param value {@link #medication} (Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) + */ + public MedicationDispense setMedication(Reference value) { + this.medication = value; + return this; + } + + /** + * @return {@link #medication} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) + */ + public Medication getMedicationTarget() { + if (this.medicationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.medication"); + else if (Configuration.doAutoCreate()) + this.medicationTarget = new Medication(); // aa + return this.medicationTarget; + } + + /** + * @param value {@link #medication} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.) + */ + public MedicationDispense setMedicationTarget(Medication value) { + this.medicationTarget = value; + return this; + } + + /** + * @return {@link #whenPrepared} (The time when the dispensed product was packaged and reviewed.). This is the underlying object with id, value and extensions. The accessor "getWhenPrepared" gives direct access to the value + */ + public DateTimeType getWhenPreparedElement() { + if (this.whenPrepared == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.whenPrepared"); + else if (Configuration.doAutoCreate()) + this.whenPrepared = new DateTimeType(); // bb + return this.whenPrepared; + } + + public boolean hasWhenPreparedElement() { + return this.whenPrepared != null && !this.whenPrepared.isEmpty(); + } + + public boolean hasWhenPrepared() { + return this.whenPrepared != null && !this.whenPrepared.isEmpty(); + } + + /** + * @param value {@link #whenPrepared} (The time when the dispensed product was packaged and reviewed.). This is the underlying object with id, value and extensions. The accessor "getWhenPrepared" gives direct access to the value + */ + public MedicationDispense setWhenPreparedElement(DateTimeType value) { + this.whenPrepared = value; + return this; + } + + /** + * @return The time when the dispensed product was packaged and reviewed. + */ + public Date getWhenPrepared() { + return this.whenPrepared == null ? null : this.whenPrepared.getValue(); + } + + /** + * @param value The time when the dispensed product was packaged and reviewed. + */ + public MedicationDispense setWhenPrepared(Date value) { + if (value == null) + this.whenPrepared = null; + else { + if (this.whenPrepared == null) + this.whenPrepared = new DateTimeType(); + this.whenPrepared.setValue(value); + } + return this; + } + + /** + * @return {@link #whenHandedOver} (The time the dispensed product was provided to the patient or their representative.). This is the underlying object with id, value and extensions. The accessor "getWhenHandedOver" gives direct access to the value + */ + public DateTimeType getWhenHandedOverElement() { + if (this.whenHandedOver == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.whenHandedOver"); + else if (Configuration.doAutoCreate()) + this.whenHandedOver = new DateTimeType(); // bb + return this.whenHandedOver; + } + + public boolean hasWhenHandedOverElement() { + return this.whenHandedOver != null && !this.whenHandedOver.isEmpty(); + } + + public boolean hasWhenHandedOver() { + return this.whenHandedOver != null && !this.whenHandedOver.isEmpty(); + } + + /** + * @param value {@link #whenHandedOver} (The time the dispensed product was provided to the patient or their representative.). This is the underlying object with id, value and extensions. The accessor "getWhenHandedOver" gives direct access to the value + */ + public MedicationDispense setWhenHandedOverElement(DateTimeType value) { + this.whenHandedOver = value; + return this; + } + + /** + * @return The time the dispensed product was provided to the patient or their representative. + */ + public Date getWhenHandedOver() { + return this.whenHandedOver == null ? null : this.whenHandedOver.getValue(); + } + + /** + * @param value The time the dispensed product was provided to the patient or their representative. + */ + public MedicationDispense setWhenHandedOver(Date value) { + if (value == null) + this.whenHandedOver = null; + else { + if (this.whenHandedOver == null) + this.whenHandedOver = new DateTimeType(); + this.whenHandedOver.setValue(value); + } + return this; + } + + /** + * @return {@link #destination} (Identification of the facility/location where the medication was shipped to, as part of the dispense event.) + */ + public Reference getDestination() { + if (this.destination == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.destination"); + else if (Configuration.doAutoCreate()) + this.destination = new Reference(); // cc + return this.destination; + } + + public boolean hasDestination() { + return this.destination != null && !this.destination.isEmpty(); + } + + /** + * @param value {@link #destination} (Identification of the facility/location where the medication was shipped to, as part of the dispense event.) + */ + public MedicationDispense setDestination(Reference value) { + this.destination = value; + return this; + } + + /** + * @return {@link #destination} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Identification of the facility/location where the medication was shipped to, as part of the dispense event.) + */ + public Location getDestinationTarget() { + if (this.destinationTarget == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.destination"); + else if (Configuration.doAutoCreate()) + this.destinationTarget = new Location(); // aa + return this.destinationTarget; + } + + /** + * @param value {@link #destination} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Identification of the facility/location where the medication was shipped to, as part of the dispense event.) + */ + public MedicationDispense setDestinationTarget(Location value) { + this.destinationTarget = value; + return this; + } + + /** + * @return {@link #receiver} (Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional.) + */ + public List getReceiver() { + if (this.receiver == null) + this.receiver = new ArrayList(); + return this.receiver; + } + + public boolean hasReceiver() { + if (this.receiver == null) + return false; + for (Reference item : this.receiver) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #receiver} (Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional.) + */ + // syntactic sugar + public Reference addReceiver() { //3 + Reference t = new Reference(); + if (this.receiver == null) + this.receiver = new ArrayList(); + this.receiver.add(t); + return t; + } + + /** + * @return {@link #receiver} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional.) + */ + public List getReceiverTarget() { + if (this.receiverTarget == null) + this.receiverTarget = new ArrayList(); + return this.receiverTarget; + } + + /** + * @return {@link #note} (Extra information about the dispense that could not be conveyed in the other attributes.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value + */ + public StringType getNoteElement() { + if (this.note == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.note"); + else if (Configuration.doAutoCreate()) + this.note = new StringType(); // bb + return this.note; + } + + public boolean hasNoteElement() { + return this.note != null && !this.note.isEmpty(); + } + + public boolean hasNote() { + return this.note != null && !this.note.isEmpty(); + } + + /** + * @param value {@link #note} (Extra information about the dispense that could not be conveyed in the other attributes.). This is the underlying object with id, value and extensions. The accessor "getNote" gives direct access to the value + */ + public MedicationDispense setNoteElement(StringType value) { + this.note = value; + return this; + } + + /** + * @return Extra information about the dispense that could not be conveyed in the other attributes. + */ + public String getNote() { + return this.note == null ? null : this.note.getValue(); + } + + /** + * @param value Extra information about the dispense that could not be conveyed in the other attributes. + */ + public MedicationDispense setNote(String value) { + if (Utilities.noString(value)) + this.note = null; + else { + if (this.note == null) + this.note = new StringType(); + this.note.setValue(value); + } + return this; + } + + /** + * @return {@link #dosageInstruction} (Indicates how the medication is to be used by the patient.) + */ + public List getDosageInstruction() { + if (this.dosageInstruction == null) + this.dosageInstruction = new ArrayList(); + return this.dosageInstruction; + } + + public boolean hasDosageInstruction() { + if (this.dosageInstruction == null) + return false; + for (MedicationDispenseDosageInstructionComponent item : this.dosageInstruction) + if (!item.isEmpty()) + return true; + return false; + } + + /** + * @return {@link #dosageInstruction} (Indicates how the medication is to be used by the patient.) + */ + // syntactic sugar + public MedicationDispenseDosageInstructionComponent addDosageInstruction() { //3 + MedicationDispenseDosageInstructionComponent t = new MedicationDispenseDosageInstructionComponent(); + if (this.dosageInstruction == null) + this.dosageInstruction = new ArrayList(); + this.dosageInstruction.add(t); + return t; + } + + /** + * @return {@link #substitution} (Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and why.) + */ + public MedicationDispenseSubstitutionComponent getSubstitution() { + if (this.substitution == null) + if (Configuration.errorOnAutoCreate()) + throw new Error("Attempt to auto-create MedicationDispense.substitution"); + else if (Configuration.doAutoCreate()) + this.substitution = new MedicationDispenseSubstitutionComponent(); // cc + return this.substitution; + } + + public boolean hasSubstitution() { + return this.substitution != null && !this.substitution.isEmpty(); + } + + /** + * @param value {@link #substitution} (Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and why.) + */ + public MedicationDispense setSubstitution(MedicationDispenseSubstitutionComponent value) { + this.substitution = value; + return this; + } + + protected void listChildren(List childrenList) { + super.listChildren(childrenList); + childrenList.add(new Property("identifier", "Identifier", "Identifier assigned by the dispensing facility - this is an identifier assigned outside FHIR.", 0, java.lang.Integer.MAX_VALUE, identifier)); + childrenList.add(new Property("status", "code", "A code specifying the state of the set of dispense events.", 0, java.lang.Integer.MAX_VALUE, status)); + childrenList.add(new Property("patient", "Reference(Patient)", "A link to a resource representing the person to whom the medication will be given.", 0, java.lang.Integer.MAX_VALUE, patient)); + childrenList.add(new Property("dispenser", "Reference(Practitioner)", "The individual responsible for dispensing the medication.", 0, java.lang.Integer.MAX_VALUE, dispenser)); + childrenList.add(new Property("authorizingPrescription", "Reference(MedicationPrescription)", "Indicates the medication order that is being dispensed against.", 0, java.lang.Integer.MAX_VALUE, authorizingPrescription)); + childrenList.add(new Property("type", "CodeableConcept", "Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.", 0, java.lang.Integer.MAX_VALUE, type)); + childrenList.add(new Property("quantity", "Quantity", "The amount of medication that has been dispensed. Includes unit of measure.", 0, java.lang.Integer.MAX_VALUE, quantity)); + childrenList.add(new Property("daysSupply", "Quantity", "The amount of medication expressed as a timing amount.", 0, java.lang.Integer.MAX_VALUE, daysSupply)); + childrenList.add(new Property("medication", "Reference(Medication)", "Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.", 0, java.lang.Integer.MAX_VALUE, medication)); + childrenList.add(new Property("whenPrepared", "dateTime", "The time when the dispensed product was packaged and reviewed.", 0, java.lang.Integer.MAX_VALUE, whenPrepared)); + childrenList.add(new Property("whenHandedOver", "dateTime", "The time the dispensed product was provided to the patient or their representative.", 0, java.lang.Integer.MAX_VALUE, whenHandedOver)); + childrenList.add(new Property("destination", "Reference(Location)", "Identification of the facility/location where the medication was shipped to, as part of the dispense event.", 0, java.lang.Integer.MAX_VALUE, destination)); + childrenList.add(new Property("receiver", "Reference(Patient|Practitioner)", "Identifies the person who picked up the medication. This will usually be a patient or their carer, but some cases exist where it can be a healthcare professional.", 0, java.lang.Integer.MAX_VALUE, receiver)); + childrenList.add(new Property("note", "string", "Extra information about the dispense that could not be conveyed in the other attributes.", 0, java.lang.Integer.MAX_VALUE, note)); + childrenList.add(new Property("dosageInstruction", "", "Indicates how the medication is to be used by the patient.", 0, java.lang.Integer.MAX_VALUE, dosageInstruction)); + childrenList.add(new Property("substitution", "", "Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and why.", 0, java.lang.Integer.MAX_VALUE, substitution)); + } + + public MedicationDispense copy() { + MedicationDispense dst = new MedicationDispense(); + copyValues(dst); + dst.identifier = identifier == null ? null : identifier.copy(); + dst.status = status == null ? null : status.copy(); + dst.patient = patient == null ? null : patient.copy(); + dst.dispenser = dispenser == null ? null : dispenser.copy(); + if (authorizingPrescription != null) { + dst.authorizingPrescription = new ArrayList(); + for (Reference i : authorizingPrescription) + dst.authorizingPrescription.add(i.copy()); + }; + dst.type = type == null ? null : type.copy(); + dst.quantity = quantity == null ? null : quantity.copy(); + dst.daysSupply = daysSupply == null ? null : daysSupply.copy(); + dst.medication = medication == null ? null : medication.copy(); + dst.whenPrepared = whenPrepared == null ? null : whenPrepared.copy(); + dst.whenHandedOver = whenHandedOver == null ? null : whenHandedOver.copy(); + dst.destination = destination == null ? null : destination.copy(); + if (receiver != null) { + dst.receiver = new ArrayList(); + for (Reference i : receiver) + dst.receiver.add(i.copy()); + }; + dst.note = note == null ? null : note.copy(); + if (dosageInstruction != null) { + dst.dosageInstruction = new ArrayList(); + for (MedicationDispenseDosageInstructionComponent i : dosageInstruction) + dst.dosageInstruction.add(i.copy()); + }; + dst.substitution = substitution == null ? null : substitution.copy(); + return dst; + } + + protected MedicationDispense typedCopy() { + return copy(); + } + + @Override + public boolean equalsDeep(Base other) { + if (!super.equalsDeep(other)) + return false; + if (!(other instanceof MedicationDispense)) + return false; + MedicationDispense o = (MedicationDispense) other; + return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(patient, o.patient, true) + && compareDeep(dispenser, o.dispenser, true) && compareDeep(authorizingPrescription, o.authorizingPrescription, true) + && compareDeep(type, o.type, true) && compareDeep(quantity, o.quantity, true) && compareDeep(daysSupply, o.daysSupply, true) + && compareDeep(medication, o.medication, true) && compareDeep(whenPrepared, o.whenPrepared, true) + && compareDeep(whenHandedOver, o.whenHandedOver, true) && compareDeep(destination, o.destination, true) + && compareDeep(receiver, o.receiver, true) && compareDeep(note, o.note, true) && compareDeep(dosageInstruction, o.dosageInstruction, true) + && compareDeep(substitution, o.substitution, true); + } + + @Override + public boolean equalsShallow(Base other) { + if (!super.equalsShallow(other)) + return false; + if (!(other instanceof MedicationDispense)) + return false; + MedicationDispense o = (MedicationDispense) other; + return compareValues(status, o.status, true) && compareValues(whenPrepared, o.whenPrepared, true) && compareValues(whenHandedOver, o.whenHandedOver, true) + && compareValues(note, o.note, true); + } + + public boolean isEmpty() { + return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (status == null || status.isEmpty()) + && (patient == null || patient.isEmpty()) && (dispenser == null || dispenser.isEmpty()) && (authorizingPrescription == null || authorizingPrescription.isEmpty()) + && (type == null || type.isEmpty()) && (quantity == null || quantity.isEmpty()) && (daysSupply == null || daysSupply.isEmpty()) + && (medication == null || medication.isEmpty()) && (whenPrepared == null || whenPrepared.isEmpty()) + && (whenHandedOver == null || whenHandedOver.isEmpty()) && (destination == null || destination.isEmpty()) + && (receiver == null || receiver.isEmpty()) && (note == null || note.isEmpty()) && (dosageInstruction == null || dosageInstruction.isEmpty()) + && (substitution == null || substitution.isEmpty()); + } + + @Override + public ResourceType getResourceType() { + return ResourceType.MedicationDispense; + } + + @SearchParamDefinition(name="medication", path="MedicationDispense.medication", description="Returns dispenses of this medicine", type="reference" ) + public static final String SP_MEDICATION = "medication"; + @SearchParamDefinition(name="patient", path="MedicationDispense.patient", description="The identity of a patient to list dispenses for", type="reference" ) + public static final String SP_PATIENT = "patient"; + @SearchParamDefinition(name="status", path="MedicationDispense.status", description="Status of the dispense", type="token" ) + public static final String SP_STATUS = "status"; + @SearchParamDefinition(name="prescription", path="MedicationDispense.authorizingPrescription", description="The identity of a prescription to list dispenses from", type="reference" ) + public static final String SP_PRESCRIPTION = "prescription"; + @SearchParamDefinition(name="responsibleparty", path="MedicationDispense.substitution.responsibleParty", description="Return all dispenses with the specified responsible party", type="reference" ) + public static final String SP_RESPONSIBLEPARTY = "responsibleparty"; + @SearchParamDefinition(name="dispenser", path="MedicationDispense.dispenser", description="Return all dispenses performed by a specific indiividual", type="reference" ) + public static final String SP_DISPENSER = "dispenser"; + @SearchParamDefinition(name="type", path="MedicationDispense.type", description="Return all dispenses of a specific type", type="token" ) + public static final String SP_TYPE = "type"; + @SearchParamDefinition(name="identifier", path="MedicationDispense.identifier", description="Return dispenses with this external identity", type="token" ) + public static final String SP_IDENTIFIER = "identifier"; + @SearchParamDefinition(name="whenprepared", path="MedicationDispense.whenPrepared", description="Date when medication prepared", type="date" ) + public static final String SP_WHENPREPARED = "whenprepared"; + @SearchParamDefinition(name="whenhandedover", path="MedicationDispense.whenHandedOver", description="Date when medication handed over to patient (outpatient setting), or supplied to ward or clinic (inpatient setting)", type="date" ) + public static final String SP_WHENHANDEDOVER = "whenhandedover"; + @SearchParamDefinition(name="destination", path="MedicationDispense.destination", description="Return dispenses that should be sent to a secific destination", type="reference" ) + public static final String SP_DESTINATION = "destination"; + +} + diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$1.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7e9f0f5e54c82420fdfc27077c0239e88c851ad2 GIT binary patch literal 1224 zcmcJPZBNrs6vzK}Z0j})OnhR1ic)a%fdZmvG{$8sadBJcS}~C~cHMQmSX$C{_>p|A zCdL@U2k_JQ35@5?kojW9kZ98W&-vZndwTA{#~{f2X(1z}I?dt2J;z6dqpN3r9(T-y)2+|wGo zD_kcQf!_*w)2qJlS_2Z@q2nRum)~_TX3&ygkcb>R8pF@DdmooyHd8K+`}5fCRItN zD(SLH`f-)?VU_gp32N&MU{Gtm&%=u6L=mUrznp&0wB<(O-^jVf;3Z zPc?n$cmufuyI9(-|KqnmU`UrMc5TOCc=jKHD?!*5zT*v>k-9T&HlLXFDnqtnHd=MV zHprhcnzqq4sjVpJuhs_pW&onNGHZ<4-6mYOp~ zl;mI2-$OwbXK?{3%wh>EWUpa^dOJm}T}G9xffg*XHeSIc+rhIW)#dQ;rRV_IsWtC+MZKWRob67U`a$F;!ANLqDMcZayyj1jq0@QUCw| literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$MedicationPrescriptionDispenseComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$MedicationPrescriptionDispenseComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..634fedf0929d3ef979ac9d30ca561675b1e6bedf GIT binary patch literal 9920 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 fGulc+N){&Ypny&4d$8;$+BGoV literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$MedicationPrescriptionDosageInstructionComponent.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$MedicationPrescriptionDosageInstructionComponent.class new file mode 100644 index 0000000000000000000000000000000000000000..83f742e3a930a9360d3b0f5f0e6ed522ea90fb23 GIT binary patch literal 14287 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 literal 0 HcmV?d00001 diff --git a/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$MedicationPrescriptionStatus.class b/hapi-fhir-structures-hl7org-dstu2/src/main/java/org/hl7/fhir/instance/model/MedicationPrescription$MedicationPrescriptionStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..66298deb465a3c2d9ece252f79973624fb36968d GIT binary patch literal 4188 zcmcInTXPiG5&lL<+M{KG^?<IT|l0X;0!eEO4LRyTH)dj7DyApO{dJ%2 zK8Jt(_pg5k@HGC=fmU2h;}Tv;;rSHi(s&M*`Y8#>G|HG4s3;{{U_sH#0*<0p0asB^ zpr+^*0bkKTAXK!T!eR5!cp-fJknaq!B=opzCpUUTEa(v#Jo0!Q>=SIgSa?{h3 z(;8BRnaQas^(tMMoytv*)I>M9R2 z-8~P&e(MPHs9{^)cI8C9Iw$=ZbIze86+50RYmnXf1#{6Ha7=f8pb+}DJ3rL(AVNK6 zyLNb7!_FoS$9m3jxeE5Y%PR4SZ&SCDh_dfhlMuFWd9BOiW^FZqbndDp!UOb<{kML;qQAoOZA zrFKfO>7ZVdjJu>HBTCX%^38IX!Kh-kuT^AYnKkTMlO}a~s%|?aNf#41t6~4Fd)f7t zT%&mwlks3!YzU((gP-FU8Z9-{Ib*d!#OEkg9TjkeABm`WtwxC_5^`)Ca>0{MTrr54AKp4w=NCG;NrdIi#1j?UD{utuf(ca zFt4oKR2z#z2bHD>eaZ2_YE>&~8m?TDzTvsD*I269R)qnmHi&n$xDaTR!4P~k-Ud}* zO2kT9w7q(uKBcSc8(cAis+L$9U#c>@U-qjKqJn8GdH!W(vgUj9tj(a;@a2`dt%@q( z0PXY2$j8mTrsq6ayK@#yP?ooc1@BfF%`@syF|mo>us*W>p8DxA!nG&4E3#7XyW6p z`9xSFR&>hr{UZDZI9m_pne|XtNKr%C6;d9 zj@EsDLE9H--S|O^+SaJ396W|i{Non4Z~xv~X#evD>r<4p;4HmN(@XNve;BpGbz|Q@ zk5v(viNo!DJ$ROM}@O>DwAiHqswzFnXkKZ!kL|{ow|)GrEmk z#oKtKcngo}yKiC-U+vNN^5-VLb_-wsM~qTsEu? z_$j6xkQgMaBbaBYRq##NJY6gh{AC8~uvDrs*fhjoOLEck3-<|OD$+Op+ko&25&A?J z5MfA!bs}6O!X+ZSN`%Wz5WaYy5I!F1PegiWq(2$yPepoHq<1&T;j2V=jR;>O!q