OpenMRS-core 2.1.0-beta Release Notes
Release Date: Friday, April 7, 2017
This version of OpenMRS Core is a pre-release and is not ready for production use. Its purpose is to give users an idea of what to expect in the upcoming release and help discover any possible obscure new bugs.
What's New
Some interesting features in the 2.1 line will be:
Support for status (e.g. for recording preliminary lab results) and interpretation (e.g. for marking a test result as abnormal)
Enhancements to the data model for Cohorts, to add a start date and end date
Faster patient searches (using Lucene under the hood)
Loosening restrictions on merging patients who have orders
Simple approach for developers to add caches programmatically
We expect that 2.1.x will be the first non-LTS release, where we only release openmrs-core to maven for developers, and don't do a full OpenMRS Platform release. Read more about this means in the (future) release notes final release.
Download
Get it at https://sourceforge.net/projects/openmrs/files/prereleases/OpenMRS_Core_2.1.0_Beta/
Feedback Welcome!
As always, we look forward to getting your feedback about this release. Share your thoughts on http://talk.openmrs.org.
We would especially like review of these features:
Data Model Changes since 2.0.0
Add unique_id column to concept_reference_source
Dropping foreign key constraint member_patient
Dropping foreign key constraint parent_cohort
Dropping primary key for cohort_member
Adding column cohort_member.cohort_member_id
Updating cohort member ids
Adding primary key to cohort_member.cohort_member_id
Adding auto increment property to cohort_member.cohort_member_id
Adding column cohort_member.start_date
Updating cohort_start_date with value cohort.date_created
Adding column cohort_member.end_date
Adding column cohort_member.creator
Updating cohort_member.creator value
Adding foreign key constraint to cohort_member.creator
Adding column cohort_member.date_created
Updating cohort_member.date_created with value cohort.date_created
Adding column cohort_member.voided
Adding defaultValue for cohort_member.voided
Adding column cohort_member.voided_by
Adding column cohort_member.date_voided
Adding column cohort_member.void_reason
Adding column cohort_member.uuid
Generating UUIDs for all rows in cohort_member table via built in uuid function.
Adding unique constraint to cohort_member.uuid
Adding foreign key constraint to cohort_member.cohort_id
Adding foreign key constraint to cohort_member.patient_id
Dropping defaultValue for cohort_member.cohort_id
Dropping defaultValue for cohort_member.patient_id
Adding "date_changed" column to concept_class table
Adding "changed_by" column to concept_class table
Adding "date_changed" column to concept_reference_source table
Adding "changed_by" column to concept_reference_source table
Adding "date_changed" column to concept_name table
Adding "changed_by" column to concept_name table
Adding "date_changed" column to concept_name_tag table
Adding "changed_by" column to concept_name_tag table
Adding "date_changed" column to form_resource table
Adding "changed_by" column to form_resource table
Adding "date_changed" column to global_property table
Adding "changed_by" column to global_property table
Adding "date_changed" column to patient_identifier_type table
Adding "changed_by" column to patient_identifier_type table
Adding "date_changed" column to relationship_type table
Adding "changed_by" column to relationship_type table
Adding "status" column to obs table
Adding "interpretation" column to obs table
Modify column length of obs.value_complex to 1000 from 255
Ticket Statuses at the time of the Beta release
Issue Type | Key | Summary | Status |
New Feature | getConceptByName should immediately return concept if only one matching concept | Waiting on Information | |
New Feature | Enhance ObsService to provie getRevisionObs | Closed | |
New Feature | AbstractHandler#purgeComplexData(Obs) should return true when file is missing from disk | Closed | |
New Feature | Ability to limit lucene patient search by identifier to a particular identifier type | Closed | |
New Feature | Enable hibernate second level cache for org.openmrs.Privilege | Closed | |
New Feature | Support obs.interpretation and obs.status, aligned with FHIR | Code Review (Post-Commit) | |
New Feature | Making Family name as Optional | Closed | |
New Feature | Add caches programmatically | Closed | |
New Feature | ComplexObsHandlers should support complex data encoded as text | Closed | |
New Feature | Add ConceptService.getConceptSourceByHL7Code | Closed | |
New Feature | Add ModuleUtil.isOpenmrsVersionInVersions() | Closed | |
New Feature | Add ConceptSource.uniqueId | Closed | |
New Feature | Remove a TODO in code about refactoring ProgramWorkflowService.getPatientPrograms() | Closed | |
New Feature | Create pull request to remove TODO comments from core code | Closed | |
New Feature | Remove a TODO in code about notifying on global property name changes | Closed | |
New Feature | Remove a TODO in the code about AdministrationService.getPresentationLocales() return type | Closed | |
New Feature | Remove code TODO about interface OpenmrsMetadata should support localized names and descriptions | Closed | |
New Feature | Expanded cohort details | In Progress | |
New Feature | SaveOrder method should throw more meaningful exceptions | Code Review (Post-Commit) | |
New Feature | Add support for init parameters for module servlets | Closed | |
New Feature | When a module is started, all its dependent modules should be started | Closed | |
New Feature | Cache results from getSearchLocales() | Closed | |
New Feature | Allow admins to view and edit all concept names | Closed | |
New Feature | Update the simple order jsp pages to work with the new attributes | Closed | |
New Feature | Ignore blank person addresses on the patient forms | Closed | |
New Feature | Code coverage and Test report for OpenMRS | Closed | |
New Feature | Regression Test OpenMRS with Apache Tomcat 7. | Closed | |
New Feature | Add maven module for checkstyle | Closed | |
New Feature | Use Hibernate Search with Apache Lucene for Patient Searches | Closed | |
New Feature | End-User-Friendly Patient Matching and de-duplication in the core application | Closed | |
New Feature | HL7 message routing improvements | Closed | |
Story | In some cases it should be possible to merge patients even if both have active orders | Closed | |
Story | Failing to start the server due to CacheManager issue | Closed | |
Bug | Unable to modify/edit a Program from OpenMRS admin | Closed | |
Bug | Fix HL7UtilTest failure on OpenJDK 7 | Closed | |
Bug | Remove velocity.log files | Closed | |
Bug | EncounterTest random failures | Closed | |
Bug | Fix performance of get concepts by mapping | Closed | |
Bug | Add tests to ConceptServiceImpl | Closed | |
Bug | Extract private method in ObsServiceImpl.saveExistingObs | Closed | |
Bug | Use apache StringUtils in OrderSetServiceImpl | Closed | |
Bug | Use platform agnostic newlines in string formatting | Closed | |
Bug | Replace StringBuffer with StringBuilder | Closed | |
Bug | HibernateConceptDAO.getConceptByName() method logs incorrect warning message | Closed | |
Bug | Use Boolean.valueOf to test strings | Closed | |
Bug | Collection.isEmpty() should be used to test for emptiness | Closed | |
Bug | Accepting more characters for observation value of type Text | Closed | |
Bug | AllergenType includes some invalid options | Closed | |
Bug | Error Scenario in Obs Save : New child Obs not saving when entire Obs group is updated | Closed | |
Bug | defaultLocale property of User is not updated to Context when the user is logged in | Closed | |
Bug | Encounter.removeProvider fails if same provider has already been removed once before | Closed | |
Bug | Weak password message is not translated while the exception is raised | Closed | |
Bug | Set HttpOnly for JSESSIONID cookie | Closed | |
Bug | ModuleFactoryTest Error | Closed | |
Bug | TextHandler does not work | Closed | |
Bug | Another CacheManager with same name 'apiCache' already exists in the same VM | Closed | |
Bug | ImageHandler.saveObs(Obs) to close outfile | Closed | |
Bug | Saving Existing Obs will not update formNamespaceAndPath | Closed | |
Bug | Obs retrieval from the encounter should maintain the same order in which it is added | Closed | |
Bug | Non empty database should not fail when finishing database setup | Closed | |
Bug | NPE in HibernateConceptDAO.isConceptNameDuplicate | Closed | |
Bug | Encounter with complex obs throws NullPointerException on save | Closed | |
Bug | Clean Hibernate session after applying liquibase changesets | Closed | |
Bug | Code cleanup: remove duplication in getApplicationDataDirectory | Closed | |
Bug | Patient Merge - HibernatePatientDAO - getDuplicatePatientsByAttributes - Not performing on large database | Closed | |
Bug | Adding setmember to concept with retired set members either does not get added up or gets added in the wrong position | Closed | |
Bug | Obs validator validates for empty value in parent obs which is to be voided | Closed | |
Bug | VisitValidator should ensure that the visit start date can't be before the birth date of the patient | In Progress | |
Bug | ConceptService.getConceptSourceByName privilege annotation wrong | Closed | |
Bug | Saving a visit should not cascade to encounters associated to it | Closed | |
Bug | Remove a TODO in code about config parameter from DatatypeService.getDatatype | Closed | |
Bug | Remove a TODO in code about PatientIdentifierType.toString() returning a more "debug-worth" string | Closed | |
Bug | Copy patient specific attributes on Patient() constructor | Closed | |
Bug | Remove TODOs from code about addAttribute() needs validation | Closed | |
Bug | ConceptDAO filters concepts only if results were found by fullTextQuery | Closed | |
Bug | Remove unused classes and files | Closed | |
Bug | Concept validator should require datatype and conceptClass fields | Closed | |
Bug | Concept.hbm.xml not-null on optional changedBy | Closed | |
Bug | BaseOpenmrsData creator, dateCreated, uuid should be not updatable | Closed | |
Bug | HibernateOrderDAO exception uses wrong message code | Closed | |
Bug | NullPointerException at org.openmrs.api.customdatatype.datatype.ConceptDatatype#doGetTextSummary | Closed | |
Bug | Add unit test for findPossibleValues method of Concept Class | Closed | |
Bug | Should not be able to set birth or death dates later than present date | Closed | |
Bug | Do not allow person/patient to have death date before birth date | Closed | |
Bug | HL7ServiceImpl#resolveUserId should search for users by person name | Code Review (Post-Commit) | |
Bug | Error in unit test of PatientServiceTest class | Closed | |
Bug | Module.getExtensions() does not call Module.expandExtensionNames() appropriately | Closed | |
Bug | NullPointerException at org.openmrs.util.Format#format(Date, Locale, Format.FORMAT_TYPE) | Closed | |
Bug | NullPointerException at org.openmrs.web.WebUtil#normalizeLocale() | Closed | |
Bug | SQLException during the initial setup on MySQL 5.7 | Closed | |
Bug | Incorrect Global Properties for CIEL | Closed | |
Bug | Encounter search will not match on id unless it contains digits | Closed | |
Bug | ModuleActivatorTest shouldStopDependantModulesOnStopModule fails randomly | Closed | |
Bug | Object validation should enforce maximum length based on column length constraints in the DB | Closed | |
Bug | Forms should not be required in HL7 ORU^R01 messages | Closed | |
Bug | Initial Setup (installer) sits at 100% too long before actually finishing | Closed | |
Bug | Don't set password values in the UI in the installation wizard | Closed | |
Bug | Some times empty demographics tab on patient dashboard | Closed | |
Bug | Limited number of trees in the world | In Progress | |
Task | increase the size of the obs.value_complex column to be ~1000 | Code Review (Post-Commit) | |
Task | Merge checkstyle rules with google's | Closed | |
Task | Update checkstyle maven plugin | Closed | |
Task | Reorganize checkstyle | Closed | |
Task | Convert xml spaces into tabs for indents | Closed | |
Task | Create platform for SDK | Closed | |
Task | Remove outdated UI test code | Closed | |
Task | Refactor OpenmrsUtil.copyFile | Closed | |
Task | Incorrect message code in Order Validator | Closed | |
Task | Add Unit tests for ModuleUtil.expandJar(File, File, String, boolean) | Closed | |
Task | Add github pull request template | Closed | |
Task | Adding more unit test for ConceptTest and PatientServiceTest | Closed | |
Task | Adding more unit test for Person.java | Closed | |
Task | Verify that all relevant domain objects have changed_by and date_changed fields | Closed | |
Task | Separate liquibase file into separate files per version | Closed | |
Task | Implement release tests for manage modules | Closed | |
Sub-task | TRUNK-324 Remove commented code about Re-write the hashcode() method | Closed | |
Sub-task | TRUNK-324 Remove code comment about Eliminate unnecessary methods | Closed | |
Sub-task | TRUNK-324 Remove code TODO about Should take care of the case where the user is using removable media | Closed | |
Sub-task | TRUNK-324 Remove code comments about Fail if minOccurs is greater than 1 | Closed | |
Sub-task | TRUNK-324 Remove code comment about Add a global property that enables different behavior here | Closed | |
Sub-task | TRUNK-324 Remove TODO comment and deprecate method | Closed | |
Sub-task | TRUNK-324 Remove code comment about Add changedBy and DateChanged columns to table patient_identifier_type | Closed | |
Sub-task | TRUNK-324 Remove TODO comments about Check patient has at least one "sufficient" identifier | Closed | |
Sub-task | TRUNK-324 Remove commented code about Throw an exception if there is no location to fall back on | Closed |