Computer Physician Order Entry
From OpenEMR Project Wiki
Meaningful Use Measures:
CPOE is used for at least 80% of all orders.
Certification Criteria for EHR:
Enable a user to electronically record, store, retrieve, and manage, at a minimum, the following order types:
3. Radiology/imaging; and
4. Provider referrals
1. AR.EP.A.1 The technology shall provide the ability to capture orders for medications, laboratory, procedures, diagnostic imaging, immunizations, and referrals. Electronic interfaces to receiving entities are not required. MU.P1.EP.O1
2. AR.EP.A.2 The technology shall record the identity of the physician (or other licensed professional) placing the order as well as the identity of the user entering the order. MU.P1.EP.M3
3. AR.EP.A.3 The technology shall have the ability to capture an indication for imaging services. MU.P1.EP.M12
- The Tester enters the NIST-supplied Test Data orders for medications, laboratory, and radiology/imaging
- The Tester verifies that the orders are stored in the EHR
- Modify - evaluates the capability for a user to electronically modify entered orders for medications, laboratory, and radiology/imaging in the EHR in an ambulatory setting
- The Tester displays the entered orders for medications, laboratory, and radiology/imaging
- Tester modifies the medications, laboratory, and radiology/imaging orders
- The Tester validates that the modified orders are accurate and complete
- Retrieve - evaluates the capability to retrieve and display the orders that have been previously entered into the EHR in an ambulatory setting
- The Tester displays the orders for medications, laboratory, and radiology/ imaging entered during the test
- The Tester validates that the displayed order data are accurate and complete
1. Develop an order Entry screen and integrate it with the new GUI - Tony
2. Create a Messages box for routing order authorization. For example, a nurse can order a lab test and route it to a physician for signoff. The Messages box is also used for signing off lab results received from Labcorp/Quest. - Thomas
- CPOE Order interface should be launch able from various contexts (base, active patient, active encounter). The context should pass as much information as possible and appropriate to prefill the Order with the common fields
- CPOE Order Interface should only contain fields that are common to all order type.
- CPOE shall have a specific API standard for calling the specific order type panels and shall include a framework for plugging in new order types (similar to the forms model).
- Previously entered orders (and their state) shall be visible from a general - All Orders report that has click thru to the order and in patient context as a collapsible view (like the notes in the new UI)
- CPOE Order interface shall use an authorization routing model based on users role from gacl
- Order results from CPOE are displayed as messages and authorization, visibility and actions are based on user role in gacl
- Should orders initiated from the Active Encounter context be visible within the List Encounter panel, Authorizations pages and perhaps the Billing Report module?
- Should things waiting to be authorized appear in the 'senders' message area until they have been?
- Should the Orders report be downloadable as CSV?
- How will billing for orders be handled, ie: does executing an order create a charge record, how will the service codes, fees be mapped?
Effected Code, Tables, etc
1. Here're the tables used for order entry. For results and reporting, see MU #12 Lab Results Display.
CREATE TABLE `procedure_type` (
`procedure_type_id` bigint(20) NOT NULL AUTO_INCREMENT `parent` bigint(20) NOT NULL DEFAULT 0 COMMENT 'references: physical exam, lipid panel, ...', procedure_type.procedure_type_id', `name` varchar(63) NOT NULL DEFAULT COMMENT 'name for this category, procedure or result type', `lab_id` bigint(20) NOT NULL DEFAULT 0 COMMENT 'references users.id, 0 means default to parent', `procedure_code` varchar(31) NOT NULL DEFAULT COMMENT 'code identifying this procedure', `procedure_type` varchar(31) NOT NULL DEFAULT COMMENT 'lab, imaging, ...', `standard_code` varchar(255) NOT NULL DEFAULT COMMENT 'cpt4:14545, cpt42:101T, ...', `body_site` varchar(31) NOT NULL DEFAULT COMMENT 'where to do injection, e.g. arm, buttok', `specimen` varchar(31) NOT NULL DEFAULT COMMENT 'blood, urine, saliva, etc.', `route_admin` varchar(31) NOT NULL DEFAULT COMMENT 'oral, injection', `laterality` varchar(31) NOT NULL DEFAULT COMMENT 'left, right, ...', `description` varchar(255) NOT NULL DEFAULT COMMENT 'descriptive text for procedure_code', `is_discrete` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'can this be referenced by lab_test_result?', `is_orderable` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'can this test type be ordered?', `units` varchar(31) NOT NULL DEFAULT COMMENT 'default for procedure_result.units', `range` varchar(255) NOT NULL DEFAULT COMMENT 'default for procedure_result.range', PRIMARY KEY (`procedure_type_id`)
CREATE TABLE procedure_order (
`procedure_order_id` bigint(20) NOT NULL AUTO_INCREMENT, `procedure_type_id` bigint(20) NOT NULL COMMENT 'references procedure_type.procedure_type_id', `lab_id` bigint(20) NOT NULL DEFAULT 0 COMMENT 'references users.id, 0 means default to procedure_type.lab_id', `provider_id` bigint(20) NOT NULL DEFAULT 0 COMMENT 'references users.id', `patient_id` bigint(20) NOT NULL COMMENT 'references patient_data.pid', `encounter_id` bigint(20) NOT NULL DEFAULT 0 COMMENT 'references form_encounter.encounter', `date_collected` datetime DEFAULT NULL COMMENT 'time specimen collected', `date_ordered` date DEFAULT NULL, `order_priority` varchar(31) NOT NULL DEFAULT , `patient_instructions` text NOT NULL DEFAULT , `order_status` varchar(31) NOT NULL DEFAULT COMMENT 'pending,routed,complete,canceled', PRIMARY KEY (`procedure_order_id`)
2. Messages Table
CREATE TABLE `messages` (
`message_id` bigint(20) NOT NULL auto_increment, `date` datetime DEFAULT NULL, `subject` varchar(255) DEFAULT NULL, `content` longtext, `sender` varchar(255) DEFAULT NULL, `recipient` varchar(255) DEFAULT NULL, `patient_id` bigint(20) DEFAULT NULL, `cpoe_order_link` varchar(255) DEFAULT NULL, `lab_result_link` varchar(255) DEFAULT NULL, `reminder_link` varchar(255) DEFAULT NULL, `medication_link` varchar(255) DEFAULT NULL, PRIMARY KEY (`message_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;
Owner and Status
- Intesync and MI2 collaboration
1. Work in progress
2. Messages - Status as of 1/23/2010: A Messages box has been added to the side menu. Provide to provider messaging and patient notes documentation are functional, while orders authorization and lab results signoff require the corresponding build to be done first.
Status as of 1/31/2010: Messages completed
- Associated with this sourceforge thread: http://sourceforge.net/projects/openemr/forums/forum/202506/topic/3512713