Starting autogen code

This commit is contained in:
jamesagnew 2014-02-20 16:32:04 -05:00
parent 3717743cef
commit f6cd0a0199
30 changed files with 6407 additions and 5 deletions

View File

@ -32,6 +32,7 @@ public abstract class BaseRuntimeElementCompositeDefinition<T extends IComposite
}
@Override
public
void sealAndInitialize(Map<Class<? extends IElement>, BaseRuntimeElementDefinition<?>> theClassToElementDefinitions) {
for (BaseRuntimeChildDefinition next : myChildren) {
next.sealAndInitialize(theClassToElementDefinitions);

View File

@ -13,7 +13,7 @@ public class RuntimeChildResourceBlockDefinition extends BaseRuntimeChildDefinit
private RuntimeResourceBlockDefinition myElementDef;
private Class<? extends IResourceBlock> myResourceBlockType;
RuntimeChildResourceBlockDefinition(Field theField, int theMin, int theMax, String theElementName, Class<? extends IResourceBlock> theResourceBlockType) throws ConfigurationException {
public RuntimeChildResourceBlockDefinition(Field theField, int theMin, int theMax, String theElementName, Class<? extends IResourceBlock> theResourceBlockType) throws ConfigurationException {
super(theField, theMin, theMax, theElementName);
myResourceBlockType = theResourceBlockType;
}

View File

@ -1,5 +1,6 @@
package ca.uhn.fhir.context;
import ca.uhn.fhir.context.BaseRuntimeElementDefinition.ChildTypeEnum;
import ca.uhn.fhir.model.api.ICompositeDatatype;
public class RuntimeCompositeDatatypeDefinition extends BaseRuntimeElementCompositeDefinition<ICompositeDatatype> {

View File

@ -2,6 +2,7 @@ package ca.uhn.fhir.context;
import java.util.Map;
import ca.uhn.fhir.context.BaseRuntimeElementDefinition.ChildTypeEnum;
import ca.uhn.fhir.model.api.IElement;
import ca.uhn.fhir.model.api.IPrimitiveDatatype;

View File

@ -1,5 +1,6 @@
package ca.uhn.fhir.context;
import ca.uhn.fhir.context.BaseRuntimeElementDefinition.ChildTypeEnum;
import ca.uhn.fhir.model.api.IResourceBlock;
public class RuntimeResourceBlockDefinition extends BaseRuntimeElementCompositeDefinition<IResourceBlock> {

View File

@ -1,5 +1,6 @@
package ca.uhn.fhir.context;
import ca.uhn.fhir.context.BaseRuntimeElementDefinition.ChildTypeEnum;
import ca.uhn.fhir.model.api.IResource;
public class RuntimeResourceDefinition extends BaseRuntimeElementCompositeDefinition<IResource> {

View File

@ -2,6 +2,7 @@ package ca.uhn.fhir.context;
import java.util.Map;
import ca.uhn.fhir.context.BaseRuntimeElementDefinition.ChildTypeEnum;
import ca.uhn.fhir.model.api.IElement;
import ca.uhn.fhir.model.api.IResource;

View File

@ -0,0 +1,244 @@
package ca.uhn.fhir.model.datatype;
import java.util.*;
import ca.uhn.fhir.model.api.*;
import ca.uhn.fhir.model.api.annotation.*;
import ca.uhn.fhir.model.datatype.*;
/**
* HAPI/FHIR <b>${resourceName}</b> Datatype
* (A postal address)
*
* <p>
* <b>Definition:</b>
* There is a variety of postal address formats defined around the world. This format defines a superset that is the basis for all addresses around the world
* </p>
*
* <p>
* <b>Requirements:</b>
* A postal address
* </p>
*/
@DatatypeDef(name="Address")
public class AddressDt extends BaseCompositeDatatype {
@Child(name="use", order=0, min=0, max=1)
private CodeDt myUse;
@Child(name="text", order=1, min=0, max=1)
private String myText;
@Child(name="line", order=2, min=0, max=Child.MAX_UNLIMITED)
private List<String> myLine;
@Child(name="city", order=3, min=0, max=1)
private String myCity;
@Child(name="state", order=4, min=0, max=1)
private String myState;
@Child(name="zip", order=5, min=0, max=1)
private String myZip;
@Child(name="country", order=6, min=0, max=1)
private String myCountry;
@Child(name="period", order=7, min=0, max=1)
private Period myPeriod;
/**
* Gets the value(s) for use (home | work | temp | old - purpose of this address)
*
* <p>
* <b>Definition:</b>
* The purpose of this address
* </p>
*/
public CodeDt getUse() {
return myUse;
}
/**
* Sets the value(s) for use (home | work | temp | old - purpose of this address)
*
* <p>
* <b>Definition:</b>
* The purpose of this address
* </p>
*/
public void setUse(CodeDt theValue) {
myUse = theValue;
}
/**
* Gets the value(s) for text (Text representation of the address)
*
* <p>
* <b>Definition:</b>
* A full text representation of the address
* </p>
*/
public String getText() {
return myText;
}
/**
* Sets the value(s) for text (Text representation of the address)
*
* <p>
* <b>Definition:</b>
* A full text representation of the address
* </p>
*/
public void setText(String theValue) {
myText = theValue;
}
/**
* Gets the value(s) for line (Street name, number, direction & P.O. Box etc )
*
* <p>
* <b>Definition:</b>
* This component contains the house number, apartment number, street name, street direction,
P.O. Box number, delivery hints, and similar address information
* </p>
*/
public List<String> getLine() {
return myLine;
}
/**
* Sets the value(s) for line (Street name, number, direction & P.O. Box etc )
*
* <p>
* <b>Definition:</b>
* This component contains the house number, apartment number, street name, street direction,
P.O. Box number, delivery hints, and similar address information
* </p>
*/
public void setLine(List<String> theValue) {
myLine = theValue;
}
/**
* Gets the value(s) for city (Name of city, town etc.)
*
* <p>
* <b>Definition:</b>
* The name of the city, town, village or other community or delivery center.
* </p>
*/
public String getCity() {
return myCity;
}
/**
* Sets the value(s) for city (Name of city, town etc.)
*
* <p>
* <b>Definition:</b>
* The name of the city, town, village or other community or delivery center.
* </p>
*/
public void setCity(String theValue) {
myCity = theValue;
}
/**
* Gets the value(s) for state (Sub-unit of country (abreviations ok))
*
* <p>
* <b>Definition:</b>
* Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes).
* </p>
*/
public String getState() {
return myState;
}
/**
* Sets the value(s) for state (Sub-unit of country (abreviations ok))
*
* <p>
* <b>Definition:</b>
* Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes).
* </p>
*/
public void setState(String theValue) {
myState = theValue;
}
/**
* Gets the value(s) for zip (Postal code for area)
*
* <p>
* <b>Definition:</b>
* A postal code designating a region defined by the postal service.
* </p>
*/
public String getZip() {
return myZip;
}
/**
* Sets the value(s) for zip (Postal code for area)
*
* <p>
* <b>Definition:</b>
* A postal code designating a region defined by the postal service.
* </p>
*/
public void setZip(String theValue) {
myZip = theValue;
}
/**
* Gets the value(s) for country (Country (can be ISO 3166 3 letter code))
*
* <p>
* <b>Definition:</b>
* Country - a nation as commonly understood or generally accepted
* </p>
*/
public String getCountry() {
return myCountry;
}
/**
* Sets the value(s) for country (Country (can be ISO 3166 3 letter code))
*
* <p>
* <b>Definition:</b>
* Country - a nation as commonly understood or generally accepted
* </p>
*/
public void setCountry(String theValue) {
myCountry = theValue;
}
/**
* Gets the value(s) for period (Time period when address was/is in use)
*
* <p>
* <b>Definition:</b>
* Time period when address was/is in use
* </p>
*/
public Period getPeriod() {
return myPeriod;
}
/**
* Sets the value(s) for period (Time period when address was/is in use)
*
* <p>
* <b>Definition:</b>
* Time period when address was/is in use
* </p>
*/
public void setPeriod(Period theValue) {
myPeriod = theValue;
}
}

View File

@ -0,0 +1,134 @@
package ca.uhn.fhir.model.datatype;
import java.util.*;
import ca.uhn.fhir.model.api.*;
import ca.uhn.fhir.model.api.annotation.*;
import ca.uhn.fhir.model.datatype.*;
/**
* HAPI/FHIR <b>${resourceName}</b> Datatype
* (Technology mediated contact details (phone, fax, email, etc))
*
* <p>
* <b>Definition:</b>
* All kinds of technology mediated contact details for a person or organization, including telephone, email, etc.
* </p>
*
* <p>
* <b>Requirements:</b>
* Technology mediated contact details (phone, fax, email, etc)
* </p>
*/
@DatatypeDef(name="Contact")
public class ContactDt extends BaseCompositeDatatype {
@Child(name="system", order=0, min=0, max=1)
private CodeDt mySystem;
@Child(name="value", order=1, min=0, max=1)
private String myValue;
@Child(name="use", order=2, min=0, max=1)
private CodeDt myUse;
@Child(name="period", order=3, min=0, max=1)
private Period myPeriod;
/**
* Gets the value(s) for system (phone | fax | email | url)
*
* <p>
* <b>Definition:</b>
* Telecommunications form for contact - what communications system is required to make use of the contact
* </p>
*/
public CodeDt getSystem() {
return mySystem;
}
/**
* Sets the value(s) for system (phone | fax | email | url)
*
* <p>
* <b>Definition:</b>
* Telecommunications form for contact - what communications system is required to make use of the contact
* </p>
*/
public void setSystem(CodeDt theValue) {
mySystem = theValue;
}
/**
* Gets the value(s) for value (The actual contact details)
*
* <p>
* <b>Definition:</b>
* The actual contact details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).
* </p>
*/
public String getValue() {
return myValue;
}
/**
* Sets the value(s) for value (The actual contact details)
*
* <p>
* <b>Definition:</b>
* The actual contact details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).
* </p>
*/
public void setValue(String theValue) {
myValue = theValue;
}
/**
* Gets the value(s) for use (home | work | temp | old | mobile - purpose of this address)
*
* <p>
* <b>Definition:</b>
* Identifies the purpose for the address
* </p>
*/
public CodeDt getUse() {
return myUse;
}
/**
* Sets the value(s) for use (home | work | temp | old | mobile - purpose of this address)
*
* <p>
* <b>Definition:</b>
* Identifies the purpose for the address
* </p>
*/
public void setUse(CodeDt theValue) {
myUse = theValue;
}
/**
* Gets the value(s) for period (Time period when the contact was/is in use)
*
* <p>
* <b>Definition:</b>
* Time period when the contact was/is in use
* </p>
*/
public Period getPeriod() {
return myPeriod;
}
/**
* Sets the value(s) for period (Time period when the contact was/is in use)
*
* <p>
* <b>Definition:</b>
* Time period when the contact was/is in use
* </p>
*/
public void setPeriod(Period theValue) {
myPeriod = theValue;
}
}

View File

@ -0,0 +1,215 @@
package ca.uhn.fhir.model.datatype;
import java.util.*;
import ca.uhn.fhir.model.api.*;
import ca.uhn.fhir.model.api.annotation.*;
import ca.uhn.fhir.model.datatype.*;
/**
* HAPI/FHIR <b>${resourceName}</b> Datatype
* (Name of a human - parts and usage)
*
* <p>
* <b>Definition:</b>
* A human's name with the ability to identify parts and usage
* </p>
*
* <p>
* <b>Requirements:</b>
* Name of a human - parts and usage
* </p>
*/
@DatatypeDef(name="HumanName")
public class HumanNameDt extends BaseCompositeDatatype {
@Child(name="use", order=0, min=0, max=1)
private CodeDt myUse;
@Child(name="text", order=1, min=0, max=1)
private String myText;
@Child(name="family", order=2, min=0, max=Child.MAX_UNLIMITED)
private List<String> myFamily;
@Child(name="given", order=3, min=0, max=Child.MAX_UNLIMITED)
private List<String> myGiven;
@Child(name="prefix", order=4, min=0, max=Child.MAX_UNLIMITED)
private List<String> myPrefix;
@Child(name="suffix", order=5, min=0, max=Child.MAX_UNLIMITED)
private List<String> mySuffix;
@Child(name="period", order=6, min=0, max=1)
private Period myPeriod;
/**
* Gets the value(s) for use (usual | official | temp | nickname | anonymous | old | maiden)
*
* <p>
* <b>Definition:</b>
* Identifies the purpose for this name
* </p>
*/
public CodeDt getUse() {
return myUse;
}
/**
* Sets the value(s) for use (usual | official | temp | nickname | anonymous | old | maiden)
*
* <p>
* <b>Definition:</b>
* Identifies the purpose for this name
* </p>
*/
public void setUse(CodeDt theValue) {
myUse = theValue;
}
/**
* Gets the value(s) for text (Text representation of the full name)
*
* <p>
* <b>Definition:</b>
* A full text representation of the name
* </p>
*/
public String getText() {
return myText;
}
/**
* Sets the value(s) for text (Text representation of the full name)
*
* <p>
* <b>Definition:</b>
* A full text representation of the name
* </p>
*/
public void setText(String theValue) {
myText = theValue;
}
/**
* Gets the value(s) for family (Family name (often called 'Surname'))
*
* <p>
* <b>Definition:</b>
* The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.
* </p>
*/
public List<String> getFamily() {
return myFamily;
}
/**
* Sets the value(s) for family (Family name (often called 'Surname'))
*
* <p>
* <b>Definition:</b>
* The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.
* </p>
*/
public void setFamily(List<String> theValue) {
myFamily = theValue;
}
/**
* Gets the value(s) for given (Given names (not always 'first'). Includes middle names)
*
* <p>
* <b>Definition:</b>
* Given name
* </p>
*/
public List<String> getGiven() {
return myGiven;
}
/**
* Sets the value(s) for given (Given names (not always 'first'). Includes middle names)
*
* <p>
* <b>Definition:</b>
* Given name
* </p>
*/
public void setGiven(List<String> theValue) {
myGiven = theValue;
}
/**
* Gets the value(s) for prefix (Parts that come before the name)
*
* <p>
* <b>Definition:</b>
* Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name
* </p>
*/
public List<String> getPrefix() {
return myPrefix;
}
/**
* Sets the value(s) for prefix (Parts that come before the name)
*
* <p>
* <b>Definition:</b>
* Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name
* </p>
*/
public void setPrefix(List<String> theValue) {
myPrefix = theValue;
}
/**
* Gets the value(s) for suffix (Parts that come after the name)
*
* <p>
* <b>Definition:</b>
* Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name
* </p>
*/
public List<String> getSuffix() {
return mySuffix;
}
/**
* Sets the value(s) for suffix (Parts that come after the name)
*
* <p>
* <b>Definition:</b>
* Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name
* </p>
*/
public void setSuffix(List<String> theValue) {
mySuffix = theValue;
}
/**
* Gets the value(s) for period (Time period when name was/is in use)
*
* <p>
* <b>Definition:</b>
* Indicates the period of time when this name was valid for the named person.
* </p>
*/
public Period getPeriod() {
return myPeriod;
}
/**
* Sets the value(s) for period (Time period when name was/is in use)
*
* <p>
* <b>Definition:</b>
* Indicates the period of time when this name was valid for the named person.
* </p>
*/
public void setPeriod(Period theValue) {
myPeriod = theValue;
}
}

View File

@ -1,8 +1,499 @@
package ca.uhn.fhir.model.resource;
import ca.uhn.fhir.model.api.annotation.ResourceDef;
import java.util.*;
import ca.uhn.fhir.model.api.*;
import ca.uhn.fhir.model.api.annotation.*;
import ca.uhn.fhir.model.datatype.*;
@ResourceDef(name="Patient", identifierOrder=0)
public class Patient extends BaseResourceWithIdentifier {
/**
* HAPI/FHIR <b>Patient</b> Resource
* (Information about a person or animal receiving health care services)
*
* <p>
* <b>Definition:</b>
* Demographics and other administrative information about a person or animal receiving care or other health-related services
* </p>
*
* <p>
* <b>Requirements:</b>
* Tracking patient is the center of the healthcare process
* </p>
*/
@ResourceDef(name="${resourceName}")
public class Patient extends BaseResource {
}
@Child(name="identifier", order=0, min=0, max=Child.MAX_UNLIMITED)
private List<IdentifierDt> myIdentifier;
@Child(name="name", order=1, min=0, max=Child.MAX_UNLIMITED)
private List<HumanNameDt> myName;
@Child(name="telecom", order=2, min=0, max=Child.MAX_UNLIMITED)
private List<ContactDt> myTelecom;
@Child(name="gender", order=3, min=0, max=1)
private CodeableConceptDt myGender;
@Child(name="birthDate", order=4, min=0, max=1)
private DateTimeDt myBirthDate;
@Child(name="deceased[x]", order=5, min=0, max=1)
private IDatatype myDeceased;
@Child(name="address", order=6, min=0, max=Child.MAX_UNLIMITED)
private List<AddressDt> myAddress;
@Child(name="maritalStatus", order=7, min=0, max=1)
private CodeableConceptDt myMaritalStatus;
@Child(name="multipleBirth[x]", order=8, min=0, max=1)
private IDatatype myMultipleBirth;
@Child(name="photo", order=9, min=0, max=Child.MAX_UNLIMITED)
private List<AttachmentDt> myPhoto;
@Child(name="contact", order=10, min=0, max=Child.MAX_UNLIMITED)
private List<Contact> myContact;
@Child(name="animal", order=11, min=0, max=1)
private Animal myAnimal;
@Child(name="communication", order=12, min=0, max=Child.MAX_UNLIMITED)
private List<CodeableConceptDt> myCommunication;
@Child(name="careProvider", order=13, min=0, max=Child.MAX_UNLIMITED)
private List<IDatatype> myCareProvider;
@Child(name="managingOrganization", order=14, min=0, max=1)
private OrganizationDt myManagingOrganization;
@Child(name="link", order=15, min=0, max=Child.MAX_UNLIMITED)
private List<IDatatype> myLink;
@Child(name="active", order=16, min=0, max=1)
private BooleanDt myActive;
/**
* Gets the value(s) for identifier (An identifier for the person as this patient)
*
* <p>
* <b>Definition:</b>
* An identifier that applies to this person as a patient
* </p>
*/
public List<IdentifierDt> getIdentifier() {
return myIdentifier;
}
/**
* Sets the value(s) for identifier (An identifier for the person as this patient)
*
* <p>
* <b>Definition:</b>
* An identifier that applies to this person as a patient
* </p>
*/
public void setIdentifier(List<IdentifierDt> theValue) {
myIdentifier = theValue;
}
/**
* Gets the value(s) for name (A name associated with the patient)
*
* <p>
* <b>Definition:</b>
* A name associated with the individual.
* </p>
*/
public List<HumanNameDt> getName() {
return myName;
}
/**
* Sets the value(s) for name (A name associated with the patient)
*
* <p>
* <b>Definition:</b>
* A name associated with the individual.
* </p>
*/
public void setName(List<HumanNameDt> theValue) {
myName = theValue;
}
/**
* Gets the value(s) for telecom (A contact detail for the individual)
*
* <p>
* <b>Definition:</b>
* A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted.
* </p>
*/
public List<ContactDt> getTelecom() {
return myTelecom;
}
/**
* Sets the value(s) for telecom (A contact detail for the individual)
*
* <p>
* <b>Definition:</b>
* A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted.
* </p>
*/
public void setTelecom(List<ContactDt> theValue) {
myTelecom = theValue;
}
/**
* Gets the value(s) for gender (Gender for administrative purposes)
*
* <p>
* <b>Definition:</b>
* Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes.
* </p>
*/
public CodeableConceptDt getGender() {
return myGender;
}
/**
* Sets the value(s) for gender (Gender for administrative purposes)
*
* <p>
* <b>Definition:</b>
* Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes.
* </p>
*/
public void setGender(CodeableConceptDt theValue) {
myGender = theValue;
}
/**
* Gets the value(s) for birthDate (The date and time of birth for the individual)
*
* <p>
* <b>Definition:</b>
* The date and time of birth for the individual
* </p>
*/
public DateTimeDt getBirthDate() {
return myBirthDate;
}
/**
* Sets the value(s) for birthDate (The date and time of birth for the individual)
*
* <p>
* <b>Definition:</b>
* The date and time of birth for the individual
* </p>
*/
public void setBirthDate(DateTimeDt theValue) {
myBirthDate = theValue;
}
/**
* Gets the value(s) for deceased[x] (Indicates if the individual is deceased or not)
*
* <p>
* <b>Definition:</b>
* Indicates if the individual is deceased or not
* </p>
*/
public IDatatype getDeceased() {
return myDeceased;
}
/**
* Sets the value(s) for deceased[x] (Indicates if the individual is deceased or not)
*
* <p>
* <b>Definition:</b>
* Indicates if the individual is deceased or not
* </p>
*/
public void setDeceased(IDatatype theValue) {
myDeceased = theValue;
}
/**
* Gets the value(s) for address (Addresses for the individual)
*
* <p>
* <b>Definition:</b>
* Addresses for the individual
* </p>
*/
public List<AddressDt> getAddress() {
return myAddress;
}
/**
* Sets the value(s) for address (Addresses for the individual)
*
* <p>
* <b>Definition:</b>
* Addresses for the individual
* </p>
*/
public void setAddress(List<AddressDt> theValue) {
myAddress = theValue;
}
/**
* Gets the value(s) for maritalStatus (Marital (civil) status of a person)
*
* <p>
* <b>Definition:</b>
* This field contains a patient's most recent marital (civil) status.
* </p>
*/
public CodeableConceptDt getMaritalStatus() {
return myMaritalStatus;
}
/**
* Sets the value(s) for maritalStatus (Marital (civil) status of a person)
*
* <p>
* <b>Definition:</b>
* This field contains a patient's most recent marital (civil) status.
* </p>
*/
public void setMaritalStatus(CodeableConceptDt theValue) {
myMaritalStatus = theValue;
}
/**
* Gets the value(s) for multipleBirth[x] (Whether patient is part of a multiple birth)
*
* <p>
* <b>Definition:</b>
* Indicates whether the patient is part of a multiple or indicates the actual birth order.
* </p>
*/
public IDatatype getMultipleBirth() {
return myMultipleBirth;
}
/**
* Sets the value(s) for multipleBirth[x] (Whether patient is part of a multiple birth)
*
* <p>
* <b>Definition:</b>
* Indicates whether the patient is part of a multiple or indicates the actual birth order.
* </p>
*/
public void setMultipleBirth(IDatatype theValue) {
myMultipleBirth = theValue;
}
/**
* Gets the value(s) for photo (Image of the person)
*
* <p>
* <b>Definition:</b>
* Image of the person
* </p>
*/
public List<AttachmentDt> getPhoto() {
return myPhoto;
}
/**
* Sets the value(s) for photo (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 contact (A contact party (e.g. guardian, partner, friend) for the patient)
*
* <p>
* <b>Definition:</b>
* A contact party (e.g. guardian, partner, friend) for the patient
* </p>
*/
public List<Contact> getContact() {
return myContact;
}
/**
* Sets the value(s) for contact (A contact party (e.g. guardian, partner, friend) for the patient)
*
* <p>
* <b>Definition:</b>
* A contact party (e.g. guardian, partner, friend) for the patient
* </p>
*/
public void setContact(List<Contact> theValue) {
myContact = theValue;
}
/**
* Gets the value(s) for animal (If this patient is an animal (non-human))
*
* <p>
* <b>Definition:</b>
* This element has a value if the patient is an animal
* </p>
*/
public Animal getAnimal() {
return myAnimal;
}
/**
* Sets the value(s) for animal (If this patient is an animal (non-human))
*
* <p>
* <b>Definition:</b>
* This element has a value if the patient is an animal
* </p>
*/
public void setAnimal(Animal theValue) {
myAnimal = theValue;
}
/**
* Gets the value(s) for communication (Languages which may be used to communicate with the patient about his or her health)
*
* <p>
* <b>Definition:</b>
* Languages which may be used to communicate with the patient about his or her health
* </p>
*/
public List<CodeableConceptDt> getCommunication() {
return myCommunication;
}
/**
* Sets the value(s) for communication (Languages which may be used to communicate with the patient about his or her health)
*
* <p>
* <b>Definition:</b>
* Languages which may be used to communicate with the patient about his or her health
* </p>
*/
public void setCommunication(List<CodeableConceptDt> theValue) {
myCommunication = theValue;
}
/**
* Gets the value(s) for careProvider (Patient's nominated care provider)
*
* <p>
* <b>Definition:</b>
* Patient's nominated care provider
* </p>
*/
public List<IDatatype> getCareProvider() {
return myCareProvider;
}
/**
* Sets the value(s) for careProvider (Patient's nominated care provider)
*
* <p>
* <b>Definition:</b>
* Patient's nominated care provider
* </p>
*/
public void setCareProvider(List<IDatatype> theValue) {
myCareProvider = theValue;
}
/**
* Gets the value(s) for managingOrganization (Organization that is the custodian of the patient record)
*
* <p>
* <b>Definition:</b>
* Organization that is the custodian of the patient record
* </p>
*/
public OrganizationDt getManagingOrganization() {
return myManagingOrganization;
}
/**
* Sets the value(s) for managingOrganization (Organization that is the custodian of the patient record)
*
* <p>
* <b>Definition:</b>
* Organization that is the custodian of the patient record
* </p>
*/
public void setManagingOrganization(OrganizationDt theValue) {
myManagingOrganization = theValue;
}
/**
* Gets the value(s) for link (Link to another patient resource that concerns the same actual person)
*
* <p>
* <b>Definition:</b>
* Link to another patient resource that concerns the same actual person
* </p>
*/
public List<IDatatype> getLink() {
return myLink;
}
/**
* Sets the value(s) for link (Link to another patient resource that concerns the same actual person)
*
* <p>
* <b>Definition:</b>
* Link to another patient resource that concerns the same actual person
* </p>
*/
public void setLink(List<IDatatype> theValue) {
myLink = theValue;
}
/**
* Gets the value(s) for active (Whether this patient's record is in active use)
*
* <p>
* <b>Definition:</b>
* Whether this patient record is in active use
* </p>
*/
public BooleanDt getActive() {
return myActive;
}
/**
* Sets the value(s) for active (Whether this patient's record is in active use)
*
* <p>
* <b>Definition:</b>
* Whether this patient record is in active use
* </p>
*/
public void setActive(BooleanDt theValue) {
myActive = theValue;
}
@Block(name="Patient.contact")
public static class Contact {
}
@Block(name="Patient.animal")
public static class Animal {
}
@Block(name="Patient.link")
public static class Link {
}
}

View File

@ -0,0 +1,258 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry including="**/*.java" kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/main/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="var" path="M2_REPO/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar" sourcepath="M2_REPO/javax/enterprise/cdi-api/1.0/cdi-api-1.0-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" sourcepath="M2_REPO/javax/inject/javax.inject/1/javax.inject-1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/javax/inject/javax.inject/1/javax.inject-1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar" sourcepath="M2_REPO/javax/annotation/jsr250-api/1.0/jsr250-api-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar" sourcepath="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/eclipse/aether/aether-api/0.9.0.M2/aether-api-0.9.0.M2.jar" sourcepath="M2_REPO/org/eclipse/aether/aether-api/0.9.0.M2/aether-api-0.9.0.M2-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/eclipse/aether/aether-api/0.9.0.M2/aether-api-0.9.0.M2-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/eclipse/aether/aether-impl/0.9.0.M2/aether-impl-0.9.0.M2.jar" sourcepath="M2_REPO/org/eclipse/aether/aether-impl/0.9.0.M2/aether-impl-0.9.0.M2-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/eclipse/aether/aether-impl/0.9.0.M2/aether-impl-0.9.0.M2-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/eclipse/aether/aether-spi/0.9.0.M2/aether-spi-0.9.0.M2.jar" sourcepath="M2_REPO/org/eclipse/aether/aether-spi/0.9.0.M2/aether-spi-0.9.0.M2-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/eclipse/aether/aether-spi/0.9.0.M2/aether-spi-0.9.0.M2-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar" sourcepath="M2_REPO/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.2/antlr-2.7.2.jar" sourcepath="M2_REPO/antlr/antlr/2.7.2/antlr-2.7.2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" sourcepath="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar" sourcepath="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/commons-chain/commons-chain/1.1/commons-chain-1.1.jar" sourcepath="M2_REPO/commons-chain/commons-chain/1.1/commons-chain-1.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.5/commons-codec-1.5.jar" sourcepath="M2_REPO/commons-codec/commons-codec/1.5/commons-codec-1.5-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/commons-codec/commons-codec/1.5/commons-codec-1.5-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar" sourcepath="M2_REPO/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/commons-digester/commons-digester/1.8/commons-digester-1.8.jar" sourcepath="M2_REPO/commons-digester/commons-digester/1.8/commons-digester-1.8-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.3.2/commons-io-1.3.2.jar" sourcepath="M2_REPO/commons-io/commons-io/1.3.2/commons-io-1.3.2-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/commons-io/commons-io/1.3.2/commons-io-1.3.2-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4.jar" sourcepath="M2_REPO/commons-lang/commons-lang/2.4/commons-lang-2.4-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/commons-lang/commons-lang/2.4/commons-lang-2.4-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-lang3/3.2.1/commons-lang3-3.2.1.jar" sourcepath="M2_REPO/org/apache/commons/commons-lang3/3.2.1/commons-lang3-3.2.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/commons/commons-lang3/3.2.1/commons-lang3-3.2.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar" sourcepath="M2_REPO/commons-validator/commons-validator/1.3.1/commons-validator-1.3.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar" sourcepath="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/guava/guava/10.0.1/guava-10.0.1.jar" sourcepath="M2_REPO/com/google/guava/guava/10.0.1/guava-10.0.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/com/google/guava/guava/10.0.1/guava-10.0.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/4.11/junit-4.11.jar" sourcepath="M2_REPO/junit/junit/4.11/junit-4.11-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/junit/junit/4.11/junit-4.11-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/ch/qos/logback/logback-classic/1.1.1/logback-classic-1.1.1.jar" sourcepath="M2_REPO/ch/qos/logback/logback-classic/1.1.1/logback-classic-1.1.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/ch/qos/logback/logback-classic/1.1.1/logback-classic-1.1.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/ch/qos/logback/logback-core/1.1.1/logback-core-1.1.1.jar" sourcepath="M2_REPO/ch/qos/logback/logback-core/1.1.1/logback-core-1.1.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/ch/qos/logback/logback-core/1.1.1/logback-core-1.1.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-aether-provider/3.1.1/maven-aether-provider-3.1.1.jar" sourcepath="M2_REPO/org/apache/maven/maven-aether-provider/3.1.1/maven-aether-provider-3.1.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-aether-provider/3.1.1/maven-aether-provider-3.1.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact/3.1.1/maven-artifact-3.1.1.jar" sourcepath="M2_REPO/org/apache/maven/maven-artifact/3.1.1/maven-artifact-3.1.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-artifact/3.1.1/maven-artifact-3.1.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact-manager/2.0.11/maven-artifact-manager-2.0.11.jar" sourcepath="M2_REPO/org/apache/maven/maven-artifact-manager/2.0.11/maven-artifact-manager-2.0.11-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-artifact-manager/2.0.11/maven-artifact-manager-2.0.11-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-core/3.1.1/maven-core-3.1.1.jar" sourcepath="M2_REPO/org/apache/maven/maven-core/3.1.1/maven-core-3.1.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-core/3.1.1/maven-core-3.1.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-model/3.1.1/maven-model-3.1.1.jar" sourcepath="M2_REPO/org/apache/maven/maven-model/3.1.1/maven-model-3.1.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-model/3.1.1/maven-model-3.1.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-model-builder/3.1.1/maven-model-builder-3.1.1.jar" sourcepath="M2_REPO/org/apache/maven/maven-model-builder/3.1.1/maven-model-builder-3.1.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-model-builder/3.1.1/maven-model-builder-3.1.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-plugin-api/3.1.1/maven-plugin-api-3.1.1.jar" sourcepath="M2_REPO/org/apache/maven/maven-plugin-api/3.1.1/maven-plugin-api-3.1.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-plugin-api/3.1.1/maven-plugin-api-3.1.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-plugin-registry/2.0.11/maven-plugin-registry-2.0.11.jar" sourcepath="M2_REPO/org/apache/maven/maven-plugin-registry/2.0.11/maven-plugin-registry-2.0.11-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-plugin-registry/2.0.11/maven-plugin-registry-2.0.11-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-profile/2.0.11/maven-profile-2.0.11.jar" sourcepath="M2_REPO/org/apache/maven/maven-profile/2.0.11/maven-profile-2.0.11-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-profile/2.0.11/maven-profile-2.0.11-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-project/2.0.11/maven-project-2.0.11.jar" sourcepath="M2_REPO/org/apache/maven/maven-project/2.0.11/maven-project-2.0.11-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-project/2.0.11/maven-project-2.0.11-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-repository-metadata/3.1.1/maven-repository-metadata-3.1.1.jar" sourcepath="M2_REPO/org/apache/maven/maven-repository-metadata/3.1.1/maven-repository-metadata-3.1.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-repository-metadata/3.1.1/maven-repository-metadata-3.1.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-settings/3.1.1/maven-settings-3.1.1.jar" sourcepath="M2_REPO/org/apache/maven/maven-settings/3.1.1/maven-settings-3.1.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-settings/3.1.1/maven-settings-3.1.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-settings-builder/3.1.1/maven-settings-builder-3.1.1.jar" sourcepath="M2_REPO/org/apache/maven/maven-settings-builder/3.1.1/maven-settings-builder-3.1.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/maven-settings-builder/3.1.1/maven-settings-builder-3.1.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/eclipse/sisu/org.eclipse.sisu.inject/0.0.0.M5/org.eclipse.sisu.inject-0.0.0.M5.jar" sourcepath="M2_REPO/org/eclipse/sisu/org.eclipse.sisu.inject/0.0.0.M5/org.eclipse.sisu.inject-0.0.0.M5-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.0.0.M5/org.eclipse.sisu.inject-0.0.0.M5-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M5/org.eclipse.sisu.plexus-0.0.0.M5.jar" sourcepath="M2_REPO/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M5/org.eclipse.sisu.plexus-0.0.0.M5-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.plexus/0.0.0.M5/org.eclipse.sisu.plexus-0.0.0.M5-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/oro/oro/2.0.8/oro-2.0.8.jar" sourcepath="M2_REPO/oro/oro/2.0.8/oro-2.0.8-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar" sourcepath="M2_REPO/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-classworlds/2.5.1/plexus-classworlds-2.5.1.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-classworlds/2.5.1/plexus-classworlds-2.5.1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/codehaus/plexus/plexus-classworlds/2.5.1/plexus-classworlds-2.5.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-interpolation/1.19/plexus-interpolation-1.19.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-interpolation/1.19/plexus-interpolation-1.19-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.19/plexus-interpolation-1.19-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar" sourcepath="M2_REPO/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar" sourcepath="M2_REPO/org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/poi/poi/3.10-FINAL/poi-3.10-FINAL.jar" sourcepath="M2_REPO/org/apache/poi/poi/3.10-FINAL/poi-3.10-FINAL-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/poi/poi-ooxml/3.10-FINAL/poi-ooxml-3.10-FINAL.jar" sourcepath="M2_REPO/org/apache/poi/poi-ooxml/3.10-FINAL/poi-ooxml-3.10-FINAL-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/poi/poi-ooxml-schemas/3.10-FINAL/poi-ooxml-schemas-3.10-FINAL.jar"/>
<classpathentry kind="var" path="M2_REPO/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0-no_aop.jar"/>
<classpathentry kind="var" path="M2_REPO/org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7.6.jar" sourcepath="M2_REPO/org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7.6-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7.6-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/sslext/sslext/1.2-0/sslext-1.2-0.jar" sourcepath="M2_REPO/sslext/sslext/1.2-0/sslext-1.2-0-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar" sourcepath="M2_REPO/org/apache/struts/struts-core/1.3.8/struts-core-1.3.8-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/struts/struts-core/1.3.8/struts-core-1.3.8-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar" sourcepath="M2_REPO/org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar" sourcepath="M2_REPO/org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/velocity/velocity/1.7/velocity-1.7.jar" sourcepath="M2_REPO/org/apache/velocity/velocity/1.7/velocity-1.7-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/velocity/velocity/1.7/velocity-1.7-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar" sourcepath="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2-sources.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/xmlbeans/xmlbeans/2.3.0/xmlbeans-2.3.0.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>

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

@ -0,0 +1 @@
target/

View File

@ -0,0 +1,13 @@
<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>

View File

@ -0,0 +1,5 @@
#Thu Feb 20 12:55:51 EST 2014
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.source=1.6
org.eclipse.jdt.core.compiler.compliance=1.6

120
hapi-fhir-starter/pom.xml Normal file
View File

@ -0,0 +1,120 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhir</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<groupId>ca.uhn.hapi.fhir</groupId>
<artifactId>hapi-fhirstarter-plugin</artifactId>
<!--<packaging>maven-plugin</packaging> -->
<packaging>jar</packaging>
<name>HAPI FHIR-Starter Maven Plugin</name>
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10-FINAL</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.10-FINAL</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>2.0</version>
</dependency>
<!-- General -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.2.1</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.1</version>
<optional>true</optional>
</dependency>
<!-- Testing -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
<scope>test</scope>
</dependency>
<!-- Maven -->
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0.11</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>${maven_version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>${maven_version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-settings</artifactId>
<version>${maven_version}</version>
</dependency>
</dependencies>
<properties>
<maven_version>3.1.1</maven_version>
</properties>
<build>
<plugins>
</plugins>
</build>
</project>

View File

@ -0,0 +1,166 @@
package ca.uhn.fhir.starter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import ca.uhn.fhir.starter.model.BaseElement;
import ca.uhn.fhir.starter.model.Child;
import ca.uhn.fhir.starter.model.Resource;
import ca.uhn.fhir.starter.model.ResourceBlock;
import ca.uhn.fhir.starter.util.XMLUtils;
public abstract class BaseParser {
private String myDirectory;
private String myOutputFile;
public void parse() throws Exception {
File baseDir = new File(myDirectory);
if (baseDir.exists() == false || baseDir.isDirectory() == false) {
throw new Exception(myDirectory + " does not exist or is not a directory");
}
File resourceSpreadsheetFile = new File(baseDir, getFilename());
if (resourceSpreadsheetFile.exists() == false) {
throw new Exception(resourceSpreadsheetFile.getAbsolutePath() + " does not exist");
}
Document file = XMLUtils.parse(new FileInputStream(resourceSpreadsheetFile), false);
Element dataElementsSheet = (Element) file.getElementsByTagName("Worksheet").item(0);
NodeList tableList = dataElementsSheet.getElementsByTagName("Table");
Element table = (Element) tableList.item(0);
NodeList rows = table.getElementsByTagName("Row");
Element resourceRow = (Element) rows.item(1);
Resource resource = new Resource();
parseBasicElements(resourceRow, resource);
Map<String, BaseElement> elements = new HashMap<String, BaseElement>();
elements.put(resource.getElementName(), resource);
for (int i = 2; i < rows.getLength(); i++) {
Element nextRow = (Element) rows.item(i);
String name = cellValue(nextRow, 0);
if (name == null || name.startsWith("!")) {
continue;
}
String type = cellValue(nextRow, 5);
Child elem;
if (StringUtils.isBlank(type) || type.startsWith("=")) {
elem = new ResourceBlock();
} else {
elem = new Child();
}
parseBasicElements(nextRow, elem);
if (elem.getType().size() == 1) {
String elemName = elem.getType().get(0);
elemName = elemName.substring(0, 1).toUpperCase() + elemName.substring(1);
if (elem instanceof ResourceBlock) {
elem.setReferenceType(elemName);
}else {
elem.setReferenceType(elemName + "Dt");
}
} else {
elem.setReferenceType("IDatatype");
}
if (elem.isRepeatable()) {
elem.setReferenceType("List<" + elem.getReferenceType() + ">");
}
elements.put(elem.getName(), elem);
BaseElement parent = elements.get(elem.getElementParentName());
if (parent == null) {
throw new Exception("Can't find element " + elem.getElementParentName() + " - Valid values are: " + elements.keySet());
}
parent.getChildren().add(elem);
}
write(resource);
}
protected abstract void parseBasicElements(Element theResourceRow, BaseElement theElem);
public void setDirectory(String theDirectory) {
myDirectory = theDirectory;
}
public void setOutputFile(String theOutputFile) {
myOutputFile = theOutputFile;
}
static String cellValue(Node theRowXml, int theCellIndex) {
NodeList cells = ((Element) theRowXml).getElementsByTagName("Cell");
for (int i = 0, currentCell = 0; i < cells.getLength(); i++) {
Element nextCell = (Element) cells.item(i);
String indexVal = nextCell.getAttributeNS("urn:schemas-microsoft-com:office:spreadsheet", "Index");
if (StringUtils.isNotBlank(indexVal)) {
// 1-indexed for some reason...
currentCell = Integer.parseInt(indexVal) - 1;
}
if (currentCell == theCellIndex) {
NodeList dataElems = nextCell.getElementsByTagName("Data");
Element dataElem = (Element) dataElems.item(0);
if (dataElem == null) {
return null;
}
String retVal = dataElem.getTextContent();
return retVal;
}
currentCell++;
}
return null;
}
private void write(Resource theResource) throws IOException {
File f = new File(myOutputFile);
FileWriter w = new FileWriter(f, false);
VelocityContext ctx = new VelocityContext();
ctx.put("className", theResource.getName());
ctx.put("shortName", theResource.getShortName());
ctx.put("definition", theResource.getDefinition());
ctx.put("requirements", theResource.getRequirement());
ctx.put("children", theResource.getChildren());
ctx.put("resourceBlockChildren", theResource.getResourceBlockChildren());
VelocityEngine v = new VelocityEngine();
InputStream templateIs = ResourceParser.class.getResourceAsStream(getTemplate());
InputStreamReader templateReader = new InputStreamReader(templateIs);
v.evaluate(ctx, w, "", templateReader);
w.close();
}
protected abstract String getFilename();
protected abstract String getTemplate();
}

View File

@ -0,0 +1,60 @@
package ca.uhn.fhir.starter;
import java.util.Arrays;
import org.apache.commons.lang3.StringUtils;
import org.w3c.dom.Element;
import ca.uhn.fhir.starter.model.BaseElement;
public class DatatypeParser extends BaseParser {
private String myDatatypeName;
@Override
protected String getTemplate() {
return "/dt_composite.vm";
}
public void setDatatypeName(String theString) {
myDatatypeName=theString;
}
@Override
protected String getFilename() {
return myDatatypeName.toLowerCase() + ".xml";
}
@Override
protected void parseBasicElements(Element theRowXml, BaseElement theTarget) {
String name = cellValue(theRowXml, 0);
theTarget.setName(name);
int lastDot = name.lastIndexOf('.');
if (lastDot == -1) {
theTarget.setElementName(name);
} else {
String elementName = name.substring(lastDot + 1);
String elementParentName = name.substring(0, lastDot);
theTarget.setElementName(elementName);
theTarget.setElementParentName(elementParentName);
}
String cardValue = cellValue(theRowXml, 1);
if (cardValue != null && cardValue.contains("..")) {
String[] split = cardValue.split("\\.\\.");
theTarget.setCardMin(split[0]);
theTarget.setCardMax(split[1]);
}
String type = cellValue(theRowXml, 4);
theTarget.setTypeFromString(type);
theTarget.setShortName(cellValue(theRowXml, 6));
theTarget.setDefinition(cellValue(theRowXml, 7));
theTarget.setRequirement(cellValue(theRowXml, 6));
theTarget.setV2Mapping(cellValue(theRowXml, 13));
}
}

View File

@ -0,0 +1,80 @@
package ca.uhn.fhir.starter;
import java.util.Arrays;
import org.apache.commons.lang3.StringUtils;
import org.w3c.dom.Element;
import ca.uhn.fhir.starter.model.BaseElement;
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 String getTemplate() {
return "/resource.vm";
}
public static void main(String[] args) throws Exception {
ResourceParser p = new ResourceParser();
p.setDirectory("src/test/resources");
p.setResourceName("patient");
p.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/resource/Patient.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/datatype/HumanNameDt.java");
d.parse();
d.setDatatypeName ( "contact");
d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/ContactDt.java");
d.parse();
d.setDatatypeName ( "address");
d.setOutputFile("../hapi-fhir-base/src/main/java/ca/uhn/fhir/model/datatype/AddressDt.java");
d.parse();
}
@Override
protected void parseBasicElements(Element theRowXml, BaseElement theTarget) {
String name = cellValue(theRowXml, 0);
theTarget.setName(name);
int lastDot = name.lastIndexOf('.');
if (lastDot == -1) {
theTarget.setElementName(name);
} else {
String elementName = name.substring(lastDot + 1);
String elementParentName = name.substring(0, lastDot);
theTarget.setElementName(elementName);
theTarget.setElementParentName(elementParentName);
}
String cardValue = cellValue(theRowXml, 1);
if (cardValue != null && cardValue.contains("..")) {
String[] split = cardValue.split("\\.\\.");
theTarget.setCardMin(split[0]);
theTarget.setCardMax(split[1]);
}
String type = cellValue(theRowXml, 5);
theTarget.setTypeFromString(type);
theTarget.setShortName(cellValue(theRowXml, 7));
theTarget.setDefinition(cellValue(theRowXml, 8));
theTarget.setRequirement(cellValue(theRowXml, 9));
theTarget.setV2Mapping(cellValue(theRowXml, 14));
}
}

View File

@ -0,0 +1,151 @@
package ca.uhn.fhir.starter.model;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
public abstract class BaseElement {
private String myCardMax;
private String myCardMin;
private List<BaseElement> myChildren;
private String myComments;
private String myDefinition;
private String myElementName;
private String myElementParentName;
private String myName;
private String myRequirement;
private String myShortName;
private List<String> myType;
private String myV2Mapping;
public List<ResourceBlock> getResourceBlockChildren() {
ArrayList<ResourceBlock> retVal = new ArrayList<ResourceBlock>();
for (BaseElement next : getChildren()) {
if (next instanceof ResourceBlock) {
retVal.add((ResourceBlock) next);
}
}
return retVal;
}
public String getCardMax() {
return myCardMax;
}
public String getCardMin() {
return myCardMin;
}
public List<BaseElement> getChildren() {
if (myChildren == null) {
myChildren = new ArrayList<BaseElement>();
}
return myChildren;
}
public String getComments() {
return myComments;
}
public String getDefinition() {
return myDefinition;
}
public String getElementName() {
return myElementName;
}
public String getElementParentName() {
return myElementParentName;
}
public String getName() {
return myName;
}
public String getRequirement() {
return myRequirement;
}
public String getShortName() {
return myShortName;
}
public List<String> getType() {
if (myType==null) {
myType=new ArrayList<String>();
}
return myType;
}
public String getV2Mapping() {
return myV2Mapping;
}
public void setCardMax(String theCardMax) {
myCardMax = theCardMax;
}
public void setCardMin(String theCardMin) {
myCardMin = theCardMin;
}
public void setComments(String theComments) {
myComments = theComments;
}
public void setDefinition(String theDefinition) {
myDefinition = theDefinition;
}
public void setElementName(String theName) {
myElementName = theName;
}
public void setElementParentName(String theElementParentName) {
myElementParentName = theElementParentName;
}
public void setName(String theName) {
myName = theName;
}
public void setRequirement(String theString) {
myRequirement = theString;
}
public void setShortName(String theShortName) {
myShortName = theShortName;
}
public void setV2Mapping(String theV2Mapping) {
myV2Mapping = theV2Mapping;
}
private boolean myResourceRef = false;
public boolean isResourceRef() {
return myResourceRef;
}
public void setTypeFromString(String theType) {
if (theType==null) {
return;
}
String typeString = theType;
if (typeString.startsWith("Resource(")) {
typeString = typeString.substring("Resource(".length(), typeString.length() - 1);
}
if (StringUtils.isNotBlank(typeString)) {
String[] types = typeString.replace("=", "").split("\\|");
for (String string : types) {
getType().add(string.trim());
}
}
}
}

View File

@ -0,0 +1,43 @@
package ca.uhn.fhir.starter.model;
public class Child extends BaseElement {
private String myReferenceType;
public String getCardMaxForChildAnnotation() {
if (getCardMax().equals("*")) {
return "Child.MAX_UNLIMITED";
}else {
return getCardMax();
}
}
public String getReferenceType() {
return myReferenceType;
}
public void setReferenceType(String theReferenceType) {
myReferenceType = theReferenceType;
}
public boolean isRepeatable() {
return "1".equals(getCardMax()) == false;
}
public String getVariableName() {
String elementName = getMethodName();
return "my" + elementName;
}
public String getMethodName() {
String elementName = getElementName();
if (elementName.endsWith("[x]")) {
elementName = elementName.substring(0, elementName.length() - 3);
}
elementName = elementName.substring(0,1).toUpperCase() + elementName.substring(1);
return elementName;
}
}

View File

@ -0,0 +1,6 @@
package ca.uhn.fhir.starter.model;
public class Resource extends BaseElement {
}

View File

@ -0,0 +1,9 @@
package ca.uhn.fhir.starter.model;
public class ResourceBlock extends Child {
public String getClassName() {
return getElementName().substring(0,1).toUpperCase() + getElementName().substring(1);
}
}

View File

@ -0,0 +1,130 @@
package ca.uhn.fhir.starter.util;
import java.io.InputStream;
import java.io.StringWriter;
import java.io.Writer;
import org.w3c.dom.DOMConfiguration;
import org.w3c.dom.DOMErrorHandler;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.bootstrap.DOMImplementationRegistry;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSInput;
import org.w3c.dom.ls.LSOutput;
import org.w3c.dom.ls.LSParser;
import org.w3c.dom.ls.LSResourceResolver;
import org.w3c.dom.ls.LSSerializer;
public class XMLUtils {
private static DOMImplementation IMPL;
@SuppressWarnings("unchecked")
public synchronized static <T> T getDOMImpl() {
if (IMPL == null) {
try {
DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
IMPL = registry.getDOMImplementation("LS 3.0");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return (T) IMPL;
}
@SuppressWarnings("unchecked")
public static <T> T getDOMImplUncached() {
try {
DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
return (T) registry.getDOMImplementation("LS 3.0");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static Document parse(String s) {
return parse(s, false);
}
public static Document parse(String s, boolean validateIfSchema) {
DOMImplementationLS impl = getDOMImpl();
LSInput input = impl.createLSInput();
input.setStringData(s);
return parse(input, validateIfSchema);
}
public static Document parse(InputStream s, boolean validateIfSchema) {
DOMImplementationLS impl = getDOMImpl();
LSInput input = impl.createLSInput();
input.setByteStream(s);
return parse(input, validateIfSchema);
}
private static Document parse(LSInput input, boolean validateIfSchema) {
DOMImplementationLS impl = getDOMImpl();
LSParser parser = impl.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS, null);
DOMConfiguration config = parser.getDomConfig();
config.setParameter("element-content-whitespace", false);
config.setParameter("namespaces", true);
config.setParameter("validate-if-schema", validateIfSchema);
return parser.parse(input);
}
public static void validate(Document d, String schema, DOMErrorHandler handler) {
DOMConfiguration config = d.getDomConfig();
config.setParameter("schema-type", "http://www.w3.org/2001/XMLSchema");
config.setParameter("validate", true);
config.setParameter("schema-location", schema);
config.setParameter("resource-resolver", new ClasspathResourceResolver());
config.setParameter("error-handler", handler);
d.normalizeDocument();
}
public static String serialize(Document document, boolean prettyPrint) {
DOMImplementationLS impl = getDOMImpl();
LSSerializer serializer = impl.createLSSerializer();
// document.normalizeDocument();
DOMConfiguration config = serializer.getDomConfig();
if (prettyPrint && config.canSetParameter("format-pretty-print", Boolean.TRUE)) {
config.setParameter("format-pretty-print", true);
}
config.setParameter("xml-declaration", true);
LSOutput output = impl.createLSOutput();
output.setEncoding("UTF-8");
Writer writer = new StringWriter();
output.setCharacterStream(writer);
serializer.write(document, output);
return writer.toString();
}
public static Document emptyDocument(String title) {
DOMImplementation impl = getDOMImpl();
Document doc = impl.createDocument("urn:hl7-org:v2xml", title, null);
return doc;
}
/**
* This is an implementation of LSResourceResolver that can resolve XML schemas from the
* classpath
*/
private static class ClasspathResourceResolver implements LSResourceResolver {
private DOMImplementationLS impl;
ClasspathResourceResolver() {
impl = getDOMImpl();
}
public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId,
String baseURI) {
LSInput lsInput = impl.createLSInput();
InputStream is = getClass().getResourceAsStream("/" + systemId);
if (is == null)
return null;
lsInput.setByteStream(is);
return lsInput;
}
}
}

View File

@ -0,0 +1,57 @@
package ca.uhn.fhir.model.datatype;
import java.util.*;
import ca.uhn.fhir.model.api.*;
import ca.uhn.fhir.model.api.annotation.*;
import ca.uhn.fhir.model.datatype.*;
/**
* HAPI/FHIR <b>${resourceName}</b> Datatype
* (${shortName})
*
* <p>
* <b>Definition:</b>
* ${definition}
* </p>
*
* <p>
* <b>Requirements:</b>
* ${requirements}
* </p>
*/
@DatatypeDef(name="${className}")
public class ${className}Dt extends BaseCompositeDatatype {
#foreach ( $child in $children )
@Child(name="${child.elementName}", order=${foreach.index}, min=${child.cardMin}, max=${child.cardMaxForChildAnnotation})
private ${child.referenceType} ${child.variableName};
#end
#foreach ( $child in $children )
/**
* Gets the value(s) for ${child.elementName} (${child.shortName})
*
* <p>
* <b>Definition:</b>
* ${child.definition}
* </p>
*/
public ${child.referenceType} get${child.methodName}() {
return ${child.variableName};
}
/**
* Sets the value(s) for ${child.elementName} (${child.shortName})
*
* <p>
* <b>Definition:</b>
* ${child.definition}
* </p>
*/
public void set${child.methodName}(${child.referenceType} theValue) {
${child.variableName} = theValue;
}
#end
}

View File

@ -0,0 +1,65 @@
package ca.uhn.fhir.model.resource;
import java.util.*;
import ca.uhn.fhir.model.api.*;
import ca.uhn.fhir.model.api.annotation.*;
import ca.uhn.fhir.model.datatype.*;
/**
* HAPI/FHIR <b>${className}</b> Resource
* (${shortName})
*
* <p>
* <b>Definition:</b>
* ${definition}
* </p>
*
* <p>
* <b>Requirements:</b>
* ${requirements}
* </p>
*/
@ResourceDef(name="${resourceName}")
public class ${className} extends BaseResource {
#foreach ( $child in $children )
@Child(name="${child.elementName}", order=${foreach.index}, min=${child.cardMin}, max=${child.cardMaxForChildAnnotation})
private ${child.referenceType} ${child.variableName};
#end
#foreach ( $child in $children )
/**
* Gets the value(s) for ${child.elementName} (${child.shortName})
*
* <p>
* <b>Definition:</b>
* ${child.definition}
* </p>
*/
public ${child.referenceType} get${child.methodName}() {
return ${child.variableName};
}
/**
* Sets the value(s) for ${child.elementName} (${child.shortName})
*
* <p>
* <b>Definition:</b>
* ${child.definition}
* </p>
*/
public void set${child.methodName}(${child.referenceType} theValue) {
${child.variableName} = theValue;
}
#end
#foreach ( $child in $resourceBlockChildren )
@Block(name="${child.name}")
public static class ${child.className} {
}
#end
}

View File

@ -0,0 +1,481 @@
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>Grahame</Author>
<LastAuthor>Grahame</LastAuthor>
<Created>2012-03-19T08:56:59Z</Created>
<LastSaved>2013-01-19T19:20:27Z</LastSaved>
<Version>14.00</Version>
</DocumentProperties>
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
<AllowPNG/>
</OfficeDocumentSettings>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>11640</WindowHeight>
<WindowWidth>27495</WindowWidth>
<WindowTopX>630</WindowTopX>
<WindowTopY>630</WindowTopY>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s62" ss:Name="Normal 2">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s63" ss:Name="Normal 3">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s64">
<Alignment ss:Vertical="Top" ss:ShrinkToFit="1" ss:WrapText="1"/>
</Style>
<Style ss:ID="s65">
<Alignment ss:Vertical="Top" ss:ShrinkToFit="1" ss:WrapText="1"/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
ss:Bold="1"/>
</Style>
<Style ss:ID="s66">
<Alignment ss:Vertical="Top" ss:ShrinkToFit="1" ss:WrapText="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
ss:Bold="1"/>
<Interior ss:Color="#F2F2F2" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s67">
<Alignment ss:Vertical="Top" ss:ShrinkToFit="1" ss:WrapText="1"/>
<Interior ss:Color="#D9D9D9" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s68">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
ss:WrapText="1"/>
</Style>
<Style ss:ID="s70" ss:Parent="s63">
<Alignment ss:Vertical="Top" ss:WrapText="1"/>
<Interior/>
</Style>
<Style ss:ID="s72" ss:Parent="s62">
<Alignment ss:Vertical="Top" ss:WrapText="1"/>
<Borders/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s73">
<Alignment ss:Vertical="Top"/>
</Style>
<Style ss:ID="s74">
<Alignment ss:Vertical="Top"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
ss:Bold="1"/>
<Interior ss:Color="#F2F2F2" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s75">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
ss:WrapText="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
ss:Bold="1"/>
<Interior ss:Color="#EEECE1" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s76">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
ss:WrapText="1"/>
<Borders/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
ss:Bold="1"/>
<Interior ss:Color="#EEECE1" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s77">
<Alignment ss:Vertical="Bottom" ss:WrapText="1"/>
</Style>
<Style ss:ID="s78">
<Font ss:FontName="Verdana" x:Family="Swiss" ss:Size="9" ss:Color="#333333"
ss:Bold="1"/>
</Style>
</Styles>
<Worksheet ss:Name="Data Elements">
<Table ss:ExpandedColumnCount="18" ss:ExpandedRowCount="10" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s64" ss:DefaultRowHeight="15">
<Column ss:StyleID="s65" ss:AutoFitWidth="0" ss:Width="102"/>
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="42"/>
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="33.75" ss:Span="1"/>
<Column ss:Index="5" ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="63.75"/>
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="96.75"/>
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="101.25"/>
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="216.75"/>
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="100.5"/>
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="129.75"/>
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="128.25" ss:Span="1"/>
<Column ss:Index="13" ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="120.75"/>
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="67.5" ss:Span="2"/>
<Column ss:Index="17" ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="84.75"/>
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="73.5"/>
<Row ss:AutoFitHeight="0" ss:Height="60" ss:StyleID="s66">
<Cell><Data ss:Type="String">Element</Data></Cell>
<Cell><Data ss:Type="String">Card.</Data></Cell>
<Cell><Data ss:Type="String">Inv.</Data></Cell>
<Cell><Data ss:Type="String">Is Modifier</Data></Cell>
<Cell><Data ss:Type="String">Type</Data></Cell>
<Cell><Data ss:Type="String">Binding</Data></Cell>
<Cell><Data ss:Type="String">Short Name</Data></Cell>
<Cell><Data ss:Type="String">Definition</Data></Cell>
<Cell><Data ss:Type="String">Example</Data></Cell>
<Cell><Data ss:Type="String">Requirements</Data></Cell>
<Cell><Data ss:Type="String">Comments</Data></Cell>
<Cell><Data ss:Type="String">Aliases</Data></Cell>
<Cell><Data ss:Type="String">RIM Mapping</Data></Cell>
<Cell><Data ss:Type="String">v2 Mapping</Data></Cell>
<Cell><Data ss:Type="String">vCard Mapping</Data></Cell>
<Cell><Data ss:Type="String">ServD Mapping</Data></Cell>
<Cell><Data ss:Type="String">To Do</Data></Cell>
<Cell><Data ss:Type="String">Committee Notes</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="60">
<Cell><Data ss:Type="String">Address</Data></Cell>
<Cell ss:StyleID="s67"/>
<Cell ss:StyleID="s67"/>
<Cell ss:StyleID="s67"/>
<Cell><Data ss:Type="String">Structure</Data></Cell>
<Cell ss:Index="7"><Data ss:Type="String">A postal address</Data></Cell>
<Cell><Data ss:Type="String">There is a variety of postal address formats defined around the world. This format defines a superset that is the basis for all addresses around the world </Data></Cell>
<Cell ss:Index="10"><Data ss:Type="String">Need to be able to record postal addresses, along with notes about their use</Data></Cell>
<Cell><Data ss:Type="String">Note: address is for postal addresses, not physical locations</Data></Cell>
<Cell ss:Index="13"><Data ss:Type="String">AD</Data></Cell>
<Cell><Data ss:Type="String">XAD</Data></Cell>
<Cell ss:Index="16"><Data ss:Type="String">Address</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell><Data ss:Type="String">Address.use</Data></Cell>
<Cell><Data ss:Type="String">0..1</Data></Cell>
<Cell ss:Index="4"><Data ss:Type="String">Y</Data></Cell>
<Cell><Data ss:Type="String">code</Data></Cell>
<Cell><Data ss:Type="String">AddressUse</Data></Cell>
<Cell><Data ss:Type="String">home | work | temp | old - purpose of this address</Data></Cell>
<Cell><Data ss:Type="String">The purpose of this address</Data></Cell>
<Cell><Data ss:Type="String">Home, Work</Data></Cell>
<Cell><Data ss:Type="String">Allows an appropriate address to be chosen from a list of many</Data></Cell>
<Cell ss:StyleID="s68"><Data ss:Type="String">This is labeled as &quot;Is Modifier&quot; because applications should not mistake a temporary or old address etc for a current/permanent one. Applications can assume that an address is current unless it explicitly says that it is temporary or old</Data></Cell>
<Cell ss:Index="13"><Data ss:Type="String">unique(./use)</Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String">XAD.7</Data></Cell>
<Cell ss:Index="16"><Data ss:Type="String">./AddressPurpose</Data></Cell>
<Cell ss:Index="18"><Data ss:Type="String">Is it outside the 80% for this to repeat?</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell><Data ss:Type="String">Address.text</Data></Cell>
<Cell><Data ss:Type="String">0..1</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String">string</Data></Cell>
<Cell ss:Index="7"><Data ss:Type="String">Text representation of the address</Data></Cell>
<Cell><Data ss:Type="String">A full text representation of the address</Data></Cell>
<Cell><Data ss:Type="String">137 Nowhere Street, Erewhon 9132</Data></Cell>
<Cell><Data ss:Type="String">A renderable, unencoded form</Data></Cell>
<Cell><Data ss:Type="String">Can provide both a text representation and parts</Data></Cell>
<Cell ss:Index="13"><Data ss:Type="String">./formatted</Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String">XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell><Data ss:Type="String">Address.line</Data></Cell>
<Cell><Data ss:Type="String">0..*</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String">string</Data></Cell>
<Cell ss:Index="7"><Data ss:Type="String">Street name, number, direction &amp; P.O. Box etc </Data></Cell>
<Cell ss:StyleID="s72"><Data ss:Type="String">This component contains the house number, apartment number, street name, street direction, &#10;P.O. Box number, delivery hints, and similar address information</Data></Cell>
<Cell ss:Index="10"><Data ss:Type="String">home | work | temp | old - purpose of this address</Data></Cell>
<Cell ss:Index="13"><Data ss:Type="String">AD.part[parttype = AL]</Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String">XAD.1 + XAD.2 (note: XAD.1 and XAD.2 have different meanings for a company address than for a person address)&#10;</Data></Cell>
<Cell><Data ss:Type="String">street address</Data></Cell>
<Cell><Data ss:Type="String">./StreetAddress (newline delimitted)</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell><Data ss:Type="String">Address.city</Data></Cell>
<Cell><Data ss:Type="String">0..1</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String">string</Data></Cell>
<Cell ss:Index="7"><Data ss:Type="String">Name of city, town etc.</Data></Cell>
<Cell ss:StyleID="s72"><Data ss:Type="String">The name of the city, town, village or other community or delivery center.</Data></Cell>
<Cell ss:Index="12"><Data ss:Type="String">Muncipality</Data></Cell>
<Cell><Data ss:Type="String">AD.part[parttype = CTY]</Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String">XAD.3</Data></Cell>
<Cell><Data ss:Type="String">locality</Data></Cell>
<Cell><Data ss:Type="String">./Jurisdiction</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="60">
<Cell><Data ss:Type="String">Address.state</Data></Cell>
<Cell><Data ss:Type="String">0..1</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String">string</Data></Cell>
<Cell ss:Index="7"><Data ss:Type="String">Sub-unit of country (abreviations ok)</Data></Cell>
<Cell ss:StyleID="s72"><Data ss:Type="String">Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes).</Data></Cell>
<Cell ss:Index="12"><Data ss:Type="String">Province, Territory</Data></Cell>
<Cell><Data ss:Type="String">AD.part[parttype = STA]</Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String">XAD.4</Data></Cell>
<Cell><Data ss:Type="String">region</Data></Cell>
<Cell><Data ss:Type="String">./Region</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell><Data ss:Type="String">Address.zip</Data></Cell>
<Cell><Data ss:Type="String">0..1</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String">string</Data></Cell>
<Cell ss:Index="7"><Data ss:Type="String">Postal code for area</Data></Cell>
<Cell ss:StyleID="s72"><Data ss:Type="String">A postal code designating a region defined by the postal service.</Data></Cell>
<Cell ss:Index="12"><Data ss:Type="String">PostCode</Data></Cell>
<Cell><Data ss:Type="String">AD.part[parttype = ZIP]</Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String">XAD.5</Data></Cell>
<Cell><Data ss:Type="String">postal code</Data></Cell>
<Cell><Data ss:Type="String">./PostalIdentificationCode</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell><Data ss:Type="String">Address.country</Data></Cell>
<Cell><Data ss:Type="String">0..1</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String">string</Data></Cell>
<Cell ss:Index="7"><Data ss:Type="String">Country (can be ISO 3166 3 letter code)</Data></Cell>
<Cell ss:StyleID="s72"><Data ss:Type="String">Country - a nation as commonly understood or generally accepted</Data></Cell>
<Cell ss:Index="11"><Data ss:Type="String">ISO 3166 3 letter codes can be used in place of a full country name.</Data></Cell>
<Cell ss:Index="13"><Data ss:Type="String">AD.part[parttype = CNT]</Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String">XAD.6</Data></Cell>
<Cell><Data ss:Type="String">country name</Data></Cell>
<Cell><Data ss:Type="String">./Country</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell><Data ss:Type="String">Address.period</Data></Cell>
<Cell><Data ss:Type="String">0..1</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String">Period</Data></Cell>
<Cell ss:Index="7"><Data ss:Type="String">Time period when address was/is in use</Data></Cell>
<Cell><Data ss:Type="String">Time period when address was/is in use</Data></Cell>
<Cell><Data ss:Type="String">23-Mar 2010 -&gt; 1-Jul 2010</Data></Cell>
<Cell><Data ss:Type="String">Allows addresses to be placed in historical context</Data></Cell>
<Cell ss:Index="13"><Data ss:Type="String">./usablePeriod[type=&quot;IVL&lt;TS&gt;&quot;]</Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String">XAD.12 / XAD.13 + XAD.14&#10;</Data></Cell>
<Cell ss:Index="16"><Data ss:Type="String">./StartDate and ./EndDate</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Print>
<ValidPrinterInfo/>
<PaperSizeIndex>9</PaperSizeIndex>
<HorizontalResolution>600</HorizontalResolution>
<VerticalResolution>300</VerticalResolution>
</Print>
<Selected/>
<FreezePanes/>
<SplitHorizontal>1</SplitHorizontal>
<TopRowBottomPane>1</TopRowBottomPane>
<SplitVertical>5</SplitVertical>
<LeftColumnRightPane>5</LeftColumnRightPane>
<ActivePane>0</ActivePane>
<Panes>
<Pane>
<Number>3</Number>
</Pane>
<Pane>
<Number>1</Number>
<ActiveCol>4</ActiveCol>
</Pane>
<Pane>
<Number>2</Number>
<ActiveRow>0</ActiveRow>
</Pane>
<Pane>
<Number>0</Number>
<ActiveRow>8</ActiveRow>
<ActiveCol>7</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Invariants">
<Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="2" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s73" ss:DefaultRowHeight="15">
<Column ss:StyleID="s73" ss:AutoFitWidth="0" ss:Width="24"/>
<Column ss:StyleID="s73" ss:AutoFitWidth="0" ss:Width="125.25"/>
<Column ss:StyleID="s73" ss:Width="42.75"/>
<Column ss:StyleID="s73" ss:AutoFitWidth="0" ss:Width="392.25"/>
<Column ss:StyleID="s73" ss:AutoFitWidth="0" ss:Width="329.25"/>
<Column ss:StyleID="s73" ss:AutoFitWidth="0" ss:Width="230.25"/>
<Row ss:AutoFitHeight="0" ss:StyleID="s74">
<Cell><Data ss:Type="String">Id</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">Name</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">Context</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">English</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">OCL</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">XPath</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell ss:Index="2" ss:StyleID="s64"/>
<Cell ss:StyleID="s64"/>
<Cell ss:StyleID="s68"/>
<Cell ss:StyleID="s64"/>
<Cell ss:StyleID="s64"/>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Print>
<ValidPrinterInfo/>
<PaperSizeIndex>9</PaperSizeIndex>
<HorizontalResolution>600</HorizontalResolution>
<VerticalResolution>0</VerticalResolution>
</Print>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>1</ActiveRow>
<RangeSelection>R2</RangeSelection>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Bindings">
<Table ss:ExpandedColumnCount="8" ss:ExpandedRowCount="2" x:FullColumns="1"
x:FullRows="1" ss:DefaultRowHeight="15">
<Column ss:AutoFitWidth="0" ss:Width="83.25"/>
<Column ss:AutoFitWidth="0" ss:Width="117"/>
<Column ss:AutoFitWidth="0" ss:Width="87.75"/>
<Column ss:AutoFitWidth="0" ss:Width="147.75"/>
<Column ss:AutoFitWidth="0" ss:Width="224.25"/>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s75"><Data ss:Type="String">Binding Name</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">Definition</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">Binding</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">Reference</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">Description</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">v3</Data></Cell>
<Cell ss:StyleID="s76"><Data ss:Type="String">v2</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s77"><Data ss:Type="String">AddressUse</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">The use of an address</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">code list</Data></Cell>
<Cell ss:StyleID="s77"><Data ss:Type="String">#address-use</Data></Cell>
<Cell ss:Index="6" ss:StyleID="s78"><Data ss:Type="String">http://hl7.org/fhir/v3/vs/AddressUse</Data></Cell>
<Cell ss:StyleID="s78"><Data ss:Type="String">http://hl7.org/fhir/v2/vs/0190</Data></Cell>
<Cell ss:StyleID="s75"/>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>2</ActiveRow>
<ActiveCol>5</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="address-use">
<Table ss:ExpandedColumnCount="7" ss:ExpandedRowCount="5" x:FullColumns="1"
x:FullRows="1" ss:DefaultRowHeight="15">
<Column ss:Index="3" ss:AutoFitWidth="0" ss:Width="429"/>
<Column ss:AutoFitWidth="0" ss:Width="167.25"/>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s75"><Data ss:Type="String">Id</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">Code</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">Definition</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">v3</Data></Cell>
<Cell ss:StyleID="s75"><Data ss:Type="String">v2</Data></Cell>
<Cell ss:StyleID="s75"/>
<Cell ss:StyleID="s75"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="Number">1</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">home</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">A communication address at a home</Data></Cell>
<Cell><Data ss:Type="String" x:Ticked="1">=AddressUse.H</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">~0190.H</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="Number">2</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">work</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">An office address. First choice for business related contacts during business hours</Data></Cell>
<Cell><Data ss:Type="String" x:Ticked="1">=AddressUse.WP</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">~0190.O</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="Number">3</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">temp</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">A temporary address. The period can provide more detailed information</Data></Cell>
<Cell><Data ss:Type="String" x:Ticked="1">=AddressUse.TMP</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">~0190.C</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="Number">4</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">old</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String">This address is no longer in use (or was never correct, but retained for records)</Data></Cell>
<Cell><Data ss:Type="String" x:Ticked="1">&gt;AddressUse.OLD,&gt;AddressUse.BAD</Data></Cell>
<Cell ss:StyleID="s62"><Data ss:Type="String" x:Ticked="1">&gt;0190.BA (unclear about old addresses)</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Print>
<ValidPrinterInfo/>
<PaperSizeIndex>9</PaperSizeIndex>
<HorizontalResolution>300</HorizontalResolution>
<VerticalResolution>300</VerticalResolution>
</Print>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>3</ActiveRow>
<ActiveCol>2</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>

View File

@ -0,0 +1,435 @@
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>Grahame</Author>
<LastAuthor>Grahame</LastAuthor>
<Created>2012-03-19T11:23:53Z</Created>
<Version>14.00</Version>
</DocumentProperties>
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
<AllowPNG/>
</OfficeDocumentSettings>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>9075</WindowHeight>
<WindowWidth>25335</WindowWidth>
<WindowTopX>2790</WindowTopX>
<WindowTopY>3195</WindowTopY>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s62" ss:Name="Normal 2">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s63">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
ss:WrapText="1"/>
</Style>
<Style ss:ID="s64">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
ss:WrapText="1"/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
ss:Bold="1"/>
</Style>
<Style ss:ID="s65">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
ss:WrapText="1"/>
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
</Borders>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
ss:Bold="1"/>
<Interior ss:Color="#EEECE1" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s66">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
ss:WrapText="1"/>
<Interior ss:Color="#F2F2F2" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s67">
<Alignment ss:Vertical="Top" ss:ShrinkToFit="1" ss:WrapText="1"/>
</Style>
<Style ss:ID="s68">
<Alignment ss:Vertical="Top" ss:WrapText="1"/>
<Borders/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s69">
<Alignment ss:Vertical="Bottom" ss:WrapText="1"/>
</Style>
<Style ss:ID="s70">
<Font ss:FontName="Verdana" x:Family="Swiss" ss:Size="9" ss:Color="#333333"/>
</Style>
<Style ss:ID="s71">
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
</Style>
<Style ss:ID="s72">
<Alignment ss:Vertical="Top" ss:WrapText="1"/>
</Style>
<Style ss:ID="s74" ss:Parent="s62">
<Alignment ss:Vertical="Top" ss:WrapText="1"/>
<Borders/>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
</Styles>
<Worksheet ss:Name="Data Elements">
<Table ss:ExpandedColumnCount="15" ss:ExpandedRowCount="6" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s63" ss:DefaultRowHeight="15">
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="79.5"/>
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="33" ss:Span="1"/>
<Column ss:Index="4" ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="36"/>
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="57"/>
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="77.25"/>
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="213.75" ss:Span="1"/>
<Column ss:Index="9" ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="161.25"
ss:Span="1"/>
<Column ss:Index="11" ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="135"
ss:Span="2"/>
<Row ss:AutoFitHeight="0" ss:Height="30" ss:StyleID="s65">
<Cell><Data ss:Type="String">Element</Data></Cell>
<Cell><Data ss:Type="String">Card.</Data></Cell>
<Cell><Data ss:Type="String">Inv.</Data></Cell>
<Cell><Data ss:Type="String">Is Modifier</Data></Cell>
<Cell><Data ss:Type="String">Type</Data></Cell>
<Cell><Data ss:Type="String">Binding</Data></Cell>
<Cell><Data ss:Type="String">Short Name</Data></Cell>
<Cell><Data ss:Type="String">Definition</Data></Cell>
<Cell><Data ss:Type="String">Requirements</Data></Cell>
<Cell><Data ss:Type="String">Comments</Data></Cell>
<Cell><Data ss:Type="String">RIM Mapping</Data></Cell>
<Cell><Data ss:Type="String">v2 Mapping</Data></Cell>
<Cell><Data ss:Type="String">ServD Mapping</Data></Cell>
<Cell><Data ss:Type="String">To Do</Data></Cell>
<Cell><Data ss:Type="String">Committee Notes</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell><Data ss:Type="String">Contact</Data></Cell>
<Cell ss:StyleID="s66"/>
<Cell ss:StyleID="s66"/>
<Cell ss:StyleID="s66"/>
<Cell><Data ss:Type="String">Structure</Data></Cell>
<Cell ss:Index="7"><Data ss:Type="String">Technology mediated contact details (phone, fax, email, etc)</Data></Cell>
<Cell><Data ss:Type="String">All kinds of technology mediated contact details for a person or organization, including telephone, email, etc.</Data></Cell>
<Cell><Data ss:Type="String">Need to track phone, fax, mobile, sms numbers, email addresses, twitter tags, etc.</Data></Cell>
<Cell ss:Index="11"><Data ss:Type="String">TEL</Data></Cell>
<Cell><Data ss:Type="String">XTN</Data></Cell>
<Cell><Data ss:Type="String">ContactPoint</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="42.75">
<Cell><Data ss:Type="String">Contact.system</Data></Cell>
<Cell><Data ss:Type="String">0..1</Data></Cell>
<Cell><Data ss:Type="Number">2</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String">code</Data></Cell>
<Cell><Data ss:Type="String">ContactSystem</Data></Cell>
<Cell><Data ss:Type="String">phone | fax | email | url</Data></Cell>
<Cell><Data ss:Type="String">Telecommunications form for contact - what communications system is required to make use of the contact</Data></Cell>
<Cell ss:Index="11"><Data ss:Type="String">./scheme</Data></Cell>
<Cell><Data ss:Type="String">XTN.3</Data></Cell>
<Cell><Data ss:Type="String">./ContactPointType</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="75">
<Cell><Data ss:Type="String">Contact.value</Data></Cell>
<Cell><Data ss:Type="String">0..1</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String">string</Data></Cell>
<Cell ss:Index="7"><Data ss:Type="String">The actual contact details</Data></Cell>
<Cell><Data ss:Type="String">The actual contact details, in a form that is meaningful to the designated communication system (i.e. phone number or email address).</Data></Cell>
<Cell><Data ss:Type="String">Need to support legacy numbers that are not in a tightly controlled format </Data></Cell>
<Cell><Data ss:Type="String">Additional out of band data such as extensions, or notes about use of the contact are sometimes included in the value</Data></Cell>
<Cell><Data ss:Type="String">./url</Data></Cell>
<Cell><Data ss:Type="String">XTN.1 (or XTN.12)</Data></Cell>
<Cell><Data ss:Type="String">./Value</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="60">
<Cell><Data ss:Type="String">Contact.use</Data></Cell>
<Cell><Data ss:Type="String">0..1</Data></Cell>
<Cell ss:Index="4"><Data ss:Type="String">Y</Data></Cell>
<Cell><Data ss:Type="String">code</Data></Cell>
<Cell><Data ss:Type="String">ContactUse</Data></Cell>
<Cell><Data ss:Type="String">home | work | temp | old | mobile - purpose of this address</Data></Cell>
<Cell><Data ss:Type="String">Identifies the purpose for the address</Data></Cell>
<Cell><Data ss:Type="String">Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose</Data></Cell>
<Cell><Data ss:Type="String">This is labeled as &quot;Is Modifier&quot; because applications should not mistake a temporary or old contact etc for a current/permanent one. Applications can assume that a contact is current unless it explicitly says that it is temporary or old</Data></Cell>
<Cell><Data ss:Type="String">unique(./use)</Data></Cell>
<Cell><Data ss:Type="String">XTN.2 - but often indicated by field</Data></Cell>
<Cell><Data ss:Type="String">./ContactPointPurpose</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell><Data ss:Type="String">Contact.period</Data></Cell>
<Cell><Data ss:Type="String">0..1</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String">Period</Data></Cell>
<Cell ss:Index="7"><Data ss:Type="String">Time period when the contact was/is in use</Data></Cell>
<Cell><Data ss:Type="String">Time period when the contact was/is in use</Data></Cell>
<Cell ss:Index="11"><Data ss:Type="String">./useablePeriod[type=&quot;IVL&lt;TS&gt;&quot;]</Data></Cell>
<Cell><Data ss:Type="String">N/A</Data></Cell>
<Cell><Data ss:Type="String">./StartDate and ./EndDate</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Selected/>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>4</ActiveRow>
<ActiveCol>9</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Invariants">
<Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="2" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s67" ss:DefaultColumnWidth="330"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s67" ss:AutoFitWidth="0" ss:Width="33.75"/>
<Column ss:StyleID="s67" ss:AutoFitWidth="0" ss:Width="136.5" ss:Span="1"/>
<Row ss:AutoFitHeight="0" ss:StyleID="s65">
<Cell><Data ss:Type="String">Id</Data></Cell>
<Cell><Data ss:Type="String">Name</Data></Cell>
<Cell><Data ss:Type="String">Context</Data></Cell>
<Cell><Data ss:Type="String">English</Data></Cell>
<Cell><Data ss:Type="String">OCL</Data></Cell>
<Cell><Data ss:Type="String">XPath</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="Number">2</Data></Cell>
<Cell><Data ss:Type="String">System is required</Data></Cell>
<Cell><Data ss:Type="String">Contact</Data></Cell>
<Cell ss:StyleID="s68"><ss:Data ss:Type="String"
xmlns="http://www.w3.org/TR/REC-html40"><Font html:Color="#000000">A </Font><I><Font
html:Color="#000000">system</Font></I><Font html:Color="#000000"> is required if a </Font><I><Font
html:Color="#000000">value</Font></I><Font html:Color="#000000"> is provided.</Font></ss:Data></Cell>
<Cell><Data ss:Type="String">value.oclIsDefined implies system.oclIsDefined</Data></Cell>
<Cell><Data ss:Type="String">not(exists(f:value)) or exists(f:system)</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>1</ActiveRow>
<RangeSelection>R2</RangeSelection>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Bindings">
<Table ss:ExpandedColumnCount="7" ss:ExpandedRowCount="3" x:FullColumns="1"
x:FullRows="1" ss:DefaultRowHeight="15">
<Column ss:AutoFitWidth="0" ss:Width="97.5"/>
<Column ss:AutoFitWidth="0" ss:Width="164.25"/>
<Column ss:AutoFitWidth="0" ss:Width="54.75"/>
<Column ss:AutoFitWidth="0" ss:Width="135.75"/>
<Column ss:AutoFitWidth="0" ss:Width="242.25"/>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s65"><Data ss:Type="String">Binding Name</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">Definition</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">Binding</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">Reference</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">Description</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">v2</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">v3</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s69"><Data ss:Type="String">ContactSystem</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">Telecommunications form for contact</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">code list</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">#contact-system</Data></Cell>
<Cell ss:Index="6" ss:StyleID="s70"><Data ss:Type="String">http://hl7.org/fhir/v2/vs/0202</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s69"><Data ss:Type="String">ContactUse</Data></Cell>
<Cell ss:StyleID="s71"><Data ss:Type="String">Location, type or status of telecommunications address indicating use</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">code list</Data></Cell>
<Cell ss:StyleID="s69"><Data ss:Type="String">#contact-use</Data></Cell>
<Cell ss:Index="6"><Data ss:Type="String">http://hl7.org/fhir/v2/vs/0201</Data></Cell>
<Cell ss:StyleID="s70"><Data ss:Type="String">http://hl7.org/fhir/v3/vs/AddressUse</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Print>
<ValidPrinterInfo/>
<PaperSizeIndex>9</PaperSizeIndex>
<HorizontalResolution>300</HorizontalResolution>
<VerticalResolution>300</VerticalResolution>
</Print>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>4</ActiveRow>
<ActiveCol>6</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="contact-use">
<Table ss:ExpandedColumnCount="7" ss:ExpandedRowCount="6" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s72" ss:DefaultRowHeight="15">
<Column ss:Index="2" ss:StyleID="s72" ss:AutoFitWidth="0" ss:Width="86.25"/>
<Column ss:StyleID="s72" ss:AutoFitWidth="0" ss:Width="511.5"/>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s65"><Data ss:Type="String">Id</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">Code</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">Definition</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">v2</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">v3</Data></Cell>
<Cell ss:StyleID="s65"/>
<Cell ss:StyleID="s65"/>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell><Data ss:Type="Number">1</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">home</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">A communication contact at a home; attempted contacts for business purposes might intrude privacy and chances are one will contact family or other household members instead of the person one wishes to call. Typically used with urgent cases, or if no other contacts are available.</Data></Cell>
<Cell><Data ss:Type="String" x:Ticked="1">&gt;0201.PRN,&gt;0201.ORN,&gt;0201.VHN</Data></Cell>
<Cell><Data ss:Type="String" x:Ticked="1">=AddressUse.H</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="Number">2</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">work</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">An office contact. First choice for business related contacts during business hours.</Data></Cell>
<Cell><Data ss:Type="String">~0201.WPN</Data></Cell>
<Cell><Data ss:Type="String" x:Ticked="1">=AddressUse.WP</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="Number">3</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">temp</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">A temporary contact. The period can provide more detailed information.</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String" x:Ticked="1">=AddressUse.TMP</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="Number">4</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">old</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">This contact is no longer in use (or was never correct, but retained for records)</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String" x:Ticked="1">&gt;AddressUse.OLD,&gt;AddressUse.BAD</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell><Data ss:Type="Number">5</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">mobile</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">A telecommunication device that moves and stays with its owner. May have characteristics of all other use codes, suitable for urgent matters, not the first choice for routine business</Data></Cell>
<Cell><Data ss:Type="String">~0201.PRS</Data></Cell>
<Cell><Data ss:Type="String" x:Ticked="1">=AddressUse.MC</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>1</ActiveRow>
<ActiveCol>1</ActiveCol>
<RangeSelection>R2C2:R6C2</RangeSelection>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="contact-system">
<Table ss:ExpandedColumnCount="7" ss:ExpandedRowCount="5" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s72" ss:DefaultRowHeight="15">
<Column ss:Index="3" ss:StyleID="s72" ss:AutoFitWidth="0" ss:Width="491.25"/>
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="String">Id</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">Code</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">Definition</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">v2</Data></Cell>
<Cell ss:StyleID="s65"/>
<Cell ss:StyleID="s65"/>
<Cell ss:StyleID="s65"/>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell><Data ss:Type="Number">1</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">phone</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">The value is a telephone number used for voice calls. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required.</Data></Cell>
<Cell><Data ss:Type="String">~0202.PH</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell><Data ss:Type="Number">2</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">fax</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">The value is a fax machine. Use of full international numbers starting with + is recommended to enable automatic dialing support but not required.</Data></Cell>
<Cell><Data ss:Type="String">~0202.FX</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell><Data ss:Type="Number">3</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">email</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">The value is an email address</Data></Cell>
<Cell><Data ss:Type="String" x:Ticked="1">&lt;0202.Internet (use mailto: protocol)</Data></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell><Data ss:Type="Number">4</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">url</Data></Cell>
<Cell ss:StyleID="s74"><Data ss:Type="String">The value is a url. This is intended for various personal contacts including blogs, Twitter, Facebook, etc. Do not use for email addresses</Data></Cell>
<Cell><Data ss:Type="String">&lt;0202.Internet</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>1</ActiveRow>
<ActiveCol>1</ActiveCol>
<RangeSelection>R2C2:R5C2</RangeSelection>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>

View File

@ -0,0 +1,750 @@
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>Grahame</Author>
<LastAuthor>Grahame</LastAuthor>
<Created>2012-03-19T11:22:15Z</Created>
<LastSaved>2013-12-01T20:02:05Z</LastSaved>
<Version>14.00</Version>
</DocumentProperties>
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
<AllowPNG />
</OfficeDocumentSettings>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>8220</WindowHeight>
<WindowWidth>24615</WindowWidth>
<WindowTopX>3510</WindowTopX>
<WindowTopY>4050</WindowTopY>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom" />
<Borders />
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000" />
<Interior />
<NumberFormat />
<Protection />
</Style>
<Style ss:ID="s62" ss:Name="Normal 2">
<Alignment ss:Vertical="Bottom" />
<Borders />
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000" />
<Interior />
<NumberFormat />
<Protection />
</Style>
<Style ss:ID="s63">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1" ss:WrapText="1" />
</Style>
<Style ss:ID="s64">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1" ss:WrapText="1" />
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000" ss:Bold="1" />
</Style>
<Style ss:ID="s65">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1" ss:WrapText="1" />
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" />
</Borders>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000" ss:Bold="1" />
<Interior ss:Color="#EEECE1" ss:Pattern="Solid" />
</Style>
<Style ss:ID="s66">
<Alignment ss:Vertical="Top" ss:ShrinkToFit="1" ss:WrapText="1" />
<Borders>
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" />
</Borders>
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000" ss:Bold="1" />
<Interior ss:Color="#F2F2F2" ss:Pattern="Solid" />
</Style>
<Style ss:ID="s67">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1" ss:WrapText="1" />
<Interior ss:Color="#F2F2F2" ss:Pattern="Solid" />
</Style>
<Style ss:ID="s69">
<Alignment ss:Vertical="Top" ss:ShrinkToFit="1" ss:WrapText="1" />
</Style>
<Style ss:ID="s70">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1" ss:WrapText="1" />
<Borders />
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000" ss:Bold="1" />
<Interior ss:Color="#EEECE1" ss:Pattern="Solid" />
</Style>
<Style ss:ID="s71">
<Alignment ss:Vertical="Bottom" ss:WrapText="1" />
</Style>
<Style ss:ID="s72">
<Font ss:FontName="Verdana" x:Family="Swiss" ss:Size="9" ss:Color="#333333" />
</Style>
<Style ss:ID="s73">
<Alignment ss:Vertical="Top" ss:WrapText="1" />
</Style>
<Style ss:ID="s75" ss:Parent="s62">
<Alignment ss:Vertical="Top" ss:WrapText="1" />
<Borders />
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000" />
<Interior />
<NumberFormat />
<Protection />
</Style>
<Style ss:ID="s76" ss:Parent="s62">
<Alignment ss:Vertical="Bottom" ss:WrapText="1" />
<Borders />
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000" />
<Interior />
<NumberFormat />
<Protection />
</Style>
<Style ss:ID="s78">
<Alignment ss:Horizontal="Right" ss:Vertical="Top" ss:WrapText="1" />
</Style>
<Style ss:ID="s79" ss:Parent="s62">
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:WrapText="1" />
<Borders />
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000" />
<Interior />
<NumberFormat />
<Protection />
</Style>
</Styles>
<Worksheet ss:Name="Data Elements">
<Table ss:ExpandedColumnCount="17" ss:ExpandedRowCount="12" x:FullColumns="1" x:FullRows="1" ss:StyleID="s63" ss:DefaultRowHeight="15">
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="120" />
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="41.25" ss:Span="1" />
<Column ss:Index="4" ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="37.5" />
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="85.5" />
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="78.75" />
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="213.75" ss:Span="1" />
<Column ss:Index="9" ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="54" />
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="161.25" />
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="182.25" ss:Span="1" />
<Column ss:Index="13" ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="135" ss:Span="2" />
<Row ss:AutoFitHeight="0" ss:Height="30" ss:StyleID="s65">
<Cell>
<Data ss:Type="String">Element</Data>
</Cell>
<Cell>
<Data ss:Type="String">Card.</Data>
</Cell>
<Cell>
<Data ss:Type="String">Inv.</Data>
</Cell>
<Cell>
<Data ss:Type="String">Is Modifier</Data>
</Cell>
<Cell>
<Data ss:Type="String">Type</Data>
</Cell>
<Cell>
<Data ss:Type="String">Binding</Data>
</Cell>
<Cell>
<Data ss:Type="String">Short Name</Data>
</Cell>
<Cell>
<Data ss:Type="String">Definition</Data>
</Cell>
<Cell>
<Data ss:Type="String">Aliases</Data>
</Cell>
<Cell>
<Data ss:Type="String">Requirements</Data>
</Cell>
<Cell>
<Data ss:Type="String">Comments</Data>
</Cell>
<Cell ss:StyleID="s66">
<Data ss:Type="String">vCard Mapping</Data>
</Cell>
<Cell>
<Data ss:Type="String">RIM Mapping</Data>
</Cell>
<Cell>
<Data ss:Type="String">v2 Mapping</Data>
</Cell>
<Cell>
<Data ss:Type="String">ServD Mapping</Data>
</Cell>
<Cell>
<Data ss:Type="String">To Do</Data>
</Cell>
<Cell>
<Data ss:Type="String">Committee Notes</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="237.75">
<Cell>
<Data ss:Type="String">HumanName</Data>
</Cell>
<Cell ss:StyleID="s67" />
<Cell ss:StyleID="s67" />
<Cell ss:StyleID="s67" />
<Cell>
<Data ss:Type="String">Structure</Data>
</Cell>
<Cell ss:Index="7">
<Data ss:Type="String">Name of a human - parts and usage</Data>
</Cell>
<Cell>
<Data ss:Type="String">A human's name with the ability to identify parts and usage</Data>
</Cell>
<Cell ss:Index="10">
<Data ss:Type="String">Need to be able to record names, along with notes about their use</Data>
</Cell>
<Cell>
<Data ss:Type="String">Names may be changed, or repudiated, or people may have different names in different contexts. Names may be divided into parts of different type that have
variable significance depending on context, though the division into parts does not always matter. With personal names, the different parts may or may not be imbued with some
implicit meaning; various cultures associate different importance with the name parts and the degree to which systems must care about name parts around the world varies
widely.</Data>
</Cell>
<Cell ss:StyleID="Default" />
<Cell>
<Data ss:Type="String">EN (actually, PN)</Data>
</Cell>
<Cell>
<Data ss:Type="String">XPN</Data>
</Cell>
<Cell>
<Data ss:Type="String">ProviderName</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="60">
<Cell>
<Data ss:Type="String">HumanName.use</Data>
</Cell>
<Cell>
<Data ss:Type="String">0..1</Data>
</Cell>
<Cell ss:Index="4">
<Data ss:Type="String">Y</Data>
</Cell>
<Cell>
<Data ss:Type="String">code</Data>
</Cell>
<Cell>
<Data ss:Type="String">NameUse</Data>
</Cell>
<Cell>
<Data ss:Type="String">usual | official | temp | nickname | anonymous | old | maiden</Data>
</Cell>
<Cell>
<Data ss:Type="String">Identifies the purpose for this name</Data>
</Cell>
<Cell ss:Index="10">
<Data ss:Type="String">Allows the appropriate name for a particular context of use to be selected from among a set of names</Data>
</Cell>
<Cell>
<Data ss:Type="String">This is labeled as &quot;Is Modifier&quot; because applications should not mistake a temporary or old name etc for a current/permanent one. Applications can
assume that a name is current unless it explicitly says that it is temporary or old</Data>
</Cell>
<Cell ss:StyleID="Default" />
<Cell>
<Data ss:Type="String">unique(./use)</Data>
</Cell>
<Cell>
<Data ss:Type="String">XPN.7, but often indicated by which field contains the name</Data>
</Cell>
<Cell>
<Data ss:Type="String">./NamePurpose</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="90">
<Cell>
<Data ss:Type="String">HumanName.text</Data>
</Cell>
<Cell>
<Data ss:Type="String">0..1</Data>
</Cell>
<Cell ss:Index="5">
<Data ss:Type="String">string</Data>
</Cell>
<Cell ss:Index="7">
<Data ss:Type="String">Text representation of the full name</Data>
</Cell>
<Cell>
<Data ss:Type="String">A full text representation of the name</Data>
</Cell>
<Cell ss:Index="10" ss:StyleID="s69">
<Data ss:Type="String">A renderable, unencoded form</Data>
</Cell>
<Cell>
<Data ss:Type="String">Can provide both a text representation and structured parts. &#10;</Data>
</Cell>
<Cell ss:StyleID="Default" />
<Cell>
<Data ss:Type="String">./formatted</Data>
</Cell>
<Cell>
<Data ss:Type="String">implied by XPN.11</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="50.25">
<Cell>
<Data ss:Type="String">HumanName.family</Data>
</Cell>
<Cell>
<Data ss:Type="String">0..*</Data>
</Cell>
<Cell ss:Index="5">
<Data ss:Type="String">string</Data>
</Cell>
<Cell ss:Index="7">
<Data ss:Type="String">Family name (often called 'Surname')</Data>
</Cell>
<Cell>
<Data ss:Type="String">The part of a name that links to the genealogy. In some cultures (e.g. Eritrea) the family name of a son is the first name of his father.</Data>
</Cell>
<Cell>
<Data ss:Type="String">surname</Data>
</Cell>
<Cell ss:StyleID="s69" />
<Cell>
<Data ss:Type="String">For family name, hyphenated names such as &quot;Smith-Jones&quot; are a single name, but names with spaces such as &quot;Smith Jones&quot; are broken into
multiple parts</Data>
</Cell>
<Cell ss:StyleID="Default" />
<Cell>
<Data ss:Type="String">./part[partType = FAM]</Data>
</Cell>
<Cell>
<Data ss:Type="String">XPN.1</Data>
</Cell>
<Cell>
<Data ss:Type="String">./FamilyName</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="46.5">
<Cell>
<Data ss:Type="String">HumanName.given</Data>
</Cell>
<Cell>
<Data ss:Type="String">0..*</Data>
</Cell>
<Cell ss:Index="5">
<Data ss:Type="String">string</Data>
</Cell>
<Cell ss:Index="7">
<Data ss:Type="String">Given names (not always 'first'). Includes middle names</Data>
</Cell>
<Cell>
<Data ss:Type="String">Given name</Data>
</Cell>
<Cell>
<Data ss:Type="String">first name; middle name</Data>
</Cell>
<Cell ss:StyleID="s69" />
<Cell>
<Data ss:Type="String">If only initials are recorded, they may be used in place of the full name. Not called &quot;first name&quot; since given names do not always come first.</Data>
</Cell>
<Cell ss:StyleID="Default" />
<Cell>
<Data ss:Type="String">./part[partType = GIV]</Data>
</Cell>
<Cell>
<Data ss:Type="String">XPN.2 + XPN.3</Data>
</Cell>
<Cell>
<Data ss:Type="String">./GivenNames</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="46.5">
<Cell>
<Data ss:Type="String">HumanName.prefix</Data>
</Cell>
<Cell>
<Data ss:Type="String">0..*</Data>
</Cell>
<Cell ss:Index="5">
<Data ss:Type="String">string</Data>
</Cell>
<Cell ss:Index="7">
<Data ss:Type="String">Parts that come before the name</Data>
</Cell>
<Cell>
<Data ss:Type="String">Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the start of the name</Data>
</Cell>
<Cell ss:Index="10" ss:StyleID="s69" />
<Cell ss:Index="12" ss:StyleID="Default" />
<Cell>
<Data ss:Type="String">./part[partType = PFX]</Data>
</Cell>
<Cell>
<Data ss:Type="String">XPN.5</Data>
</Cell>
<Cell>
<Data ss:Type="String">./TitleCode</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="46.5">
<Cell>
<Data ss:Type="String">HumanName.suffix</Data>
</Cell>
<Cell>
<Data ss:Type="String">0..*</Data>
</Cell>
<Cell ss:Index="5">
<Data ss:Type="String">string</Data>
</Cell>
<Cell ss:Index="7">
<Data ss:Type="String">Parts that come after the name</Data>
</Cell>
<Cell>
<Data ss:Type="String">Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name</Data>
</Cell>
<Cell ss:Index="10" ss:StyleID="s69" />
<Cell ss:Index="12" ss:StyleID="Default" />
<Cell>
<Data ss:Type="String">./part[partType = SFX]</Data>
</Cell>
<Cell>
<Data ss:Type="String">XPN/4</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell>
<Data ss:Type="String">HumanName.period</Data>
</Cell>
<Cell>
<Data ss:Type="String">0..1</Data>
</Cell>
<Cell ss:Index="5">
<Data ss:Type="String">Period</Data>
</Cell>
<Cell ss:Index="7">
<Data ss:Type="String">Time period when name was/is in use</Data>
</Cell>
<Cell>
<Data ss:Type="String">Indicates the period of time when this name was valid for the named person.</Data>
</Cell>
<Cell ss:Index="10" ss:StyleID="s69">
<Data ss:Type="String">Allows names to be placed in historical context</Data>
</Cell>
<Cell ss:Index="12" ss:StyleID="Default" />
<Cell ss:StyleID="s69">
<Data ss:Type="String">./usablePeriod[type=&quot;IVL&lt;TS&gt;&quot;]</Data>
</Cell>
<Cell>
<Data ss:Type="String">XPN.13 + XPN.14</Data>
</Cell>
<Cell>
<Data ss:Type="String">./StartDate and ./EndDate</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:Index="12" ss:StyleID="Default" />
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:Index="12" ss:StyleID="Default" />
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:Index="12" ss:StyleID="Default" />
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3" />
<Footer x:Margin="0.3" />
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75" />
</PageSetup>
<Unsynced />
<Selected />
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>8</ActiveRow>
<ActiveCol>7</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Invariants">
<Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="2" x:FullColumns="1" x:FullRows="1" ss:StyleID="s69" ss:DefaultRowHeight="15">
<Column ss:StyleID="s69" ss:AutoFitWidth="0" ss:Width="24.75" />
<Column ss:StyleID="s69" ss:Width="96.75" />
<Column ss:StyleID="s69" ss:Width="66" />
<Column ss:StyleID="s69" ss:AutoFitWidth="0" ss:Width="405.75" />
<Column ss:StyleID="s69" ss:Width="325.5" />
<Column ss:StyleID="s69" ss:AutoFitWidth="0" ss:Width="233.25" />
<Row ss:AutoFitHeight="0" ss:StyleID="s65">
<Cell>
<Data ss:Type="String">Id</Data>
</Cell>
<Cell>
<Data ss:Type="String">Name</Data>
</Cell>
<Cell>
<Data ss:Type="String">Context</Data>
</Cell>
<Cell>
<Data ss:Type="String">English</Data>
</Cell>
<Cell>
<Data ss:Type="String">OCL</Data>
</Cell>
<Cell>
<Data ss:Type="String">XPath</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell ss:Index="4" ss:StyleID="s63" />
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3" />
<Footer x:Margin="0.3" />
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75" />
</PageSetup>
<Unsynced />
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>3</ActiveRow>
<ActiveCol>1</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="Bindings">
<Table ss:ExpandedColumnCount="7" ss:ExpandedRowCount="2" x:FullColumns="1" x:FullRows="1" ss:DefaultRowHeight="15">
<Column ss:AutoFitWidth="0" ss:Width="114" />
<Column ss:AutoFitWidth="0" ss:Width="211.5" />
<Column ss:AutoFitWidth="0" ss:Width="62.25" />
<Column ss:AutoFitWidth="0" ss:Width="141.75" />
<Column ss:AutoFitWidth="0" ss:Width="242.25" />
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s65">
<Data ss:Type="String">Binding Name</Data>
</Cell>
<Cell ss:StyleID="s65">
<Data ss:Type="String">Definition</Data>
</Cell>
<Cell ss:StyleID="s65">
<Data ss:Type="String">Binding</Data>
</Cell>
<Cell ss:StyleID="s65">
<Data ss:Type="String">Reference</Data>
</Cell>
<Cell ss:StyleID="s65">
<Data ss:Type="String">Description</Data>
</Cell>
<Cell ss:StyleID="s70">
<Data ss:Type="String">v2</Data>
</Cell>
<Cell ss:StyleID="s70">
<Data ss:Type="String">v3</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s71">
<Data ss:Type="String">NameUse</Data>
</Cell>
<Cell ss:StyleID="s71">
<Data ss:Type="String">The use of a human name</Data>
</Cell>
<Cell ss:StyleID="s71">
<Data ss:Type="String">code list</Data>
</Cell>
<Cell ss:StyleID="s71">
<Data ss:Type="String">#name-use</Data>
</Cell>
<Cell ss:Index="6" ss:StyleID="s72">
<Data ss:Type="String">http://hl7.org/fhir/v2/vs/0200</Data>
</Cell>
<Cell ss:StyleID="s72">
<Data ss:Type="String">http://hl7.org/fhir/v3/vs/EntityNameUseR2</Data>
</Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3" />
<Footer x:Margin="0.3" />
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75" />
</PageSetup>
<Unsynced />
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>1</ActiveRow>
<ActiveCol>6</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
<Worksheet ss:Name="name-use">
<Table ss:ExpandedColumnCount="7" ss:ExpandedRowCount="8" x:FullColumns="1" x:FullRows="1" ss:StyleID="s71" ss:DefaultColumnWidth="72.75" ss:DefaultRowHeight="15">
<Column ss:Index="2" ss:StyleID="s73" ss:AutoFitWidth="0" />
<Column ss:StyleID="s71" ss:AutoFitWidth="0" ss:Width="804.75" />
<Column ss:StyleID="s71" ss:AutoFitWidth="0" ss:Width="112.5" />
<Column ss:StyleID="s71" ss:AutoFitWidth="0" ss:Width="177.75" />
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="String">Id</Data>
</Cell>
<Cell ss:StyleID="s65">
<Data ss:Type="String">Code</Data>
</Cell>
<Cell ss:StyleID="s65">
<Data ss:Type="String">Definition</Data>
</Cell>
<Cell ss:StyleID="s65">
<Data ss:Type="String">v2</Data>
</Cell>
<Cell ss:StyleID="s65">
<Data ss:Type="String">v3</Data>
</Cell>
<Cell ss:StyleID="s65" />
<Cell ss:StyleID="s65" />
</Row>
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="Number">1</Data>
</Cell>
<Cell ss:StyleID="s75">
<Data ss:Type="String">usual</Data>
</Cell>
<Cell ss:StyleID="s76">
<Data ss:Type="String">Known as/conventional/the one you normally use</Data>
</Cell>
<Cell>
<Data ss:Type="String">~0200.D</Data>
</Cell>
<Cell>
<Data ss:Type="String" x:Ticked="1">=EntityNameUseR2.C</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="Number">2</Data>
</Cell>
<Cell ss:StyleID="s75">
<Data ss:Type="String">official</Data>
</Cell>
<Cell ss:StyleID="s76">
<Data ss:Type="String">The formal name as registered in an official (government) registry, but which name might not be commonly used. May be called &quot;legal name&quot;.</Data>
</Cell>
<Cell>
<Data ss:Type="String">~0200.L</Data>
</Cell>
<Cell>
<Data ss:Type="String" x:Ticked="1">=EntityNameUseR2.OR</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="Number">3</Data>
</Cell>
<Cell ss:StyleID="s75">
<Data ss:Type="String">temp</Data>
</Cell>
<Cell ss:StyleID="s76">
<Data ss:Type="String">A temporary name. Name.period can provide more detailed information. This may also be used for temporary names assigned at birth or in emergency situations.</Data>
</Cell>
<Cell>
<Data ss:Type="String">~0200.TEMP</Data>
</Cell>
<Cell>
<Data ss:Type="String" x:Ticked="1">=EntityNameUseR2.T</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="Number">4</Data>
</Cell>
<Cell ss:StyleID="s75">
<Data ss:Type="String">nickname</Data>
</Cell>
<Cell ss:StyleID="s75">
<Data ss:Type="String">A name that is used to address the person in an informal manner, but is not part of their formal or usual name</Data>
</Cell>
<Cell>
<Data ss:Type="String">~0200.N</Data>
</Cell>
<Cell>
<Data ss:Type="String">~EntityNameUseR2.P</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="Number">5</Data>
</Cell>
<Cell ss:StyleID="s75">
<Data ss:Type="String">anonymous</Data>
</Cell>
<Cell ss:StyleID="s76">
<Data ss:Type="String">Anonymous assigned name, alias, or pseudonym (used to protect a person's identity for privacy reasons)</Data>
</Cell>
<Cell>
<Data ss:Type="String">~0200.S</Data>
</Cell>
<Cell>
<Data ss:Type="String">~EntityNameUseR2.ANON</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="Number">6</Data>
</Cell>
<Cell ss:StyleID="s75">
<Data ss:Type="String">old</Data>
</Cell>
<Cell ss:StyleID="s76">
<Data ss:Type="String">This name is no longer in use (or was never correct, but retained for records)</Data>
</Cell>
<Cell>
<Data ss:Type="String" x:Ticked="1">&gt;0200.NOUSE,&gt;0200.BAD</Data>
</Cell>
<Cell>
<Data ss:Type="String">~EntityNameUseR2.OLD</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell ss:StyleID="s78">
<Data ss:Type="Number">7</Data>
</Cell>
<Cell ss:StyleID="s79">
<Data ss:Type="String">maiden</Data>
</Cell>
<Cell ss:StyleID="s79">
<Data ss:Type="String">A name used prior to marriage. Marriage naming customs vary greatly around the world. This name use is for use by applications that collect and store
&quot;maiden&quot; names. Though the concept of maiden name is often gender specific, the use of this term is not gender specific. The use of this term does not imply any
particular history for a person's name, nor should the maiden name be determined algorithmically.</Data>
</Cell>
<Cell>
<Data ss:Type="String">~0200.M</Data>
</Cell>
<Cell>
<Data ss:Type="String" x:Ticked="1">=EntityNameUseR2.M</Data>
</Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<PageSetup>
<Header x:Margin="0.3" />
<Footer x:Margin="0.3" />
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75" />
</PageSetup>
<Unsynced />
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>1</ActiveRow>
<ActiveCol>1</ActiveCol>
<RangeSelection>R2C2:R8C2</RangeSelection>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>

File diff suppressed because it is too large Load Diff