Troubleshooting the AAMC CIR report

When uploading the generated XML file from the Curriculum Inventory Report, to the AAMC's site, you may enounter a number of cryptic error messages. For each of these errors, here are some tips you can try that might shed light on them. Some of these may require database access.

  1. If you get an error from the AAMC saying that the XML is invalid, you can use a Linux tool called xmllint to validate. There are other validators for a variety of operating systems or browsers. Regardless of what validator you use, you need to specify the following as the schema:

http://ns.medbiq.org/curriculuminventory/v1/curriculuminventory.xsd

To validate using xmllint, run the following command:

xmllint --schema http://ns.medbiq.org/curriculuminventory/v1/curriculuminventory.xsd <xml-filename>
  1. To know what objective/tag is being referred to in an error, there will be an ID, such as 12385. To figure out what objective/tag is being referred to, go to Admin > Manage Curriculum > Curriculum Tags > (any tag set) > Export (button). The spreadsheet will have the ID of each tag under the curriculum_tag_id column (first column). This will be the same as the ID listed in the report, and should tell you what tag set it is in.

  2. Tag sets included in the report must have the audience ("applicable to") all courses, or there will be either CF01 or CF07 errors.

  3. Tags that are mapped at the event, course, or program level must have an objective description, or again there will be CF01 errors.

  4. If a tag is mapped to any objective at the considered levels (event, course, or program), they themselves need to also be mapped at any of these levels or they will not be included, resulting in CF07 errors. For example, if SO01 is linked to an event and CO01 is linked to a course, and CO01 is mapped down to SO01, the XML will contain a competency object for both. But if WO01 is linked to SO01 and WO01 is not mapped to a course, event, or it's not in the specified program level objectives, then we will get a CF07 error because the objective will not have a competency object. (TL;DR, any objective will not have a competency object if it is not mapped at the course level, event level, or program level, and this will generate a CF07).

  5. Keywords are only labeled as "keywords" in the report XML if they are mapped as mesh keywords or hot topics. The administrator guide currently says to not use hot topics as not all reports respect them. MeSH keywords are not visible to the administrator if they have not been manually added in the database in the mesh_terms and mesh_descriptors tables.

  6. The "allowed_curriculum_types" column in reports_aamc_ci really means "allowed tag sets (objective IDs)". (And the program level objectives are defined in the program_level_objective_id of the same record.)

  7. The desired tag sets to include (i.e. at the course, event, and program levels) must be specified on the form before generating the report. Don't forget to set the Program Level Objectives to the correct set of program level competencies. Sometimes you'll get CF07 errors because you're mapping from objectives at the program level, but you've specified the wrong program level objective set.

  8. You will get CF09 errors if the mappings are not in conformance with the diagram in appendix A of this manual: https://www.aamc.org/media/33791/download Look at the CompetencyObject's Category descriptor to know what level the XML file is portraying the objective as. You may have to tag one of the lower level objectives at the level of the higher objective to fix it (e.g. to the course).

  9. PCRS objectives need to have a objective_code of the form "aamc-pcrs-comp-c0602", not "c0602" for example. If they do not match that format, the AAMC will ignore it and generate CF01 errors (and CF10).

  10. If clerkship courses are showing the wrong duration, it is because it is using the earliest and latest events in those courses. To make it show actual length of the clerkship, you can create clerkship events in the old module (currently the Clinical Experiences module is not supported by the CIR). However, this may lead to the courses not being included for some reason, and you will get errors. So easier it may be to use vim to modify the duration of each clerkship course, and then save that interaction as a macro to use whenever the report is regenerated.

  11. When looking at the linked_objectives table, each linked_objective record represents a mapping such that when you are adding a link in the Manage Curriculum > Curriculum Tags section by clicking the link button, you will be creating a linked_objectives record with the objective_id being the tag that you clicked first, and the target_objective_id being the tag that you added by using the drop down. The screen to map tags to a tag is incorectly saying that the tags will be mapped "to" this tag... Tags should be mapped downward, so when you add a tag using the dropdown, the tag you're adding should be "narrower" in scope. For example, you may map a program level objective down to a course level objective, and a course level objective down to an event level objective. In this case, a linked_objectives record will be created with objective_id being "broader" in scope than the target_objective_id.

  12. If assessment methods continue to show in the XML when they have in fact been deleted, it is because of a bug (has been reported in JIRA). Run the following SQL to delete them so they do not show in the report.

delete from event_medbiq_assessment_methods where deleted_date is not null;
  1. When uploading the XML file, if you get the error "Legacy medbiquitous version not supported", preceded by a message saying the XML is invalid, it is because AAMC is now using version 10 of the XML schema, but the XML file we provide currently only adheres to version 1. In many cases, this does not result in an error, but there may be times when it does. One solution is to run an XML validator, but using a higher version of the XML schema. For example, use version 10 of the XML schema to validate your XML file. The file may have to be modified in order for this to produce meaningful error messages.

http://ns.medbiq.org/curriculuminventory/v10/curriculuminventory.xsd

Adding a student to the report

  1. Go to Admin > System Reports > External Reporting > AAMC Curriculum Inventory Report

  2. Add a new report or edit a report

  3. Click on a curriculum level/layout that you'd like to add.

  4. To add a student for this curriculum level, first go to Admin > Events, and filter by curriculum level/layout (it may be called "Term filter"). Do this in a separate tab and keep the CI report open.

  5. Click on one of the events in the period of time you want to report on

  6. Click on the Attendance tab

  7. Ensure that the curriculum period selected is the one you want to report on

  8. Note the name of one of the students

  9. Back in the CI report, find the student by selecting their cohort, and clicking the plus (+) button beside their name.

Last updated