More versions work

This commit is contained in:
James Agnew 2014-10-20 18:59:02 -04:00
parent b07b8b9845
commit 81ddb3f1d5
22 changed files with 297 additions and 158 deletions

View File

@ -0,0 +1,128 @@
package ca.uhn.fhir.model.primitive;
import org.apache.commons.lang3.StringUtils;
import ca.uhn.fhir.model.api.BasePrimitive;
import ca.uhn.fhir.model.api.IQueryParameterType;
import ca.uhn.fhir.model.api.annotation.DatatypeDef;
import ca.uhn.fhir.model.api.annotation.SimpleSetter;
import ca.uhn.fhir.parser.DataFormatException;
/**
* Represents a Time datatype, per the FHIR specification. A time is a specification of hours and minutes (and optionally
* milliseconds), with NO date and NO timezone information attached. It is expressed as a string in the form
* <code>HH:mm:ss[.SSSS]</code>
*
* <p>
* This datatype is not valid in FHIR DSTU1
* </p>
* @since FHIR DSTU 2 / HAPI 0.8
*/
@DatatypeDef(name = "time")
public class TimeDt extends BasePrimitive<String> implements IQueryParameterType {
private String myValue;
/**
* Create a new String
*/
public TimeDt() {
super();
}
/**
* Create a new String
*/
@SimpleSetter
public TimeDt(@SimpleSetter.Parameter(name = "theString") String theValue) {
myValue = theValue;
}
@Override
public String getValue() {
return myValue;
}
public String getValueNotNull() {
return StringUtils.defaultString(myValue);
}
@Override
public String getValueAsString() {
return myValue;
}
@Override
public void setValue(String theValue) throws DataFormatException {
myValue = theValue;
}
@Override
public void setValueAsString(String theValue) throws DataFormatException {
myValue = theValue;
}
/**
* Returns the value of this string, or <code>null</code>
*/
@Override
public String toString() {
return myValue;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((myValue == null) ? 0 : myValue.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
TimeDt other = (TimeDt) obj;
if (myValue == null) {
if (other.myValue != null)
return false;
} else if (!myValue.equals(other.myValue))
return false;
return true;
}
/**
* {@inheritDoc}
*/
@Override
public void setValueAsQueryToken(String theQualifier, String theValue) {
setValue(theValue);
}
/**
* {@inheritDoc}
*/
@Override
public String getValueAsQueryToken() {
return getValue();
}
/**
* Returns <code>true</code> if this datatype has no extensions, and has either a <code>null</code> value or an empty ("") value.
*/
@Override
public boolean isEmpty() {
boolean retVal = super.isBaseEmpty() && StringUtils.isBlank(getValue());
return retVal;
}
@Override
public String getQueryParameterQualifier() {
return null;
}
}

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="target/generated-resources/tinder"/>
<classpathentry kind="src" path="target/generated-sources/tinder"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

1
hapi-fhir-structures-dev/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/target/

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>hapi-fhir-structures-dev</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

View File

@ -0,0 +1,5 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.6

View File

@ -0,0 +1,4 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

View File

@ -12,7 +12,7 @@
<artifactId>hapi-fhir-structures-dev</artifactId>
<packaging>jar</packaging>
<name>HAPI FHIR Structures - DSTU (FHIR 0.80)</name>
<name>HAPI FHIR Structures - DEV (FHIR Latest)</name>
<dependencies>
<dependency>
@ -207,21 +207,28 @@
<package>ca.uhn.fhir.model.dev</package>
<version>dev</version>
<baseResourceNames>
<baseResourceName>account</baseResourceName>
<baseResourceName>adversereaction</baseResourceName>
<baseResourceName>adversereactionrisk</baseResourceName>
<baseResourceName>alert</baseResourceName>
<baseResourceName>allergyintolerance</baseResourceName>
<baseResourceName>appointmentresponse</baseResourceName>
<baseResourceName>appointment</baseResourceName>
<baseResourceName>appointmentresponse</baseResourceName>
<baseResourceName>availability</baseResourceName>
<baseResourceName>careplan</baseResourceName>
<!-- <baseResourceName>claim</baseResourceName> -->
<!--
Doesn't seem to work yet
<baseResourceName>claim</baseResourceName>
-->
<baseResourceName>composition</baseResourceName>
<baseResourceName>conceptmap</baseResourceName>
<baseResourceName>condition</baseResourceName>
<baseResourceName>conformance</baseResourceName>
<baseResourceName>contract</baseResourceName>
<baseResourceName>contraindication</baseResourceName>
<baseResourceName>coverage</baseResourceName>
<baseResourceName>deviceobservationreport</baseResourceName>
<baseResourceName>device</baseResourceName>
<baseResourceName>deviceobservationreport</baseResourceName>
<baseResourceName>diagnosticorder</baseResourceName>
<baseResourceName>diagnosticreport</baseResourceName>
<baseResourceName>documentmanifest</baseResourceName>
@ -231,42 +238,58 @@
<baseResourceName>geneexpression</baseResourceName>
<baseResourceName>geneticanalysis</baseResourceName>
<baseResourceName>group</baseResourceName>
<baseResourceName>gvfmeta</baseResourceName>
<baseResourceName>gvfvariant</baseResourceName>
<baseResourceName>imagingstudy</baseResourceName>
<baseResourceName>immunizationrecommendation</baseResourceName>
<baseResourceName>immunization</baseResourceName>
<baseResourceName>immunizationrecommendation</baseResourceName>
<baseResourceName>list</baseResourceName>
<baseResourceName>location</baseResourceName>
<baseResourceName>media</baseResourceName>
<baseResourceName>medication</baseResourceName>
<baseResourceName>medicationadministration</baseResourceName>
<baseResourceName>medicationdispense</baseResourceName>
<baseResourceName>medicationprescription</baseResourceName>
<baseResourceName>medication</baseResourceName>
<baseResourceName>medicationstatement</baseResourceName>
<baseResourceName>messageheader</baseResourceName>
<baseResourceName>microarray</baseResourceName>
<baseResourceName>namespace</baseResourceName>
<baseResourceName>nutritionorder</baseResourceName>
<baseResourceName>observation</baseResourceName>
<baseResourceName>operationoutcome</baseResourceName>
<baseResourceName>operationdefinition</baseResourceName>
<baseResourceName>orderresponse</baseResourceName>
<baseResourceName>operationoutcome</baseResourceName>
<baseResourceName>order</baseResourceName>
<baseResourceName>orderresponse</baseResourceName>
<baseResourceName>organization</baseResourceName>
<baseResourceName>other</baseResourceName>
<baseResourceName>patient</baseResourceName>
<baseResourceName>person</baseResourceName>
<baseResourceName>practitioner</baseResourceName>
<baseResourceName>procedure</baseResourceName>
<baseResourceName>profile</baseResourceName>
<!--
Depends on "ActivityDefinition", which doesn't exist..
<baseResourceName>protocol</baseResourceName>
-->
<baseResourceName>provenance</baseResourceName>
<baseResourceName>query</baseResourceName>
<baseResourceName>questionnaire</baseResourceName>
<baseResourceName>questionnaireanswers</baseResourceName>
<baseResourceName>referralrequest</baseResourceName>
<baseResourceName>relatedperson</baseResourceName>
<baseResourceName>remittance</baseResourceName>
<baseResourceName>riskassessment</baseResourceName>
<baseResourceName>securityclaim</baseResourceName>
<baseResourceName>securityevent</baseResourceName>
<baseResourceName>securitygroup</baseResourceName>
<baseResourceName>securityprincipal</baseResourceName>
<!--
What is this?
<baseResourceName>sequence</baseResourceName>
-->
<baseResourceName>sequencinganalysis</baseResourceName>
<baseResourceName>sequencinglab</baseResourceName>
<baseResourceName>slot</baseResourceName>
<baseResourceName>specimen</baseResourceName>
<baseResourceName>subscription</baseResourceName>
<baseResourceName>substance</baseResourceName>
<baseResourceName>supply</baseResourceName>
<baseResourceName>user</baseResourceName>

View File

@ -0,0 +1,5 @@
package ca.uhn.fhir.model.dev.composite;
public class AgeDt {
}

View File

@ -0,0 +1,5 @@
package ca.uhn.fhir.model.dev.composite;
public class CountDt {
}

View File

@ -0,0 +1,5 @@
package ca.uhn.fhir.model.dev.composite;
public class DistanceDt {
}

View File

@ -0,0 +1,5 @@
package ca.uhn.fhir.model.dev.composite;
public class DurationDt {
}

View File

@ -0,0 +1,5 @@
package ca.uhn.fhir.model.dev.composite;
public class MoneyDt {
}

View File

@ -206,25 +206,21 @@
<configuration>
<package>ca.uhn.fhir.model.dstu</package>
<baseResourceNames>
<baseResourceName>account</baseResourceName>
<baseResourceName>adversereaction</baseResourceName>
<baseResourceName>adversereactionrisk</baseResourceName>
<baseResourceName>alert</baseResourceName>
<baseResourceName>allergyintolerance</baseResourceName>
<baseResourceName>appointment</baseResourceName>
<baseResourceName>appointmentresponse</baseResourceName>
<baseResourceName>appointment</baseResourceName>
<baseResourceName>availability</baseResourceName>
<baseResourceName>careplan</baseResourceName>
<baseResourceName>claim</baseResourceName>
<!-- <baseResourceName>claim</baseResourceName> -->
<baseResourceName>composition</baseResourceName>
<baseResourceName>conceptmap</baseResourceName>
<baseResourceName>condition</baseResourceName>
<baseResourceName>conformance</baseResourceName>
<baseResourceName>contract</baseResourceName>
<baseResourceName>contraindication</baseResourceName>
<baseResourceName>coverage</baseResourceName>
<baseResourceName>device</baseResourceName>
<baseResourceName>deviceobservationreport</baseResourceName>
<baseResourceName>device</baseResourceName>
<baseResourceName>diagnosticorder</baseResourceName>
<baseResourceName>diagnosticreport</baseResourceName>
<baseResourceName>documentmanifest</baseResourceName>
@ -234,52 +230,41 @@
<baseResourceName>geneexpression</baseResourceName>
<baseResourceName>geneticanalysis</baseResourceName>
<baseResourceName>group</baseResourceName>
<baseResourceName>gvfmeta</baseResourceName>
<baseResourceName>gvfvariant</baseResourceName>
<baseResourceName>imagingstudy</baseResourceName>
<baseResourceName>immunization</baseResourceName>
<baseResourceName>immunizationrecommendation</baseResourceName>
<baseResourceName>immunization</baseResourceName>
<baseResourceName>list</baseResourceName>
<baseResourceName>location</baseResourceName>
<baseResourceName>media</baseResourceName>
<baseResourceName>medication</baseResourceName>
<baseResourceName>medicationadministration</baseResourceName>
<baseResourceName>medicationdispense</baseResourceName>
<baseResourceName>medicationprescription</baseResourceName>
<baseResourceName>medication</baseResourceName>
<baseResourceName>medicationstatement</baseResourceName>
<baseResourceName>messageheader</baseResourceName>
<baseResourceName>microarray</baseResourceName>
<baseResourceName>namespace</baseResourceName>
<baseResourceName>nutritionorder</baseResourceName>
<baseResourceName>observation</baseResourceName>
<baseResourceName>operationdefinition</baseResourceName>
<baseResourceName>operationoutcome</baseResourceName>
<baseResourceName>order</baseResourceName>
<baseResourceName>orderresponse</baseResourceName>
<baseResourceName>order</baseResourceName>
<baseResourceName>organization</baseResourceName>
<baseResourceName>other</baseResourceName>
<baseResourceName>patient</baseResourceName>
<baseResourceName>person</baseResourceName>
<baseResourceName>practitioner</baseResourceName>
<baseResourceName>procedure</baseResourceName>
<baseResourceName>profile</baseResourceName>
<baseResourceName>protocol</baseResourceName>
<baseResourceName>provenance</baseResourceName>
<baseResourceName>query</baseResourceName>
<baseResourceName>questionnaire</baseResourceName>
<baseResourceName>questionnaireanswers</baseResourceName>
<baseResourceName>referralrequest</baseResourceName>
<baseResourceName>relatedperson</baseResourceName>
<baseResourceName>remittance</baseResourceName>
<baseResourceName>riskassessment</baseResourceName>
<baseResourceName>securityclaim</baseResourceName>
<baseResourceName>securityevent</baseResourceName>
<baseResourceName>securitygroup</baseResourceName>
<baseResourceName>securityprincipal</baseResourceName>
<baseResourceName>sequence</baseResourceName>
<baseResourceName>sequencinganalysis</baseResourceName>
<baseResourceName>sequencinglab</baseResourceName>
<baseResourceName>slot</baseResourceName>
<baseResourceName>specimen</baseResourceName>
<baseResourceName>subscription</baseResourceName>
<baseResourceName>substance</baseResourceName>
<baseResourceName>supply</baseResourceName>
<baseResourceName>user</baseResourceName>

View File

@ -217,7 +217,7 @@ public class TinderStructuresMojo extends AbstractMojo {
String dtOutputDir = "target/generated-sources/ca/uhn/fhir/model/dstu/composite";
ResourceGeneratorUsingSpreadsheet rp = new ResourceGeneratorUsingSpreadsheet("dev");
rp.setBaseResourceNames(Arrays.asList("conceptmap","organization"));
rp.setBaseResourceNames(Arrays.asList("referralrequest", "patient","practitioner","encounter","organization"));
rp.parse();
rp.bindValueSets(vsp);
rp.markResourcesForImports();
@ -233,7 +233,7 @@ public class TinderStructuresMojo extends AbstractMojo {
datatypeLocalImports.putAll(rp.getLocalImports());
dtp.writeAll(new File(dtOutputDir), null, "ca.uhn.fhir.model.dstu");
rp.writeAll(new File(rpOutputDir), new File(rpSOutputDir), "ca.uhn.fhir.model.dstu");
rp.writeAll(new File(rpOutputDir), new File(rpSOutputDir), "ca.uhn.fhir.model.dev");
String vsOutputDir = "target/generated-sources/ca/uhn/fhir/model/dstu/valueset";
vsp.writeMarkedValueSets(new File(vsOutputDir), "ca.uhn.fhir.model.dstu");

View File

@ -227,6 +227,8 @@ public abstract class BaseElement {
return;
}
String typeString = theType;
typeString = typeString.replace("Reference (", "Reference(");
if (typeString.toLowerCase().startsWith("resource(")) {
typeString = typeString.substring("Resource(".length(), typeString.length() - 1);
myResourceRef = true;

View File

@ -54,6 +54,7 @@ public abstract class BaseStructureParser {
private boolean myImportsResolved;
private TreeMap<String, String> myNameToResourceClass = new TreeMap<String, String>();
private TreeMap<String, String> myNameToDatatypeClass = new TreeMap<String, String>();
private String myPackageBase;
public TreeMap<String, String> getNameToDatatypeClass() {
return myNameToDatatypeClass;
@ -98,7 +99,8 @@ public abstract class BaseStructureParser {
}
}
private ca.uhn.fhir.model.api.annotation.SimpleSetter.Parameter findAnnotation(Class<?> theBase, Annotation[] theAnnotations, Class<ca.uhn.fhir.model.api.annotation.SimpleSetter.Parameter> theClass) {
private ca.uhn.fhir.model.api.annotation.SimpleSetter.Parameter findAnnotation(Class<?> theBase, Annotation[] theAnnotations,
Class<ca.uhn.fhir.model.api.annotation.SimpleSetter.Parameter> theClass) {
for (Annotation next : theAnnotations) {
if (theClass.equals(next.annotationType())) {
return (ca.uhn.fhir.model.api.annotation.SimpleSetter.Parameter) next;
@ -153,10 +155,15 @@ public abstract class BaseStructureParser {
return (theNextType);
} else {
try {
String type = "ca.uhn.fhir.model.dstu.composite." + theNextType;
String type = myPackageBase + ".composite." + theNextType;
Class.forName(type);
return (type);
} catch (ClassNotFoundException e) {
try {
String type = "ca.uhn.fhir.model.dstu.composite." + theNextType;
Class.forName(type);
return (type);
} catch (ClassNotFoundException e5) {
try {
String type = "ca.uhn.fhir.model.dstu.resource." + theNextType;
Class.forName(type);
@ -168,7 +175,7 @@ public abstract class BaseStructureParser {
return (type);
} catch (ClassNotFoundException e2) {
try {
String type = "ca.uhn.fhir.model.dstu.valueset." + theNextType;
String type = myPackageBase + ".valueset." + theNextType;
Class.forName(type);
return (type);
} catch (ClassNotFoundException e3) {
@ -177,6 +184,11 @@ public abstract class BaseStructureParser {
Class.forName(type);
return (type);
} catch (ClassNotFoundException e4) {
String fileName = "src/main/java/" + myPackageBase.replace('.', '/') + "/composite/" + theNextType + ".java";
File file = new File(fileName);
if (file.exists()) {
return myPackageBase + ".composite." + theNextType;
}
throw new MojoFailureException("Unknown type: " + theNextType + " - Have locally defined names: " + new TreeSet<String>(myLocallyDefinedClassNames.keySet()));
}
}
@ -185,6 +197,7 @@ public abstract class BaseStructureParser {
}
}
}
}
protected void scanForSimpleSetters(Child theElem) {
Class<?> childDt;
@ -330,6 +343,8 @@ public abstract class BaseStructureParser {
}
public void writeAll(File theOutputDirectory, File theResourceOutputDirectory, String thePackageBase) throws MojoFailureException {
myPackageBase = thePackageBase;
if (!theOutputDirectory.exists()) {
theOutputDirectory.mkdirs();
}
@ -426,8 +441,8 @@ public abstract class BaseStructureParser {
}
/**
* Example: Encounter has an internal block class named "Location", but it also has a reference to the Location
* resource type, so we need to use the fully qualified name for that resource reference
* Example: Encounter has an internal block class named "Location", but it also has a reference to the Location resource type, so we need to use the fully qualified name for that resource
* reference
*/
private void fixResourceReferenceClassNames(BaseElement theNext, String thePackageBase) {
for (BaseElement next : theNext.getChildren()) {

View File

@ -31,10 +31,11 @@ public class ResourceGeneratorUsingSpreadsheet extends BaseStructureSpreadsheetP
myInputStreams = new ArrayList<InputStream>();
for (String next : theBaseResourceNames) {
InputStream nextRes = getClass().getResourceAsStream("/res/" + myVersion + "/" + next + "-spreadsheet.xml");
String resName = "/res/" + myVersion + "/" + next + "-spreadsheet.xml";
InputStream nextRes = getClass().getResourceAsStream(resName);
myInputStreams.add(nextRes);
if (nextRes == null) {
throw new MojoFailureException("Unknown base resource name: " + next);
throw new MojoFailureException("Unknown base resource name: " + resName);
}
}
}
@ -72,110 +73,6 @@ public class ResourceGeneratorUsingSpreadsheet extends BaseStructureSpreadsheetP
return theFileName.endsWith("spreadsheet.xml");
}
public static void main(String[] args) throws Exception {
ResourceGeneratorUsingSpreadsheet p = new ResourceGeneratorUsingSpreadsheet("dstu");
ArrayList<String> names = new ArrayList<String>();
names.add("conceptmap");
names.add("list");
names.add("person");
p.setBaseResourceNames(names);
p.parse();
p.markResourcesForImports();
p.writeAll(new File("target/gen/ca/uhn/fhir/model/dstu/resource"), null, "ca.uhn.fhir.model.dstu");
//
// // 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(basePath + "/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();
//
// // String basePath="../hapi-fhir-base/src/main/java";
// String basePath="target/generated/valuesets";
//
// p.setResourceName("medication");
// p.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/resource/Medication.java");
// p.parse();
//
// p.setDirectory("src/test/resources/res");
// p.setResourceName("substance");
// p.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/resource/Substance.java");
// p.parse();
//
//
// p.setDirectory("src/test/resources/res");
// p.setResourceName("valueset");
// p.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/resource/ValueSetTm.java");
// p.parse();
//
// p.setDirectory("src/test/resources/res");
// p.setResourceName("observation");
// p.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/resource/Observation.java");
// p.parse();
//
// p.setResourceName("profile");
// p.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/resource/Profile.java");
// p.parse();
//
// p.setResourceName("device");
// p.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/resource/Device.java");
// p.parse();
//
// p.setResourceName("group");
// p.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/resource/Group.java");
// p.parse();
//
// p.setResourceName("location");
// p.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/resource/Location.java");
// p.parse();
//
// p.setResourceName("organization");
// p.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/resource/Organization.java");
// p.parse();
//
// p.setResourceName("patient");
// p.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/resource/Patient.java");
// p.parse();
//
// p.setResourceName("specimen");
// p.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/resource/Specimen.java");
// p.parse();
//
// p.setResourceName("practitioner");
// p.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/resource/Practitioner.java");
// p.parse();
//
// DatatypeSpreadsheetParser d = new DatatypeSpreadsheetParser();
// d.setDirectory("src/test/resources/dt");
// d.setDatatypeName("humanname");
// d.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/composite/HumanNameDt.java");
// d.parse();
//
// d.setDatatypeName("contact");
// d.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/composite/ContactDt.java");
// d.parse();
//
// d.setDatatypeName("address");
// d.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/composite/AddressDt.java");
// d.parse();
//
// d.setDatatypeName("narrative");
// d.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/composite/NarrativeDt.java");
// d.parse();
//
// d.setDatatypeName("quantity");
// d.setOutputFile(basePath + "/ca/uhn/fhir/model/dstu/composite/QuantityDt.java");
// d.parse();
}
}

View File

@ -268,7 +268,7 @@
<Cell ss:StyleID="s70"><Data ss:Type="String">Contract.term</Data></Cell>
<Cell><Data ss:Type="String">0..*</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String">right</Data></Cell>
<Cell><Data ss:Type="String">Terms</Data></Cell>
<Cell><Data ss:Type="String"><!-- Terms --></Data></Cell>
<Cell ss:Index="8"><Data ss:Type="String">Contract provisions</Data></Cell>
<Cell ss:StyleID="s72"><Data ss:Type="String">A contract provision.</Data></Cell>
<Cell ss:StyleID="s67"/>

View File

@ -105,6 +105,7 @@
<module>hapi-tinder-plugin</module>
<module>hapi-tinder-test</module>
<module>hapi-fhir-structures-dstu</module>
<module>hapi-fhir-structures-dev</module>
<module>hapi-fhir-jpaserver-base</module>
<module>hapi-fhir-jpaserver-test</module>
<module>restful-server-example</module>