Wiki Spaces
Documentation
Projects
Resources
Get Help from Others
Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack
Implementer shortcuts: Getting Started | HTML Reference | Javascript Reference | Release Notes
Developer shortcuts: Technical Overview | Collaborating on Html Form Entry Using Git
Other examples: How to Embed HTML Form (generated by HTML Form Entry module) in a custom module
Related modules: HTML Form Entry UI Module
The HTML Form Entry allows anyone with basic HTML programming skills and a knowledge of the OpenMRS system to create forms. It is an alternative to the Infopath FormEntry module in many (but not all) cases.
The key point about writing forms with this module is that you only have to write HTML (with some special tags for things in the OpenMRS model) and the module will automatically "just know" what to do when the user clicks the submit button.
Currently a form submission creates one encounter for one patient.
Advantages:
Disadvantages:
Want to help improve this module? Contact Mark Goodrich.
Note that if you put in an illegal value (per the constraints in the concept dictionary) it is immediately flagged.
This looks pretty close to the initial entry.
Here's the code behind the screenshots
<htmlform> <macros> lightgrey=#e0e0e0 lightblue=#e0e0ff </macros> ... <table border="0" width="100%"> <tr valign="top"> <td width="50%"> <table width="100%" border="1" cellspacing="0" cellpadding="2"> <tr> <td bgcolor="$lightgrey"><b>3. Anamnese</b></td> </tr> <tr> <td> Symptomes: <br/> <obs conceptId="432" style="checkbox" labelText="Visite de routine, pas de probleme"/> <br/> <obs conceptId="1364" rows="10" cols="60"/> <br/><br/> Conditions socioeconomiques: <table><tr><td> <obs conceptId="2861" answerConceptId="1309" answerLabel="necessite d'un emploi"/> <br/> <obs conceptId="2861" answerConceptId="2862" answerLabel="faim"/> <br/> <obs conceptId="2861" answerConceptId="2863" answerLabel="frais scolaire"/> <br/> <obs conceptId="2861" answerConceptId="5622" answerLabel="autre"/> </td><td> <obs conceptId="2861" answerConceptId="2864" answerLabel="probleme avec maison"/> <br/> <obs conceptId="2861" answerConceptId="2865" answerLabel="enterrement"/> <br/> <obs conceptId="2861" answerConceptId="2866" answerLabel="inaccessibilite de l'eau"/> </td></tr></table> <br/> <b>Examen Clinique:</b> <br/> <table width="100%"><tr valign="top"> <td width="50%"> <obs conceptId="5088" labelText="Temp:"/> C <br/> <obs conceptId="5087" labelText="Pouls:"/>/min <br/> <obs conceptId="5089" labelText="Poids:"/>kg <br/> <obs conceptId="2137" labelText="IMC:"/>kg/m2 <br/> </td><td width="50%"> <obs conceptId="5242" labelText="FR:"/>/min <br/> <obs conceptId="5085" labelText="TA:"/> <obs conceptId="5086" labelText="/"/> <br/> <obs conceptId="5090" labelText="Taille:"/>cm </td> </tr></table> </td> </tr> </table> </td> <td width="50%"> <table width="100%" border="1" cellspacing="0" cellpadding="2"> <tr> <td bgcolor="$lightgrey"><b>4. Anamnese systematique et depistage TBC:</b></td> </tr> <tr> <td> <table width="100%"> <obsgroup groupingConceptId="2162"> <tr> <td> <b>Toux:</b> <obs conceptId="1734" answerConceptId="107" answerLabel="non"/> <obs conceptId="1293" answerConceptId="107" answerLabel="oui"/> </td> <td colspan="2"> duree: <obs conceptId="2160" labelText=""/>semaines <obs conceptId="2161" labelText=""/>mois </td> </tr> <tr> <td></td> <td><obs conceptId="1293" answerConceptId="2128" answerLabel="seche"/></td> <td><obs conceptId="1293" answerConceptId="970" answerLabel="hemoptysie"/></td> </tr> <tr> <td></td> <td><obs conceptId="1293" answerConceptId="5957" answerLabel="productive"/></td> <td><obs conceptId="1293" answerConceptId="5960" answerLabel="dyspnee"/></td> </tr> <tr> <td></td> <td colspan="2"><obs conceptId="1293" answerConceptId="136" answerLabel="douleur thoracique"/></td> </tr> </obsgroup> <tr> <td align="right"><b>Sueurs nocturnes</b></td> <td colspan="2"> <obs conceptId="1734" answerConceptId="6029" answerLabel="non"/> <obs conceptId="1293" answerConceptId="2164" answerLabel="moins de 3 semaines"/> <obs conceptId="1293" answerConceptId="2163" answerLabel="plus de 3 semaines"/> </td> </tr> <tr valign="top"> <td align="right"><b>Fievre</b></td> <td colspan="2"> <obs conceptId="1734" answerConceptId="5945" answerLabel="non"/> <obsgroup groupingConceptId="1292"> <obs conceptId="1293" answerConceptId="5945" answerLabel="oui,"/> <br/> duree: <obs conceptId="1294" labelText=""/>jours <obs conceptId="2160" labelText=""/>semaines <obs conceptId="2161" labelText=""/>mois </obsgroup> </td> </tr> <tr> <td align="right"><b>Perte de poids</b></td> <td colspan="2"> <obs conceptId="1734" answerConceptId="832" answerLabel="non"/> <obs conceptId="1293" answerConceptId="832" answerLabel="oui moins de 10%"/> <obs conceptId="1293" answerConceptId="1352" answerLabel="oui plus de 10%"/> </td> </tr> <tr> <td align="right"><b>Contact TBC+:</b></td> <td colspan="2"><obs conceptId="2133" style="no_yes" labelText=""/></td> </tr> </table> </td> </tr> <tr> <td> <b>Resultat du depistage TBC</b> <obs conceptId="2136" labelText="" answerConceptIds="664,703" answerLabels="negatif,positif"/> <br/><br/> </td> </tr> <tr> <td bgcolor="$lightgrey"><b>5. La sante sexuelle</b></td> </tr> <tr> <td> <table border="0"> <tr> <td align="right">Sexuellement actif:</td> <td><obs conceptId="2730" style="no_yes"/></td> </tr> <tr> <td align="right">Dernieres regles</td> <td><obs conceptId="968"/></td> </tr> <tr> <td align="right">Planification familiale</td> <td><obs conceptId="5271" style="no_yes"/></td> </tr> <tr> <td align="right">Methode</td> <td> <obs conceptId="374" answerConceptId="1720" answerLabel="abstinence"/> <obs conceptId="374" answerConceptId="780" answerLabel="contraceptifs oraux"/> <br/> <obs conceptId="374" answerConceptId="190" answerLabel="condoms"/> <obs conceptId="374" answerConceptId="5279" answerLabel="Depo-provera"/> <br/> <obs conceptId="374" answerConceptId="5622" answerLabel="autres"/> <obs conceptId="2877" labelText="(a specifier):"/> </td> </tr> <tr> <td align="right">Enceinte</td> <td> <obs conceptId="5272" answerConceptIds="1066,1065" answerLabels="non,oui"/> <obs conceptId="5596" labelText="DPA"/> </td> </tr> <tr> <td align="right">Symptomes d'IST</td> <td><obs conceptId="2731" size="40"/></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> ... </htmlform>
The following privileges may be necessary for various activities. It may be necessary to create them manually, and add them to your user's role.
To request more features, ask for them on developers@openmrs.org or create them as tickets in our JIRA site.
Want to build an interface out of nothing but htmlforms? The HtmlFormFlowsheet module provides an easy way of combining html forms into a simple patient-dashboard-type configurable interface. Or, you can embed flowsheet tables directly into your existing htmlforms. This module is particularly useful if you are trying to model patient-based flowsheet type data (such as an MDRTB CAT-IV treatment card, or a chronic care flowsheet). See: the htmlformflowsheet module wiki.
4 Comments
Tri Hong
After creating a HTML form, I logged out and logged in with another account. The problem is I can edit this HTML form with new account. this sometimes may be lack of security because I think only the account creates a specified form will edit that form. So if having a setting which can choose whether other accounts can edit forms or not is so great.
Darius Jazayeri
This is expected behavior in OpenMRS--forms can be edited by anyone with Edit Encounters privileges. The following feature is being worked on for 1.10: https://tickets.openmrs.org/browse/TRUNK-3377 . If you're interested in forms that can only be edited by the user who entered them, you should suggest that under the "Vote on What We Do" link at the left.
Tri Hong
Thank you for your information :)
Charis Charismrs
This link says "access denied" when you click on it
How to Embed HTML Form (generated by HTML Form Entry module) in a custom module
Is there a new location for instructions ?