1. A computer program, stored on a tangible medium for storing a set of user answers, the computer program including executable instructions that cause a computer to: access a database that is characterized by a database schema, the database schema comprising: at least one root comprising a root attribute; one or more question nodes comprising a question attribute; and one or more selection nodes comprising a selection type, the selection type indicating a location of a selection item; one or more user encounter nodes; and one or more user answer nodes; wherein: each root is associated with one or more predetermined encounters; each root is linked to one or more of the question nodes; one or more of the question nodes are linked to one or more of the selection nodes; and each of the user answer nodes are linked to a user encounter node; and execute a user interface, wherein the user interface is configured to: initiate a user encounter node in the database; select one or more first predetermined encounters; for at least one of the first selected predetermined encounters: for one or more roots associated with the first selected predetermined encounter: for each question node associated with the root: present the question attribute associated with the question node; present the selection items associated with the selection nodes that are associated with the question node; and receive a user selection; and store the user selection as a first user answer in the database; link the first user answer with the user encounter; selecting one or more second predetermined encounters, based at least in part on a user selection received in response to a question attribute; and for one or more of the second selected second predetermined encounters: for one or more roots associated with the second predetermined encounter: for each question node associated with the root: present the question attribute associated with the question node; receive a second user answer; store the second user answer in the database; and link the second user answer with the user encounter; wherein the first user answer and second user answer have different data types.