From c8789223624494011d4d138d2d364317bb6ae591 Mon Sep 17 00:00:00 2001 From: jamesagnew Date: Fri, 21 Feb 2014 18:30:08 -0500 Subject: [PATCH] More generator progress --- .../ca/uhn/fhir/model/datatype/AddressDt.java | 48 +- .../uhn/fhir/model/datatype/AttachmentDt.java | 12 +- .../ca/uhn/fhir/model/datatype/CodeDt.java | 2 +- .../model/datatype/CodeableConceptDt.java | 3 +- .../ca/uhn/fhir/model/datatype/CodingDt.java | 6 +- .../ca/uhn/fhir/model/datatype/ContactDt.java | 18 +- .../uhn/fhir/model/datatype/HumanNameDt.java | 42 +- .../uhn/fhir/model/datatype/IdentifierDt.java | 6 +- .../uhn/fhir/model/datatype/NarrativeDt.java | 97 +- .../uhn/fhir/model/datatype/QuantityDt.java | 156 +- .../ca/uhn/fhir/model/datatype/XhtmlDt.java | 30 + .../uhn/fhir/model/resource/Observation.java | 51 +- .../ca/uhn/fhir/model/resource/Patient.java | 1673 ++++++++++++++--- .../java/ca/uhn/fhir/starter/BaseParser.java | 114 +- .../ca/uhn/fhir/starter/DatatypeParser.java | 65 +- .../ca/uhn/fhir/starter/ResourceParser.java | 80 +- .../uhn/fhir/starter/model/BaseElement.java | 63 +- .../java/ca/uhn/fhir/starter/model/Child.java | 10 +- .../src/main/resources/dt_composite.vm | 37 +- .../src/main/resources/resource.vm | 71 +- .../src/main/resources/templates.vm | 51 + .../src/test/resources/dt/narrative.xml | 332 ++++ .../src/test/resources/dt/quantity.xml | 408 ++++ .../vs/valueset-administrative-gender.xml | 23 + .../resources/vs/valueset-marital-status.xml | 39 + 25 files changed, 2818 insertions(+), 619 deletions(-) create mode 100644 hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/XhtmlDt.java create mode 100644 hapi-fhir-starter/src/main/resources/templates.vm create mode 100644 hapi-fhir-starter/src/test/resources/dt/narrative.xml create mode 100644 hapi-fhir-starter/src/test/resources/dt/quantity.xml create mode 100644 hapi-fhir-starter/src/test/resources/vs/valueset-administrative-gender.xml create mode 100644 hapi-fhir-starter/src/test/resources/vs/valueset-marital-status.xml diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/AddressDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/AddressDt.java index 966c20757a8..7fcb76823e5 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/AddressDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/AddressDt.java @@ -1,3 +1,5 @@ + + package ca.uhn.fhir.model.datatype; import java.util.*; @@ -6,7 +8,7 @@ import ca.uhn.fhir.model.api.annotation.*; import ca.uhn.fhir.model.datatype.*; /** - * HAPI/FHIR ${resourceName} Datatype + * HAPI/FHIR Address Datatype * (A postal address) * *

@@ -16,7 +18,7 @@ import ca.uhn.fhir.model.datatype.*; * *

* Requirements: - * A postal address + * Need to be able to record postal addresses, along with notes about their use *

*/ @DatatypeDef(name="Address") @@ -26,25 +28,25 @@ public class AddressDt extends BaseCompositeDatatype { private CodeDt myUse; @Child(name="text", order=1, min=0, max=1) - private String myText; + private StringDt myText; @Child(name="line", order=2, min=0, max=Child.MAX_UNLIMITED) - private List myLine; + private List myLine; @Child(name="city", order=3, min=0, max=1) - private String myCity; + private StringDt myCity; @Child(name="state", order=4, min=0, max=1) - private String myState; + private StringDt myState; @Child(name="zip", order=5, min=0, max=1) - private String myZip; + private StringDt myZip; @Child(name="country", order=6, min=0, max=1) - private String myCountry; + private StringDt myCountry; @Child(name="period", order=7, min=0, max=1) - private Period myPeriod; + private PeriodDt myPeriod; /** * Gets the value(s) for use (home | work | temp | old - purpose of this address) @@ -78,7 +80,7 @@ public class AddressDt extends BaseCompositeDatatype { * A full text representation of the address *

*/ - public String getText() { + public StringDt getText() { return myText; } @@ -90,7 +92,7 @@ public class AddressDt extends BaseCompositeDatatype { * A full text representation of the address *

*/ - public void setText(String theValue) { + public void setText(StringDt theValue) { myText = theValue; } @@ -103,7 +105,7 @@ public class AddressDt extends BaseCompositeDatatype { P.O. Box number, delivery hints, and similar address information *

*/ - public List getLine() { + public List getLine() { return myLine; } @@ -116,7 +118,7 @@ P.O. Box number, delivery hints, and similar address information P.O. Box number, delivery hints, and similar address information *

*/ - public void setLine(List theValue) { + public void setLine(List theValue) { myLine = theValue; } @@ -128,7 +130,7 @@ P.O. Box number, delivery hints, and similar address information * The name of the city, town, village or other community or delivery center. *

*/ - public String getCity() { + public StringDt getCity() { return myCity; } @@ -140,7 +142,7 @@ P.O. Box number, delivery hints, and similar address information * The name of the city, town, village or other community or delivery center. *

*/ - public void setCity(String theValue) { + public void setCity(StringDt theValue) { myCity = theValue; } @@ -152,7 +154,7 @@ P.O. Box number, delivery hints, and similar address information * 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() { + public StringDt getState() { return myState; } @@ -164,7 +166,7 @@ P.O. Box number, delivery hints, and similar address information * 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 void setState(String theValue) { + public void setState(StringDt theValue) { myState = theValue; } @@ -176,7 +178,7 @@ P.O. Box number, delivery hints, and similar address information * A postal code designating a region defined by the postal service. *

*/ - public String getZip() { + public StringDt getZip() { return myZip; } @@ -188,7 +190,7 @@ P.O. Box number, delivery hints, and similar address information * A postal code designating a region defined by the postal service. *

*/ - public void setZip(String theValue) { + public void setZip(StringDt theValue) { myZip = theValue; } @@ -200,7 +202,7 @@ P.O. Box number, delivery hints, and similar address information * Country - a nation as commonly understood or generally accepted *

*/ - public String getCountry() { + public StringDt getCountry() { return myCountry; } @@ -212,7 +214,7 @@ P.O. Box number, delivery hints, and similar address information * Country - a nation as commonly understood or generally accepted *

*/ - public void setCountry(String theValue) { + public void setCountry(StringDt theValue) { myCountry = theValue; } @@ -224,7 +226,7 @@ P.O. Box number, delivery hints, and similar address information * Time period when address was/is in use *

*/ - public Period getPeriod() { + public PeriodDt getPeriod() { return myPeriod; } @@ -236,7 +238,7 @@ P.O. Box number, delivery hints, and similar address information * Time period when address was/is in use *

*/ - public void setPeriod(Period theValue) { + public void setPeriod(PeriodDt theValue) { myPeriod = theValue; } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/AttachmentDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/AttachmentDt.java index e149df244b4..a8391ac4623 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/AttachmentDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/AttachmentDt.java @@ -9,10 +9,10 @@ import ca.uhn.fhir.model.api.annotation.Description; public class AttachmentDt extends BaseCompositeDatatype { @Child(name="contentType", order=0, min=1) - private CodeDt myContentType; + private CodeDt myContentType; @Child(name="language", order=1) - private CodeDt myLanguage; + private CodeDt myLanguage; @Child(name="data", order=2) private Base64BinaryDt myData; @@ -31,19 +31,19 @@ public class AttachmentDt extends BaseCompositeDatatype { @Description("Label to display in place of the data") private StringDt myTitle; - public CodeDt getContentType() { + public CodeDt getContentType() { return myContentType; } - public void setContentType(CodeDt theContentType) { + public void setContentType(CodeDt theContentType) { myContentType = theContentType; } - public CodeDt getLanguage() { + public CodeDt getLanguage() { return myLanguage; } - public void setLanguage(CodeDt theLanguage) { + public void setLanguage(CodeDt theLanguage) { myLanguage = theLanguage; } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/CodeDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/CodeDt.java index 6ed4da709c3..c205ba46a65 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/CodeDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/CodeDt.java @@ -6,7 +6,7 @@ import ca.uhn.fhir.model.api.annotation.DatatypeDef; import ca.uhn.fhir.parser.DataFormatException; @DatatypeDef(name = "code") -public class CodeDt extends BasePrimitiveDatatype implements ICodedDatatype { +public class CodeDt extends BasePrimitiveDatatype implements ICodedDatatype { private String myValue; diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/CodeableConceptDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/CodeableConceptDt.java index 2cf20977f51..85d09b94645 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/CodeableConceptDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/CodeableConceptDt.java @@ -3,12 +3,11 @@ package ca.uhn.fhir.model.datatype; import java.util.List; import ca.uhn.fhir.model.api.BaseCompositeDatatype; -import ca.uhn.fhir.model.api.ICodeEnum; import ca.uhn.fhir.model.api.annotation.Child; import ca.uhn.fhir.model.api.annotation.DatatypeDef; @DatatypeDef(name="CodeableConcept") -public class CodeableConceptDt extends BaseCompositeDatatype implements ICodedDatatype { +public class CodeableConceptDt extends BaseCompositeDatatype implements ICodedDatatype { @Child(name="coding", order=0, min=0, max=Child.MAX_UNLIMITED) private List myCoding; diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/CodingDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/CodingDt.java index ebebac177ad..c2c348a3cb2 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/CodingDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/CodingDt.java @@ -18,7 +18,7 @@ public class CodingDt extends BaseCompositeDatatype { private StringDt myVersion; @Child(name="code", order=2) - private CodeDt myCode; + private CodeDt myCode; @Child(name="display", order=3) private StringDt myDisplay; @@ -46,11 +46,11 @@ public class CodingDt extends BaseCompositeDatatype { myVersion = theVersion; } - public CodeDt getCode() { + public CodeDt getCode() { return myCode; } - public void setCode(CodeDt theCode) { + public void setCode(CodeDt theCode) { myCode = theCode; } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/ContactDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/ContactDt.java index 99817cbe119..118a05406aa 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/ContactDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/ContactDt.java @@ -1,3 +1,5 @@ + + package ca.uhn.fhir.model.datatype; import java.util.*; @@ -6,7 +8,7 @@ import ca.uhn.fhir.model.api.annotation.*; import ca.uhn.fhir.model.datatype.*; /** - * HAPI/FHIR ${resourceName} Datatype + * HAPI/FHIR Contact Datatype * (Technology mediated contact details (phone, fax, email, etc)) * *

@@ -16,7 +18,7 @@ import ca.uhn.fhir.model.datatype.*; * *

* Requirements: - * Technology mediated contact details (phone, fax, email, etc) + * Need to track phone, fax, mobile, sms numbers, email addresses, twitter tags, etc. *

*/ @DatatypeDef(name="Contact") @@ -26,13 +28,13 @@ public class ContactDt extends BaseCompositeDatatype { private CodeDt mySystem; @Child(name="value", order=1, min=0, max=1) - private String myValue; + private StringDt myValue; @Child(name="use", order=2, min=0, max=1) private CodeDt myUse; @Child(name="period", order=3, min=0, max=1) - private Period myPeriod; + private PeriodDt myPeriod; /** * Gets the value(s) for system (phone | fax | email | url) @@ -66,7 +68,7 @@ public class ContactDt extends BaseCompositeDatatype { * The actual contact details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). *

*/ - public String getValue() { + public StringDt getValue() { return myValue; } @@ -78,7 +80,7 @@ public class ContactDt extends BaseCompositeDatatype { * The actual contact details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). *

*/ - public void setValue(String theValue) { + public void setValue(StringDt theValue) { myValue = theValue; } @@ -114,7 +116,7 @@ public class ContactDt extends BaseCompositeDatatype { * Time period when the contact was/is in use *

*/ - public Period getPeriod() { + public PeriodDt getPeriod() { return myPeriod; } @@ -126,7 +128,7 @@ public class ContactDt extends BaseCompositeDatatype { * Time period when the contact was/is in use *

*/ - public void setPeriod(Period theValue) { + public void setPeriod(PeriodDt theValue) { myPeriod = theValue; } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/HumanNameDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/HumanNameDt.java index 9911cd7cced..e72f24412b7 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/HumanNameDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/HumanNameDt.java @@ -1,3 +1,5 @@ + + package ca.uhn.fhir.model.datatype; import java.util.*; @@ -6,7 +8,7 @@ import ca.uhn.fhir.model.api.annotation.*; import ca.uhn.fhir.model.datatype.*; /** - * HAPI/FHIR ${resourceName} Datatype + * HAPI/FHIR HumanName Datatype * (Name of a human - parts and usage) * *

@@ -16,7 +18,7 @@ import ca.uhn.fhir.model.datatype.*; * *

* Requirements: - * Name of a human - parts and usage + * Need to be able to record names, along with notes about their use *

*/ @DatatypeDef(name="HumanName") @@ -26,22 +28,22 @@ public class HumanNameDt extends BaseCompositeDatatype { private CodeDt myUse; @Child(name="text", order=1, min=0, max=1) - private String myText; + private StringDt myText; @Child(name="family", order=2, min=0, max=Child.MAX_UNLIMITED) - private List myFamily; + private List myFamily; @Child(name="given", order=3, min=0, max=Child.MAX_UNLIMITED) - private List myGiven; + private List myGiven; @Child(name="prefix", order=4, min=0, max=Child.MAX_UNLIMITED) - private List myPrefix; + private List myPrefix; @Child(name="suffix", order=5, min=0, max=Child.MAX_UNLIMITED) - private List mySuffix; + private List mySuffix; @Child(name="period", order=6, min=0, max=1) - private Period myPeriod; + private PeriodDt myPeriod; /** * Gets the value(s) for use (usual | official | temp | nickname | anonymous | old | maiden) @@ -75,7 +77,7 @@ public class HumanNameDt extends BaseCompositeDatatype { * A full text representation of the name *

*/ - public String getText() { + public StringDt getText() { return myText; } @@ -87,7 +89,7 @@ public class HumanNameDt extends BaseCompositeDatatype { * A full text representation of the name *

*/ - public void setText(String theValue) { + public void setText(StringDt theValue) { myText = theValue; } @@ -99,7 +101,7 @@ public class HumanNameDt extends BaseCompositeDatatype { * 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() { + public List getFamily() { return myFamily; } @@ -111,7 +113,7 @@ public class HumanNameDt extends BaseCompositeDatatype { * 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 void setFamily(List theValue) { + public void setFamily(List theValue) { myFamily = theValue; } @@ -123,7 +125,7 @@ public class HumanNameDt extends BaseCompositeDatatype { * Given name *

*/ - public List getGiven() { + public List getGiven() { return myGiven; } @@ -135,7 +137,7 @@ public class HumanNameDt extends BaseCompositeDatatype { * Given name *

*/ - public void setGiven(List theValue) { + public void setGiven(List theValue) { myGiven = theValue; } @@ -147,7 +149,7 @@ public class HumanNameDt extends BaseCompositeDatatype { * 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() { + public List getPrefix() { return myPrefix; } @@ -159,7 +161,7 @@ public class HumanNameDt extends BaseCompositeDatatype { * 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 void setPrefix(List theValue) { + public void setPrefix(List theValue) { myPrefix = theValue; } @@ -171,7 +173,7 @@ public class HumanNameDt extends BaseCompositeDatatype { * 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() { + public List getSuffix() { return mySuffix; } @@ -183,7 +185,7 @@ public class HumanNameDt extends BaseCompositeDatatype { * 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 void setSuffix(List theValue) { + public void setSuffix(List theValue) { mySuffix = theValue; } @@ -195,7 +197,7 @@ public class HumanNameDt extends BaseCompositeDatatype { * Indicates the period of time when this name was valid for the named person. *

*/ - public Period getPeriod() { + public PeriodDt getPeriod() { return myPeriod; } @@ -207,7 +209,7 @@ public class HumanNameDt extends BaseCompositeDatatype { * Indicates the period of time when this name was valid for the named person. *

*/ - public void setPeriod(Period theValue) { + public void setPeriod(PeriodDt theValue) { myPeriod = theValue; } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/IdentifierDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/IdentifierDt.java index 3fb4ea4aba0..7dca806747e 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/IdentifierDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/IdentifierDt.java @@ -14,7 +14,7 @@ public class IdentifierDt extends BaseCompositeDatatype { @Child(name="use", order=0) @CodeableConceptElement(type=IdentifierUseEnum.class) - private CodeDt myUse; + private CodeDt myUse; @Child(name="label", order=1) private StringDt myLabel; @@ -32,11 +32,11 @@ public class IdentifierDt extends BaseCompositeDatatype { @ChildResource(types= {Organization.class}) private ResourceReference myAssigner; - public CodeDt getUse() { + public CodeDt getUse() { return myUse; } - public void setUse(CodeDt theUse) { + public void setUse(CodeDt theUse) { myUse = theUse; } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/NarrativeDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/NarrativeDt.java index d7ccb38955a..92dbcde4388 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/NarrativeDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/NarrativeDt.java @@ -1,37 +1,82 @@ + + package ca.uhn.fhir.model.datatype; -import ca.uhn.fhir.model.api.BaseCompositeDatatype; -import ca.uhn.fhir.model.api.CodeableConceptElement; -import ca.uhn.fhir.model.api.annotation.Child; -import ca.uhn.fhir.model.api.annotation.DatatypeDef; -import ca.uhn.fhir.model.enm.NarrativeStatusEnum; +import java.util.*; +import ca.uhn.fhir.model.api.*; +import ca.uhn.fhir.model.api.annotation.*; +import ca.uhn.fhir.model.datatype.*; -@DatatypeDef(name="Narrative") +/** + * HAPI/FHIR Narrative Datatype + * (A human-readable formatted text, including images) + * + *

+ * Definition: + * A human-readable formatted text, including images + *

+ * + *

+ * Requirements: + * + *

+ */ +@DatatypeDef(name="Narrative") public class NarrativeDt extends BaseCompositeDatatype { - @Child(name="status", order=0, min=1) - @CodeableConceptElement(type=NarrativeStatusEnum.class) - private CodeDt myStatus; - - @Child(name="div", order=1) - private StringDt myDiv; + @Child(name="status", order=0, min=1, max=1) + private CodeDt myStatus; - public StringDt getDiv() { - return myDiv; - } - - public CodeDt getStatus() { + @Child(name="div", order=1, min=1, max=1) + private XhtmlDt myDiv; + + /** + * Gets the value(s) for status (generated | extensions | additional) + * + *

+ * Definition: + * The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data + *

+ */ + public CodeDt getStatus() { return myStatus; } - - public void setDiv(StringDt theDiv) { - myDiv = theDiv; + /** + * Sets the value(s) for status (generated | extensions | additional) + * + *

+ * Definition: + * The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data + *

+ */ + public void setStatus(CodeDt theValue) { + myStatus = theValue; } - - public void setStatus(CodeDt theStatus) { - myStatus = theStatus; - } - -} + /** + * Gets the value(s) for div (Limited xhtml content) + * + *

+ * Definition: + * The actual narrative content, a stripped down version of XHTML + *

+ */ + public XhtmlDt getDiv() { + return myDiv; + } + + /** + * Sets the value(s) for div (Limited xhtml content) + * + *

+ * Definition: + * The actual narrative content, a stripped down version of XHTML + *

+ */ + public void setDiv(XhtmlDt theValue) { + myDiv = theValue; + } + + +} \ No newline at end of file diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/QuantityDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/QuantityDt.java index 9d74a8c9966..ac520f1d69d 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/QuantityDt.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/QuantityDt.java @@ -1,69 +1,163 @@ + + package ca.uhn.fhir.model.datatype; -import ca.uhn.fhir.model.api.BaseCompositeDatatype; -import ca.uhn.fhir.model.api.annotation.Constraint; -import ca.uhn.fhir.model.api.annotation.Child; -import ca.uhn.fhir.model.api.annotation.DatatypeDef; -import ca.uhn.fhir.model.enm.QuantityComparatorEnum; +import java.util.*; +import ca.uhn.fhir.model.api.*; +import ca.uhn.fhir.model.api.annotation.*; +import ca.uhn.fhir.model.datatype.*; -@DatatypeDef(name="Quantity") +/** + * HAPI/FHIR Quantity Datatype + * (A measured or measurable amount) + * + *

+ * Definition: + * 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 + *

+ * + *

+ * Requirements: + * Need to able to capture all sorts of measured values, even if the measured value are not precisely quantified. Values include exact measures such as 3.51g, customary units such as 3 tablets, and currencies such as $100.32USD + *

+ */ +@DatatypeDef(name="Quantity") public class QuantityDt extends BaseCompositeDatatype { - @Child(name="value",order=0, min=0, max=1) + @Child(name="value", order=0, min=0, max=1) private DecimalDt myValue; - @Child(name="comparator",order=1, min=0, max=1) - private CodeDt myComparator; + @Child(name="comparator", order=1, min=0, max=1) + private CodeDt myComparator; - @Child(name="units",order=2, min=0, max=1) + @Child(name="units", order=2, min=0, max=1) private StringDt myUnits; - @Child(name="system",order=3, min=0, max=1) - @Constraint(coRequirements= {"code"}) + @Child(name="system", order=3, min=0, max=1) private UriDt mySystem; - @Child(name="code",order=4, min=0, max=1) - @Constraint(coRequirements= {"system"}) - private CodeDt myCode; - + @Child(name="code", order=4, min=0, max=1) + private CodeDt myCode; + + /** + * Gets the value(s) for value (Numerical value (with implicit precision)) + * + *

+ * Definition: + * The value of the measured amount. The value includes an implicit precision in the presentation of the value + *

+ */ public DecimalDt getValue() { return myValue; } + /** + * Sets the value(s) for value (Numerical value (with implicit precision)) + * + *

+ * Definition: + * The value of the measured amount. The value includes an implicit precision in the presentation of the value + *

+ */ public void setValue(DecimalDt theValue) { myValue = theValue; } - - public CodeDt getComparator() { + + /** + * Gets the value(s) for comparator (< | <= | >= | > - how to understand the value) + * + *

+ * Definition: + * How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues. E.g. if the comparator is "<" , then the real value is < stated value + *

+ */ + public CodeDt getComparator() { return myComparator; } - public void setComparator(CodeDt theComparator) { - myComparator = theComparator; + /** + * Sets the value(s) for comparator (< | <= | >= | > - how to understand the value) + * + *

+ * Definition: + * How the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues. E.g. if the comparator is "<" , then the real value is < stated value + *

+ */ + public void setComparator(CodeDt theValue) { + myComparator = theValue; } - + + /** + * Gets the value(s) for units (Unit representation) + * + *

+ * Definition: + * A human-readable form of the units + *

+ */ public StringDt getUnits() { return myUnits; } - public void setUnits(StringDt theUnits) { - myUnits = theUnits; + /** + * Sets the value(s) for units (Unit representation) + * + *

+ * Definition: + * A human-readable form of the units + *

+ */ + public void setUnits(StringDt theValue) { + myUnits = theValue; } - + + /** + * Gets the value(s) for system (System that defines coded unit form) + * + *

+ * Definition: + * The identification of the system that provides the coded form of the unit + *

+ */ public UriDt getSystem() { return mySystem; } - public void setSystem(UriDt theSystem) { - mySystem = theSystem; + /** + * Sets the value(s) for system (System that defines coded unit form) + * + *

+ * Definition: + * The identification of the system that provides the coded form of the unit + *

+ */ + public void setSystem(UriDt theValue) { + mySystem = theValue; } - - public CodeDt getCode() { + + /** + * Gets the value(s) for code (Coded form of the unit) + * + *

+ * Definition: + * A computer processable form of the units in some unit representation system + *

+ */ + public CodeDt getCode() { return myCode; } - public void setCode(CodeDt theCode) { - myCode = theCode; + /** + * Sets the value(s) for code (Coded form of the unit) + * + *

+ * Definition: + * A computer processable form of the units in some unit representation system + *

+ */ + public void setCode(CodeDt theValue) { + myCode = theValue; } -} + +} \ No newline at end of file diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/XhtmlDt.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/XhtmlDt.java new file mode 100644 index 00000000000..2ff0b816886 --- /dev/null +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/XhtmlDt.java @@ -0,0 +1,30 @@ +package ca.uhn.fhir.model.datatype; + +import ca.uhn.fhir.model.api.IPrimitiveDatatype; +import ca.uhn.fhir.parser.DataFormatException; + +public class XhtmlDt implements IPrimitiveDatatype { + + private String myValue; + + @Override + public void setValueAsString(String theValue) throws DataFormatException { + myValue=theValue; + } + + @Override + public String getValueAsString() { + return myValue; + } + + @Override + public String getValue() { + return myValue; + } + + @Override + public void setValue(String theValue) throws DataFormatException { + myValue=theValue; + } + +} diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/resource/Observation.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/resource/Observation.java index 6a92d9c3164..2c67a28a0ec 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/resource/Observation.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/resource/Observation.java @@ -27,6 +27,7 @@ import ca.uhn.fhir.model.enm.ObservationCodesEnum; import ca.uhn.fhir.model.enm.ObservationInterpretationEnum; import ca.uhn.fhir.model.enm.ObservationMethodEnum; import ca.uhn.fhir.model.enm.ObservationRelationshipTypeEnum; +import ca.uhn.fhir.model.enm.ObservationReliabilityEnum; import ca.uhn.fhir.model.enm.ObservationStatusEnum; import ca.uhn.fhir.model.enm.ReferenceRangeMeaningEnum; @@ -35,7 +36,7 @@ public class Observation extends BaseResourceWithIdentifier { @Child(name="name", order=0, min=1, max=1) @CodeableConceptElement(type=ObservationCodesEnum.class) - private CodeableConceptDt myName; + private CodeableConceptDt myName; @Child(name="value", order=1, min=0, max=1, choice=@Choice(types= { QuantityDt.class, @@ -50,7 +51,7 @@ public class Observation extends BaseResourceWithIdentifier { @Child(name="interpretation", order=2) @CodeableConceptElement(type=ObservationInterpretationEnum.class) - private CodeableConceptDt myInterpretation; + private CodeableConceptDt myInterpretation; @Child(name="comments", order=3) private StringDt myComments; @@ -66,19 +67,19 @@ public class Observation extends BaseResourceWithIdentifier { @Child(name="status", order=6, min=1) @CodeableConceptElement(type=ObservationStatusEnum.class) - private CodeableConceptDt myStatus; + private CodeableConceptDt myStatus; @Child(name="reliability", order=7, min=1) - @CodeableConceptElement(type=ObservationStatusEnum.class) - private CodeableConceptDt myReliability; + @CodeableConceptElement(type=ObservationReliabilityEnum.class) + private CodeableConceptDt myReliability; @Child(name="bodySite", order=8) @CodeableConceptElement(type=BodySiteEnum.class) - private CodeableConceptDt myBodySite; + private CodeableConceptDt myBodySite; @Child(name="method", order=9) @CodeableConceptElement(type=ObservationMethodEnum.class) - private CodeableConceptDt myMethod; + private CodeableConceptDt myMethod; @Child(name="subject", order=11) @ChildResource(types= { @@ -109,7 +110,7 @@ public class Observation extends BaseResourceWithIdentifier { { @Child(name="type", order = 0) @CodeableConceptElement(type=ObservationRelationshipTypeEnum.class) - private CodeDt myType; + private CodeDt myType; @Child(name="target", order = 1) @ChildResource(types= { @@ -117,11 +118,11 @@ public class Observation extends BaseResourceWithIdentifier { }) private ResourceReference myTarget; - public CodeDt getType() { + public CodeDt getType() { return myType; } - public void setType(CodeDt theType) { + public void setType(CodeDt theType) { myType = theType; } @@ -147,7 +148,7 @@ public class Observation extends BaseResourceWithIdentifier { @Child(name="meaning", order=2) @CodeableConceptElement(type=ReferenceRangeMeaningEnum.class) - private CodeableConceptDt myMeaning; + private CodeableConceptDt myMeaning; @Child(name="age", order=3) private RangeDt myAge; @@ -168,11 +169,11 @@ public class Observation extends BaseResourceWithIdentifier { myHigh = theHigh; } - public CodeableConceptDt getMeaning() { + public CodeableConceptDt getMeaning() { return myMeaning; } - public void setMeaning(CodeableConceptDt theMeaning) { + public void setMeaning(CodeableConceptDt theMeaning) { myMeaning = theMeaning; } @@ -187,11 +188,11 @@ public class Observation extends BaseResourceWithIdentifier { } - public CodeableConceptDt getName() { + public CodeableConceptDt getName() { return myName; } - public void setName(CodeableConceptDt theName) { + public void setName(CodeableConceptDt theName) { myName = theName; } @@ -203,11 +204,11 @@ public class Observation extends BaseResourceWithIdentifier { myValue = theValue; } - public CodeableConceptDt getInterpretation() { + public CodeableConceptDt getInterpretation() { return myInterpretation; } - public void setInterpretation(CodeableConceptDt theInterpretation) { + public void setInterpretation(CodeableConceptDt theInterpretation) { myInterpretation = theInterpretation; } @@ -235,35 +236,35 @@ public class Observation extends BaseResourceWithIdentifier { myIssued = theIssued; } - public CodeableConceptDt getStatus() { + public CodeableConceptDt getStatus() { return myStatus; } - public void setStatus(CodeableConceptDt theStatus) { + public void setStatus(CodeableConceptDt theStatus) { myStatus = theStatus; } - public CodeableConceptDt getReliability() { + public CodeableConceptDt getReliability() { return myReliability; } - public void setReliability(CodeableConceptDt theReliability) { + public void setReliability(CodeableConceptDt theReliability) { myReliability = theReliability; } - public CodeableConceptDt getBodySite() { + public CodeableConceptDt getBodySite() { return myBodySite; } - public void setBodySite(CodeableConceptDt theBodySite) { + public void setBodySite(CodeableConceptDt theBodySite) { myBodySite = theBodySite; } - public CodeableConceptDt getMethod() { + public CodeableConceptDt getMethod() { return myMethod; } - public void setMethod(CodeableConceptDt theMethod) { + public void setMethod(CodeableConceptDt theMethod) { myMethod = theMethod; } diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/resource/Patient.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/resource/Patient.java index e78fbafe2f2..6e19a20c4d4 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/resource/Patient.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/model/resource/Patient.java @@ -1,3 +1,5 @@ + + package ca.uhn.fhir.model.resource; import java.util.*; @@ -19,7 +21,7 @@ import ca.uhn.fhir.model.datatype.*; * Tracking patient is the center of the healthcare process *

*/ -@ResourceDef(name="${resourceName}") +@ResourceDef(name="Patient") public class Patient extends BaseResource { @Child(name="identifier", order=0, min=0, max=Child.MAX_UNLIMITED) @@ -37,7 +39,10 @@ public class Patient extends BaseResource { @Child(name="birthDate", order=4, min=0, max=1) private DateTimeDt myBirthDate; - @Child(name="deceased[x]", order=5, min=0, max=1) + @Child(name="deceased", order=5, min=0, max=1, choice=@Choice(types= { + BooleanDt.class, + DateTimeDt.class, + })) private IDatatype myDeceased; @Child(name="address", order=6, min=0, max=Child.MAX_UNLIMITED) @@ -46,7 +51,10 @@ public class Patient extends BaseResource { @Child(name="maritalStatus", order=7, min=0, max=1) private CodeableConceptDt myMaritalStatus; - @Child(name="multipleBirth[x]", order=8, min=0, max=1) + @Child(name="multipleBirth", order=8, min=0, max=1, choice=@Choice(types= { + BooleanDt.class, + IntegerDt.class, + })) private IDatatype myMultipleBirth; @Child(name="photo", order=9, min=0, max=Child.MAX_UNLIMITED) @@ -61,10 +69,17 @@ public class Patient extends BaseResource { @Child(name="communication", order=12, min=0, max=Child.MAX_UNLIMITED) private List myCommunication; - @Child(name="careProvider", order=13, min=0, max=Child.MAX_UNLIMITED) + @Child(name="careProvider", order=13, min=0, max=Child.MAX_UNLIMITED) + @ChildResource(types= { + Organization.class, + Practitioner.class, + }) private List myCareProvider; - @Child(name="managingOrganization", order=14, min=0, max=1) + @Child(name="managingOrganization", order=14, min=0, max=1) + @ChildResource(types= { + Organization.class, + }) private ResourceReference myManagingOrganization; @Child(name="link", order=15, min=0, max=Child.MAX_UNLIMITED) @@ -73,7 +88,6 @@ public class Patient extends BaseResource { @Child(name="active", order=16, min=0, max=1) private BooleanDt myActive; - /** * Gets the value(s) for identifier (An identifier for the person as this patient) * @@ -493,167 +507,477 @@ public class Patient extends BaseResource { */ @Block(name="Patient.contact") public static class Contact { - @Child(name="relationship", order=0, min=0, max=Child.MAX_UNLIMITED) - private List myRelationship; + @Child(name="identifier", order=0, min=0, max=Child.MAX_UNLIMITED) + private List myIdentifier; + + @Child(name="name", order=1, min=0, max=Child.MAX_UNLIMITED) + private List myName; + + @Child(name="telecom", order=2, min=0, max=Child.MAX_UNLIMITED) + private List myTelecom; + + @Child(name="gender", order=3, min=0, max=1) + private CodeableConceptDt myGender; + + @Child(name="birthDate", order=4, min=0, max=1) + private DateTimeDt myBirthDate; + + @Child(name="deceased", order=5, min=0, max=1, choice=@Choice(types= { + BooleanDt.class, + DateTimeDt.class, + })) + private IDatatype myDeceased; + + @Child(name="address", order=6, min=0, max=Child.MAX_UNLIMITED) + private List myAddress; + + @Child(name="maritalStatus", order=7, min=0, max=1) + private CodeableConceptDt myMaritalStatus; + + @Child(name="multipleBirth", order=8, min=0, max=1, choice=@Choice(types= { + BooleanDt.class, + IntegerDt.class, + })) + private IDatatype myMultipleBirth; + + @Child(name="photo", order=9, min=0, max=Child.MAX_UNLIMITED) + private List myPhoto; + + @Child(name="contact", order=10, min=0, max=Child.MAX_UNLIMITED) + private List myContact; + + @Child(name="animal", order=11, min=0, max=1) + private Animal myAnimal; + + @Child(name="communication", order=12, min=0, max=Child.MAX_UNLIMITED) + private List myCommunication; + + @Child(name="careProvider", order=13, min=0, max=Child.MAX_UNLIMITED) + @ChildResource(types= { + Organization.class, + Practitioner.class, + }) + private List myCareProvider; + + @Child(name="managingOrganization", order=14, min=0, max=1) + @ChildResource(types= { + Organization.class, + }) + private ResourceReference myManagingOrganization; + + @Child(name="link", order=15, min=0, max=Child.MAX_UNLIMITED) + private List myLink; + + @Child(name="active", order=16, min=0, max=1) + private BooleanDt myActive; + + /** + * Gets the value(s) for identifier (An identifier for the person as this patient) + * + *

+ * Definition: + * An identifier that applies to this person as a patient + *

+ */ + public List getIdentifier() { + return myIdentifier; + } - @Child(name="name", order=1, min=0, max=1) - private HumanNameDt myName; + /** + * Sets the value(s) for identifier (An identifier for the person as this patient) + * + *

+ * Definition: + * An identifier that applies to this person as a patient + *

+ */ + public void setIdentifier(List theValue) { + myIdentifier = theValue; + } + + /** + * Gets the value(s) for name (A name associated with the patient) + * + *

+ * Definition: + * A name associated with the individual. + *

+ */ + public List getName() { + return myName; + } - @Child(name="telecom", order=2, min=0, max=Child.MAX_UNLIMITED) - private List myTelecom; + /** + * Sets the value(s) for name (A name associated with the patient) + * + *

+ * Definition: + * A name associated with the individual. + *

+ */ + public void setName(List theValue) { + myName = theValue; + } + + /** + * Gets the value(s) for telecom (A contact detail for the individual) + * + *

+ * Definition: + * A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted. + *

+ */ + public List getTelecom() { + return myTelecom; + } - @Child(name="address", order=3, min=0, max=1) - private AddressDt myAddress; + /** + * Sets the value(s) for telecom (A contact detail for the individual) + * + *

+ * Definition: + * A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted. + *

+ */ + public void setTelecom(List theValue) { + myTelecom = theValue; + } + + /** + * Gets the value(s) for gender (Gender for administrative purposes) + * + *

+ * Definition: + * Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes. + *

+ */ + public CodeableConceptDt getGender() { + return myGender; + } - @Child(name="gender", order=4, min=0, max=1) - private CodeableConceptDt myGender; + /** + * Sets the value(s) for gender (Gender for administrative purposes) + * + *

+ * Definition: + * Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes. + *

+ */ + public void setGender(CodeableConceptDt theValue) { + myGender = theValue; + } + + /** + * Gets the value(s) for birthDate (The date and time of birth for the individual) + * + *

+ * Definition: + * The date and time of birth for the individual + *

+ */ + public DateTimeDt getBirthDate() { + return myBirthDate; + } - @Child(name="organization", order=5, min=0, max=1) - private ResourceReference myOrganization; + /** + * Sets the value(s) for birthDate (The date and time of birth for the individual) + * + *

+ * Definition: + * The date and time of birth for the individual + *

+ */ + public void setBirthDate(DateTimeDt theValue) { + myBirthDate = theValue; + } + + /** + * Gets the value(s) for deceased[x] (Indicates if the individual is deceased or not) + * + *

+ * Definition: + * Indicates if the individual is deceased or not + *

+ */ + public IDatatype getDeceased() { + return myDeceased; + } - /** - * Gets the value(s) for relationship (The kind of relationship) - * - *

- * Definition: - * The nature of the relationship between the patient and the contact person - *

- */ - public List getRelationship() { - return myRelationship; - } + /** + * Sets the value(s) for deceased[x] (Indicates if the individual is deceased or not) + * + *

+ * Definition: + * Indicates if the individual is deceased or not + *

+ */ + public void setDeceased(IDatatype theValue) { + myDeceased = theValue; + } - /** - * Sets the value(s) for relationship (The kind of relationship) - * - *

- * Definition: - * The nature of the relationship between the patient and the contact person - *

- */ - public void setRelationship(List theValue) { - myRelationship = theValue; - } + /** + * Gets the value(s) for address (Addresses for the individual) + * + *

+ * Definition: + * Addresses for the individual + *

+ */ + public List getAddress() { + return myAddress; + } + + /** + * Sets the value(s) for address (Addresses for the individual) + * + *

+ * Definition: + * Addresses for the individual + *

+ */ + public void setAddress(List theValue) { + myAddress = theValue; + } - /** - * Gets the value(s) for name (A name associated with the person) - * - *

- * Definition: - * A name associated with the person - *

- */ - public HumanNameDt getName() { - return myName; - } + /** + * Gets the value(s) for maritalStatus (Marital (civil) status of a person) + * + *

+ * Definition: + * This field contains a patient's most recent marital (civil) status. + *

+ */ + public CodeableConceptDt getMaritalStatus() { + return myMaritalStatus; + } + + /** + * Sets the value(s) for maritalStatus (Marital (civil) status of a person) + * + *

+ * Definition: + * This field contains a patient's most recent marital (civil) status. + *

+ */ + public void setMaritalStatus(CodeableConceptDt theValue) { + myMaritalStatus = theValue; + } - /** - * Sets the value(s) for name (A name associated with the person) - * - *

- * Definition: - * A name associated with the person - *

- */ - public void setName(HumanNameDt theValue) { - myName = theValue; - } + /** + * Gets the value(s) for multipleBirth[x] (Whether patient is part of a multiple birth) + * + *

+ * Definition: + * Indicates whether the patient is part of a multiple or indicates the actual birth order. + *

+ */ + public IDatatype getMultipleBirth() { + return myMultipleBirth; + } + + /** + * Sets the value(s) for multipleBirth[x] (Whether patient is part of a multiple birth) + * + *

+ * Definition: + * Indicates whether the patient is part of a multiple or indicates the actual birth order. + *

+ */ + public void setMultipleBirth(IDatatype theValue) { + myMultipleBirth = theValue; + } - /** - * Gets the value(s) for telecom (A contact detail for the person) - * - *

- * Definition: - * A contact detail for the person, e.g. a telephone number or an email address. - *

- */ - public List getTelecom() { - return myTelecom; - } + /** + * Gets the value(s) for photo (Image of the person) + * + *

+ * Definition: + * Image of the person + *

+ */ + public List getPhoto() { + return myPhoto; + } + + /** + * Sets the value(s) for photo (Image of the person) + * + *

+ * Definition: + * Image of the person + *

+ */ + public void setPhoto(List theValue) { + myPhoto = theValue; + } - /** - * Sets the value(s) for telecom (A contact detail for the person) - * - *

- * Definition: - * A contact detail for the person, e.g. a telephone number or an email address. - *

- */ - public void setTelecom(List theValue) { - myTelecom = theValue; - } + /** + * Gets the value(s) for contact (A contact party (e.g. guardian, partner, friend) for the patient) + * + *

+ * Definition: + * A contact party (e.g. guardian, partner, friend) for the patient + *

+ */ + public List getContact() { + return myContact; + } + + /** + * Sets the value(s) for contact (A contact party (e.g. guardian, partner, friend) for the patient) + * + *

+ * Definition: + * A contact party (e.g. guardian, partner, friend) for the patient + *

+ */ + public void setContact(List theValue) { + myContact = theValue; + } - /** - * Gets the value(s) for address (Address for the contact person) - * - *

- * Definition: - * Address for the contact person - *

- */ - public AddressDt getAddress() { - return myAddress; - } + /** + * Gets the value(s) for animal (If this patient is an animal (non-human)) + * + *

+ * Definition: + * This element has a value if the patient is an animal + *

+ */ + public Animal getAnimal() { + return myAnimal; + } + + /** + * Sets the value(s) for animal (If this patient is an animal (non-human)) + * + *

+ * Definition: + * This element has a value if the patient is an animal + *

+ */ + public void setAnimal(Animal theValue) { + myAnimal = theValue; + } - /** - * Sets the value(s) for address (Address for the contact person) - * - *

- * Definition: - * Address for the contact person - *

- */ - public void setAddress(AddressDt theValue) { - myAddress = theValue; - } + /** + * Gets the value(s) for communication (Languages which may be used to communicate with the patient about his or her health) + * + *

+ * Definition: + * Languages which may be used to communicate with the patient about his or her health + *

+ */ + public List getCommunication() { + return myCommunication; + } + + /** + * Sets the value(s) for communication (Languages which may be used to communicate with the patient about his or her health) + * + *

+ * Definition: + * Languages which may be used to communicate with the patient about his or her health + *

+ */ + public void setCommunication(List theValue) { + myCommunication = theValue; + } - /** - * Gets the value(s) for gender (Gender for administrative purposes) - * - *

- * Definition: - * Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. - *

- */ - public CodeableConceptDt getGender() { - return myGender; - } + /** + * Gets the value(s) for careProvider (Patient's nominated care provider) + * + *

+ * Definition: + * Patient's nominated care provider + *

+ */ + public List getCareProvider() { + return myCareProvider; + } + + /** + * Sets the value(s) for careProvider (Patient's nominated care provider) + * + *

+ * Definition: + * Patient's nominated care provider + *

+ */ + public void setCareProvider(List theValue) { + myCareProvider = theValue; + } - /** - * Sets the value(s) for gender (Gender for administrative purposes) - * - *

- * Definition: - * Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes. - *

- */ - public void setGender(CodeableConceptDt theValue) { - myGender = theValue; - } + /** + * Gets the value(s) for managingOrganization (Organization that is the custodian of the patient record) + * + *

+ * Definition: + * Organization that is the custodian of the patient record + *

+ */ + public ResourceReference getManagingOrganization() { + return myManagingOrganization; + } + + /** + * Sets the value(s) for managingOrganization (Organization that is the custodian of the patient record) + * + *

+ * Definition: + * Organization that is the custodian of the patient record + *

+ */ + public void setManagingOrganization(ResourceReference theValue) { + myManagingOrganization = theValue; + } - /** - * Gets the value(s) for organization (Organization that is associated with the contact) - * - *

- * Definition: - * Organization on behalf of which the contact is acting or for which the contact is working. - *

- */ - public ResourceReference getOrganization() { - return myOrganization; - } + /** + * Gets the value(s) for link (Link to another patient resource that concerns the same actual person) + * + *

+ * Definition: + * Link to another patient resource that concerns the same actual person + *

+ */ + public List getLink() { + return myLink; + } + + /** + * Sets the value(s) for link (Link to another patient resource that concerns the same actual person) + * + *

+ * Definition: + * Link to another patient resource that concerns the same actual person + *

+ */ + public void setLink(List theValue) { + myLink = theValue; + } - /** - * Sets the value(s) for organization (Organization that is associated with the contact) - * - *

- * Definition: - * Organization on behalf of which the contact is acting or for which the contact is working. - *

- */ - public void setOrganization(ResourceReference theValue) { - myOrganization = theValue; - } + /** + * Gets the value(s) for active (Whether this patient's record is in active use) + * + *

+ * Definition: + * Whether this patient record is in active use + *

+ */ + public BooleanDt getActive() { + return myActive; + } + + /** + * Sets the value(s) for active (Whether this patient's record is in active use) + * + *

+ * Definition: + * Whether this patient record is in active use + *

+ */ + public void setActive(BooleanDt theValue) { + myActive = theValue; + } } @@ -667,86 +991,477 @@ public class Patient extends BaseResource { */ @Block(name="Patient.animal") public static class Animal { - @Child(name="species", order=0, min=1, max=1) - private CodeableConceptDt mySpecies; + @Child(name="identifier", order=0, min=0, max=Child.MAX_UNLIMITED) + private List myIdentifier; + + @Child(name="name", order=1, min=0, max=Child.MAX_UNLIMITED) + private List myName; + + @Child(name="telecom", order=2, min=0, max=Child.MAX_UNLIMITED) + private List myTelecom; + + @Child(name="gender", order=3, min=0, max=1) + private CodeableConceptDt myGender; + + @Child(name="birthDate", order=4, min=0, max=1) + private DateTimeDt myBirthDate; + + @Child(name="deceased", order=5, min=0, max=1, choice=@Choice(types= { + BooleanDt.class, + DateTimeDt.class, + })) + private IDatatype myDeceased; + + @Child(name="address", order=6, min=0, max=Child.MAX_UNLIMITED) + private List myAddress; + + @Child(name="maritalStatus", order=7, min=0, max=1) + private CodeableConceptDt myMaritalStatus; + + @Child(name="multipleBirth", order=8, min=0, max=1, choice=@Choice(types= { + BooleanDt.class, + IntegerDt.class, + })) + private IDatatype myMultipleBirth; + + @Child(name="photo", order=9, min=0, max=Child.MAX_UNLIMITED) + private List myPhoto; + + @Child(name="contact", order=10, min=0, max=Child.MAX_UNLIMITED) + private List myContact; + + @Child(name="animal", order=11, min=0, max=1) + private Animal myAnimal; + + @Child(name="communication", order=12, min=0, max=Child.MAX_UNLIMITED) + private List myCommunication; + + @Child(name="careProvider", order=13, min=0, max=Child.MAX_UNLIMITED) + @ChildResource(types= { + Organization.class, + Practitioner.class, + }) + private List myCareProvider; + + @Child(name="managingOrganization", order=14, min=0, max=1) + @ChildResource(types= { + Organization.class, + }) + private ResourceReference myManagingOrganization; + + @Child(name="link", order=15, min=0, max=Child.MAX_UNLIMITED) + private List myLink; + + @Child(name="active", order=16, min=0, max=1) + private BooleanDt myActive; + + /** + * Gets the value(s) for identifier (An identifier for the person as this patient) + * + *

+ * Definition: + * An identifier that applies to this person as a patient + *

+ */ + public List getIdentifier() { + return myIdentifier; + } - @Child(name="breed", order=1, min=0, max=1) - private CodeableConceptDt myBreed; + /** + * Sets the value(s) for identifier (An identifier for the person as this patient) + * + *

+ * Definition: + * An identifier that applies to this person as a patient + *

+ */ + public void setIdentifier(List theValue) { + myIdentifier = theValue; + } + + /** + * Gets the value(s) for name (A name associated with the patient) + * + *

+ * Definition: + * A name associated with the individual. + *

+ */ + public List getName() { + return myName; + } - @Child(name="genderStatus", order=2, min=0, max=1) - private CodeableConceptDt myGenderStatus; + /** + * Sets the value(s) for name (A name associated with the patient) + * + *

+ * Definition: + * A name associated with the individual. + *

+ */ + public void setName(List theValue) { + myName = theValue; + } + + /** + * Gets the value(s) for telecom (A contact detail for the individual) + * + *

+ * Definition: + * A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted. + *

+ */ + public List getTelecom() { + return myTelecom; + } - /** - * Gets the value(s) for species (E.g. Dog, Cow) - * - *

- * Definition: - * Identifies the high level categorization of the kind of animal - *

- */ - public CodeableConceptDt getSpecies() { - return mySpecies; - } + /** + * Sets the value(s) for telecom (A contact detail for the individual) + * + *

+ * Definition: + * A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted. + *

+ */ + public void setTelecom(List theValue) { + myTelecom = theValue; + } - /** - * Sets the value(s) for species (E.g. Dog, Cow) - * - *

- * Definition: - * Identifies the high level categorization of the kind of animal - *

- */ - public void setSpecies(CodeableConceptDt theValue) { - mySpecies = theValue; - } + /** + * Gets the value(s) for gender (Gender for administrative purposes) + * + *

+ * Definition: + * Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes. + *

+ */ + public CodeableConceptDt getGender() { + return myGender; + } + + /** + * Sets the value(s) for gender (Gender for administrative purposes) + * + *

+ * Definition: + * Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes. + *

+ */ + public void setGender(CodeableConceptDt theValue) { + myGender = theValue; + } - /** - * Gets the value(s) for breed (E.g. Poodle, Angus) - * - *

- * Definition: - * Identifies the detailed categorization of the kind of animal. - *

- */ - public CodeableConceptDt getBreed() { - return myBreed; - } + /** + * Gets the value(s) for birthDate (The date and time of birth for the individual) + * + *

+ * Definition: + * The date and time of birth for the individual + *

+ */ + public DateTimeDt getBirthDate() { + return myBirthDate; + } + + /** + * Sets the value(s) for birthDate (The date and time of birth for the individual) + * + *

+ * Definition: + * The date and time of birth for the individual + *

+ */ + public void setBirthDate(DateTimeDt theValue) { + myBirthDate = theValue; + } - /** - * Sets the value(s) for breed (E.g. Poodle, Angus) - * - *

- * Definition: - * Identifies the detailed categorization of the kind of animal. - *

- */ - public void setBreed(CodeableConceptDt theValue) { - myBreed = theValue; - } + /** + * Gets the value(s) for deceased[x] (Indicates if the individual is deceased or not) + * + *

+ * Definition: + * Indicates if the individual is deceased or not + *

+ */ + public IDatatype getDeceased() { + return myDeceased; + } + + /** + * Sets the value(s) for deceased[x] (Indicates if the individual is deceased or not) + * + *

+ * Definition: + * Indicates if the individual is deceased or not + *

+ */ + public void setDeceased(IDatatype theValue) { + myDeceased = theValue; + } - /** - * Gets the value(s) for genderStatus (E.g. Neutered, Intact) - * - *

- * Definition: - * Indicates the current state of the animal's reproductive organs - *

- */ - public CodeableConceptDt getGenderStatus() { - return myGenderStatus; - } + /** + * Gets the value(s) for address (Addresses for the individual) + * + *

+ * Definition: + * Addresses for the individual + *

+ */ + public List getAddress() { + return myAddress; + } + + /** + * Sets the value(s) for address (Addresses for the individual) + * + *

+ * Definition: + * Addresses for the individual + *

+ */ + public void setAddress(List theValue) { + myAddress = theValue; + } - /** - * Sets the value(s) for genderStatus (E.g. Neutered, Intact) - * - *

- * Definition: - * Indicates the current state of the animal's reproductive organs - *

- */ - public void setGenderStatus(CodeableConceptDt theValue) { - myGenderStatus = theValue; - } + /** + * Gets the value(s) for maritalStatus (Marital (civil) status of a person) + * + *

+ * Definition: + * This field contains a patient's most recent marital (civil) status. + *

+ */ + public CodeableConceptDt getMaritalStatus() { + return myMaritalStatus; + } + + /** + * Sets the value(s) for maritalStatus (Marital (civil) status of a person) + * + *

+ * Definition: + * This field contains a patient's most recent marital (civil) status. + *

+ */ + public void setMaritalStatus(CodeableConceptDt theValue) { + myMaritalStatus = theValue; + } + + /** + * Gets the value(s) for multipleBirth[x] (Whether patient is part of a multiple birth) + * + *

+ * Definition: + * Indicates whether the patient is part of a multiple or indicates the actual birth order. + *

+ */ + public IDatatype getMultipleBirth() { + return myMultipleBirth; + } + + /** + * Sets the value(s) for multipleBirth[x] (Whether patient is part of a multiple birth) + * + *

+ * Definition: + * Indicates whether the patient is part of a multiple or indicates the actual birth order. + *

+ */ + public void setMultipleBirth(IDatatype theValue) { + myMultipleBirth = theValue; + } + + /** + * Gets the value(s) for photo (Image of the person) + * + *

+ * Definition: + * Image of the person + *

+ */ + public List getPhoto() { + return myPhoto; + } + + /** + * Sets the value(s) for photo (Image of the person) + * + *

+ * Definition: + * Image of the person + *

+ */ + public void setPhoto(List theValue) { + myPhoto = theValue; + } + + /** + * Gets the value(s) for contact (A contact party (e.g. guardian, partner, friend) for the patient) + * + *

+ * Definition: + * A contact party (e.g. guardian, partner, friend) for the patient + *

+ */ + public List getContact() { + return myContact; + } + + /** + * Sets the value(s) for contact (A contact party (e.g. guardian, partner, friend) for the patient) + * + *

+ * Definition: + * A contact party (e.g. guardian, partner, friend) for the patient + *

+ */ + public void setContact(List theValue) { + myContact = theValue; + } + + /** + * Gets the value(s) for animal (If this patient is an animal (non-human)) + * + *

+ * Definition: + * This element has a value if the patient is an animal + *

+ */ + public Animal getAnimal() { + return myAnimal; + } + + /** + * Sets the value(s) for animal (If this patient is an animal (non-human)) + * + *

+ * Definition: + * This element has a value if the patient is an animal + *

+ */ + public void setAnimal(Animal theValue) { + myAnimal = theValue; + } + + /** + * Gets the value(s) for communication (Languages which may be used to communicate with the patient about his or her health) + * + *

+ * Definition: + * Languages which may be used to communicate with the patient about his or her health + *

+ */ + public List getCommunication() { + return myCommunication; + } + + /** + * Sets the value(s) for communication (Languages which may be used to communicate with the patient about his or her health) + * + *

+ * Definition: + * Languages which may be used to communicate with the patient about his or her health + *

+ */ + public void setCommunication(List theValue) { + myCommunication = theValue; + } + + /** + * Gets the value(s) for careProvider (Patient's nominated care provider) + * + *

+ * Definition: + * Patient's nominated care provider + *

+ */ + public List getCareProvider() { + return myCareProvider; + } + + /** + * Sets the value(s) for careProvider (Patient's nominated care provider) + * + *

+ * Definition: + * Patient's nominated care provider + *

+ */ + public void setCareProvider(List theValue) { + myCareProvider = theValue; + } + + /** + * Gets the value(s) for managingOrganization (Organization that is the custodian of the patient record) + * + *

+ * Definition: + * Organization that is the custodian of the patient record + *

+ */ + public ResourceReference getManagingOrganization() { + return myManagingOrganization; + } + + /** + * Sets the value(s) for managingOrganization (Organization that is the custodian of the patient record) + * + *

+ * Definition: + * Organization that is the custodian of the patient record + *

+ */ + public void setManagingOrganization(ResourceReference theValue) { + myManagingOrganization = theValue; + } + + /** + * Gets the value(s) for link (Link to another patient resource that concerns the same actual person) + * + *

+ * Definition: + * Link to another patient resource that concerns the same actual person + *

+ */ + public List getLink() { + return myLink; + } + + /** + * Sets the value(s) for link (Link to another patient resource that concerns the same actual person) + * + *

+ * Definition: + * Link to another patient resource that concerns the same actual person + *

+ */ + public void setLink(List theValue) { + myLink = theValue; + } + + /** + * Gets the value(s) for active (Whether this patient's record is in active use) + * + *

+ * Definition: + * Whether this patient record is in active use + *

+ */ + public BooleanDt getActive() { + return myActive; + } + + /** + * Sets the value(s) for active (Whether this patient's record is in active use) + * + *

+ * Definition: + * Whether this patient record is in active use + *

+ */ + public void setActive(BooleanDt theValue) { + myActive = theValue; + } } @@ -760,59 +1475,477 @@ public class Patient extends BaseResource { */ @Block(name="Patient.link") public static class Link { - @Child(name="other", order=0, min=1, max=1) - private ResourceReference myOther; + @Child(name="identifier", order=0, min=0, max=Child.MAX_UNLIMITED) + private List myIdentifier; + + @Child(name="name", order=1, min=0, max=Child.MAX_UNLIMITED) + private List myName; + + @Child(name="telecom", order=2, min=0, max=Child.MAX_UNLIMITED) + private List myTelecom; + + @Child(name="gender", order=3, min=0, max=1) + private CodeableConceptDt myGender; + + @Child(name="birthDate", order=4, min=0, max=1) + private DateTimeDt myBirthDate; + + @Child(name="deceased", order=5, min=0, max=1, choice=@Choice(types= { + BooleanDt.class, + DateTimeDt.class, + })) + private IDatatype myDeceased; + + @Child(name="address", order=6, min=0, max=Child.MAX_UNLIMITED) + private List myAddress; + + @Child(name="maritalStatus", order=7, min=0, max=1) + private CodeableConceptDt myMaritalStatus; + + @Child(name="multipleBirth", order=8, min=0, max=1, choice=@Choice(types= { + BooleanDt.class, + IntegerDt.class, + })) + private IDatatype myMultipleBirth; + + @Child(name="photo", order=9, min=0, max=Child.MAX_UNLIMITED) + private List myPhoto; + + @Child(name="contact", order=10, min=0, max=Child.MAX_UNLIMITED) + private List myContact; + + @Child(name="animal", order=11, min=0, max=1) + private Animal myAnimal; + + @Child(name="communication", order=12, min=0, max=Child.MAX_UNLIMITED) + private List myCommunication; + + @Child(name="careProvider", order=13, min=0, max=Child.MAX_UNLIMITED) + @ChildResource(types= { + Organization.class, + Practitioner.class, + }) + private List myCareProvider; + + @Child(name="managingOrganization", order=14, min=0, max=1) + @ChildResource(types= { + Organization.class, + }) + private ResourceReference myManagingOrganization; + + @Child(name="link", order=15, min=0, max=Child.MAX_UNLIMITED) + private List myLink; + + @Child(name="active", order=16, min=0, max=1) + private BooleanDt myActive; + + /** + * Gets the value(s) for identifier (An identifier for the person as this patient) + * + *

+ * Definition: + * An identifier that applies to this person as a patient + *

+ */ + public List getIdentifier() { + return myIdentifier; + } - @Child(name="type", order=1, min=1, max=1) - private CodeDt myType; + /** + * Sets the value(s) for identifier (An identifier for the person as this patient) + * + *

+ * Definition: + * An identifier that applies to this person as a patient + *

+ */ + public void setIdentifier(List theValue) { + myIdentifier = theValue; + } + + /** + * Gets the value(s) for name (A name associated with the patient) + * + *

+ * Definition: + * A name associated with the individual. + *

+ */ + public List getName() { + return myName; + } - /** - * Gets the value(s) for other (The other patient resource that the link refers to) - * - *

- * Definition: - * The other patient resource that the link refers to - *

- */ - public ResourceReference getOther() { - return myOther; - } + /** + * Sets the value(s) for name (A name associated with the patient) + * + *

+ * Definition: + * A name associated with the individual. + *

+ */ + public void setName(List theValue) { + myName = theValue; + } - /** - * Sets the value(s) for other (The other patient resource that the link refers to) - * - *

- * Definition: - * The other patient resource that the link refers to - *

- */ - public void setOther(ResourceReference theValue) { - myOther = theValue; - } + /** + * Gets the value(s) for telecom (A contact detail for the individual) + * + *

+ * Definition: + * A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted. + *

+ */ + public List getTelecom() { + return myTelecom; + } + + /** + * Sets the value(s) for telecom (A contact detail for the individual) + * + *

+ * Definition: + * A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted. + *

+ */ + public void setTelecom(List theValue) { + myTelecom = theValue; + } - /** - * Gets the value(s) for type (replace | refer | seealso - type of link) - * - *

- * Definition: - * The type of link between this patient resource and another patient resource. - *

- */ - public CodeDt getType() { - return myType; - } + /** + * Gets the value(s) for gender (Gender for administrative purposes) + * + *

+ * Definition: + * Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes. + *

+ */ + public CodeableConceptDt getGender() { + return myGender; + } + + /** + * Sets the value(s) for gender (Gender for administrative purposes) + * + *

+ * Definition: + * Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes. + *

+ */ + public void setGender(CodeableConceptDt theValue) { + myGender = theValue; + } - /** - * Sets the value(s) for type (replace | refer | seealso - type of link) - * - *

- * Definition: - * The type of link between this patient resource and another patient resource. - *

- */ - public void setType(CodeDt theValue) { - myType = theValue; - } + /** + * Gets the value(s) for birthDate (The date and time of birth for the individual) + * + *

+ * Definition: + * The date and time of birth for the individual + *

+ */ + public DateTimeDt getBirthDate() { + return myBirthDate; + } + + /** + * Sets the value(s) for birthDate (The date and time of birth for the individual) + * + *

+ * Definition: + * The date and time of birth for the individual + *

+ */ + public void setBirthDate(DateTimeDt theValue) { + myBirthDate = theValue; + } + + /** + * Gets the value(s) for deceased[x] (Indicates if the individual is deceased or not) + * + *

+ * Definition: + * Indicates if the individual is deceased or not + *

+ */ + public IDatatype getDeceased() { + return myDeceased; + } + + /** + * Sets the value(s) for deceased[x] (Indicates if the individual is deceased or not) + * + *

+ * Definition: + * Indicates if the individual is deceased or not + *

+ */ + public void setDeceased(IDatatype theValue) { + myDeceased = theValue; + } + + /** + * Gets the value(s) for address (Addresses for the individual) + * + *

+ * Definition: + * Addresses for the individual + *

+ */ + public List getAddress() { + return myAddress; + } + + /** + * Sets the value(s) for address (Addresses for the individual) + * + *

+ * Definition: + * Addresses for the individual + *

+ */ + public void setAddress(List theValue) { + myAddress = theValue; + } + + /** + * Gets the value(s) for maritalStatus (Marital (civil) status of a person) + * + *

+ * Definition: + * This field contains a patient's most recent marital (civil) status. + *

+ */ + public CodeableConceptDt getMaritalStatus() { + return myMaritalStatus; + } + + /** + * Sets the value(s) for maritalStatus (Marital (civil) status of a person) + * + *

+ * Definition: + * This field contains a patient's most recent marital (civil) status. + *

+ */ + public void setMaritalStatus(CodeableConceptDt theValue) { + myMaritalStatus = theValue; + } + + /** + * Gets the value(s) for multipleBirth[x] (Whether patient is part of a multiple birth) + * + *

+ * Definition: + * Indicates whether the patient is part of a multiple or indicates the actual birth order. + *

+ */ + public IDatatype getMultipleBirth() { + return myMultipleBirth; + } + + /** + * Sets the value(s) for multipleBirth[x] (Whether patient is part of a multiple birth) + * + *

+ * Definition: + * Indicates whether the patient is part of a multiple or indicates the actual birth order. + *

+ */ + public void setMultipleBirth(IDatatype theValue) { + myMultipleBirth = theValue; + } + + /** + * Gets the value(s) for photo (Image of the person) + * + *

+ * Definition: + * Image of the person + *

+ */ + public List getPhoto() { + return myPhoto; + } + + /** + * Sets the value(s) for photo (Image of the person) + * + *

+ * Definition: + * Image of the person + *

+ */ + public void setPhoto(List theValue) { + myPhoto = theValue; + } + + /** + * Gets the value(s) for contact (A contact party (e.g. guardian, partner, friend) for the patient) + * + *

+ * Definition: + * A contact party (e.g. guardian, partner, friend) for the patient + *

+ */ + public List getContact() { + return myContact; + } + + /** + * Sets the value(s) for contact (A contact party (e.g. guardian, partner, friend) for the patient) + * + *

+ * Definition: + * A contact party (e.g. guardian, partner, friend) for the patient + *

+ */ + public void setContact(List theValue) { + myContact = theValue; + } + + /** + * Gets the value(s) for animal (If this patient is an animal (non-human)) + * + *

+ * Definition: + * This element has a value if the patient is an animal + *

+ */ + public Animal getAnimal() { + return myAnimal; + } + + /** + * Sets the value(s) for animal (If this patient is an animal (non-human)) + * + *

+ * Definition: + * This element has a value if the patient is an animal + *

+ */ + public void setAnimal(Animal theValue) { + myAnimal = theValue; + } + + /** + * Gets the value(s) for communication (Languages which may be used to communicate with the patient about his or her health) + * + *

+ * Definition: + * Languages which may be used to communicate with the patient about his or her health + *

+ */ + public List getCommunication() { + return myCommunication; + } + + /** + * Sets the value(s) for communication (Languages which may be used to communicate with the patient about his or her health) + * + *

+ * Definition: + * Languages which may be used to communicate with the patient about his or her health + *

+ */ + public void setCommunication(List theValue) { + myCommunication = theValue; + } + + /** + * Gets the value(s) for careProvider (Patient's nominated care provider) + * + *

+ * Definition: + * Patient's nominated care provider + *

+ */ + public List getCareProvider() { + return myCareProvider; + } + + /** + * Sets the value(s) for careProvider (Patient's nominated care provider) + * + *

+ * Definition: + * Patient's nominated care provider + *

+ */ + public void setCareProvider(List theValue) { + myCareProvider = theValue; + } + + /** + * Gets the value(s) for managingOrganization (Organization that is the custodian of the patient record) + * + *

+ * Definition: + * Organization that is the custodian of the patient record + *

+ */ + public ResourceReference getManagingOrganization() { + return myManagingOrganization; + } + + /** + * Sets the value(s) for managingOrganization (Organization that is the custodian of the patient record) + * + *

+ * Definition: + * Organization that is the custodian of the patient record + *

+ */ + public void setManagingOrganization(ResourceReference theValue) { + myManagingOrganization = theValue; + } + + /** + * Gets the value(s) for link (Link to another patient resource that concerns the same actual person) + * + *

+ * Definition: + * Link to another patient resource that concerns the same actual person + *

+ */ + public List getLink() { + return myLink; + } + + /** + * Sets the value(s) for link (Link to another patient resource that concerns the same actual person) + * + *

+ * Definition: + * Link to another patient resource that concerns the same actual person + *

+ */ + public void setLink(List theValue) { + myLink = theValue; + } + + /** + * Gets the value(s) for active (Whether this patient's record is in active use) + * + *

+ * Definition: + * Whether this patient record is in active use + *

+ */ + public BooleanDt getActive() { + return myActive; + } + + /** + * Sets the value(s) for active (Whether this patient's record is in active use) + * + *

+ * Definition: + * Whether this patient record is in active use + *

+ */ + public void setActive(BooleanDt theValue) { + myActive = theValue; + } } diff --git a/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/BaseParser.java b/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/BaseParser.java index c10788d917f..4191f893913 100644 --- a/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/BaseParser.java +++ b/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/BaseParser.java @@ -1,12 +1,13 @@ package ca.uhn.fhir.starter; +import static org.apache.commons.lang.StringUtils.*; + import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -18,8 +19,11 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import ch.qos.logback.core.db.dialect.MySQLDialect; import ca.uhn.fhir.model.api.IDatatype; import ca.uhn.fhir.model.api.ResourceReference; +import ca.uhn.fhir.model.datatype.CodeDt; +import ca.uhn.fhir.model.datatype.CodeableConceptDt; import ca.uhn.fhir.starter.model.BaseElement; import ca.uhn.fhir.starter.model.Child; import ca.uhn.fhir.starter.model.Resource; @@ -30,6 +34,15 @@ public abstract class BaseParser { private String myDirectory; private String myOutputFile; + private int myColName; + private int myColCard; + private int myColType; + private int myColBinding; + private int myColShortName; + private int myColDefinition; + private int myColV2Mapping; + private int myColRequirements; + private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(BaseParser.class); public void parse() throws Exception { File baseDir = new File(myDirectory); @@ -49,6 +62,9 @@ public abstract class BaseParser { NodeList rows = table.getElementsByTagName("Row"); + Element defRow = (Element) rows.item(0); + parseFirstRow(defRow); + Element resourceRow = (Element) rows.item(1); Resource resource = new Resource(); parseBasicElements(resourceRow, resource); @@ -63,7 +79,7 @@ public abstract class BaseParser { continue; } - String type = cellValue(nextRow, 5); + String type = cellValue(nextRow, myColType); Child elem; if (StringUtils.isBlank(type) || type.startsWith("=")) { @@ -81,9 +97,19 @@ public abstract class BaseParser { elemName = elemName.substring(0, 1).toUpperCase() + elemName.substring(1); if (elem instanceof ResourceBlock) { elem.setReferenceType(elemName); - }else { + } else { elem.setReferenceType(elemName + "Dt"); } + + // if + // (elem.getReferenceType().equals(CodeDt.class.getSimpleName()) + // || + // elem.getReferenceType().equals(CodeableConceptDt.class.getSimpleName())) + // { + // elem.setReferenceType(elemName + "Dt<" + elem.getBinding() + + // "Enum>"); + // } + } else { elem.setReferenceType(IDatatype.class.getSimpleName()); } @@ -92,6 +118,16 @@ public abstract class BaseParser { elem.setReferenceType("List<" + elem.getReferenceType() + ">"); } + for (int childIdx = 0; childIdx < elem.getType().size(); childIdx++) { + String nextType = elem.getType().get(childIdx); + if (elem.isResourceRef()) { + nextType = nextType.substring(0, 1).toUpperCase() + nextType.substring(1); + } else { + nextType = nextType.substring(0, 1).toUpperCase() + nextType.substring(1) + "Dt"; + } + elem.getType().set(childIdx, nextType); + } + elements.put(elem.getName(), elem); BaseElement parent = elements.get(elem.getElementParentName()); if (parent == null) { @@ -105,8 +141,6 @@ public abstract class BaseParser { } - protected abstract void parseBasicElements(Element theResourceRow, BaseElement theElem); - public void setDirectory(String theDirectory) { myDirectory = theDirectory; } @@ -142,20 +176,24 @@ public abstract class BaseParser { return null; } - private void write(Resource theResource) throws IOException { File f = new File(myOutputFile); FileWriter w = new FileWriter(f, false); + ourLog.info("Writing file: {}", f.getAbsolutePath()); + VelocityContext ctx = new VelocityContext(); ctx.put("className", theResource.getName()); - ctx.put("shortName", theResource.getShortName()); - ctx.put("definition", theResource.getDefinition()); - ctx.put("requirements", theResource.getRequirement()); + ctx.put("shortName", defaultString(theResource.getShortName())); + ctx.put("definition", defaultString(theResource.getDefinition())); + ctx.put("requirements", defaultString(theResource.getRequirement())); ctx.put("children", theResource.getChildren()); ctx.put("resourceBlockChildren", theResource.getResourceBlockChildren()); VelocityEngine v = new VelocityEngine(); + v.setProperty("resource.loader", "cp"); + v.setProperty("cp.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); + InputStream templateIs = ResourceParser.class.getResourceAsStream(getTemplate()); InputStreamReader templateReader = new InputStreamReader(templateIs); v.evaluate(ctx, w, "", templateReader); @@ -167,4 +205,62 @@ public abstract class BaseParser { protected abstract String getTemplate(); + private void parseFirstRow(Element theDefRow) { + for (int i = 0; i < 20; i++) { + String nextName = cellValue(theDefRow, i); + if (nextName == null) { + continue; + } + nextName = nextName.toLowerCase().trim().replace(".", ""); + if ("element".equals(nextName)) { + myColName = i; + } else if ("card".equals(nextName)) { + myColCard = i; + } else if ("type".equals(nextName)) { + myColType = i; + } else if ("binding".equals(nextName)) { + myColBinding = i; + } else if ("short name".equals(nextName)) { + myColShortName = i; + } else if ("definition".equals(nextName)) { + myColDefinition = i; + } else if ("requirements".equals(nextName)) { + myColRequirements = i; + } else if ("v2 mapping".equals(nextName)) { + myColV2Mapping = i; + } + } + } + + protected void parseBasicElements(Element theRowXml, BaseElement theTarget) { + String name = cellValue(theRowXml, myColName); + theTarget.setName(name); + + int lastDot = name.lastIndexOf('.'); + if (lastDot == -1) { + theTarget.setElementName(name); + } else { + String elementName = name.substring(lastDot + 1); + String elementParentName = name.substring(0, lastDot); + theTarget.setElementName(elementName); + theTarget.setElementParentName(elementParentName); + } + + String cardValue = cellValue(theRowXml, myColCard); + if (cardValue != null && cardValue.contains("..")) { + String[] split = cardValue.split("\\.\\."); + theTarget.setCardMin(split[0]); + theTarget.setCardMax(split[1]); + } + + String type = cellValue(theRowXml, myColType); + theTarget.setTypeFromString(type); + + theTarget.setBinding(cellValue(theRowXml, myColBinding)); + theTarget.setShortName(cellValue(theRowXml, myColShortName)); + theTarget.setDefinition(cellValue(theRowXml, myColDefinition)); + theTarget.setRequirement(cellValue(theRowXml, myColRequirements)); + theTarget.setV2Mapping(cellValue(theRowXml, myColV2Mapping)); + } + } diff --git a/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/DatatypeParser.java b/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/DatatypeParser.java index ea015745b96..4c3047f13d5 100644 --- a/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/DatatypeParser.java +++ b/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/DatatypeParser.java @@ -1,8 +1,5 @@ package ca.uhn.fhir.starter; -import java.util.Arrays; - -import org.apache.commons.lang3.StringUtils; import org.w3c.dom.Element; import ca.uhn.fhir.starter.model.BaseElement; @@ -25,36 +22,38 @@ public class DatatypeParser extends BaseParser { return myDatatypeName.toLowerCase() + ".xml"; } - @Override - protected void parseBasicElements(Element theRowXml, BaseElement theTarget) { - String name = cellValue(theRowXml, 0); - theTarget.setName(name); - - int lastDot = name.lastIndexOf('.'); - if (lastDot == -1) { - theTarget.setElementName(name); - } else { - String elementName = name.substring(lastDot + 1); - String elementParentName = name.substring(0, lastDot); - theTarget.setElementName(elementName); - theTarget.setElementParentName(elementParentName); - } - - String cardValue = cellValue(theRowXml, 1); - if (cardValue != null && cardValue.contains("..")) { - String[] split = cardValue.split("\\.\\."); - theTarget.setCardMin(split[0]); - theTarget.setCardMax(split[1]); - } - - String type = cellValue(theRowXml, 4); - theTarget.setTypeFromString(type); - - theTarget.setShortName(cellValue(theRowXml, 6)); - theTarget.setDefinition(cellValue(theRowXml, 7)); - theTarget.setRequirement(cellValue(theRowXml, 6)); - theTarget.setV2Mapping(cellValue(theRowXml, 13)); - } +// @Override +// protected void parseBasicElements(Element theRowXml, BaseElement theTarget) { +// String name = cellValue(theRowXml, 0); +// theTarget.setName(name); +// +// int lastDot = name.lastIndexOf('.'); +// if (lastDot == -1) { +// theTarget.setElementName(name); +// } else { +// String elementName = name.substring(lastDot + 1); +// String elementParentName = name.substring(0, lastDot); +// theTarget.setElementName(elementName); +// theTarget.setElementParentName(elementParentName); +// } +// +// String cardValue = cellValue(theRowXml, 1); +// if (cardValue != null && cardValue.contains("..")) { +// String[] split = cardValue.split("\\.\\."); +// theTarget.setCardMin(split[0]); +// theTarget.setCardMax(split[1]); +// } +// +// +// String type = cellValue(theRowXml, 4); +// theTarget.setTypeFromString(type); +// +// theTarget.setBinding(cellValue(theRowXml, 5)); +// theTarget.setShortName(cellValue(theRowXml, 6)); +// theTarget.setDefinition(cellValue(theRowXml, 7)); +// theTarget.setRequirement(cellValue(theRowXml, 6)); +// theTarget.setV2Mapping(cellValue(theRowXml, 13)); +// } } diff --git a/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/ResourceParser.java b/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/ResourceParser.java index c609b8f1021..482f55c96b9 100644 --- a/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/ResourceParser.java +++ b/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/ResourceParser.java @@ -1,8 +1,5 @@ package ca.uhn.fhir.starter; -import org.w3c.dom.Element; - -import ca.uhn.fhir.starter.model.BaseElement; public class ResourceParser extends BaseParser { private String myResourceName; @@ -21,6 +18,38 @@ public class ResourceParser extends BaseParser { return "/resource.vm"; } +// @Override +// protected void parseBasicElements(Element theRowXml, BaseElement theTarget) { +// String name = cellValue(theRowXml, 0); +// theTarget.setName(name); +// +// int lastDot = name.lastIndexOf('.'); +// if (lastDot == -1) { +// theTarget.setElementName(name); +// } else { +// String elementName = name.substring(lastDot + 1); +// String elementParentName = name.substring(0, lastDot); +// theTarget.setElementName(elementName); +// theTarget.setElementParentName(elementParentName); +// } +// +// String cardValue = cellValue(theRowXml, 1); +// if (cardValue != null && cardValue.contains("..")) { +// String[] split = cardValue.split("\\.\\."); +// theTarget.setCardMin(split[0]); +// theTarget.setCardMax(split[1]); +// } +// +// String type = cellValue(theRowXml, 5); +// theTarget.setTypeFromString(type); +// +// theTarget.setBinding(cellValue(theRowXml, 6)); +// theTarget.setShortName(cellValue(theRowXml, 7)); +// theTarget.setDefinition(cellValue(theRowXml, 8)); +// theTarget.setRequirement(cellValue(theRowXml, 9)); +// theTarget.setV2Mapping(cellValue(theRowXml, 14)); +// } + public static void main(String[] args) throws Exception { ResourceParser p = new ResourceParser(); p.setDirectory("src/test/resources/res"); @@ -30,48 +59,25 @@ public class ResourceParser extends BaseParser { DatatypeParser d = new DatatypeParser(); d.setDirectory("src/test/resources/dt"); - d.setDatatypeName ( "humanname"); + d.setDatatypeName("humanname"); d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/HumanNameDt.java"); d.parse(); - d.setDatatypeName ( "contact"); + d.setDatatypeName("contact"); d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/ContactDt.java"); d.parse(); - d.setDatatypeName ( "address"); + d.setDatatypeName("address"); d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/AddressDt.java"); d.parse(); + d.setDatatypeName("narrative"); + d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/NarrativeDt.java"); + d.parse(); + + d.setDatatypeName("quantity"); + d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/QuantityDt.java"); + d.parse(); + } - - @Override - protected void parseBasicElements(Element theRowXml, BaseElement theTarget) { - String name = cellValue(theRowXml, 0); - theTarget.setName(name); - - int lastDot = name.lastIndexOf('.'); - if (lastDot == -1) { - theTarget.setElementName(name); - } else { - String elementName = name.substring(lastDot + 1); - String elementParentName = name.substring(0, lastDot); - theTarget.setElementName(elementName); - theTarget.setElementParentName(elementParentName); - } - - String cardValue = cellValue(theRowXml, 1); - if (cardValue != null && cardValue.contains("..")) { - String[] split = cardValue.split("\\.\\."); - theTarget.setCardMin(split[0]); - theTarget.setCardMax(split[1]); - } - - String type = cellValue(theRowXml, 5); - theTarget.setTypeFromString(type); - - theTarget.setShortName(cellValue(theRowXml, 7)); - theTarget.setDefinition(cellValue(theRowXml, 8)); - theTarget.setRequirement(cellValue(theRowXml, 9)); - theTarget.setV2Mapping(cellValue(theRowXml, 14)); - } } \ No newline at end of file diff --git a/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/model/BaseElement.java b/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/model/BaseElement.java index 39465d2faa0..8833b01d9b5 100644 --- a/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/model/BaseElement.java +++ b/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/model/BaseElement.java @@ -1,13 +1,13 @@ package ca.uhn.fhir.starter.model; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import org.apache.commons.lang3.StringUtils; public abstract class BaseElement { + private String myBinding; private String myCardMax; private String myCardMin; private List myChildren; @@ -17,20 +17,17 @@ public abstract class BaseElement { private String myElementParentName; private String myName; private String myRequirement; + private boolean myResourceRef = false; private String myShortName; + private List myType; + private String myV2Mapping; - public List getResourceBlockChildren() { - ArrayList retVal = new ArrayList(); - for (BaseElement next : getChildren()) { - if (next instanceof ResourceBlock) { - retVal.add((ResourceBlock) next); - } - } - return retVal; + public String getBinding() { + return myBinding; } - + public String getCardMax() { return myCardMax; } @@ -70,13 +67,23 @@ public abstract class BaseElement { return myRequirement; } + public List getResourceBlockChildren() { + ArrayList retVal = new ArrayList(); + for (BaseElement next : getChildren()) { + if (next instanceof ResourceBlock) { + retVal.add((ResourceBlock) next); + } + } + return retVal; + } + public String getShortName() { return myShortName; } public List getType() { - if (myType==null) { - myType=new ArrayList(); + if (myType == null) { + myType = new ArrayList(); } return myType; } @@ -85,6 +92,18 @@ public abstract class BaseElement { return myV2Mapping; } + public boolean isHasMultipleTypes() { + return myType.size() > 1; + } + + public boolean isResourceRef() { + return myResourceRef; + } + + public void setBinding(String theCellValue) { + myBinding = theCellValue; + } + public void setCardMax(String theCardMax) { myCardMax = theCardMax; } @@ -121,24 +140,14 @@ public abstract class BaseElement { myShortName = theShortName; } - public void setV2Mapping(String theV2Mapping) { - myV2Mapping = theV2Mapping; - } - - private boolean myResourceRef = false; - - public boolean isResourceRef() { - return myResourceRef; - } - public void setTypeFromString(String theType) { - if (theType==null) { + if (theType == null) { return; } String typeString = theType; if (typeString.startsWith("Resource(")) { typeString = typeString.substring("Resource(".length(), typeString.length() - 1); - myResourceRef=true; + myResourceRef = true; } if (StringUtils.isNotBlank(typeString)) { String[] types = typeString.replace("=", "").split("\\|"); @@ -146,7 +155,11 @@ public abstract class BaseElement { getType().add(string.trim()); } } - + + } + + public void setV2Mapping(String theV2Mapping) { + myV2Mapping = theV2Mapping; } } diff --git a/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/model/Child.java b/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/model/Child.java index 7e76fd8d439..5ae7f8b64da 100644 --- a/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/model/Child.java +++ b/hapi-fhir-starter/src/main/java/ca/uhn/fhir/starter/model/Child.java @@ -31,11 +31,19 @@ public class Child extends BaseElement { } public String getMethodName() { + String elementName = getElementNameSimplified(); + elementName = elementName.substring(0,1).toUpperCase() + elementName.substring(1); + return elementName; + } + + /** + * Strips off "[x]" + */ + public String getElementNameSimplified() { String elementName = getElementName(); if (elementName.endsWith("[x]")) { elementName = elementName.substring(0, elementName.length() - 3); } - elementName = elementName.substring(0,1).toUpperCase() + elementName.substring(1); return elementName; } diff --git a/hapi-fhir-starter/src/main/resources/dt_composite.vm b/hapi-fhir-starter/src/main/resources/dt_composite.vm index ad4deedd670..bd8933336d5 100644 --- a/hapi-fhir-starter/src/main/resources/dt_composite.vm +++ b/hapi-fhir-starter/src/main/resources/dt_composite.vm @@ -1,3 +1,5 @@ +#parse ( "templates.vm" ) + package ca.uhn.fhir.model.datatype; import java.util.*; @@ -6,7 +8,7 @@ import ca.uhn.fhir.model.api.annotation.*; import ca.uhn.fhir.model.datatype.*; /** - * HAPI/FHIR ${resourceName} Datatype + * HAPI/FHIR ${className} Datatype * (${shortName}) * *

@@ -22,36 +24,7 @@ import ca.uhn.fhir.model.datatype.*; @DatatypeDef(name="${className}") public class ${className}Dt extends BaseCompositeDatatype { -#foreach ( $child in $children ) - @Child(name="${child.elementName}", order=${foreach.index}, min=${child.cardMin}, max=${child.cardMaxForChildAnnotation}) - private ${child.referenceType} ${child.variableName}; - -#end -#foreach ( $child in $children ) - /** - * Gets the value(s) for ${child.elementName} (${child.shortName}) - * - *

- * Definition: - * ${child.definition} - *

- */ - public ${child.referenceType} get${child.methodName}() { - return ${child.variableName}; - } - - /** - * Sets the value(s) for ${child.elementName} (${child.shortName}) - * - *

- * Definition: - * ${child.definition} - *

- */ - public void set${child.methodName}(${child.referenceType} theValue) { - ${child.variableName} = theValue; - } - -#end +#childVars( $children ) +#childAccessors( $children ) } \ No newline at end of file diff --git a/hapi-fhir-starter/src/main/resources/resource.vm b/hapi-fhir-starter/src/main/resources/resource.vm index dd56dbcb233..faacd1a40d2 100644 --- a/hapi-fhir-starter/src/main/resources/resource.vm +++ b/hapi-fhir-starter/src/main/resources/resource.vm @@ -1,3 +1,5 @@ +#parse ( "templates.vm" ) + package ca.uhn.fhir.model.resource; import java.util.*; @@ -19,41 +21,11 @@ import ca.uhn.fhir.model.datatype.*; * ${requirements} *

*/ -@ResourceDef(name="${resourceName}") +@ResourceDef(name="${className}") public class ${className} extends BaseResource { -#foreach ( $child in $children ) - @Child(name="${child.elementName}", order=${foreach.index}, min=${child.cardMin}, max=${child.cardMaxForChildAnnotation}) - private ${child.referenceType} ${child.variableName}; - -#end - -#foreach ( $child in $children ) - /** - * Gets the value(s) for ${child.elementName} (${child.shortName}) - * - *

- * Definition: - * ${child.definition} - *

- */ - public ${child.referenceType} get${child.methodName}() { - return ${child.variableName}; - } - - /** - * Sets the value(s) for ${child.elementName} (${child.shortName}) - * - *

- * Definition: - * ${child.definition} - *

- */ - public void set${child.methodName}(${child.referenceType} theValue) { - ${child.variableName} = theValue; - } - -#end +#childVars( $children ) +#childAccessors( $children ) #foreach ( $child in $resourceBlockChildren ) /** @@ -66,37 +38,8 @@ public class ${className} extends BaseResource { */ @Block(name="${child.name}") public static class ${child.className} { -#foreach ( $subChild in $child.children ) - @Child(name="${subChild.elementName}", order=${foreach.index}, min=${subChild.cardMin}, max=${subChild.cardMaxForChildAnnotation}) - private ${subChild.referenceType} ${subChild.variableName}; - -#end -#foreach ( $subChild in $child.children ) - /** - * Gets the value(s) for ${subChild.elementName} (${subChild.shortName}) - * - *

- * Definition: - * ${subChild.definition} - *

- */ - public ${subChild.referenceType} get${subChild.methodName}() { - return ${subChild.variableName}; - } - - /** - * Sets the value(s) for ${subChild.elementName} (${subChild.shortName}) - * - *

- * Definition: - * ${subChild.definition} - *

- */ - public void set${subChild.methodName}(${subChild.referenceType} theValue) { - ${subChild.variableName} = theValue; - } - -#end +#childVars( $child.children ) +#childAccessors( $child.children ) } #end diff --git a/hapi-fhir-starter/src/main/resources/templates.vm b/hapi-fhir-starter/src/main/resources/templates.vm new file mode 100644 index 00000000000..c625d7b2f7a --- /dev/null +++ b/hapi-fhir-starter/src/main/resources/templates.vm @@ -0,0 +1,51 @@ +#macro ( childVars $childElements ) +#foreach ( $child in $children ) +#if ($child.resourceRef) + @Child(name="${child.elementNameSimplified}", order=${foreach.index}, min=${child.cardMin}, max=${child.cardMaxForChildAnnotation}) + @ChildResource(types= { +#foreach ($nextType in ${child.type}) + ${nextType}.class, +#end + }) +#elseif ($!child.hasMultipleTypes) + @Child(name="${child.elementNameSimplified}", order=${foreach.index}, min=${child.cardMin}, max=${child.cardMaxForChildAnnotation}, choice=@Choice(types= { +#foreach ($nextType in ${child.type}) + ${nextType}.class, +#end + })) +#else + @Child(name="${child.elementNameSimplified}", order=${foreach.index}, min=${child.cardMin}, max=${child.cardMaxForChildAnnotation}) +#end + private ${child.referenceType} ${child.variableName}; + +#end +#end + +#macro ( childAccessors $childElements ) +#foreach ( $child in $children ) + /** + * Gets the value(s) for ${child.elementName} (${child.shortName}) + * + *

+ * Definition: + * ${child.definition} + *

+ */ + public ${child.referenceType} get${child.methodName}() { + return ${child.variableName}; + } + + /** + * Sets the value(s) for ${child.elementName} (${child.shortName}) + * + *

+ * Definition: + * ${child.definition} + *

+ */ + public void set${child.methodName}(${child.referenceType} theValue) { + ${child.variableName} = theValue; + } + +#end +#end diff --git a/hapi-fhir-starter/src/test/resources/dt/narrative.xml b/hapi-fhir-starter/src/test/resources/dt/narrative.xml new file mode 100644 index 00000000000..3832ba8023a --- /dev/null +++ b/hapi-fhir-starter/src/test/resources/dt/narrative.xml @@ -0,0 +1,332 @@ + + + + + Grahame + Lloyd McKenzie + 2012-03-19T11:21:04Z + 2012-07-14T16:02:18Z + 14.00 + + + + + + 8055 + 24195 + 4080 + 4365 + 1 + False + False + + + + + + + + + + + + + + + + + + + + + + + + + + + Element + Card. + Inv. + Type + Binding + Short Name + Definition + Requirements + Comments + Condition + RIM Mapping + v2 Mapping + To Do + Committee Notes + + + Narrative + + + Type + A human-readable formatted text, including images + A human-readable formatted text, including images + N/A + + + Narrative.status + 1..1 + code + NarrativeStatus + generated | extensions | additional + The status of the narrative - whether it's entirely generated (from just the defined data or the extensions too), or whether a human authored it and it may contain additional data + N/A + + + Narrative.div + 1..1 + xhtml + Limited xhtml content + The actual narrative content, a stripped down version of XHTML + The contents of the html element are an XHTML fragment containing only the basic html formatting elements described in chapters 7-11 and 15 of the HTML 4.0 standard, <a> elements (either name or href), images and internally contained stylesheets. The XHTML content may not contain a head, a body, external stylesheet references, scripts, forms, base/link/xlink, frames, iframes and objects. + N/A + +
+ + +
+