Notes within OpenMRS (Design Page)
Abstract
Clinical notes (narrative reports) are a core part of any medical record system. A "note" table was introduced into OpenMRS core early in its development, anticipating the need; however, several years passed before it became a priority for implementations. The core note
table is not design properly nor has it been wired into the API. Furthermore, a project involving notifications used a Note
object, which has been left unused within core.
OpenMRS needs notes (narrative text) to be a component of encounters (just like orders and observations) to accommodate clinic notes, inpatient progress notes, admission notes, discharge summaries, etc. Notes should also accommodate binary notes (e.g., scanned notes).
A clinical note within OpenMRS may be thought of as:
"Any patient-centric narrative that is not a test or procedure result and has (or would ideally have*) a plain text view."
* "ideally" is used here to include scanned documents that may only be understood as images, but ideally would have perfect OCR performed to retrieve text from them.
Notes within OpenMRS are meant for narrative text (from plain text to CDAs to scanned documents), not images like x-rays or other multimedia that are observations (i.e., complex observations).
Project Champions
@Burke Mamlin
@Ryan Crichton
@Jeremy Keiper
Requirements
Encounters should be able to contain one-to-many clinical notes.
Notes do not have to be part of an encounter – i.e., like obs, encounter should be optional.
Notes should have a type that is a concept or can be linked to a concept
Notes should be easily searchable, especially by patient.
Objectives
Remove the existing
Note
object within the notifications package.Adapt the
note
table to meet requirements.Create a
NoteService
to manage clinical notes.Allow for complex notes (like complex obs) to accommodate binary/external notes
Design Ideas
note.mime_type
– used to describe the content type (distinguish plain text from PDF from a particular XML format).note.text
– contains content for text-based notes, may be empty or contain indexable text for complex (binary) notesnote.uri
– describes location of note for complex/external notes (used by handler)note_type.concept_id
– provides an optional mapping to a conceptnote_type.is_complex
– true if the note type requires a handler to set/get/render contentnote_type.complex_handler
– reference to Java class the implements complex handler interface
Extra Credit
Use built-in lucene indexing to allow for rapid searching of notes.
Resources
- Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.