Demographics

From OpenEMR Project Wiki
Revision as of 07:45, 26 August 2011 by Bradymiller (talk | contribs) (1 revision: one)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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)

Demographics1.png

Demographics2.png

Demographics3.png


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