class Obs extends BaseChangeableOpenmrsData {

	public void setFormField(String namespace, String formFieldPath) {
		if (namespace == null && formFieldPath == null) {
			markAsDirty(formNamespaceAndPath, null);
			formNamespaceAndPath = null;
			return;
		}
		
		String nsAndPathTemp = "";
		if (StringUtils.isNotBlank(namespace) && StringUtils.isNotBlank(formFieldPath)) {
			nsAndPathTemp = namespace + FORM_NAMESPACE_PATH_SEPARATOR + formFieldPath;
		} else if (StringUtils.isNotBlank(namespace)) {
			nsAndPathTemp = namespace + FORM_NAMESPACE_PATH_SEPARATOR;
		} else if (StringUtils.isNotBlank(formFieldPath)) {
			nsAndPathTemp = FORM_NAMESPACE_PATH_SEPARATOR + formFieldPath;
		}
		
		if (nsAndPathTemp.length() > FORM_NAMESPACE_PATH_MAX_LENGTH) {
			throw new APIException("Obs.namespaceAndPathTooLong", (Object[]) null);
		}
		if (StringUtils.countMatches(nsAndPathTemp, FORM_NAMESPACE_PATH_SEPARATOR) > 1) {
			throw new APIException("Obs.namespaceAndPathNotContainSeparator", (Object[]) null);
		}
		
		markAsDirty(this.formNamespaceAndPath, nsAndPathTemp);
		formNamespaceAndPath = nsAndPathTemp;
	}

	public  Obs();
	public  Obs(Person person, Concept question, Date obsDatetime, Location location);
	public  Obs(Integer obsId);

}