Demographics
MU Requirements
Meaningful Use Measures:
At least 80% of all unique patients seen by the EP have demographics recorded as structured data.
Certification Criteria for EHR:
Enable a user to electronically record, modify, and retrieve patient demographic data including preferred language, insurance type, gender, race, ethnicity, and date of birth.
Proposed Solution
- Add List for Ethnicity
- Add List for Insurance Type
- Add List for Preferred Language
- Add a field for "Allow Health Information Exchange"
Required by California Immunization Registries:
- Add a field for Mother and a field for Guardian
- Add a field for "Allow Immunization Registries Use"
- Add a field for "Allow Immunization Information Sharing"
- Add a field for "VFC" (Patient’s eligibility status for Vaccine
for Children supplied vaccine)
We propose using the ethnicity and language lists from California Immunization Registries as they are needed for data submission. Question: what about other states?
Ethnicity List:
02 HISPANIC – Mexican/MexAmer/Chicano
03 HISPANIC – Puerto Rican
04 HISPANIC - Cuban
05 HISPANIC – Central/South American
06 HISPANIC – Other (Born outside US)
08 HISPANIC – Other (Born in US)
09 HISPANIC - Unspecified
10 WHITE
20 BLACK
30 AMERICAN INDIAN
40 ASIAN - Unspecified
41 ASIAN - Specified
42 ASIAN - Chinese
43 ASIAN - Japanese
44 ASIAN - Korean
45 ASIAN - Vietnamese
46 ASIAN - Cambodian
47 ASIAN - Thai
48 ASIAN - Laotian
49 ASIAN - Hmong
50 ASIAN
51 OTHER - Specified
52 INDIAN – (Not Am Indian)
53 FILIPINO
54 HAWAIIAN
55 GUAMANIAN
56 SAMOAN
57 ESKIMO
58 ALEUT
59 PACIFIC ISLANDER
70 REFUSED TO STATE
80 OTHER
97 MULTIRACIAL
98 WITHHELD
99 UNKNOWN
Language List:
CHIN Chinese
ENGL English
FARS Farsi
FREN French
GERM German language
GREE Greek
ITAL Italian
JAPA Japanese
KORE Korean
LAOT Laotian
MIEN Mien
OTHR Others
PORT Portuguese
PUNJ Punjabi
RUSS Russian
SIGN Deaf
SPAN Spanish
TAGA Tagalog
VIET Vietnamese
ARME Armenian
DANI Danish
NORW Norwegian
TURK Turkish
YIDD Yiddish
ZULU Zulu
HMON Hmong
Effected Code, Tables, etc
Navigation: patient/Client > Management > New/Search > Demographics > Stats
File: N/A, no code change required
Table: patient_data table already contains language and ethnoracial fields that can be used to store language and ethnicity data. A new field is needed for insurance type.
-- -- Table structure for table `patient_data` --
DROP TABLE IF EXISTS `patient_data`; CREATE TABLE `patient_data` (
`id` bigint(20) NOT NULL auto_increment, `title` varchar(255) NOT NULL default , `language` varchar(255) NOT NULL default , `financial` varchar(255) NOT NULL default , `fname` varchar(255) NOT NULL default , `lname` varchar(255) NOT NULL default , `mname` varchar(255) NOT NULL default , `DOB` date default NULL, `street` varchar(255) NOT NULL default , `postal_code` varchar(255) NOT NULL default , `city` varchar(255) NOT NULL default , `state` varchar(255) NOT NULL default , `country_code` varchar(255) NOT NULL default , `drivers_license` varchar(255) NOT NULL default , `ss` varchar(255) NOT NULL default , `occupation` longtext, `phone_home` varchar(255) NOT NULL default , `phone_biz` varchar(255) NOT NULL default , `phone_contact` varchar(255) NOT NULL default , `phone_cell` varchar(255) NOT NULL default , `pharmacy_id` int(11) NOT NULL default '0', `status` varchar(255) NOT NULL default , `contact_relationship` varchar(255) NOT NULL default , `date` datetime default NULL, `sex` varchar(255) NOT NULL default , `referrer` varchar(255) NOT NULL default , `referrerID` varchar(255) NOT NULL default , `providerID` int(11) default NULL, `email` varchar(255) NOT NULL default , `ethnoracial` varchar(255) NOT NULL default , `interpretter` varchar(255) NOT NULL default , `migrantseasonal` varchar(255) NOT NULL default , `family_size` varchar(255) NOT NULL default , `monthly_income` varchar(255) NOT NULL default , `homeless` varchar(255) NOT NULL default , `financial_review` datetime default NULL, `pubpid` varchar(255) NOT NULL default , `pid` bigint(20) NOT NULL default '0', `genericname1` varchar(255) NOT NULL default , `genericval1` varchar(255) NOT NULL default , `genericname2` varchar(255) NOT NULL default , `genericval2` varchar(255) NOT NULL default , `hipaa_mail` varchar(3) NOT NULL default , `hipaa_voice` varchar(3) NOT NULL default , `hipaa_notice` varchar(3) NOT NULL default , `hipaa_message` varchar(20) NOT NULL default , `hipaa_allowsms` VARCHAR( 3 ) NOT NULL DEFAULT 'NO', `hipaa_allowemail` VARCHAR( 3 ) NOT NULL DEFAULT 'NO', `squad` varchar(32) NOT NULL default , `fitness` int(11) NOT NULL default '0', `referral_source` varchar(30) NOT NULL default , `usertext1` varchar(255) NOT NULL DEFAULT , `usertext2` varchar(255) NOT NULL DEFAULT , `usertext3` varchar(255) NOT NULL DEFAULT , `usertext4` varchar(255) NOT NULL DEFAULT , `usertext5` varchar(255) NOT NULL DEFAULT , `usertext6` varchar(255) NOT NULL DEFAULT , `usertext7` varchar(255) NOT NULL DEFAULT , `usertext8` varchar(255) NOT NULL DEFAULT , `userlist1` varchar(255) NOT NULL DEFAULT , `userlist2` varchar(255) NOT NULL DEFAULT , `userlist3` varchar(255) NOT NULL DEFAULT , `userlist4` varchar(255) NOT NULL DEFAULT , `userlist5` varchar(255) NOT NULL DEFAULT , `userlist6` varchar(255) NOT NULL DEFAULT , `userlist7` varchar(255) NOT NULL DEFAULT , `pricelevel` varchar(255) NOT NULL default 'standard', `regdate` date DEFAULT NULL COMMENT 'Registration Date', `contrastart` date DEFAULT NULL COMMENT 'Date contraceptives initially used', UNIQUE KEY `pid` (`pid`), KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 ;
Current values are selected from the list_options table.
-- -- Table structure for table `list_options` --
DROP TABLE IF EXISTS `list_options`; CREATE TABLE `list_options` (
`list_id` varchar(31) NOT NULL default , `option_id` varchar(31) NOT NULL default , `title` varchar(255) NOT NULL default , `seq` int(11) NOT NULL default '0', `is_default` tinyint(1) NOT NULL default '0', `option_value` float NOT NULL default '0', `mapping` varchar(15) NOT NULL DEFAULT , PRIMARY KEY (`list_id`,`option_id`)
) ENGINE=MyISAM;
Owner and Status
Design - Thomas Wong (Intesync) and Tony McCormick (MI2)
Coding - Jeremy Wallace (OpenEMR Support LLC)
Developer Comments
Lists added for:
- Insurance Type
- Eligibility
Existing lists recycled:
- Race/Ethnicity
- Language
Fields added to Demographics
- Guardian (text field)
- Mother (text field)
- Insurance Type (combo box using Insurance_Type list)
- Allow Immunization Registries Use (combo box using yesno list)
- Allow Immunization information Sharing (combo box using yesno list)
- Allow Health Information Exchange (combo box using yesno list)
- VFC (combo box using Eligibility list)
The original language list was amended with the more-comprehensive list to avoid breaking any usage of the existing entries. Duplicates of the original items formatted differently in the more-comprehensive list were dropped.
The patient_data table was altered with several new columns:
+ `insurancetype` varchar(255) NOT NULL DEFAULT '', + `vfc` varchar(255) NOT NULL DEFAULT '', + `mothersname` varchar(255) NOT NULL DEFAULT '', + `guardiansname` varchar(255) NOT NULL DEFAULT '', + `allow_imm_reg_use` varchar(255) NOT NULL DEFAULT '', + `allow_imm_info_share` varchar(255) NOT NULL DEFAULT '', + `allow_imm_health_info_ex` varchar(255) NOT NULL DEFAULT '',
Pre-testing covered field data entry for a new patient and existing patient on stock install as well as 3.2-to-4.0 upgrade.
Two files were modified for the release of this patch. database.sql and 3_2_0-to-4_0_0_upgrade.sql
Note: Removing the Insurance Type from this design: OpenEMR has an insurance table connected to the patient record and that table has type information in it already, so this field is redundant. `insurancetype` varchar(255) NOT NULL DEFAULT
Links
- CCHIT_MU_2011_Project
- Associated with sourceforge forum: http://sourceforge.net/projects/openemr/forums/forum/202506/topic/3531456