1.1 药品医嘱基础数据同步接口
接口说明
HIS系统中新增、修改、删除药品医嘱时将数据写到中间表，接口程序定期读取中间表中未处理的数据将数据更新到EMR数据库中，中间表建立在HIS数据库，此处涉及3张中间表《药品字典表》DRUG.DRUG_DICT、《药品明细表》DRUG.DRUG_DETAIL、《药品价格表》DRUG.DRUG_PRICE。

DRUG.DRUG_DICT   药品字典表
DRUG_CODE			VARCHAR(20);			//药品代码 key
DRUG_NAME			VARCHAR(150);			//药品名称
DRUG_TYPE_CODE			VARCHAR(20);			//药品类型代码
DRUG_TYPE			VARCHAR(150);			//药品类型（XY—西、ZCY—成药、CY—草药）
SKIN_TEST			VARCHAR(2);			//皮试（N—不皮试，Y—皮试）【N：无需皮试；X：续用；Y：需皮试】
NARCOTIC_DRUG_CLASS_CODE			VARCHAR(20);			//毒麻药分类代码【P：一类精神药；P1：二类精神药；S：毒麻药】
NARCOTIC_DRUG_CLASS			VARCHAR(20);			//毒麻药级别（毒、麻、一类精神、二类精神）
ANTIBIOTIC_CLASS_CODE			VARCHAR(20);			//抗生素分类代码【0：一级；1：二级；2：三级】
ANTIBIOTIC_CLASS			VARCHAR(20);			//抗生素级别 （一类 二类 三类)
CHEMICAL_NAME			VARCHAR(300);			//药品化学名
DRUG_CLASS_CODE			VARCHAR(20);			//药品分类代码
DRUG_CLASS_NAME			VARCHAR(100);			//药品分类名称
DRUG_DESC			VARCHAR(500);			//药品描述
DOSAGE_FORM_CODE			VARCHAR(20);			//剂型代码
DOSAGE_FORM			VARCHAR(50);			//剂型（针剂，片剂）
IS_BASE			VARCHAR(1);			//基药【1：国家基础用药；2：省级基础用药；N：非基础用药】
AVAILABLE			VARCHAR(1);			//是否可用标志【N：不可用；Y：可用】
PRECIOUS_CLASS_CODE			VARCHAR(20);			//贵重药分类代码
PRECIOUS_CLASS			VARCHAR(20);			//贵重药级别
FEE_TYPE_NAME			VARCHAR(150);			//费别名称
INOUT_FLAG			VARCHAR(10);			//住院门诊标记【a：三者都适用；e：急诊；i：住院；o：门诊】
DEPT_CODES			VARCHAR(2000);			//部门(科室)代码集合(代码以“;”隔开)
DEPT_NAMES			VARCHAR(4000);			//部门(科室)名称集合(代码以“;”隔开)
IS_REP_DRUG			VARCHAR(1);			//是否是报告药【是否是报告药：Y：是；N：不是】
REP_DRUG_TYPE			VARCHAR(100);			//报告药类型
REP_DRUG_TYPE_NAME			VARCHAR(200);			//报告药类型名称
PARTICLE_PROPERTY			VARCHAR(1);			//颗粒属性【颗粒属性：P(颗粒)，H(草药)】
IS_DANGEROUS			VARCHAR(2);			//高危药品【高危药品：Y：是；N：不是】
DRUG_INSURANCE_CODE			VARCHAR(20);			//药品医保等级代码
DRUG_INSURANCE_NAME			VARCHAR(20);			//药品医保等级名称
IS_MEDICINE_PACKAGING_MACHINE			VARCHAR(2);			//进包药机【是否进包药机：Y：是；N：不是】
IS_BIG_DRUG_STORE			VARCHAR(2);			//大药房【大药房：Y：是；N：否】
FIXED_POINT_PROPERTY			VARCHAR(2);			//定点属性
DRUG_PROPERTY			VARCHAR(10);			//药品属性【药品属性：1:相似；2:高危；3:易跌倒；4:冷藏；5别名；6遮光】
CEF_ALGEBRA_CODE			VARCHAR(100);			//头孢代数编码
CEF_ALGEBRA_NAME			VARCHAR(100);			//头孢代数名称
DRUG_QUALITY_CODE			VARCHAR(10);			//药品性质代码
DRUG_QUALITY_NAME			VARCHAR(50);			//药品性质名称
SELF_DRUG			VARCHAR(1);			//自带药（西、中）N-非自带药 Y-自带药 Q-其它
IS_LIQUID			VARCHAR(1);			//是否是液体类药物（Y-是）
DANGEROUS_CLASS_CODE			VARCHAR(20);			//高危等级代码
DANGEROUS_CLASS			VARCHAR(20);			//高危等级
USE_INFO			VARCHAR(500);			//用药须知
MED_INFORMATION			VARCHAR(50);			//服药说明
NEW_FLAG			VARCHAR(1);			//是否新药标记【N：否；Y：是】
PRE_DOSAGE_FORM_CODE			VARCHAR(20);			//方剂剂型代码
PRE_DOSAGE_FORM			VARCHAR(150);			//方剂剂型
Pharmacy_code               VARCHAR(30);	//所属药房代码（红色为我新增字段）
Pharmacy_name              VARCHAR(50); //所属药房名
hospital_flag 				VARCHAR(5); //新旧院标志
MANAGE_TYPE      VARCHAR(2);      //处理类型（1-新增 2-修改 3-删除） 必填
IMPFLAG   VARCHAR(2);     //接口是否处理（0-未处理 1-处理成功 2-处理失败）必填

