Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack...
Transcript of Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack...
![Page 1: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/1.jpg)
1.1
1.1.1
1.1.2
1.1.3
1.2
1.2.1
1.2.2
1.2.3
1.3
1.3.1
1.3.2
1.3.3
1.4
1.4.1
1.4.2
1.4.3
1.4.4
1.5
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.6
1.6.1
1.6.2
1.6.3
1.7
1.7.1
1.7.2
1.7.3
1.7.4
1.8
1.8.1
1.8.2
1.9
1.9.1
TableofContentsIntroduction
OpenMRSAroundtheWorld
ABriefHistory
Example:AmaniClinic
Planning
IsOpenMRSforYou?
IdentifyingYourNeeds
TransitioningtoOpenMRS
GettingStarted
InstallationandInitialSetup
OpenMRSInformationModel
GettingAroundtheUserInterface
Configuration
CustomizingOpenMRSwithPlug-inModules
ManagingConceptsandMetadata
SharingConceptsandMetadata
ConfiguringVisits
CollectingData
ThePatientDashboardInDepth
RegisteringPatients
DataEntry
HTMLForms
XForms
UsingData
CohortBuilder
Reporting
PatientAlertsandFlags
AdministeringOpenMRS
UserManagementandAccessControl
Maintenance
Troubleshooting
GettingHelpfromtheOpenMRSCommunity
Epilogue
LeavingAmaniClinic
AboutthisBook
Appendices
AppendixA:Glossary
1
![Page 2: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/2.jpg)
1.9.2
1.9.3
AppendixB:ExampleHTMLFormSource
AppendixC:DocumentHistory
2
![Page 3: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/3.jpg)
Introduction
3
![Page 4: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/4.jpg)
OpenMRSAroundtheWorldOpenMRSclinicalandresearchlocationsasof2016
Thisisyourbook.SimplyscrolltothetopofanypageandclicktheEDITlinktocontributechanges.Wanttocontributemorethansmalledits?Learnmoreabouthowtocontribute.
OpenMRSisanelectronicmedicalrecordsystem(EMR)platform,designedforuseinthedevelopingworldandfirstestablishedin2004.Today,thesystemhasevolvedintoamedicalinformaticsplatformusedonnearlyeverycontinent,supportinghealthcaredeliveryandresearchinanextremelywidevarietyofcontexts.
Ourworldcontinuestoberavagedbypandemicsofepicproportions,asuntoldmillionsofpeopleareinfectedwithdiseasessuchasHIV/AIDS,multi-drugresistanttuberculosis,malaria,andmanyothers.Manyoftheseinfectionsoccurindevelopingcountries,wherelackofeducationandresourcescontributetoscoresofpreventabledeaths.Preventionandtreatmentinterventionsonthisscalerequireefficientinformationmanagement,whichisparticularlycriticalasclinicalcaremustincreasinglybeentrustedtolessskilledproviders.Whetherforlackoftime,lackofmoney,ornoaccesstosoftwaredevelopers,mosthealthcareprogramsindevelopingcountriesmanagetheirinformationwithsimplespreadsheetsorsmall,poorlydesigneddatabases--iftheyhaveanyelectronicinfrastructureatall.Mosthealthcarerecordsinthedevelopingworldarestillmaintainedonpaper.
Asaresponsetothesechallengesindevelopingcountries,OpenMRSwascreatedasamedicalrecordplatform--arisingtidewhichwehopewillliftallships.Itisdesignedtoofferabettertoolforinformationmanagement,butalsotoreduceunnecessary,duplicateefforts.Intheyearssinceitsinception,theOpenMRScommunityhasgrownfromahandfuloforganizationstoamassivecollaborativeeffortbybothgroupsandindividuals,allfocusedoncreatingmedicalrecordsystemsandacorrespondingimplementationnetworkthatallowsself-relianceinsystemdevelopment,eveninresource-constrainedenvironments.
Sinceitsbeginning,OpenMRShasbeenbasedontheprinciplesofopennessandofsharingideas,softwareandstrategiesfordeploymentanduse.Thesystemisdesignedtobeusableinveryresource-poorenvironmentsandcanbemodifiedwiththeadditionofnewdataitems,formsandreportswithouttheneedtowritecomplicatedapplicationcode.Itisintendedasaplatformthatorganizationscanadoptandmodify,avoidingtheneedtodevelopasystemfromscratch.
Andindeed,organizationsaroundtheworldaredoingjustthat.OpenMRSisnowinuseinclinicsinArgentina,Botswana,Cambodia,Congo,Ethiopia,Gabon,Ghana,Haiti,Honduras,India,Indonesia,Kenya,Lesotho,Malawi,Malaysia,Mali,Mozambique,Nepal,Nicaragua,Nigeria,Pakistan,Peru,Philippines,Rwanda,Senegal,SouthAfrica,SriLanka,Tanzania,The
OpenMRSAroundtheWorld
4
![Page 5: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/5.jpg)
Gambia,Uganda,UnitedStates,Zanzibar,Zimbabwe,andmanyotherplaces.Thisworkissupportedbymanyindividualsandorganizations,includinginternationalandgovernmentaidgroups,NGOs,andfor-profitandnon-profitcorporations.
OpenMRSisnotonlyinuseinmanydifferentplaces,butitisalsobeingusedtomeetmanydifferentneeds.InKenya,itisusedtosupporthealthcaredeliveryforhundredsofthousandsofpatientsatanetworkofover50clinics--someconnectedbytypicalnetworks,butmanywheretheconnectionrequiresofflinesynchronizationtoexternalstoragethatcanbephysicallytransportedbetweensites.AnotherNGOusesacentralOpenMRSserverconnectedtoclinicsinmultiplecountriesviasatelliteInternetconnections.InMalawi,creativeindividualswithatalentfortechnologyhavebuiltamobilecartrunningOpenMRSthatphysiciansrollaroundtheirclinic,interactingwiththesystemusingatouchscreen.InRwanda,thenationalministryofhealthhasworkedtorolloutaconnectednationalhealthcaresystemusingOpenMRS.IntheUnitedStates,OpenMRSisusedtotrackpatientsatlargesportingevents,formobileprovidersofhealthcaretohomelesspeople,andasapersonalhealthrecordthatallowscancerpatientstosharetreatmentandhomehealthcareinformationwithcaregiversandfamilymembers.
OpenMRSinuseatTRACPlusClinicinKigali,Rwanda.
Inthelastseveralyears,useofmobiletechnologyhasincreaseddramatically,particularlyinthedevelopingworld.Insomedevelopingcountries,therearemoremobilephonesthanpeople!Facilitatedbyotheropensourceprojects,OpenMRScanbeintegratedwithSMSmessaging,allowingcommunityhealthworkerstoaddinformationaboutadherencetomedicationregimenstoapatient'srecord,astheymakeroundsthroughvillagesinruralAfrica.Elsewhere,mobilephoneapplicationsareusedtoguidethesecommunityvolunteersinhome-basedHIVtestingandcounseling,enrollingprospectivepatientsfromthecomfortoftheirownhomes.
Besidesclinicalcare,theplatformcanalsobeusedinresearchsettings.IntheUnitedStates,OpenMRShasbeenusedbothintrainingmedicalinformaticsstudents,aswellasinconductingvariousresearchprojectsinthefieldsofpublichealth.InPeruOpenMRSisusedastheresearchdatabaseforalargestudyofdrugresistanttuberculosisfundedbytheUSNationalInstitutesofHealth.Becausethesystemhasbeendesignedasanextensibleplatform,itisveryeasyforresearcherstoadaptOpenMRStodowhattheyneed.
OpenMRSAroundtheWorld
5
![Page 6: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/6.jpg)
OpenMRSAroundtheWorld
6
![Page 7: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/7.jpg)
ABriefHistoryOneofOpenMRS'birthplaces–MoiUniversityTeachingandReferralHospitalinEldoret,Kenya(2004)
Throughoutthe1990s,anacademicpartnershipflourishedbetweenIndianaUniversitySchoolofMedicineintheUnitedStatesandMoiUniversityinEldoret,Kenya,providingKenyanmedicalstudentswithaccesstohealthcaretraining.ThisprogramcontinuedtogrowforseveralyearsuntilasevereoutbreakofHIV/AIDSinWesternKenyacausedtheprogramtorethinkitsgoals,atwhichpointtheAcademicModelforPreventionandTreatmentofHIV/AIDS(AMPATH)wascreated.ThenumberofpatientsinKenyacontinuedtogrow,andbasicITsystemsincludingMicrosoftAccesswereusedtomonitorpatientcare.
InFebruary2004,theamountofdatahadbecometoolargeforAMPATH'sexistingsystems,sotheirmedicaldirectorinvitedBurkeMamlin,fromtheRegenstriefInstituteinIndianapolis,UnitedStates,tovisitthesiteandevaluatehowimprovementsinmedicalinformaticstechnologycouldimproveAMPATH'sdatamanagement.Regenstriefhadlongbeenrecognizedasaleaderinmedicalinformaticsresearch,andBurkebroughthiscolleaguePaulBiondichalongwithhimonthevisittoKenya.Itquicklybecameapparentthatanewsystemwasneeded.PaulandBurkebegantodesignthedatamodelforanewmedicalrecordssystemforAMPATH,whichwouldgoontobecomeOpenMRS.
Atthesametime,aBoston-basednon-profitnamedPartnersInHealth(PIH)waspioneeringtheuseofweb-basedEMRsindevelopingcountries.TheyhadbuiltthePIH-EMR,whichtheywereusingtosupportthetreatmentofmulti-drugresistanttuberculosisinPeruandHIVinHaiti.ButHamishFraser,PIH'sdirectoroftheEMRproject,wasworried:PIHwasabouttoexpandintoRwanda,Lesotho,andMalawi,andhefeareditwouldbedifficulttomaintaintheirhome-builtsystemin5countries.
InSeptember2004,PaulandBurkemetHamishattheWorldCongressonMedicalandHealthInformatics(MedInfo)conferenceinSanFrancisco.Itbecameapparentthatthethreesharedsimilargoalsandneeds,sotheyagreedtoworkcollaborativelytodevelopasystemthatwouldbesuitableforthevariousneedsofhumanitarianworkinAfricannationsandbeyond.
ABriefHistory
7
![Page 8: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/8.jpg)
PaulandBurkehireddeveloperBenWolfetobeginworkonprogramminganearlyprototypeofOpenMRS,basedontheirpreviousworkatAMPATHandRegenstrief.Severalmonthslater,PIH'sleaddeveloperDariusJazayerijoinedtheproject,mergingPIH-EMR'sfunctionalityintothenewsystem.TheprevioussystemsatAMPATHfocusedondataentry,whileatPIH,thefocuswasmoreonclinicalworkflow.ThenewsystemcombinedfeaturesofboththeAMPATHandPIHsystems.
BecauseofthestrongcooperationbetweenPIHandRegenstriefandthelongdistancesinvolved,itbecameclearthatanopensourcesoftwaremodelofdevelopmentwasthebestwaytosustainandgrowtheplatform,andtheOpenMRSprojectwasborn.
WhilethecollaborationbetweenRegenstriefandPIHcontinuedandthenewsystemwasbeingdesigned,thegroupswerelookingforadditionalsupportinAfrica.TheyturnedtotheircolleagueChrisSeebregts,fromtheSouthAfricanMedicalResearchCouncil(MRC).Chriswasalreadyheavilyinvolvedinthefieldofmedicalinformaticsthroughoutsub-SaharanAfrica,andbroughtwithhimawealthofknowledgeabouttheneedsofinformaticsimplementations.SeebregtshadbeenadaptingOpenMRSforuseinSouthAfricaandstartedtobuildupacommunityofimplementersofthesoftwarearoundtheworld.HisworkledtomassivegrowthoftheOpenMRScommunity(nownearly2,000strongasoflate2011).InFebruary2006,AMPATHlaunchedOpenMRSinKenya,andPIHbroughtittoRwinkwavu,Rwanda,inAugustofthesameyear.TheSouthAfricanMRCfirstswitchedonthesystematRichmondHospitalinKwaZulu-Natalattheendof2006.
AsboththeOpenMRSapplicationandopensourcecommunitygrew,theygatheredtheattentionofmanyotherlargeprojectsandagencies.Someofthesehaveextendedbothfinancialandconsultingsupportoverthepastseveralyears,including:
TheUnitedStatesCenterforDiseaseControl(CDC)
TheUnitedStatesCenterforDiseaseControl(CDC)
Canada'sInternationalDevelopmentResearchCentre(IDRC)
NationalInstitutesofHealthFogartyInternationalCentre
TheMillenniumVillagesProjectoftheEarthInstitute,ColumbiaUniversity
TheRockefellerFoundation
WorldHealthOrganization
Inanefforttobroadenparticipationintheprojectaroundtheworld,OpenMRSbeganparticipatingintheGoogleSummerofCode(GSoC)programin2007.GSoCprovidesuniversitystudentswhowishtoparticipateinopensourcedevelopmentprojectswithastipendandaclosementoringrelationshipwithanexperiencedprojectteammember.Participationintheprogramhascontinuedsincethen--OpenMRSisnowoneofthelargeropensourceprojectsintheprogram,boastingalargeclassofalumni,anumberofwhomcontinuetocontributetotheproject.Manyofthesealumnicomefromthedevelopingworld,andsomehavegoneontosuccessfulsoftwaredevelopmentcareers.
ABriefHistory
8
![Page 9: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/9.jpg)
TheinauguralOpenMRSImplementersMeetinginCapeTown,SouthAfrica.
OneoftheaimsoftheOpenMRScommunityistohelpbuildlocalcapacityintheplaceswhereitisused.Tothatend,participantsinthecommunityareencouragedtodevelopprogramsandprocessesthatencourageentrepreneurshipandthecreationofpartnershipstogrowthefieldofmedicalinformatics,particularlyinthedevelopingworld.Forexample,inKigali,Rwanda,PartnersInHealthjump-startedalocaltrainingprogramknownasE-HealthSoftwareDevelopmentandImplementation(EHSDI).This9-monthcourseconductedinpartnershipwiththeRwandaDevelopmentBoardandtheKigaliInstituteofScienceandTechnology(KIST)wasdesignedtoteachstudentstodevelopmedicalinformationsystems.ItincludesextensivetraininginusingtheOpenMRSplatform.
ThenumberofindividualandorganizationalvolunteerswhoparticipateintheOpenMRScommunityhascontinuedtogrow,triplinginsizebetween2010and2011.Theseindividualsparticipateinvariousways,fromdocumentationandbugreports,fromtrainingandprovidingsupporttoothercommunitymembers.ThereleaseofOpenMRS1.8wasmadepossiblebytheassistanceofover50contributors.
Further,collaborationswithotheropensourcesoftwareorganizationssuchasOpenDataKitandPentahohaveproducedvolunteercontributionstoOpenMRS,andcommercialconsultingorganizationssuchasThoughtWorksInc.havecontributedmanyhourstodevelopingandimprovingOpenMRS.
Atthecloseof2011,theOpenMRScommunityispreparingtolaunchanindependentnot-for-profitorganizationtohelpsupporttheproject'sneedsasitgrows.Thegoalofthisorganizationwillbetoprovidetechnicalinfrastructureandcommunitymanagement,toassistcollaborationandcooperationofprojectvolunteersthroughouttheworld,andtoprovidetrainingandsupporttothosewhoseektoimplementOpenMRSasakeypartofamedicalinformaticsstrategyinclinics,hospitals,andgovernmenthealthorganizations.
FromitshumblebeginningsasasolutiontoaprobleminasmallAfricantown,OpenMRShasbecomethelargestopensourcehealthcareprojectontheplanet.Between2006and2011,OpenMRSatAMPATHinKenyahasrecordedover111,000,000pointsofdataforover180,000patients,helpingtosavemanythousandsoflives.Everyday,similarstoriesareretoldsomewhereelse
ABriefHistory
9
![Page 10: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/10.jpg)
aroundtheworldwiththeassistanceofthousandsofvolunteers.TheOpenMRScommunitycontinuestogrow,andweareexcitedthatyou'reinterestinginjoiningus.Regardlessofyourbackgroundorinterests,thereisawayforyoutobothcontributeandgainfromtheworkofothersintheOpenMRScommunity.
What'sNewinVersion1.9
ThisversionofOpenMRSincludesanewconcept,Visit.AvisitiscomprisedofatleastoneEncounter.Encounterhasbeenredefinedinthisversionasatransactionbetweenapatientandatleastonehealthcareprovidertoprovideserviceorassessapatient'shealthstatus.
OpenMRSAttributesnowallowsforimplementation-specificcustomizationsofcertaintypesofOpenMRSdata.Inearlierreleases,onlyPersoncouldbecustomized.Now,youcanalsocustomizeProvider,Visit,andLocationdata.
ConceptMappinghasbeenimprovedinthisrelease,nowallowingyoutodefinehowyoursystem'sconceptsrelatetoexternalconceptsandstandards.
ABriefHistory
10
![Page 11: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/11.jpg)
Example:AmaniClinicWeassumeifyou'rereadingthisbookthatyou'reinterestedindeployingOpenMRStosupportclinicalcareintherealworld.Tobridgethedividebetweentheoryandpractice,andtoillustratethesometimeschallengingprocessofdeployingalargehealth-careinformationsystem,wehaveusedtheexampleofthefictionalAmaniClinicasacasestudythroughoutthisbook.
Everytimeyouseethisimageinthebook,youwilllearnhowAmaniClinicusedtheinformationdiscussedtoplanandimplementOpenMRS.
WhileasingleexamplecouldneverpossiblycaptureallthecomplexityofthemanydifferentcontextsinwhichOpenMRSmightbeused,wehopeitwillserveasinspirationtothinkabouthowyourenvironmentmaybesimilarordifferent.Wealsohopethatasyouread,youwillstarttoconsiderthequestionsyouneedtoasktobegintodesignandimplementyourowninstallationofOpenMRS.
AbouttheAmaniClinic
Ourfictionalcasestudy,AmaniClinicinKisiizi,Uganda.
KisiiziisasmalltowninsouthwestUganda,over40kilometersfromthenearestlargecity.MuchofthefameofKisiiziisbasedonitshydroelectricpowergeneratingstationanditsrelativelylargehospital,whichhandlesmostofthehealthcarefortheregion.
Justovertwoyearsago,aEuropean-basedNGOprovidedfundingtohelplaunchanewhealthcarefacilitywe'llcall"AmaniClinic"inthetown.Thisclinicwasopenedspecificallytoaddresstheneedformaternalandchildhealth(MCH)careinKisiiziandthesurroundingareas.
Sinceitsopening,theclinichasbeenverysuccessfulinestablishingitself,andhasattractedafullstaffofdoctors,nurses,andassistants.Newpatients,bothpregnantwomenandnewmothers,arecontinuallybeingregisteredintheclinic,butthereisverylittleinformationavailableabouttheefficacyoftheworkintheclinic,ortheoutcomesforitspatients.Therefore,thefundingagencyhasrequestedthattheclinicworktoimplementaninformationsystem,tohelpbettermonitorandevaluatethehealthcareoutcomesofthepatientsovertime,andtohelptheclinicscaleuptoseemorepatientsmoreefficiently.TheagencyrecommendedthattheclinicconsiderusingOpenMRS,whichhadbeensuccessfullyusedbyotherprojectsfundedbythatagencyinothercountries.
Thefundingmodelprovidedforsomeinformationandcommunicationtechnology(ICT)infrastructuretogettheprojectstarted,aswellasforsomestaffingsupport.However,decidinghowtoallocatethismoneywasleftuptotheclinic'slocalmanagement.Afterreceivingthegrantfunding,thedirectorofthesitehiredClaudine,agraduateofamedicalinformaticstrainingprograminneighboringRwanda,tohelpleadtheeffort.Thisnewly-hiredinformaticsmanager,inturn,hiredDaniel,recentuniversitygraduatefromKampalawithexpertiseinICTinfrastructureandsystemadministration.
Sincetheclinicwasopened,doctorsandnurseshaveusedpaperformstocollectdataabouttheirpatients.Theseformsarestoredinfoldersandkeptinalockedfileroomuntilapatient'sappointment.Whenthepatientsarrive,theyaregiventheirfoldertocarrywiththemastheytalkwiththevarioushealthcareproviderstheywillseeduringtheirvisit.Eachoftheseproviderscompletesthe
Example:AmaniClinic
11
![Page 12: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/12.jpg)
relevantpaperformstoaddinformationaboutthevisit.Theformsareaddedtothepatient'sfolder,whichisreturnedattheendoftheirvisit.
ClinicalstaffwereconcernedwhentheyheardabouttheupcomingdeploymentofOpenMRC,becauseofthepossibilityofchangestothewaytheyareusedtoworking.However,theinformaticsmanagerhasassuredthemthattheycancontinuetousethefamiliarpaperforms.Whenapatientarrivesattheclinic,theywillberegisteredbyapatientregistrationclerk.Afterthepatient'svisitiscomplete,adataentryclerkwillentertheinformationfromthatvisitintoOpenMRS.
ManypeopleinKisiizihavebasicICTskills,andthereisalocalInternetcafe,supportedbyanNGOthatprovidesbasicICTtrainingtolocalresidents.Tworecentstudentshavebeenhiredasthefirstpatientregistrationanddataentryclerksfortheclinic.
Meanwhile,thesystemadministratorhasfinishedhispreparationworkandhasdeployedabasiclocalareanetwork(LAN)toconnectaserverthatwillhosttheOpenMRSapplicationtoPCsinthefileroom,intheclinicmanager'soffice,andintheICTroom.TheLANisconnectedtotheInternet,althoughtheconnectionisn'tveryfastandoftengoesoffline.Theserverispoweredbyanuninterruptiblepowersupply(UPS),thatwillensureitstaysrunningdespiteanyfluctuationsinthelocalpowergrid.
Throughtherestofthisbook,youwillfollowtheprogressofthepeopleattheAmaniClinicastheyinstallOpenMRS,customizeittofittheneedsoftheirclinic,anduseOpenMRSfromdaytoday,firsttoenterdataandthentoextractitforpatientvisitsandforreportingtotheirfundingagencyonanongoingbasis.
Example:AmaniClinic
12
![Page 13: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/13.jpg)
Example:AmaniClinicWeassumeifyou'rereadingthisbookthatyou'reinterestedindeployingOpenMRStosupportclinicalcareintherealworld.Tobridgethedividebetweentheoryandpractice,andtoillustratethesometimeschallengingprocessofdeployingalargehealth-careinformationsystem,wehaveusedtheexampleofthefictionalAmaniClinicasacasestudythroughoutthisbook.
Everytimeyouseethisimageinthebook,youwilllearnhowAmaniClinicusedtheinformationdiscussedtoplanandimplementOpenMRS.
WhileasingleexamplecouldneverpossiblycaptureallthecomplexityofthemanydifferentcontextsinwhichOpenMRSmightbeused,wehopeitwillserveasinspirationtothinkabouthowyourenvironmentmaybesimilarordifferent.Wealsohopethatasyouread,youwillstarttoconsiderthequestionsyouneedtoasktobegintodesignandimplementyourowninstallationofOpenMRS.
AbouttheAmaniClinic
IsOpenMRSforYou?
13
![Page 14: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/14.jpg)
KisiiziisasmalltowninsouthwestUganda,over40kilometersfromthenearestlargecity.MuchofthefameofKisiiziisbasedonitshydroelectricpowergeneratingstationanditsrelativelylargehospital,whichhandlesmostofthehealthcarefortheregion.
Justovertwoyearsago,aEuropean-basedNGOprovidedfundingtohelplaunchanewhealthcarefacilitywe'llcall"AmaniClinic"inthetown.Thisclinicwasopenedspecificallytoaddresstheneedformaternalandchildhealth(MCH)careinKisiiziandthesurroundingareas.
Sinceitsopening,theclinichasbeenverysuccessfulinestablishingitself,andhasattractedafullstaffofdoctors,nurses,andassistants.Newpatients,bothpregnantwomenandnewmothers,arecontinuallybeingregisteredintheclinic,butthereisverylittleinformationavailableabouttheefficacyoftheworkintheclinic,ortheoutcomesforitspatients.Therefore,thefundingagencyhasrequestedthattheclinicworktoimplementaninformationsystem,tohelpbettermonitorandevaluatethehealthcareoutcomesofthepatientsovertime,andtohelptheclinicscaleuptoseemorepatientsmoreefficiently.TheagencyrecommendedthattheclinicconsiderusingOpenMRS,whichhadbeensuccessfullyusedbyotherprojectsfundedbythatagencyinothercountries.
Thefundingmodelprovidedforsomeinformationandcommunicationtechnology(ICT)infrastructuretogettheprojectstarted,aswellasforsomestaffingsupport.However,decidinghowtoallocatethismoneywasleftuptotheclinic'slocalmanagement.Afterreceivingthegrantfunding,thedirectorofthesitehiredClaudine,agraduateofamedicalinformaticstrainingprograminneighboringRwanda,tohelpleadtheeffort.Thisnewly-hiredinformaticsmanager,inturn,hiredDaniel,recentuniversitygraduatefromKampalawithexpertiseinICTinfrastructureandsystemadministration.
Sincetheclinicwasopened,doctorsandnurseshaveusedpaperformstocollectdataabouttheirpatients.Theseformsarestoredinfoldersandkeptinalockedfileroomuntilapatient'sappointment.Whenthepatientsarrive,theyaregiventheirfoldertocarrywiththemastheytalkwiththevarioushealthcareproviderstheywillseeduringtheirvisit.Eachoftheseproviderscompletestherelevantpaperformstoaddinformationaboutthevisit.Theformsareaddedtothepatient'sfolder,whichisreturnedattheendoftheirvisit.
ClinicalstaffwereconcernedwhentheyheardabouttheupcomingdeploymentofOpenMRC,becauseofthepossibilityofchangestothewaytheyareusedtoworking.However,theinformaticsmanagerhasassuredthemthattheycancontinuetousethefamiliarpaperforms.Whenapatientarrivesattheclinic,theywillberegisteredbyapatientregistrationclerk.Afterthepatient'svisitiscomplete,adataentryclerkwillentertheinformationfromthatvisitintoOpenMRS.
ManypeopleinKisiizihavebasicICTskills,andthereisalocalInternetcafe,supportedbyanNGOthatprovidesbasicICTtrainingtolocalresidents.Tworecentstudentshavebeenhiredasthefirstpatientregistrationanddataentryclerksfortheclinic.
Meanwhile,thesystemadministratorhasfinishedhispreparationworkandhasdeployedabasiclocalareanetwork(LAN)toconnectaserverthatwillhosttheOpenMRSapplicationtoPCsinthefileroom,intheclinicmanager'soffice,andintheICTroom.TheLANisconnectedtotheInternet,althoughtheconnectionisn'tveryfastandoftengoesoffline.Theserverispoweredbyanuninterruptiblepowersupply(UPS),thatwillensureitstaysrunningdespiteanyfluctuationsinthelocalpowergrid.
Throughtherestofthisbook,youwillfollowtheprogressofthepeopleattheAmaniClinicastheyinstallOpenMRS,customizeittofittheneedsoftheirclinic,anduseOpenMRSfromdaytoday,firsttoenterdataandthentoextractitforpatientvisitsandforreportingtotheirfundingagencyonanongoingbasis.
IsOpenMRSforYou?
14
![Page 15: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/15.jpg)
IdentifyingYourNeedsDiscussingrequirementsandneedsatTRACPlusclinicinKigali.
Thischaptercoverssomebasicstrategiesforidentifyingyourorganizationalneeds,andhowOpenMRSmighthelp.ItdoesnotgointodetailaboutwhatOpenMRSdoesorhowitstoresdata--youwillfindthatinotherchapters.Instead,weencourageyoutofirsttakeastepbackandthinkaboutyourorganization.
Yourorganizationalgoalsandpractices
Fornow,forgetabouttechnologyandinsteadthinkaboutyourorganizationalgoalsandprocesses.Here'salistofquestionstostart:
Whatarethehigh-levelgoalsofyourorganization?
Whataretheteamsandstaffintheclinic?Whatrolesexist?Whatfunctionsdoeseachroleperform?
Whattasksarestaffinvolvedwithonaday-to-daybasis?
Whatservicesdoestheclinicprovidetoyourpatients?Whatactivitiesareinvolved?
Whatother3rd-partyorgovernmentorganizationsdoyoureportto?Whatinformationisincludedineachofthesereports?
Answeringthesequestionswillprobablyhelpyouthinkofmorerelatedquestions.Makesureyouconsiderthemthoroughly.
TakeadvantageofinstitutionalknowledgeAsyouthinkaboutyourpatientsandhowtheyinteractwithyourorganization,talktoyourclinicalandadministrativestaff--boththosewhohavebeenaroundalongtime,andthosewhohavejustjoined.Talktoasmanypeopleaspossibletogetacompletepictureofeveryserviceprovidedtopatients.
IdentifyingYourNeeds
15
![Page 16: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/16.jpg)
Peoplegenerallywanttobepositiveindescribingtheirworkplaces,soyoumayneedtoasksomepeoplemultipletimes.Getphysicalorelectroniccopies,orpicturesofallpaperformsifpossible.Figureoutwhere(e.g.,specificroomsanddesks)dataisrecordedontopaperandbywhom.Writeanoverviewofcurrentpracticesanddefinespecificshortcomingsthatcouldbeaddressedbyusinganelectronicmedicalrecordssystem.
Notethatpracticesmayvaryseasonally,forexampleifthehospitalismuchbusierduetoincreasedmalariaduringrainyseasonormalnutritionbeforeharvest.
MapyourneedstoOpenMRS
OpenMRShasbeendesignedtobeflexibleandadaptable,basedoninputfrommanydifferentpartners,butitmaynotbeanexactfitforthewaysthatyourorganizationcurrentlyworks.Doingthingsthe"OpenMRSway"couldmeanadaptingyourworkflowandadoptingbestpracticesinmedicalinformatics.Bepragmaticandflexible,andthinkaboutwhetheryourcurrentworkingpracticesmightneedtochange.
RememberthatOpenMRSoffersmanyopportunitiestocaptureandanalyzeinformationinnewwaysnotpreviouslypossible.Takingadvantageofthesenewpossibilitiesmightleadtopositivechangesandimprovementsforyourorganization.
Donot"reinventthewheel"TheopensourcenatureofOpenMRSextendsbeyondapplicationitselftoamuchlargeropencommunitywhereideasandexperiencesareshared.Therearemanyexistingresourcesavailableintheformofpre-builtOpenMRSfeatures(modules)andcontentthatanewimplementershouldtakeadvantageof.Youshouldexplorethefollowingresourcesbeforebuildinganythingnew.
Reuseanexistingconceptdictionary
Awell-constructed,matureconceptdictionary(seethe"OpenMRSInformationModel"chapter)isastrongfoundationforanyOpenMRSImplementation.
TheMilleniumVillagesProject(MVP)maintainsawell-curatedconceptdictionary.Ifthisdictionaryisapplicabletoyourdomainofcare,youshouldstronglyconsiderusingit.Thebestwaytolearnaboutthisdictionaryisthroughapartnerproject,theMaternalConceptLab.
http://om.rs/book-mcl
OtherOpenMRSimplementerscanalsohelpadviseyouaboutotherconceptreferencesforyourdomain.Readthe"GettingHelpfromtheOpenMRSCommunity"chapterformoreinformation.
Adaptexistingforms
ImplementersshouldevaluatedatacollectionformsbuiltbyotherOpenMRSusersbeforecreatingnewcustomformsfortheirspecificneeds.
ImplementersacrosstheOpenMRScommunityhaveinvestedalotofresourcesinensuringthattheirformsreflectclinicalbestpractices,internationalstandards,andcurrentresearch.Theseformshavealreadybeenoptimizedforelectronicdataentry.ManyOpenMRSpartnersdevelopformsusingmedicalinformaticsexpertsthatmaynotbeavailabletoallprojects.Finally,creatingformsistimeconsuming;thoseresourcescouldberedirectedtootherefforts.
TheOpenMRSFormBankisanewcommunity-drivenprojectthatisbeginningtocollectexistingformsfromotherusers.VisitFormBankfordetails,orcontactotherimplementersforhelp.Readthe"GettingHelpfromtheOpenMRSCommunity"chapterformoreinformation.
IdentifyingYourNeeds
16
![Page 17: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/17.jpg)
Explorethemodulerepository
ImplementersshouldconsulttheOpenMRSModuleRepositoryathttps://addons.openmrs.org/beforeconsideringcustomizationthroughsoftwaredevelopment.
Thereisagoodchancethatsomeonehascreatedamoduletoaddressneedsyoumayhave.Readthe"CustomizingOpenMRSwithPlug-inModules"chapterforalistofrecommendedmodules.
Amanidiscoverstheirspecificneeds
OncetheclinicdeterminedtheywoulduseOpenMRS,theybeganthinkingspecificallyabouthowtheywouldintegratetheirexistingprocessesintotheworkflowsupportedbythesoftware.Asthenewly-hiredmedicalinformaticsmanager,Claudineknewsheshouldspeakwitheveryoneworkingintheclinicandwatchthemduringatypicaldaytounderstandhowtheywork.Whenshespoketothem,sheassuredthemthatOpenMRSwouldhelptomaketheirworkeasier,andtheywouldstillbeusingthesameoverallprocessestheywerefamiliarwith.
ClaudinefoundmanyresourceswithintheOpenMRScommunity,includingpre-existingconceptdictionariesandformsthathadbeenusedinotherclinics.ShewasabletotaketheseartifactsandadaptthemtoAmani'spaperformsalreadyinuse.Startingoutwiththeworkofotherssavedquiteabitoftime.
IdentifyingYourNeeds
17
![Page 18: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/18.jpg)
TransitioningtoOpenMRSApaper-basedpatientregisterbookatanAfricanOpenMRSclinic.
ThischapteroutlinesstepsthattypicallymakeupaOpenMRSproject,andshouldbereadbypeopleabouttoembarkonaOpenMRSimplementation.Someofthisinformationmaybeobvioustoexperiencedprojectmanagers.Acomprehensiveguidetoprojectmanagementisbeyondthescopeofthisbook,butwehaveincludedsomehigh-levelprocessconsiderationstogetyoustartedthinkingaboutwhatneedstohappen.
Werecommendyoutrytobuildastructuredimplementationprocess.It'simportanttoplancarefully--thedecisionsyoumakeduringthisprocessrequiresubstantialinvestmentsofresources,andyouwillbelivingwithyourchoicesfortheforeseeablefuture.
WhenyoustartoutonanewOpenMRSproject,youshouldspendtimethinkingabout(atminimum):
Whichpeoplewillbeinvolvedintheproject
BusinessgoalsofusingOpenMRS
Howyouwillapproachtheinitialconfiguration
Whatongoingsupportyouwillneed
CostsassociatedwithICTinfrastructure
Traininganddocumentation
Changemanagement
Peopleandtheprojectteam
Yourprojectimplementationteamshouldincludeclinicstaff:
TransitioningtoOpenMRS
18
![Page 19: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/19.jpg)
1.Managementareawareoffundingobligationsandthirdpartyreportingrequirements.
2. Healthcareprovidersarefocusedonimprovingpatientcare.
3. Administrativestaffarespecialistsofworkflowissuesandclinicprocesses.
Theteamcouldalsoincludethefollowingpeoplethatmayormaynotbefromtheclinic:
1. AsystemadministratorisinchargeofinstallingandmaintainingOpenMRSinsideoftheclinic'sICTinfrastructure.
2.Medicalinformaticsexpert(s)createclinicaldocumentationandensurethatdataismanagedproperlyinthesystem.Developreports.
3. (Optional)Aprojectmanagerorcoordinator.Forlargerimplementations,thispersonworkstoholdpeopleaccountabletofinishingtheirworkinatimelymanner,andensurestheprojectisontrack.
4. (Optional)Softwaredevelopersmaybeneededforlocationsthatdecidetocustomizethesystem.
Itisveryimportanttoincludeclinicalstaff(forexamplenurses,dataentryclerks,andothers)inyourimplementationteamfromtheearliestphasesoftheprojectsothattheresultingdeploymentisusefulforthemandeasyforthemtouse.
ManaginganOpenMRSprojectwillrequireamajortimeinvestmentfrompeoplewithinyourorganization,evenifyouemployanexternalconsultant.OrganizationsoftenunderestimatetheamountoftimethatwillberequiredfromtheirstaffinimplementinganenterpriseICTproject.Thistimeinvestmentincludesitemssuchastraining,modifyingexistingprocesses,andprovidingneworupdatedinformationtorelevantpeople.DeployingOpenMRSisnodifferent.It'snotsomethingthatcanbeaddedtotheendofanalreadybusyschedule,andweurgeyoutokeepthisinmindandtakeitintoconsiderationwhenplanning.
GoalsBythispointintheproject,youshouldhaveagoodideaofwhatindicatesasuccessfulOpenMRSimplementationforyourclinic.Thiscouldbesomethinglikereducingtimetopreparemonth-endreportsby50%,orincreasingantiretroviraltreatment(ART)inHIV-infectedpregnantwomenby25%.Yourgoalsshouldbespecific,measurable,attainable,relevant,timely--orSMART.
Thesegoalswillhelpyouindirectingandmanagingyourproject.Forexample,iftheprojectgroupwantssomecustomizationthatrequiresbudgetandeffort,youroverallgoalswillhelpyoudecidewhetherornottoconsiderthatcustomization.YourgoalswillhelpyoutofocusonwhyyouareimplementingOpenMRSandwhatyouwanttoachieveinthelongrun.
Incrementaladoption
Itoftenmakessensetodividetheimplementationprocessintosmaller,moremanageablesections,whichcanbeimplementedindiscretestagesoriterations.Implementinginstagesallowspeopletogetusedtochangesgraduallywithoutfeelingoverwhelmed,andallowsyourimplementationteamtoberesponsivetofeedbackfromusersduringtheprocess.
Anotherreasonpeoplechoosetodevelopiterativelyisthatitisveryhardforuserstocorrectlyorfullyexplaintheirrequirementsatthebeginningoftheproject.Givingpeoplehands-onexperienceofanearlyversionofthesystemhelpsthemunderstandhowitworksandwhatmightbepossible.Theycanthenprovideyouwithvaluablefeedback,andtheymightidentifynewrequirements.
TransitioningtoOpenMRS
19
![Page 20: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/20.jpg)
TheAmaniClinicchosetointroducechangeiteratively.Firsttheystartedusingthesystemforpatientregistration.Thisaffectedonlytheadministrativestaffwithoutimpactingtheclinicalstaff.Latertheystarteddoingretrospectivedataentry,whichincludedpaperformsforcliniciansthathadminorchanges,aswellastraininganewdataentryclerk.
Pilotprojects
Largermulti-siteimplementationsmaywishtodevelopapilotapproachtohelpreducerisk.Inthisscenario,youwouldonlydeployOpenMRSatonesiteandlearnabouttheprocessinamorecontrolledway.Youcanthenincorporatewhatyou'velearnedintoacoordinatedimplementationprocessforothersites.
Ongoingsupportanddevelopment
ItisamistaketothinkaboutanOpenMRSprojectasaone-offinstallationthatwillmeettheneedsofyourorganizationfortheforeseeablefuture.Organizationsarealwayschangingandevolving.Yourmedicalrecordsystemshouldevolvewithyou,otherwiseitwilleventuallybecomeoutofsyncwiththeorganization.
OnceyouhavebeenusingOpenMRSforawhileandstaffarecomfortablewithit,youwilllikelywanttotakeadvantageofadditionalfunctionality.EachimprovementornewpieceoffunctionalityyoudecidetoimplementinOpenMRSwilltakeresources,soyouwillwanttoplanaheadforthese.
Evenifyourorganizationalneedsdon'tchange,youneedtoplanforongoingsupportofOpenMRS,including:
Keepingyoursystemup-to-datewithsecuritypatches
UpgradingtothelatestversionofOpenMRS(notalwaysnecessary,butOpenMRSiscontinuallyimprovingusabilityandaddingfunctionality)
Upgradingthemodulesyouusetofixbugsandimprovefeatures
Maintenanceofyourserverandnetworkinfrastructure
Formoreinformation,seethe"Maintenance"chapter.
TrainingTrainingisalsoanimportantpartofanyOpenMRSimplementationproject.Yourtrainingcouldtakemanyformsdependingontheneedsofyourusers,butitoftenmakessensetospendresources(e.g.,timeandmoney)onformalandreusabletrainingresourcessuchasuserguides,lessonplans,andothermaterials.
Tryingtocovereverythinginonetrainingsessionprobablywon'tbeeffective.Peoplewillwantandneedtimetodigestthenewideastheylearnandusethemintheirdailywork,andyoumustanticipatestaffturnover.Instead,considerholdingsmallertrainingsessionsthatintroduceconceptsandspecificfunctionality,followedbyperiodsoftesting,pilotingandfeedback.Customizeyourtrainingforyouraudience--noteveryoneneedstositthroughatwo-hourtrainingsessionondataentryifonlyasinglepersonisresponsibleforthisrole.Whenpossible,trainpeopletobecometrainers.Thisincreasespeoples'senseofownershipinyourOpenMRSimplementation,andhelpspeopletobetterrememberwhattheylearn.
Trainingisanongoingprocess.Newemployeeswillneedtobetrainedwhentheystart,andpeoplefamiliarwiththesystemcanbenefitfromlearningaboutmoreadvancedtopics.PeoplemayneedfurthertrainingwhentherearesignificantupgradesornewfunctionalityisaddedtoOpenMRS.
Changemanagement
TransitioningtoOpenMRS
20
![Page 21: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/21.jpg)
Introducinganelectronicmedicalrecordsystemwillcausechangesinworkflowandprocessesatyourorganization.Thesechangesmaybe"political"andcausechallengesinyourorganization,ortheymaybemorepracticalandtechnicalchanges.Eitherway,toomuchchangeatthesametimeisoftendifficultandstressful.
Tohelp,givepeopletimetoacceptandsupporteachchangesothattheyshareinownershipofthenewsystem,ratherthanfeelingasifsomethinghasbeenforcedonthem.FocusonsimpletasksatthebeginningofdeploymentandintroducemoredifficulttasksaspeoplestarttobetterunderstandOpenMRS.Showstaffhowthenewsystemwillmaketheirworkeasierandwheretheirfeedbackhasbeenincorporated.
Goodplanningcanminimizetherisksaroundchange,butitisimportanttobeflexiblewithinyourplan.Unforeseenthingsoftenoccur,andaplanthatistoorigidcouldpreventyoufromreachingthebestsolution.
TransitioningtoOpenMRS
21
![Page 22: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/22.jpg)
InstallationandInitialSetupAnOpenMRSserverinUganda.
YoucandownloadOpenMRSfromtheOpenMRSwebsite:
http://download.openmrs.org
TherearetwowaystoinstallOpenMRS:Standalone,andEnterprise.YoumusthaveJava6orhigherinstalledonyoursystemtorunOpenMRS.ForOpenMRSPlatform2.0+(includesthecommunity'sReferenceApplication2.5+),Java8orhigherisrequired.
OpenMRSStandaloneprovidesasimplifiedinstallationoptionwithanembeddeddatabaseandwebserver.ItisagreatwaytoevaluateandexploreOpenMRS,lettingyougetalocalversionupandrunningwithinminutes,andincludesdownloadoptionswithsampledata.OpenMRSStandaloneshouldrunfineforsmallerinstallations(fewerthan10,000patientrecords),butifyouaresettingupalargerinstallation,werecommendusingtheEnterpriseinstallation.Ifyouarenotsurewhichmakessense,youcanstartwithaStandaloneinstallationandmigrateyourdatatotheEnterpriseversionlater.
OpenMRSEnterpriseisappropriateforlargerinstallations.IfyoualreadyhaveaJavaservletcontainerandadatabaseinstalled,andyouwanttosetupOpenMRStousetheseresources,youshoulduseOpenMRSEnterprise.
OpenMRSStandalone
Toinstallthestandaloneversion,downloadtheZIPfileanddecompressit,thendouble-clicktheopenmrs-standalone.jarfiletorunit.Thefirsttimeyourunthisfile,itwillinstallOpenMRSandopenyourbrowsertothenewOpenMRSinstance.
InstallationandInitialSetup
22
![Page 23: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/23.jpg)
Duringsetup,thereisanoptiontoinstalldemodata.Youmaychoosetoinstallademoconceptdictionary,whichcanjump-startyourformcreationprocess.Youmayalsoinstalldemopatientdata,whichwillprovideabetterdemonstrationofpatientencountersanddemographics.
DonotdeleteorrenameanyfilesorfoldersafterdecompressingtheZIPfile.Thesefilesandfoldersarerequiredbythestandaloneinstaller.
Alternatively,fromthecommandline,youcannavigatetothedecompressedfolderandrunthefollowingcommand:
java-jaropenmrs-standalone.jar
OnLinux,youcanalsodouble-clickonthefilenamedrun-on-linux.sh.Ifyouarepromptedforhowtorunit,justselectrun.Alternatively,youcanuseacommandlineshelltonavigatetothedecompressedfolderandrunthefollowingcommand:
./run-on-linux.sh
UpgradingStandalone
ToupgradeacopyofOpenMRSStandalone,dothefollowing:
1. StopthepreviousversionofOpenMRSStandaloneandexittheapplication.
2. DownloadandextractthemostrecentversionofOpenMRSStandalone.
3. CopyyourdatabasedirectoryfromthepreviousversiontothisnewOpenMRSdirectory.
4. Copyyouropenmrs-standalone-runtime.propertiesfromthepreviousversiontothisnewOpenMRSdirectory.
5. InstallOpenMRSStandaloneasdescribedabove.ThenewversionofOpenMRSwillrunwithyourolddata.
Loggingin
Bydefault,theinitialusernameandpasswordareasfollows:
Username:admin
Password:Admin123
Youmustimmediatelychangetheadminpasswordafterinstallationforsecuritypurposes.Tochangeyourpassword,clickMyProfileintheupperrightofOpenMRS,andchoosetheChangeLoginInfotab.Updateyourpassword,thenclickSaveOptions.Youcanalsochangeyourusername,andprovideyourrealname,onthisscreen.
Stoppingandrestarting
AslongasOpenMRSisrunning,youcanreturntotheapplicationbyopeningthefollowingURLinyourbrowser.
http://localhost:8081/openmrs-standalone/
Beforeyouchangecertainpreferences,suchastheportonwhichMySQLorTomcatruns,youmuststoptheapplication.
Tostoptheapplication,usetheStopbuttonintheuserinterface,orchooseFile>Quit.Alternatively,runtheJARfileonthecommandlinewitha-stopparameter.
YoucanrestarttheGUIbyclickingStart,ordouble-clickingontheJARfileagain.Alternatively,youcanruntheJARfilewitha-startparameter.
InstallationandInitialSetup
23
![Page 24: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/24.jpg)
Bydefault,OpenMRSrunstheMySQLdatabaseonport3316,andtheTomcatserveronport8081.Touseadifferentport,stoptheapplication,thenchangetheportnumberintheopenmrs-standalone-runtime.propertiesfileorintheGUI,andrestart.Tooverridetheportfromthecommandline,runtheJARfilewitha-tomcatportor-mysqlportparameter.
ChangingtheportnumberwillchangetheURLusedtoaccesstheapplication.Toaccesstheapplication,youcanchooseFile>LaunchBrowser,orruntheJARfilewitha-browserparameter.
OpenMRSEnterprise
YoumusthaveApacheTomcatandMySQLinstalledonyoursystembeforeinstallingtheenterpriseversionofOpenMRS.
DownloadtheEnterpriseWARpackagefrom
http://download.openmrs.org
NavigatetotheTomcatWebApplicationManagerandenteryourTomcatadministratorcredentials.
http://localhost:8080/manager/html
Browsetothelocationoftheopenmrs.warpackage,anddeployit.
Theinitialsetupwhichfollowsmaytakesometime.Attheendoftheprocess,theWebApplicationManagerwillrefresh,and/openmrsshouldbedisplayedinthelistofapplications.Tomcatshouldalsostarttheapplication(Running=True).
OpentheOpenMRSwebapplicationtocompletetheinitialsetupprocess.
http://localhost:8080/openmrs
GettingStartedwithOpenMRSEnterprise
ThefirsttimeyourunOpenMRS,thesetupwizardwillhelpyouconfigureyourinstallation.Followtheinstructionsinthiswizardtosetupyourdatabaseandpopulateitwithtestdataifnecessary.
Tochangeyourconfigurationlater,stoptheapplication,editthefileopenmrs-runtime.properties,andrestarttheapplication.OnWindows,youcanprobablyfindthisfileinthislocation:
C:\DocumentsandSettings\YOURUSERNAME\ApplicationData\OpenMRS
or
C:\Windows\system32\config\systemprofile\ApplicationData\OpenMRS
OnMacOSXorLinuxsystems,itisprobablylocatedinthislocation:
~/.OpenMRS
or
/usr/share/tomcatX/.OpenMRS
AfteryouhavefinishedconfiguringOpenMRS,reloadtheapplicationintheWebApplicationManager.Opentheloginpage,typicallyatthisURL.
http://localhost:8080/openmrs
IfTomcatisinstalledonanotherserveroranotherport,replacelocalhostor8080asapplicable.
InstallationandInitialSetup
24
![Page 25: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/25.jpg)
Usetheadministratorusernameandpasswordyouspecifiedintheconfigurationwizardtologin.Ifyoudidnotspecifyausernameandpassword,tryusingthedefaultusernameadminandpasswordAdmin123.
UpgradingOpenMRSEnterprise
ToupgradeacopyofOpenMRSEnterprise,dothefollowing:
1. UsetheTomcatWebApplicationManagertostopthepreviousversionofOpenMRS.
2. DownloadthemostrecentversionofOpenMRSEnterprise.
3. InstallOpenMRSasdescribedabove.ThenewversionofOpenMRSwillrunwithyourolddata.
AmanichoosestheEnterpriseversion
AlthoughAmaniClinicissmall,theydecidedtoinstalltheEnterpriseversion.ClaudineisveryfamiliarwithApacheTomcatandMySQL,anddecidedshewouldlikemorecontroloverthesystem.SheinstalledUbuntuLinuxonthephysicalserver,theninstalledJava6,MySQL,andTomcat.Afterdoingso,shedownloadedtheopenmrs.warfileandinstalleditintheTomcatapplicationserver.Excludingdownloadtimeforthesoftware,shewasabletocompletetheprocessinlessthanonehour.
InstallationandInitialSetup
25
![Page 26: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/26.jpg)
OpenMRSInformationModelReferencebookslineashelfinaruralAfricanclinic.
ThischapterexplainstermsandconceptswhichareusefultounderstandasyouinstallanduseOpenMRS.
Data
TheactualinformationyouwanttorecordinOpenMRSiscalledData.ExamplesofDatainOpenMRSarePatients,Encounters,andObservations.Tosupportthisdata,anddescribeitsmeaning,youneedadditionalMetadata.
WhenauserdeletesapieceofdatainOpenMRS,theinformationactuallyremainsinthedatabase.Itismarkedasvoided,sothatitwillnotshowupintheinterface,butitisnotimmediatelydeletedfromthedatabase.Ifauserdeletesapieceofdatabyaccident,anadministratorcanunvoidittoreturnittothesystem.Topermanentlydeletedatafromthedatabase,anadministratormustpurgethatdata.Typically,thisshouldneverbedoneinaproductionsystem.
MetadataThefundamentalexpectationofOpenMRS'sdesignisthatyouwillcustomizeitforyourclinicalprogram'susecase.Thesystemhasnobuilt-inideaofthepatient'sweightorseeingthepatientinanoutpatientvisit.Instead,youcanconfigurethesethingsyourself,tomatchyourproject'sworkflow.Generallyspeaking,thethingsthatyouneedtoconfigureinordertodescribetherealpatientinformationyouwillbecapturingarereferredtoasmetadata.AnexampleofapieceofmetadataisaLocationthatrepresentsahospital.
AnadministratormayalsoretiremetadatainOpenMRS.Thisdoesnotmeanthatthemetadataisdeleted,butratherthatitisnotintendedtobeusedgoingforward.Oldinformationthatreferstotheretiredmetadataremainsvalid.Anadministratormayunretiremetadataifitbecomesrelevanttoactiveuseagain.Ifnoactualdatareferstoapieceofmetadata,anadministratormaypurgethemetadatatopermanentlyremoveitfromthedatabase.
OpenMRSInformationModel
26
![Page 27: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/27.jpg)
Forexample,thehospitalyoureferpatientstocloses.Therefore,youcannolongerreferpatientsthere.ThisLocationcannowberetiredinOpenMRS.Thiswouldnotinvalidatethefactthatmanypatientswerereferredthereinthepast.
Conceptsandconceptdictionary
Themostimportantpartofthesystem'smetadataistheConceptDictionary,whichisalistofallthemedicalandprogram-relatedtermsthatyouwilluseasquestionsandanswersinObservations.ThisdictionarydoesnotneedtobecompletewhenyoubeginusingOpenMRS.Youshouldexpectnewtermstobeaddedandoldtermstoberetiredasyouruseofthesystemevolves.Itisbettertostartwithapre-populatedConceptDictionary,ratherthanstartingfromscratchyourself.Seethechapter"SharingConceptsandMetadata"formoredetails.
EveryquestionyouaskaboutapatientneedstobedefinedbyaConcept.(Forexample,torecordapatient'sweightyouneedaconceptlikeWeightinkilograms.)
Ifyouwanttoaskaquestionthathasafixedsetofcodedanswers,thoseanswersarealsoConcepts.(Forexample,thequestionconceptBloodTypemayhave4differentanswerconcepts:A,B,AB,andO)
PersonsEveryindividualwhoisreferredtoinapatientrecordinOpenMRSisstoredinthesystemasaPerson.TheseincludePatients,anypatientrelativeorcaretaker,Providers,andUsers.
AllPersonshavethesecharacteristics.
Names
Apersoncanhaveoneormorenames,oneofwhichmustbemarkedasthepreferredname.Thepreferrednamewillbedisplayedinsearchresultsandpatientscreens.
Addresses
Apersonmayhavezeroormorecontactaddresses.Youmayconfiguretheformatoftheseaddressesforyourparticularlocale.
PersonAttributes
Tosupportyourlocalneeds,youcandefineadditionalpiecesofinformationaboutthepeopleinyoursystem,ontopofthosethatarenativelysupportedbyOpenMRS.YoucandefinethedatatypeofaPersonAttribute,aswellasanyconstraintsonthepossiblevalues,usingmetadata.ThismetadataiscalledaPersonAttributeType.
PersonAttributesaresuitableforstoringotherinformation.Buthistoricalvaluesofpersonattributesarenotretained.Forexample,youshoulduseapersonattributetorecordapatient'scontacttelephonenumber.Thisinformationmaychange,butifitdoesso,thesystemneedonlystorethemostrecentvalue,andneednotretainpreviousvalues.Itisnotappropriatetouseapersonattributetostoresomethinglikethepatient'sheight,whichisrecordedatagivenpointintime,butcanbeexpectedtochangeandshouldbetrackedasitdoesso.
PatientsAnyonewhoreceivescareinOpenMRSmustbeaPatient(forexample,anyonewhohasanEncounterorwhoisenrolledinaProgram).EveryPatientmusthaveatleastoneIdentifier,whichisexplainedbelow.
APatientisalsoaPerson,meaningtheymusthaveatleastonenameandtheymayhaveaddresses.
OpenMRSInformationModel
27
![Page 28: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/28.jpg)
PatientIdentifier
ThePatientIdentifierisamedicalrecordnumberassignedbyyourfacility,usedtoidentifyandre-identifythepatientonsubsequentvisits.
APatientIdentifierTypedefinestheformatofaparticularkindofpatientidentifier.Forexample,youmightdefinethatAmaniIDisanidentifiertypethatisrequiredforeverypatient;theformatis2lettersfollowedby6digitsandusesaparticularcheckdigitalgorithm.
ACheckDigitisanextradigitthatisaddedtotheendofanidentifier,anddependsontherestoftheidentifier.ItallowsOpenMRStodeterminewhetheranidentifierhasbeenmistyped.ForexampleusingaLuhncheckdigit,"1234-1"isvalid,but"1234-5"isincorrect.Itisastronglyrecommendedbestpracticetousecheckdigitsinallpatientidentifiersthatyouassign.Formoreinformationaboutcheckdigits,seehttps://en.wikipedia.org/wiki/Check_digit.
Relationships
ARelationshipisabidirectionallinkbetweentwoPersonsinOpenMRS.
ThemetadatathatdescribesaparticularkindofrelationshipisaRelationshipType.Itdefinesthenamesofeachdirectionoftherelationship.TypicalRelationshipTypesareParent/ChildandDoctor/Patient.
AttheAmaniClinic,itisnecessarytouserelationshipstolinkamother'spatientrecordtothepatientrecordofherchildren.Onemightalsouserelationshipstorecordthelinkbetweenapatientandtheirprimarycareprovider.
Visits
AVisitinOpenMRSrepresentsexactlywhatitsoundslike:atimeperiodwhenapatientisactivelyinteractingwiththehealthcaresystem,typicallyatalocation.ThemetadatadifferentiatingdifferenttypesofvisitsisaVisitType.VisitTypesaredisplayedintheuserinterface,andcanbesearchedagainst.
Avisitcontainsencounters,whichstoremoregranulardataabouttreatmentsorservices.
AttheAmaniClinic,apatientmighttypicallycheck-inatregistration,beseenbyadoctor,andreceivesmedicationdispensedinthepharmacy.ThiswouldberecordedasonevisitoftypeofOutpatient,andcontainthreeencounters(Registration,Consultation,andDispensing).
Encounters
Amomentintimewhereapatientisseenbyprovidersatalocation,anddataarecaptured.Generallyspeaking,everytimeyouenteraforminOpenMRSthiscreatesanEncounter.Encounterstypicallybelongtoavisit,buttheymayalsostandalone.
ThemetadatathatdescribesakindofencounterisanEncounterType.Thesearedisplayedintheuserinterface,andyoumayalsosearchagainstthem.
OpenMRSInformationModel
28
![Page 29: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/29.jpg)
DuringatypicalAmaniClinicOutpatientVisit,apatientchecksinatregistration,isseenbyadoctor,andreceivesmedsdispensedinthepharmacy.Thiswouldberecordedasonevisitcontainingthreeencounters,whosetypesareRegistration,Consultation,andDispensing.
Providers
AProviderisapersonwhoprovidescareorservicestopatients.Aprovidermaybeaclinicianlikeadoctorornurse,asocialworker,oralabtech.Generallyspeaking,anyhealthcareworkerthatapatientcanhaveanencounterwithisaprovider.
ProvidersmayhavefullrecordsinOpenMRSaspersons,ortheymayjustbeasimplenameandIDnumber.
Locations
ALocationisaphysicalplacewhereapatientmaybeseen.
Locationsmayhaveahierarchy,forexampleChildren'sWardmightbealocationwithinthelocationAmaniClinic.
Youmightalsostorephysicalareas(forexampleEasternProvince,orCalifornia)asLocations.YoushouldnotuselocationstorepresentlogicalideaslikeAllDistrictHospitals.
Observations
AnObservationisonesinglepieceofinformationthatisrecordedaboutapersonatamomentintime.
EveryobservationhasaConceptasitsquestion,anddependingonthedatatypeoftheconcept,ithasavaluethatisanumber,date,text,Concept,etc.
MostoftheinformationyoustoreinOpenMRSisintheformofObservations,andmostObservationshappeninanEncounter.WhenyouenteraforminOpenMRS,typicallyoneEncounteriscreatedwithanywherebetweentensorhundredsofObservations.
NotethatanindividualObservationisvalidonlyatonemomentintime,anditdoesnotcarryforward.Youmayquerythesystemforthelastobservationforpregnancystatusbutthisdoesnottellyouwhetherornotthepatientispregnantatanypointafterthemomentofthatobservation.
ExamplesofobservationsincludeSerumCreatinineof0.9mg/dLorReviewofcardiopulmonarysystemisnormal.
Observationgroups
SometimesasingleObservationisnotsufficienttocaptureanentirepieceofpatientinformation,andyouneedtousemultipleObservationsthataregroupedtogether.
Forexample,recordingthatapatienthadarashasanallergicreactiontopenicillinwouldneedtobestoredastwoobservationsplusathirdonethatgroupstheprevioustwotogether:
1. Concept="Allergen",codedvalue="Penicillin",group=(3)
2. Concept="Reaction",codedvalue="Rash",group=(3)
3. Concept="AllergicReactionConstruct",groupmembers=(1),(2)
Orders
OpenMRSInformationModel
29
![Page 30: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/30.jpg)
AnOrderisanactionthataproviderrequestsbetakenregardingapatient.
ForexampleaprovidercouldorderaCompleteBloodCountlaboratorypanelforapatient.
AnOrderonlyrecordsanintention,notwhetherornottheactioniscarriedout.TheresultsofanOrderaretypicallyrecordedlaterasObservations.
PrescribingamedicationisaDrugOrder.Adrugordercanbeplacedforagenericdrug,representedbyaConcept(forexample,500mgofCiprofloxacin,twiceaday).IfyouareusingOpenMRStomanageaformularyofspecificmedications(i.e.,DrugsinOpenMRS),youmayalsorecordDrugOrdersagainstthose.Forexample,adrugordermightbeOne500mgtabletofCiprofloxacin,twiceaday.
Allergylists
OpenMRSletsyoumanuallymaintainanAllergyListforapatient,includingtheallergen,reaction,severity,etc.
ThislistismanagedseparatelyfromObservations:observinganallergicreactiontoadrugdoesnotautomaticallyaddanAllergytothelist.
UnlikeanObservation(whichhappensatonemomentintime),anAllergyislongitudinaldata,withstartandenddates.
Problemlists
OpenMRSletsyoumanuallymaintainaProblemListforapatient.ThislistismanagedseparatelyfromObservations:observingthatthepatienthas"DiagnosisPresent=Diabetes"doesnotautomaticallyaddaproblemtothelist.Unlikeanobservation(whichhappensatonemomentintime),aproblemislongitudinaldata,withstartandenddates.
Programenrollments,workflows,andstates
AProgramrepresentsanadministrativeprogramorstudythatapatientmaybeenrolledin(forexample,ChildNutritionStudyorDOTSTuberculosisTreatmentProgram).
AProgramEnrollmentrepresentsthefactthatapatientisenrolledinoneoftheseprogramsoveratimeperiodataLocation.Thisislongitudinaldatawithastartdateandenddate.
AProgramcanalsodefineadministrativeWorkflows,andpossibleStatesthepatientmayhavewithinthoseworkflows.AnInitialStateisonethatapatientisallowedtostartinwhentheyarefirstenrolledinaprogram.ATerminalStateisonethatclosestheprogramenrollmentifthepatientisplacedinit.
ForexamplearesearchstudyoninfantnutritionmighthaveaworkflowcalledStudyEnrollmentStatuswiththestates:
PatientIdentified(initial)
MotherConsentedtoStudy
StudyComplete(terminal)
LosttoFollowup(terminal)
Thesestatesaremeanttorepresentadministrativestatuses,notclinicalones.ForexampleputtingapatientinaLosstoFollowupstaterepresentsanofficialdeclarationandwillnothappenautomaticallyevenifnoencountersareenteredforthepatientforseveralmonths.
Forms
OpenMRSInformationModel
30
![Page 31: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/31.jpg)
AFormrepresentsanelectronicformthatmaybeusedforenteringorviewingdata.ThebasicOpenMRSsystemdoesnotdefineaspecifictechnologyforenteringforms.Youwillneedtouseoneofthecommunity-developedformentrymodules.Seethechapter"DataEntry"formoredetails.
TheFormEntry(Infopath)andXFormsmodulesrelyonaFormSchema,whereyoudefinewhichConceptsareusedontheForm.TheHTMLFormEntrymoduledoesnotrequireyoutomanagetheschema.
Users,roles,andprivileges
AUserinOpenMRSisanaccountthatapersonmayusetologintothesystem.
Thereal-lifepersonisrepresentedbyaPersonrecordinOpenMRS,andapersonmayhavemorethanoneuseraccount.IfyouwantapatienttobeabletoviewherownrecordinOpenMRS,thenyouneedtocreateauseraccountandlinkittothepatient.
ARolerepresentsagroupofprivilegesinthesystem.Rolesmayinheritprivilegesfromotherroles,andusersmayhaveoneormoreroles.
APrivilegeisanauthorizationtoperformaparticularactioninthesystem.Thelistofavailableprivilegesaredefinedbythecoresystemandbyadd-onmodules(forexample,DeletePatientsandManageEncounterTypes),butyouneedtoconfigurewhichroleshavewhichprivilegeswhileyouareconfiguringyoursystem.
TheinformationmodelinuseatAmaniClinic
ApatientnamedAsabaarrivesatAmaniClinic,wheretheregistrationclerkJamescreatesherelectronicrecordandstoreshercontactphonenumberas312-555-7890.OnpapertheNurse,Kissa,recordsAsaba'sweightas61.5kgandordersapregnancytest.Jamesenterstheseontoanelectronicscreen.
FromtheperspectiveoftheOpenMRSmodel,wehavethefollowingmetadata:
Thenurse,Kissa(aProvider)Theregistrationclerk,James(aUser)ContactPhoneNumber(aPersonAttributeType)Weight,inkilograms(aConcept,withclassFindinganddatatypeNumeric)UrinePregnancyTest(aConcept,withclassTest)AmaniClinic(aLocation)OutpatientVisit(anEncounterType)OutpatientTriageForm(aForm)
WhenAsabaisfirstseenattheregistrationdesk,Jamescreatesthefollowingdata:
APatient(Asaba)APersonAttribute(type=ContactPhoneNumber,value=312-456-7890).
AfterAsabaseesthenurse,whogivesapaperformtoJames,hecreatesmoredata:
AnEncounterwith:
OpenMRSInformationModel
31
![Page 32: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/32.jpg)
patient=Asabatype=OutpatientVisitform=OutpatientTriageFormlocation=AmaniClinicprovider=NurseKissacreator=RegistrationClerkJames
AnObservation(inthatencounter),ofWeightinkilograms=61.5.
AnOrder(inthatencounter),forUrinePregnancyTest
OpenMRSInformationModel
32
![Page 33: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/33.jpg)
GettingAroundtheUserInterfaceAnOpenMRSimplementer-programmergivesademonstrationofthesystemashisclinic.
ThischaptergivesabriefoverviewofkeypartsoftheOpenMRSuserinterface,whichwillbehelpfulasyoureadthechapterstofollow.
Loggingintothesystem
OpenMRSrunsasawebapplication,meaningyouuseitviaawebbrowser.Beforeyoucanaccessanypagesinthesystem,youneedtologin.Todothisthefirsttime,youwillneedtoknowtheadministratorpasswordthatyouchoseduringfirst-timesetup.Refertothechapter"InstallationandInitialSetup"forthosedetails.
Usersthatforgettheirpasswordmayresetitiftheyhaveconfiguredasecretquestionandknowtheanswer.TheSignuplinkisprovidedbytheRequestAccountmodule,ifyouhaveitinstalled.
GettingAroundtheUserInterface
33
![Page 34: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/34.jpg)
Home
InthedefaultinstallationofOpenMRS,allusersseethesamehomepageafterloggingin.Tocustomizedifferenthomepagesfordifferenttypesofusers,youcanusetheRoleBasedHomePagemodule.
AsshownintheOpenMRShomepageabove,allpagesallowyouto:
1. Logoutandedityourprofile,or
2. Changeyourlanguageforthecurrentsession.
YoucanconfiguretheallowedlanguagesviaasettingintheAdministration>Maintenance>Settingspage.
Administration
AsasystemadministratorormanagerforanOpenMRSinstallation,youwillfrequentlyneedtoaccesstheconfigurationandadministrationfunctionsaccessiblethroughtheAdministrationpage.
GettingAroundtheUserInterface
34
![Page 35: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/35.jpg)
1. YoucanaccesstheAdministrationpagefromanywhereintheapplicationbyclickingitslinkinthetop-rightofthescreen.
2. ConfigurationpagesfortheOpenMRScorefunctionalityarelistedintheleftandcentercolumns.
3. Configurationpagesforfunctionalityinadd-onmodulesarelistedintherightcolumn.
4. Youadd/remove/start/stopadd-onmodulesfromtheManageModulespage.
ViewingandcreatingpatientsOneofthemostcommonactionsfornon-administrativeusersofthesystemistofindandopenexistingpatientrecords.Ifthedesiredpatientrecordisnotfound,usersmaybeabletocreatenewonesiftheyhavesufficientprivileges.
YoucansearchforapatientbyIDnumber.Clickingonthesearchresultwillopenthatpatient'sdashboard.IfauserdoesnotfindapatientbyIDnumberorname,youmaycreateanewpatient.
GettingAroundtheUserInterface
35
![Page 36: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/36.jpg)
Patientdashboard
Dataentrystaffwillspendalotoftimeonthepatientdashboardpage.Thisgivesaccesstodifferentpartsofapatient'srecordandallowsyoutoenterformsintotherecord.
Theworkflowofthepatientdashboardpageisnotefficientforaclinicianwhowantstoaccessapatient'srecordatthepointofcare.TosupportthoseworkflowsyoushouldconsiderdownloadingandinstallingtheClinicalSummarymoduleortheHTMLFormFlowsheetmodule.
Thepatientdashboardpageisdescribedinmoredetailinthechapterentitled"ThePatientDashboardInDepth".
GettingAroundtheUserInterface
36
![Page 37: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/37.jpg)
GettingAroundtheUserInterface
37
![Page 38: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/38.jpg)
CustomizingOpenMRSwithPlug-inModules
OpenMRShasamodulararchitecture,whichallowsspecialfunctionalitytobeeasilyaddedorremovedfromthesystem.Moduleshavefullaccesstothesystemandcanmodifyorenhancethebehaviorofthesystem.Forexample,theSyncmoduleaddstheabilityforanOpenMRSservertosynchronizeitsdatawithotherOpenMRSservers;theHTMLFormEntrymoduleprovidesawaytocreateweb-basedformsforcollectingdata;andtheFlowsheetmoduleaddsanewwayforviewinginformation.ModulesalsoprovideamechanismforadaptingOpenMRStolocalneeds.FormoreinformationaboutpublishedmodulesvisittheOpenMRSWiki:
https://wiki.openmrs.org/display/docs/Modules/
ModulerepositoryYoucanviewavailablemodulesintheOpenMRSAdd-onsindex:
https://addons.openmrs.org/
Itisaplacewhereyoucanfindpublishedmodules.Eachmodulehasapagewithadescription,alinkfordownloading,andalinktothemodule'sdocumentation.
Somemodulesmaybeunderdevelopment,butnotyetpublishedinthemodulerepository.ManyofthesecanbeseenbybrowsingGitHubforrepositoriesstartingwith"openmrs-module-"intheirname.ManycommunitymodulescanbefoundundertheOpenMRSorganizationonGitHub:
https://github.com/openmrs/
Managingmodules
CustomizingOpenMRSwithPlug-inModules
38
![Page 39: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/39.jpg)
YoucanseeavailablemodulesunderAdministrationpage,ManageModules.Thelistingcontainsalltheinstalledmodules.Youcanseetheirstatus(iftheyarestarted,stoppedorfailedtostart)aswellasuninstallthem.
Touninstallamodule:
1. Stopthemodule
2. Startthemodule
3. Uninstallthemodule
Amoduleisdistributedasasinglefilewiththe.omodextension.YoucaninstallitfromthededicatedManageModulessectionontheAdministrationpage.
Youcaneitherpointtoalocalpathtothe.omodfileorfindandinstallamoduledirectlyfromtheInstallfromModuleRepositorysectionwhichconnectstothemodulerepository.
Toinstallamodule:
CustomizingOpenMRSwithPlug-inModules
39
![Page 40: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/40.jpg)
1. ChooseafileandclickUpload
2. Searchforamodulebyname
3. Installthechosenmodule
Ifuploadsarenotallowedfromtheweb,youcancopythe.omodfileintothefolder:
~/.OpenMRS/modules
(where~/.OpenMRSisassumedtobetheApplicationDatadirectorywhichtherunningOpenMRSiscurrentlyusing.YoucanfindtheexactlocationunderAdministration>ModuleProperties.)Aftermovingthefiletothatlocation,restartOpenMRS.Themodulewillbeloadedandstarted.
Bundledmodules
OpenMRSisdeliveredwithsomebundledmoduleswhichareincludedinastandardinstallation.Thelistmaydifferfromversiontoversion.Someexamples:
HTMLFormEntry
AllowsanyonewithbasicHTMLprogrammingskillsandknowledgeoftheOpenMRSsystemtocreateformswhichcanbeenteredwithoutanyproprietarytoolsdirectlyfromawebbrowser.Itisapreferredformentrymodule.HTMLFormsallowalotofcontrolovertheform'slayout.https://wiki.openmrs.org/display/docs/HTML+Form+Entry+Module
XForms
AllowsdataentrytobedonedirectlyfromanyJavaScriptenabledbrowser.ThemoduleconvertsanOpenMRSformtoanXForm.XFormsarewellsuitedtoformsthatwillbefilledoutonmobiledevices.
https://wiki.openmrs.org/display/docs/XForms+Module
HTMLWidgets
ProvidesasetofreusableHTMLformfieldwidgetsthatencapsulatethecommoninputrequirementsforOpenMRS.Itismeanttobesomethingthatdeveloperscanutilizeintheircode.https://wiki.openmrs.org/display/docs/HTML+Widgets+Module
Reporting
Providesafeature-richanduser-friendlywebinterfaceformanagingreportswithinOpenMRS.https://wiki.openmrs.org/display/docs/Reporting+Module
ReportingCompatibility
ContainspagesandfeaturesthatwerepreviouslyincludedintoOpenMRScorecodeitselfandareneededtoruntheReportingmodule.Itwaswrittenforthe1.5andlaterreleasesofOpenMRS.https://wiki.openmrs.org/display/docs/ReportingCompatibility+Module
Otherpopularmodules
ClinicalSummary
Allowsyoutocreateclinicalsummaries.https://wiki.openmrs.org/display/docs/Clinical+Summary+Module
CustomizingOpenMRSwithPlug-inModules
40
![Page 41: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/41.jpg)
Groovy
Wascreatedasaproofofconcept(forembeddingGroovyintoOpenMRS)andtoserveasabasemoduleforothermodulesthatwanttouseGroovyscriptingaswell.https://wiki.openmrs.org/display/docs/Groovy+Module
HTMLFormFlowsheet
Allowsyoutogenericallymodelapaperflowsheet.ProvidesbasicfunctionalityforembeddingsmallHTMLFormsinsideoflargerHTMLForms,whereeachsmallHTMLFormrepresentsonerowinapatientchart.Additionally,themoduleallowsyoutospecifyanynumberoftabsinatab-basedlayout,eachcontainingadistinctHTMLForm.https://wiki.openmrs.org/display/docs/HtmlFormFlowsheet+Module
HTMLFormEntryDesigner
WYSIWYGFormDesignerfortheHTMLFormEntrymodule.https://wiki.openmrs.org/display/docs/HTML+Form+Entry+Designer+Module
IDGeneration
ProvidesafacilityformanagingidentifiergenerationandallocationwithinanOpenMRSimplementation.Introducesdifferentidentifiergenerationstrategiesincludingautomaticandpooled.https://wiki.openmrs.org/display/docs/Idgen+Module
MetadataSharing
Allowsallkindsofmetadata(concepts,HTMLforms,locations,roles,programs,etc.)tobeexchangedbetweendifferentOpenMRSinstallations.https://wiki.openmrs.org/display/docs/Metadata+Sharing+Module
RequestAccount
Allowsuserstorequesttheirownaccounts,specifyingtheirownpreferredusernameandpreferredpassword.Anadministratorcanthenapproveordenypendingaccountrequests.https://wiki.openmrs.org/display/docs/Request+Account+Module
RESTWebservices
ExposestheOpenMRSAPIasRESTwebservice.https://wiki.openmrs.org/display/docs/REST+Web+Services+API+For+Clients
Role-basedHomePage
Allowsforadministratorstodefineacustom"homepage"foreachdefinedrolewithinthesystem.Thesehomepagesmaybesimplypagesthatalreadyexist,andwhichparticularuserswouldbebestservedtohaveastheirdefault.Forexample,systemadministratorsmaywanttheAdministrationpageastheirdefaulthome.Alternatively,administratorscan"author"newpageswithintherunningapplicationfortheirusers.https://wiki.openmrs.org/display/docs/Role+Based+Homepage+Module
Synchronization
FitsinscenarioswhenyouhavemultiplesitesusingOpenMRSwithseparatedatabasesandyouwantthemtocopydatatoeachotherthatwillkeepthemsynchronized.https://wiki.openmrs.org/display/docs/Sync+Module
Writingyourownmodule
CustomizingOpenMRSwithPlug-inModules
41
![Page 42: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/42.jpg)
Thissectioncoversbasicsofwritingyourownmodule.WeencouragetocontributemodulesyouwritetotheModuleRepository.Youcanalsouseourcoderepositoryforyourmodule.Formoreinformation,pleasevisitthispage
https://wiki.openmrs.org/display/docs/Creating+Modules
Inordertodevelopandtestamodule,youwillneedtohaveOpenMRSinstalledinaversiononwhichyouwanttorunyourmodule.
ItisbesttouseadedicatedMavenarchetypetocreateanewmodule.BeforeyoustartyouwillneedtoinstallMaven.SeetheMavenwebsiteathttp://maven.apache.org/formoreinstructions.
Thenextstepistoupdatethesettings.xmlfiletopointMaventotheMavenModuleArchetype.Youcanfindthefileinoneofthefollowinglocations:
Linux:~/.m2
WindowsXP:C:\DocumentsandSettings\user_name.m2
WindowsVista/7:C:\Users\user_name.m2
Ifthesettingsfiledoesnotexistyouneedtocreateone.Addthefollowingcontent:
<settingsxmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups>
<pluginGroup>org.openmrs.maven.plugins</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>OpenMRS</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<archetypeCatalog>http://mavenrepo.openmrs.org/nexus/service/local/repositories/releases/content/archet
ype-catalog.xml</archetypeCatalog>
</properties>
<repositories>
<repository>
<id>openmrs-repo</id>
<name>OpenMRSNexusRepository</name>
<url>http://mavenrepo.openmrs.org/nexus/content/repositories/public</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>openmrs-repo</id>
<name>OpenMRSNexusRepository</name>
<url>http://mavenrepo.openmrs.org/nexus/content/repositories/public</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</settings>
Mavenisacommandlinetool,soopenaconsoleandenterthefolderinwhichtocreateaprojectforyournewmodule.Thecommandyouneedtorunis:
CustomizingOpenMRSwithPlug-inModules
42
![Page 43: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/43.jpg)
mvnmodule-wizard:generate
Followthestepsofthewizardbyansweringthequestions.Attheend,anewMavenprojectwillbegenerated.Tobuildityoujustneedtoentertheprojectfolderandrun:
mvninstall
Youwillfindtheproduced.omodfileforyourmoduleinthedirectoryomod/target.
DevelopingamodulerequiresfromyoutobefamiliarwiththeSpringframework.ReadtheSpringwebsiteathttp://www.springsource.com/formoredetails.TherearealsoafewthingsspecifictotheOpenMRSplatformwhichyouwillneedtoremember:
TheSpringwebcontextfilecanbefoundatomod\src\main\resources\webModuleApplicationContext.xml.
ModulesareabletoaddandmodifytablesintheOpenMRSdatabase.Thefilesomod\src\main\resources\sqldiff.xmlandomod\src\main\resources\liquibase.xmlholdtheSQLcommandswhichcanbeexecutedasamoduleisinstalled.
ModulescanextendOpenMRScoreJSPpagesviaextensionpoints.Amoduleregistersanextensioninomod\src\main\resources\config.xmlforeachextensionpointinthesystemtowhichitwantstoaddcontent.
YoushouldfindextensionpointsintheJSPpagesyouwanttoextend.Lookfor:
<openmrs:extensionPointpointId="..."
Itisbesttolearnbyexample,soyoushouldlookatsomeothermodulesintheOpenMRScoderepositoryforcodesnippetstoreuseinyourownwork.ConsiderexaminingtheWebservices.restmodule.
CustomizingOpenMRSwithPlug-inModules
43
![Page 44: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/44.jpg)
ManagingConceptsandMetadataHavingwell-definedconceptsiscrucialforeveryOpenMRSinstallation.OpenMRSisdeliveredwithjustafewbasicconceptsanditisuptoyoutogathertherest.
Creatingconceptsisacomplextaskwhichrequiresexpertiseandexperiencesowedonotrecommenddoingitonyourown.ItisbesttocontactourcommunityandusesomeofexistingconceptdictionarieslikeMVPorMCL.Formoreinformationonhowtogetintouchwiththerightpeople,seetheGettingHelpfromtheOpenMRSCommunitychapter.
YoucaneitherenterconceptsonyourownmanuallyoruseatoolliketheMetadataSharingModuletoimportthem.Inthischapter,wewillpresenthowtoenterconceptsmanuallyviathewebinterface.
ConceptclassTostartwithyouwillneedtosetupConceptClasses.Thestandardinstallationincludesaround15predefinedconceptclasses.ToviewthementertheAdministrationpage>ManageConceptClasses.
1. AddanewConceptClass
2. ClicktoeditanexistingConceptClass
Youwillseealistwithnamesanddescriptions.Youcaneditthembyclickingonanameandalsodeletebyselectingcheck-boxesnexttotheirnames.Notethatyoucannotdeleteconceptclassesthatareusedinconceptsalready.ThereisalsoalinkAddConceptClasstoenternewones.
Conceptdatatype
ConceptDatatypesarepurposedtoindicatedifferentformatsofdatastoredinconcepts.Theyarepredefinedandread-only.YoucanviewthemunderAdministration>ManageConceptDatatypes.
ManagingConceptsandMetadata
44
![Page 45: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/45.jpg)
Concept
ToviewconceptsavailableinyoursystemclickDictionaryinthetopmenu.YouwillbeabletosearchforparticularconceptsbynameorID.Thereisalsoacheck-boxthatallowstosearchforretiredconceptswhicharenotsupposedtobeusedanymoreorarereplacedwithnewones.YoucanalsoenteranewconceptfromhereclickingAddnewConcept.
ManagingConceptsandMetadata
45
![Page 46: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/46.jpg)
1. Openconceptdictionary
2. Addanewconcept
3. Searchforconcepts
4. Searchresults
Let'screateaconcepttorepresentANTENATALVISITREASON.Wewilluseitlaterinthebookinadataentryform.TheformforcreatingaconceptallowsyoutoenterFullySpecifiedNameaswellassynonyms.YoucanaddsynonymswithAddSynonymbutton[2].AtleastoneofthenamesneedstobemarkedasPreferredwiththeradiobuttonnexttoit.
Whilecreatinganewconceptyouneedtodecideondatatype.Inthiscaseitwillbeacodedconceptthatisyouwillprovidealistofanswers.Answersneedtobedefinedasconcepts.Youneedtocreatethembeforehandorelseaddthemlater.
ManagingConceptsandMetadata
46
![Page 47: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/47.jpg)
1. Switchbetweenlanguages
2. Addasynonym
3. Selectdatatype
4. Editalistofanswers(thissectionchangesdependingonthechosendatatype)
ManagingConceptsandMetadata
47
![Page 48: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/48.jpg)
5. Addmappings
Conceptmapping
ConceptMappingsareaddedtofacilitatemanagingconceptdictionariesandpointtootherconceptswhichhavethesamemeaning.Mappingsareusefulwhenyouneedtoreceiveorsendinformationtoexternalsystems,lettingyoudefinehowyoursystem'sconceptsrelatetoexternalconceptssuchasstandardizedmedicalvocabularies(e.g.,ICD,LOINC,SNOMED).
Forexample,addamappingtoaconceptintheMCLdictionary.Youcansavetheconceptnowandcreatesomeanswers.
RepeatthestepsandcreatetheconceptsPLANNINGPREGNANCYandCURRENTLYPREGNANTofClassFindingandDatatypeBoolean.ThelastpossibleanswerwillbeOTHERofClassMiscandDatatypeN/A.Aftercreatingthreenewconcepts,youcaneditANTENATALVISITREASONandaddthemasanswers.
ConceptdrugToviewConceptDrugs,gotoAdministration>ManageConceptDrugs.Youcaneitherenteraconceptdrugbyclickingitsnametoeditit,oryoucancreateanewonethroughtheAddConceptDruglink.YoumustenteranameandchooseoneoftheconceptsofdatatypeDrug.
MetadataTherearedifferenttypesofMetadatawhichneedtobemanaged.ThelistincludesLocations,EncounterTypes,OrderTypes,etc.YoucanviewandeditthemeasilyviatheAdministrationpage.
Patientidentifier
Apatientidentifierisanyuniquenumberthatcanidentifyapatient.ExamplesareaMedicalRecordNumber,aNationalID,aSocialSecuritynumber,adriver'slicensenumber,etc.Apatientcanhaveanynumberofidentifiers.ThePatientIdentifierTypetabledefineswhattypeofidentifiersarecollectedinyoursystem.
Apatientcanhavemultipleidentifiersofeachtypedefinedinyoursystem.Forexample,apatientcouldhavefiveidentifiersoftypeof"MedicalRecordNumber"becausetheywereseenatfivedifferenthospitalsthatcollectedfivedifferenttypesofIDs.
Thepatientsearchscreensearchesacrossallidentifierthatarestillactiveforapatient.
Newidentifiertypesaregenerallycreatediftheyhavedifferentcharacteristics.Forexample,oneidentifiercanbeonlyastringofnumbers,anotherisanumberwithahyphenplusacheckdigit,etc.
Identifiersuniquelyidentifypatientswithinthesystem.Differenttypesofidentifiersaredistributedbyvarioushealthcaresystems.Someofthesesystemswillbewithinyourcontrol,soyouwillbeabletocontrolhowidentifiersarecreatedanddistributed;however,therewilllikelybeidentifiersthatarenotwithinyourcontrolbutareusefultorecordwithinyoursystemtoaidinpatientidentification.
Inordertoseepredefinedidentifiertypes,ortoaddanewone,gotoAdministration-ManageIdentifierTypes.Let'sexamineOpenMRSIdentificationNumber.
ManagingConceptsandMetadata
48
![Page 49: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/49.jpg)
TheRegexFormatandDescriptionofformatfieldsareempty,butyoucouldaddherearegularexpressiontovalidateeachenteredidentifier.Forexample:
\d{1,8}-\d
wouldallow1to8digitsfollowedbyadashandasingledigit.
Itisalsopossibletochooseoneofseveralpre-definedIdentifiervalidators.HereLuhnCheckDigitValidatorisused.Thepurposeofcheckdigitsissimple.Anytimeidentifiers(typicallynumber+/-letters)arebeingmanuallyenteredviakeyboard,therewillbeerrors.Inadvertentkeystrokesorfatiguecancausedigitstoberearranged,dropped,orinserted.
Checkdigitshelpstoreducethelikelihoodoferrorsbyintroducingafinaldigitthatiscalculatedfromthepriordigits.Usingtheproperalgorithm,thefinaldigitcanalwaysbecalculated.Therefore,whenanumberisenteredintothesystem(manuallyorotherwise),thecomputercaninstantlyverifythatthefinaldigitmatchesthedigitpredictedbythecheckdigitalgorithm.Ifthetwodonotmatch,thenumberisrefused.Theendresultisfewerdataentryerrors.
InternationalizationConceptscanbeeasilyinternationalized;thatisyoucanenterdifferentconceptnamesforeveryallowedlocale.Thelistofallowedlocalesisstoredinasettinglocale.allowed.listascommaseparatedlanguagecodes(forinstanceen,fr,orde).YoucaneditthesettingfromAdministration>Maintenance>Settings.SeethislinkforthefulllistofISO639.2languagecodes:
ManagingConceptsandMetadata
49
![Page 50: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/50.jpg)
https://wiki.openmrs.org/display/docs/Localization+and+Languages
Currently,metadatacannotbeinternationalized.
ManagingConceptsandMetadata
50
![Page 51: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/51.jpg)
SharingConceptsandMetadataWorkingwithOpenMRSformsatHôpitalAlbertSchweitzer,Deschapelles,Haiti.
Insteadofcreatingconcepts,formsandothermetadatayourself,youarehighlyencouragedtousesomewhicharepubliclyavailable.YoucanusecompleteconceptdictionarieslikeMCLorMVPaswellasmetadatapackageswhichincludejustafractionofdictionaries,forms,locations,etc.
Sharingformsentailssharingassociatedconceptsandothermetadata.Tofacilitatethistask,theMetadataSharingmodulewascreated.Itallowsallkindsofmetadata(concepts,forms,locations,roles,programs,etc.)tobeexchangedbetweendifferentOpenMRSinstallations.
Anydependentmetadatawillbepackagedalongwiththeexporteditem.Forexample,ifyouexportaconceptwhichhascodedanswers,themodulewillpackagetheinitialconceptalongwithallthecodedanswerconcepts,classanddatatype.Ifyouexportaform,itwillpackagetheformalongwiththeencountertype,allconceptsusedonthatform,etc.
Theimportprocessisdesignedinawaytohelpidentifyitemsinyoursystemthataresemanticallythesameastheonesincludedinapackagesothatyoucanskipimportingthemanduseyours.
Youcanfindsomepublishedformsat:
https://wiki.openmrs.org/display/RES/Form+Bank
SharingConceptsandMetadata
51
![Page 52: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/52.jpg)
Let'sseeanexampleofimportingaformwiththeMetadataSharingmodule.TheAmaniAntenatalHistoryformwillbepresentedindetailinthe"DataEntry"chapter.
AfterinstallingtheMetadataSharingmodule,gotoAdministration>ImportMetadata.
1. Importanewpackage
2. Seealistofpreviouslyimportedpackagesyouaresubscribing
Tostart,clicktheImportpackagebuttonandonthenextscreen,pointtoafileyouwanttoimport.
1. Choosealocalfileyouwanttoimport
2. EnterasubscriptionURL
SharingConceptsandMetadata
52
![Page 53: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/53.jpg)
Thenextstepistochooseatrustlevel.Asstatedbefore,whileimportingapackageyouwillhaveachancetouseconcepts,locations,etc.whichexistinyoursystemratherthancreatingnewonesfromthepackage.Ifyouchoosetodoso,youcaneitheroverwriteyourexistingitemsorkeeptheonesyoualreadyhave.IfyouchooseRequireConfirmation,youwillbeaskedtoreviewmostofthemetadatabeforeimportinganddecidewhatyouwanttodo.TheTrustIncomingoptioninmostcaseswilldefaulttooverwriteyourexistingmetadataandwillnotrequireconfirmation.ClickNexttoproceed.
1. Itemsneedingassessment
2. Itemstobecreated
3. Itemstoskip
4. Itemsinyoursystemwhichwillbeusedinstead
5. Itemswhichwillbeoverwritten
6. Openstheassessmentscreen
7. Allitemsinthepackage
Onthenextscreen,youwillseesomedetailsaboutthepackageandclickingNextagainwillbringyoutotheImportSummarypagewhereyoucanassessitems.Asinourexample,youwillhavetoreviewtwenty-nineconcepts.
SharingConceptsandMetadata
53
![Page 54: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/54.jpg)
TheassessmentscreendependingonthecaseallowsyoutochooseCreateNew,SkipifPossible,ChooseExisting-KeepMine,andChooseExisting-Overwrite.IfyouselectChooseExistingyouwillbeabletosearchforanexistingitemonyoursystembyclickingChoosereplacement.Inthisexample,youcannotselectCreateNewasitwouldviolatearestrictionthattherecannotbetwoconceptsinthesystemwiththesamename.
Oncereviewingalltheitemswhichneedtobeassessed,youcanimportthepackage.
SharingConceptsandMetadata
54
![Page 55: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/55.jpg)
AgoodsourceofconceptsistheMaternalConceptLab:
http://www.maternalconceptlab.com
Itallowsyoutofindconceptsyouneedanddownloadthemasmetadatapackages.YoucanthenimportthemdirectlytoyourOpenMRSinstallationasneededwiththehelpoftheMetadataSharingmodule.
TheMetadataSharingmodulepromotesdecentralizedmanagementofmetadatawhereeveryonecanbothcreateandimportmetadatapackages.
SharingConceptsandMetadata
55
![Page 56: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/56.jpg)
ConfiguringVisitsApatientmayreceiveseveralkindsofcareandserviceswhileatahealthclinic.Forexample,theymayseeaclinician,haveanX-raytaken,andbegivenalabtest.EachoftheseservicesisanEncounter,recordedinaform.OpenMRSusesVisitstocollecttheserelatedencountersintoonegroup.
VisitsaremanagedinAdministration>Visits.Hereyoucandefinethekindsofvisitsandtheirattributes,andsetthedefaultbehaviorforhowvisitsarecreated.
ManageVisitTypes
AVisitTypeisanameanddescriptionofakindofvisit.Everyvisithasatype.Youshouldcreatevisittypesthatmatchhowyourhealthsiteclassifiesvisits,suchas"Outpatient,""Hospitalization,""Dental,""PatientEducation,"or"TBClinic."
ManageVisitAttributeTypes
Ifyouwishtorecordextrainformationaboutvisits,youcancreateVisitAttributesandassignthemtoVisitTypes.Forexample,youmightcreateattributesfor"FollowupVisit,"or"DistancePatientTraveled."
ConfigureVisits
ThereareseveralsettingsfortheVisitfeature.
Visitisenabledbydefault,butisanoptionalfeature.WhileVisitisenabled,thepatientdashboardwillshowatabcalledVisitsandgroupallencountersbyvisit.Ifdisabled,thepatientdashboardwillshowtheEncounterstabandlistencounterschronologicallywithnogrouping.
Avisithasastarttimeandanendtime.Thestartdateandtimeisautomaticallysetwhenavisitiscreated.Theenddateandtimeisleftblankbydefault.Itissetmanuallybyadataclerk.
TheStartautoclosevisitstaskoptionchangesthis.Ifenabled,auto-closewillautomaticallysettheenddatetothestartdate,andtheendtimeto23:59.
Auto-closeisusefulforvisittypesthatneverlastmorethanaday,suchasoutpatientordentalvisits,orwheretheexactendtimeisn'timportant.Auto-closeisnotrecommendedforvisittypesthatlastmultipledays,suchashospitalization,orwhereanexactdurationmightbeimportant,suchasanemergencyroomvisit.
ConfiguringVisits
56
![Page 57: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/57.jpg)
TheEncounterVisitHandlercontrolsvisitcreationandencounterassignmentwhenanencounteriscreated.Thedefaultoptionwillautomaticallylinktheencountertoamatchingvisit,orcreateoneifnoneexists.Tomatch,avisitmustbeatthesamelocation,andtheencounterdatesmustbebetweenthevisitstartandendtimes.ThesecondoptionassignsanencountertoamatchingVisitifoneexists,butdoesnotcreateanewone.Thethirdoptionwillnotassignencounterstoanything.
TheEncounterVisitHandlerwillonlyaffectnewencounters,andonlywhileenabled.Itdoesnotaffectexistingvisits.Ifyouturnthefeatureoff,orifyouupgradefromanearlierversionofOpenMRS,itwillnotretroactivelycreatevisits.
ConfiguringVisits
57
![Page 58: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/58.jpg)
ThePatientDashboardInDepthThePatientDashboardistheplacetovieworeditapatientrecord,andaddnewVisitsandEncounters.
ThePatientDashboardappearancemaybechangedbymodules.Thischapterwillshowthedashboardasitlookswithoutmodules.
FindingorCreatingaPatient
Tobegin,wemustfindorcreateapatient.ThisisdonefromtheFind/CreatePatientlinkonthetopmenu.
CreatingpatientsisexplainedintheRegisteringPatientschapter.
Header
Theheaderbarappearsatthetopofthedashboard.Itcontainsasummaryofsomepatientdetails:name,IDnumber,gender,ageandbirthdate,weight,andregimen.Therewillbealinktoanyvisitinprogress.Ifnovisitsareinprogress,onecanbebegunwiththeStartVisitbutton.
OverviewTab
ThePatientDashboardInDepth
58
![Page 59: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/59.jpg)
TheOverviewtabonthePatientDashboard.
TheOverviewtabgivesaccesstoseveralpatientfeatures.
IfapatientisamemberofanyProgram(configuredinAdministration>Programs),itwillbedisplayedhere.
TheExitPatientfromCarebuttoninthePatientActionssectionwillendthepatient'sparticipationinanyprogram.
TheRelationshipstabshowsrelationshipsbetweenthePatientandotherpatients,providers,orusersintheOpenMRSinstallation.Thedefaultrelationshiptypesincludeparent-child,sibling,doctor-patient,andaunt/uncle-niece/nephew.YoucanaddrelationshiptypesinAdministration>Person>ManageRelationshipTypes.
AllergiesarelistedintheAllergiesbox.
UsetheProblemListtohighlightongoinghealthproblems.
RegimensTab
ThePatientDashboardInDepth
59
![Page 60: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/60.jpg)
TheRegimenstabonthePatientDashboard.
TheRegimenstabshowsapatient'scurrentandcompletedtreatmentregimens.
Visits/EncountersTab
TheVisits/EncounterstabonthePatientDashboard.
TheVisitstabshowsallofthepatient'sencounters,groupedintovisits.IftheVisitsfeatureisdisabled,thetabwillbenamedEncounters.
Tostartanewvisit,clicktheAddVisitlinkintheVisitstab,ortheStartVisitbuttonintheheader.
ThePatientDashboardInDepth
60
![Page 61: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/61.jpg)
Toviewavisit,clickthelinkwiththevisit'sname.Ifauserhaseditingprivileges,thevisitwillopenineditmode.
Avisit,openedineditmode.
Ineditmode,youcanaddorremoveencountersfromthevisit.
Toviewanencounter,returntoPatientDashboard>Visitstab.ClickontheViewicontotheleftoftheencounter.Ifauserhaseditingprivileges,theencounterwillopenineditmode.
Anencounteropenedineditmode.Forthisexample,weusedtheFormEntrymoduletocreateanddisplaytheencounter.
ThePatientDashboardInDepth
61
![Page 62: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/62.jpg)
DemographicsTab
Viewthepatient'saddressandnamesfromtheDemographicstab.TheEditPatientlinkswillletyoueditthepatient'sinformation,includingidentifiers,birthanddeathdates,andrelationships.
TheDemographicstabonthePatientDashboard.
GraphsTab
TheGraphstabcandisplaygraphsofpatientinformationsuchasCD4counts.
FormEntryTab
TheFormEntrytabonthePatientDashboard.
Toaddoreditencounters,selecttheFormtab.Thelastthreeencountersarelistedatthetop.
Toaddanewencounter,selectaformfromtheEnterFormbox.FormsetupanduseisdescribedinmoredetailinthechaptersonDataEntry,HTMLForms,andXForms.
ThePatientDashboardInDepth
62
![Page 63: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/63.jpg)
ThePatientDashboardInDepth
63
![Page 64: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/64.jpg)
RegisteringPatientsInordertobeabletofilloutformsforapatient,youmustfirstcreateaPatient.Often,aregistrationclerkordataentryclerkwillcreatepatientsinthesystem.Youshoulddecidewhichmodelworksbestforyourclinic,topreventduplicationofrecords.
YoucancreatepatientsbyclickingFind/CreatePatientinthetopmenu.
ThefirststepincreatingapatientrecordistofillouttheshortCreatePatientform.Afterenteringthenecessaryinformation,clickonCreatePerson.Youcanentermoredetailsonthenextscreen.
RegisteringPatients
64
![Page 65: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/65.jpg)
FamilyName,IDNumber,andIdentifierTypearerequired.Identifiertypeisdiscussedindetailinthe"ManagingConceptsandMetadata"chapter.
ClickSavetogotothePatientDashboardscreen,whereyoucanseeallthedetails,forms,etc.forthenewlycreatedpatient.
RegisteringPatients
65
![Page 66: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/66.jpg)
DataEntry
Anelectronicmedicalrecordssystemhasmanyadvantagescomparedtoatraditionalpaper-basedsystem.Dataiscollectedusingelectronicforms,andastandardtemplatemeansthateachuserseesthesamestructure,simplifyingtherepresentationoftheunderlyinginformationstructureandcomplexity.Electronicformsalsoallowforbasicdatavalidation.
Anadministratormustdesigntheformtemplatesthatdataclerkswilluse.TherearethreeformsmodulesinOpenMRS.AnOpenMRSinstallationmayusemorethanonestyle,butforsimplicity,it'srecommendedyoubeginwithone.Theyarecomparedbelow.
FormType Advantages Disadvantages
HTMLForms
EasytouseOngoingdevelopmentofnewfeaturesSupportscomplexlogicoperationsExtendableAllowsreviewofformsaftersubmission
RequiresHTMLknowledgeNotsupportedonmobiledevices
XFormsOpensourceEasytouseWorkswellonmobiledevices
Doesnotsupportsomecomplexlogicoperations
InfoPathOriginalapproachtodataentryviaformsOthersmayalreadybefamiliarwiththetechnology
NotopensourceRunsonlyonWindowsRequirespaymentoflicensefeesNonewdevelopmentbytheOpenMRSteam
DataEntry
66
![Page 67: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/67.jpg)
ThenextchaptersdescribeHTMLFormEntryandXFormsinmoredetail.
InfoPathforms,createdwiththeFormEntrymoduleandMicrosoftInfoPath,arenotrecommended.MicrosoftInfoPathisproprietarysoftware,andtheformsaredifficulttotroubleshoot.InfoPathformswillcontinuetowork,buttherewillbenonewdevelopment.
DataEntry
67
![Page 68: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/68.jpg)
HTMLFormsThischapterwilldiscussonlytheHTMLFormentrymethod.Thisisthesimplestandmoststraightforwardapproachtodataentry.ItissupportedbytheHTMLFormEntrymodule,whichisincludedwiththedefaultdistributionofOpenMRS.
BasicHTMLformstructure
EveryHTMLformmusthavethefollowingminimalelements:
<htmlform>
<p>Dateofencounter:<encounterDate/></p>
<p>Healthcenter:<encounterLocation/></p>
<p>Clinician'sname:<encounterProviderrole="Provider"/></p>
...
<p>Nameofobservation:<obsconceptId="x"/></p>
<p><submit/></p>
</htmlform>
Formheader
Itiseasiesttoleavetheseessentialelementsinaformheadersectionthatyoure-useatthetopofeachform.Themandatoryobservationelementisincludedbelow.
Casestudy:AmaniClinic
ThecliniciansattheAmaniClinicneededawaytocapturepatienthistoryaspartoftheirmaternalandchildhealth(MCH)program.TheyhadbeenincontactwiththeMilleniumVillagesProject(MVP)viatheOpenMRSimplementersmailinglist.MVPstaffsharedtheirAntenatalVisitform.TheimplementationteamdecidedtousetheHistorysectionfromtheMVPformasabasisfortheirMCHhistoryform.
TheMVPAntenatalHistorysectionlookedlikethis:
HTMLForms
68
![Page 69: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/69.jpg)
Step1:Identifyandcreateconcepts
Beforeyoucreateaform,youmustensurethatallreferenceconceptsarepresentintheconceptdictionary.BecausetheMVPteamalreadyhadaconceptdictionary,theAmaniClinicwereabletoimporttheconceptstheyneeded.Ifyoudon'thaveaccesstoanappropriateconceptdictionary,youcanalsocreatenewconceptsdirectly,followingthestepsoutlinedinthechapterManagingConceptsandMetadata.
TheMVPformincludedfourteendifferentQuestionConcepts,aswellasAnswerConceptsfor[1],[3],[6],[9],[11],[13],and[14].
Step2:Createtheform
Tocreateaform,clickontheManageHTMLFormslinkontheAdministrationpage.
HTMLForms
69
![Page 70: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/70.jpg)
ClickNewForm.
EnterthebasicforminformationandclickSave.
Step3:CreatevisualformstructurewithHTML
HTMLformsallowyoutocreateastructurethatcloselyresemblesyourpaperforms,althoughitmaynotbepreciselythesame.
ThedegreetowhichyourformresemblesthepaperformdependsonyourHTMLlayoutskills--allHTMLtagsaresupported.Tablelayoutisbeyondthescopeofthisguide,buttherearemanyresourcesavailableonline.
ThisisthebasicstructureoftheexampleHTMLform,withaplaceholderlabelinsertedforeachobservation:
HTMLForms
70
![Page 71: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/71.jpg)
Step4:Insertobservationelements
Next,insertaformtagforeachobservationinyourforms.TheseobstagsarenotHTMLtags,butarerequiredbyOpenMRS.Thefollowingsectionsprovideexamplesofeachconceptdatatypeusedontheexampleform.TheHTMLFormEntrymoduleprovidesawidevarietyofothertags.PleaseconsulttheHTMLFormreferenceonthewikiforfulldocumentationalongwithotherexamples.
https://wiki.openmrs.org/display/docs/HTML+Form+Entry+Module+HTML+Reference
Note:TheConceptIdentifiernumbersusedinthisexamplewillnotmatchtheConceptIdentifiersinyourlocalOpenMRSinstance.
Example1:Dateobservation
ToinsertaDateObservation,includetheQuestionConceptIDofanydate-basedConcept.TheformattinglabelbehindtheDateBoxcannotberemoved.
<table>
<tr>
<td>
<b>LastMenstrualPeriod:</b>
</td>
<td>
<obsconceptId="1427"/>
</td>
</tr>
</table>
Example2:Booleanobservation
HTMLForms
71
![Page 72: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/72.jpg)
ToinsertaBooleanobservation,includethequestionconceptIDofanybooleanconcept.ThereareseveraldifferentstylesavailableforBooleantypes.
...
<table>
<tr>
<td>
<b>High-RiskSex:</b>
</td>
<td>
<obsconceptId="1355"style="yes_no"/>
</td>
</tr>
</table>
....
Example3:Codedobservationwithradiobuttons
Thisobselementisinsertedwiththeradiobuttonstyle.YoumustspecifyeachanswerconceptIDeventhoughtheyarealreadyrecordedinthesystemasanswersforthequestionconcept.Ifyouwanttouseanameotherthantheconceptnameforananswerconcept,youmustincludetheanswerconceptlabel.
Torendertheradiobuttonsvertically,insert<br\/>attheendofeachlabelforthepreviousbutton.
...
<table>
<tr>
<td>
<b>ReasonForVisit:</b>
</td>
<td>
<obsconceptId="1433"style="radio"answerConceptIds="1435,1434,5622"answerLabels="PlanningPregna
ncy<br\/>,CurrentlyPregnant<br\/>,Other"/>
</td>
</tr>
</table>
...
Example4:Codedobservationwithmulti-selectcheckboxes
HTMLForms
72
![Page 73: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/73.jpg)
Thisobselementisinsertedwiththecheckboxbuttonstyle.YoumustspecifyeachAnswerConceptIDeventhoughtheyarealreadyrecordedinthesystemasanswersforthequestionconcept.Ifyouwanttouseanameotherthantheconceptnameforananswerconcept,youmustincludetheanswerconceptlabel.
Eachcheckboxselectedactuallyrepresentsanindividualobservation;thequestionconceptiscommonbuteachanswerconceptisunique.
...
<table>
<tr>
<td>
<b>RecentContraceptiveUse:</b>
<br/>
<obsconceptId="1635"answerConceptId="1107"answerLabel="None"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="780"answerLabel="OralContraception"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="190"answerLabel="Condoms"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="5277"answerLabel="NaturalPlanning/Rhythm"style="checkbo
x"/>
<br/>
<obsconceptId="1635"answerConceptId="5278"answerLabel="Diaphragm"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="1378"answerLabel="Depo-Provera"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="1359"answerLabel="Norplant"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="1388"answerLabel="Surgery"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="5622"answerLabel="Other"style="checkbox"/>
<br/>
</td>
</tr>
</table>
...
Completeform
HTMLForms
73
![Page 74: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/74.jpg)
SeeAppendixBforFullHTMLsource.
EnterPatientDataUsinganHTMLForm
ClickonFind/CreatePatientfromanywherewithinOpenMRS.
Begintypingthepatient'sIDnumberorname,thenselectthepatientforwhomyouareenteringdata.
ClicktheFormEntrytab.
HTMLForms
74
![Page 75: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/75.jpg)
Selecttheappropriateformasshownbelow,thenfillinthepatientdataandclicktheEnterFormbuttononthepagethatappears.
YoucannowseethecompletedformundertheFormEntrytabofthepatient'schart.
HTMLForms
75
![Page 76: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/76.jpg)
XFormsThischapterwillexplainanddemonstratetheuseoftheXFormsModuleforpatientdataentry.
WhatanXFormis
XFormsisanXMLformatforspecifyingadataprocessingmodelforXMLdataanduserinterface(s)fortheXMLdata,suchaswebforms.XFormswasdesignedtobethenextgenerationofHTML/XHTMLforms,butisgenericenoughtouseinastandalonemannerorwithpresentationlanguagesotherthanXHTMLtodescribeauserinterfaceandasetofcommondatamanipulationtasks.
Whatthismoduledoes
AllowsdataentrytobedonedirectlyfromanyJavaScriptenabledbrowser.
Enablesyoutoreplacethedefaultpatientregistrationformwithacustomonewithoutanyprogramming.
Letsyouenterobservationsduringpatientregistration.
Supportsuploadingofpicture,sound,andvideofilestogetheranddisplaysandplaysthem.
LetsyoudesignXFormsusingabrowser-basedformdesigner.
ServesOpenMRSformsasXFormstoexternalapplications.
Servesusersandpatientsets,includingmedicalhistory,toexternalapplications.
AcceptsformdatasubmittedfromexternalXFormsapplications.
SupportscreationofpatientsandentryofobservationsforbothnewandexistingpatientsusingbasictextSMS.
Whatitdoesn'tdo
GiveyouasmuchflexibilityastheHTMLFormEntrymodulewhenitcomestotheformlayoutandlooks.
SomefeaturespresentintheHTMLFormEntrymodulearenotyetimplemented(e.g.:relationships).
CreatinganXFormIntheAdminpage,undertheFormssectionselectManageForms.
XForms
76
![Page 77: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/77.jpg)
CohortBuilderTheCohortBuilderisatoolintheReportingCompatibilitymodule(includedwithmostOpenMRSinstallations)thatletsyouperformad-hocqueriesforpatientswithdefinedcharacteristics,andcombinesmultiplequeriesintomorecomplexones.
Acohortqueryreturnsalistofpatientsmatchingthespecifiedcriteria.CohortBuildercannotcreatelistsofdataelementsotherthanpatients.Forexample,youcanusethecohortbuildertosearchforallpatientswithanyweightobservation>70,butitisnotpossibletocreatealistofallobservationsofweight>70.
Tousethistool,clickCohortBuilderatthetopofanypage.
Cohortdefinitions,cohorts,andsearchhistoryEachPatientSearchisaddedtoyoursearchhistory.Thishistoryispreserveduntilyouchoosetoclearitorthewebapplicationisrestarted.Youmayalsosaveyoursearchhistorytopreserveitforfuturere-use.
Youmaysaveanysearch(simpleorcombined)asaCohortDefinitiontomakeiteasiertore-runthatsamesearchinthefuture.Whenyousaveacombinedsearch,itincludescopiesofallitscomponentsearches.
YoumayalsosavethelistofpatientsresultingfromaqueryasaCohort.Thelistofmembersinasavedcohortwillneverchange.Ontheotherhand,runningasavedsearchagainmayproducenewresults.
Theinitialscreenofthecohortbuildercontainsseveralsections:
1. Thetoptabsallowyoutorundifferentkindsofqueries.
2. Eachqueryyouperformgoesintothesearchhistory.
3. TheSave,Load,andClearbuttonshelpkeepyourentiresearchorganized.
4. Afterrunningaquery,cohortmembersaredisplayedhere.
5. ClickthisSavebuttontosavethiscohortforfuturere-use.
6. ClicktheseSavebuttonstosaveapreviousqueryasacohortdefinitionforfuturere-use.
7. Usethelinkatthetopofthecohortbuildertoloadsavedcohortsandcohortdefinitions.
CohortBuilder
77
![Page 78: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/78.jpg)
Searchingbyobservation
Tosearchforpatientswhohaveobservationsmatchingcertaincriteria,choosetheConcept/Observationtab.Starttypingthenameofaconceptthatyouwanttosearchfor[1],andchoosethatconceptfromthesearchresults[2].
IfyouchooseaconceptwhosedatatypeisanythingotherthanN/A,youcansearchforobservationswhosequestionistheconceptyouselected[3].Dependingonthedatatype,youcanlimitthistoanumericordaterange,ortospecificcodedanswers.Youcanalsochoosewhichobservationsyouarelookingfor(first,last,min,max,any,none)orcombine(average),andyoucanspecifydateranges.
Thisexamplewillbuildacohortofpatientswhoselastsystolicbloodpressuremeasurementwasabove130mmHg:
CohortBuilder
78
![Page 79: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/79.jpg)
Youcanalsosearchforanyobservationsthathaveyourchosenconceptasananswer.(You'dtypicallyusethisfordoingahighlyselectivesearch,whichyou'lllaterfilterdowntosomethingmorespecific.)
InthisexamplewesearchforpatientswhohaveanyobservationwhoseanswerisHypertension,whichmightincludebothconfirmeddiagnosesofhypertensionaswellasconsultstoruleoutHypertension:
Searchingbydemographics
SelectthePatientAttributestabtosearchbasedonsimpledemographiccharacteristics:gender,age,birthdate,andvitalstatus.
CohortBuilder
79
![Page 80: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/80.jpg)
Inthisexample,wesearchforlivingmalepatientsbetween45and65yearsold:
Searchingbyencounters
SelecttheEncounterstabtosearchforpatientsbasedonencounterstheyhavehad.Youcansearchbyencountertype(control-clicktoselectmultipletypes),location,theformwithwhichtheencounterwasrecorded,dateranges,andthenumberofmatchingencounterstolookfor.
Inthisexamplewesearchforpatientswhohavehadatleast3encounterswhosetypeswereeitherADULTINITIALorADULTRETURN:
Searchingbyprogramenrollments
CohortBuilder
80
![Page 81: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/81.jpg)
SelecttheProgramEnrollmenttabtosearchforpatientsenrolledinaparticularprogram,orpatientswhohaveaparticularstatus.
Inthisexample,wesearchforpatientswhohaveeverbeenintheHypertensionProgram:
CombiningsearchesAfteryouhavedoneseveralsearches,theCompositiontaballowsyoutocombinethemusingBooleanalgebra.YoucanuseAND,OR,NOT,orparenthesestobuildcomplexcombinationsoftheothersearchesinyourhistory.RefertoyourprevioussearchesusingthenumbernexttothemintheSearchHistorysection.
Here,wesearchforpatientswhomatchacombinationofthepreviousexamplequeries:
CohortBuilder
81
![Page 82: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/82.jpg)
ReportingThischapterdescribeshowtousetheReportingmoduletoproduceasimplereportonseveralindicators--thetypeyoumightuseformonitoringandevaluatingaprogram.
Althoughthischapterwillcoverthebasics,asyourOpenMRSimplementationgrows,you'llwanttotakeadvantageoftheReportingmodule'sadditionalfeatureslike:
Multipletypesofindicator-basedreports
Quickwaystobreakdownindicatorsbasedongender,agegroups,etc.
Severalkindsofpatientreports
Theabilitytoscheduleregularreporting
EasyformattingoptionsforprintedoutputusingExceltemplates
AnAPIthatJavadeveloperscanextendtoaddcustomreports,indicators,anddisplays.
Themodule'sfullfunctionalityisbeyondthescopeofthisbook.YoucanfindfurtherdocumentationontheOpenMRSWiki:
https://wiki.openmrs.org/display/docs/Reporting+Module
ThischapterfollowsaftertheonesonDataEntry,becauseyoucannotactuallybuildreportswithoutsomedatatorunthemon.Butwhileplanningtheprojectyoushouldfollowthebestpracticeofdeterminingwhatoutputsyouwant,andworkingbackwardsfromtheretodeterminetheminimalsetofdatathatyouneedtocollecttoproducethoseoutputs.
Backgroundandterminology
ThereportingmoduleisbuiltaroundtheideaofDefinitionsthatareevaluatedtoproduceoutput.
Reportsanddatasets
IngeneralaReportDefinitioncanhavemultipleDataSetDefinitions.Whenrun,thiswillproduceareportwithmultipledatasets,whichisrenderedtoaformatchosenbytheuser.
Cohorts
AlmostallreportsproducedwithOpenMRSrefertogroupsofpatients.Areportmayberunondifferentpatientgroups,orrequireidentifyingorcountingsub-groupsofpatients.Themoduleletsyoudefinecohortqueries(asdiscussedinthechapter"CohortBuilder").Whenthereportisrun,thesequerieswillbeevaluatedtoproduceactualcohortsofpatients.
Indicators
Inthischapter,welookatareportthatisbasedonIndicators,andspecificallyindicatorsthatlookatthecountofpatientsinacohortinaperiodoftime.
Parametersandmapping
UnlikeintheOpenMRSCohortBuilder,reportsandtheirunderlyingqueriesareintendedtobecreatedonce,andreused.Tosupportthisidea,reportsandqueriesusuallytakeparameters.Forexample,areportintendedtoberunmonthlywouldhaveStartDateandEndDateparameters,andtheuserwouldbeaskedforthesewhentheygeneratethereport.
Reporting
82
![Page 83: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/83.jpg)
Theunderlyingqueriesinthereportalsotypicallytakeparameters.IfthereportisgoingtodisplaythenumberofpatientsenrolledintheChildNutritionStudyattheendofagivenmonth,itwouldneedtohaveanunderlyingCohortQueryfor"patientsenrolledinChildNutritionStudyonadate."p;[/0"+{}hatdatewouldbeanEffectiveDateparameter.
Whentheuserrunsthereport,theyareaskedforaStartDateandanEndDate,buttheyarenotaskedtospecifyanEffectiveDate.Whendesigningthereport,youwillneedtodefinehowparametersintheunderlyingqueriesobtaintheirvalues,basedonthevaluesprovidedbytheuserwhenrunningthereport.Thisprocessiscalledmapping.
Theideaofmappingparametersiscomplicated.Thefollowingresourcesincludemoreinformationaboutwhyitisnecessary,andhowtodoit:
http://om.rs/bookmapping
http://om.rs/bookmapvid
AmaniClinic'sweeklyreport
BeforeadoptingOpenMRS,AmaniClinicusedtospendsignificanttimeattheendofeverymonthtabulatingpaperregistersandpatientchartstoproduceamonthlyreportfortheMinistryofHealth.WhenplanningtheirOpenMRSimplementation,theydecidedthattoimprovetheirprogram,theyneededmoreimmediatefeedback.TheclinicandMinistryofHealthmetanddecidedonfiveindicatorsonwhichtheywantedareporteveryweek.Theymodifiedtheirpaperdatacollectionformstomakesurethattheywerecapturingtherightdatatoproducethoseindicators,aswellastheperiodicMinistryofHealthreports.
We'llfocusontwooftheindicatorstheycalculated:
1. Numberoffemalepatientsseenduringtheweek,and
2. Thepercentageofthosewhowere>16yearsold,notpregnant,andusingappropriatefamilyplanning
DefiningtheUnderlyingCohortQueries
Calculatingthefirstofthoseindicatorswasverystraightforward:theydefinedthistobeanyfemalepatienthavinganencounterbetweenthestartandendoftheweek.
Thesecondindicatorwasmorecomplicated:theyhadtobreakdownboththenumeratorandthedenominatorintomultiplecohortqueries.Forthedenominatortheyneeded:
Notpregnant("noobsforEstimatedDateofConfinementwithavalueinthefuture")
Female
Age>16attheendoftheweek
Hadanencounterduringtheweek(sameasthequeryforthefirstindicator)
Thenumeratorrequiredjustonemorecohortquery,forpatientswhoself-reporteduseofcontraceptivemethodsotherthan"NaturalPlanning/Rhythm"duringtheweek.
Reporting
83
![Page 84: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/84.jpg)
Buildingthereportintheuserinterface
Havingdeterminedhowtocalculatetheirindicators,theyproceededtobuildthemintheReportingmodule'suserinterface.First,theybuiltthelow-levelqueries[1].Theythencomposedthetwoindicatordefinitions[2]fromthosecohortqueries.Finally,theycreatedareportdefinition[3]thatincludedthetwoindicators.
BuildingcohortqueriesTheCohortQuerymanagementpageshowsyouthedifferenttypesofqueriesavailable.Clickingonanyofthe[+]linksletsyoucreateanewqueryofthattype.
ThesimplestquerybuiltbyAmaniClinicincludedonlyfemalepatients:
Therestofthequeriesneededtoincludeparameters.Forexample,thequerytofindpatientswithanyencounterbetweentwogivendates,the"onorafter"and"onorbefore"fieldsweresetasaParameter[1]anduser-friendlynames"StartDate"and"EndDate"wereprovided.
Reporting
84
![Page 85: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/85.jpg)
SomeofthequeriesbuiltinthisexampleincludedparametersthatwerenotdirectlyequivalenttotheStartDateandEndDateofthereport.The"notpregnant"querywasaDateObservationQuerythatincludedasingleparameter,whichtheylatermappedtotheEndDateofthereport.
Reporting
85
![Page 86: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/86.jpg)
Combiningcohortqueries
AfterAmaniClinicstaffcreatedtheunderlyingqueriesthattheirreportrequired,theybuiltseveralCompositionCohortQueriestotiethemtogether.Themostcomplicatedquerycalculatedthedenominatorofthesecondindicator,"non-pregnantwomen,age>16,seenduringtheweek."
Thisistheircompositionquery,whichincludesthetwoparametersStartDateandEndDate.Itincludesfourunderlyingqueries,withvaluesinthosequeriesmappedtothesetwoparameters.Finally,thequeriesarecombinedwithANDtorunthemalltogether.
Here,weseethesevencohortqueriestheybuilt:
Indicators
Havingbuiltcohortqueriestodotheunderlyingcalculations,theyusedthesetobuildthetwoindicators.TheIndicatorspageisaccessedfromtheManageReportDefinitionssectionoftheAdministrationpage.
Reporting
86
![Page 87: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/87.jpg)
Sinceindicatorsaregenerallycalculatedoveratimeperiod,ataparticularlocation,theindicatorstheycreatedcontainthedefaultStartDate,EndDate,andLocationparameters.(SincetheAmaniClinicwasonlymanagingasinglesiteinOpenMRS,theyignoredtheLocationparameter.)
Countindicators
ThesimplesttypeofindicatorisaCountindicator,whichcountsthenumberofpatientswhomatchacohortquery.
TheyusedaCountindicatortobuildtheirfirstindicator,shownbelow.Theunderlyingcohortqueryisacompositionqueryincluding"Females"and"AnyEncounterBetweenDates."
Fractionindicators
ThemostusefultypeofindicatorformonitoringprogramprogressistheFractionindicator,whichtakestwocohortdefinitions,representinganumeratorandadenominator,anddisplaysthisasafraction.(Itensuresthatthenumeratorpatientsareasubsetofthedenominator.)
AmaniClinicbuilttheirsecondindicatorasafractionindicator.TheunderlyingcohortqueryforthenumeratorwasasimpleCodedObservationQuery,whilethedenominatorwastheCompositionQuerydescribedabove.
Periodindicatorreport
Havingcreatedtheirindicators,theybuiltareportthatcombinedthem.TheyusedaPeriodIndicatorReport,whichisasimplewaytoshowtheindicatorsyouhavealreadydefined.
Reporting
87
![Page 88: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/88.jpg)
Runningthereport
Torunthisreport,theAmaniClinicdatamanagerclickstheReportinglinkonthetopofthescreenandselectstheProgramMonitoringReport.Theymustenterthestartandenddateoftheweekforwhichtogeneratethereport.
Theoutputofthereportincludesclickablelinkstothelistsofpatientsmatchingeachindicator.
Reporting
88
![Page 89: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/89.jpg)
PatientAlertsandFlagsIt'simportanttoactivelyuseyourdatatoprovidefeedbacktousersofthesystem,bothforclinicalpurposesanddataqualitypurposes.OnewaytodothisiswiththePatientFlagsmodule,whichcandisplayFlagsonapatientdashboardwhencertaincriteriaaremet,andtofindallpatientsthatmatchasetofcriteria.Wewillbrieflydescribethismodulehere,butyoucanfindfurtherdocumentationatthefollowinglocation:
https://wiki.openmrs.org/display/docs/Patient+Flags+Module
Usingthismodulerequiressignificanttechnicalknowledge.ThischapterassumesthatyouarefamiliarwithCSS,SQL,Groovy/Java,andtheOpenMRSAPI.
First,youneedtoinstallPatientFlagsmodulefromtheOpenMRSmodulerepository,andthengotoitssectionontheAdministrationpage.First,definecategoriesofalerts[1].Then,youcandefinelogicandmessagesforthesealerts[2].
CategorizingflagsbyprioritiesFromtheManagePrioritieslink,youcandefinedifferentcategoriesofalerts,eachofwhichcanbedecoratedwithcustomCSS.
Inthisexamplewedefinetwodifferentcategoriesofalerts,themorecriticalofwhichwillbehighlightedinorange,andtheotheringray.Notethatyouneedtoincludethestyle="..."inyourstyleproperty.
Definingflags
Tosetupaflag,youneedtodefineacalculationthatreturnsthecohortofpatientsforwhomtheflagshouldbeshown.Therearemultiplewaystodothis,eachrequiringadifferenttypeoftechnicalknowlege.
Allflags,regardlessofhowtheyarecalculated,letyouspecifytextandaPriority.Thetextisdisplayedonapatientdashboardforpatientstowhomtheflagapplies,andthePrioritycontrolstheformattingoftheflagifdisplayed.
Finally,youcandecidewhetherflagsareReal-Time,whichmeansthattheflagstobedisplayedarecalculatedwheneveryouviewapatientdashboard.Ifyoudon'tmakeaflagreal-time,youcanstillexecutetheflagcalculationsondemandasabatch.
SQLflags
PatientAlertsandFlags
89
![Page 90: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/90.jpg)
ThecalculationbehindthistypeofflagisaSQLstatementthatwillbeexecutedagainstthedatabase,andmustincludeaselect(something).patient_id...statement.Theresultsofthisquerywillbeintersectedwithallnon-voidedpatientstoproducetheCohortfortheflag.
ManysystemadministratorsknowhowtowriteSQLqueries,andovertimetheybecomefamiliarwiththeOpenMRSdatamodel,makingthistypeofflagveryaccessible.Atthesametime,writingthistypeofflagcanbeerror-prone.Thereisnothingtopreventyoufromomittingaclause,suchastoensureyouareonlylookingatnon-voideddata.
Inthisexamplewearesearchingforallpatientswhohavecarriedatleast4pregnancies.
SinceSQLflagsmustinclude.patient_idintheirselectclause,wehavetojointheobstableagainstthepatienttable,eventhoughwearen'tusingthattable.
Groovyflags
ThemostpowerfultypeofflagallowsyoutowriteGroovyorJavacode,whichcancallOpenMRS'sJavaAPIandperformcomplexcalculationsonpatientdata.TheadvantageofwritingflagsinGroovyisthattheOpenMRSAPItakescareofdetailslikeensuringyouareonlygettingnon-voideddata.ThelimitationisthatmostmanagersofOpenMRSsystemsdonotknowhowtowriteGroovy/Javacode.
AGroovyflagreturnsacohortofallpatientsthatmatchthecalculation.Inthisexamplewefindallpatientswhoareexpectedtogivebirthinthenext3months,butwhohave_not_hadanencounterinthelast3months.
PatientAlertsandFlags
90
![Page 91: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/91.jpg)
PatientAlertsandFlags
91
![Page 92: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/92.jpg)
UserManagementandAccessControlRolesandPrivilegesarecontrolledthroughtheAdministrationpage,undertheManageUserssection.
OpenMRSusesprivilegesandrolestocontrolaccesstodatawithinthesystem.Privilegesdefinewhatcanorcannotbedoneinthesystem(e.g.,EditPatientsorAddUsers),whilerolesareusedtogroupprivilegesintomoremanageablegroupings.Tomakethesystemeasiertomanage,rolescancontainotherrolesaswellasprivileges.Rolesinheritalltheprivilegesoftheirparentroles.
Wewillusethisexample:youareworkingwithseveralprivilegesrelatedtopatientdata—e.g.,ViewPatients,EditPatients,andAddPatients.TheViewPatientsprivilegeletsuserslookatpatientsinthesystem,theEditPatientsprivilegeletsuserseditinformationaboutexistingpatients,andtheAddPatientsprivilegeallowsuserstocreateacompletelynewpatientrecordwithinthesystem.
Nowimaginethatyouneedtoassigntheproperrulestothreepeople:MarytheMedicalStudent,BobtheDataAssistant,andEricatheDataManager.Youwantmedicalstudentstobeabletoviewpatients,butnoteditoraddthem.Dataassistantsshouldbeabletonotonlyview,butalsoeditpatientdata.Andyouwantyourdatamanagerstobeabletocreatenewpatientswithinyoursystem.
Designingroleandprivilegeschemes
Inordertogivetheseprivilegestotherelevantusers,youmustdefinearoleforeachofthesetypesofuser.
Role Privilege(s)
MedicalStudent ViewPatients
DataAssistantViewPatients
EditPatients
DataManager
ViewPatients
EditPatients
AddPatients
Now,bydefiningthemainrolesforusersofyoursystemandassigninguserstothoseroles,youhaveamucheasiersystemtomanageanduserswillautomaticallyinheritallprivilegesgiventotheirrole(s).Ofcourse,someuserswillhavemultipleroles.Now,let'stakethisprocessonestepfurther.Whileitmaynotseemnecessaryinthissimpleexample,asyoursystemgrows,youwilllikelyendupwithalargenumberofdifferentroles.Veryoften,certainrolescanbedefinedasacombinationofotherroles.Inourexample,aDataManageroverseestheDataAssistantsandthereforeshouldhavealloftheirprivilegesplussomeadditionalprivileges.So,let'sredesignourrolesslightlytoshowhowthismightwork.
Role InheritPrivilegesfromRole(s) AdditionalPrivilege(s)
MedicalStudent ViewPatient
DataAssistantViewPatient
EditPatient
DataManager DataAssistant AddPatient
UserManagementandAccessControl
92
![Page 93: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/93.jpg)
YoucanseethattheDataManagerrolecanbemoreclearlydefinedasaDataAssistantwiththeextraabilitytoaddpatientstothesystem.Inaddition,ifyoushouldchangeorenhancetheprivilegesoftheDataAssistantroleatanytimeinthefuture,theDataManagerwillautomaticallyadapttothosechanges—forexample,ifyoudecidedamonthlatertoallowanyDataAssistanttoEditEncounters(byaddingtheEditEncountersprivilegetotheDataAssistantrole),theDataManagerrolewouldautomaticallygaintheabilitytoeditencountersaswell.
Inacommondeploymentscenario,youwillhaveseveralrolesthatusethesameprivilegeswithonlyafewdifferences.Itissimplertomanagetheseprivilegesbydefininganewrolefromwhichtheotherscanallinherit.Forexample,youmayhaveroleslikeClinician,DataAssistant,andCaregiverthatallhavethesamerulesaboutviewingpatientdata.YoumightbenefitfromcreatinganewPatientDataViewerrole,assigningittoeachofthoseotherroles,andthenmanagingtheprivilegesinoneplace(underthatnewrole).Whenthereisapolicychangeaboutviewingpatientdata,oranewmoduleisaddedthataddsnewfunctionsforviewingdata,youwouldupdatethePatientDataViewerrole.Alltheinheritingroleswouldautomaticallyusethenewsettings.
Built-inroles
TherearesomespecialrolesthatarepredefinedwithinOpenMRSandcannotbedeleted:Anonymous,Authenticated,andSystemDeveloper.AnyprivilegesgrantedtotheAnonymousrolewillbeavailabletopeoplewithoutloggingintothesystem.Generally,Anonymousprivilegesshouldbekeptveryrestricted,sincepatientinformationmightotherwisebecompromised.PrivilegesgrantedtotheAuthenticatedrolearegrantedtoanyonethatlogsintoyoursystem,nomatterwhatotherrole(s)theymightbeassigned.GrantingprivilegestotheAuthenticatedroleisaneasywaytograntprivilegestoallusersofthesystem.TheSystemDeveloperroleisautomaticallygrantedfullaccesstothesystemandshouldonlybegrantedtosystemadministrators.
Superusers(systemadministrators)areautomaticallygrantedallprivilegesinthesystem;therefore,youmustbeverycarefultoprotectyoursystemadministratorpassword.
Someprivilegesarebuiltintothesystemandcannotbedeleted.Otherprivilegesmaybeaddedbymodules.Itisunlikelythatyouwillbeaddingnewprivilegesyourself,sinceprivilegesareonlyusefulwhentheyareunderstoodandusedbythesystem.Ontheotherhand,youwilldefinitelybecreatingnewrolestofityourneedsandwillbemanagingprivilegeswithinthoseroles.
Creatingroles
YoucreaterolesthroughAdministration>ManageRoles.
1. Allowstoaddanewrole
UserManagementandAccessControl
93
![Page 94: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/94.jpg)
2. Listsallrolespresentinthesystem
3. Clickaroletoeditit.
IfyouthenfollowtheAddRolelink,youwillseeaformforaddinganewrole.
1. EnterRoleName
2. ChooseRolesPrivilegesofwhichyouwanttoinherit
3. ChoosePrivilegeswhichyouwantthisRoletohave
Creatingusers
Tocreatetheseusers,we'llgothroughAdministration>ManageUsers.Thispagealsoletsyoufindandeditexistingusers.
UserManagementandAccessControl
94
![Page 95: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/95.jpg)
1. CreateanewUser
2. SearchUsersbyNameorRoles
3. Searchresults
4. EditasingleUser
UsersinOpenMRSneedtobeassociatedwithPersons.YoueitherneedtocreateanewPerson,orattachtheuseraccounttoanexistingone.
InbothcasesyouwillbetakentothesameAdd/EditUserscreen.(Ifyouselectedanexistingperson,thefieldsintheDemographicInfosectionwillbefilledoutforyou.)
UserManagementandAccessControl
95
![Page 96: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/96.jpg)
ManagingProviders
ForeveryEncounteryoumustenteroneormoreProviders,thepersonwhoprovidedthecareorservices.Formsusuallyincludeadropdownboxtoselectaprovider.
ThesystemadministratormustexplicitlyidentifyProviders.ThisisdonethroughAdministration>Providers>ManageProviders.
Therearetwokindsofproviders.InOpenMRS1.8andearlier,aproviderhadtobeassociatedwithauseror,lessoften,apatient.Theadministratorhadtocreateauser,andthensearchforthemwiththePersondropdownbox.Thisismostusefulwhenaproviderhasauserlogin.
AtmanyOpenMRSsites,onlyafewuserslogintothesystem.Often,treatmentnotesareenteredbydataclerksafteranencounter,andcliniciansneverlogin.Perhapstherearehundredsofproviderswhovolunteeratthecliniconlybriefly.FromOpenMRS1.9on,theseproviderscanbeenteredasaname,andauserloginisnotrequired.
Forsystemsecurity,patientprivacy,andeaseofmaintenance,it'sbesttoenterprovidersonlyasaProviderNamewhenpossible.Youshouldcreateauseriftheproviderneedstologinorbegivenspecialpermissionsthrougharole.Youcanassignausertoaprovideratalatertimeifitbecomesnecessary.
TocreateaProvider,gotoAdmin>ManageProvidersandclickAddProvider.
UserManagementandAccessControl
96
![Page 97: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/97.jpg)
Theidentifierisauniquewordornumberthatyouprovide.It'srecommendedthatyoucreateidentifiersinawaythat'ssimpleandeasy,suchasusingtheprovider'slastnameandfirstname.
Next,decideifthisproviderwillbeassociatedwithaPerson,oronlybeenteredasaprovidername.IfyouchoosethePersonstyle,youmusthavealreadycreatedaUserforthem.BegintypingtheirnameinthePersonfield,andselectthemfromtheauto-completelistofmatchingusers.ForaProviderwhoissimplyaProviderName,entertheirnameintheProviderNamefield.
ClickSavetosavetheprovider.
UserManagementandAccessControl
97
![Page 98: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/98.jpg)
MaintenanceOpenMRSserverroominWebuye,Kenya.
OnceyouhaveinstalledandconfiguredOpenMRSanditisbeingusedtosupportday-to-dayclinicaloperations,thereisstillworktobedone.Toensurethesystemrunssmoothlyanderror-free,usethefollowingtipsasastartingpointtocreateamaintenanceplanforyourOpenMRSinstallation.Werecommenddocumentingthisplanandreviewingitregularly.
Servermanagement
Althoughoutsidethescopeofthisbook,itisimportanttokeepbothyourOpenMRSserver(s)andclientsystemsupdatedwiththelatestsecuritypatches.InWindows,youshouldusetheWindowsUpdatetooltoreviewandinstallcriticalsystemupdates.IfyouuseLinux,useeitherapt-getupgradeoryumupdate,dependingonwhatdistributionofLinuxyouuse.
BeforeupgradingMySQL,Java,orApacheTomcat(andofcourse,OpenMRS)youshouldcheckwiththeOpenMRScommunitytoseehowthoseupgradesmighteffecthowOpenMRSrunsonyourserver.Seethe"GettingHelp"sectionformoreinformation.
Youshouldalsoperiodicallychecktoensureyourserverhasplentyoffreediskspace.Additionally,ifyouarerunningaWindowsserver,ensureyoursystemhasanti-virussoftwareinstalledanditisup-to-date.
Backups
Youshouldensureyoursystemhasabackupstrategy.Muchhasbeenwrittenonthissubjectandgeneralknowledgeaboutbackupsisbeyondthescopeofthisbook.However,therearesomespecificitemstoconsiderwhenbackingupyourOpenMRSserver.
Maintenance
98
![Page 99: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/99.jpg)
Mostimportantly,youneedtocreateabackupstrategyforyourMySQLdatabase.Perhapsthesimplestwaytodothisisbyusingthemysqldumputilitythatshipswiththedatabase.Ideally,youwillwanttoshutdownOpenMRSbeforebackingup,andrestartitoncethebackuphascompleted.Ifyouarenotabletodoso,orwishtohavethesystemremainina"read-only"mode,youmaywanttousetheoptionsofmysqldumptolocktables.ConsulttheMySQLdocumentationfordetails.
Youshouldalsoensureyouarebackingupthe.OpenMRSdirectory.Thisdirectory,whichstoresmodulesandconfigurationfiles,isstoredinthehomedirectoryoftheuserthatrunstheTomcatserveronWindowsorLinux.
Performancetuning
Overthepastseveralyears,implementersofOpenMRSaroundtheworldhavecompiledinformationaboutimprovingtheperformanceoftheirsystems.Thereareseveralcomponentsofthesystemthatmayneedtobetunedtoensureoptimalperformance.Pleaseusetheinformationinthefollowingsectionsasaguideandastartingpoint--youwillneedtoexplorewhatsettingsworkbestforyoursystem.
OpenMRSsettings
Note:Fromversion1.9andabove,"globalproperties"willbereferredtoas"settings"intheguide.
YoumayneedtoadjustsomesettingsinOpenMRS.Todothis,usetheMaintenance>AdvancedSettingspageundertheOpenMRSAdministrationsection,findthedesiredsettingandclearorchangeitsvalueasdescribedinthefollowingtips,thenclicktheSavebuttonatthebottomofthepage.
Clearoutthepatient.identifierRegexsettingtodisableregularexpressionidentifiersearches.
Clearoutthepatient.identifierPrefixandpatient.identifierSuffixsettingstodisable"like"identifiersearches.
Makesurethatthedashboard.regimen.displayDrugSetIdssettinghasconceptIDnumbersandnotnames.Inotherwords,use"1085,1159"insteadof"ANTIRETROVIRALDRUGS,TUBERCULOSISTREATMENTDRUGS".
SetthesearchWidget.batchSize,searchWidget.runInSerialModeandsearchWidget.searchDelayIntervalsettingstotuneyoursearchesforbetterperformanceandsuityourimplementation'senvironment.Youmaywishtoconsiderthespeedofyournetworkconnection,typingskillsandaveragenumberofsimultaneoususersonatypicalworkday.Youmightalsoconsiderreducingthevalueofthesettingsperson.searchMaxResultsandsearchWidget.batchSizetoreducetheloadonthesearchwidgetsandserverforbetterperformance.
ApacheTomcat
Tomcathasseveralsettingsthatmaybeadjustedtooptimizeitsuseofmemory:
ExperiencehasshownitisbesttoinstallTomcatfromthedownloadsectionathttp://tomcat.apache.org/ratherthananyothersource.IfusingUbuntuLinux,wedonotrecommendusingtheapt-getinstaller.
IncreasetheamountofmemoryallocatedforTomcat.DependingonhowyoustartorrunTomcat,useoneofthefollowingmethods:
IfrunningTomcatfromthecommandline,addthefollowingparameters:
-Xmx512m-Xms512m-XX:PermSize=256m-XX:MaxPermSize=256m-XX:NewSize=128m
Maintenance
99
![Page 100: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/100.jpg)
IfrunningTomcatasaWindowsservice,launchtheTomcatMonitorapplication.GotoConfigure>Java>JavaOptionsandaddthefollowingtothelistedsettings:
-Xmx512m-Xms512m-XX:PermSize=256m-XX:MaxPermSize=256m-XX:NewSize=128m
IfrunningTomcatasaLinuxservice,editthe/etc/init.d/tomcat(orequivalent)scriptandmodifythelineforCATALINA_OPTStoreadasfollows:
CATALINA_OPTS="-Djava.library.path=/opt/tomcat/lib/.libs-Xmx512m-Xms512m-XX:PermSize=256m-XX:MaxP
ermSize=256m-XX:NewSize=128m"
AdjustTomcattopreventpotentialmemoryleaks.Tomcathasadefaultsettingthatoftencausesmemoryleaks.Toturnitoff,opentheconfigurationfile.
<TOMCAT_HOME>/conf/web.xml
InJSPservletdefinitionaddthefollowingelement:
<init-param>
<param-name>enablePooling</param-name>
<param-value>false</param-value>
</init-param>
ExperimentwithbettergarbagecollectioninTomcattopreventPermGenoutofmemoryerrors.TouseanewerversionofTomcatgarbagecollection,youneedtoaddthefollowingtoCATALINA_OPTS,aswasshownaboveinthepreviousstep.
MySQL
OptimizingMySQLdatabasesettingswillhelpOpenMRStorunmoreefficiently,especiallyasyourinstallationgrowsinthesizeofdatayouarestoring.
Increasetheinnodb_buffer_pool_size.ItisthesizeinbytesofthememorybufferInnoDBusestocachedataandindexesofitstables.Thelargeryousetthisvalue,thelessdiskI/Oisneededtoaccessdataintables.Onadedicateddatabaseserver,youmaysetthistoupto80%ofthemachinephysicalmemorysize.However,donotsetittoolargebecausecompetitionforphysicalmemorymightcausepagingintheoperatingsystem.ModifythefollowinginMySQL'smy.inifile,oradditifitisnotpresent.
max_allowed_packet=64M
Increasethemax_allowed_packetsize.WhenMySQLattemptstoworkwithapacketofdatalargerthanspecified,itcausesapackettoolargeerrorandclosestheconnection,causingOpenMRStostopworking.IncreasingthisvalueallowsMySQLtohandlelargersetsofdata.ModifythefollowinginMySQL'smy.inifile,oradditifitisnotpresent.
innodb_buffer_pool_size=3G
YoumayalsoconsiderrunningaMySQLperformance-tuningscriptandmakingadjustmentstoyourMySQLconfigurationfilebasedonitssuggestions.Onesuchscriptisavailablehere:
https://wiki.openmrs.org/display/docs/Performance+Tuning
Replicationoptions
Maintenance
100
![Page 101: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/101.jpg)
ReplicationofyourOpenMRSinstallationacrossmultipleserversormultiplesitesisanadvancedtopicthatisoutsidethescopeofthisbook.However,youshouldbeawarethatseveraloptionsexistifyourequireaccesstoyourOpenMRSdatafromalternatelocations.
MySQLreplication
TheMySQLdatabaseoffersmethodsforreplicatingyourdatabaseacrossmultipleservers,meaningitispossibletohavemultiplesynchronizedcopiesofyourOpenMRSdata.PleaseconsulttheMySQLdocumentationfordetails.Ifyoupointanidentically-configuredOpenMRSserveratthisreplicateddatabase,youwillhaveamirroredinstanceofOpenMRS.Itisimportanttoensurethatifyoumakechangestotheprimarysystem,thosesamechangestakeplaceonallservers.
Syncmodule
AnotheroptionisavailableforOpenMRSinstallationswithmultiplesites.Thecommunity-developedSyncmoduleisavailablefromtheOpenMRSmodulerepository,andallowsdatatobesynchronizedacrossanetwork(orexternaldatastorage)usingtoolswithinOpenMRSitself.PleasesearchtheOpenMRSWikiformoreinformationabouttheSyncmodule.
UpgradingOpenMRS
TheOpenMRSimplementeranddevelopercommunitiesprovideapplicationandcustomizationsupportviamailinglists,IRC,andothermeans.See"GettingHelpfromtheOpenMRSCommunity"formoreinformation.
WhenthedevelopmentteamreleaseanewupgradeforOpenMRS,theywillprovideeitheranewversionoftheOpenMRSStandaloneinstallerortheOpenMRSEnterpriseinstallerfiletorunonyourserver.IfusingtheStandaloneversion,followtheupgradeinstructionsincludedwiththeapplication.IfusingtheEnterpriseversion,youshouldbeabletoundeploytheOpenMRSwebappinApacheTomcat,anddeploythenewversion.
Besuretotestanyupgradesonaserverotherthantheprimaryserveryouusefornormalclinicalsupport.Alwaysbesuretobackupyoursystembeforeupgrading.
UpdatingmodulesSupportedcommunity-developedOpenMRSmodulesareregularlyupdated,andthosenewversionsarepublishedintheOpenMRSAdd-onsindex.Youshouldcheckforupgradedmodulesregularly.Gotohttps://addons.openmrs.org/orviewthe"ManageModules"pagefromtheOpenMRSAdministrationpage.Fromthere,youcanupgradeamodulewithupdatesautomaticallybyclickingInstallUpdate,oryoumaymanuallyuploadthenewversionbyfollowingtheinstructionsonthepage.
Amani'smaintenanceplan
Maintenance
101
![Page 102: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/102.jpg)
AspartofhisresponsibilitiesasICTinfrastructuremanagerfortheclinic,Danielcreatedawrittenmaintenanceplan.Inthisdocument,hehasincludeddaily,weekly,andmonthlytasks.Theonlydailytaskisanautomatedone--DanielcreatedascriptonhisUbuntuservertostopOpenMRS,backupMySQLandotherOpenMRSfiles,andrestarttheapplication.Thisscriptrunsovernightwhiletheclinicisclosed.Weekly,Claudinemanuallychecksthediskspaceandrunsapt-getupgradetoupdatesystemcomponents.Everymonth,ClaudinecheckstheOpenMRSwebsiteforOpenMRSupgradesandupgradestothemodulestheclinicuses.
Maintenance
102
![Page 103: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/103.jpg)
TroubleshootingYourInstallation
Unfortunately,sometimesthingsdonotgoexactlyplanned.Thischaptercanhelpyoudealwiththemostcommonproblems.
WerecommendusingApacheTomcat6.0.29torunOpenMRS.AnyJ2EE-compliantJavaservletcontainershouldbeabletorunit,butmostpeoplewhouseOpenMRSarerunningitwithTomcat,whichmaymakeiteasiertogetsupportifyouencounterproblems.
IfyouarenotyetusingTomcat6.0.29,considerupgradingTomcatbeforeyoucontinue.WerecommendgettingTomcatfromthislink.
http://tomcat.apache.org/
WhentroubleshootingTomcat,yourfirststepshouldalwaysbetoreviewtheTomcatlogs.InWindows,thesearestoredatthefollowinglocation.
C:\ProgramFiles\ApacheSoftwareFoundation\Tomcat6.0\logs
Historically,MySQLhasbeenrecommendedasthedatabaseofchoicetousewithOpenMRS.ThenewerdatabasefromtheopensourceprojectMariaDBshouldalsobecompatiblewithOpenMRS.WorkisunderwayintheOpenMRScommunitytoprovidesupportforotherdatabasessuchasOracle,MicrosoftSQLServer,andothers,butthesedatabasesarenotyetsupported.
YoumaynotbeabletoresolveyourproblemwithOpenMRSusingthetroubleshootingmaterialinthischapter.ThatisOK--theOpenMRScommunityisavailabletohelp!CheckouttheGettingHelpfromtheOpenMRSCommunitychapterformoreinformationabouthowtocommunicatewithothers,askquestions,andgetanswers.
Somepossibleproblemsandsolutions
OpenMRSfailstoinstallwithmessage"Errorcreatingbeanwithname'messageSourceServiceTarget'"
Troubleshooting
103
![Page 104: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/104.jpg)
MySQLmustberunningbeforestartingandinstallingOpenMRS.Ifitisnot,youmayseethefollowingerrormessageinyourwebbrowserandlogfileswhenyouattempttoinstallOpenMRS:
org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'messageSourceServiceTarg
et'definedinclasspathresourceapplicationContext-service.xml
EnsureMySQLisinstalledandrunningbeforeattemptingtostartandinstallOpenMRS.
MySQLConfigureInstancehangsonstartingtheservice,orreportsError1045
OnWindows,thecomputermaystoprespondingwhilerunningtheMySQLConfigureInstancetool.Mostcommonly,thisoccursbeforethetoolmarksStartingtheserviceascomplete,becausethereisalreadyaMySQLservicerunning.
Tofixthis,youshoulddeletethepre-existingMySQLserviceinWindows,andtrytheinstallationagain.YoucanfindinstructionsonhowtododeleteaMySQLserviceatthislink.
Alternatively,youmayseeaMySQLError1045,ifyourcomputerhaspreviouslyhadaMySQLinstanceinstalled.Thismeansthattherootpasswordisincorrect,andismostcommonlycausedbyresidualdatafromthepreviousinstallation.
Tofixthis,youshoulddeletetheMySQLdatadirectory.OnWindows7,youmayneedtorebootanddeletethedirectory,ortouseanunlockingprograminordertodeletethisdirectory.
YoucanalsochangethepasswordthatOpenMRSusestoaccessyourMySQLdatabase,byeditingtheopenmrs-runtime.propertiesfile,asdescribedlaterinthischapter.
StartingTomcatserviceonWindowsfails
IfyoucannotstarttheTomcatserviceonWindows,trycheckingtheTomcatlogs.Youcanfindthelogsinthefollowingdirectory.
<TOMCATHOME>\logs
Errorslike"FailedcreatingjavaC:\ProgramFiles\Java\jre1.6.0\bin\client\jvm.dll"
Tofixthisproblem,searchformsvcr71.dllonyourharddrive,andcopythatfiletothislocation.
C:\Windows\System32
InstallingOpenMRSorrunningdatabaseupdatesfailswithmessage“Couldnotacquirechangeloglock”
Topreventconflictingupdates,liquibasebeginseachupdatebycreatingarowintheliquibasechangeloglocktable.Thisrowactsasalock.IfOpenMRSorApacheTomcatcrasheswhileanupdateisinprogress,theupdatemayfailtocomplete
andthisrowwillnotberemovedfromthetable.
YoumayseethefollowingerrormessageinyourwebbrowserorintheTomcatlogs,thenexttimeyoustartuporattempttoinstallorupdateOpenMRS:
"ErrorCouldnotacquirechangeloglock"
Deletingthisrowfromtheliquibasechangeloglocktablewillsolvetheproblem,andallowinstallationorupdatestoproceednormally.TodeleterowsfromtheliquibasechangeloglocktableusingacommandlineSQLclient,runeitherofthefollowingSQLcommands:
truncatetableliquibasechangeloglock;
Troubleshooting
104
![Page 105: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/105.jpg)
deletefromliquibasechangeloglock;
IfyouprefertouseaGUIclientforMySQL,youshouldnavigatetotheliquibasechangeloglocktableanddeleteallrowsfromthattable.Whenyouhaveclearedthetable,restartTomcatifnecessary,andrestartOpenMRS.
ProblemsconnectingtoTomcatonport8080
Otherinstalledprogramsmayalreadybeusingport8080.ThiswillpreventTomcatusingthisport.Somesoftwaremayalsouseport8005,whichshouldnotinterferewithrunningTomcat,butmaypreventitfromstartingupcorrectly.
Ifyouknowwhatprogramisusingtheseports,youmaychoosetostoporremovethatprogram.Alternatively,youcanconfigureTomcattorunonadifferentportbyeditingTomcat’sserver.xmlfiletochange8080toadifferentvalue(eg8090).
Ifyouneedfurtherhelp,seethe"GettingHelpfromtheOpenMRSCommunity"chapterformoreinformation.
PermissionproblemswhenrunningTomcatasaserviceonUbuntu
IfyouaretryingtorunTomcatasaserveronUbuntu,youmayrunintopermissionissues.Thefollowingerroristypicaloftheseproblems:
java.security.AccessControlException:accessdenied(java.io.FilePermission/usr/share/tomcat6/webapps/openmrs/
WEB-INF/dwr-modules.xmldelete)
TheeasiestwaytosolvethisissueistodisabletheJavasecuritymanagerorsimilarstartupscript,whichyoucanfindatthislocation.
/etc/init.d/tomcat6
EditthefileandsetTOMCAT6_SECURITYtono.
#UsetheJavasecuritymanager?(yes/no)
TOMCAT6_SECURITY=no
TomcatstopsrespondingafterupdatingorreloadingOpenMRSintheWebApplicationManager
TomcatandtheJVMallocatememorytoawebappeachtimeyouusetheUpdateorReloadfunctionsintheWebApplicationManager.Whentheappisdestroyedorrecreated,someofthismemorymaynotbereleased.Ifyouupdateorreloadthewebapptoomanytimes,Tomcatmayrunoutofallocatedmemory,andwillstopresponding.YouwillalsoseethefollowingerrorintheTomcatlogs:
java.lang.OutOfMemoryError:PermGenspace
Itisnotpossibletocompletelyavoidthisproblem.HoweveryoucanmitigateitbyallowingTomcattousemorememory,orbyrestartingTomcatifyouhavetorepeatedlyupdateorreloadawebapp.
DeployingOpenMRSusingtheTomcatManagerwebapplicationfails
Forvariousreasons,tryingtodeployOpenMRSusingtheTomcatManagerwebapplicationmayfail.Ifthisoccurs,youshouldundeployOpenMRSusingtheTomcatManager,thenstopTomcat.
YoucandothisonthecommandlineunderLinuxorOSX.First,findtheprocessID(PID)byrunningthefollowingcommand:
Troubleshooting
105
![Page 106: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/106.jpg)
psax|greptomcat
Thismayreturnseverallines,eachstartingwithanumber.Lookforalonglinethatcontainssomethinglike/usr/local/tomcator/opt/tomcat.ThePIDisthefirstnumberonthatline.StopTomcatwiththefollowingcommand:
kill-9PID
Finally,youcanrestartTomcatasfollows:
servicetomcat6start
LogbackintotheTomcatManagerwebapplicationanddeployOpenMRSnormally.
OpenMRS(openmrs.war)deployssuccessfullybutfailstostart
IfthereareissueswiththeOpenMRSsettingsforapplication_data_directory,openmrs.warmaysuccessfullydeploy,butthenfailtostart.ThefollowingmessagesareseeninTomcat'slogs:
SEVERE:ErrorlistenerStart
SEVERE:Context[/openmrs]startupfailedduetopreviouserrors
Ensurethattheruntimepropertiesfileexists,andthattheapplication_data_directoryisspecifiedinthisfile.Thenensurethatthedirectoryexists,andthatTomcathasreadandwritepermissionstothedirectory.
IfthedirectoryexistsasspecifiedintheruntimepropertiesfileandTomcathastheappropriatepermissions,youmayhavesecurityviolationproblemsinyourTomcatconfiguration.Ifyouneedfurtheradvice,considerseekinghelpfromthecommunity,asdescribedinthechapter"GettingHelpfromtheOpenMRSCommunity".
UnabletologintoTomcatManagerduetolostpassword
TheTomcatadminpasswordisrequiredtologintotheTomcatManagerwebapplication,andtodeployandundeployapplications,includingOpenMRS.
Ifyouhaveforgotten,lost,ormisplacedthispassword,youcanretrieveitfromthefiletomcat-users.xml.OnWindows,thisisprobablylocatedatthislocation.
C:\ProgramFiles\ApacheSoftwareFoundation\Tomcat6.0\conf\
Thedatabasepasswordorotherpropertiesaresetincorrectly
IfyouhaveinstalledtheOpenMRSStandaloneapplication,youcanmodifysettingsbyeditingtheopenmrs-standalone-runtime.propertiesfileinthedirectorywhereyouextractedtheZIPpackage.
TomodifysettingsfortheOpenMRSEnterpriseversion,youshouldeditthefileopenmrs-runtime.properties.Youshouldfindthisfileinoneofthefollowinglocations:
OnWindowssystems:
C:\DocumentsandSettings\YOURUSERNAME\ApplicationData\OpenMRS
C:\Windows\system32\config\systemprofile\ApplicationData\OpenMRS
OnMacOSXorLinuxsystems:
~/YOURUSERNAME/.OpenMRS
Troubleshooting
106
![Page 107: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/107.jpg)
/usr/share/tomcatX/.OpenMRS
TheOpenMRSadministratoraccountpasswordhasbeenforgotten
Ingeneral,whenauserislockedout,thepasswordshouldberesetbytheadministratorusingthe"EditUser"pagefromtheOpenMRSAdministrationpage.Inraresituationsinwhichtheadministrator'saccounthasbeenforgotten,theonlywaytoresetthepasswordistodirectlymodifytheOpenMRSdatabase.Thisshouldonlybeattemptedbyadvancedusers,andyoushouldalwaysbackupyourdatabasebeforemakingchanges.
YouwillneedtomodifytheuserstableintheOpenMRSdatabaseschema.Findtherowfortheuserinquestionandchangethepasswordandsaltvaluestothefollowing:
password:4a1750c8607d0fa237de36c6305715c223415189
salt:c788c6ad82a157b712392ca695dfcf2eed193d7f
Somemodulepagesthrowjava.lang.ClassNotFoundException
TherearecurrentlysomeissueswithcompatibilitybetweenOpenMRSandversionsofApacheTomcatlaterthan6.0.29.OpenMRSmodulesthatrelyoncertaincustomexpressionlanguagefunctionswillthrowajava.lang.ClassNotFoundExceptionexception.
IfyouencounterthisissueusingaversionofTomcatgreaterthanv6.0.29,youmayneedtodisableanymodulesthatrelyoncustomexpressionlanguagefunctions,orinstallTomcat6.0.29forusewithOpenMRS.
StartingOpenMRSfailswithmessage“Modulefiledoesnothavethecorrect.omodfileextension”
OpenMRSwillnotstartiftherearenon-modulesinthemodulesdirectory.Youmayfindamessageinthelogssimilartothese:
org.openmrs.module.ModuleException:Modulefiledoesnothavethecorrect.omodfileextensionModule:derby.lo
g
org.openmrs.module.ModuleException:Modulefiledoesnothavethecorrect.omodfileextensionModule:velocity
.log
Tosolvethisproblem,deleteormoveanyfilesinthemodulesdirectorythatarenotmoduleswithan.omodextension.
Inparticular,theBIRTRuntimecreatesvariouslogfilesinthemodulesdirectorywhentheBIRTmoduleisstopped.IfyouareusingtheBIRTReportmodule,theremaybenon-modulefilesintheOpenMRSmodulesdirectory--typically,derby.logorvelocity.log.Thesefilescansafelybemovedtoanotherlocationordeleted.
Topreventthederby.logfrombeingcreatedinfuture,deletethedirectoryorg.apache.derby.core_10.1.2.1whichislocatedunderthefollowingdirectory.
birt-runtime-2_2_0/ReportEngine/plugins/
MySQLpacketlengtherrors,orMySQLError2006
Theseerrorsoccurwhentheclientorservertriestohandledatalargerthanthemaximumpacketlength.Thedefaultmaximumpacketlengthis1MB.Someitems(suchasformdata)caneasilyexceedthismaximum,causingerrorswhenimportingdataintoorexportingdatafromtheOpenMRSdatabase.
ToincreasethemaximumpacketlengthallowedbyyourMySQLserver,youshouldstoptheserver,edittheconfigurationfile,thenrestarttheserver.Theconfigurationfileistypicallylocatedatoneoftheselocations.
Troubleshooting
107
![Page 108: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/108.jpg)
Windows:C:\ProgramFiles\MySQL\MySQLServerx.x\my.ini
LinuxorMacOSX:/etc/my.cnf
Thisfileshouldalreadycontainasectionwiththeheader[archive:mysqld].Youcanaddthefollowinglinebelowthatheader:
max_allowed_packet=64M
YoucanalsoincreasethemaximumpacketlengthusingtheMySQLAdministratorapplication,byopeningtheHealthsectionandchangingthemax_allowed_packetsettingontheSystemVariablestab.Thissettingcanbeincreaseduptoamaximumof1024Masnecessary.
DependingonyourMySQLclient,youmayalsoneedtoadjustthemaximumpacketlengthoftheclient.IfyouareusingtheMySQLcommandlineclient,youcanstartitwithanincreasedmax_allowed_packetbyaddingthefollowingaftertheMySQLcommand:
--max_allowed_packet=64M
ProblemsconnectingtoMySQLonasystemwithmultipleMySQLinstallations
IfMySQLisalreadyinstalledandrunningonyoursystem,OpenMRSStandalone'sinitialsetupmaybeunabletocreatetheOpenMRSuseranddatabase.Youmayalsoencounterthisproblemafterinstallation,ifyouhaveinstalleda"traditional"MySQLserverandtrytorunOpenMRSStandalone.
ThisproblemhappensbecauseMySQLclientsonUNIX-basedsystemsalwaysuseUNIXsocketstoconnecttoMySQLwhenlocalhostisspecifiedintheconnectionURL.Thisisaknownissue/limitation/buginMySQLandisdocumentedinmoredetailbytheMySQLproject.
http://bugs.mysql.com/bug.php?id=31577
ItispossibletorunOpenMRSinaseparatedatabaseinstancethantheonealreadyexistingonyoursystem(forexample,torunOpenMRSStandaloneonasystemwhereMySQLisalreadyinstalled).Todoso,youmustfirstensurethatthenewdatabaseinstanceisrunningonadifferentport.
Then,ensurethatyouareconnectingtoMySQLviaTCP/IPinsteadofusingthesameUNIXsocketastheexistinginstance.Theeasiestwaytodothisistouse127.0.0.1insteadoflocalhostintheconnectionstring.Analternativeistoadd&server.port=XXXXtothevalueofconnection.urlintheopenmrs-runtime.propertiesfile,whereXXXXistheportusedbytheOpenMRSMySQLinstance.
Forexample,iftheMySQLinstanceusedbyOpenMRSisrunningonport4242,theopenmrs-runtime.propertiesfileshouldincludeoneofthefollowinglines:
connection.url=jdbc:mysql://127.0.0.1:4242/openmrs?autoReconnect=true&sessionVariables=storage_engine=InnoDB&us
eUnicode=true&characterEncoding=UTF-8
connection.url=jdbc:mysql://localhost:4242/openmrs?autoReconnect=true&sessionVariables=storage_engine=InnoDB&us
eUnicode=true&characterEncoding=UTF-8&server.port=4242
TomcaterrorlogcontainsIOExceptionwhileloadingpersistedsessions
ApacheTomcattriestorestoretheexactmemorystateaftereachrestart.OpenMRSdoesnotdependonthisfeature,soyoucanignoreanywarningsprintedtotheTomcatlogsthatlooksimilartothefollowing:
SEVERE:IOExceptionwhileloadingpersistedsessions:java.io.WriteAbortedException:writingaborted;java.io.N
otSerializableException:
Troubleshooting
108
![Page 109: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/109.jpg)
Ifyoufindthesemessagesannoying,youcanturnoffsessionpersistence.Editthe<TOMCAT_HOME>/conf/server.xmlfileanduncommentthelinethatincludes:
<Managerpathname=""/>
JavaHeapSizeerrors
OpenMRSusesalotofmemoryforcaching.Certaintasks,suchasexportingdata,maycauseaJavaHeapSizeerror.YoucanmitigatethisbyincreasingthedefaultmemoryallocationinTomcat.
IfyouarestartingTomcatonthecommandline,youshouldpassthefollowingparameterstoincreasethedefaultmemoryallocation:
-Xmx512m-Xms512m-XX:PermSize=256m-XX:MaxPermSize=256m-XX:NewSize=128m
IfyouarerunningTomcatasaWindowsService,youcanincreasethememoryallocationbyaddingthissamelinetothelistofstartparameters.Makesurethatyouaddthistotheendoftheexistingparametersexactly.AnextraspaceattheendofthelinecanpreventTomcatfromstartingproperly.YoucanfindthelistofstartparametersintheTomcatMonitorapplication,bygoingtoConfigureTomcat>Java>JavaOptions,orviatheControlPanel>Services>ApacheTomcat>Properties>StartParameters.
Ifyouarerunninga64-bitversionofTomcatasaWindowsService,youmustedittheWindowsRegistrytoaddthatlinetotheHKEY_LOCAL_MACHINE\SOFTWARE\ApacheSoftwareFoundation\Procrun2.0\Tomcat5\Parameters\JavaJVMsettingsintheRegistry.
IfyouarerunningTomcatonUbuntu,edititsstartupscriptsuchas/etc/init.d/tomcat6andmakethefollowingchanges:
if[-z"$JAVA_OPTS"];then
JAVA_OPTS="-Djava.awt.headless=true-Xmx128M"
fi
if[-z"$JAVA_OPTS"];then
JAVA_OPTS="-Djava.awt.headless=true-Xmx1024M-Xms1024M-XX:PermSize=256m-XX:MaxPermSize=256m-XX:NewS
ize=128m"
fi
IfyouarerunningTomcatasaLinuxservice,openthe/etc/init.d/tomcatscriptandappendchangetheCATALINA_OPTSvariable:
CATALINA_OPTS="-Djava.library.path=/opt/tomcat/lib/.libs-Xmx512m-Xms512m-XX:PermSize=256m-XX:MaxPermSize=25
6m-XX:NewSize=128m"
Memoryleaks
Aftertroubleshooting,youmaydeterminethatTomcatorOpenMRSishavingproblemswithmemoryleaks.
TomitigatememoryleakproblemsinTomcat,considerenablingpoolingbyaddingthefollowingelementtotheJSPservletdefinitioninthefile<TOMCAT_HOME>/conf/web.xml:
<init-param><param-name>enablePooling</param-name><param-value>false</param-value></init-param>
Troubleshooting
109
![Page 110: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/110.jpg)
IfyoubelieveyouhavediscoveredamemoryleakinOpenMRSandarecomfortablelookingattheOpenMRSapplicationcodetoidentifywheretheleakislocated,youmayliketotroubleshootfurthertofindoutthecause.OpenMRSdevelopersuseYourKitProfilertodiscoveranddebugmemoryandCPUconsumptionissues.
YourKitiskindlysupportingmembersoftheOpenMRScommunitywithitsfull-featuredJavaProfilerproduct.Ifyouhavedevelopmentskillsyoumaywanttousethistooltounderstandwhytheapplicationisleakingmemoryorconsumingtoomanyprocessorresources.AsanactiveparticipantintheOpenMRScommunity,youcanrequestalicensebyopeningasupportdeskticket:
https://help.openmrs.org/
BugsinOpenMRSIfyoubelieveyouhavediscoveredaproblemthatmaybeabuginOpenMRS,weencourageyoutoreportthatbug.TheOpenMRSdevelopmentteamtakesbugreportsseriouslyandcontinuallyfixesasmanybugreportsaspossibleforfuturereleases.PleaseseeourbugreportpageontheOpenMRSwikiforfurtherdetailsandinstructions:
https://issues.openmrs.org/
Troubleshooting
110
![Page 111: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/111.jpg)
GettingHelpfromtheOpenMRSCommunityA2011meetingoftheOpenMRScommunityinKigali,Rwanda.
OpenMRSissupportedbyavibrantcommunity.Whetheryouneedhelpinstalling,using,updatingorextendingOpenMRS,youcanfindhelpinavarietyofplaces.
OpenMRSID
OpenMRSIDisanaccountusedtoparticipateinmostofthecommunityresourcestosupportimplementersanddevelopers,andisrequiredtousemostofthetoolsonthispage.LearnmoreaboutOpenMRSIDandsignuponline
https://id.openmrs.org/
OpenMRSWikiDocumentationforOpenMRSisavailableinthewiki.
http://wiki.openmrs.org
Youcanfindinformationforusersanddevelopers,aswellasdetailsofsharedmodulesandotherresources.
Youcansearchforinformationinthewikiusingthesearchbaratthetopofthepage.Alternatively,usethelinksontheleftofthepagetonavigatetotherelevantsection.
Ifyoufindanerrorintheinformationonthewiki,pleasecorrectitifyoucan!IfyoudonotalreadyhaveanOpenMRSID,youcanregisterforfreeusingtheSignUplinkatthetopofthepage.Afterloggingin,youwillseeanEditbuttonatthetopofmostpages.Clickthisbutton,makeyourchanges,andclickSave.Ifyouarenotcertainaboutmakinganedit,justleaveacommentonthepagewithyourquestionsorconcerns.Weappreciateyourhelp!
GettingHelpfromtheOpenMRSCommunity
111
![Page 112: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/112.jpg)
OpenMRSTalkforums
MostofthediscussionwithinthecommunityoccurswithinOpenMRSTalkavailableat:
https://talk.openmrs.org/
Theimplementersmailinglistisacommunitymailinglistforpeopleusing,consideringusing,orotherwiseinterestedinOpenMRS.Youcanaskquestions,seekadvice,andlearnfromothersonthemailinglist.Searchthearchivesforsimilarproblemsbeforeyoupost-someoneelsemayhavealreadyansweredyourquestions!
AskOpenMRS
AskOpenMRSisasafeplacetoaskquestionsaboutinstallingandusingOpenMRSandtogetanswersfromothersinthecommunity.
https://ask.openmrs.org/
Ifyouaskaquestionandgetsomeanswers,pleasebecourteousbyselectingthebestanswer(thishelpspeoplethatcomelaterwiththesamequestiontomoreeasilyfindthebestanswer).Asyougainexperience,helpcontributetothecommunitybyhelpingtheanswersofothersinthecommunity.
IRC
InternetRelayChat(IRC)isaprotocolforreal-timeInternetchat.TheOpenMRScommunityusethe#OpenMRSchatroomonirc.freenode.net.
FormoreinformationonhowtoconnecttoIRCvisit:
http://om.rs/irc
AllIRCdiscussionsareloggedandavailableonline.
Telegram
JoinrealtimediscussionsonTelegram.Youcanchatthroughawebbrowserorwithamobileapplication.JointheOpenMRSTelegramchatat:
http://om.rs/tg
Havingtrouble?IfyouhaveproblemswithyourOpenMRSID,orwithanyofthetoolslistedabove,pleaseopenasupportdeskticketandsomeonewillrespondtoyourissue.
http://om.rs/helpdesk
Ifyouarenotabletologinwhencreatingtheticket,pleaseremembertoincludeyournameandcontactinformation.
GettingHelpfromtheOpenMRSCommunity
112
![Page 113: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/113.jpg)
Epilogue
113
![Page 114: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/114.jpg)
LeavingAmaniClinic
WenowendourvisittoAmaniClinic.Wesawhowtheclinicmanagementstartedwiththeideaofusingamedicalinformationsystemtosupporttheworkflowoftheirclinic.TheyimplementedOpenMRStomanagetheirdata,evaluateandreportontheirproject'seffectiveness,andultimatelyimprovecarefortheirpatients.
Claudine,Daniel,James,andKissaallhadchallengesinplanningandgettingusedtonewwaysofworking,butwecanbelievethattheirincreasedabilitytobettermanagehealthcaredeliverywillresultinhealthier,happierpeopleinthevillageofKisiizi.
Wehopeyouhavefoundtheirstory,alongwiththeinformationpresentedinthisguide,usefulinthinkingaboutyourownsituation.
Asareminder,thisbookservesonlyasanintroductiontotheOpenMRSmedicalrecordsystemandourlargeropensourcecommunity.Youarenowamemberofanewextendedfamilyofpeopleworkingtogethertomakeandimprovetechnologyforhealthcareoneverycontinent.Wehopeyouwillbeasexcitedaswearetomakeadifferenceinourcommunities,andwehopetoseeyouinourmailinglistsandwikis,andhearyouinourmeetingsverysoon.
Welcomeandgoodluck!
LeavingAmaniClinic
114
![Page 115: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/115.jpg)
LeavingAmaniClinic
115
![Page 116: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/116.jpg)
AboutthisBook
Thisisyourbook!
OpenMRSisopensource.Thatmeansanyoneintheworldcanhelpimprovethecode.Likewise,thiselectronicbookisopensourceaswell,meaninganyoneiswelcometohelpimprovethisImplementersGuidetoo(seebelowonhowtocontribute)!ThesourceforthisbookishostedonGitHub.
Seeanerror?Wanttosuggestupdatesorhelpimprovetheguide?Learnhowtocontribute.
Historyofthisbook
ThisfirsteditionofthisbookwascreatedinOctober2011duringthefirstGoogleSummerofCodeDocumentationSprint.WeareindebtedtotheGoogleOpenSourceProgramsOffice,theFLOSSManualsfoundation,andAspirationfororganizingthisweek-longeventwherefouropensourceprojects(OpenMRS,SahanaEden,OpenStreetMap,andKDE)joinedforcestoshareknowledgeandcreatemanualsfortheirusercommunities.
TheauthorsforthefirstversionwereRafalKorytkowski(Poland),GlenMcCallum(Canada),NóirínPlunkett(Ireland),DariusJazayeri(UnitedStates),andMichaelDowney(UnitedStates).
Wereceivedproofreading,structuraladvice,andeditingassistancefromPaulBiondich(UnitedStates),HamishFraser(UnitedStates),AllenGunn(UnitedStates),DanielKayiwa(Uganda),BurkeMamlin(UnitedStates),SaptarshiPurkayastha(India),JanetRiley(UnitedStates),andBenWolfe(Kenya).
AboutthisBook
116
![Page 117: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/117.jpg)
PhotographsinthisbookarecourtesyofJamesArbaugh,MichaelJ.Downey,FrankFries,MathewSsemakadde,andStephanieTaylor.TheoriginalbookcoverwasdesignedbyLalehTorabi.
WewouldalsoliketothankthecountlesspeoplewhohavecontributedtoOpenMRSdocumentationoverthepastsevenyears,andthewritingteamof_CivicCRM:AComprehensiveGuide,_allofwhichservedasinspirationandthebasisformuchofthisbook.TheOpenMRScommunitythankseveryonewhoparticipatedinmakingthisbookareality.Thankyou!
AboutthisBook
117
![Page 118: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/118.jpg)
Appendices
118
![Page 119: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/119.jpg)
AppendixA:Glossaryadministrativestaff:Individualswhomanagepeopleordatainaclinicalsetting.
allergylist:Aseriesofallergiesthatapatientmighthaveorfromwhichapatientcouldbesuffering.
bug:ArepeatableprobleminOpenMRS.
bugreport:Areportcreateddescribingarepeatableproblemtosoftwaredevelopers.
bundledmodule:AnOpenMRSmodulethatisincludedwithadownloadedOpenMRSinstallation.
checkdigit:Anextradigitthatisaddedtotheendofanidentifieranddependsontherestofidentifier.
clinician:Adoctor,nurse,orotherclinicalofficerwhoprovideshealthcaretopatients.
cohort:Agroupofpatientsthatcanbedefinedbyoneormorecommontraits.
concept:Theideathatencompassesanyquestionwhichcanbeaskedaboutapatient;anobservablepointofdata.
conceptclass:AcategoryofOpenMRSConceptswithassociatedtraits.
conceptdatatype:AdescriptorofthetypeofdatawhichagivenOpenMRSConceptdescribes(e.g.,numeric,text,etc.).
conceptdictionary:Alistofallthemedicalandprogram-relatedtermsusedinOpenMRSasquestionsandanswers.
customization:Theideaofadaptingasystemtosuitone'sspecific,particularneeds.
data:Apieceofknowledgethatcanbereducedtoasinglevalue.
demographics:Informationaboutaperson,typicallyincludingdateofbirth,location,name,etc.
drug:AspecificformulationofamedicationrepresentedinOpenMRS.
electronicmedicalrecord:Acomputersystemthatallowsforrecording,storage,andretrievalofinformationrelatedtothedeliveryofhealthcaretopatients.
encounter:Aclinicaltransactionbetweenapatientandoneormorehealthcareprovidersforthepurposeofprovidingpatientservicesorassessingthehealthstatusofthepatient.Anencounterhappensatonepointintime.http://www.astm.org/Standards/E1384.htm
error:Amessageinacomputersystemthatdescribeaproblemcurrentlyorrecentlyoccurring.
flag:Avisualindicatorofcertaincriteriaonapatientchart.
form:Anelectronicformthatmaybeusedforenteringorviewingdata.
Groovy:Acomputerscriptinglanguagethatallowsautomationandquickperformanceoftasks.
implementationplan:Awrittendocumentwhichdetailsspecificgoalsandtasksininstalling,customizing,andusingOpenMRS.
implementationteam:AdefinedgroupofpeopleworkingtogethertodeployOpenMRSinaspecificproject.
implementer:SomeonewhohasorisintheprocessofdeployingOpenMRSinaspecificlocationorcontextofuse.
informatics:Thestudyofinformationtechnologyappliedtoaspecificdomain.
internationalization:Theadaptationaninformationsystemorpiecesofinformationtobeusedinmultiplelocations.
IRC:ShortforInternetRelayChat,anonlinetooltocommunicatewithothersin"realtime."OpenMRSusesIRCtoallowdevelopersandimplementerstocollaborateandmeet.http://go.openmrs.org/irc
AppendixA:Glossary
119
![Page 120: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/120.jpg)
localareanetwork:Amethodofconnectingmultiplecomputersforcommunicationoverdistances.
location:Aphysicalplacewhereapatientmayreceivehealthcareservices.
longitudinal:Havingagoalofobservingortrendingovertime.
mailinglist:Acollectionofnamesandaddressesusedbyacompanytosendmaterialtomultiplerecipients.Ontheinternet,mailinglistsincludeeachperson'se-mailaddressratherthanapostaladdress.http://www.entrepreneur.com/encyclopedia/term/82424.html
medicalinformatics:Adisciplineofstudyingtheuseofinformationtechnologyinthefieldofmedicalscience.
metadata:Apieceofinformationthatdescribesotherinformation.
module:AsoftwarepackagethatextendsOpenMRSfunctionalityinspecificways;oftendevelopedbyothersintheOpenMRScommunity.
modulerepository:Anonlineresourcetofindandmaintaincommunity-developedOpenMRSadd-onmodules.https://addons.openmrs.org/
observation:Onepieceofinformationthatisrecordedaboutapersonatamomentintime.
opensource:Amethodofdevelopingsoftwarewherethesourcecodeisfreelyavailableforotherstoexamine,use,andbuildupon.Alsoatypeofsoftwaredevelopmentcommunitybasedaroundsharingofworkandcollaboration.
order:Anactionthataproviderrequestsbetakenregardingapatient.
patient:Apersonreceivinghealthcareservices.
patientdashboard:AvisualrepresentationofapatientwithinOpenMRS,includinghisorherdemographicsandotherimportantinformation.
patientidentifier:Anyuniquenumberthatcanidentifyapatient.ExamplesareaMedicalRecordNumber,aNationalID,aSocialSecurityNumber,adriver'slicensenumber,etc.
person:Everyindividualwhoisreferredtoinanypatient'srecordinOpenMRSmustbestoredinthesystem.
personattribute:storeadditionalpiecesofinformationaboutthepeopleinyoursysteminadditiontothosethatarenativelysupportedbyOpenMRS.
pilotproject:Activelyplannedasatestortrial.
platform:Acomputersystemthatissimplebydesign,intendedtobecustomizedandadaptedforuseinawidevarietyofcontexts.
privilege:AdefinitionofwhatactionsauserisallowedtotakewithinOpenMRS.
problemlist:Alistofapatient'sproblemsthatservesasanindextohisorherrecord.Eachproblem,thedatewhenitwasfirstnoted,thetreatment,andthedesiredoutcomeareaddedtothelistaseachbecomesknown.Thusthelistprovidesanongoingguideforreviewingthehealthstatusandplanningthecareofthepatient.
http://medical-dictionary.thefreedictionary.com/master+problem+list
profile:AnOpenMRSuser'sbasicinformation,includingname,userID,password,andlanguagepreferrence.
program:Aplannedseriesofadministrativeorresearchevents.
programenrollment:RepresentsthefactthatapatientisenrolledinoneoftheseProgramsoveratimeperiodataLocation.
provider:Ahealthcareprofessional,orgroupofhealthcareprofessionalswhoprovideaservicetopatients.
purge:TopermanentlydeletedatafromtheOpenMRSdatabase.
AppendixA:Glossary
120
![Page 121: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/121.jpg)
relationship:AdescriptionofhowtwopersonsinOpenMRSareconnected,e.g.,motherandchild.
retire:TomakemetadataunusableinthefuturewhileretainingitinOpenMRSforpastreference.
role:RepresentsagroupofprivilegesinOpenMRS.
sampledata:Fictional,anonymizedinformationrepresentingpatientcarewithinOpenMRS.SomeversionsofthesoftwareincludethisartificialdatatomakeiteasiertoplananOpenMRSimplementation.
SMARTgoals:Objectivesforaprojectthatarespecific,measurable,attainable,realistic,andtimely.
softwaredeveloper:ApersonwhoisabletoprogramcustomizationsoradditionalfunctionalityinOpenMRS.
state:Aconditionorsituation;status.
superuser:AnOpenMRSuserwithpermissiontoperformallmanagementtasksintheapplication.
systemadministrator:Apersonwhoisresponsibleforday-to-daymaintenanceofacomputersystemornetwork.
uninterruptiblepowersupply:Abattery-basedsystemthatprovidesinstantshort-termpowertoacomputerorotherdevicesduringapoweroutage.
unretire:Tore-designatemetadataasusable.
unvoid:MakedatavisibleinOpenMRSthathadpreviouslybeenvoided.
user:ApersonwhousesOpenMRS,ormorespecificallythedatainthesystemrepresentingthatperson.
visit:Acollectionofoneormoreencountersthatdefineaninteractionbetweenthepatientandthehealthcaresystem.Somecommonexamplesofvisitsincludeoutpatientclinicvisits,inpatientvisits(hospitalization),andemergencyroomvisits.
void:Tomarkdataasdeletedfromauserperspective,butretainitintheOpenMRSdatabase.
wiki:Awebsitecontainingdocumentationandotherresourcesforaprojectororganization.
workflow:Aseriesoftaskstoaccomplishagoal.
AppendixA:Glossary
121
![Page 122: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/122.jpg)
AppendixB:ExampleHTMLFormSource
<htmlform>
<!--Autogeneratedexampleform(templatefrom01-Nov-2010-->
<macros>
paperFormId=(Fillthisin)
headerColor=#009d8e
fontOnHeaderColor=white
</macros>
<style>
.section{
border:1pxsolid$headerColor;
padding:2px;
text-align:left;
margin-bottom:1em;
}
.sectionHeader{
background-color:$headerColor;
color:$fontOnHeaderColor;
display:block;
padding:2px;
font-weight:bold;
}
table.baseline-alignedtd{
vertical-align:baseline;
}
</style>
<spanstyle="float:right">PaperFormID:$paperFormId</span>
<h2>AmaniAntenatalHistory(v1.0)</h2>
<sectionheaderLabel="1.EncounterDetails">
<tableclass="baseline-aligned">
<tr>
<td>Date:</td>
<td>
<encounterDatedefault="today"/>
</td>
</tr>
<tr>
<td>Location:</td>
<td>
<encounterLocation/>
</td>
</tr>
<tr>
<td>Provider:</td>
<td>
<encounterProvider/>
</td>
</tr>
<tr>
<td>PatientName:</td>
<td>
<lookupclass="value"expression="patient.personName"/>
</td>
</tr>
</table>
</section>
<sectionheaderLabel="2.AntenatalHistory">
<tableborder="1"cellspacing="0"class="baseline-aligned">
<tr>
<td>
AppendixB:ExampleHTMLFormSource
122
![Page 123: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/123.jpg)
<tableborder="1"cellspacing="0">
<tr>
<td>
<table>
<tr>
<td>
<b>ReasonForVisit:</b>
</td>
<td>
<obsconceptId="1433"style="radio"answerConceptIds="1435,1434,5622"answerLabels="Plann
ingPregnancy<br\/>,CurrentlyPregnant<br\/>,Other"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>
<b>AntenatalVisits#:</b>
</td>
<td>
<obsconceptId="1425"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>
<b>IfPregnant,was
<br/>pregnancyintended?</b>
</td>
<td>
<obsconceptId="1426"style="radio"answerConceptIds="1065,1066,1067"answerLabels="Yes&l
t;br\/>,No<br\/>,Unknown"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>
<b>LastMenstrualPeriod:</b>
</td>
<td>
<obsconceptId="1427"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>
AppendixB:ExampleHTMLFormSource
123
![Page 124: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/124.jpg)
<b>DateofDelivery:</b>
</td>
<td>
<obsconceptId="1596"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>
<b>BloodType:</b>
</td>
<td>
<obsconceptId="1426"style="radio"answerConceptIds="152674,152675,152676,152677,152
678,152679,152680,152681"answerLabels="A+,A-<br\/>,B+,B-<br\/>,0+,0-<br\/>,AB+,
AB-<br\/>"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td>
<tableborder="1"cellspacing="0">
<tr>
<td>
<table>
<tr>
<td>
<b>High-RiskSex:</b>
</td>
<td>
<obsconceptId="1355"style="yes_no"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>
<b>HIVTest:</b>
</td>
<td>
<obsconceptId="1356"style="yes_no"dateLabel="<br\/>Date:"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>
<b>Partner'sHIVStatus:</b>
</td>
AppendixB:ExampleHTMLFormSource
124
![Page 125: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/125.jpg)
<td>
<obsconceptId="1436"style="radio"answerConceptIds="664,703,1067"answerLabels="Negativ
e<br\/>,Positive<br\/>,Unknown"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>
<b>STITreatment:</b>
</td>
<td>
<obsconceptId="1428"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>
<b>RPR/VDRL:</b>
</td>
<td>
<obsconceptId="299"style="radio"answerConceptIds="1228,1229"answerLabels="Reactive&l
t;br\/>,NR"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>
<b>LastTetnus:</b>
</td>
<td>
<obsconceptId="1428"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td>
<b>RecentContraceptiveUse:</b>
<br/>
<obsconceptId="1635"answerConceptId="1107"answerLabel="None"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="780"answerLabel="OralContraception"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="190"answerLabel="Condoms"style="checkbox"/>
<br/>
AppendixB:ExampleHTMLFormSource
125
![Page 126: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/126.jpg)
<obsconceptId="1635"answerConceptId="5277"answerLabel="NaturalPlanning/Rhythm"style="che
ckbox"/>
<br/>
<obsconceptId="1635"answerConceptId="5278"answerLabel="Diaphragm"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="1378"answerLabel="Depo-Provera"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="1359"answerLabel="Norplant"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="1388"answerLabel="Surgery"style="checkbox"/>
<br/>
<obsconceptId="1635"answerConceptId="5622"answerLabel="Other"style="checkbox"/>
<br/>
</td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td>
<b>PreviousComplications:</b>
<br/>
<obsconceptId="1430"answerConceptId="113859"answerLabel="Hypertension"style="checkbox"/>
<br/>
<obsconceptId="1430"answerConceptId="1431"answerLabel="LowBirthWeightBaby"style="checkbo
x"/>
<br/>
<obsconceptId="1430"answerConceptId="119481"answerLabel="DiabetesMellitus"style="checkbox"
/>
<br/>
<obsconceptId="1430"answerConceptId="48"answerLabel="Miscarriage"style="checkbox"/>
<br/>
<obsconceptId="1430"answerConceptId="1171"answerLabel="CesareanSection"style="checkbox"/>
<br/>
<obsconceptId="1430"answerConceptId="228"answerLabel="AntepartumHemorrhage"style="checkbox"
/>
<br/>
<obsconceptId="1430"answerConceptId="230"answerLabel="PostpartumHemorrhage"style="checkbox"
/>
<br/>
<obsconceptId="1430"answerConceptId="130"answerLabel="PuerperalSepsis"style="checkbox"/>
<br/>
<obsconceptId="1430"answerConceptId="113602"answerLabel="ProlongedLabor"style="checkbox"/>
<br/>
<obsconceptId="1430"answerConceptId="127847"answerLabel="Recto-vaginalFistula"style="check
box"/>
<br/>
<obsconceptId="1430"answerConceptId="49"answerLabel="Vesico-vaginalFistula"style="checkbox"
/>
<br/>
<obsconceptId="1430"answerConceptId="5622"answerLabel="Other"style="checkbox"/>
<br/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</section>
<submit/>
</htmlform>
AppendixB:ExampleHTMLFormSource
126
![Page 127: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/127.jpg)
AppendixB:ExampleHTMLFormSource
127
![Page 128: Table of Contents - OpenMRSguide.openmrs.org/en/openmrs-guide.pdfskilled providers. Whether for lack of time, lack of money, or no access to software developers, most health care programs](https://reader034.fdocuments.net/reader034/viewer/2022042111/5e8c2d218e7eb8786b4bd57f/html5/thumbnails/128.jpg)
AppendixC:DocumentHistory
Version2.0(Current)
Released:June,2012,ConvertedtoGitBookformat:November,2016
DescribesOpenMRSVersion:1.9.x
Notes:Updatedtodescribe1.9changes.TheseincludethenewVisitsfeature,changestoconceptmappings,andchangestoproviders.
Version1.0
Released:October,2011
DescribesOpenMRSVersion:1.8.x
Notes:TheOpenMRSGuidewascreatedattheGoogleSummerOfCode/FLOSSManualDocumentationCamp.
AppendixC:DocumentHistory
128