Wiki Spaces

Documentation
Projects
Resources

Get Help from Others

Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack

Documentation

Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Implementer shortcuts: Getting Started, HTML Reference

Developer shortcuts: Technical Overview

[edit]

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.

[edit]

Comparison with Infopath FormEntry module

Advantages:

  • Forms are entered in-the-webapp. No need for installed software on the client.
  • You can review a form after entering it and have it look "just like you entered it"
  • Form submission immediately creates data (i.e. no waiting for queues to be processed.)

Disadvantages:

  • No WYSIWYG editor (though one is in the works)
  • Behavior is not really programmable

Want to help improve this module? Contact Darius.

[edit]

Download

[edit]

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 Form Entry Module HTML Reference

[edit]

Screenshots

[edit]

Filling out a form

Note that if you put in an illegal value (per the constraints in the concept dictionary) it is immediately flagged. http://archive.openmrs.org/wiki/Image:Htmlformentry_Filling_out_form.png

[edit]

Viewing a form

This looks pretty close to the initial entry. http://archive.openmrs.org/wiki/Image:Htmlformentry_Filled_out_form.png

[edit]

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>

editRequired PrivilegesThe following privileges may be necessary for various activities. It may be necessary to create them manually, and add them to your user's role.
[] "Patient Dashboard - View Html Forms Section" <- Required to view the HTML Forms tab on the patient dashboard[] "Form Entry" <- Required to enter forms generally"Add Encounters" <-- Required to submit a formeditUpcoming featuresTo request more features, leave a comment on the Discussion section of this page:Talk:Html_Form_Entry_Module.
editFlowsheetsWant 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

editRelease NoteseditVersion 1.6.6 (@revision 14939)Added style="autocomplete" option to obs tagAdded includeIf & excludeIf tagseditVersion 1.6.5 (@revision 14430)Added ability to reference a concept by mapping, or by uuidAdded ability to handle nested obsgroupsReplaced dojo functionality with jqueryMinor bug fixeseditVersion 1.6.4.1 (@revision 13717)Changed all controllers so that sessionForm=falseMinor tweak to assure properly compatibility with HTML Form Designer moduleMinor layout tweakseditVersion 1.6.4Updated so that HTML Forms now have uuids and other BaseOpenmrsMetadata. This will allow Html Forms to work with the sync module.editVersion 1.6.3.2Fixed bug with HTML Form Entry privilegeseditVersion 1.6.3.1Fixed #2261 - Problem using an obs with the same concept id in two obsgroups on one formFixed #2262 - encounterProvider defaults broken in OpenMRS 1.6Updated rendering of date/time widgets to be compatible with OpenMRS 1.7editVersion 1.6.3Added support for handling observations of types Time and Datetime with appropriate widgets - #2231Fixed bug with setting time using the Time widgetFixed bug with rendering international characters in "Preview HTML Forms from File" on systems when UTF-8 is not set as default in JVM - #2218editVersion 1.6.2Significant performance improvement in generating formsFixed #1993 - HTML Form Entry visible to all users under AdministrationeditVersion 1.6.1#2084 - Allow constrained options for numeric and text obs in HTML Form EntryeditVersion 1.6.0Works with OpenMRS 1.6 (since encounter.provider is now a Person, not a User). Incompatible with version of OpenMRS before 1.6.editVersion 1.5.4Backported fix for bug setting time with Time widgeteditVersion 1.5.3Fixed Linux Velocity Errors: Failed to initialize org.apache.velocity.runtime.log.Log4JLogChute (#1953/#1960)editVersion 1.5.2Added ability to make encounterProvider default to the currently logged in user (#1925) (credit: Daniel Futerman)editVersion 1.5.1Added ability to enroll a patient in a programAdded ability to specify encounter time (#1910)editVersion 1.5.0.2Bumped up the version number due to a build error, no code changes occurrededitVersion 1.5.0.1Fixed the log4j.xml file that ships with the module so that logs can be viewed in the openmrs admin interface againeditVersion 1.5.0Exactly like 1.4.0 but it attaches to the new extension point in OpenMRS 1.5.Incompatible with versions of OpenMRS before 1.5.0 RC1editVersion 1.4.0You may now edit a form after having entered it.Enable opening a form based on either formId or htmlFormIdi18n:translations element so you can localize your form for different languagesFixed #1630 - htmlformentry: international characters not allowedsupport for date formatting within the velocity lookup tagsupport for translation of values within the velocity lookup taglocalization of boolean obs, location widget, and user widgetSupport for answerCode/answerCodes in obs elementsWidgets and elements:a section taga repeat element which provides the ability to display a repeating section with different parametersa location widget to enter a locationId in valueText for concepts with text datatyperadio button inputs for coded questionsSupport for answerClasses attribute in obs elementsboolean obs elements can have their yes/no text customizedencounterLocation and encounterProvider tags now allow default valuesencounterDatetime is no longer allowed to be in the futurecoded obs lists are now sorted by display name by defaultDesigning forms:Display a Form Schema that shows concepts and the text that maps to themability to view an in-progress form during design from a file on the filesystemfix htmlform edit page to ensure that the html form that is displayed in the textbox is first escaped correctlyRandom:enable opening a form based on either formId or htmlFormIdFixed some inconsistent behavior because of an upstream bug in Concept.equals(Concept)editVersion 1.3Fixed #1302 - Html Form Entry module doesn't clear old error messagesFixed #1303 - Html Form Entry module doesn't warn you if you leave out a required encounter metadata componenteditVersion 1.2Exactly like version 1.1 except compiled with Java 1.5 compliance.editVersion 1.1If your session expires while entering a long form you are prompted to re-login, instead of losing your work.You may now fill out multiple forms simultaneously in different windows.editVersion 1.0Initial alpha release

  • No labels