Form Memory - Storing Form Values for Patients in Ocean


Instead of storing patient information directly, Ocean relies on your electronic medical record (EMR) for long-term storage.

Due to our vigilant adherence to privacy and security protocols, Ocean will not store or remember any long-term identifiable information about patients. It is intentionally designed to NOT be a replacement for your EMR.

However, the EMR isn't always capable of storing certain information in a workable, reusable format for clinical purposes. Specific eForm answers or prior submissions of Ocean forms don't always map well to EMR fields, nor are they necessarily re-uploaded when Ocean is used again for the same patient. These fields are more easily tracked by Ocean itself.

For example, you may want to have Ocean only show a form once, or re-display prior answers from a patient when a form is shown a second time. It is very hard to do this with pure EMR data, which is where the Form Memory feature comes in. This feature allows you to store this sort of information from Ocean without compromising patient privacy.

How It Works

To link prior answers to patients, Ocean uses a "one-directional cryptographic hashing" of static patient fields like their health number and birth date. This hashing creates a unique pseudonym key that can be used to link prior answers for the same patient, without allowing anyone to identify the patient behind a given key.

Form Memory allows you to include variables such as "daysSinceLastCompleted" and "firstTime" in eForm scripting and tablet rules, in order to enable screening for chronic conditions, periodic clinic administration forms, longitudinal research studies and, in a more complex situation, stateful "sessions" with patients using the "rememberTag" to maintain state.

In order for Form Memory to work, the following conditions must be met:

  • The eForm must have form memory enabled. To do this, open the form in the eForm editor, from the Action menu (top right), select "Form Properties", enter the "Form Storage and Memory" tab, and enable Form Memory.

  • A patient must have sufficient static identifiable demographic information in Ocean to generate their unique pseudonym. In particular, the patient's chart must contain their: health number, surname, birthdate, and sex.
  • The form must be submitted via the Next/Finish button.
Using Form Memory

Once Form Memory has been enabled on a particular Ocean eForm, there are 2 optional parameter in this dialog when activating Form Memory:

Remember If Expression:
This value is shown if Form Memory is set to "Based on Script Expression". It allows you to conditionally use Form Memory depending on a script expression. For example, you could have a checkbox "rememberMyAnswersForNextTime" on the form, and enter "rememberMyAnswersForNextTime.r == 'Y'" as the Remember If Expression.
Remember Tag Expression:
This value allows you to store any text string on the form as a variable. For example, if you had two answers on a form that you would like to remember, myAnswer1 and myAnswer2, you could use "myAnswer1.r + '|' myAnswer2.r" as the string that stores both values for myAnswer1 and myAnswer2.

In order to actually make use of Form Memory, you'll need to refer to it in some manner, usually via the scripting in tablet rules, eForm Actions, eForm item visibility calculations, or formulas.

The following variables are available:

  • firstTime: This variable is true when there is no Form Memory of a prior form completion for the current patient (i.e. it's the first time they're completing a form).
  • daysSinceLastCompleted: This variable will return the number of days since the form was last completed for the current patient. For example, if the form was completed by the same patient two weeks ago, the value is 14. If it's the first time the form is shown (i.e. no prior completions), the value is infinity.
  • rememberTag: This variable will use the string value stored by the Remember Tag Expression during the previous form's usage. For example, based on the example given in the Remember Tag Expression above, rememberTag.split("|") would return a string array containing the previous form's values stored by Form Memory.
Using Form Memory to Store and Retrieve Information

Form Memory is most commonly used by Tablet Rules to do relatively simple things. For example, you may want to show an Email Consent form if "daysSinceLastCompleted > 180".

However, you can use the Remember Tag Expression and rememberTag as described above to store arbitrarily complex sets of values.

Using Form Memory to Retrieve Information from Other Forms

Suppose you would like to refer to a value entered in a previous session for a different form. For example, you have 2 forms: Form A and Form B. You want Form B to be able to access a value entered in Form A during the previous tablet session.

In the same tablet session, this is straightforward. You can just use the tablet rule:

ScriptUtil.getResponse(theRefForFormA, theItemRefOnFormA)
Copy Rule

However, you can't use this rule to access values from previous sessions. Fortunately, you can work around this limitation by storing Form A's value in the rememberTag for Form B:

In Form B, set the Remember Tag Expression to:

ScriptUtil.getResponse(theRefForFormA, theItemRefOnFormA)
Copy Rule

This will store the value in Form Memory during the first session. Then, during the second session for Form B, you can use the rememberTag value to access it from Form Memory.

Deleting Form Memory or 'Forgetting' a Patient in Ocean

"Deleting Patient Form Memory" will take you through "forgetting" a patient in Ocean.

Caveats for Using Form Memory

Form Memory is best used as a useful shortcut, rather than a persistent data storage repository for patient information. Form Memory cannot guarantee that a patient's information will always be available in the future. For example, if a patient changes their surname or their sex, their pseudonym will be different and thus, their previous answers will no longer be accessible.

We stress again: for a number of medico-legal and technical reasons, your EMR must be the ultimate repository for a patient's clinical information. Please do not rely on Form Memory to store mission-critical health information.

Make sure your EMR has a free-text clinical note that captures the equivalent clinical information. You can configure this by ensuring the eForms generate an appropriate note (along with tagged vitals if desired) in addition to use of the Form Memory feature.

Have more questions? Submit a request