FAQ - The group will send in ideas and answers
Why bother adopting the spec?
How to write to the spec – i.e. Where to find the core information and greater details
How much extra work is it typically to do this for most implementers?
Where to find case studies on what others have done
How do you include multiple choice questions in a conformat virtual patient?
The best way to include multiple choice questions in a virtual patient is to use the extension capability of the VirtualPatientData file to include multiple choice question data represented using the IMS QTI specification. Different authoring tools handle multiple choice questions in different ways. If you plan to exchange cases with another organization, be sure to agree on the mechanism for representing multiple choice questions.
- Central essential aspects of the spec which some software authors may find hard to include or address
The MVP Architecture
Explain Virtual Patient Data, Data Availability Model, Activity Model, and Media, along with how they interact with one another
concise but only semi-technical description (1 page max) of how the pieces fit together (the DAM etc) - this will be hard to do
Notes on conformance
- What are the downsides of close adherence to the MVP format?
- What do you lose if 100% conformant?
- Some caveats about what you typically lose in porting cases from one system to another
Context Specific Requirements
Before implementing the MedBiquitous Virtual Patient Standard, analyze the context in which it will be used and determine:
- Your pedagogical goals for the system.
- Which features your virtual patient will support, and what data elements and attributes correspond to those features.
- If you plan to exchange Virtual Patient cases with other partners, are there specific features or elements that they require?
Use the rest of this document to help you make decisions about your system and implement the standard in ways that support your goals.
The MVP XML schemas may be modified to support context-specific requirements and restrictions. For more information, see “Adapting the Schema to Meet your Requirements.”
Implementing MVP Features
Types of structured data
Include demographics, medication lists, physical exam, diagnostic test results, interview question, differential diagnosis, interventions. Discuss benefits of using structured data and when that is useful.
Support for medical vocabularies
Vocabularies enhance the analysis that can be done on aggregate curriculum data by providing clearly delineated terms from which users can select the terms most appropriate to describe a given characteristic of the curriculum. When users choose non-vocabulary terms, it can be difficult to identify trends and determine commonalities and inconsistencies. Suppose Institution A classifies a course using the MeSH term Quality Improvement, and Institution B classifies a similar course using the non-MeSH term Performance Improvement. Anyone compiling data using the term Quality Improvement will have an incomplete dataset because data from Institution B’s course will be omitted.
MedBiquitous recommends using agreed-upon vocabularies for the following elements:
Integration of Media resources
Organizing Virtual Patient Data
Interactive interview questions
Support for differential diagnosis providing feedback on the likelihood fo the diagnosis and the diagnosis attributed by the case author
Learners may select interventions and receive feedback on the appropriateness and results of the intervention
Using the DAM to provide feedback
Data display options
The ability to show the learner data upon selection
The ability to show the learner data at a later point in the activity
The ability to show the learner data if they previously selected (ie ordered a test, prescribed a medication, etc).
Section based navigation
Creating a content path
Some features the MVP standard supports include:
Transferring Data in Languages other than English
Many implementers may wish to use the MVP Standard to exchange virtual patient activities in languages other than English. The standard is designed to support the exchange of activities in languages other than English.
The following elements have a required vocabulary in English:
The Virtual Patient Working group recommends specifying:
- Which languages may be used for data exchange
- What vocabularies will be used for the following elements with recommended vocabularies in English: ….
Organizations may decide to translate the recommended vocabularies referenced in the standard into other languages. See the section “Using Vocabularies” for more information on the specifics of using translated vocabularies.
Finding and Sharing
What metadata is important to include to maximize discoverability of cases when stored in repositories or just generally online
What metadata helps with portability of cases between systems
NOTE: This section is adapted from the eViP Best Practice Guidelines for the eViP application profile and associated conformance metrics.
Virtual patient systems have varied underlying models and distinct features.
Allow the user to override an automatic export if the content is not foreseen by the MVP specification.
For important content for some systems that are not supported by the MVP
specification because of the complexity (e.g. QTI assessment items ), it may be
helpful to let the user decide whether the questions will be exported in the
XtensibleInfo and potentially ignored by the target systems or imported directly as
VPDText for a non-interactive display that need to be manually converted in the target
system. Such an option is available in, for example, the CASUS system.
• For optimal compatibility, both the sender and receiver VP systems should use the
same version of the MVP specification. In the MVP 0.48 , the use of Media elements directly in VPD items like
DiagnosticTest was allowed but this notation was deprecated in the MVP versions
higher than 0.48.
Communicating with would-be users
- remind implementers to specify in broad terms that a non-techie can grasp to some extent what is needed
- Hardware, operating system, additional modules, server side software
- What the end user needs on their system: browser only, Java app, etc
- Is the service run from a central service, the institution's own servers, a public or cloud based server, or a hybrid of these
XML Tips - Valerie
Schema Locations edit
In order to validate Curriculum Inventory XML documents, you may wish to store all of the associated schemas on a local server and reference those local copies for validation. To use local copies, the schema locations of the following schemas must be changed within the curriculuminventory.xsd schema document.
Change the schemaLocation attribute of the import element to change the location used for validation. The following example shows import statements that have been changed to use local versions of the schemas. In this example, the xsd files are all in the same directory as the curriculuminventory.xsd file. The schemaLocation attribute may use relative referencing, so the example schemaLocation references the file name since the file is in the same directory.
<xsd:import namespace="http://ns.medbiq.org/member/v1/" schemaLocation="member.xsd"/>
<xsd:import namespace="http://ns.medbiq.org/competencyobject/v1/" schemaLocation="competencyobject.xsd"/>
<xsd:import namespace="http://ns.medbiq.org/lom/extend/v1/" schemaLocation="healthcaremetadata.xsd"/>
<xsd:import namespace="http://ltsc.ieee.org/xsd/LOM" schemaLocation="healthcarelom.xsd"/>
<xsd:import namespace="http://ns.medbiq.org/competencyframework/v1/" schemaLocation="competencyframework.xsd"/>
<xsd:import namespace="http://ns.medbiq.org/lom/vocab/v1/" schemaLocation="healthcarevocabularies.xsd"/>
Curriculum Inventory instance documents may then reference the local copy of the curriculuminventory.xsd schema in the schemaLocation attribute of the root element as in the example below. In this example, the curriculuminventory.xsd schema is in the same directory as the instance document.
<CurriculumInventory xsi:schemaLocation="http://ns.medbiq.org/curriculuminventory/v1/ curriculuminventory.xsd" xmlns="http://ns.medbiq.org/curriculuminventory/v1/" xmlns:lom="http://ltsc.ieee.org/xsd/LOM" xmlns:a="http://ns.medbiq.org/address/v1/" xmlns:cf="http://ns.medbiq.org/competencyframework/v1/" xmlns:co="http://ns.medbiq.org/competencyobject/v1/" xmlns:hx="http://ns.medbiq.org/lom/extend/v1/" xmlns:m="http://ns.medbiq.org/member/v1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Please note that changing the location of the schemas used for validation does not affect the conformance status of Professional Profile instance document.
Declaring Imported Schema edit
Describe the various VPD schemas and imported schemas. what schemas must be declared and where.
provide example XML showing those declarations and assigned prefixes.
Adapting the Schema to Meet Your Requirements edit
Organizations implementing the MedBiquitous Virtual Patient may wish to further restrict the scope of data considered valid or add new data not addressed in the standard. The schemas are designed to support either of these scenarios.
Extending the MVP EDIT
Add info about Alternative Path in DAM
- How to sustainably extend the spec
EDIT The Curriculum Inventory schema allows for elements from other namespaces to be included under the root element. Use the steps that follow to extend the Curriculum Inventory schema to incorporate new data.
- Write a new XML schema for new data elements and declare a targetNamespace.
Develop a new XSD schema that defines the data elements that are missing from the Curriculum Inventory. All new elements must be associated with a namespace. This can be achieved by using the XSD targetNamespace attribute. The following example defines an element called CurriculumDean that can be used to identify the Dean in charge of curriculum. The schema defines http://ns.myurl.com/curriculumdean/ as the targetNamespace, so the CurriculumDean element is associated with that namespace.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://ns.myurl.com/curriculumdean/" xmlns="http://ns.myurl.com/curriculumdean/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="CurriculumDean" type="xs:string"/>
- Place new namespace qualified elements below the root at the end of the XML instance document.
Declare the namespace of the schema with new data elements in the instance document. Usually this is done by declaring the namespace in the root element and assigning a prefix to the namespace. Then the prefix can be used when referencing the new elements. You may also declare a default namespace for an element and its subelements by declaring the namespace in the uppermost element belonging to that namespace. Then include the new element(s) just before the closing CurriculumInventory tag.
In the example below, the prefix cd is declared for the http://ns.myurl.com/curriculumdean/ namespace within the CurriculumInventory root element. The cd prefix is then used to label the CurriculumDean element before the closing CurriculumInventory tag.
The specification correctly makes no assumption about the underlying storage mechanism. However all the systems I know of seem to use SQL Databases. Translating the data from the specified xml structures into a working relational structure and back again is something of a challenge. The advent of NoSQL databases doesn’t really help this, because traversal between the structures is complex. The original assumption seems to have been that implementers would work directly from the xml files, but traversal is still complex.