Starting bundle processing
This commit is contained in:
parent
352db3cc75
commit
79a48611df
|
@ -1,31 +1,40 @@
|
||||||
package ca.uhn.fhir.model.api;
|
package ca.uhn.fhir.model.api;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class Bundle {
|
import ca.uhn.fhir.model.primitive.InstantDt;
|
||||||
|
import ca.uhn.fhir.model.primitive.IntegerDt;
|
||||||
|
import ca.uhn.fhir.model.primitive.StringDt;
|
||||||
|
|
||||||
private String myAuthorDevice;
|
public class Bundle implements IElement {
|
||||||
private String myAuthorName;
|
|
||||||
|
private StringDt myAuthorDevice;
|
||||||
|
private StringDt myAuthorName;
|
||||||
private List<BundleEntry> myEntries;
|
private List<BundleEntry> myEntries;
|
||||||
private String myId;
|
private StringDt myId;
|
||||||
private String myLinkBase;
|
private StringDt myLinkBase;
|
||||||
private String myLinkFirst;
|
private StringDt myLinkFirst;
|
||||||
private String myLinkLast;
|
private StringDt myLinkLast;
|
||||||
private String myLinkNext;
|
private StringDt myLinkNext;
|
||||||
private String myLinkPrevious;
|
private StringDt myLinkPrevious;
|
||||||
private String myLinkSelf;
|
private StringDt myLinkSelf;
|
||||||
private Date myPublished;
|
private InstantDt myPublished;
|
||||||
private String myTitle;
|
private StringDt myTitle;
|
||||||
private Integer myTotalResults;
|
private IntegerDt myTotalResults;
|
||||||
private Date myUpdated;
|
private InstantDt myUpdated;
|
||||||
|
|
||||||
public String getAuthorDevice() {
|
public StringDt getAuthorDevice() {
|
||||||
|
if (myAuthorDevice == null) {
|
||||||
|
myAuthorDevice = new StringDt();
|
||||||
|
}
|
||||||
return myAuthorDevice;
|
return myAuthorDevice;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAuthorName() {
|
public StringDt getAuthorName() {
|
||||||
|
if (myAuthorName == null) {
|
||||||
|
myAuthorName = new StringDt();
|
||||||
|
}
|
||||||
return myAuthorName;
|
return myAuthorName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,100 +45,83 @@ public class Bundle {
|
||||||
return myEntries;
|
return myEntries;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getId() {
|
public StringDt getId() {
|
||||||
|
if (myId == null) {
|
||||||
|
myId = new StringDt();
|
||||||
|
}
|
||||||
return myId;
|
return myId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLinkBase() {
|
public StringDt getLinkBase() {
|
||||||
|
if (myLinkBase == null) {
|
||||||
|
myLinkBase = new StringDt();
|
||||||
|
}
|
||||||
return myLinkBase;
|
return myLinkBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLinkFirst() {
|
public StringDt getLinkFirst() {
|
||||||
|
if (myLinkFirst == null) {
|
||||||
|
myLinkFirst = new StringDt();
|
||||||
|
}
|
||||||
return myLinkFirst;
|
return myLinkFirst;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLinkLast() {
|
public StringDt getLinkLast() {
|
||||||
|
if (myLinkLast == null) {
|
||||||
|
myLinkLast = new StringDt();
|
||||||
|
}
|
||||||
return myLinkLast;
|
return myLinkLast;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLinkNext() {
|
public StringDt getLinkNext() {
|
||||||
|
if (myLinkNext == null) {
|
||||||
|
myLinkNext = new StringDt();
|
||||||
|
}
|
||||||
return myLinkNext;
|
return myLinkNext;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLinkPrevious() {
|
public StringDt getLinkPrevious() {
|
||||||
|
if (myLinkPrevious == null) {
|
||||||
|
myLinkPrevious = new StringDt();
|
||||||
|
}
|
||||||
return myLinkPrevious;
|
return myLinkPrevious;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLinkSelf() {
|
public StringDt getLinkSelf() {
|
||||||
|
if (myLinkSelf == null) {
|
||||||
|
myLinkSelf = new StringDt();
|
||||||
|
}
|
||||||
return myLinkSelf;
|
return myLinkSelf;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getPublished() {
|
public InstantDt getPublished() {
|
||||||
|
if (myPublished == null) {
|
||||||
|
myPublished = new InstantDt();
|
||||||
|
}
|
||||||
return myPublished;
|
return myPublished;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTitle() {
|
public StringDt getTitle() {
|
||||||
|
if (myTitle == null) {
|
||||||
|
myTitle= new StringDt();
|
||||||
|
}
|
||||||
return myTitle;
|
return myTitle;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getTotalResults() {
|
public IntegerDt getTotalResults() {
|
||||||
|
if (myTotalResults== null) {
|
||||||
|
myTotalResults= new IntegerDt();
|
||||||
|
}
|
||||||
return myTotalResults;
|
return myTotalResults;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getUpdated() {
|
public InstantDt getUpdated() {
|
||||||
|
if (myUpdated == null) {
|
||||||
|
myUpdated= new InstantDt();
|
||||||
|
}
|
||||||
return myUpdated;
|
return myUpdated;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAuthorDevice(String theAuthorDevice) {
|
|
||||||
myAuthorDevice = theAuthorDevice;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAuthorName(String theAuthorName) {
|
|
||||||
myAuthorName = theAuthorName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String theId) {
|
|
||||||
myId = theId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLinkBase(String theLinkBase) {
|
|
||||||
myLinkBase = theLinkBase;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLinkFirst(String theLinkFirst) {
|
|
||||||
myLinkFirst = theLinkFirst;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLinkLast(String theLinkLast) {
|
|
||||||
myLinkLast = theLinkLast;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLinkNext(String theLinkNext) {
|
|
||||||
myLinkNext = theLinkNext;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLinkPrevious(String theLinkPrevious) {
|
|
||||||
myLinkPrevious = theLinkPrevious;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLinkSelf(String theLinkSelf) {
|
|
||||||
myLinkSelf = theLinkSelf;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPublished(Date thePublished) {
|
|
||||||
myPublished = thePublished;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTitle(String theTitle) {
|
|
||||||
myTitle = theTitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTotalResults(Integer theTotalResults) {
|
|
||||||
myTotalResults = theTotalResults;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUpdated(Date theUpdated) {
|
|
||||||
myUpdated = theUpdated;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,12 +5,12 @@ import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
import ca.uhn.fhir.model.api.IDatatype;
|
import ca.uhn.fhir.model.api.IElement;
|
||||||
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target(value= {ElementType.FIELD})
|
@Target(value= {ElementType.FIELD})
|
||||||
public @interface Choice {
|
public @interface Choice {
|
||||||
|
|
||||||
Class<? extends IDatatype>[] types() default {};
|
Class<? extends IElement>[] types() default {};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package ca.uhn.fhir.model.dstu.composite;
|
package ca.uhn.fhir.model.dstu.composite;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package ca.uhn.fhir.model.dstu.composite;
|
package ca.uhn.fhir.model.dstu.composite;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package ca.uhn.fhir.model.dstu.composite;
|
package ca.uhn.fhir.model.dstu.composite;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package ca.uhn.fhir.model.dstu.composite;
|
package ca.uhn.fhir.model.dstu.composite;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package ca.uhn.fhir.model.dstu.composite;
|
package ca.uhn.fhir.model.dstu.composite;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package ca.uhn.fhir.model.dstu.resource;
|
package ca.uhn.fhir.model.dstu.resource;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -530,5 +534,4 @@ public class Device implements IResource {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package ca.uhn.fhir.model.dstu.resource;
|
package ca.uhn.fhir.model.dstu.resource;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -314,7 +318,6 @@ public class Group implements IResource {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Block class for child element: <b>Group.characteristic</b> (Trait of group members)
|
* Block class for child element: <b>Group.characteristic</b> (Trait of group members)
|
||||||
*
|
*
|
||||||
|
@ -325,135 +328,29 @@ public class Group implements IResource {
|
||||||
*/
|
*/
|
||||||
@Block(name="Group.characteristic")
|
@Block(name="Group.characteristic")
|
||||||
public static class Characteristic implements IResourceBlock {
|
public static class Characteristic implements IResourceBlock {
|
||||||
@Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=1)
|
|
||||||
private IdentifierDt myIdentifier;
|
|
||||||
|
|
||||||
@Child(name="type", type=CodeDt.class, order=1, min=1, max=1)
|
@Child(name="code", type=CodeableConceptDt.class, order=0, min=1, max=1)
|
||||||
private CodeDt myType;
|
|
||||||
|
|
||||||
@Child(name="actual", type=BooleanDt.class, order=2, min=1, max=1)
|
|
||||||
private BooleanDt myActual;
|
|
||||||
|
|
||||||
@Child(name="code", type=CodeableConceptDt.class, order=3, min=0, max=1)
|
|
||||||
private CodeableConceptDt myCode;
|
private CodeableConceptDt myCode;
|
||||||
|
|
||||||
@Child(name="name", type=StringDt.class, order=4, min=0, max=1)
|
@Child(name="value", order=1, min=1, max=1, choice=@Choice(types= {
|
||||||
private StringDt myName;
|
CodeableConceptDt.class,
|
||||||
|
BooleanDt.class,
|
||||||
|
QuantityDt.class,
|
||||||
|
RangeDt.class,
|
||||||
|
}))
|
||||||
|
private IDatatype myValue;
|
||||||
|
|
||||||
@Child(name="quantity", type=IntegerDt.class, order=5, min=0, max=1)
|
@Child(name="exclude", type=BooleanDt.class, order=2, min=1, max=1)
|
||||||
private IntegerDt myQuantity;
|
private BooleanDt myExclude;
|
||||||
|
|
||||||
@Child(name="characteristic", order=6, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
private List<Characteristic> myCharacteristic;
|
|
||||||
|
|
||||||
@Child(name="member", order=7, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
@ChildResource(types= {
|
|
||||||
Patient.class,
|
|
||||||
Practitioner.class,
|
|
||||||
Device.class,
|
|
||||||
Medication.class,
|
|
||||||
Substance.class,
|
|
||||||
})
|
|
||||||
private List<ResourceReference> myMember;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>identifier</b> (Unique id).
|
* Gets the value(s) for <b>code</b> (Kind of characteristic).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A unique business identifier for this group
|
* A code that identifies the kind of trait being asserted
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public IdentifierDt getIdentifier() {
|
|
||||||
if (myIdentifier == null) {
|
|
||||||
myIdentifier = new IdentifierDt();
|
|
||||||
}
|
|
||||||
return myIdentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>identifier</b> (Unique id)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A unique business identifier for this group
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setIdentifier(IdentifierDt theValue) {
|
|
||||||
myIdentifier = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>type</b> (person | animal | practitioner | device | medication | substance).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Identifies the broad classification of the kind of resources the group includes
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public CodeDt getType() {
|
|
||||||
if (myType == null) {
|
|
||||||
myType = new CodeDt();
|
|
||||||
}
|
|
||||||
return myType;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>type</b> (person | animal | practitioner | device | medication | substance)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Identifies the broad classification of the kind of resources the group includes
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setType(CodeDt theValue) {
|
|
||||||
myType = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>actual</b> (Descriptive or actual).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public BooleanDt getActual() {
|
|
||||||
if (myActual == null) {
|
|
||||||
myActual = new BooleanDt();
|
|
||||||
}
|
|
||||||
return myActual;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>actual</b> (Descriptive or actual)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setActual(BooleanDt theValue) {
|
|
||||||
myActual = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>code</b> (Kind of Group members).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Provides a specific type of resource the group includes. E.g. "cow", "syringe", etc.
|
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public CodeableConceptDt getCode() {
|
public CodeableConceptDt getCode() {
|
||||||
|
@ -464,11 +361,11 @@ public class Group implements IResource {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>code</b> (Kind of Group members)
|
* Sets the value(s) for <b>code</b> (Kind of characteristic)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* Provides a specific type of resource the group includes. E.g. "cow", "syringe", etc.
|
* A code that identifies the kind of trait being asserted
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setCode(CodeableConceptDt theValue) {
|
public void setCode(CodeableConceptDt theValue) {
|
||||||
|
@ -477,135 +374,66 @@ public class Group implements IResource {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>name</b> (Label for Group).
|
* Gets the value(s) for <b>value[x]</b> (Value held by characteristic).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A label assigned to the group for human identification and communication
|
* The value of the trait that holds (or does not hold - see 'exclude') for members of the group
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public StringDt getName() {
|
public IDatatype getValue() {
|
||||||
if (myName == null) {
|
return myValue;
|
||||||
myName = new StringDt();
|
|
||||||
}
|
|
||||||
return myName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>name</b> (Label for Group)
|
* Sets the value(s) for <b>value[x]</b> (Value held by characteristic)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A label assigned to the group for human identification and communication
|
* The value of the trait that holds (or does not hold - see 'exclude') for members of the group
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setName(StringDt theValue) {
|
public void setValue(IDatatype theValue) {
|
||||||
myName = theValue;
|
myValue = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>name</b> (Label for Group)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A label assigned to the group for human identification and communication
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setName( String theString) {
|
|
||||||
myName = new StringDt(theString);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>quantity</b> (Number of members).
|
* Gets the value(s) for <b>exclude</b> (Group includes or excludes).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A count of the number of resource instances that are part of the group
|
* If true, indicates the characteristic is one that is NOT held by members of the group
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public IntegerDt getQuantity() {
|
public BooleanDt getExclude() {
|
||||||
if (myQuantity == null) {
|
if (myExclude == null) {
|
||||||
myQuantity = new IntegerDt();
|
myExclude = new BooleanDt();
|
||||||
}
|
}
|
||||||
return myQuantity;
|
return myExclude;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>quantity</b> (Number of members)
|
* Sets the value(s) for <b>exclude</b> (Group includes or excludes)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A count of the number of resource instances that are part of the group
|
* If true, indicates the characteristic is one that is NOT held by members of the group
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setQuantity(IntegerDt theValue) {
|
public void setExclude(BooleanDt theValue) {
|
||||||
myQuantity = theValue;
|
myExclude = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>characteristic</b> (Trait of group members).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Identifies the traits shared by members of the group
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<Characteristic> getCharacteristic() {
|
|
||||||
if (myCharacteristic == null) {
|
|
||||||
myCharacteristic = new ArrayList<Characteristic>();
|
|
||||||
}
|
|
||||||
return myCharacteristic;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>characteristic</b> (Trait of group members)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Identifies the traits shared by members of the group
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setCharacteristic(List<Characteristic> theValue) {
|
|
||||||
myCharacteristic = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>member</b> (Who is in group).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Identifies the resource instances that are members of the group.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<ResourceReference> getMember() {
|
|
||||||
return myMember;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>member</b> (Who is in group)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Identifies the resource instances that are members of the group.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setMember(List<ResourceReference> theValue) {
|
|
||||||
myMember = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package ca.uhn.fhir.model.dstu.resource;
|
package ca.uhn.fhir.model.dstu.resource;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -459,7 +463,6 @@ public class Location implements IResource {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Block class for child element: <b>Location.position</b> (The absolute geographic location )
|
* Block class for child element: <b>Location.position</b> (The absolute geographic location )
|
||||||
*
|
*
|
||||||
|
@ -470,432 +473,110 @@ public class Location implements IResource {
|
||||||
*/
|
*/
|
||||||
@Block(name="Location.position")
|
@Block(name="Location.position")
|
||||||
public static class Position implements IResourceBlock {
|
public static class Position implements IResourceBlock {
|
||||||
@Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=1)
|
|
||||||
private IdentifierDt myIdentifier;
|
|
||||||
|
|
||||||
@Child(name="name", type=StringDt.class, order=1, min=0, max=1)
|
@Child(name="longitude", type=DecimalDt.class, order=0, min=1, max=1)
|
||||||
private StringDt myName;
|
private DecimalDt myLongitude;
|
||||||
|
|
||||||
@Child(name="description", type=StringDt.class, order=2, min=0, max=1)
|
@Child(name="latitude", type=DecimalDt.class, order=1, min=1, max=1)
|
||||||
private StringDt myDescription;
|
private DecimalDt myLatitude;
|
||||||
|
|
||||||
@Child(name="type", type=CodeableConceptDt.class, order=3, min=0, max=1)
|
@Child(name="altitude", type=DecimalDt.class, order=2, min=0, max=1)
|
||||||
private CodeableConceptDt myType;
|
private DecimalDt myAltitude;
|
||||||
|
|
||||||
@Child(name="telecom", type=ContactDt.class, order=4, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
private List<ContactDt> myTelecom;
|
|
||||||
|
|
||||||
@Child(name="address", type=AddressDt.class, order=5, min=0, max=1)
|
|
||||||
private AddressDt myAddress;
|
|
||||||
|
|
||||||
@Child(name="physicalType", type=CodeableConceptDt.class, order=6, min=0, max=1)
|
|
||||||
private CodeableConceptDt myPhysicalType;
|
|
||||||
|
|
||||||
@Child(name="position", order=7, min=0, max=1)
|
|
||||||
private Position myPosition;
|
|
||||||
|
|
||||||
@Child(name="managingOrganization", order=8, min=0, max=1)
|
|
||||||
@ChildResource(types= {
|
|
||||||
Organization.class,
|
|
||||||
})
|
|
||||||
private ResourceReference myManagingOrganization;
|
|
||||||
|
|
||||||
@Child(name="status", type=CodeDt.class, order=9, min=0, max=1)
|
|
||||||
private CodeDt myStatus;
|
|
||||||
|
|
||||||
@Child(name="partOf", order=10, min=0, max=1)
|
|
||||||
@ChildResource(types= {
|
|
||||||
Location.class,
|
|
||||||
})
|
|
||||||
private ResourceReference myPartOf;
|
|
||||||
|
|
||||||
@Child(name="mode", type=CodeDt.class, order=11, min=0, max=1)
|
|
||||||
private CodeDt myMode;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>identifier</b> (Unique code or number identifying the location to its users).
|
* Gets the value(s) for <b>longitude</b> (Longitude as expressed in KML).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* Unique code or number identifying the location to its users
|
* Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public IdentifierDt getIdentifier() {
|
public DecimalDt getLongitude() {
|
||||||
if (myIdentifier == null) {
|
if (myLongitude == null) {
|
||||||
myIdentifier = new IdentifierDt();
|
myLongitude = new DecimalDt();
|
||||||
}
|
}
|
||||||
return myIdentifier;
|
return myLongitude;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>identifier</b> (Unique code or number identifying the location to its users)
|
* Sets the value(s) for <b>longitude</b> (Longitude as expressed in KML)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* Unique code or number identifying the location to its users
|
* Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setIdentifier(IdentifierDt theValue) {
|
public void setLongitude(DecimalDt theValue) {
|
||||||
myIdentifier = theValue;
|
myLongitude = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>name</b> (Name of the location as used by humans).
|
* Gets the value(s) for <b>latitude</b> (Latitude as expressed in KML).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* Name of the location as used by humans. Does not need to be unique.
|
* Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public StringDt getName() {
|
public DecimalDt getLatitude() {
|
||||||
if (myName == null) {
|
if (myLatitude == null) {
|
||||||
myName = new StringDt();
|
myLatitude = new DecimalDt();
|
||||||
}
|
}
|
||||||
return myName;
|
return myLatitude;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>name</b> (Name of the location as used by humans)
|
* Sets the value(s) for <b>latitude</b> (Latitude as expressed in KML)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* Name of the location as used by humans. Does not need to be unique.
|
* Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setName(StringDt theValue) {
|
public void setLatitude(DecimalDt theValue) {
|
||||||
myName = theValue;
|
myLatitude = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>name</b> (Name of the location as used by humans)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Name of the location as used by humans. Does not need to be unique.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setName( String theString) {
|
|
||||||
myName = new StringDt(theString);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>description</b> (Description of the Location, which helps in finding or referencing the place).
|
* Gets the value(s) for <b>altitude</b> (Altitude as expressed in KML).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* Description of the Location, which helps in finding or referencing the place
|
* Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public StringDt getDescription() {
|
public DecimalDt getAltitude() {
|
||||||
if (myDescription == null) {
|
if (myAltitude == null) {
|
||||||
myDescription = new StringDt();
|
myAltitude = new DecimalDt();
|
||||||
}
|
}
|
||||||
return myDescription;
|
return myAltitude;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>description</b> (Description of the Location, which helps in finding or referencing the place)
|
* Sets the value(s) for <b>altitude</b> (Altitude as expressed in KML)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* Description of the Location, which helps in finding or referencing the place
|
* Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setDescription(StringDt theValue) {
|
public void setAltitude(DecimalDt theValue) {
|
||||||
myDescription = theValue;
|
myAltitude = theValue;
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>description</b> (Description of the Location, which helps in finding or referencing the place)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Description of the Location, which helps in finding or referencing the place
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setDescription( String theString) {
|
|
||||||
myDescription = new StringDt(theString);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>type</b> (Indicates the type of function performed at the location).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Indicates the type of function performed at the location
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public CodeableConceptDt getType() {
|
|
||||||
if (myType == null) {
|
|
||||||
myType = new CodeableConceptDt();
|
|
||||||
}
|
|
||||||
return myType;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>type</b> (Indicates the type of function performed at the location)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Indicates the type of function performed at the location
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setType(CodeableConceptDt theValue) {
|
|
||||||
myType = theValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>telecom</b> (Contact details of the location).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<ContactDt> getTelecom() {
|
|
||||||
if (myTelecom == null) {
|
|
||||||
myTelecom = new ArrayList<ContactDt>();
|
|
||||||
}
|
|
||||||
return myTelecom;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>telecom</b> (Contact details of the location)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setTelecom(List<ContactDt> theValue) {
|
|
||||||
myTelecom = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>address</b> (Physical location).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public AddressDt getAddress() {
|
|
||||||
if (myAddress == null) {
|
|
||||||
myAddress = new AddressDt();
|
|
||||||
}
|
|
||||||
return myAddress;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>address</b> (Physical location)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setAddress(AddressDt theValue) {
|
|
||||||
myAddress = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>physicalType</b> (Physical form of the location).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Physical form of the location, e.g. building, room, vehicle, road
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public CodeableConceptDt getPhysicalType() {
|
|
||||||
if (myPhysicalType == null) {
|
|
||||||
myPhysicalType = new CodeableConceptDt();
|
|
||||||
}
|
|
||||||
return myPhysicalType;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>physicalType</b> (Physical form of the location)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Physical form of the location, e.g. building, room, vehicle, road
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setPhysicalType(CodeableConceptDt theValue) {
|
|
||||||
myPhysicalType = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>position</b> (The absolute geographic location ).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The absolute geographic location of the Location, expressed in a KML compatible manner (see notes below for KML)
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public Position getPosition() {
|
|
||||||
if (myPosition == null) {
|
|
||||||
myPosition = new Position();
|
|
||||||
}
|
|
||||||
return myPosition;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>position</b> (The absolute geographic location )
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The absolute geographic location of the Location, expressed in a KML compatible manner (see notes below for KML)
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setPosition(Position theValue) {
|
|
||||||
myPosition = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>managingOrganization</b> (The organization that is responsible for the provisioning and upkeep of the location).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public ResourceReference getManagingOrganization() {
|
|
||||||
if (myManagingOrganization == null) {
|
|
||||||
myManagingOrganization = new ResourceReference();
|
|
||||||
}
|
|
||||||
return myManagingOrganization;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>managingOrganization</b> (The organization that is responsible for the provisioning and upkeep of the location)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setManagingOrganization(ResourceReference theValue) {
|
|
||||||
myManagingOrganization = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>status</b> (active | suspended | inactive).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public CodeDt getStatus() {
|
|
||||||
if (myStatus == null) {
|
|
||||||
myStatus = new CodeDt();
|
|
||||||
}
|
|
||||||
return myStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>status</b> (active | suspended | inactive)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setStatus(CodeDt theValue) {
|
|
||||||
myStatus = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>partOf</b> (Another Location which this Location is physically part of).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public ResourceReference getPartOf() {
|
|
||||||
if (myPartOf == null) {
|
|
||||||
myPartOf = new ResourceReference();
|
|
||||||
}
|
|
||||||
return myPartOf;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>partOf</b> (Another Location which this Location is physically part of)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setPartOf(ResourceReference theValue) {
|
|
||||||
myPartOf = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>mode</b> (instance | kind).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Indicates whether a resource instance represents a specific location or a class of locations
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public CodeDt getMode() {
|
|
||||||
if (myMode == null) {
|
|
||||||
myMode = new CodeDt();
|
|
||||||
}
|
|
||||||
return myMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>mode</b> (instance | kind)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Indicates whether a resource instance represents a specific location or a class of locations
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setMode(CodeDt theValue) {
|
|
||||||
myMode = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package ca.uhn.fhir.model.dstu.resource;
|
package ca.uhn.fhir.model.dstu.resource;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -280,7 +284,6 @@ public class Medication implements IResource {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Block class for child element: <b>Medication.product</b> (Administrable medication details)
|
* Block class for child element: <b>Medication.product</b> (Administrable medication details)
|
||||||
*
|
*
|
||||||
|
@ -291,252 +294,158 @@ public class Medication implements IResource {
|
||||||
*/
|
*/
|
||||||
@Block(name="Medication.product")
|
@Block(name="Medication.product")
|
||||||
public static class Product implements IResourceBlock {
|
public static class Product implements IResourceBlock {
|
||||||
@Child(name="name", type=StringDt.class, order=0, min=0, max=1)
|
|
||||||
private StringDt myName;
|
|
||||||
|
|
||||||
@Child(name="code", type=CodeableConceptDt.class, order=1, min=0, max=1)
|
@Child(name="form", type=CodeableConceptDt.class, order=0, min=0, max=1)
|
||||||
private CodeableConceptDt myCode;
|
private CodeableConceptDt myForm;
|
||||||
|
|
||||||
@Child(name="isBrand", type=BooleanDt.class, order=2, min=0, max=1)
|
@Child(name="ingredient", order=1, min=0, max=Child.MAX_UNLIMITED)
|
||||||
private BooleanDt myIsBrand;
|
private List<ProductIngredient> myIngredient;
|
||||||
|
|
||||||
@Child(name="manufacturer", order=3, min=0, max=1)
|
/**
|
||||||
|
* Gets the value(s) for <b>form</b> (powder | tablets | carton +).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Describes the form of the item. Powder; tables; carton
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public CodeableConceptDt getForm() {
|
||||||
|
if (myForm == null) {
|
||||||
|
myForm = new CodeableConceptDt();
|
||||||
|
}
|
||||||
|
return myForm;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>form</b> (powder | tablets | carton +)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Describes the form of the item. Powder; tables; carton
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public void setForm(CodeableConceptDt theValue) {
|
||||||
|
myForm = theValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>ingredient</b> (Active or inactive ingredient).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Identifies a particular constituent of interest in the product
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public List<ProductIngredient> getIngredient() {
|
||||||
|
if (myIngredient == null) {
|
||||||
|
myIngredient = new ArrayList<ProductIngredient>();
|
||||||
|
}
|
||||||
|
return myIngredient;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>ingredient</b> (Active or inactive ingredient)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Identifies a particular constituent of interest in the product
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public void setIngredient(List<ProductIngredient> theValue) {
|
||||||
|
myIngredient = theValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Block class for child element: <b>Medication.product.ingredient</b> (Active or inactive ingredient)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Identifies a particular constituent of interest in the product
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
@Block(name="Medication.product.ingredient")
|
||||||
|
public static class ProductIngredient implements IResourceBlock {
|
||||||
|
|
||||||
|
@Child(name="item", order=0, min=1, max=1)
|
||||||
@ChildResource(types= {
|
@ChildResource(types= {
|
||||||
Organization.class,
|
Substance.class,
|
||||||
|
Medication.class,
|
||||||
})
|
})
|
||||||
private ResourceReference myManufacturer;
|
private ResourceReference myItem;
|
||||||
|
|
||||||
@Child(name="kind", type=CodeDt.class, order=4, min=0, max=1)
|
@Child(name="amount", type=RatioDt.class, order=1, min=0, max=1)
|
||||||
private CodeDt myKind;
|
private RatioDt myAmount;
|
||||||
|
|
||||||
@Child(name="product", order=5, min=0, max=1)
|
|
||||||
private Product myProduct;
|
|
||||||
|
|
||||||
@Child(name="package", type=CodeDt.class, order=6, min=0, max=1)
|
|
||||||
private CodeDt myPackage;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>name</b> (Common / Commercial name).
|
* Gets the value(s) for <b>item</b> (The product contained).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code
|
* The actual ingredient - either a substance (simple ingredient) or another medication
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public StringDt getName() {
|
public ResourceReference getItem() {
|
||||||
if (myName == null) {
|
return myItem;
|
||||||
myName = new StringDt();
|
|
||||||
}
|
|
||||||
return myName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>name</b> (Common / Commercial name)
|
* Sets the value(s) for <b>item</b> (The product contained)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code
|
* The actual ingredient - either a substance (simple ingredient) or another medication
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setName(StringDt theValue) {
|
public void setItem(ResourceReference theValue) {
|
||||||
myName = theValue;
|
myItem = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>name</b> (Common / Commercial name)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setName( String theString) {
|
|
||||||
myName = new StringDt(theString);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>code</b> (Codes that identify this medication).
|
* Gets the value(s) for <b>amount</b> (How much ingredient in product).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes
|
* Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public CodeableConceptDt getCode() {
|
public RatioDt getAmount() {
|
||||||
if (myCode == null) {
|
if (myAmount == null) {
|
||||||
myCode = new CodeableConceptDt();
|
myAmount = new RatioDt();
|
||||||
}
|
}
|
||||||
return myCode;
|
return myAmount;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>code</b> (Codes that identify this medication)
|
* Sets the value(s) for <b>amount</b> (How much ingredient in product)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes
|
* Specifies how many (or how much) of the items there are in this Medication. E.g. 250 mg per tablet
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setCode(CodeableConceptDt theValue) {
|
public void setAmount(RatioDt theValue) {
|
||||||
myCode = theValue;
|
myAmount = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>isBrand</b> (True if a brand).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is)
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public BooleanDt getIsBrand() {
|
|
||||||
if (myIsBrand == null) {
|
|
||||||
myIsBrand = new BooleanDt();
|
|
||||||
}
|
|
||||||
return myIsBrand;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>isBrand</b> (True if a brand)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is)
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setIsBrand(BooleanDt theValue) {
|
|
||||||
myIsBrand = theValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>manufacturer</b> (Manufacturer of the item).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Describes the details of the manufacturer
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public ResourceReference getManufacturer() {
|
|
||||||
if (myManufacturer == null) {
|
|
||||||
myManufacturer = new ResourceReference();
|
|
||||||
}
|
|
||||||
return myManufacturer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>manufacturer</b> (Manufacturer of the item)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Describes the details of the manufacturer
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setManufacturer(ResourceReference theValue) {
|
|
||||||
myManufacturer = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>kind</b> (product | package).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Medications are either a single administrable product or a package that contains one or more products.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public CodeDt getKind() {
|
|
||||||
if (myKind == null) {
|
|
||||||
myKind = new CodeDt();
|
|
||||||
}
|
|
||||||
return myKind;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>kind</b> (product | package)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Medications are either a single administrable product or a package that contains one or more products.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setKind(CodeDt theValue) {
|
|
||||||
myKind = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>product</b> (Administrable medication details).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Information that only applies to products (not packages)
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public Product getProduct() {
|
|
||||||
if (myProduct == null) {
|
|
||||||
myProduct = new Product();
|
|
||||||
}
|
|
||||||
return myProduct;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>product</b> (Administrable medication details)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Information that only applies to products (not packages)
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setProduct(Product theValue) {
|
|
||||||
myProduct = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>package</b> (Details about packaged medications).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Information that only applies to packages (not products)
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public CodeDt getPackage() {
|
|
||||||
if (myPackage == null) {
|
|
||||||
myPackage = new CodeDt();
|
|
||||||
}
|
|
||||||
return myPackage;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>package</b> (Details about packaged medications)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Information that only applies to packages (not products)
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setPackage(CodeDt theValue) {
|
|
||||||
myPackage = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package ca.uhn.fhir.model.dstu.resource;
|
package ca.uhn.fhir.model.dstu.resource;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -349,7 +353,6 @@ public class Organization implements IResource {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Block class for child element: <b>Organization.contact</b> (Contact for the organization for a certain purpose)
|
* Block class for child element: <b>Organization.contact</b> (Contact for the organization for a certain purpose)
|
||||||
*
|
*
|
||||||
|
@ -360,148 +363,90 @@ public class Organization implements IResource {
|
||||||
*/
|
*/
|
||||||
@Block(name="Organization.contact")
|
@Block(name="Organization.contact")
|
||||||
public static class Contact implements IResourceBlock {
|
public static class Contact implements IResourceBlock {
|
||||||
@Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
private List<IdentifierDt> myIdentifier;
|
|
||||||
|
|
||||||
@Child(name="name", type=StringDt.class, order=1, min=0, max=1)
|
@Child(name="purpose", type=CodeableConceptDt.class, order=0, min=0, max=1)
|
||||||
private StringDt myName;
|
private CodeableConceptDt myPurpose;
|
||||||
|
|
||||||
@Child(name="type", type=CodeableConceptDt.class, order=2, min=0, max=1)
|
@Child(name="name", type=HumanNameDt.class, order=1, min=0, max=1)
|
||||||
private CodeableConceptDt myType;
|
private HumanNameDt myName;
|
||||||
|
|
||||||
@Child(name="telecom", type=ContactDt.class, order=3, min=0, max=Child.MAX_UNLIMITED)
|
@Child(name="telecom", type=ContactDt.class, order=2, min=0, max=Child.MAX_UNLIMITED)
|
||||||
private List<ContactDt> myTelecom;
|
private List<ContactDt> myTelecom;
|
||||||
|
|
||||||
@Child(name="address", type=AddressDt.class, order=4, min=0, max=Child.MAX_UNLIMITED)
|
@Child(name="address", type=AddressDt.class, order=3, min=0, max=1)
|
||||||
private List<AddressDt> myAddress;
|
private AddressDt myAddress;
|
||||||
|
|
||||||
@Child(name="partOf", order=5, min=0, max=1)
|
@Child(name="gender", type=CodeableConceptDt.class, order=4, min=0, max=1)
|
||||||
@ChildResource(types= {
|
private CodeableConceptDt myGender;
|
||||||
Organization.class,
|
|
||||||
})
|
|
||||||
private ResourceReference myPartOf;
|
|
||||||
|
|
||||||
@Child(name="contact", order=6, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
private List<Contact> myContact;
|
|
||||||
|
|
||||||
@Child(name="location", order=7, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
@ChildResource(types= {
|
|
||||||
Location.class,
|
|
||||||
})
|
|
||||||
private List<ResourceReference> myLocation;
|
|
||||||
|
|
||||||
@Child(name="active", type=BooleanDt.class, order=8, min=0, max=1)
|
|
||||||
private BooleanDt myActive;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>identifier</b> (Identifies this organization across multiple systems).
|
* Gets the value(s) for <b>purpose</b> (The type of contact).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* Identifier for the organization that is used to identify the organization across multiple disparate systems
|
* Indicates a purpose for which the contact can be reached
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public List<IdentifierDt> getIdentifier() {
|
public CodeableConceptDt getPurpose() {
|
||||||
if (myIdentifier == null) {
|
if (myPurpose == null) {
|
||||||
myIdentifier = new ArrayList<IdentifierDt>();
|
myPurpose = new CodeableConceptDt();
|
||||||
}
|
}
|
||||||
return myIdentifier;
|
return myPurpose;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>identifier</b> (Identifies this organization across multiple systems)
|
* Sets the value(s) for <b>purpose</b> (The type of contact)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* Identifier for the organization that is used to identify the organization across multiple disparate systems
|
* Indicates a purpose for which the contact can be reached
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setIdentifier(List<IdentifierDt> theValue) {
|
public void setPurpose(CodeableConceptDt theValue) {
|
||||||
myIdentifier = theValue;
|
myPurpose = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>name</b> (Name used for the organization).
|
* Gets the value(s) for <b>name</b> (A name associated with the contact).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A name associated with the organization
|
* A name associated with the contact
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public StringDt getName() {
|
public HumanNameDt getName() {
|
||||||
if (myName == null) {
|
if (myName == null) {
|
||||||
myName = new StringDt();
|
myName = new HumanNameDt();
|
||||||
}
|
}
|
||||||
return myName;
|
return myName;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>name</b> (Name used for the organization)
|
* Sets the value(s) for <b>name</b> (A name associated with the contact)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A name associated with the organization
|
* A name associated with the contact
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setName(StringDt theValue) {
|
public void setName(HumanNameDt theValue) {
|
||||||
myName = theValue;
|
myName = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>name</b> (Name used for the organization)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A name associated with the organization
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setName( String theString) {
|
|
||||||
myName = new StringDt(theString);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>type</b> (Kind of organization).
|
* Gets the value(s) for <b>telecom</b> (Contact details (telephone, email, etc) for a contact).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* The kind of organization that this is
|
* A contact detail (e.g. a telephone number or an email address) by which the party may be contacted.
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public CodeableConceptDt getType() {
|
|
||||||
if (myType == null) {
|
|
||||||
myType = new CodeableConceptDt();
|
|
||||||
}
|
|
||||||
return myType;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>type</b> (Kind of organization)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The kind of organization that this is
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setType(CodeableConceptDt theValue) {
|
|
||||||
myType = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>telecom</b> (A contact detail for the organization).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A contact detail for the organization
|
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public List<ContactDt> getTelecom() {
|
public List<ContactDt> getTelecom() {
|
||||||
|
@ -512,11 +457,11 @@ public class Organization implements IResource {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>telecom</b> (A contact detail for the organization)
|
* Sets the value(s) for <b>telecom</b> (Contact details (telephone, email, etc) for a contact)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A contact detail for the organization
|
* A contact detail (e.g. a telephone number or an email address) by which the party may be contacted.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setTelecom(List<ContactDt> theValue) {
|
public void setTelecom(List<ContactDt> theValue) {
|
||||||
|
@ -525,157 +470,69 @@ public class Organization implements IResource {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>address</b> (An address for the organization).
|
* Gets the value(s) for <b>address</b> (Visiting or postal addresses for the contact).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* An address for the organization
|
* Visiting or postal addresses for the contact
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public List<AddressDt> getAddress() {
|
public AddressDt getAddress() {
|
||||||
if (myAddress == null) {
|
if (myAddress == null) {
|
||||||
myAddress = new ArrayList<AddressDt>();
|
myAddress = new AddressDt();
|
||||||
}
|
}
|
||||||
return myAddress;
|
return myAddress;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>address</b> (An address for the organization)
|
* Sets the value(s) for <b>address</b> (Visiting or postal addresses for the contact)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* An address for the organization
|
* Visiting or postal addresses for the contact
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setAddress(List<AddressDt> theValue) {
|
public void setAddress(AddressDt theValue) {
|
||||||
myAddress = theValue;
|
myAddress = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>partOf</b> (The organization of which this organization forms a part).
|
* Gets the value(s) for <b>gender</b> (Gender for administrative purposes).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* The organization of which this organization forms a part
|
* Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public ResourceReference getPartOf() {
|
public CodeableConceptDt getGender() {
|
||||||
if (myPartOf == null) {
|
if (myGender == null) {
|
||||||
myPartOf = new ResourceReference();
|
myGender = new CodeableConceptDt();
|
||||||
}
|
}
|
||||||
return myPartOf;
|
return myGender;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>partOf</b> (The organization of which this organization forms a part)
|
* Sets the value(s) for <b>gender</b> (Gender for administrative purposes)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* The organization of which this organization forms a part
|
* Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setPartOf(ResourceReference theValue) {
|
public void setGender(CodeableConceptDt theValue) {
|
||||||
myPartOf = theValue;
|
myGender = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>contact</b> (Contact for the organization for a certain purpose).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<Contact> getContact() {
|
|
||||||
if (myContact == null) {
|
|
||||||
myContact = new ArrayList<Contact>();
|
|
||||||
}
|
|
||||||
return myContact;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>contact</b> (Contact for the organization for a certain purpose)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setContact(List<Contact> theValue) {
|
|
||||||
myContact = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>location</b> (Location(s) the organization uses to provide services).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Location(s) the organization uses to provide services
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<ResourceReference> getLocation() {
|
|
||||||
if (myLocation == null) {
|
|
||||||
myLocation = new ArrayList<ResourceReference>();
|
|
||||||
}
|
|
||||||
return myLocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>location</b> (Location(s) the organization uses to provide services)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Location(s) the organization uses to provide services
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setLocation(List<ResourceReference> theValue) {
|
|
||||||
myLocation = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>active</b> (Whether the organization's record is still in active use).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Whether the organization's record is still in active use
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public BooleanDt getActive() {
|
|
||||||
if (myActive == null) {
|
|
||||||
myActive = new BooleanDt();
|
|
||||||
}
|
|
||||||
return myActive;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>active</b> (Whether the organization's record is still in active use)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Whether the organization's record is still in active use
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setActive(BooleanDt theValue) {
|
|
||||||
myActive = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package ca.uhn.fhir.model.dstu.resource;
|
package ca.uhn.fhir.model.dstu.resource;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -514,7 +518,6 @@ public class Practitioner implements IResource {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Block class for child element: <b>Practitioner.qualification</b> (Qualifications obtained by training and certification)
|
* Block class for child element: <b>Practitioner.qualification</b> (Qualifications obtained by training and certification)
|
||||||
*
|
*
|
||||||
|
@ -525,373 +528,57 @@ public class Practitioner implements IResource {
|
||||||
*/
|
*/
|
||||||
@Block(name="Practitioner.qualification")
|
@Block(name="Practitioner.qualification")
|
||||||
public static class Qualification implements IResourceBlock {
|
public static class Qualification implements IResourceBlock {
|
||||||
@Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
private List<IdentifierDt> myIdentifier;
|
|
||||||
|
|
||||||
@Child(name="name", type=HumanNameDt.class, order=1, min=0, max=1)
|
@Child(name="code", type=CodeableConceptDt.class, order=0, min=1, max=1)
|
||||||
private HumanNameDt myName;
|
private CodeableConceptDt myCode;
|
||||||
|
|
||||||
@Child(name="telecom", type=ContactDt.class, order=2, min=0, max=Child.MAX_UNLIMITED)
|
@Child(name="period", type=PeriodDt.class, order=1, min=0, max=1)
|
||||||
private List<ContactDt> myTelecom;
|
private PeriodDt myPeriod;
|
||||||
|
|
||||||
@Child(name="address", type=AddressDt.class, order=3, min=0, max=1)
|
@Child(name="issuer", order=2, min=0, max=1)
|
||||||
private AddressDt myAddress;
|
|
||||||
|
|
||||||
@Child(name="gender", type=CodeableConceptDt.class, order=4, min=0, max=1)
|
|
||||||
private CodeableConceptDt myGender;
|
|
||||||
|
|
||||||
@Child(name="birthDate", type=DateTimeDt.class, order=5, min=0, max=1)
|
|
||||||
private DateTimeDt myBirthDate;
|
|
||||||
|
|
||||||
@Child(name="photo", type=AttachmentDt.class, order=6, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
private List<AttachmentDt> myPhoto;
|
|
||||||
|
|
||||||
@Child(name="organization", order=7, min=0, max=1)
|
|
||||||
@ChildResource(types= {
|
@ChildResource(types= {
|
||||||
Organization.class,
|
Organization.class,
|
||||||
})
|
})
|
||||||
private ResourceReference myOrganization;
|
private ResourceReference myIssuer;
|
||||||
|
|
||||||
@Child(name="role", type=CodeableConceptDt.class, order=8, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
private List<CodeableConceptDt> myRole;
|
|
||||||
|
|
||||||
@Child(name="specialty", type=CodeableConceptDt.class, order=9, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
private List<CodeableConceptDt> mySpecialty;
|
|
||||||
|
|
||||||
@Child(name="period", type=PeriodDt.class, order=10, min=0, max=1)
|
|
||||||
private PeriodDt myPeriod;
|
|
||||||
|
|
||||||
@Child(name="location", order=11, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
@ChildResource(types= {
|
|
||||||
Location.class,
|
|
||||||
})
|
|
||||||
private List<ResourceReference> myLocation;
|
|
||||||
|
|
||||||
@Child(name="qualification", order=12, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
private List<Qualification> myQualification;
|
|
||||||
|
|
||||||
@Child(name="communication", type=CodeableConceptDt.class, order=13, min=0, max=Child.MAX_UNLIMITED)
|
|
||||||
private List<CodeableConceptDt> myCommunication;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>identifier</b> (A identifier for the person as this agent).
|
* Gets the value(s) for <b>code</b> (Coded representation of the qualification).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* An identifier that applies to this person in this role
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public List<IdentifierDt> getIdentifier() {
|
public CodeableConceptDt getCode() {
|
||||||
if (myIdentifier == null) {
|
if (myCode == null) {
|
||||||
myIdentifier = new ArrayList<IdentifierDt>();
|
myCode = new CodeableConceptDt();
|
||||||
}
|
}
|
||||||
return myIdentifier;
|
return myCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>identifier</b> (A identifier for the person as this agent)
|
* Sets the value(s) for <b>code</b> (Coded representation of the qualification)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* An identifier that applies to this person in this role
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setIdentifier(List<IdentifierDt> theValue) {
|
public void setCode(CodeableConceptDt theValue) {
|
||||||
myIdentifier = theValue;
|
myCode = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>name</b> (A name associated with the person).
|
* Gets the value(s) for <b>period</b> (Period during which the qualification is valid).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A name associated with the person
|
* Period during which the qualification is valid
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public HumanNameDt getName() {
|
|
||||||
if (myName == null) {
|
|
||||||
myName = new HumanNameDt();
|
|
||||||
}
|
|
||||||
return myName;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>name</b> (A name associated with the person)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A name associated with the person
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setName(HumanNameDt theValue) {
|
|
||||||
myName = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>telecom</b> (A contact detail for the practitioner).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A contact detail for the practitioner, e.g. a telephone number or an email address.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<ContactDt> getTelecom() {
|
|
||||||
if (myTelecom == null) {
|
|
||||||
myTelecom = new ArrayList<ContactDt>();
|
|
||||||
}
|
|
||||||
return myTelecom;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>telecom</b> (A contact detail for the practitioner)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A contact detail for the practitioner, e.g. a telephone number or an email address.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setTelecom(List<ContactDt> theValue) {
|
|
||||||
myTelecom = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>address</b> (Where practitioner can be found/visited).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The postal address where the practitioner can be found or visited or to which mail can be delivered
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public AddressDt getAddress() {
|
|
||||||
if (myAddress == null) {
|
|
||||||
myAddress = new AddressDt();
|
|
||||||
}
|
|
||||||
return myAddress;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>address</b> (Where practitioner can be found/visited)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The postal address where the practitioner can be found or visited or to which mail can be delivered
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setAddress(AddressDt theValue) {
|
|
||||||
myAddress = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>gender</b> (Gender for administrative purposes).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public CodeableConceptDt getGender() {
|
|
||||||
if (myGender == null) {
|
|
||||||
myGender = new CodeableConceptDt();
|
|
||||||
}
|
|
||||||
return myGender;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>gender</b> (Gender for administrative purposes)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setGender(CodeableConceptDt theValue) {
|
|
||||||
myGender = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>birthDate</b> (The date and time of birth for the practitioner).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The date and time of birth for the practitioner
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public DateTimeDt getBirthDate() {
|
|
||||||
if (myBirthDate == null) {
|
|
||||||
myBirthDate = new DateTimeDt();
|
|
||||||
}
|
|
||||||
return myBirthDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>birthDate</b> (The date and time of birth for the practitioner)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The date and time of birth for the practitioner
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setBirthDate(DateTimeDt theValue) {
|
|
||||||
myBirthDate = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>birthDate</b> (The date and time of birth for the practitioner)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The date and time of birth for the practitioner
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setBirthDateWithSecondsPrecision( Date theDate) {
|
|
||||||
myBirthDate = new DateTimeDt(theDate);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>photo</b> (Image of the person).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Image of the person
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<AttachmentDt> getPhoto() {
|
|
||||||
if (myPhoto == null) {
|
|
||||||
myPhoto = new ArrayList<AttachmentDt>();
|
|
||||||
}
|
|
||||||
return myPhoto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>photo</b> (Image of the person)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Image of the person
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setPhoto(List<AttachmentDt> theValue) {
|
|
||||||
myPhoto = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>organization</b> (The represented organization).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The organization that the practitioner represents
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public ResourceReference getOrganization() {
|
|
||||||
if (myOrganization == null) {
|
|
||||||
myOrganization = new ResourceReference();
|
|
||||||
}
|
|
||||||
return myOrganization;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>organization</b> (The represented organization)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The organization that the practitioner represents
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setOrganization(ResourceReference theValue) {
|
|
||||||
myOrganization = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>role</b> (Roles which this practitioner may perform).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Roles which this practitioner is authorized to perform for the organization
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<CodeableConceptDt> getRole() {
|
|
||||||
if (myRole == null) {
|
|
||||||
myRole = new ArrayList<CodeableConceptDt>();
|
|
||||||
}
|
|
||||||
return myRole;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>role</b> (Roles which this practitioner may perform)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Roles which this practitioner is authorized to perform for the organization
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setRole(List<CodeableConceptDt> theValue) {
|
|
||||||
myRole = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>specialty</b> (Specific specialty of the practitioner).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Specific specialty of the practitioner
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<CodeableConceptDt> getSpecialty() {
|
|
||||||
if (mySpecialty == null) {
|
|
||||||
mySpecialty = new ArrayList<CodeableConceptDt>();
|
|
||||||
}
|
|
||||||
return mySpecialty;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>specialty</b> (Specific specialty of the practitioner)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Specific specialty of the practitioner
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setSpecialty(List<CodeableConceptDt> theValue) {
|
|
||||||
mySpecialty = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>period</b> (The period during which the practitioner is authorized to perform in these role(s)).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* The period during which the person is authorized to act as a practitioner in these role(s) for the organization
|
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public PeriodDt getPeriod() {
|
public PeriodDt getPeriod() {
|
||||||
|
@ -902,11 +589,11 @@ public class Practitioner implements IResource {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>period</b> (The period during which the practitioner is authorized to perform in these role(s))
|
* Sets the value(s) for <b>period</b> (Period during which the qualification is valid)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* The period during which the person is authorized to act as a practitioner in these role(s) for the organization
|
* Period during which the qualification is valid
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setPeriod(PeriodDt theValue) {
|
public void setPeriod(PeriodDt theValue) {
|
||||||
|
@ -915,97 +602,39 @@ public class Practitioner implements IResource {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>location</b> (The location(s) at which this practitioner provides care).
|
* Gets the value(s) for <b>issuer</b> (Organization that regulates and issues the qualification).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* The location(s) at which this practitioner provides care
|
* Organization that regulates and issues the qualification
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public List<ResourceReference> getLocation() {
|
public ResourceReference getIssuer() {
|
||||||
if (myLocation == null) {
|
if (myIssuer == null) {
|
||||||
myLocation = new ArrayList<ResourceReference>();
|
myIssuer = new ResourceReference();
|
||||||
}
|
}
|
||||||
return myLocation;
|
return myIssuer;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>location</b> (The location(s) at which this practitioner provides care)
|
* Sets the value(s) for <b>issuer</b> (Organization that regulates and issues the qualification)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* The location(s) at which this practitioner provides care
|
* Organization that regulates and issues the qualification
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setLocation(List<ResourceReference> theValue) {
|
public void setIssuer(ResourceReference theValue) {
|
||||||
myLocation = theValue;
|
myIssuer = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>qualification</b> (Qualifications obtained by training and certification).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<Qualification> getQualification() {
|
|
||||||
if (myQualification == null) {
|
|
||||||
myQualification = new ArrayList<Qualification>();
|
|
||||||
}
|
|
||||||
return myQualification;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>qualification</b> (Qualifications obtained by training and certification)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
*
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setQualification(List<Qualification> theValue) {
|
|
||||||
myQualification = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>communication</b> (A language the practitioner is able to use in patient communication).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A language the practitioner is able to use in patient communication
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<CodeableConceptDt> getCommunication() {
|
|
||||||
if (myCommunication == null) {
|
|
||||||
myCommunication = new ArrayList<CodeableConceptDt>();
|
|
||||||
}
|
|
||||||
return myCommunication;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>communication</b> (A language the practitioner is able to use in patient communication)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A language the practitioner is able to use in patient communication
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setCommunication(List<CodeableConceptDt> theValue) {
|
|
||||||
myCommunication = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package ca.uhn.fhir.model.dstu.resource;
|
package ca.uhn.fhir.model.dstu.resource;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -178,7 +182,6 @@ public class Substance implements IResource {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Block class for child element: <b>Substance.instance</b> (If this describes a specific package/container of the substance)
|
* Block class for child element: <b>Substance.instance</b> (If this describes a specific package/container of the substance)
|
||||||
*
|
*
|
||||||
|
@ -189,151 +192,121 @@ public class Substance implements IResource {
|
||||||
*/
|
*/
|
||||||
@Block(name="Substance.instance")
|
@Block(name="Substance.instance")
|
||||||
public static class Instance implements IResourceBlock {
|
public static class Instance implements IResourceBlock {
|
||||||
@Child(name="type", type=CodeableConceptDt.class, order=0, min=1, max=1)
|
|
||||||
private CodeableConceptDt myType;
|
|
||||||
|
|
||||||
@Child(name="description", type=StringDt.class, order=1, min=0, max=1)
|
@Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=1)
|
||||||
private StringDt myDescription;
|
private IdentifierDt myIdentifier;
|
||||||
|
|
||||||
@Child(name="instance", order=2, min=0, max=1)
|
@Child(name="expiry", type=DateTimeDt.class, order=1, min=0, max=1)
|
||||||
private Instance myInstance;
|
private DateTimeDt myExpiry;
|
||||||
|
|
||||||
@Child(name="ingredient", order=3, min=0, max=Child.MAX_UNLIMITED)
|
@Child(name="quantity", type=QuantityDt.class, order=2, min=0, max=1)
|
||||||
private List<Ingredient> myIngredient;
|
private QuantityDt myQuantity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>type</b> (What kind of substance this is).
|
* Gets the value(s) for <b>identifier</b> (Identifier of the package/container).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A code (or set of codes) that identify this substance
|
* Identifier associated with the package/container (usually a label affixed directly)
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public CodeableConceptDt getType() {
|
public IdentifierDt getIdentifier() {
|
||||||
if (myType == null) {
|
if (myIdentifier == null) {
|
||||||
myType = new CodeableConceptDt();
|
myIdentifier = new IdentifierDt();
|
||||||
}
|
}
|
||||||
return myType;
|
return myIdentifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>type</b> (What kind of substance this is)
|
* Sets the value(s) for <b>identifier</b> (Identifier of the package/container)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A code (or set of codes) that identify this substance
|
* Identifier associated with the package/container (usually a label affixed directly)
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setType(CodeableConceptDt theValue) {
|
public void setIdentifier(IdentifierDt theValue) {
|
||||||
myType = theValue;
|
myIdentifier = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>description</b> (Textual description of the substance, comments).
|
* Gets the value(s) for <b>expiry</b> (When no longer valid to use).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A description of the substance - its appearance, handling requirements, and other usage notes
|
* When the substance is no longer valid to use. For some substances, a single arbitrary date is used for expiry.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public StringDt getDescription() {
|
public DateTimeDt getExpiry() {
|
||||||
if (myDescription == null) {
|
if (myExpiry == null) {
|
||||||
myDescription = new StringDt();
|
myExpiry = new DateTimeDt();
|
||||||
}
|
}
|
||||||
return myDescription;
|
return myExpiry;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>description</b> (Textual description of the substance, comments)
|
* Sets the value(s) for <b>expiry</b> (When no longer valid to use)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A description of the substance - its appearance, handling requirements, and other usage notes
|
* When the substance is no longer valid to use. For some substances, a single arbitrary date is used for expiry.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setDescription(StringDt theValue) {
|
public void setExpiry(DateTimeDt theValue) {
|
||||||
myDescription = theValue;
|
myExpiry = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>description</b> (Textual description of the substance, comments)
|
* Sets the value(s) for <b>expiry</b> (When no longer valid to use)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A description of the substance - its appearance, handling requirements, and other usage notes
|
* When the substance is no longer valid to use. For some substances, a single arbitrary date is used for expiry.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setDescription( String theString) {
|
public void setExpiryWithSecondsPrecision( Date theDate) {
|
||||||
myDescription = new StringDt(theString);
|
myExpiry = new DateTimeDt(theDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>instance</b> (If this describes a specific package/container of the substance).
|
* Gets the value(s) for <b>quantity</b> (Amount of substance in the package).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* Substance may be used to describe a kind of substance, or a specific package/container of the substance: an instance
|
* The amount of the substance
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public Instance getInstance() {
|
public QuantityDt getQuantity() {
|
||||||
if (myInstance == null) {
|
if (myQuantity == null) {
|
||||||
myInstance = new Instance();
|
myQuantity = new QuantityDt();
|
||||||
}
|
}
|
||||||
return myInstance;
|
return myQuantity;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>instance</b> (If this describes a specific package/container of the substance)
|
* Sets the value(s) for <b>quantity</b> (Amount of substance in the package)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* Substance may be used to describe a kind of substance, or a specific package/container of the substance: an instance
|
* The amount of the substance
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setInstance(Instance theValue) {
|
public void setQuantity(QuantityDt theValue) {
|
||||||
myInstance = theValue;
|
myQuantity = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>ingredient</b> (Composition information about the substance).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A substance can be composed of other substances
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<Ingredient> getIngredient() {
|
|
||||||
if (myIngredient == null) {
|
|
||||||
myIngredient = new ArrayList<Ingredient>();
|
|
||||||
}
|
|
||||||
return myIngredient;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>ingredient</b> (Composition information about the substance)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A substance can be composed of other substances
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setIngredient(List<Ingredient> theValue) {
|
|
||||||
myIngredient = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Block class for child element: <b>Substance.ingredient</b> (Composition information about the substance)
|
* Block class for child element: <b>Substance.ingredient</b> (Composition information about the substance)
|
||||||
*
|
*
|
||||||
|
@ -344,151 +317,80 @@ public class Substance implements IResource {
|
||||||
*/
|
*/
|
||||||
@Block(name="Substance.ingredient")
|
@Block(name="Substance.ingredient")
|
||||||
public static class Ingredient implements IResourceBlock {
|
public static class Ingredient implements IResourceBlock {
|
||||||
@Child(name="type", type=CodeableConceptDt.class, order=0, min=1, max=1)
|
|
||||||
private CodeableConceptDt myType;
|
|
||||||
|
|
||||||
@Child(name="description", type=StringDt.class, order=1, min=0, max=1)
|
@Child(name="quantity", type=RatioDt.class, order=0, min=0, max=1)
|
||||||
private StringDt myDescription;
|
private RatioDt myQuantity;
|
||||||
|
|
||||||
@Child(name="instance", order=2, min=0, max=1)
|
@Child(name="substance", order=1, min=1, max=1)
|
||||||
private Instance myInstance;
|
@ChildResource(types= {
|
||||||
|
Substance.class,
|
||||||
@Child(name="ingredient", order=3, min=0, max=Child.MAX_UNLIMITED)
|
})
|
||||||
private List<Ingredient> myIngredient;
|
private ResourceReference mySubstance;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>type</b> (What kind of substance this is).
|
* Gets the value(s) for <b>quantity</b> (Optional amount (concentration)).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A code (or set of codes) that identify this substance
|
* The amount of the ingredient in the substance - a concentration ratio
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public CodeableConceptDt getType() {
|
public RatioDt getQuantity() {
|
||||||
if (myType == null) {
|
if (myQuantity == null) {
|
||||||
myType = new CodeableConceptDt();
|
myQuantity = new RatioDt();
|
||||||
}
|
}
|
||||||
return myType;
|
return myQuantity;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>type</b> (What kind of substance this is)
|
* Sets the value(s) for <b>quantity</b> (Optional amount (concentration))
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A code (or set of codes) that identify this substance
|
* The amount of the ingredient in the substance - a concentration ratio
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setType(CodeableConceptDt theValue) {
|
public void setQuantity(RatioDt theValue) {
|
||||||
myType = theValue;
|
myQuantity = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>description</b> (Textual description of the substance, comments).
|
* Gets the value(s) for <b>substance</b> (A component of the substance).
|
||||||
* creating it if it does
|
* creating it if it does
|
||||||
* not exist. Will not return <code>null</code>.
|
* not exist. Will not return <code>null</code>.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A description of the substance - its appearance, handling requirements, and other usage notes
|
* Another substance that is a component of this substance
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public StringDt getDescription() {
|
public ResourceReference getSubstance() {
|
||||||
if (myDescription == null) {
|
if (mySubstance == null) {
|
||||||
myDescription = new StringDt();
|
mySubstance = new ResourceReference();
|
||||||
}
|
}
|
||||||
return myDescription;
|
return mySubstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the value(s) for <b>description</b> (Textual description of the substance, comments)
|
* Sets the value(s) for <b>substance</b> (A component of the substance)
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* <b>Definition:</b>
|
* <b>Definition:</b>
|
||||||
* A description of the substance - its appearance, handling requirements, and other usage notes
|
* Another substance that is a component of this substance
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setDescription(StringDt theValue) {
|
public void setSubstance(ResourceReference theValue) {
|
||||||
myDescription = theValue;
|
mySubstance = theValue;
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>description</b> (Textual description of the substance, comments)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A description of the substance - its appearance, handling requirements, and other usage notes
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setDescription( String theString) {
|
|
||||||
myDescription = new StringDt(theString);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>instance</b> (If this describes a specific package/container of the substance).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Substance may be used to describe a kind of substance, or a specific package/container of the substance: an instance
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public Instance getInstance() {
|
|
||||||
if (myInstance == null) {
|
|
||||||
myInstance = new Instance();
|
|
||||||
}
|
|
||||||
return myInstance;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>instance</b> (If this describes a specific package/container of the substance)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* Substance may be used to describe a kind of substance, or a specific package/container of the substance: an instance
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setInstance(Instance theValue) {
|
|
||||||
myInstance = theValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the value(s) for <b>ingredient</b> (Composition information about the substance).
|
|
||||||
* creating it if it does
|
|
||||||
* not exist. Will not return <code>null</code>.
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A substance can be composed of other substances
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public List<Ingredient> getIngredient() {
|
|
||||||
if (myIngredient == null) {
|
|
||||||
myIngredient = new ArrayList<Ingredient>();
|
|
||||||
}
|
|
||||||
return myIngredient;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the value(s) for <b>ingredient</b> (Composition information about the substance)
|
|
||||||
*
|
|
||||||
* <p>
|
|
||||||
* <b>Definition:</b>
|
|
||||||
* A substance can be composed of other substances
|
|
||||||
* </p>
|
|
||||||
*/
|
|
||||||
public void setIngredient(List<Ingredient> theValue) {
|
|
||||||
myIngredient = theValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -601,7 +601,7 @@ public class ValueSet implements IResource {
|
||||||
private BooleanDt myCaseSensitive;
|
private BooleanDt myCaseSensitive;
|
||||||
|
|
||||||
@Child(name="concept", order=3, min=0, max=Child.MAX_UNLIMITED)
|
@Child(name="concept", order=3, min=0, max=Child.MAX_UNLIMITED)
|
||||||
private List<Concept> myConcept;
|
private List<DefineConcept> myConcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>system</b> (URI to identify the code system).
|
* Gets the value(s) for <b>system</b> (URI to identify the code system).
|
||||||
|
@ -714,9 +714,9 @@ public class ValueSet implements IResource {
|
||||||
*
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public List<Concept> getConcept() {
|
public List<DefineConcept> getConcept() {
|
||||||
if (myConcept == null) {
|
if (myConcept == null) {
|
||||||
myConcept = new ArrayList<Concept>();
|
myConcept = new ArrayList<DefineConcept>();
|
||||||
}
|
}
|
||||||
return myConcept;
|
return myConcept;
|
||||||
}
|
}
|
||||||
|
@ -729,11 +729,12 @@ public class ValueSet implements IResource {
|
||||||
*
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setConcept(List<Concept> theValue) {
|
public void setConcept(List<DefineConcept> theValue) {
|
||||||
myConcept = theValue;
|
myConcept = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -745,7 +746,7 @@ public class ValueSet implements IResource {
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
@Block(name="ValueSet.define.concept")
|
@Block(name="ValueSet.define.concept")
|
||||||
public static class Concept implements IResourceBlock {
|
public static class DefineConcept implements IResourceBlock {
|
||||||
|
|
||||||
@Child(name="code", type=CodeDt.class, order=0, min=1, max=1)
|
@Child(name="code", type=CodeDt.class, order=0, min=1, max=1)
|
||||||
private CodeDt myCode;
|
private CodeDt myCode;
|
||||||
|
@ -759,8 +760,8 @@ public class ValueSet implements IResource {
|
||||||
@Child(name="definition", type=StringDt.class, order=3, min=0, max=1)
|
@Child(name="definition", type=StringDt.class, order=3, min=0, max=1)
|
||||||
private StringDt myDefinition;
|
private StringDt myDefinition;
|
||||||
|
|
||||||
@Child(name="concept", type=Concept.class, order=4, min=0, max=Child.MAX_UNLIMITED)
|
@Child(name="concept", type=DefineConcept.class, order=4, min=0, max=Child.MAX_UNLIMITED)
|
||||||
private List<Concept> myConcept;
|
private List<DefineConcept> myConcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>code</b> (Code that identifies concept).
|
* Gets the value(s) for <b>code</b> (Code that identifies concept).
|
||||||
|
@ -914,9 +915,9 @@ public class ValueSet implements IResource {
|
||||||
*
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public List<Concept> getConcept() {
|
public List<DefineConcept> getConcept() {
|
||||||
if (myConcept == null) {
|
if (myConcept == null) {
|
||||||
myConcept = new ArrayList<Concept>();
|
myConcept = new ArrayList<DefineConcept>();
|
||||||
}
|
}
|
||||||
return myConcept;
|
return myConcept;
|
||||||
}
|
}
|
||||||
|
@ -929,13 +930,16 @@ public class ValueSet implements IResource {
|
||||||
*
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setConcept(List<Concept> theValue) {
|
public void setConcept(List<DefineConcept> theValue) {
|
||||||
myConcept = theValue;
|
myConcept = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Block class for child element: <b>ValueSet.compose</b> (When value set includes codes from elsewhere)
|
* Block class for child element: <b>ValueSet.compose</b> (When value set includes codes from elsewhere)
|
||||||
*
|
*
|
||||||
|
@ -951,10 +955,10 @@ public class ValueSet implements IResource {
|
||||||
private List<UriDt> myImport;
|
private List<UriDt> myImport;
|
||||||
|
|
||||||
@Child(name="include", order=1, min=0, max=Child.MAX_UNLIMITED)
|
@Child(name="include", order=1, min=0, max=Child.MAX_UNLIMITED)
|
||||||
private List<Include> myInclude;
|
private List<ComposeInclude> myInclude;
|
||||||
|
|
||||||
@Child(name="exclude", type=Include.class, order=2, min=0, max=Child.MAX_UNLIMITED)
|
@Child(name="exclude", type=ComposeInclude.class, order=2, min=0, max=Child.MAX_UNLIMITED)
|
||||||
private List<Include> myExclude;
|
private List<ComposeInclude> myExclude;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>import</b> (Import the contents of another value set).
|
* Gets the value(s) for <b>import</b> (Import the contents of another value set).
|
||||||
|
@ -996,9 +1000,9 @@ public class ValueSet implements IResource {
|
||||||
* Include one or more codes from a code system
|
* Include one or more codes from a code system
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public List<Include> getInclude() {
|
public List<ComposeInclude> getInclude() {
|
||||||
if (myInclude == null) {
|
if (myInclude == null) {
|
||||||
myInclude = new ArrayList<Include>();
|
myInclude = new ArrayList<ComposeInclude>();
|
||||||
}
|
}
|
||||||
return myInclude;
|
return myInclude;
|
||||||
}
|
}
|
||||||
|
@ -1011,7 +1015,7 @@ public class ValueSet implements IResource {
|
||||||
* Include one or more codes from a code system
|
* Include one or more codes from a code system
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setInclude(List<Include> theValue) {
|
public void setInclude(List<ComposeInclude> theValue) {
|
||||||
myInclude = theValue;
|
myInclude = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1026,9 +1030,9 @@ public class ValueSet implements IResource {
|
||||||
* Exclude one or more codes from the value set
|
* Exclude one or more codes from the value set
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public List<Include> getExclude() {
|
public List<ComposeInclude> getExclude() {
|
||||||
if (myExclude == null) {
|
if (myExclude == null) {
|
||||||
myExclude = new ArrayList<Include>();
|
myExclude = new ArrayList<ComposeInclude>();
|
||||||
}
|
}
|
||||||
return myExclude;
|
return myExclude;
|
||||||
}
|
}
|
||||||
|
@ -1041,11 +1045,12 @@ public class ValueSet implements IResource {
|
||||||
* Exclude one or more codes from the value set
|
* Exclude one or more codes from the value set
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setExclude(List<Include> theValue) {
|
public void setExclude(List<ComposeInclude> theValue) {
|
||||||
myExclude = theValue;
|
myExclude = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1057,7 +1062,7 @@ public class ValueSet implements IResource {
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
@Block(name="ValueSet.compose.include")
|
@Block(name="ValueSet.compose.include")
|
||||||
public static class Include implements IResourceBlock {
|
public static class ComposeInclude implements IResourceBlock {
|
||||||
|
|
||||||
@Child(name="system", type=UriDt.class, order=0, min=1, max=1)
|
@Child(name="system", type=UriDt.class, order=0, min=1, max=1)
|
||||||
private UriDt mySystem;
|
private UriDt mySystem;
|
||||||
|
@ -1069,7 +1074,7 @@ public class ValueSet implements IResource {
|
||||||
private List<CodeDt> myCode;
|
private List<CodeDt> myCode;
|
||||||
|
|
||||||
@Child(name="filter", order=3, min=0, max=Child.MAX_UNLIMITED)
|
@Child(name="filter", order=3, min=0, max=Child.MAX_UNLIMITED)
|
||||||
private List<Filter> myFilter;
|
private List<ComposeIncludeFilter> myFilter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>system</b> (The system the codes come from).
|
* Gets the value(s) for <b>system</b> (The system the codes come from).
|
||||||
|
@ -1182,9 +1187,9 @@ public class ValueSet implements IResource {
|
||||||
* Select concepts by specify a matching criteria based on the properties (including relationships) defined by the system. If multiple filters are specified, they SHALL all be true.
|
* Select concepts by specify a matching criteria based on the properties (including relationships) defined by the system. If multiple filters are specified, they SHALL all be true.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public List<Filter> getFilter() {
|
public List<ComposeIncludeFilter> getFilter() {
|
||||||
if (myFilter == null) {
|
if (myFilter == null) {
|
||||||
myFilter = new ArrayList<Filter>();
|
myFilter = new ArrayList<ComposeIncludeFilter>();
|
||||||
}
|
}
|
||||||
return myFilter;
|
return myFilter;
|
||||||
}
|
}
|
||||||
|
@ -1197,11 +1202,12 @@ public class ValueSet implements IResource {
|
||||||
* Select concepts by specify a matching criteria based on the properties (including relationships) defined by the system. If multiple filters are specified, they SHALL all be true.
|
* Select concepts by specify a matching criteria based on the properties (including relationships) defined by the system. If multiple filters are specified, they SHALL all be true.
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setFilter(List<Filter> theValue) {
|
public void setFilter(List<ComposeIncludeFilter> theValue) {
|
||||||
myFilter = theValue;
|
myFilter = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1213,7 +1219,7 @@ public class ValueSet implements IResource {
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
@Block(name="ValueSet.compose.include.filter")
|
@Block(name="ValueSet.compose.include.filter")
|
||||||
public static class Filter implements IResourceBlock {
|
public static class ComposeIncludeFilter implements IResourceBlock {
|
||||||
|
|
||||||
@Child(name="property", type=CodeDt.class, order=0, min=1, max=1)
|
@Child(name="property", type=CodeDt.class, order=0, min=1, max=1)
|
||||||
private CodeDt myProperty;
|
private CodeDt myProperty;
|
||||||
|
@ -1314,8 +1320,12 @@ public class ValueSet implements IResource {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Block class for child element: <b>ValueSet.expansion</b> (When value set is an expansion)
|
* Block class for child element: <b>ValueSet.expansion</b> (When value set is an expansion)
|
||||||
*
|
*
|
||||||
|
@ -1334,7 +1344,7 @@ public class ValueSet implements IResource {
|
||||||
private InstantDt myTimestamp;
|
private InstantDt myTimestamp;
|
||||||
|
|
||||||
@Child(name="contains", order=2, min=0, max=Child.MAX_UNLIMITED)
|
@Child(name="contains", order=2, min=0, max=Child.MAX_UNLIMITED)
|
||||||
private List<Contains> myContains;
|
private List<ExpansionContains> myContains;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>identifier</b> (Uniquely identifies this expansion).
|
* Gets the value(s) for <b>identifier</b> (Uniquely identifies this expansion).
|
||||||
|
@ -1406,9 +1416,9 @@ public class ValueSet implements IResource {
|
||||||
*
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public List<Contains> getContains() {
|
public List<ExpansionContains> getContains() {
|
||||||
if (myContains == null) {
|
if (myContains == null) {
|
||||||
myContains = new ArrayList<Contains>();
|
myContains = new ArrayList<ExpansionContains>();
|
||||||
}
|
}
|
||||||
return myContains;
|
return myContains;
|
||||||
}
|
}
|
||||||
|
@ -1421,11 +1431,12 @@ public class ValueSet implements IResource {
|
||||||
*
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setContains(List<Contains> theValue) {
|
public void setContains(List<ExpansionContains> theValue) {
|
||||||
myContains = theValue;
|
myContains = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1437,7 +1448,7 @@ public class ValueSet implements IResource {
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
@Block(name="ValueSet.expansion.contains")
|
@Block(name="ValueSet.expansion.contains")
|
||||||
public static class Contains implements IResourceBlock {
|
public static class ExpansionContains implements IResourceBlock {
|
||||||
|
|
||||||
@Child(name="system", type=UriDt.class, order=0, min=0, max=1)
|
@Child(name="system", type=UriDt.class, order=0, min=0, max=1)
|
||||||
private UriDt mySystem;
|
private UriDt mySystem;
|
||||||
|
@ -1448,8 +1459,8 @@ public class ValueSet implements IResource {
|
||||||
@Child(name="display", type=StringDt.class, order=2, min=0, max=1)
|
@Child(name="display", type=StringDt.class, order=2, min=0, max=1)
|
||||||
private StringDt myDisplay;
|
private StringDt myDisplay;
|
||||||
|
|
||||||
@Child(name="contains", type=Contains.class, order=3, min=0, max=Child.MAX_UNLIMITED)
|
@Child(name="contains", type=ExpansionContains.class, order=3, min=0, max=Child.MAX_UNLIMITED)
|
||||||
private List<Contains> myContains;
|
private List<ExpansionContains> myContains;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value(s) for <b>system</b> (System value for the code).
|
* Gets the value(s) for <b>system</b> (System value for the code).
|
||||||
|
@ -1562,9 +1573,9 @@ public class ValueSet implements IResource {
|
||||||
*
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public List<Contains> getContains() {
|
public List<ExpansionContains> getContains() {
|
||||||
if (myContains == null) {
|
if (myContains == null) {
|
||||||
myContains = new ArrayList<Contains>();
|
myContains = new ArrayList<ExpansionContains>();
|
||||||
}
|
}
|
||||||
return myContains;
|
return myContains;
|
||||||
}
|
}
|
||||||
|
@ -1577,13 +1588,16 @@ public class ValueSet implements IResource {
|
||||||
*
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public void setContains(List<Contains> theValue) {
|
public void setContains(List<ExpansionContains> theValue) {
|
||||||
myContains = theValue;
|
myContains = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -18,117 +18,29 @@ import ca.uhn.fhir.context.RuntimePrimitiveDatatypeNarrativeDefinition;
|
||||||
import ca.uhn.fhir.context.RuntimeResourceBlockDefinition;
|
import ca.uhn.fhir.context.RuntimeResourceBlockDefinition;
|
||||||
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
||||||
import ca.uhn.fhir.context.RuntimeResourceReferenceDefinition;
|
import ca.uhn.fhir.context.RuntimeResourceReferenceDefinition;
|
||||||
import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions;
|
import ca.uhn.fhir.model.api.Bundle;
|
||||||
import ca.uhn.fhir.model.api.ICompositeDatatype;
|
import ca.uhn.fhir.model.api.ICompositeDatatype;
|
||||||
import ca.uhn.fhir.model.api.ICompositeElement;
|
import ca.uhn.fhir.model.api.ICompositeElement;
|
||||||
import ca.uhn.fhir.model.api.IElement;
|
import ca.uhn.fhir.model.api.IElement;
|
||||||
import ca.uhn.fhir.model.api.IPrimitiveDatatype;
|
import ca.uhn.fhir.model.api.IPrimitiveDatatype;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
|
||||||
import ca.uhn.fhir.model.api.IResourceBlock;
|
import ca.uhn.fhir.model.api.IResourceBlock;
|
||||||
|
import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions;
|
||||||
import ca.uhn.fhir.model.api.ResourceReference;
|
import ca.uhn.fhir.model.api.ResourceReference;
|
||||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
||||||
|
import ca.uhn.fhir.model.primitive.StringDt;
|
||||||
import ca.uhn.fhir.model.primitive.XhtmlDt;
|
import ca.uhn.fhir.model.primitive.XhtmlDt;
|
||||||
|
|
||||||
class ParserState {
|
class ParserState {
|
||||||
|
|
||||||
public class DeclaredExtensionState extends BaseState {
|
|
||||||
|
|
||||||
private RuntimeChildDeclaredExtensionDefinition myDefinition;
|
|
||||||
private IElement myParentInstance;
|
|
||||||
private IElement myChildInstance;
|
|
||||||
|
|
||||||
public DeclaredExtensionState(RuntimeChildDeclaredExtensionDefinition theDefinition, IElement theParentInstance) {
|
|
||||||
myDefinition = theDefinition;
|
|
||||||
myParentInstance = theParentInstance;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void attributeValue(Attribute theAttribute, String theValue) throws DataFormatException {
|
|
||||||
throw new DataFormatException("'value' attribute is invalid in 'extension' element");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void endingElement(EndElement theElem) throws DataFormatException {
|
|
||||||
pop();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void enteringNewElementExtension(StartElement theElement, String theUrlAttr) {
|
|
||||||
RuntimeChildDeclaredExtensionDefinition declaredExtension = myDefinition.getChildExtensionForUrl(theUrlAttr);
|
|
||||||
if (declaredExtension != null) {
|
|
||||||
if (myChildInstance == null) {
|
|
||||||
myChildInstance = myDefinition.newInstance();
|
|
||||||
myDefinition.getMutator().addValue(myParentInstance, myChildInstance);
|
|
||||||
}
|
|
||||||
BaseState newState = new DeclaredExtensionState(declaredExtension, myChildInstance);
|
|
||||||
push(newState);
|
|
||||||
}else {
|
|
||||||
super.enteringNewElementExtension(theElement, theUrlAttr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void enteringNewElement(StartElement theElement, String theLocalPart) throws DataFormatException {
|
|
||||||
BaseRuntimeElementDefinition<?> target = myDefinition.getChildByName(theLocalPart);
|
|
||||||
if (target == null) {
|
|
||||||
throw new DataFormatException("Unknown extension element name: " + theLocalPart);
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (target.getChildType()) {
|
|
||||||
case COMPOSITE_DATATYPE: {
|
|
||||||
BaseRuntimeElementCompositeDefinition<?> compositeTarget = (BaseRuntimeElementCompositeDefinition<?>) target;
|
|
||||||
ICompositeDatatype newChildInstance = (ICompositeDatatype) compositeTarget.newInstance();
|
|
||||||
myDefinition.getMutator().addValue(myParentInstance, newChildInstance);
|
|
||||||
ContainerState newState = new ContainerState(compositeTarget, newChildInstance);
|
|
||||||
push(newState);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
case PRIMITIVE_DATATYPE: {
|
|
||||||
RuntimePrimitiveDatatypeDefinition primitiveTarget = (RuntimePrimitiveDatatypeDefinition) target;
|
|
||||||
IPrimitiveDatatype<?> newChildInstance = primitiveTarget.newInstance();
|
|
||||||
myDefinition.getMutator().addValue(myParentInstance, newChildInstance);
|
|
||||||
PrimitiveState newState = new PrimitiveState(newChildInstance);
|
|
||||||
push(newState);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
case RESOURCE_REF: {
|
|
||||||
RuntimeResourceReferenceDefinition resourceRefTarget = (RuntimeResourceReferenceDefinition) target;
|
|
||||||
ResourceReference newChildInstance = new ResourceReference();
|
|
||||||
myDefinition.getMutator().addValue(myParentInstance, newChildInstance);
|
|
||||||
ResourceReferenceState newState = new ResourceReferenceState(resourceRefTarget, newChildInstance);
|
|
||||||
push(newState);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
case PRIMITIVE_XHTML:
|
|
||||||
case RESOURCE:
|
|
||||||
case RESOURCE_BLOCK:
|
|
||||||
case UNDECL_EXT:
|
|
||||||
case EXTENSION_DECLARED:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void otherEvent(XMLEvent theEvent) throws DataFormatException {
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected IElement getCurrentElement() {
|
|
||||||
return myParentInstance;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ParserState.class);
|
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ParserState.class);
|
||||||
|
|
||||||
private FhirContext myContext;
|
private FhirContext myContext;
|
||||||
|
|
||||||
private Object myObject;
|
private Object myObject;
|
||||||
|
|
||||||
private BaseState myState;
|
private BaseState myState;
|
||||||
|
|
||||||
public ParserState(FhirContext theContext) {
|
private ParserState(FhirContext theContext) {
|
||||||
myContext = theContext;
|
myContext = theContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,6 +74,7 @@ class ParserState {
|
||||||
|
|
||||||
private void pop() {
|
private void pop() {
|
||||||
myState = myState.myStack;
|
myState = myState.myStack;
|
||||||
|
myState.wereBack();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void push(BaseState theState) {
|
private void push(BaseState theState) {
|
||||||
|
@ -169,26 +82,142 @@ class ParserState {
|
||||||
myState = theState;
|
myState = theState;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setState(BaseState theState) {
|
public static ParserState getPreResourceInstance(FhirContext theContext) throws DataFormatException {
|
||||||
myState = theState;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ParserState getResourceInstance(FhirContext theContext, String theLocalPart) throws DataFormatException {
|
|
||||||
BaseRuntimeElementDefinition<?> definition = theContext.getNameToResourceDefinition().get(theLocalPart);
|
|
||||||
if (!(definition instanceof RuntimeResourceDefinition)) {
|
|
||||||
throw new DataFormatException("Element '" + theLocalPart + "' is not a resource, expected a resource at this position");
|
|
||||||
}
|
|
||||||
|
|
||||||
RuntimeResourceDefinition def = (RuntimeResourceDefinition) definition;
|
|
||||||
IResource instance = def.newInstance();
|
|
||||||
|
|
||||||
ParserState retVal = new ParserState(theContext);
|
ParserState retVal = new ParserState(theContext);
|
||||||
retVal.setState(retVal.new ContainerState(def, instance));
|
retVal.push(retVal.new PreResourceState());
|
||||||
|
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class AtomPrimitiveState extends BaseState{
|
||||||
|
|
||||||
|
private IPrimitiveDatatype<?> myPrimitive;
|
||||||
|
private String myData;
|
||||||
|
|
||||||
|
public AtomPrimitiveState(IPrimitiveDatatype<?> thePrimitive) {
|
||||||
|
myPrimitive = thePrimitive;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void attributeValue(Attribute theAttribute, String theValue) throws DataFormatException {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void endingElement(EndElement theElem) throws DataFormatException {
|
||||||
|
myPrimitive.setValueAsString(myData);
|
||||||
|
pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void enteringNewElement(StartElement theElement, String theLocalPart) throws DataFormatException {
|
||||||
|
throw new DataFormatException("Unexpected nested element in atom tag ");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected IElement getCurrentElement() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void otherEvent(XMLEvent theEvent) throws DataFormatException {
|
||||||
|
if (theEvent.isCharacters()) {
|
||||||
|
String data = theEvent.asCharacters().getData();
|
||||||
|
if (myData == null) {
|
||||||
|
myData = data;
|
||||||
|
}else {
|
||||||
|
// this shouldn't generally happen so it's ok that it's inefficient
|
||||||
|
myData = myData + data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private class AtomState extends BaseState {
|
||||||
|
|
||||||
|
private Bundle myInstance;
|
||||||
|
|
||||||
|
public AtomState(Bundle theInstance) {
|
||||||
|
myInstance = theInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void attributeValue(Attribute theAttribute, String theValue) throws DataFormatException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void endingElement(EndElement theElem) throws DataFormatException {
|
||||||
|
pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void enteringNewElement(StartElement theElement, String theLocalPart) throws DataFormatException {
|
||||||
|
if (theLocalPart.equals("title")) {
|
||||||
|
push(new AtomPrimitiveState(myInstance.getTitle()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected IElement getCurrentElement() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void otherEvent(XMLEvent theEvent) throws DataFormatException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private class PreAtomState extends BaseState {
|
||||||
|
|
||||||
|
private Bundle myInstance;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void attributeValue(Attribute theAttribute, String theValue) throws DataFormatException {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void endingElement(EndElement theElem) throws DataFormatException {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void enteringNewElement(StartElement theElement, String theLocalPart) throws DataFormatException {
|
||||||
|
if (!"feed".equals(theLocalPart)) {
|
||||||
|
throw new DataFormatException("Expecting outer element called 'feed', found: "+theLocalPart);
|
||||||
|
}
|
||||||
|
|
||||||
|
myInstance = new Bundle();
|
||||||
|
push(new AtomState(myInstance));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected IElement getCurrentElement() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void wereBack() {
|
||||||
|
myObject = myInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void otherEvent(XMLEvent theEvent) throws DataFormatException {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private abstract class BaseState {
|
private abstract class BaseState {
|
||||||
|
|
||||||
private BaseState myStack;
|
private BaseState myStack;
|
||||||
|
|
||||||
public abstract void attributeValue(Attribute theAttribute, String theValue) throws DataFormatException;
|
public abstract void attributeValue(Attribute theAttribute, String theValue) throws DataFormatException;
|
||||||
|
@ -211,22 +240,116 @@ class ParserState {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected abstract IElement getCurrentElement();
|
||||||
|
|
||||||
public abstract void otherEvent(XMLEvent theEvent) throws DataFormatException;
|
public abstract void otherEvent(XMLEvent theEvent) throws DataFormatException;
|
||||||
|
|
||||||
public void setStack(BaseState theState) {
|
public void setStack(BaseState theState) {
|
||||||
myStack = theState;
|
myStack = theState;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract IElement getCurrentElement();
|
public void wereBack() {
|
||||||
|
// allow an implementor to override
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ContainerState extends BaseState {
|
private class DeclaredExtensionState extends BaseState {
|
||||||
|
|
||||||
|
private IElement myChildInstance;
|
||||||
|
private RuntimeChildDeclaredExtensionDefinition myDefinition;
|
||||||
|
private IElement myParentInstance;
|
||||||
|
|
||||||
|
public DeclaredExtensionState(RuntimeChildDeclaredExtensionDefinition theDefinition, IElement theParentInstance) {
|
||||||
|
myDefinition = theDefinition;
|
||||||
|
myParentInstance = theParentInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void attributeValue(Attribute theAttribute, String theValue) throws DataFormatException {
|
||||||
|
throw new DataFormatException("'value' attribute is invalid in 'extension' element");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void endingElement(EndElement theElem) throws DataFormatException {
|
||||||
|
pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void enteringNewElement(StartElement theElement, String theLocalPart) throws DataFormatException {
|
||||||
|
BaseRuntimeElementDefinition<?> target = myDefinition.getChildByName(theLocalPart);
|
||||||
|
if (target == null) {
|
||||||
|
throw new DataFormatException("Unknown extension element name: " + theLocalPart);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (target.getChildType()) {
|
||||||
|
case COMPOSITE_DATATYPE: {
|
||||||
|
BaseRuntimeElementCompositeDefinition<?> compositeTarget = (BaseRuntimeElementCompositeDefinition<?>) target;
|
||||||
|
ICompositeDatatype newChildInstance = (ICompositeDatatype) compositeTarget.newInstance();
|
||||||
|
myDefinition.getMutator().addValue(myParentInstance, newChildInstance);
|
||||||
|
ElementCompositeState newState = new ElementCompositeState(compositeTarget, newChildInstance);
|
||||||
|
push(newState);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
case PRIMITIVE_DATATYPE: {
|
||||||
|
RuntimePrimitiveDatatypeDefinition primitiveTarget = (RuntimePrimitiveDatatypeDefinition) target;
|
||||||
|
IPrimitiveDatatype<?> newChildInstance = primitiveTarget.newInstance();
|
||||||
|
myDefinition.getMutator().addValue(myParentInstance, newChildInstance);
|
||||||
|
PrimitiveState newState = new PrimitiveState(newChildInstance);
|
||||||
|
push(newState);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
case RESOURCE_REF: {
|
||||||
|
RuntimeResourceReferenceDefinition resourceRefTarget = (RuntimeResourceReferenceDefinition) target;
|
||||||
|
ResourceReference newChildInstance = new ResourceReference();
|
||||||
|
myDefinition.getMutator().addValue(myParentInstance, newChildInstance);
|
||||||
|
ResourceReferenceState newState = new ResourceReferenceState(resourceRefTarget, newChildInstance);
|
||||||
|
push(newState);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
case PRIMITIVE_XHTML:
|
||||||
|
case RESOURCE:
|
||||||
|
case RESOURCE_BLOCK:
|
||||||
|
case UNDECL_EXT:
|
||||||
|
case EXTENSION_DECLARED:
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void enteringNewElementExtension(StartElement theElement, String theUrlAttr) {
|
||||||
|
RuntimeChildDeclaredExtensionDefinition declaredExtension = myDefinition.getChildExtensionForUrl(theUrlAttr);
|
||||||
|
if (declaredExtension != null) {
|
||||||
|
if (myChildInstance == null) {
|
||||||
|
myChildInstance = myDefinition.newInstance();
|
||||||
|
myDefinition.getMutator().addValue(myParentInstance, myChildInstance);
|
||||||
|
}
|
||||||
|
BaseState newState = new DeclaredExtensionState(declaredExtension, myChildInstance);
|
||||||
|
push(newState);
|
||||||
|
} else {
|
||||||
|
super.enteringNewElementExtension(theElement, theUrlAttr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected IElement getCurrentElement() {
|
||||||
|
return myParentInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void otherEvent(XMLEvent theEvent) throws DataFormatException {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private class ElementCompositeState extends BaseState {
|
||||||
|
|
||||||
private BaseRuntimeElementCompositeDefinition<?> myDefinition;
|
private BaseRuntimeElementCompositeDefinition<?> myDefinition;
|
||||||
private ICompositeElement myInstance;
|
private ICompositeElement myInstance;
|
||||||
|
|
||||||
public ContainerState(BaseRuntimeElementCompositeDefinition<?> theDef, ICompositeElement theInstance) {
|
public ElementCompositeState(BaseRuntimeElementCompositeDefinition<?> theDef, ICompositeElement theInstance) {
|
||||||
myDefinition = theDef;
|
myDefinition = theDef;
|
||||||
myInstance = theInstance;
|
myInstance = theInstance;
|
||||||
}
|
}
|
||||||
|
@ -244,17 +367,6 @@ class ParserState {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void enteringNewElementExtension(StartElement theElement, String theUrlAttr) {
|
|
||||||
RuntimeChildDeclaredExtensionDefinition declaredExtension = myDefinition.getDeclaredExtension(theUrlAttr);
|
|
||||||
if (declaredExtension != null) {
|
|
||||||
BaseState newState = new DeclaredExtensionState(declaredExtension, myInstance);
|
|
||||||
push(newState);
|
|
||||||
}else {
|
|
||||||
super.enteringNewElementExtension(theElement, theUrlAttr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enteringNewElement(StartElement theElement, String theChildName) throws DataFormatException {
|
public void enteringNewElement(StartElement theElement, String theChildName) throws DataFormatException {
|
||||||
BaseRuntimeChildDefinition child = myDefinition.getChildByNameOrThrowDataFormatException(theChildName);
|
BaseRuntimeChildDefinition child = myDefinition.getChildByNameOrThrowDataFormatException(theChildName);
|
||||||
|
@ -268,7 +380,7 @@ class ParserState {
|
||||||
BaseRuntimeElementCompositeDefinition<?> compositeTarget = (BaseRuntimeElementCompositeDefinition<?>) target;
|
BaseRuntimeElementCompositeDefinition<?> compositeTarget = (BaseRuntimeElementCompositeDefinition<?>) target;
|
||||||
ICompositeDatatype newChildInstance = (ICompositeDatatype) compositeTarget.newInstance();
|
ICompositeDatatype newChildInstance = (ICompositeDatatype) compositeTarget.newInstance();
|
||||||
child.getMutator().addValue(myInstance, newChildInstance);
|
child.getMutator().addValue(myInstance, newChildInstance);
|
||||||
ContainerState newState = new ContainerState(compositeTarget, newChildInstance);
|
ElementCompositeState newState = new ElementCompositeState(compositeTarget, newChildInstance);
|
||||||
push(newState);
|
push(newState);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -292,7 +404,7 @@ class ParserState {
|
||||||
RuntimeResourceBlockDefinition blockTarget = (RuntimeResourceBlockDefinition) target;
|
RuntimeResourceBlockDefinition blockTarget = (RuntimeResourceBlockDefinition) target;
|
||||||
IResourceBlock newBlockInstance = blockTarget.newInstance();
|
IResourceBlock newBlockInstance = blockTarget.newInstance();
|
||||||
child.getMutator().addValue(myInstance, newBlockInstance);
|
child.getMutator().addValue(myInstance, newBlockInstance);
|
||||||
ContainerState newState = new ContainerState(blockTarget, newBlockInstance);
|
ElementCompositeState newState = new ElementCompositeState(blockTarget, newBlockInstance);
|
||||||
push(newState);
|
push(newState);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -315,8 +427,14 @@ class ParserState {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void otherEvent(XMLEvent theEvent) {
|
public void enteringNewElementExtension(StartElement theElement, String theUrlAttr) {
|
||||||
// ignore
|
RuntimeChildDeclaredExtensionDefinition declaredExtension = myDefinition.getDeclaredExtension(theUrlAttr);
|
||||||
|
if (declaredExtension != null) {
|
||||||
|
BaseState newState = new DeclaredExtensionState(declaredExtension, myInstance);
|
||||||
|
push(newState);
|
||||||
|
} else {
|
||||||
|
super.enteringNewElementExtension(theElement, theUrlAttr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -324,6 +442,11 @@ class ParserState {
|
||||||
return myInstance;
|
return myInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void otherEvent(XMLEvent theEvent) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ExtensionState extends BaseState {
|
private class ExtensionState extends BaseState {
|
||||||
|
@ -359,7 +482,7 @@ class ParserState {
|
||||||
BaseRuntimeElementCompositeDefinition<?> compositeTarget = (BaseRuntimeElementCompositeDefinition<?>) target;
|
BaseRuntimeElementCompositeDefinition<?> compositeTarget = (BaseRuntimeElementCompositeDefinition<?>) target;
|
||||||
ICompositeDatatype newChildInstance = (ICompositeDatatype) compositeTarget.newInstance();
|
ICompositeDatatype newChildInstance = (ICompositeDatatype) compositeTarget.newInstance();
|
||||||
myExtension.setValue(newChildInstance);
|
myExtension.setValue(newChildInstance);
|
||||||
ContainerState newState = new ContainerState(compositeTarget, newChildInstance);
|
ElementCompositeState newState = new ElementCompositeState(compositeTarget, newChildInstance);
|
||||||
push(newState);
|
push(newState);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -387,14 +510,58 @@ class ParserState {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected IElement getCurrentElement() {
|
||||||
|
return myExtension;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void otherEvent(XMLEvent theEvent) throws DataFormatException {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private class PreResourceState extends BaseState {
|
||||||
|
|
||||||
|
private ICompositeElement myInstance;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void attributeValue(Attribute theAttribute, String theValue) throws DataFormatException {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void endingElement(EndElement theElem) throws DataFormatException {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void enteringNewElement(StartElement theElement, String theLocalPart) throws DataFormatException {
|
||||||
|
BaseRuntimeElementDefinition<?> definition = myContext.getNameToResourceDefinition().get(theLocalPart);
|
||||||
|
if (!(definition instanceof RuntimeResourceDefinition)) {
|
||||||
|
throw new DataFormatException("Element '" + theLocalPart + "' is not a resource, expected a resource at this position");
|
||||||
|
}
|
||||||
|
|
||||||
|
RuntimeResourceDefinition def = (RuntimeResourceDefinition) definition;
|
||||||
|
myInstance = def.newInstance();
|
||||||
|
|
||||||
|
push(new ElementCompositeState(def, myInstance));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected IElement getCurrentElement() {
|
||||||
|
return myInstance;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void otherEvent(XMLEvent theEvent) throws DataFormatException {
|
public void otherEvent(XMLEvent theEvent) throws DataFormatException {
|
||||||
// ignore
|
// ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected IElement getCurrentElement() {
|
public void wereBack() {
|
||||||
return myExtension;
|
myObject = myInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -423,13 +590,13 @@ class ParserState {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void otherEvent(XMLEvent theEvent) {
|
protected IElement getCurrentElement() {
|
||||||
// ignore
|
return myInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected IElement getCurrentElement() {
|
public void otherEvent(XMLEvent theEvent) {
|
||||||
return myInstance;
|
// ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -491,13 +658,13 @@ class ParserState {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void otherEvent(XMLEvent theEvent) {
|
protected IElement getCurrentElement() {
|
||||||
// ignore
|
return myInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected IElement getCurrentElement() {
|
public void otherEvent(XMLEvent theEvent) {
|
||||||
return myInstance;
|
// ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -540,13 +707,13 @@ class ParserState {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void otherEvent(XMLEvent theEvent) throws DataFormatException {
|
protected IElement getCurrentElement() {
|
||||||
myEvents.add(theEvent);
|
return myDt;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected IElement getCurrentElement() {
|
public void otherEvent(XMLEvent theEvent) throws DataFormatException {
|
||||||
return myDt;
|
myEvents.add(theEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,9 @@ import static org.apache.commons.lang3.StringUtils.isNotBlank;
|
||||||
|
|
||||||
import java.io.StringReader;
|
import java.io.StringReader;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.xml.bind.DatatypeConverter;
|
|
||||||
import javax.xml.namespace.QName;
|
import javax.xml.namespace.QName;
|
||||||
import javax.xml.stream.FactoryConfigurationError;
|
import javax.xml.stream.FactoryConfigurationError;
|
||||||
import javax.xml.stream.XMLEventReader;
|
import javax.xml.stream.XMLEventReader;
|
||||||
|
@ -28,7 +26,6 @@ import javax.xml.stream.events.StartElement;
|
||||||
import javax.xml.stream.events.XMLEvent;
|
import javax.xml.stream.events.XMLEvent;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.commons.lang3.time.DateUtils;
|
|
||||||
|
|
||||||
import ca.uhn.fhir.context.BaseRuntimeChildDefinition;
|
import ca.uhn.fhir.context.BaseRuntimeChildDefinition;
|
||||||
import ca.uhn.fhir.context.BaseRuntimeElementCompositeDefinition;
|
import ca.uhn.fhir.context.BaseRuntimeElementCompositeDefinition;
|
||||||
|
@ -45,16 +42,18 @@ import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions;
|
import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions;
|
||||||
import ca.uhn.fhir.model.api.ResourceReference;
|
import ca.uhn.fhir.model.api.ResourceReference;
|
||||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
||||||
|
import ca.uhn.fhir.model.primitive.InstantDt;
|
||||||
|
import ca.uhn.fhir.model.primitive.StringDt;
|
||||||
import ca.uhn.fhir.model.primitive.XhtmlDt;
|
import ca.uhn.fhir.model.primitive.XhtmlDt;
|
||||||
import ca.uhn.fhir.util.PrettyPrintWriterWrapper;
|
import ca.uhn.fhir.util.PrettyPrintWriterWrapper;
|
||||||
|
|
||||||
public class XmlParser {
|
public class XmlParser {
|
||||||
private static final String XHTML_NS = "http://www.w3.org/1999/xhtml";
|
private static final String ATOM_NS = "http://www.w3.org/2005/Atom";
|
||||||
private static final String FHIR_NS = "http://hl7.org/fhir";
|
private static final String FHIR_NS = "http://hl7.org/fhir";
|
||||||
|
private static final String OPENSEARCH_NS = "http://a9.com/-/spec/opensearch/1.1/";
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(XmlParser.class);
|
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(XmlParser.class);
|
||||||
private static final String ATOM_NS = "http://www.w3.org/2005/Atom";
|
private static final String XHTML_NS = "http://www.w3.org/1999/xhtml";
|
||||||
private static final String OPENSEARCH_NS = "http://a9.com/-/spec/opensearch/1.1/";
|
|
||||||
|
|
||||||
private FhirContext myContext;
|
private FhirContext myContext;
|
||||||
private XMLInputFactory myXmlInputFactory;
|
private XMLInputFactory myXmlInputFactory;
|
||||||
|
@ -66,14 +65,62 @@ public class XmlParser {
|
||||||
myXmlOutputFactory = XMLOutputFactory.newInstance();
|
myXmlOutputFactory = XMLOutputFactory.newInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String encodeResourceToString(IResource theResource) throws DataFormatException {
|
private XMLStreamWriter decorateStreamWriter(XMLStreamWriter eventWriter) {
|
||||||
|
PrettyPrintWriterWrapper retVal = new PrettyPrintWriterWrapper(eventWriter);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String encodeBundleToString(Bundle theBundle) throws DataFormatException {
|
||||||
XMLStreamWriter eventWriter;
|
XMLStreamWriter eventWriter;
|
||||||
StringWriter stringWriter = new StringWriter();
|
StringWriter stringWriter = new StringWriter();
|
||||||
try {
|
try {
|
||||||
eventWriter = myXmlOutputFactory.createXMLStreamWriter(stringWriter);
|
eventWriter = myXmlOutputFactory.createXMLStreamWriter(stringWriter);
|
||||||
eventWriter = decorateStreamWriter(eventWriter);
|
eventWriter = decorateStreamWriter(eventWriter);
|
||||||
|
|
||||||
encodeResourceToStreamWriter(theResource, eventWriter);
|
eventWriter.writeStartElement("feed");
|
||||||
|
eventWriter.writeDefaultNamespace(ATOM_NS);
|
||||||
|
|
||||||
|
writeTagWithTextNode(eventWriter, "title", theBundle.getTitle());
|
||||||
|
writeTagWithTextNode(eventWriter, "id", theBundle.getId());
|
||||||
|
|
||||||
|
writeAtomLink(eventWriter, "self", theBundle.getLinkSelf());
|
||||||
|
writeAtomLink(eventWriter, "first", theBundle.getLinkFirst());
|
||||||
|
writeAtomLink(eventWriter, "previous", theBundle.getLinkPrevious());
|
||||||
|
writeAtomLink(eventWriter, "next", theBundle.getLinkNext());
|
||||||
|
writeAtomLink(eventWriter, "last", theBundle.getLinkLast());
|
||||||
|
writeAtomLink(eventWriter, "fhir-base", theBundle.getLinkBase());
|
||||||
|
|
||||||
|
if (theBundle.getTotalResults() != null) {
|
||||||
|
eventWriter.writeNamespace("os", OPENSEARCH_NS);
|
||||||
|
eventWriter.writeStartElement(OPENSEARCH_NS, "totalResults");
|
||||||
|
eventWriter.writeCharacters(theBundle.getTotalResults().toString());
|
||||||
|
eventWriter.writeEndElement();
|
||||||
|
}
|
||||||
|
|
||||||
|
writeOptionalTagWithTextNode(eventWriter, "updated", theBundle.getUpdated());
|
||||||
|
writeOptionalTagWithTextNode(eventWriter, "published", theBundle.getPublished());
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(theBundle.getAuthorName().getValue())) {
|
||||||
|
eventWriter.writeStartElement("author");
|
||||||
|
writeTagWithTextNode(eventWriter, "name", theBundle.getAuthorName());
|
||||||
|
writeOptionalTagWithTextNode(eventWriter, "device", theBundle.getAuthorDevice());
|
||||||
|
}
|
||||||
|
|
||||||
|
for (BundleEntry nextEntry : theBundle.getEntries()) {
|
||||||
|
eventWriter.writeStartElement("entry");
|
||||||
|
|
||||||
|
eventWriter.writeStartElement("content");
|
||||||
|
eventWriter.writeAttribute("type", "text/xml");
|
||||||
|
|
||||||
|
IResource resource = nextEntry.getResource();
|
||||||
|
encodeResourceToStreamWriter(resource, eventWriter);
|
||||||
|
|
||||||
|
eventWriter.writeEndElement(); // content
|
||||||
|
eventWriter.writeEndElement(); // entry
|
||||||
|
}
|
||||||
|
|
||||||
|
eventWriter.writeEndElement();
|
||||||
|
eventWriter.close();
|
||||||
} catch (XMLStreamException e) {
|
} catch (XMLStreamException e) {
|
||||||
throw new ConfigurationException("Failed to initialize STaX event factory", e);
|
throw new ConfigurationException("Failed to initialize STaX event factory", e);
|
||||||
}
|
}
|
||||||
|
@ -81,61 +128,6 @@ public class XmlParser {
|
||||||
return stringWriter.toString();
|
return stringWriter.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void encodeResourceToStreamWriter(IResource theResource, XMLStreamWriter eventWriter) throws XMLStreamException, DataFormatException {
|
|
||||||
RuntimeResourceDefinition resDef = myContext.getResourceDefinition(theResource);
|
|
||||||
eventWriter.writeStartElement(resDef.getName());
|
|
||||||
eventWriter.writeDefaultNamespace(FHIR_NS);
|
|
||||||
|
|
||||||
encodeCompositeElementToStreamWriter(theResource, eventWriter, resDef);
|
|
||||||
|
|
||||||
eventWriter.writeEndElement();
|
|
||||||
eventWriter.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
private XMLStreamWriter decorateStreamWriter(XMLStreamWriter eventWriter) {
|
|
||||||
PrettyPrintWriterWrapper retVal = new PrettyPrintWriterWrapper(eventWriter);
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void encodeCompositeElementToStreamWriter(IElement theElement, XMLStreamWriter theEventWriter, BaseRuntimeElementCompositeDefinition<?> resDef) throws XMLStreamException,
|
|
||||||
DataFormatException {
|
|
||||||
encodeExtensionsIfPresent(theEventWriter, theElement);
|
|
||||||
encodeCompositeElementChildrenToStreamWriter(theElement, theEventWriter, resDef.getExtensions());
|
|
||||||
encodeCompositeElementChildrenToStreamWriter(theElement, theEventWriter, resDef.getChildren());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void encodeCompositeElementChildrenToStreamWriter(IElement theElement, XMLStreamWriter theEventWriter, List<? extends BaseRuntimeChildDefinition> children) throws XMLStreamException,
|
|
||||||
DataFormatException {
|
|
||||||
for (BaseRuntimeChildDefinition nextChild : children) {
|
|
||||||
List<? extends IElement> values = nextChild.getAccessor().getValues(theElement);
|
|
||||||
if (values == null || values.isEmpty()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (IElement nextValue : values) {
|
|
||||||
if (nextValue == null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Class<? extends IElement> type = nextValue.getClass();
|
|
||||||
String childName = nextChild.getChildNameByDatatype(type);
|
|
||||||
String extensionUrl = nextChild.getExtensionUrl();
|
|
||||||
BaseRuntimeElementDefinition<?> childDef = nextChild.getChildElementDefinitionByDatatype(type);
|
|
||||||
if (childDef == null) {
|
|
||||||
throw new IllegalStateException(nextChild + " has no child of type " + type);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (extensionUrl != null && childName.equals("extension") == false) {
|
|
||||||
theEventWriter.writeStartElement("extension");
|
|
||||||
theEventWriter.writeAttribute("url", extensionUrl);
|
|
||||||
encodeChildElementToStreamWriter(theEventWriter, nextValue, childName, childDef, null);
|
|
||||||
theEventWriter.writeEndElement();
|
|
||||||
} else {
|
|
||||||
encodeChildElementToStreamWriter(theEventWriter, nextValue, childName, childDef, extensionUrl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void encodeChildElementToStreamWriter(XMLStreamWriter theEventWriter, IElement nextValue, String childName, BaseRuntimeElementDefinition<?> childDef, String theExtensionUrl)
|
private void encodeChildElementToStreamWriter(XMLStreamWriter theEventWriter, IElement nextValue, String childName, BaseRuntimeElementDefinition<?> childDef, String theExtensionUrl)
|
||||||
throws XMLStreamException, DataFormatException {
|
throws XMLStreamException, DataFormatException {
|
||||||
switch (childDef.getChildType()) {
|
switch (childDef.getChildType()) {
|
||||||
|
@ -180,6 +172,45 @@ public class XmlParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void encodeCompositeElementChildrenToStreamWriter(IElement theElement, XMLStreamWriter theEventWriter, List<? extends BaseRuntimeChildDefinition> children) throws XMLStreamException,
|
||||||
|
DataFormatException {
|
||||||
|
for (BaseRuntimeChildDefinition nextChild : children) {
|
||||||
|
List<? extends IElement> values = nextChild.getAccessor().getValues(theElement);
|
||||||
|
if (values == null || values.isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (IElement nextValue : values) {
|
||||||
|
if (nextValue == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Class<? extends IElement> type = nextValue.getClass();
|
||||||
|
String childName = nextChild.getChildNameByDatatype(type);
|
||||||
|
String extensionUrl = nextChild.getExtensionUrl();
|
||||||
|
BaseRuntimeElementDefinition<?> childDef = nextChild.getChildElementDefinitionByDatatype(type);
|
||||||
|
if (childDef == null) {
|
||||||
|
throw new IllegalStateException(nextChild + " has no child of type " + type);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (extensionUrl != null && childName.equals("extension") == false) {
|
||||||
|
theEventWriter.writeStartElement("extension");
|
||||||
|
theEventWriter.writeAttribute("url", extensionUrl);
|
||||||
|
encodeChildElementToStreamWriter(theEventWriter, nextValue, childName, childDef, null);
|
||||||
|
theEventWriter.writeEndElement();
|
||||||
|
} else {
|
||||||
|
encodeChildElementToStreamWriter(theEventWriter, nextValue, childName, childDef, extensionUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void encodeCompositeElementToStreamWriter(IElement theElement, XMLStreamWriter theEventWriter, BaseRuntimeElementCompositeDefinition<?> resDef) throws XMLStreamException,
|
||||||
|
DataFormatException {
|
||||||
|
encodeExtensionsIfPresent(theEventWriter, theElement);
|
||||||
|
encodeCompositeElementChildrenToStreamWriter(theElement, theEventWriter, resDef.getExtensions());
|
||||||
|
encodeCompositeElementChildrenToStreamWriter(theElement, theEventWriter, resDef.getChildren());
|
||||||
|
}
|
||||||
|
|
||||||
private void encodeExtensionsIfPresent(XMLStreamWriter theWriter, IElement theResource) throws XMLStreamException, DataFormatException {
|
private void encodeExtensionsIfPresent(XMLStreamWriter theWriter, IElement theResource) throws XMLStreamException, DataFormatException {
|
||||||
if (theResource instanceof ISupportsUndeclaredExtensions) {
|
if (theResource instanceof ISupportsUndeclaredExtensions) {
|
||||||
for (UndeclaredExtension next : ((ISupportsUndeclaredExtensions) theResource).getUndeclaredExtensions()) {
|
for (UndeclaredExtension next : ((ISupportsUndeclaredExtensions) theResource).getUndeclaredExtensions()) {
|
||||||
|
@ -202,58 +233,38 @@ public class XmlParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String encodeBundleToString(Bundle theBundle) throws DataFormatException {
|
private void encodeResourceReferenceToStreamWriter(XMLStreamWriter theEventWriter, ResourceReference theRef) throws XMLStreamException {
|
||||||
|
if (StringUtils.isNotBlank(theRef.getDisplay())) {
|
||||||
|
theEventWriter.writeStartElement("display");
|
||||||
|
theEventWriter.writeAttribute("value", theRef.getDisplay());
|
||||||
|
theEventWriter.writeEndElement();
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(theRef.getReference())) {
|
||||||
|
theEventWriter.writeStartElement("reference");
|
||||||
|
theEventWriter.writeAttribute("value", theRef.getReference());
|
||||||
|
theEventWriter.writeEndElement();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void encodeResourceToStreamWriter(IResource theResource, XMLStreamWriter eventWriter) throws XMLStreamException, DataFormatException {
|
||||||
|
RuntimeResourceDefinition resDef = myContext.getResourceDefinition(theResource);
|
||||||
|
eventWriter.writeStartElement(resDef.getName());
|
||||||
|
eventWriter.writeDefaultNamespace(FHIR_NS);
|
||||||
|
|
||||||
|
encodeCompositeElementToStreamWriter(theResource, eventWriter, resDef);
|
||||||
|
|
||||||
|
eventWriter.writeEndElement();
|
||||||
|
eventWriter.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String encodeResourceToString(IResource theResource) throws DataFormatException {
|
||||||
XMLStreamWriter eventWriter;
|
XMLStreamWriter eventWriter;
|
||||||
StringWriter stringWriter = new StringWriter();
|
StringWriter stringWriter = new StringWriter();
|
||||||
try {
|
try {
|
||||||
eventWriter = myXmlOutputFactory.createXMLStreamWriter(stringWriter);
|
eventWriter = myXmlOutputFactory.createXMLStreamWriter(stringWriter);
|
||||||
eventWriter = decorateStreamWriter(eventWriter);
|
eventWriter = decorateStreamWriter(eventWriter);
|
||||||
|
|
||||||
eventWriter.writeStartElement("feed");
|
encodeResourceToStreamWriter(theResource, eventWriter);
|
||||||
eventWriter.writeDefaultNamespace(ATOM_NS);
|
|
||||||
|
|
||||||
writeTagWithTextNode(eventWriter, "title", theBundle.getTitle());
|
|
||||||
writeTagWithTextNode(eventWriter, "id", theBundle.getId());
|
|
||||||
|
|
||||||
writeAtomLink(eventWriter, "self", theBundle.getLinkSelf());
|
|
||||||
writeAtomLink(eventWriter, "first", theBundle.getLinkFirst());
|
|
||||||
writeAtomLink(eventWriter, "previous", theBundle.getLinkPrevious());
|
|
||||||
writeAtomLink(eventWriter, "next", theBundle.getLinkNext());
|
|
||||||
writeAtomLink(eventWriter, "last", theBundle.getLinkLast());
|
|
||||||
writeAtomLink(eventWriter, "fhir-base", theBundle.getLinkBase());
|
|
||||||
|
|
||||||
if (theBundle.getTotalResults() != null) {
|
|
||||||
eventWriter.writeNamespace("os", OPENSEARCH_NS);
|
|
||||||
eventWriter.writeStartElement(OPENSEARCH_NS, "totalResults");
|
|
||||||
eventWriter.writeCharacters(theBundle.getTotalResults().toString());
|
|
||||||
eventWriter.writeEndElement();
|
|
||||||
}
|
|
||||||
|
|
||||||
writeOptionalTagWithTextNode(eventWriter, "updated", theBundle.getUpdated());
|
|
||||||
writeOptionalTagWithTextNode(eventWriter, "published", theBundle.getPublished());
|
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(theBundle.getAuthorName())) {
|
|
||||||
eventWriter.writeStartElement("author");
|
|
||||||
writeTagWithTextNode(eventWriter, "name", theBundle.getAuthorName());
|
|
||||||
writeOptionalTagWithTextNode(eventWriter, "device", theBundle.getAuthorDevice());
|
|
||||||
}
|
|
||||||
|
|
||||||
for (BundleEntry nextEntry : theBundle.getEntries()) {
|
|
||||||
eventWriter.writeStartElement("entry");
|
|
||||||
|
|
||||||
eventWriter.writeStartElement("content");
|
|
||||||
eventWriter.writeAttribute("type", "text/xml");
|
|
||||||
|
|
||||||
IResource resource = nextEntry.getResource();
|
|
||||||
encodeResourceToStreamWriter(resource, eventWriter);
|
|
||||||
|
|
||||||
eventWriter.writeEndElement(); // content
|
|
||||||
|
|
||||||
eventWriter.writeEndElement(); // entry
|
|
||||||
}
|
|
||||||
|
|
||||||
eventWriter.writeEndElement();
|
|
||||||
eventWriter.close();
|
|
||||||
} catch (XMLStreamException e) {
|
} catch (XMLStreamException e) {
|
||||||
throw new ConfigurationException("Failed to initialize STaX event factory", e);
|
throw new ConfigurationException("Failed to initialize STaX event factory", e);
|
||||||
}
|
}
|
||||||
|
@ -261,38 +272,6 @@ public class XmlParser {
|
||||||
return stringWriter.toString();
|
return stringWriter.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void writeOptionalTagWithTextNode(XMLStreamWriter theEventWriter, String theTagName, Date theNodeValue) throws XMLStreamException {
|
|
||||||
if (theNodeValue != null) {
|
|
||||||
theEventWriter.writeStartElement(theTagName);
|
|
||||||
theEventWriter.writeCharacters(DatatypeConverter.printDateTime(DateUtils.toCalendar(theNodeValue)));
|
|
||||||
theEventWriter.writeEndElement();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void writeAtomLink(XMLStreamWriter theEventWriter, String theRel, String theLink) throws XMLStreamException {
|
|
||||||
if (StringUtils.isNotBlank(theLink)) {
|
|
||||||
theEventWriter.writeStartElement("link");
|
|
||||||
theEventWriter.writeAttribute("rel", theRel);
|
|
||||||
theEventWriter.writeAttribute("href", theLink);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void writeTagWithTextNode(XMLStreamWriter theEventWriter, String theElementName, String theTextValue) throws XMLStreamException {
|
|
||||||
theEventWriter.writeStartElement(theElementName);
|
|
||||||
if (StringUtils.isNotBlank(theTextValue)) {
|
|
||||||
theEventWriter.writeCharacters(theTextValue);
|
|
||||||
}
|
|
||||||
theEventWriter.writeEndElement();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void writeOptionalTagWithTextNode(XMLStreamWriter theEventWriter, String theElementName, String theTextValue) throws XMLStreamException {
|
|
||||||
if (StringUtils.isNotBlank(theTextValue)) {
|
|
||||||
theEventWriter.writeStartElement(theElementName);
|
|
||||||
theEventWriter.writeCharacters(theTextValue);
|
|
||||||
theEventWriter.writeEndElement();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void encodeXhtml(XhtmlDt theDt, XMLStreamWriter theEventWriter) throws XMLStreamException {
|
private void encodeXhtml(XhtmlDt theDt, XMLStreamWriter theEventWriter) throws XMLStreamException {
|
||||||
if (theDt == null || theDt.getValue() == null) {
|
if (theDt == null || theDt.getValue() == null) {
|
||||||
return;
|
return;
|
||||||
|
@ -365,19 +344,6 @@ public class XmlParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void encodeResourceReferenceToStreamWriter(XMLStreamWriter theEventWriter, ResourceReference theRef) throws XMLStreamException {
|
|
||||||
if (StringUtils.isNotBlank(theRef.getDisplay())) {
|
|
||||||
theEventWriter.writeStartElement("display");
|
|
||||||
theEventWriter.writeAttribute("value", theRef.getDisplay());
|
|
||||||
theEventWriter.writeEndElement();
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(theRef.getReference())) {
|
|
||||||
theEventWriter.writeStartElement("reference");
|
|
||||||
theEventWriter.writeAttribute("value", theRef.getReference());
|
|
||||||
theEventWriter.writeEndElement();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public IResource parseResource(String theXml) throws ConfigurationException, DataFormatException {
|
public IResource parseResource(String theXml) throws ConfigurationException, DataFormatException {
|
||||||
XMLEventReader streamReader;
|
XMLEventReader streamReader;
|
||||||
try {
|
try {
|
||||||
|
@ -388,8 +354,32 @@ public class XmlParser {
|
||||||
throw new ConfigurationException("Failed to initialize STaX event factory", e);
|
throw new ConfigurationException("Failed to initialize STaX event factory", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return parseResource(streamReader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Bundle parseBundle(String theXml) throws ConfigurationException, DataFormatException {
|
||||||
|
XMLEventReader streamReader;
|
||||||
try {
|
try {
|
||||||
ParserState parserState = null;
|
streamReader = myXmlInputFactory.createXMLEventReader(new StringReader(theXml));
|
||||||
|
} catch (XMLStreamException e) {
|
||||||
|
throw new DataFormatException(e);
|
||||||
|
} catch (FactoryConfigurationError e) {
|
||||||
|
throw new ConfigurationException("Failed to initialize STaX event factory", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return parseBundle(streamReader);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Bundle parseBundle(XMLEventReader theStreamReader) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IResource parseResource(XMLEventReader streamReader) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
ParserState parserState = ParserState.getPreResourceInstance(myContext);
|
||||||
|
|
||||||
while (streamReader.hasNext()) {
|
while (streamReader.hasNext()) {
|
||||||
XMLEvent nextEvent = streamReader.nextEvent();
|
XMLEvent nextEvent = streamReader.nextEvent();
|
||||||
if (nextEvent.isStartElement()) {
|
if (nextEvent.isStartElement()) {
|
||||||
|
@ -400,9 +390,7 @@ public class XmlParser {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parserState == null) {
|
if ("extension".equals(elem.getName().getLocalPart())) {
|
||||||
parserState = ParserState.getResourceInstance(myContext, elem.getName().getLocalPart());
|
|
||||||
} else if ("extension".equals(elem.getName().getLocalPart())) {
|
|
||||||
Attribute urlAttr = elem.getAttributeByName(new QName("url"));
|
Attribute urlAttr = elem.getAttributeByName(new QName("url"));
|
||||||
if (urlAttr == null || isBlank(urlAttr.getValue())) {
|
if (urlAttr == null || isBlank(urlAttr.getValue())) {
|
||||||
throw new DataFormatException("Extension element has no 'url' attribute");
|
throw new DataFormatException("Extension element has no 'url' attribute");
|
||||||
|
@ -428,9 +416,6 @@ public class XmlParser {
|
||||||
if (!"value".equals(elem.getName().getLocalPart())) {
|
if (!"value".equals(elem.getName().getLocalPart())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (parserState == null) {
|
|
||||||
throw new DataFormatException("Detected attribute before element");
|
|
||||||
}
|
|
||||||
parserState.attributeValue(elem, elem.getValue());
|
parserState.attributeValue(elem, elem.getValue());
|
||||||
} else if (nextEvent.isEndElement()) {
|
} else if (nextEvent.isEndElement()) {
|
||||||
EndElement elem = nextEvent.asEndElement();
|
EndElement elem = nextEvent.asEndElement();
|
||||||
|
@ -439,18 +424,13 @@ public class XmlParser {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parserState == null) {
|
|
||||||
throw new DataFormatException("Detected unexpected end-element");
|
|
||||||
}
|
|
||||||
parserState.endingElement(elem);
|
parserState.endingElement(elem);
|
||||||
if (parserState.isComplete()) {
|
if (parserState.isComplete()) {
|
||||||
return (IResource) parserState.getObject();
|
return (IResource) parserState.getObject();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (parserState != null) {
|
|
||||||
parserState.otherEvent(nextEvent);
|
parserState.otherEvent(nextEvent);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -459,4 +439,36 @@ public class XmlParser {
|
||||||
throw new DataFormatException(e);
|
throw new DataFormatException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void writeAtomLink(XMLStreamWriter theEventWriter, String theRel, StringDt theStringDt) throws XMLStreamException {
|
||||||
|
if (StringUtils.isNotBlank(theStringDt.getValue())) {
|
||||||
|
theEventWriter.writeStartElement("link");
|
||||||
|
theEventWriter.writeAttribute("rel", theRel);
|
||||||
|
theEventWriter.writeAttribute("href", theStringDt.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeOptionalTagWithTextNode(XMLStreamWriter theEventWriter, String theTagName, InstantDt theInstantDt) throws XMLStreamException {
|
||||||
|
if (theInstantDt.getValue() != null) {
|
||||||
|
theEventWriter.writeStartElement(theTagName);
|
||||||
|
theEventWriter.writeCharacters(theInstantDt.getValueAsString());
|
||||||
|
theEventWriter.writeEndElement();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeOptionalTagWithTextNode(XMLStreamWriter theEventWriter, String theElementName, StringDt theTextValue) throws XMLStreamException {
|
||||||
|
if (StringUtils.isNotBlank(theTextValue.getValue())) {
|
||||||
|
theEventWriter.writeStartElement(theElementName);
|
||||||
|
theEventWriter.writeCharacters(theTextValue.getValue());
|
||||||
|
theEventWriter.writeEndElement();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeTagWithTextNode(XMLStreamWriter theEventWriter, String theElementName, StringDt theStringDt) throws XMLStreamException {
|
||||||
|
theEventWriter.writeStartElement(theElementName);
|
||||||
|
if (StringUtils.isNotBlank(theStringDt.getValue())) {
|
||||||
|
theEventWriter.writeCharacters(theStringDt.getValue());
|
||||||
|
}
|
||||||
|
theEventWriter.writeEndElement();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,11 +15,76 @@ import org.xml.sax.SAXException;
|
||||||
import ca.uhn.fhir.context.ConfigurationException;
|
import ca.uhn.fhir.context.ConfigurationException;
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.context.ResourceWithExtensionsA;
|
import ca.uhn.fhir.context.ResourceWithExtensionsA;
|
||||||
|
import ca.uhn.fhir.model.api.Bundle;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.dstu.resource.Observation;
|
import ca.uhn.fhir.model.dstu.resource.Observation;
|
||||||
|
import ca.uhn.fhir.model.dstu.resource.ValueSet;
|
||||||
|
|
||||||
public class XmlParserTest {
|
public class XmlParserTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testParseBundle() {
|
||||||
|
|
||||||
|
//@formatter:off
|
||||||
|
String msg = "<feed xmlns=\"http://www.w3.org/2005/Atom\">\n" +
|
||||||
|
" <title>FHIR Core Valuesets</title>\n" +
|
||||||
|
" <id>http://hl7.org/fhir/profile/valuesets</id>\n" +
|
||||||
|
" <link href=\"http://hl7.org/implement/standards/fhir/valuesets.xml\" rel=\"self\"/>\n" +
|
||||||
|
" <updated>2014-02-10T04:11:24.435-00:00</updated>\n" +
|
||||||
|
" <entry>\n" +
|
||||||
|
" <title>Valueset "256a5231-a2bb-49bd-9fea-f349d428b70d" to support automated processing</title>\n" +
|
||||||
|
" <id>http://hl7.org/fhir/valueset/256a5231-a2bb-49bd-9fea-f349d428b70d</id>\n" +
|
||||||
|
" <link href=\"http://hl7.org/implement/standards/fhir/valueset/256a5231-a2bb-49bd-9fea-f349d428b70d\" rel=\"self\"/>\n" +
|
||||||
|
" <updated>2014-02-10T04:10:46.987-00:00</updated>\n" +
|
||||||
|
" <author>\n" +
|
||||||
|
" <name>HL7, Inc (FHIR Project)</name>\n" +
|
||||||
|
" <uri>http://hl7.org/fhir</uri>\n" +
|
||||||
|
" </author>\n" +
|
||||||
|
" <published>2014-02-10T04:10:46.987-00:00</published>\n" +
|
||||||
|
" <content type=\"text/xml\">\n" +
|
||||||
|
" <ValueSet xmlns=\"http://hl7.org/fhir\">\n" +
|
||||||
|
" <text>\n" +
|
||||||
|
" <status value=\"generated\"/>" +
|
||||||
|
" </text>\n" +
|
||||||
|
" <identifier value=\"256a5231-a2bb-49bd-9fea-f349d428b70d\"/>\n" +
|
||||||
|
" <version value=\"20120613\"/>\n" +
|
||||||
|
" <name value=\"LOINC Codes for Cholesterol\"/>\n" +
|
||||||
|
" <publisher value=\"FHIR project team (example)\"/>\n" +
|
||||||
|
" <telecom>\n" +
|
||||||
|
" <system value=\"url\"/>\n" +
|
||||||
|
" <value value=\"http://hl7.org/fhir\"/>\n" +
|
||||||
|
" </telecom>\n" +
|
||||||
|
" <description value=\"This is an example value set that includes all the LOINC codes for serum cholesterol from v2.36\"/>\n" +
|
||||||
|
" <status value=\"draft\"/>\n" +
|
||||||
|
" <experimental value=\"true\"/>\n" +
|
||||||
|
" <date value=\"2012-06-13\"/>\n" +
|
||||||
|
" <compose>\n" +
|
||||||
|
" <include>\n" +
|
||||||
|
" <system value=\"http://loinc.org\"/>\n" +
|
||||||
|
" <version value=\"2.36\"/>\n" +
|
||||||
|
" <code value=\"14647-2\"/>\n" +
|
||||||
|
" <code value=\"2093-3\"/>\n" +
|
||||||
|
" <code value=\"35200-5\"/>\n" +
|
||||||
|
" <code value=\"9342-7\"/>\n" +
|
||||||
|
" </include>\n" +
|
||||||
|
" </compose>\n" +
|
||||||
|
" </ValueSet>\n" +
|
||||||
|
" </content>\n" +
|
||||||
|
" <summary type=\"xhtml\"><div xmlns=\"http://www.w3.org/1999/xhtml\">\n" +
|
||||||
|
" <p>Value set "LOINC Codes for Cholesterol": This is an example value set that includes \n" +
|
||||||
|
" all the LOINC codes for serum cholesterol from v2.36. \n" +
|
||||||
|
" Developed by: FHIR project team (example)</p>\n" +
|
||||||
|
" </summary>\n" +
|
||||||
|
" </entry>" +
|
||||||
|
"</feed>";
|
||||||
|
//@formatter:on
|
||||||
|
|
||||||
|
XmlParser p = new FhirContext(ValueSet.class).newXmlParser();
|
||||||
|
Bundle bundle = p.parseBundle(msg);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testLoadAndEncodeExtensions() throws ConfigurationException, DataFormatException, SAXException, IOException {
|
public void testLoadAndEncodeExtensions() throws ConfigurationException, DataFormatException, SAXException, IOException {
|
||||||
FhirContext ctx = new FhirContext(ResourceWithExtensionsA.class);
|
FhirContext ctx = new FhirContext(ResourceWithExtensionsA.class);
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
<projectDescription>
|
|
||||||
<name>hapi-fhirstarter-plugin</name>
|
|
||||||
<comment>NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
|
|
||||||
<projects/>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
||||||
</natures>
|
|
||||||
</projectDescription>
|
|
|
@ -1,145 +0,0 @@
|
||||||
package ca.uhn.fhir.starter;
|
|
||||||
|
|
||||||
|
|
||||||
public class ResourceParser extends BaseParser {
|
|
||||||
private String myResourceName;
|
|
||||||
|
|
||||||
private void setResourceName(String theString) {
|
|
||||||
myResourceName = theString;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getFilename() {
|
|
||||||
return myResourceName + "-spreadsheet.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, 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));
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getTemplate() {
|
|
||||||
return "/resource.vm";
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
|
||||||
ResourceParser p = new ResourceParser();
|
|
||||||
// p.setDirectory("src/test/resources/res");
|
|
||||||
// p.setResourceName("patient");
|
|
||||||
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/ResourceWithExtensionsA.java");
|
|
||||||
// ArrayList<Extension> exts = new ArrayList<Extension>();
|
|
||||||
// Extension ext1 = new Extension("foo1", "http://foo/1", "string");
|
|
||||||
// exts.add(ext1);
|
|
||||||
// Extension ext2 = new Extension("bar1", "http://bar/1", new Extension("bar11", "http://bar/1/1", "date"), new Extension("bar12", "http://bar/1/2", "date"));
|
|
||||||
// exts.add(ext2);
|
|
||||||
// p.setExtensions(exts);
|
|
||||||
// p.parse();
|
|
||||||
|
|
||||||
|
|
||||||
// p.setDirectory("src/test/resources/res");
|
|
||||||
// p.setResourceName("medication");
|
|
||||||
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Medication.java");
|
|
||||||
// p.parse();
|
|
||||||
//
|
|
||||||
// p.setDirectory("src/test/resources/res");
|
|
||||||
// p.setResourceName("substance");
|
|
||||||
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Substance.java");
|
|
||||||
// p.parse();
|
|
||||||
|
|
||||||
|
|
||||||
p.setDirectory("src/test/resources/res");
|
|
||||||
p.setResourceName("valueset");
|
|
||||||
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/ValueSet.java");
|
|
||||||
p.parse();
|
|
||||||
|
|
||||||
// p = new ResourceParser();
|
|
||||||
// p.setDirectory("src/test/resources/res");
|
|
||||||
// p.setResourceName("observation");
|
|
||||||
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Observation.java");
|
|
||||||
// p.parse();
|
|
||||||
//
|
|
||||||
// p.setResourceName("profile");
|
|
||||||
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Profile.java");
|
|
||||||
// p.parse();
|
|
||||||
//
|
|
||||||
// p.setResourceName("device");
|
|
||||||
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Device.java");
|
|
||||||
// p.parse();
|
|
||||||
//
|
|
||||||
// p.setResourceName("group");
|
|
||||||
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Group.java");
|
|
||||||
// p.parse();
|
|
||||||
//
|
|
||||||
// p.setResourceName("location");
|
|
||||||
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Location.java");
|
|
||||||
// p.parse();
|
|
||||||
//
|
|
||||||
// p.setResourceName("organization");
|
|
||||||
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Organization.java");
|
|
||||||
// p.parse();
|
|
||||||
//
|
|
||||||
// p.setResourceName("patient");
|
|
||||||
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Patient.java");
|
|
||||||
// p.parse();
|
|
||||||
//
|
|
||||||
// p.setResourceName("specimen");
|
|
||||||
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Specimen.java");
|
|
||||||
// p.parse();
|
|
||||||
//
|
|
||||||
// p.setResourceName("practitioner");
|
|
||||||
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Practitioner.java");
|
|
||||||
// p.parse();
|
|
||||||
//
|
|
||||||
// DatatypeParser d = new DatatypeParser();
|
|
||||||
// d.setDirectory("src/test/resources/dt");
|
|
||||||
// d.setDatatypeName("humanname");
|
|
||||||
// d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/composite/HumanNameDt.java");
|
|
||||||
// d.parse();
|
|
||||||
//
|
|
||||||
// d.setDatatypeName("contact");
|
|
||||||
// d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/composite/ContactDt.java");
|
|
||||||
// d.parse();
|
|
||||||
//
|
|
||||||
// d.setDatatypeName("address");
|
|
||||||
// d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/composite/AddressDt.java");
|
|
||||||
// d.parse();
|
|
||||||
//
|
|
||||||
// d.setDatatypeName("narrative");
|
|
||||||
// d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/composite/NarrativeDt.java");
|
|
||||||
// d.parse();
|
|
||||||
//
|
|
||||||
// d.setDatatypeName("quantity");
|
|
||||||
// d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/composite/QuantityDt.java");
|
|
||||||
// d.parse();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
package ca.uhn.fhir.starter.model;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
|
|
||||||
public class ResourceBlock extends Child {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<BaseElement> getChildren() {
|
|
||||||
return super.getChildren();
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getClassName() {
|
|
||||||
return getElementName().substring(0,1).toUpperCase() + getElementName().substring(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSingleType() {
|
|
||||||
return getClassName();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isBlock() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getTypeSuffix() {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
package ca.uhn.fhir.starter.model;
|
|
||||||
|
|
||||||
public class ValueSet {
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
<ValueSet xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../schema/valueset.xsd">
|
|
||||||
<name value="Administrative Gender Codes"/>
|
|
||||||
<publisher value="FHIR Project team"/>
|
|
||||||
<telecom>
|
|
||||||
<system value="url"/>
|
|
||||||
<value value="http://hl7.org/fhir"/>
|
|
||||||
</telecom>
|
|
||||||
<description value="This value set defines the set of codes that can be used to indicate the administrative gender of a person"/>
|
|
||||||
<status value="draft"/>
|
|
||||||
<compose>
|
|
||||||
<include>
|
|
||||||
<system value="http://hl7.org/fhir/v3/AdministrativeGender"/>
|
|
||||||
<code value="F"/>
|
|
||||||
<code value="M"/>
|
|
||||||
<code value="UN"/>
|
|
||||||
</include>
|
|
||||||
<include>
|
|
||||||
<system value="http://hl7.org/fhir/v3/NullFlavor"/>
|
|
||||||
<code value="UNK"/>
|
|
||||||
</include>
|
|
||||||
</compose>
|
|
||||||
</ValueSet>
|
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>hapi-tinder-plugin</name>
|
||||||
|
<comment>NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
|
@ -9,7 +9,7 @@
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-fhirstarter-plugin</artifactId>
|
<artifactId>hapi-tinder-plugin</artifactId>
|
||||||
<!--<packaging>maven-plugin</packaging> -->
|
<!--<packaging>maven-plugin</packaging> -->
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
|
@ -24,6 +24,7 @@ import org.w3c.dom.Node;
|
||||||
import org.w3c.dom.NodeList;
|
import org.w3c.dom.NodeList;
|
||||||
|
|
||||||
import ca.uhn.fhir.model.api.annotation.SimpleSetter;
|
import ca.uhn.fhir.model.api.annotation.SimpleSetter;
|
||||||
|
import ca.uhn.fhir.starter.model.AnyChild;
|
||||||
import ca.uhn.fhir.starter.model.BaseElement;
|
import ca.uhn.fhir.starter.model.BaseElement;
|
||||||
import ca.uhn.fhir.starter.model.Child;
|
import ca.uhn.fhir.starter.model.Child;
|
||||||
import ca.uhn.fhir.starter.model.Extension;
|
import ca.uhn.fhir.starter.model.Extension;
|
||||||
|
@ -76,6 +77,9 @@ public abstract class BaseParser {
|
||||||
Map<String, BaseElement> elements = new HashMap<String, BaseElement>();
|
Map<String, BaseElement> elements = new HashMap<String, BaseElement>();
|
||||||
elements.put(resource.getElementName(), resource);
|
elements.put(resource.getElementName(), resource);
|
||||||
|
|
||||||
|
// Map<String,String> blockFullNameToShortName = new HashMap<String,String>();
|
||||||
|
|
||||||
|
|
||||||
for (int i = 2; i < rows.getLength(); i++) {
|
for (int i = 2; i < rows.getLength(); i++) {
|
||||||
Element nextRow = (Element) rows.item(i);
|
Element nextRow = (Element) rows.item(i);
|
||||||
String name = cellValue(nextRow, 0);
|
String name = cellValue(nextRow, 0);
|
||||||
|
@ -89,8 +93,10 @@ public abstract class BaseParser {
|
||||||
if (StringUtils.isBlank(type) || type.startsWith("=")) {
|
if (StringUtils.isBlank(type) || type.startsWith("=")) {
|
||||||
elem = new ResourceBlock();
|
elem = new ResourceBlock();
|
||||||
} else if (type.startsWith("@")) {
|
} else if (type.startsWith("@")) {
|
||||||
type = type.substring(type.lastIndexOf('.')+1);
|
// type = type.substring(type.lastIndexOf('.')+1);
|
||||||
elem=new ResourceBlockCopy();
|
elem=new ResourceBlockCopy();
|
||||||
|
} else if (type.equals("*")) {
|
||||||
|
elem = new AnyChild();
|
||||||
} else {
|
} else {
|
||||||
elem = new Child();
|
elem = new Child();
|
||||||
}
|
}
|
||||||
|
@ -117,6 +123,9 @@ public abstract class BaseParser {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void scanForSimpleSetters(Child theElem) {
|
private void scanForSimpleSetters(Child theElem) {
|
||||||
Class<?> childDt;
|
Class<?> childDt;
|
||||||
if (theElem.getReferenceTypesForMultiple().size() == 1) {
|
if (theElem.getReferenceTypesForMultiple().size() == 1) {
|
||||||
|
@ -234,15 +243,8 @@ public abstract class BaseParser {
|
||||||
String name = cellValue(theRowXml, myColName);
|
String name = cellValue(theRowXml, myColName);
|
||||||
theTarget.setName(name);
|
theTarget.setName(name);
|
||||||
|
|
||||||
int lastDot = name.lastIndexOf('.');
|
|
||||||
if (lastDot == -1) {
|
|
||||||
theTarget.setElementName(name);
|
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);
|
String cardValue = cellValue(theRowXml, myColCard);
|
||||||
if (cardValue != null && cardValue.contains("..")) {
|
if (cardValue != null && cardValue.contains("..")) {
|
|
@ -0,0 +1,164 @@
|
||||||
|
package ca.uhn.fhir.starter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
public class ResourceParser extends BaseParser {
|
||||||
|
private String myResourceName;
|
||||||
|
|
||||||
|
private List<String> myAllDatatypes;
|
||||||
|
|
||||||
|
private void setResourceName(String theString) {
|
||||||
|
myResourceName = theString;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAllDatatypes(List<String> theAllDatatypes) {
|
||||||
|
myAllDatatypes = theAllDatatypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getFilename() {
|
||||||
|
return myResourceName + "-spreadsheet.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, 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));
|
||||||
|
// }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTemplate() {
|
||||||
|
return "/resource.vm";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
ResourceParser p = new ResourceParser();
|
||||||
|
p.setAllDatatypes(new ArrayList<String>());
|
||||||
|
p.setDirectory("src/test/resources/res");
|
||||||
|
|
||||||
|
// TODO: this needs to be properly populated
|
||||||
|
p.getAllDatatypes().add("String");
|
||||||
|
p.getAllDatatypes().add("Date");
|
||||||
|
p.getAllDatatypes().add("DateTime");
|
||||||
|
|
||||||
|
// p.setDirectory("src/test/resources/res");
|
||||||
|
// p.setResourceName("patient");
|
||||||
|
// p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/ResourceWithExtensionsA.java");
|
||||||
|
// ArrayList<Extension> exts = new ArrayList<Extension>();
|
||||||
|
// Extension ext1 = new Extension("foo1", "http://foo/1", "string");
|
||||||
|
// exts.add(ext1);
|
||||||
|
// Extension ext2 = new Extension("bar1", "http://bar/1", new Extension("bar11", "http://bar/1/1", "date"), new Extension("bar12", "http://bar/1/2", "date"));
|
||||||
|
// exts.add(ext2);
|
||||||
|
// p.setExtensions(exts);
|
||||||
|
// p.parse();
|
||||||
|
|
||||||
|
|
||||||
|
p.setResourceName("medication");
|
||||||
|
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Medication.java");
|
||||||
|
p.parse();
|
||||||
|
|
||||||
|
p.setDirectory("src/test/resources/res");
|
||||||
|
p.setResourceName("substance");
|
||||||
|
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Substance.java");
|
||||||
|
p.parse();
|
||||||
|
|
||||||
|
|
||||||
|
p.setDirectory("src/test/resources/res");
|
||||||
|
p.setResourceName("valueset");
|
||||||
|
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/ValueSet.java");
|
||||||
|
p.parse();
|
||||||
|
|
||||||
|
p.setDirectory("src/test/resources/res");
|
||||||
|
p.setResourceName("observation");
|
||||||
|
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Observation.java");
|
||||||
|
p.parse();
|
||||||
|
|
||||||
|
p.setResourceName("profile");
|
||||||
|
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Profile.java");
|
||||||
|
p.parse();
|
||||||
|
|
||||||
|
p.setResourceName("device");
|
||||||
|
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Device.java");
|
||||||
|
p.parse();
|
||||||
|
|
||||||
|
p.setResourceName("group");
|
||||||
|
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Group.java");
|
||||||
|
p.parse();
|
||||||
|
|
||||||
|
p.setResourceName("location");
|
||||||
|
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Location.java");
|
||||||
|
p.parse();
|
||||||
|
|
||||||
|
p.setResourceName("organization");
|
||||||
|
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Organization.java");
|
||||||
|
p.parse();
|
||||||
|
|
||||||
|
p.setResourceName("patient");
|
||||||
|
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Patient.java");
|
||||||
|
p.parse();
|
||||||
|
|
||||||
|
p.setResourceName("specimen");
|
||||||
|
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Specimen.java");
|
||||||
|
p.parse();
|
||||||
|
|
||||||
|
p.setResourceName("practitioner");
|
||||||
|
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/resource/Practitioner.java");
|
||||||
|
p.parse();
|
||||||
|
|
||||||
|
DatatypeParser d = new DatatypeParser();
|
||||||
|
d.setDirectory("src/test/resources/dt");
|
||||||
|
d.setDatatypeName("humanname");
|
||||||
|
d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/composite/HumanNameDt.java");
|
||||||
|
d.parse();
|
||||||
|
|
||||||
|
d.setDatatypeName("contact");
|
||||||
|
d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/composite/ContactDt.java");
|
||||||
|
d.parse();
|
||||||
|
|
||||||
|
d.setDatatypeName("address");
|
||||||
|
d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/composite/AddressDt.java");
|
||||||
|
d.parse();
|
||||||
|
|
||||||
|
d.setDatatypeName("narrative");
|
||||||
|
d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/composite/NarrativeDt.java");
|
||||||
|
d.parse();
|
||||||
|
|
||||||
|
d.setDatatypeName("quantity");
|
||||||
|
d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/composite/QuantityDt.java");
|
||||||
|
d.parse();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getAllDatatypes() {
|
||||||
|
return myAllDatatypes;
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,6 +8,7 @@ import org.apache.commons.io.IOUtils;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.model.dstu.resource.ValueSet;
|
import ca.uhn.fhir.model.dstu.resource.ValueSet;
|
||||||
|
import ca.uhn.fhir.model.dstu.resource.ValueSet.DefineConcept;
|
||||||
|
|
||||||
public class ValueSetParser {
|
public class ValueSetParser {
|
||||||
|
|
||||||
|
@ -19,7 +20,8 @@ public class ValueSetParser {
|
||||||
|
|
||||||
ValueSetParser p = new ValueSetParser();
|
ValueSetParser p = new ValueSetParser();
|
||||||
p.setDirectory("src/test/resources/vs/");
|
p.setDirectory("src/test/resources/vs/");
|
||||||
p.setValueSetName("administrative-gender");
|
// p.setBundle()
|
||||||
|
// p.setValueSetName("administrative-gender");
|
||||||
p.setOutputDirectory("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/valueset/");
|
p.setOutputDirectory("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/dstu/valueset/");
|
||||||
p.parse();
|
p.parse();
|
||||||
|
|
||||||
|
@ -27,16 +29,22 @@ public class ValueSetParser {
|
||||||
|
|
||||||
private void parse() throws FileNotFoundException, IOException {
|
private void parse() throws FileNotFoundException, IOException {
|
||||||
String string = IOUtils.toString(new FileReader(myDirectory + "valueset-" + myValueSetName + ".xml"));
|
String string = IOUtils.toString(new FileReader(myDirectory + "valueset-" + myValueSetName + ".xml"));
|
||||||
ValueSet res = (ValueSet) new FhirContext(ValueSet.class).newXmlParser().parseResource(string);
|
ValueSet input = (ValueSet) new FhirContext(ValueSet.class).newXmlParser().parseResource(string);
|
||||||
|
ca.uhn.fhir.starter.model.ValueSet output = new ca.uhn.fhir.starter.model.ValueSet();
|
||||||
|
|
||||||
|
for (DefineConcept next : input.getDefine().getConcept()) {
|
||||||
|
// output.addConcept(next.getCode().getValue(), next.getDisplay().getValue(), next.getDefinition());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setOutputDirectory(String theString) {
|
private void setOutputDirectory(String theString) {
|
||||||
myOutputDirectory=theString;
|
myOutputDirectory=theString;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setValueSetName(String theString) {
|
// private void setValueSetName(String theString) {
|
||||||
myValueSetName = theString;
|
// myValueSetName = theString;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public void setDirectory(String theString) {
|
public void setDirectory(String theString) {
|
||||||
myDirectory = theString;
|
myDirectory = theString;
|
|
@ -0,0 +1,16 @@
|
||||||
|
package ca.uhn.fhir.starter.model;
|
||||||
|
|
||||||
|
public class AnyChild extends Child {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTypeSuffix() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSingleChildInstantiable() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -123,7 +123,15 @@ public abstract class BaseElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setElementName(String theName) {
|
public void setElementName(String theName) {
|
||||||
myElementName = theName;
|
int lastDot = theName.lastIndexOf('.');
|
||||||
|
if (lastDot == -1) {
|
||||||
|
myElementName= (theName);
|
||||||
|
} else {
|
||||||
|
String elementName = theName.substring(lastDot + 1);
|
||||||
|
String elementParentName = theName.substring(0, lastDot);
|
||||||
|
myElementName=(elementName);
|
||||||
|
myElementParentName=(elementParentName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setElementParentName(String theElementParentName) {
|
public void setElementParentName(String theElementParentName) {
|
||||||
|
@ -152,14 +160,24 @@ public abstract class BaseElement {
|
||||||
typeString = typeString.substring("Resource(".length(), typeString.length() - 1);
|
typeString = typeString.substring("Resource(".length(), typeString.length() - 1);
|
||||||
myResourceRef = true;
|
myResourceRef = true;
|
||||||
}else if (typeString.startsWith("@")) {
|
}else if (typeString.startsWith("@")) {
|
||||||
typeString = typeString.substring(typeString.lastIndexOf('.')+1);
|
typeString = typeString.substring(1);
|
||||||
|
typeString = ResourceBlock.convertFhirPathNameToClassName(typeString);
|
||||||
|
} else if (typeString.equals("*")) {
|
||||||
|
typeString = "IDatatype";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(typeString)) {
|
if (StringUtils.isNotBlank(typeString)) {
|
||||||
String[] types = typeString.replace("=", "").split("\\|");
|
String[] types = typeString.replace("=", "").split("\\|");
|
||||||
for (String nextType : types) {
|
for (String nextType : types) {
|
||||||
nextType = nextType.trim();
|
nextType = nextType.trim();
|
||||||
|
if (nextType.toLowerCase().startsWith("resource(")) {
|
||||||
|
nextType = nextType.substring("Resource(".length(), nextType.length() - 1);
|
||||||
nextType = nextType.substring(0, 1).toUpperCase() + nextType.substring(1);
|
nextType = nextType.substring(0, 1).toUpperCase() + nextType.substring(1);
|
||||||
|
} else {
|
||||||
|
nextType = nextType.substring(0, 1).toUpperCase() + nextType.substring(1);
|
||||||
|
nextType = nextType + getTypeSuffix();
|
||||||
|
}
|
||||||
|
|
||||||
if (isNotBlank(nextType)) {
|
if (isNotBlank(nextType)) {
|
||||||
getType().add(nextType);
|
getType().add(nextType);
|
||||||
}
|
}
|
||||||
|
@ -168,6 +186,8 @@ public abstract class BaseElement {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract String getTypeSuffix();
|
||||||
|
|
||||||
public void setV2Mapping(String theV2Mapping) {
|
public void setV2Mapping(String theV2Mapping) {
|
||||||
myV2Mapping = theV2Mapping;
|
myV2Mapping = theV2Mapping;
|
||||||
}
|
}
|
|
@ -22,6 +22,10 @@ public class Child extends BaseElement {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSingleChildInstantiable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Strips off "[x]"
|
* Strips off "[x]"
|
||||||
*/
|
*/
|
||||||
|
@ -67,7 +71,8 @@ public class Child extends BaseElement {
|
||||||
public List<String> getReferenceTypesForMultiple() {
|
public List<String> getReferenceTypesForMultiple() {
|
||||||
ArrayList<String> retVal = new ArrayList<String>();
|
ArrayList<String> retVal = new ArrayList<String>();
|
||||||
for (String next : getType()) {
|
for (String next : getType()) {
|
||||||
retVal.add(next + getTypeSuffix());
|
retVal.add(next);
|
||||||
|
// retVal.add(next + getTypeSuffix());
|
||||||
}
|
}
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
@ -93,15 +98,18 @@ public class Child extends BaseElement {
|
||||||
String retVal;
|
String retVal;
|
||||||
String elemName = this.getType().get(0);
|
String elemName = this.getType().get(0);
|
||||||
elemName = elemName.substring(0, 1).toUpperCase() + elemName.substring(1);
|
elemName = elemName.substring(0, 1).toUpperCase() + elemName.substring(1);
|
||||||
if (this instanceof ResourceBlock) {
|
// if (this instanceof ResourceBlock) {
|
||||||
retVal = (elemName);
|
retVal = (elemName);
|
||||||
} else {
|
// } else {
|
||||||
retVal = (elemName + getTypeSuffix());
|
// retVal = (elemName + getTypeSuffix());
|
||||||
}
|
// }
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTypeSuffix() {
|
public String getTypeSuffix() {
|
||||||
|
if (isResourceRef()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
return "Dt";
|
return "Dt";
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,4 +3,9 @@ package ca.uhn.fhir.starter.model;
|
||||||
|
|
||||||
public class Resource extends BaseElement {
|
public class Resource extends BaseElement {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTypeSuffix() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
package ca.uhn.fhir.starter.model;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ResourceBlock extends Child {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BaseElement> getChildren() {
|
||||||
|
return super.getChildren();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getClassName() {
|
||||||
|
// return getElementName().substring(0, 1).toUpperCase() + getElementName().substring(1);
|
||||||
|
String name = getName();
|
||||||
|
return convertFhirPathNameToClassName(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String convertFhirPathNameToClassName(String name) {
|
||||||
|
StringBuilder b = new StringBuilder();
|
||||||
|
boolean first=true;
|
||||||
|
for (String next : name.split("\\.")) {
|
||||||
|
if (first) {
|
||||||
|
first=false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
b.append(next.substring(0, 1).toUpperCase() + next.substring(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
return b.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSingleType() {
|
||||||
|
return getClassName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isBlock() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTypeSuffix() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
package ca.uhn.fhir.starter.model;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ValueSet {
|
||||||
|
|
||||||
|
private List<Code> myCodes = new ArrayList<Code>();
|
||||||
|
|
||||||
|
public void addConcept(String theCode, String theText, String theDefinition) {
|
||||||
|
myCodes.add(new Code(theCode, theText, theDefinition));
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Code> getCodes() {
|
||||||
|
return myCodes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Code
|
||||||
|
{
|
||||||
|
|
||||||
|
private String myCode;
|
||||||
|
private String myDefinition;
|
||||||
|
private String myText;
|
||||||
|
|
||||||
|
public Code(String theCode, String theText, String theDefinition) {
|
||||||
|
myCode =theCode;
|
||||||
|
myText = theText;
|
||||||
|
myDefinition = theDefinition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return myCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDefinition() {
|
||||||
|
return myDefinition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getText() {
|
||||||
|
return myText;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -45,7 +45,7 @@
|
||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public ${child.referenceType} get${child.methodName}() {
|
public ${child.referenceType} get${child.methodName}() {
|
||||||
#if ( ${child.hasMultipleTypes} == false )
|
#if ( ${child.hasMultipleTypes} == false && ${child.singleChildInstantiable} == true )
|
||||||
if (${child.variableName} == null) {
|
if (${child.variableName} == null) {
|
||||||
${child.variableName} = new ${child.referenceTypeForConstructor}();
|
${child.variableName} = new ${child.referenceTypeForConstructor}();
|
||||||
}
|
}
|
||||||
|
@ -153,9 +153,11 @@
|
||||||
|
|
||||||
#childVars( $blockChild.children )
|
#childVars( $blockChild.children )
|
||||||
#childAccessors( $blockChild.children )
|
#childAccessors( $blockChild.children )
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#childResourceBlocks( $blockChild.resourceBlockChildren )
|
#childResourceBlocks( $blockChild.resourceBlockChildren )
|
||||||
|
|
||||||
#end
|
#end
|
||||||
#end
|
#end
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,121 @@
|
||||||
|
<ValueSet xmlns="http://hl7.org/fhir">
|
||||||
|
<text>
|
||||||
|
<status value="generated" />
|
||||||
|
<div xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<p>Release Date: 2013-12-07</p>
|
||||||
|
|
||||||
|
<h2>Description</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The gender of a person used for adminstrative purposes (as opposed
|
||||||
|
to
|
||||||
|
clinical gender)
|
||||||
|
<br />
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<hr />
|
||||||
|
|
||||||
|
<table class="grid">
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<b>Level</b>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<b>Code</b>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<b>Display</b>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<b>Definition</b>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>1</td>
|
||||||
|
<td>
|
||||||
|
F
|
||||||
|
<a name="F">
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td>Female</td>
|
||||||
|
<td>
|
||||||
|
Female
|
||||||
|
<br />
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>1</td>
|
||||||
|
<td>
|
||||||
|
M
|
||||||
|
<a name="M">
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td>Male</td>
|
||||||
|
<td>
|
||||||
|
Male
|
||||||
|
<br />
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>1</td>
|
||||||
|
<td>
|
||||||
|
UN
|
||||||
|
<a name="UN">
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td>Undifferentiated</td>
|
||||||
|
<td>
|
||||||
|
The gender of a person could not be uniquely defined as male or
|
||||||
|
female, such as hermaphrodite.
|
||||||
|
<br />
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</text>
|
||||||
|
<identifier value="http://hl7.org/fhir/v3/vs/AdministrativeGender" />
|
||||||
|
<name value="v3 Code System AdministrativeGender" />
|
||||||
|
<publisher value="HL7, Inc" />
|
||||||
|
<telecom>
|
||||||
|
<system value="url" />
|
||||||
|
<value value="http://hl7.org" />
|
||||||
|
</telecom>
|
||||||
|
<description
|
||||||
|
value=" The gender of a person used for adminstrative purposes (as opposed to clinical gender)" />
|
||||||
|
<status value="active" />
|
||||||
|
<date value="2013-12-07T00:00:00+11:00" />
|
||||||
|
<define>
|
||||||
|
<system value="http://hl7.org/fhir/v3/AdministrativeGender" />
|
||||||
|
<caseSensitive value="true" />
|
||||||
|
<concept>
|
||||||
|
<code value="F" />
|
||||||
|
<display value="Female" />
|
||||||
|
<definition value="Female" />
|
||||||
|
</concept>
|
||||||
|
<concept>
|
||||||
|
<code value="M" />
|
||||||
|
<display value="Male" />
|
||||||
|
<definition value="Male" />
|
||||||
|
</concept>
|
||||||
|
<concept>
|
||||||
|
<code value="UN" />
|
||||||
|
<display value="Undifferentiated" />
|
||||||
|
<definition
|
||||||
|
value="The gender of a person could not be uniquely defined as male or female, such as hermaphrodite." />
|
||||||
|
</concept>
|
||||||
|
</define>
|
||||||
|
</ValueSet>
|
Binary file not shown.
Loading…
Reference in New Issue