建表语句：
-- Create table
create table drug.DRUG_DICT
(
  drug_code                     VARCHAR2(20) not null,
  drug_name                     VARCHAR2(150),
  drug_type_code                VARCHAR2(20),
  drug_type                     VARCHAR2(150),
  skin_test                     VARCHAR2(2),
  narcotic_drug_class_code      VARCHAR2(20),
  narcotic_drug_class           VARCHAR2(150),
  antibiotic_class_code         VARCHAR2(20),
  antibiotic_class              VARCHAR2(150),
  chemical_name                 VARCHAR2(500),
  drug_class_code               VARCHAR2(20),
  drug_class_name               VARCHAR2(100),
  drug_desc                     VARCHAR2(500),
  dosage_form_code              VARCHAR2(20),
  dosage_form                   VARCHAR2(150),
  is_base                       VARCHAR2(1),
  available                     VARCHAR2(1),
  precious_class_code           VARCHAR2(20),
  precious_class                VARCHAR2(20),
  fee_type_name                 VARCHAR2(150),
  inout_flag                    VARCHAR2(10),
  dept_codes                    VARCHAR2(2000),
  dept_names                    VARCHAR2(4000),
  is_rep_drug                   VARCHAR2(1),
  rep_drug_type                 VARCHAR2(100),
  rep_drug_type_name            VARCHAR2(200),
  is_dangerous                  VARCHAR2(2),
  drug_insurance_code           VARCHAR2(20),
  drug_insurance_name           VARCHAR2(20),
  particle_property             VARCHAR2(1),
  is_medicine_packaging_machine VARCHAR2(2),
  is_big_drug_store             VARCHAR2(2),
  fixed_point_property          VARCHAR2(2),
  drug_property                 VARCHAR2(10),
  cef_algebra_code              VARCHAR2(100),
  cef_algebra_name              VARCHAR2(100),
  drug_quality_code             VARCHAR2(10),
  drug_quality_name             VARCHAR2(50),
  use_info                      VARCHAR2(500),
  dangerous_class_code          VARCHAR2(20),
  dangerous_class               VARCHAR2(20),
  self_drug                     VARCHAR2(1),
  is_liquid                     VARCHAR2(1),
  med_information               VARCHAR2(50),
  new_flag                      VARCHAR2(1),
  pre_dosage_form_code          VARCHAR2(20),
  pre_dosage_form               VARCHAR2(150),
  chemo_drug_flag               VARCHAR2(10),
Pharmacy_code                 VARCHAR2(30),
Pharmacy_name                VARCHAR2(50),
hospital_flag 				VARCHAR2(5),
)
tablespace HTBASE
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 128
    next 1
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints 
alter table drug.DRUG_DICT
  add constraint SQL11062112314327 primary key (DRUG_CODE)
  using index 
  tablespace HTBASE
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

DRUG.DRUG_DETAIL 药品明细表

DRUG_CODE			VARCHAR(20);			//药品代码 key
DRUG_SPEC			VARCHAR(150);			//药品规格 key
DRUG_NAME			VARCHAR(150);			//药品名称
DOSE_UNIT_CODE			VARCHAR(20);			//剂量单位代码
DOSE_UNIT			VARCHAR(150);			//剂量单位
DOSE_PER			VARCHAR(50);			//单位剂量
MIN_PACKAGE_UNIT_CODE			VARCHAR(20);			//最小包装单位代码
MIN_PACKAGE_UNIT			VARCHAR(20);			//最小包装单位
QUANTITY_PER_PACKAGE			VARCHAR(50);			//包装数量
PACKAGE_UNIT_CODE			VARCHAR(20);			//包装单位代码
PACKAGE_UNIT			VARCHAR(20);			//包装单位
CAN_UNPACK			VARCHAR(1);			//能否拆包（Y—能）
AVAILABLE			VARCHAR(1);			//是否可用标志【N：不可用；Y：可用】
DOSE_UNIT_CODES			VARCHAR(300);			//剂量单位代码集合【格式：|aa|bb|cc|，用|分割，匹配时包含前后|】
DOSE_UNITS			VARCHAR(500);			//剂量单位集合
MEDICAL_INSURANCE_TYPE			VARCHAR(20);			//医保类型【门慢：；门特：】
INSURANCE_TYPE_CODE			VARCHAR(20);			//医保类型代码
AGRICULTURAL_INSURANCE_TYPE			VARCHAR(20);			//农保类型
AGRI_INSURANCE_TYPE_CODE			VARCHAR(20);			//农保类型代码
PRICE			DECIMAL(16,4);			//价格
STORE_NUM			VARCHAR(10);			//库存量
DISCOUNT			VARCHAR(10);			//自付比例
REMARK			VARCHAR(1000);			//备注
AGRICULTURAL_DISCOUNT			VARCHAR(10);			//农保自付比例
DOSE_PERS			VARCHAR(100);			//单位剂量集合
SELF_DRUG			VARCHAR(1);			//自带药（西、中）N-非自带药 Y-自带药 Q-其它
ABSENT			VARCHAR(1);			//是否缺药标志【N：不缺药；Y：缺药】
FIRM_CODE			VARCHAR(20);			//厂商代码
FIRM_NAME_ABBR			VARCHAR(200);			//厂商简称
MANAGE_TYPE      VARCHAR(2);      //处理类型（1-新增 2-修改 3-删除） 必填
IMPFLAG   VARCHAR(2);     //接口是否处理（0-未处理 1-处理成功 2-处理失败）必填

