eForms in Ocean's Core Library

There are over 2000 Ocean eForms in our core eForm library, available for all Ocean users to use. You can view this set of available forms in our Clinical Resource Library, the eForms tab of the Ocean Portal, and/or the attached comprehensive list of core Ocean eForms (as of March 2017).

Clinical Resource Library Ocean Portal: eForms Tab Comprehensive List

You can browse through Ocean's core library of eForms in our Clinical Resource Library. There, PS Suite users can also search for specific custom forms.

Sharing & Importing eForms between Ocean Sites

When you create an Ocean eForm of your own, by default, it is included in our shared public directory of forms. Therefore, any Ocean community will have access to your form and will be able to import the eForm into their own Ocean site to customize and/or use themselves.

Sharing eForms Importing Shared eForms

Follow the steps below to control whether or not your eForm is listed in the Ocean public directory.

  • Open your form in the eForm Editor.
  • Click on the Actions menu at the top right and select "eForm Properties".
  • Navigate to the "Sharing & Licensing" tab in the eForm properties.
  • Either check off or remove the checkmark beside "List in directory" to either list or not list your form in our shared directory, respectively.

Adding eForm(s) to a Website

You can add eForms to your website for patients to complete using an eRequest link.

To learn how to set up an eRequest link, please refer to our eRequest Set-Up Guide.

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.

Deleting Patient Form Memory

Patient Form Memory is the ability for Ocean to remember a patient's form completion history (i.e. Ocean will remember if a patient has already filled out a certain eForm and therefore won't allow them to fill it out again). A detailed description of Ocean's Form Memory feature can be found in "Form Memory - Storing Form Values for Patients in Ocean".

Form Memory is very useful for preventing duplicate eForm submissions, so you will generally not need to override this function. However, there are a number of reasons in which you might want to tell Ocean to delete a patient's form completion history. For example, if you are testing a form with sections that hide/show depending on the last time it was completed or an eForm Action that depends on first-time usage. In addition, if a patient legitimately needs to re-complete a form that is hidden due to the patient's previous completion, you'll need to delete their form memory.

To reset the form memory for a patient, first make sure the patient is loaded into the Patients tab in the Ocean Portal:

  • If you are using PS Suite, insert the custom form in the patient's chart.
  • If you are going through the Ocean Portal, use "New Patient" and make sure the last name, birthdate and sex are complete and correct.

Then, back in the Ocean Portal, in the Patients tab, click on the patient and view the patient's pop-up information. Click "Advanced" and select "Clear Form Memory". The patient has now been "forgotten" by Ocean.

Note: Remember that Ocean isn't remembering the actual patient data, but rather a cryptographic hash that cannot be reversed.