Implementer shortcuts: ?Getting Started, ?HTML Reference

Developer shortcuts: ?Technical Overview

Overview

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.

Comparison with Infopath FormEntry module

Advantages:

Disadvantages:

Want to help improve this module? Contact ??~darius.

Download

Instructions

  1. Download the module from the repository and install it.
  2. Create a Form in OpenMRS via Manage Forms. You do not need to build the form schema. You cannot use an existing form schema from a prior InfoPath form (even if it's marked as retired) or it will not show up if using both Form Entry and HTML Form Entry. Ticket # 1967
  3. Go to Manage HTML Forms, create a new form there, point it at the desired Form in OpenMRS, and put in the HTML behind the form. HTML Reference

Screenshots

Filling out a form

Note that if you put in an illegal value (per the constraints in the concept dictionary) it is immediately flagged.

Viewing a form

This looks pretty close to the initial entry.

Example HTML

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>

Required Privileges

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.

Upcoming features

To request more features, leave a comment on the Discussion section of this page: Talk:Html_Form_Entry_Module.

Flowsheets

Want to build an interface out of nothing but html forms? 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: HtmlFormFlowsheet_Module

Release Notes

Version 1.6.7 (@revision 15357)

Version 1.6.6 (@revision 14939)

Version 1.6.6 (@revision 14939)

Version 1.6.6 (@revision 14939)

Version 1.6.5 (@revision 14430)

Version 1.6.4.1 (@revision 13717)

Version 1.6.4

Version 1.6.3.2

Version 1.6.3.1

Version 1.6.3

Version 1.6.2

Version 1.6.1

Version 1.6.0

Version 1.5.4

Version 1.5.3

Version 1.5.2

Version 1.5.1

Version 1.5.0.2

Version 1.5.0.1

Version 1.5.0

Version 1.4.0

Version 1.3

Version 1.2

Version 1.1

Version 1.0