All forms in OpenSRP for Client apps are maintained on server in form directory in application core resources.
Form Structure:
Each form is composed of three files model.xml, form_definition.json, form.xml in a separate directory named by unique name for form.
Each form has three properties
- formName: The Name/ID specified in xls form by science team. This is also used to link nodes in model.xml and form_definition.json as bind
- formDirName: The name of folder with which developers access form file in enketo. All three files are in this directory
- formDataDefinitionVersion: The version of form to keep track of the form used for data submission
Form Access:
- To access the latest versions for all forms make a call to http://yourserver/form/latest-form-versions. For demo server call to http://46.101.51.199:8080/oweb/form/latest-form-versions
- The output is a json as follows
{"formVersions"
...
:
...
[{"formName":
...
"ANC_Close_EngKan",
...
"formDirName":
...
"anc_close",
...
"formDataDefinitionVersion":
...
"2"},
{"formName":
...
"ANC_Registration_OA_EngKan",
...
"formDirName":
...
"anc_registration_oa",
...
"formDataDefinitionVersion":
...
"4"},
.......,
{"formName":
...
"Child_Vitamin_A_EngKan",
...
"formDirName":
...
"vitamin_a",
...
"formDataDefinitionVersion":
...
"1"}]}
- If you find any formDataDefinitionVersion
...
- lesser than the mentioned version, on your client
...
- , then
- Download the form by http://yourserver/form/form-files?formDirName=THE_FORM_TO_DOWNLOAD. For demo server call to http://46.101.51.199:8080/oweb/form/form-files?formDirName=THE_FORM_TO_DOWNLOAD . Where formDirName is the form directory name containing form files.
- The response is a zip file with name same as formDirName and containing three files form.xml, model.xml and form_definition.json
{"formVersions" : [{"formName": "ANC_Close_EngKan", "formDirName": "anc_close", "formDataDefinitionVersion": "2"},{"formName": "ANC_Investigations_EngKan", "formDirName": "anc_investigations", "formDataDefinitionVersion": "2"},{"formName": "ANC_Registration_EngKan", "formDirName": "anc_registration", "formDataDefinitionVersion": "3"},{"formName": "ANC_Registration_OA_EngKan", "formDirName": "anc_registration_oa", "formDataDefinitionVersion": "4"},{"formName": "ANC_Visit_EngKan", "formDirName": "anc_visit", "formDataDefinitionVersion": "3"},{"formName": "Child_Close_EngKan", "formDirName": "child_close", "formDataDefinitionVersion": "4"},{"formName": "Child_Sick_Visit_EngKan", "formDirName": "child_illness", "formDataDefinitionVersion": "2"},{"formName": "Child_Immunizations_EngKan", "formDirName": "child_immunizations", "formDataDefinitionVersion": "1"},{"formName": "Child_Registration_EC_EngKan", "formDirName": "child_registration_ec", "formDataDefinitionVersion": "6"},{"formName": "Child_Registration_EngKan", "formDirName": "child_registration_oa", "formDataDefinitionVersion": "6"},{"formName": "crvs_birth_notification", "formDirName": "crvs_birth_notification", "formDataDefinitionVersion": "1"},{"formName": "crvs_death_notification", "formDirName": "crvs_death_notification", "formDataDefinitionVersion": "1"},{"formName": "model/instance/crvs_pregnancy_notification", "formDirName": "crvs_pregnancy_notification", "formDataDefinitionVersion": "1"},{"formName": "crvs_verbal_autopsy", "formDirName": "crvs_verbal_autopsy", "formDataDefinitionVersion": "1"},{"formName": "PNC_Registration_EngKan", "formDirName": "delivery_outcome", "formDataDefinitionVersion": "5"},{"formName": "Delivery_Plan_EngKan", "formDirName": "delivery_plan", "formDataDefinitionVersion": "2"},{"formName": "EC_Close_EngKan", "formDirName": "ec_close", "formDataDefinitionVersion": "1"},{"formName": "EC_Edit_EngKan", "formDirName": "ec_edit", "formDataDefinitionVersion": "1"},{"formName": "EC_Registration_EngKan", "formDirName": "ec_registration", "formDataDefinitionVersion": "4"},{"formName": "Family_Planning_Change_Method_EngKan", "formDirName": "fp_change", "formDataDefinitionVersion": "2"},{"formName": "Family_Planning_Complications_EngKan", "formDirName": "fp_complications", "formDataDefinitionVersion": "3"},{"formName": "Family_Planning_Followup_EngKan", "formDirName": "fp_followup", "formDataDefinitionVersion": "3"},{"formName": "Family_Planning_Referral_Followup_EngKan", "formDirName": "fp_referral_followup", "formDataDefinitionVersion": "3"},{"formName": "Hb_Test_EngKan", "formDirName": "hb_test", "formDataDefinitionVersion": "3"},{"formName": "IFA_EngKan", "formDirName": "ifa", "formDataDefinitionVersion": "1"},{"formName": "PNC_Close_EngKan", "formDirName": "pnc_close", "formDataDefinitionVersion": "2"},{"formName": "PNC_Child_Registration_EngKan", "formDirName": "pnc_registration_oa", "formDataDefinitionVersion": "2"},{"formName": "PNC_Visit_EngKan", "formDirName": "pnc_visit", "formDataDefinitionVersion": "1"},{"formName": "Postpartum_FamilyPlanning_EngKan", "formDirName": "postpartum_family_planning", "formDataDefinitionVersion": "2"},{"formName": "Family_Planning_ECPs_EngKan", "formDirName": "record_ecps", "formDataDefinitionVersion": "1"},{"formName": "Family_Planning_Refill_Method_EngKan", "formDirName": "renew_fp_product", "formDataDefinitionVersion": "1"},{"formName": "TT_EngKan", "formDirName": "tt", "formDataDefinitionVersion": "1"},{"formName": "TT1_EngKan", "formDirName": "tt_1", "formDataDefinitionVersion": "1"},{"formName": "TT2_EngKan", "formDirName": "tt_2", "formDataDefinitionVersion": "1"},{"formName": "TTBooster_EngKan", "formDirName": "tt_booster", "formDataDefinitionVersion": "1"},{"formName": "Child_Vitamin_A_EngKan", "formDirName": "vitamin_a", "formDataDefinitionVersion": "1"}]}