建表语句：
-- Create table
create table drug.DRUG_DETAIL
(
  drug_code                   VARCHAR2(20) not null,
  drug_spec                   VARCHAR2(150) not null,
  drug_name                   VARCHAR2(150),
  dose_unit_code              VARCHAR2(20),
  dose_unit                   VARCHAR2(150),
  dose_per                    VARCHAR2(50),
  min_package_unit_code       VARCHAR2(20),
  min_package_unit            VARCHAR2(150),
  quantity_per_package        VARCHAR2(50),
  package_unit_code           VARCHAR2(20),
  package_unit                VARCHAR2(150),
  can_unpack                  VARCHAR2(1),
  available                   VARCHAR2(1),
  dose_unit_codes             VARCHAR2(300),
  dose_units                  VARCHAR2(500),
  medical_insurance_type      VARCHAR2(20),
  insurance_type_code         VARCHAR2(20),
  agricultural_insurance_type VARCHAR2(20),
  agri_insurance_type_code    VARCHAR2(20),
  price                       NUMBER(16,4),
  store_num                   VARCHAR2(10),
  discount                    VARCHAR2(10),
  remark                      VARCHAR2(1000),
  agricultural_discount       VARCHAR2(10),
  self_drug                   VARCHAR2(1),
  dose_pers                   VARCHAR2(100),
  absent                      VARCHAR2(1),
  firm_code                   VARCHAR2(20),
  firm_name_abbr              VARCHAR2(200)
)
tablespace HTBASE
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 128
    next 1
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints 
alter table drug.DRUG_DETAIL
  add constraint SQL11062112314194 primary key (DRUG_CODE, DRUG_SPEC)
  using index 
  tablespace HTBASE
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 128K
    next 1M
    minextents 1
    maxextents unlimited
  );

DRUG.DRUG_PRICE  药品价格表

DRUG_CODE			VARCHAR(20);			//药品代码 key
FIRM_CODE			VARCHAR(20);			//厂商代码 key
DRUG_SPEC			VARCHAR(150);			//药品规格 key
EFFECTIVE_TIME			VARCHAR(14);			//生效时间 key
EXPIRED_TIME			VARCHAR(14);			//过期时间
DRUG_NAME			VARCHAR(150);			//药品名称
FIRM_NAME_ABBR			VARCHAR(200);			//厂商简称
RETAIL_PRICE			DECIMAL(16,4);			//零售价格
AVAILABLE			VARCHAR(1);			//是否可用标志【N：不可用；Y：可用】
ACCOUNTING_ITEM_CODE			VARCHAR(20);			//会计科目代码
ACCOUNTING_ITEM			VARCHAR(150);			//会计科目
COST_CLASS_CODE			VARCHAR(20);			//病案首页费用类别代码
COST_CLASS			VARCHAR(150);			//病案首页费用类别【XY：西药；ZCY：中成药】
PACKAGE_SPEC			VARCHAR(50);			//包装规格
MANAGE_TYPE      VARCHAR(2);      //处理类型（1-新增 2-修改 3-删除） 必填
IMPFLAG   VARCHAR(2);     //接口是否处理（0-未处理 1-处理成功 2-处理失败）必填

-- Create table
create table drug.DRUG_PRICE
(
  firm_code            VARCHAR2(20) not null,
  drug_code            VARCHAR2(20) not null,
  drug_spec            VARCHAR2(150) not null,
  effective_time       VARCHAR2(14) not null,
  expired_time         VARCHAR2(14),
  drug_name            VARCHAR2(150),
  firm_name_abbr       VARCHAR2(200),
  retail_price         INTEGER,
  accounting_item_code VARCHAR2(20),
  accounting_item      VARCHAR2(100),
  cost_class_code      VARCHAR2(20),
  cost_class           VARCHAR2(100),
  available            VARCHAR2(1),
  package_spec         VARCHAR2(50)
)
tablespace HTBASE
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 192
    next 1
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints 
alter table drug.DRUG_PRICE
  add constraint SQL11062112314781 primary key (FIRM_CODE, DRUG_CODE, DRUG_SPEC, EFFECTIVE_TIME)
  using index 
  tablespace HTBASE
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 128K
    next 1M
    minextents 1
    maxextents unlimited
  );