public interface FormService extends OpenmrsService
Modifier and Type | Method and Description |
---|---|
void |
checkIfFormsAreLocked()
Checks if the forms are locked, and if they are throws an exception when saving or deleting a form
|
Form |
duplicateForm(Form form)
Duplicate this form and form_fields associated with this form
|
List<Field> |
getAllFields()
Fetches all Fields in the database, including retired ones
|
List<Field> |
getAllFields(boolean includeRetired)
Fetches all Fields in the database, possibly including retired ones
|
List<FieldType> |
getAllFieldTypes()
Get all field types in the database including the retired ones
|
List<FieldType> |
getAllFieldTypes(boolean includeRetired)
Get all field types in the database with or without retired ones
|
List<FormField> |
getAllFormFields()
Returns all FormFields in the database
|
List<Form> |
getAllForms()
Gets all Forms, including retired ones.
|
List<Form> |
getAllForms(boolean includeRetired)
Gets all forms, possibly including retired ones
|
Field |
getField(Integer fieldId)
Gets a Field by internal database id
|
FieldAnswer |
getFieldAnswerByUuid(String uuid)
Get FieldAnswer by its UUID
|
Field |
getFieldByUuid(String uuid)
Get Field by its UUID
|
List<Field> |
getFields(Collection<Form> forms,
Collection<FieldType> fieldTypes,
Collection<Concept> concepts,
Collection<String> tableNames,
Collection<String> attributeNames,
Boolean selectMultiple,
Collection<FieldAnswer> containsAllAnswers,
Collection<FieldAnswer> containsAnyAnswer,
Boolean retired)
Returns all Fields that match these (nullable) criteria
|
List<Field> |
getFields(String fuzzySearchPhrase)
Find all Fields whose names are similar to or contain the given phrase.
|
List<Field> |
getFieldsByConcept(Concept concept)
Finds all Fields that point to the given concept, including retired ones.
|
FieldType |
getFieldType(Integer fieldTypeId)
Get fieldType by internal identifier
|
FieldType |
getFieldTypeByName(String name)
Get FieldType by its name
|
FieldType |
getFieldTypeByUuid(String uuid)
Get FieldType by its UUID
|
Form |
getForm(Integer formId)
Get form by internal form identifier
|
Form |
getForm(String name)
Get form by exact name match.
|
Form |
getForm(String name,
String version)
Get form by exact name & version match.
|
Form |
getFormByUuid(String uuid)
Get Form by its UUID
|
Integer |
getFormCount(String partialNameSearch,
Boolean published,
Collection<EncounterType> encounterTypes,
Boolean retired,
Collection<FormField> containingAnyFormField,
Collection<FormField> containingAllFormFields,
Collection<Field> fields)
Same as
getForms(String, Boolean, Collection, Boolean, Collection, Collection, Collection)
except that it returns an integer that is the size of the list that would be returned |
FormField |
getFormField(Form form,
Concept concept,
Collection<FormField> ignoreFormFields,
boolean force)
Finds the FormField defined for this form/concept combination while discounting any form
field found in the
ignoreFormFields collection This method was added when
needing to relate observations to form fields during a display. |
FormField |
getFormField(Integer formFieldId)
Gets a FormField by internal database id
|
FormField |
getFormFieldByUuid(String uuid)
Get FormField by its UUID
|
FormResource |
getFormResource(Form form,
String name)
Finds a FormResource based on a given Form and name
|
FormResource |
getFormResource(Integer formResourceId)
Finds a FormResource by its id
|
FormResource |
getFormResourceByUuid(String uuid)
Finds a FormResource by its uuid
|
Collection<FormResource> |
getFormResourcesForForm(Form form)
Finds all FormResources tied to a given form
|
List<Form> |
getForms(String fuzzyName,
boolean onlyLatestVersion)
Gets all forms with name similar to the given name.
|
List<Form> |
getForms(String partialNameSearch,
Boolean published,
Collection<EncounterType> encounterTypes,
Boolean retired,
Collection<FormField> containingAnyFormField,
Collection<FormField> containingAllFormFields,
Collection<Field> fields)
Gets all forms that match all the (nullable) criteria
|
List<Form> |
getFormsContainingConcept(Concept concept)
Returns all forms that contain the given concept as a field in their schema.
|
List<Form> |
getPublishedForms()
Returns all published forms (not including retired ones)
|
int |
mergeDuplicateFields()
Audit form, consolidate similar fields
|
void |
purgeField(Field field)
Completely removes a Field from the database.
|
void |
purgeField(Field field,
boolean cascade)
Completely removes a Field from the database.
|
void |
purgeFieldType(FieldType fieldType)
Deletes the given field type from the database.
|
void |
purgeForm(Form form)
Completely remove a Form from the database.
|
void |
purgeForm(Form form,
boolean cascade)
Completely remove a Form from the database.
|
void |
purgeFormField(FormField formField)
Completely removes the given FormField from the database.
|
void |
purgeFormResource(FormResource formResource)
Purges a form resource
|
Field |
retireField(Field field)
Retires field
|
void |
retireForm(Form form,
String reason)
Retires the Form, leaving it in the database, but removing it from data entry screens
|
Field |
saveField(Field field)
Creates or updates the given Field
|
FieldType |
saveFieldType(FieldType fieldType)
Saves the given field type to the database
|
Form |
saveForm(Form form)
Create or update the given Form in the database
|
FormField |
saveFormField(FormField formField)
Creates or updates the given FormField
|
FormResource |
saveFormResource(FormResource formResource)
Saves or updates the given form resource
|
Field |
unretireField(Field field)
Unretires field
|
void |
unretireForm(Form form)
Unretires a Form that had previous been retired.
|
onShutdown, onStartup
@Authorized(value="Manage Forms") Form saveForm(Form form) throws APIException
form
- the Form to saveAPIException
- Should save given form successfully
Should update an existing form
Should throw an error when trying to save an existing form while forms are locked
Should throw an error when trying to save a new form while forms are locked@Authorized(value="Get Forms") Form getForm(Integer formId) throws APIException
formId
- internal identifierAPIException
- Should return null if no form exists with given formId
Should return the requested form@Authorized(value="Get Forms") Form getForm(String name) throws APIException
name
- exact name of the form to fetchAPIException
- Should return null if no form has the exact form name@Authorized(value="Get Forms") Form getFormByUuid(String uuid) throws APIException
uuid
- APIException
@Authorized(value="Get Forms") Form getForm(String name, String version) throws APIException
getForm(String)
name
- exact name of the form to fetchversion
- exact version of the form to fetchAPIException
- Should get the specific version of the form with the given name@Authorized(value="Get Forms") List<Form> getAllForms() throws APIException
APIException
- Should return all forms including retired@Authorized(value="Get Forms") List<Form> getAllForms(boolean includeRetired) throws APIException
includeRetired
- whether or not to return retired formsAPIException
- Should return retired forms if includeRetired is true
Should not return retired forms if includeRetired is false@Authorized(value="Get Forms") List<Form> getForms(String fuzzyName, boolean onlyLatestVersion)
fuzzyName
- approximate name to matchonlyLatestVersion
- whether or not to return only the latest version of each form (by
name)@Authorized(value="Get Forms") List<Form> getForms(String partialNameSearch, Boolean published, Collection<EncounterType> encounterTypes, Boolean retired, Collection<FormField> containingAnyFormField, Collection<FormField> containingAllFormFields, Collection<Field> fields)
partialNameSearch
- partial search of namepublished
- whether the form is publishedencounterTypes
- whether the form has any of these encounter typesretired
- whether the form is retiredcontainingAnyFormField
- includes forms that contain any of the specified FormFieldscontainingAllFormFields
- includes forms that contain all of the specified FormFieldsfields
- whether the form has any of these fields. If a field is used more than once on
a form, that form is returning more than once in this list@Authorized(value="Get Forms") Integer getFormCount(String partialNameSearch, Boolean published, Collection<EncounterType> encounterTypes, Boolean retired, Collection<FormField> containingAnyFormField, Collection<FormField> containingAllFormFields, Collection<Field> fields)
getForms(String, Boolean, Collection, Boolean, Collection, Collection, Collection)
except that it returns an integer that is the size of the list that would be returned@Authorized(value="Get Forms") List<Form> getPublishedForms() throws APIException
APIException
- Should only return published forms that are not retired@Authorized(value="Manage Forms") int mergeDuplicateFields() throws APIException
APIException
- Should should merge fields with similar attributes@Authorized(value="Manage Forms") Form duplicateForm(Form form) throws APIException
form
- APIException
- Should clear changed details and update creation details
Should give a new uuid to the duplicated form
Should copy resources for old form to new form
Should throw an error when trying to duplicate a form while forms are locked@Authorized(value="Manage Forms") void retireForm(Form form, String reason) throws APIException
form
- the Form to retirereason
- the retiredReason to setAPIException
- Should set the retired bit before saving@Authorized(value="Manage Forms") void unretireForm(Form form) throws APIException
form
- the Form to reviveAPIException
- Should unset the retired bit before saving@Authorized(value="Manage Forms") void purgeForm(Form form) throws APIException
form
- APIException
- Should delete given form successfully
Should delete form resources for deleted form
Should throw an error when trying to delete a form while forms are locked@Authorized(value="Manage Forms") void purgeForm(Form form, boolean cascade) throws APIException
form
- cascade
- whether or not to cascade delete all dependent objects (including encounters!)APIException
- Should throw APIException if cascade is true@Authorized(value="Get Field Types") List<FieldType> getAllFieldTypes() throws APIException
APIException
- Should also get retired field types@Authorized(value="Get Field Types") List<FieldType> getAllFieldTypes(boolean includeRetired) throws APIException
includeRetired
- true/false whether to include the retired field typesAPIException
- Should get all field types including retired when includeRetired equals true
Should get all field types excluding retired when includeRetired equals false@Authorized(value="Get Field Types") FieldType getFieldType(Integer fieldTypeId) throws APIException
fieldTypeId
- Integer id of FieldType to getAPIException
- Should return null when no field type matching given idFieldType getFieldTypeByUuid(String uuid) throws APIException
uuid
- APIException
FieldType getFieldTypeByName(String name) throws APIException
name
- APIException
@Authorized(value="Get Forms") List<Form> getFormsContainingConcept(Concept concept) throws APIException
concept
- the concept to search for in formsAPIException
- Should get forms with field matching given concept
Should get all forms for concept@Authorized(value="Get Forms") List<FormField> getAllFormFields() throws APIException
APIException
- Should get all form fields including retired@Authorized(value="Get Forms") List<Field> getFields(String fuzzySearchPhrase) throws APIException
fuzzySearchPhrase
- APIException
- Should get fields with name matching fuzzySearchPhrase at beginning
Should get fields with name matching fuzzySearchPhrase at middle
Should get fields with name matching fuzzySearchPhrase at end
Should return fields in alphabetical order by name@Authorized(value="Get Forms") List<Field> getFieldsByConcept(Concept concept) throws APIException
concept
- the concept to search for in the Field tableAPIException
- Should get fields with concept matching given concept@Authorized(value="Get Forms") List<Field> getAllFields() throws APIException
APIException
- Should get all fields including retired@Authorized(value="Get Forms") List<Field> getAllFields(boolean includeRetired) throws APIException
includeRetired
- whether or not to include retired FieldsAPIException
- Should get all fields including retired when includeRetired is true
Should get all fields excluding retired when includeRetired is false@Authorized(value="Get Forms") List<Field> getFields(Collection<Form> forms, Collection<FieldType> fieldTypes, Collection<Concept> concepts, Collection<String> tableNames, Collection<String> attributeNames, Boolean selectMultiple, Collection<FieldAnswer> containsAllAnswers, Collection<FieldAnswer> containsAnyAnswer, Boolean retired) throws APIException
forms
- on any of these FormsfieldTypes
- having any of these FieldTypesconcepts
- for any of these ConceptstableNames
- for any of these table namesattributeNames
- for any of these attribute namesselectMultiple
- whether to return only select-multi fieldscontainsAllAnswers
- fields with all the following answerscontainsAnyAnswer
- fields with any of the following answersretired
- only retired/unretired fieldsAPIException
- Should get fields with form in given forms
Should get fields with type in given fieldTypes
Should get fields with concept in given concepts
Should get fields with tableName in given tableNames
Should get fields with attributeName in given attributeNames
Should get fields with selectMultiple equals true when given selectMultiple equals true@Authorized(value="Get Forms") Field getField(Integer fieldId) throws APIException
fieldId
- the id of the Field to fetchAPIException
- Should return null if no field exists with given fieldIdField getFieldByUuid(String uuid) throws APIException
uuid
- APIException
FieldAnswer getFieldAnswerByUuid(String uuid) throws APIException
uuid
- APIException
@Authorized(value="Manage Forms") Field saveField(Field field) throws APIException
field
- the Field to saveAPIException
- Should save given field successfully
Should update an existing field@Authorized(value="Manage Forms") void purgeField(Field field) throws APIException
field
- the Field to purgeAPIException
- Should delete given field successfully@Authorized(value="Manage Forms") void purgeField(Field field, boolean cascade) throws APIException
field
- the Field to purgecascade
- whether to cascade delete all FormFields pointing to this fieldAPIException
- Should throw APIException if cascade is true@Authorized(value="Get Forms") FormField getFormField(Integer formFieldId) throws APIException
formFieldId
- the internal id to search onAPIException
- Should return null if no formField exists with given idFormField getFormFieldByUuid(String uuid) throws APIException
uuid
- APIException
@Authorized(value="Get Forms") FormField getFormField(Form form, Concept concept, Collection<FormField> ignoreFormFields, boolean force) throws APIException
ignoreFormFields
collection This method was added when
needing to relate observations to form fields during a display. The use case would be that
you know a Concept for a obs, which was defined on a form (via a formField). You can relate
the formFields to Concepts easily enough, but if a Form reuses a Concept in two separate
FormFields you don't want to only associate that first formField with that concept. So, keep
a running list of formFields you've seen and pass them back in here to rule them out.form
- Form that this concept was found onconcept
- Concept (question) on this form that is being requestedignoreFormFields
- FormFields to ignore (aka already seen formfields)force
- if true and there are zero matches because all formFields were ignored (because
of ignoreFormFields) than the first result is returnedAPIException
- Should get form fields by form and concept
Should not fail with null ignoreFormFields argument
Should simply return null for nonexistent concepts
Should simply return null for nonexistent forms
Should ignore formFields passed to ignoreFormFields@Authorized(value="Manage Forms") FormField saveFormField(FormField formField) throws APIException
formField
- the FormField to saveAPIException
- Should propagate save to the Field property on the given FormField
Should save given formField successfully
Should inject form fields from serializable complex obs handlers@Authorized(value="Manage Forms") void purgeFormField(FormField formField) throws APIException
formField
- the FormField to purgeAPIException
- Should delete the given form field successfully@Authorized(value="Manage Forms") Field retireField(Field field) throws APIException
field
- the Field to retireAPIException
- Should set the retired bit before saving@Authorized(value="Manage Forms") Field unretireField(Field field) throws APIException
field
- the Field to unretireAPIException
- Should unset the retired bit before saving@Authorized(value="Manage Field Types") FieldType saveFieldType(FieldType fieldType) throws APIException
fieldType
- the field type to saveAPIException
- Should create new field type
Should update existing field type@Authorized(value="Purge Field Types") void purgeFieldType(FieldType fieldType) throws APIException
fieldType
- the field type to purgeAPIException
- Should delete the given field type successfullyFormResource getFormResource(Integer formResourceId) throws APIException
formResourceId
- the id of the resource
Should find a saved FormResource
Should return null if no FormResource foundAPIException
FormResource getFormResourceByUuid(String uuid) throws APIException
uuid
- the uuid of the resourceAPIException
FormResource getFormResource(Form form, String name) throws APIException
form
- the Form that the resource belongs toname
- the name of the resourceAPIException
Collection<FormResource> getFormResourcesForForm(Form form) throws APIException
form
- APIException
FormResource saveFormResource(FormResource formResource) throws APIException
formResource
- the resource to be saved
Should persist a FormResource
Should overwrite an existing resource with same name
Should be able to save an XSLTAPIException
void purgeFormResource(FormResource formResource) throws APIException
formResource
- the resource to be purged
Should delete a form resourceAPIException
void checkIfFormsAreLocked() throws FormsLockedException
FormsLockedException
Copyright © 2024 OpenMRS Inc.. All rights reserved.