1. A system, comprising: a network interface; a computing system; nonvolatile memory that stores instructions configured to cause the computing system to: access a first set of nomenclature codes and respective code descriptions from at least a first data store; access, over a network using the network interface, course data for a first plurality of courses for medical service providers from at least a second data store; compare nomenclature code descriptions and course data; use the comparison of nomenclature code descriptions and course data to generate a mapping of courses to nomenclature codes in the first set of nomenclature codes; store the mapping of courses to nomenclature codes from the first set of nomenclature codes in a third data store; access, over a network using the network interface, nomenclature codes associated with patient records for a plurality of patients from an electronic medical record system associated with a medical service provider; determine with respect to the accessed patient records; a volume of nomenclature codes, a frequency of a given nomenclature code, and record dates of respective nomenclature codes; calculate relevancy values for respective nomenclature codes using the determined volume of nomenclature codes, frequency of the respective nomenclature code, record dates of the respective nomenclature code; access the stored mapping of courses to nomenclature codes; access a first set of preferences associated with the medical service provider; use the first set of preferences to generate a filtered set of courses from the first plurality of courses; use the calculated relevancy values, the accessed mapping of courses to nomenclature codes, and the filtered set of courses to generate a first ranked presentation of recommended courses; cause the first ranked presentation of recommended courses to be displayed via a user interface of the electronic medical record system associated with the medical service provider; detect, via data received over a network using the network interface, a course selection of a course included in the first ranked presentation of recommended courses by the medical service provider; use, by a learning engine, the detected selection to update learning engine weights; generate a second ranked presentation of recommended courses by the medical service provider using the learning engine with the updated learning engine weights.