if exists (select * from sysobjects where id = object_id(N'[dbo].[SP_IMP000_BA0000]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[SP_IMP000_BA0000] GO CREATE PROCEDURE [DBO].SP_IMP000_BA0000 @FLAG00 CHAR(1) AS -- MODIFICATION HISTORY -- Person Date Comments -- zhr 2007.06.07 当入院科室不等于出院科室,自动填写转科科别 -- zhr 2010.05.20 BAGD00 增加病案流水号=BA_BRZYXX.LSH000,此表改用这个字段作为关键字段。 -- zhr 2010.06.28 JFFS00 变量宽度改为40 -- zhr 2010.06.29 insert into BA_BAGD00 增加判断条件BAH000,ZYCS00 -- zhr 2011.12.23 病案系统传病案首页时需能识别医保中心,因此需要将jffs00进行转换 -- jlg 2012.01.26 修改对应新病案首页 -- jlg 2012.02.29 处理HIS导入时的诊断信息重复数据的问题 -- jlg 2012.12.05 如果现住址(XZZ000)、工作单位(GZDW00)为空,则取户口地址(JTDZ00) -- jlg 2012.12.06 修改诊断按诊断序号导入 -- jlg 2012.12.06 修改手术类别字段长度使得可以传入中文手术类别 -- jlg 2012.12.12 修改上次修改造成的诊断导不进去的问题 -- jlg 2012.12.12 还有手术类别未转成中文的问题,还有手术顺序的问题 -- jlg 2012.12.18 处理导入时诊断序号重复的问题 -- jlg 2017.04.06 增加BQQZQK(病情轻重情况)的处理 -- jlg 2017.04.20 处理BRNL00被错加一年的问题 -- jlg 2017.08.10 更精准计算BRNL00的问题 BA-20170810-001 DECLARE @LSH000 NUMERIC(12) --导入记录的流水号 DECLARE @MAXLSH INT --实际存放的流水号 DECLARE @DELLSH INT --要删除的记录的流水号 SELECT @MAXLSH = ISNULL(MAX(LSH000), 0)+1 FROM BA_BRZYXX ----------------------------------定义病人住院信息----------------------------------- DECLARE @CARDNO VARCHAR(20) --医保卡号 DECLARE @ZYLSH0 VARCHAR(16) --住院流水号 DECLARE @BAH000 VARCHAR(20) --病案号 DECLARE @ZYCS00 NUMERIC(2) --住院次数 DECLARE @ZYH000 VARCHAR(20) --住院号 DECLARE @BRXM00 VARCHAR(16) --病人姓名 DECLARE @BRXB00 VARCHAR(16) --病人性别 DECLARE @BRCSRQ DATETIME --病人出生日期 DECLARE @BRNL00 NUMERIC(6,3) --病人年龄 DECLARE @HYZK00 CHAR(6) --婚姻状况 DECLARE @ZY0000 CHAR(16) --职业 DECLARE @BRLY00 VARCHAR(18) --病人来源 DECLARE @CSSF00 CHAR(40) --出生省份 DECLARE @CSXS00 CHAR(40) --出生县市 DECLARE @MZ0000 CHAR(40) --民族 DECLARE @GJ0000 CHAR(30) --国籍 DECLARE @SFZH00 CHAR(20) --身份证号 DECLARE @GZDW00 VARCHAR(50) --工作单位 DECLARE @GZDH00 VARCHAR(20) --单位电话 DECLARE @GZYB00 CHAR(8) --工作邮编 DECLARE @JTDZ00 VARCHAR(50) --家庭地址 DECLARE @JTDH00 VARCHAR(20) --家庭电话 DECLARE @JTYB00 CHAR(8) --家庭邮编 DECLARE @LXRXM0 VARCHAR(16) --联系人姓名 DECLARE @LXRDZ0 VARCHAR(50) --联系人地址 DECLARE @LXRDH0 VARCHAR(20) --联系人电话 DECLARE @LXRGX0 CHAR(10) --联系人关系 DECLARE @ZDFS00 VARCHAR(10) --诊断方式 DECLARE @RYQK00 CHAR(8) --入院情况 DECLARE @RYRQ00 DATETIME --入院日期 DECLARE @RYSJ00 CHAR(8) --入院时间 DECLARE @RYKB00 NUMERIC(6) --入院科别 DECLARE @RYKBMC VARCHAR(20) --入院科别名称 DECLARE @RYBF00 CHAR(10) --入院病房 DECLARE @ZKKB00 CHAR(30) --转科科别 DECLARE @ZKKBMC VARCHAR(40) --转科科别名称 DECLARE @CYRQ00 DATETIME --出院日期 DECLARE @CYSJ00 CHAR(8) --出院时间 DECLARE @CYKB00 NUMERIC(6) --出院科别 DECLARE @CYKBMC VARCHAR(20) --出院科别名称 DECLARE @CYBF00 CHAR(10) --出院病房 DECLARE @ZYTS00 NUMERIC(5) --住院天数 DECLARE @QZRQ00 DATETIME --确诊日期 DECLARE @BLZD00 VARCHAR(100) --病理诊断 DECLARE @GMYW00 VARCHAR(80) --过敏药物 DECLARE @HBSAG0 CHAR(6) --HBSAG DECLARE @HCVAB0 CHAR(6) --HCV-AB DECLARE @HIVAB0 CHAR(6) --HIV-AB DECLARE @MZCYFH CHAR(8) --门诊与出院符合 DECLARE @RYCYFH CHAR(8) --入院与出院符合 DECLARE @SQSHFH CHAR(8) --术前术后符合 DECLARE @LCBLFH CHAR(8) --临床与病理符合 DECLARE @FSBLFH CHAR(8) --放射与病理符合 DECLARE @QJCS00 NUMERIC(2) --抢救次数 DECLARE @CGCS00 NUMERIC(2) --成功次数 DECLARE @BAZL00 CHAR(4) --病案质量 DECLARE @SFSJ00 CHAR(4) --是否尸检 DECLARE @DYBL00 CHAR(2) --手术、治疗、等为第一病例 DECLARE @SFSZ00 CHAR(4) --是否随诊 DECLARE @SZQX00 VARCHAR(10) --随诊期限 DECLARE @SJBL00 CHAR(2) --示教病历 DECLARE @XX0000 VARCHAR(6) --血型 DECLARE @RH0000 VARCHAR(6) --RH DECLARE @SXFY00 CHAR(4) --输血反应 DECLARE @HXB000 VARCHAR(15) --输血品种 红细胞 DECLARE @XXB000 NUMERIC(9,2) --输血品种 血小板 DECLARE @XJ0000 NUMERIC(9,2) --输血品种 血浆 DECLARE @QX0000 NUMERIC(9,2) --输血品种 全血 DECLARE @SXQT00 NUMERIC(9,2) --输血品种 其他 DECLARE @ZKRQ00 DATETIME --质控日期 DECLARE @BAZT00 CHAR(1) --病案状态 0借阅 1 DECLARE @SRRK00 CHAR(1) --输入入口 0卡片 1首页 DECLARE @LRRY00 NUMERIC(5) --录入人员 DECLARE @LRRYMC VARCHAR(40) --录入人员姓名 DECLARE @LRRQ00 DATETIME --录入日期 DECLARE @JFFS00 VARCHAR(40) --交费方式 DECLARE @ZJE000 NUMERIC(9,2) --总费用 DECLARE @BZ0000 VARCHAR(100) --备注 DECLARE @JKDAH0 varchar(30) --居民健康档案号 DECLARE @BRNLY0 numeric(5) --病人年龄月 DECLARE @BRNLR0 numeric(5) --病人年龄日 DECLARE @CSDS00 varchar(40) --出生地市 DECLARE @JGSF00 varchar(40) --籍贯省份 DECLARE @JGXS00 varchar(40) --籍贯县市 DECLARE @YECSTZ numeric(5) --新生儿出生体重(克) DECLARE @YERYTZ numeric(5) --新生儿入院体重(克) DECLARE @XZZ000 varchar(60) --现住址 DECLARE @XZZDH0 varchar(20) --现住址电话 DECLARE @XZZYB0 varchar(10) --现住址邮编 DECLARE @RYTJ00 varchar(30) --入院途径名称 DECLARE @BLZDBM VARCHAR(10) --病理诊断编码 DECLARE @BLH000 varchar(30) --病理号 DECLARE @SFYWGM VARCHAR(10) --是否药物过敏 DECLARE @LYFS00 varchar(50) --离院方式 DECLARE @ZYYLJG VARCHAR(50) --转院医疗机构 DECLARE @ZZYJH0 CHAR(2) --是否有出院31天内再住院计划 DECLARE @ZZYMD0 VARCHAR(50) --出院31天内再住院计划目的地 DECLARE @HMRYQD numeric(5) --颅脑损伤患者昏迷入院前天数 DECLARE @HMRYQH numeric(5) --颅脑损伤患者昏迷入院前小时数 DECLARE @HMRYQM numeric(5) --颅脑损伤患者昏迷入院前分钟数 DECLARE @HMRYHD numeric(5) --颅脑损伤患者昏迷入院后天数 DECLARE @HMRYHH numeric(5) --颅脑损伤患者昏迷入院后小时数 DECLARE @HMRYHM numeric(5) --颅脑损伤患者昏迷入院后分钟数 DECLARE @SSZDYY VARCHAR(200) --损伤、中毒外部原因 DECLARE @SSZDBM VARCHAR(50) --损伤、中毒外部原因疾病编码 DECLARE @BQQZQK VARCHAR(8) --病情轻重情况 1危 2重 3一般 ----------------------------------定义病人诊断信息----------------------------------- DECLARE @ZDXH00 NUMERIC(2) --诊断序号 DECLARE @NEWXH0 NUMERIC(5) --新诊断序号 DECLARE @ZDLB00 CHAR(1) --诊断类别 DECLARE @JBBM00 VARCHAR(10) --疾病编码 DECLARE @XHBM00 VARCHAR(10) --*编码 DECLARE @JBMC00 VARCHAR(50) --疾病名称 DECLARE @FZBM00 VARCHAR(10) --辅助编码 DECLARE @FZMC00 VARCHAR(50) --辅助名称 DECLARE @ZDRQ00 DATETIME --诊断日期 DECLARE @ZLXG00 VARCHAR(16) --治疗效果 DECLARE @SFYZ00 VARCHAR(8) --是否疑诊 DECLARE @M16800 VARCHAR(8) --168编码 DECLARE @RYBQ00 varchar(20) --入院病情(名称) ----------------------------------定义病人手术信息----------------------------------- DECLARE @SSXH00 NUMERIC(2) --手术序号 DECLARE @SSLB00 VARCHAR(4) --手术类别 1主手术 0副手术 DECLARE @SSM000 VARCHAR(10) --手术码 DECLARE @SSMC00 VARCHAR(50) --手术名称 DECLARE @SSRQ00 DATETIME --手术日期 DECLARE @SSSJ00 VARCHAR(8) --手术时间 DECLARE @SSZL00 VARCHAR(8) --手术种类 大、中、小手术 DECLARE @SSYS00 VARCHAR(30) --手术医师 DECLARE @SSYSMC VARCHAR(40) --手术医师名称 DECLARE @IYS000 VARCHAR(30) --I助医师 DECLARE @IYSMC0 VARCHAR(40) --I助医师名称 DECLARE @IIYS00 VARCHAR(30) --II助医师 DECLARE @IIYSMC VARCHAR(40) --II助医师名称 DECLARE @MZFS00 VARCHAR(40) --麻醉方式 DECLARE @QKYHDJ VARCHAR(8) --切口愈合等级 DECLARE @MZYS00 VARCHAR(30) --麻醉医师 DECLARE @MZYSMC VARCHAR(40) --麻醉医师名称 ----------------------------------定义病人接生信息----------------------------------- DECLARE @JSXH00 NUMERIC(2) --接生序号 DECLARE @YC0000 NUMERIC(2) --孕次 DECLARE @CC0000 NUMERIC(2) --产次 DECLARE @TS0000 VARCHAR(10) --胎数 DECLARE @FMFS00 VARCHAR(10) --分娩方式 DECLARE @HYPL00 VARCHAR(8) --会阴破裂 DECLARE @HYZS00 VARCHAR(8) --怀孕周数 DECLARE @SYTS00 NUMERIC(3) --剩余天数 DECLARE @YEQK00 VARCHAR(16) --婴儿情况 DECLARE @APGAR0 NUMERIC(2) --APGAR评分 DECLARE @JSYS00 VARCHAR(30) --接生医师 DECLARE @JSYSMC VARCHAR(40) --接生医师名称 DECLARE @YECSRQ DATETIME --婴儿出生日期 DECLARE @YETZ00 NUMERIC(4) --婴儿体重 DECLARE @YEXB00 VARCHAR(16) --婴儿性别 ----------------------------------定义病人费用信息----------------------------------- DECLARE @FYDM00 CHAR(6) --费用代码 DECLARE @FYMC00 VARCHAR(40) --费用名称 DECLARE @JE0000 NUMERIC(9,2) --费用金额 ----------------------------------定义病案归档信息----------------------------------- DECLARE @GDRQ00 DATETIME --归档日期 DECLARE @GDTS00 NUMERIC(2) --归档天数 DECLARE @GDRY00 NUMERIC(5) --归档人员 DECLARE @GDRYXM VARCHAR(16) --归档人员姓名 DECLARE @JSRY00 NUMERIC(5) --接收人员 DECLARE @JSRYXM VARCHAR(16) --接收人员姓名 ----------------------------------定义病案医生信息----------------------------------- DECLARE @KZR000 VARCHAR(30) --科主任 DECLARE @KZRMC0 VARCHAR(40) --科主任姓名 DECLARE @FZR000 VARCHAR(30) --副主任 DECLARE @FZRMC0 VARCHAR(40) --副主任姓名 DECLARE @ZZYS00 VARCHAR(30) --主治医师 DECLARE @ZZYSMC VARCHAR(40) --主治医师姓名 DECLARE @ZYYS00 VARCHAR(30) --住院医师 DECLARE @ZYYSMC VARCHAR(40) --住院医师姓名 DECLARE @JXYS00 VARCHAR(30) --进修医师 DECLARE @JXYSMC VARCHAR(40) --进修医师姓名 DECLARE @YJSYS0 VARCHAR(30) --研究生实习医师 DECLARE @YJSMC0 VARCHAR(40) --研究生实习医师姓名 DECLARE @SXYS00 VARCHAR(30) --实习医师 DECLARE @SXYSMC VARCHAR(40) --实习医师姓名 DECLARE @ZKYS00 VARCHAR(30) --质控医师 DECLARE @ZKYSMC VARCHAR(40) --质控医师姓名 DECLARE @ZKHS00 VARCHAR(30) --质控护士 DECLARE @ZKHSMC VARCHAR(40) --质控护士姓名 DECLARE @ZRHS00 varchar(30) --责任护士 DECLARE @ZRHSMC varchar(40) --责任护士名称 /*************************************首页信息**************************************/ --2011.12.23 zhanghr 病案系统传病案首页时需能识别医保中心,因此需要将jffs00进行转换 UPDATE IMP_BA_BRZYXX SET JFFS00=T1.JFFS00 FROM XT_JFFS00 T1 WHERE CHARINDEX(','+RTRIM(IMP_BA_BRZYXX.JFFS00)+',',','+RTRIM(T1.JFFS01)+',')>0 --2007.06.07 zhr 当入院科室不等于出院科室,自动填写转科科别 UPDATE IMP_BA_BRZYXX SET ZKKBMC=CYKBMC WHERE CYKBMC<>RYKBMC --修改病人住院基本信息中的部门编号等 UPDATE IMP_BA_BRZYXX SET RYKB00=T1.BMBH00,RYKBMC=RTRIM(RYKBMC) FROM VW_XT_ZYBM00 T1 WHERE RTRIM(IMP_BA_BRZYXX.RYKBMC)=RTRIM(T1.BMMC00) AND T1.SFYZ00='0' UPDATE IMP_BA_BRZYXX SET CYKB00=T1.BMBH00,CYKBMC=RTRIM(CYKBMC) FROM VW_XT_ZYBM00 T1 WHERE RTRIM(IMP_BA_BRZYXX.CYKBMC)=RTRIM(T1.BMMC00) AND T1.SFYZ00='0' UPDATE IMP_BA_BRZYXX SET ZKKB00=T1.BMBH00,ZKKBMC=RTRIM(ZKKBMC) FROM VW_XT_ZYBM00 T1 WHERE RTRIM(IMP_BA_BRZYXX.ZKKBMC)=RTRIM(T1.BMMC00) AND T1.SFYZ00='0' IF EXISTS (SELECT 1 FROM IMP_BA_BRZYXX) BEGIN IF NOT EXISTS(SELECT CYKBMC FROM IMP_BA_BRZYXX T1,VW_XT_ZYBM00 T2 WHERE RTRIM(T1.CYKBMC)=T2.BMMC00) BEGIN RAISERROR ('出院科别名称在字典中没有找到!请核对病人信息表中的出院科别是否与部门编码中一致!', 16, 1) RETURN(1) END END DECLARE BRZYXX_CURSOR CURSOR FOR SELECT LSH000,RTRIM(BAH000),ISNULL(NULLIF(ZYCS00,''),1),RTRIM(ZYH000),BRXM00,BRXB00, CONVERT(DATETIME,BRCSRQ,102),floor(datediff(DD,convert(DATETIME,BRCSRQ,102),CONVERT(DATETIME,RYRQ00,102)+1)/365.25),HYZK00,ZY0000,BRLY00,CSSF00, CSXS00,MZ0000,GJ0000,SFZH00,ISNULL(GZDW00,JTDZ00),GZDH00, GZYB00,JTDZ00,JTDH00,JTYB00,LXRXM0,LXRDZ0, LXRDH0,LXRGX0,ZDFS00,RYQK00,CONVERT(DATETIME,RYRQ00,102),RYSJ00, RYKB00,RYKBMC,RYBF00,ZKKB00,ZKKBMC,CONVERT(DATETIME,CYRQ00,102), CYSJ00,CYKB00,CYKBMC,CYBF00,ISNULL(NULLIF(DATEDIFF(DD,CONVERT(DATETIME,RYRQ00,102),CONVERT(DATETIME,CYRQ00,102)),0),1),CONVERT(DATETIME,QZRQ00,102), BLZD00,GMYW00,HBSAG0,HCVAB0,HIVAB0,MZCYFH, RYCYFH,SQSHFH,LCBLFH,FSBLFH,QJCS00,CGCS00, BAZL00,SFSJ00,DYBL00,SFSZ00,SZQX00,SJBL00, XX0000,RH0000,SXFY00,HXB000,XXB000,XJ0000, QX0000,SXQT00,CONVERT(DATETIME,ZKRQ00,102),BAZT00,SRRK00,LRRY00, LRRYMC,CONVERT(DATETIME,LRRQ00,102),JFFS00,ZJE000,BZ0000,CARDNO,ZYLSH0, JKDAH0,BRNLY0,BRNLR0,CSDS00,JGSF00,JGXS00,YECSTZ,YERYTZ,ISNULL(XZZ000,JTDZ00),XZZDH0,XZZYB0,RYTJ00, BLZDBM,BLH000,SFYWGM,LYFS00,ZYYLJG,ZZYJH0,ZZYMD0,HMRYQD,HMRYQH,HMRYQM,HMRYHD,HMRYHH,HMRYHM,SSZDYY,SSZDBM,BQQZQK FROM IMP_BA_BRZYXX OPEN BRZYXX_CURSOR FETCH NEXT FROM BRZYXX_CURSOR INTO @LSH000,@BAH000,@ZYCS00,@ZYH000,@BRXM00,@BRXB00, @BRCSRQ,@BRNL00,@HYZK00,@ZY0000,@BRLY00,@CSSF00, @CSXS00,@MZ0000,@GJ0000,@SFZH00,@GZDW00,@GZDH00, @GZYB00,@JTDZ00,@JTDH00,@JTYB00,@LXRXM0,@LXRDZ0, @LXRDH0,@LXRGX0,@ZDFS00,@RYQK00,@RYRQ00,@RYSJ00, @RYKB00,@RYKBMC,@RYBF00,@ZKKB00,@ZKKBMC,@CYRQ00, @CYSJ00,@CYKB00,@CYKBMC,@CYBF00,@ZYTS00,@QZRQ00, @BLZD00,@GMYW00,@HBSAG0,@HCVAB0,@HIVAB0,@MZCYFH, @RYCYFH,@SQSHFH,@LCBLFH,@FSBLFH,@QJCS00,@CGCS00, @BAZL00,@SFSJ00,@DYBL00,@SFSZ00,@SZQX00,@SJBL00, @XX0000,@RH0000,@SXFY00,@HXB000,@XXB000,@XJ0000, @QX0000,@SXQT00,@ZKRQ00,@BAZT00,@SRRK00,@LRRY00, @LRRYMC,@LRRQ00,@JFFS00,@ZJE000,@BZ0000,@CARDNO,@ZYLSH0, @JKDAH0,@BRNLY0,@BRNLR0,@CSDS00,@JGSF00,@JGXS00,@YECSTZ,@YERYTZ,@XZZ000,@XZZDH0,@XZZYB0,@RYTJ00, @BLZDBM,@BLH000,@SFYWGM,@LYFS00,@ZYYLJG,@ZZYJH0,@ZZYMD0,@HMRYQD,@HMRYQH,@HMRYQM,@HMRYHD,@HMRYHH,@HMRYHM,@SSZDYY,@SSZDBM,@BQQZQK WHILE (@@FETCH_STATUS=0) BEGIN --删除相同的病案记录 IF EXISTS(SELECT LSH000 FROM BA_BRZYXX WHERE ZYID00=RTRIM(@LSH000)) BEGIN IF @FLAG00='1' BEGIN SET @DELLSH=-1 SELECT @DELLSH=LSH000 FROM BA_BRZYXX WHERE ZYID00=RTRIM(@LSH000) DELETE FROM BA_BAGD00 WHERE BAH000=RTRIM(@BAH000) AND ZYCS00=(SELECT ZYCS00 FROM BA_BRZYXX WHERE ZYID00=RTRIM(@LSH000)) DELETE FROM BA_BAGD00 WHERE BALSH0=@DELLSH DELETE FROM BA_BRZYXX WHERE LSH000=@DELLSH --删除病人住院信息 DELETE FROM BA_BRZDXX WHERE LSH000=@DELLSH --删除病人诊断信息 DELETE FROM BA_BRSSXX WHERE LSH000=@DELLSH --删除病人手术信息 DELETE FROM BA_BRJSXX WHERE LSH000=@DELLSH --删除病人接生信息 DELETE FROM BA_BRFYXX WHERE LSH000=@DELLSH --删除病人费用信息 DELETE FROM BA_FYXX00 WHERE LSH000=@DELLSH --删除病人费用信息 DELETE FROM BA_BAYSXX WHERE LSH000=@DELLSH --删除医生信息 DELETE FROM BA_YSXX00 WHERE LSH000=@DELLSH --删除医生信息 END ELSE BEGIN IF EXISTS(SELECT LSH000 FROM BA_BRZYXX WHERE ZYID00=RTRIM(@LSH000)) BEGIN --DELETE FROM IMP_BA_BRZYXX WHERE ZYID00=RTRIM(@LSH000) FETCH BRZYXX_CURSOR INTO @LSH000,@BAH000,@ZYCS00,@ZYH000,@BRXM00,@BRXB00, @BRCSRQ,@BRNL00,@HYZK00,@ZY0000,@BRLY00,@CSSF00, @CSXS00,@MZ0000,@GJ0000,@SFZH00,@GZDW00,@GZDH00, @GZYB00,@JTDZ00,@JTDH00,@JTYB00,@LXRXM0,@LXRDZ0, @LXRDH0,@LXRGX0,@ZDFS00,@RYQK00,@RYRQ00,@RYSJ00, @RYKB00,@RYKBMC,@RYBF00,@ZKKB00,@ZKKBMC,@CYRQ00, @CYSJ00,@CYKB00,@CYKBMC,@CYBF00,@ZYTS00,@QZRQ00, @BLZD00,@GMYW00,@HBSAG0,@HCVAB0,@HIVAB0,@MZCYFH, @RYCYFH,@SQSHFH,@LCBLFH,@FSBLFH,@QJCS00,@CGCS00, @BAZL00,@SFSJ00,@DYBL00,@SFSZ00,@SZQX00,@SJBL00, @XX0000,@RH0000,@SXFY00,@HXB000,@XXB000,@XJ0000, @QX0000,@SXQT00,@ZKRQ00,@BAZT00,@SRRK00,@LRRY00, @LRRYMC,@LRRQ00,@JFFS00,@ZJE000,@BZ0000,@CARDNO,@ZYLSH0, @JKDAH0,@BRNLY0,@BRNLR0,@CSDS00,@JGSF00,@JGXS00,@YECSTZ,@YERYTZ,@XZZ000,@XZZDH0,@XZZYB0,@RYTJ00, @BLZDBM,@BLH000,@SFYWGM,@LYFS00,@ZYYLJG,@ZZYJH0,@ZZYMD0,@HMRYQD,@HMRYQH,@HMRYQM,@HMRYHD,@HMRYHH,@HMRYHM,@SSZDYY,@SSZDBM,@BQQZQK SELECT @MAXLSH=@MAXLSH+1 CONTINUE END END END ---------------------------------病人住院信息---------------------------------- --校正不完整的数据 SELECT @BAZT00='0' WHERE @BAZT00 IS NULL OR RTRIM(@BAZT00)='' --重新取住院次数 06.12.20,系统不再根据BAH000+ZYCS00来判断是否导入,而是根据ZYID00 select @ZYCS00=max(ZYCS00)+1 from ba_brzyxx where BAH000=@BAH000 SELECT @ZYCS00=1 WHERE @ZYCS00 IS NULL OR @ZYCS00=0 SELECT @BRXB00='男性' WHERE @BRXB00 IS NULL OR RTRIM(@BRXB00)='' SELECT @RYQK00='一般' WHERE @RYQK00 IS NULL OR RTRIM(@RYQK00)='' SELECT @LRRY00=YGBH00,@LRRYMC='超级用户' FROM XT_YGBM00 WHERE ZWXM00='超级用户' IF RTRIM(@CYKBMC)<>'' BEGIN INSERT INTO BA_BRZYXX( LSH000,BAH000,ZYCS00,ZYH000,BRXM00,BRXB00, BRCSRQ,BRNL00,HYZK00,ZY0000,BRLY00,CSSF00, CSXS00,MZ0000,GJ0000,SFZH00,GZDW00,GZDH00, GZYB00,JTDZ00,JTDH00,JTYB00,LXRXM0,LXRDZ0, LXRDH0,LXRGX0,ZDFS00,RYQK00,RYRQ00,RYSJ00, RYKB00,RYKBMC,RYBF00,ZKKB00,ZKKBMC,CYRQ00, CYSJ00,CYKB00,CYKBMC,CYBF00,ZYTS00,QZRQ00, BLZD00,GMYW00,HBSAG0,HCVAB0,HIVAB0,MZCYFH, RYCYFH,SQSHFH,LCBLFH,FSBLFH,QJCS00,CGCS00, BAZL00,SFSJ00,DYBL00,SFSZ00,SZQX00,SJBL00, XX0000,RH0000,SXFY00,HXB000,XXB000,XJ0000, QX0000,SXQT00,ZKRQ00,BAZT00,SRRK00,LRRY00, LRRYMC,LRRQ00,JFFS00,ZJE000,BZ0000,ZYID00,CARDNO,ZYLSH0, JKDAH0,BRNLY0,BRNLR0,CSDS00,JGSF00,JGXS00,YECSTZ,YERYTZ,XZZ000,XZZDH0,XZZYB0,RYTJ00, BLZDBM,BLH000,SFYWGM,LYFS00,ZYYLJG,ZZYJH0,ZZYMD0,HMRYQD,HMRYQH,HMRYQM,HMRYHD,HMRYHH,HMRYHM,SSZDYY,SSZDBM,BQQZQK ) VALUES( @MAXLSH,RTRIM(@BAH000),@ZYCS00,RTRIM(@ZYH000),RTRIM(@BRXM00),RTRIM(@BRXB00), @BRCSRQ,@BRNL00,RTRIM(@HYZK00),RTRIM(@ZY0000),RTRIM(@BRLY00),RTRIM(@CSSF00), RTRIM(@CSXS00),RTRIM(@MZ0000),RTRIM(@GJ0000),RTRIM(@SFZH00),RTRIM(@GZDW00),RTRIM(@GZDH00), RTRIM(@GZYB00),RTRIM(@JTDZ00),RTRIM(@JTDH00),RTRIM(@JTYB00),RTRIM(@LXRXM0),RTRIM(@LXRDZ0), RTRIM(@LXRDH0),RTRIM(@LXRGX0),RTRIM(@ZDFS00),RTRIM(@RYQK00),@RYRQ00,RTRIM(@RYSJ00), @RYKB00,RTRIM(@RYKBMC),RTRIM(@RYBF00),RTRIM(@ZKKB00),RTRIM(@ZKKBMC),@CYRQ00, RTRIM(@CYSJ00),RTRIM(@CYKB00),RTRIM(@CYKBMC),RTRIM(@CYBF00),@ZYTS00,@QZRQ00, RTRIM(@BLZD00),RTRIM(@GMYW00),RTRIM(@HBSAG0),RTRIM(@HCVAB0),RTRIM(@HIVAB0),RTRIM(@MZCYFH), RTRIM(@RYCYFH),RTRIM(@SQSHFH),RTRIM(@LCBLFH),RTRIM(@FSBLFH),@QJCS00,@CGCS00, RTRIM(@BAZL00),RTRIM(@SFSJ00),RTRIM(@DYBL00),RTRIM(@SFSZ00),RTRIM(@SZQX00),RTRIM(@SJBL00), RTRIM(@XX0000),RTRIM(@RH0000),RTRIM(@SXFY00),RTRIM(@HXB000),RTRIM(@XXB000),RTRIM(@XJ0000), RTRIM(@QX0000),RTRIM(@SXQT00),@ZKRQ00,RTRIM(@BAZT00),RTRIM(@SRRK00),RTRIM(@LRRY00), RTRIM(@LRRYMC),@LRRQ00,RTRIM(@JFFS00),@ZJE000,RTRIM(@BZ0000),@LSH000,@CARDNO,@ZYLSH0, RTRIM(@JKDAH0),@BRNLY0,@BRNLR0,RTRIM(@CSDS00),RTRIM(@JGSF00),RTRIM(@JGXS00),@YECSTZ,@YERYTZ,RTRIM(@XZZ000),RTRIM(@XZZDH0),RTRIM(@XZZYB0),RTRIM(@RYTJ00), RTRIM(@BLZDBM),RTRIM(@BLH000),RTRIM(@SFYWGM),RTRIM(@LYFS00),RTRIM(@ZYYLJG),RTRIM(@ZZYJH0),RTRIM(@ZZYMD0),@HMRYQD,@HMRYQH,@HMRYQM,@HMRYHD,@HMRYHH,@HMRYHM, RTRIM(@SSZDYY),RTRIM(@SSZDBM),RTRIM(@BQQZQK) ) ---------------------------------病人归档信息---------------------------------- IF NOT EXISTS(SELECT LSH000 FROM BA_BAGD00 WHERE BALSH0=@MAXLSH) and NOT EXISTS(SELECT LSH000 FROM BA_BAGD00 WHERE BAH000=RTRIM(@BAH000) AND ZYCS00=RTRIM(@ZYCS00)) BEGIN INSERT INTO BA_BAGD00(ZYH000,BMBH00,BMMC00,BRXM00,CYRQ00,BAH000,ZYCS00,BALSH0) VALUES(@ZYH000,@CYKB00,@CYKBMC,@BRXM00,@CYRQ00,@BAH000,@ZYCS00,@MAXLSH) END ---------------------------------病人诊断信息---------------------------------- DECLARE BRZDXX_CURSOR CURSOR FOR SELECT distinct ZDLB00,ZDXH00,JBBM00,XHBM00,JBMC00,FZBM00,FZMC00, CONVERT(DATETIME,ZDRQ00,102) ZDRQ00,ZLXG00,SFYZ00,M16800,RYBQ00 FROM IMP_BA_BRZDXX WHERE LSH000=@LSH000 and JBBM00<>'0' order by ZDXH00,ZDLB00 OPEN BRZDXX_CURSOR FETCH BRZDXX_CURSOR INTO @ZDLB00,@ZDXH00,@JBBM00,@XHBM00,@JBMC00,@FZBM00,@FZMC00,@ZDRQ00,@ZLXG00,@SFYZ00,@M16800,@RYBQ00 SET @NEWXH0=1 WHILE (@@FETCH_STATUS=0) BEGIN INSERT INTO BA_BRZDXX( LSH000,ZDXH00,ZDLB00,JBBM00,XHBM00,JBMC00, FZBM00,FZMC00,ZDRQ00,ZLXG00,SFYZ00,M16800,RYBQ00) VALUES( @MAXLSH,@NEWXH0,ISNULL(@ZDLB00,4),ISNULL(@JBBM00,''),@XHBM00,ISNULL(@JBMC00,''), @FZBM00,@FZMC00,@ZDRQ00,@ZLXG00,@SFYZ00,@M16800,@RYBQ00 ) SET @NEWXH0=@NEWXH0+1 FETCH BRZDXX_CURSOR INTO @ZDLB00,@ZDXH00,@JBBM00,@XHBM00,@JBMC00,@FZBM00,@FZMC00,@ZDRQ00,@ZLXG00,@SFYZ00,@M16800,@RYBQ00 END CLOSE BRZDXX_CURSOR DEALLOCATE BRZDXX_CURSOR ---------------------------------病人手术信息---------------------------------- DECLARE BRSSXX_CURSOR CURSOR FOR SELECT SSLB00,SSM000,SSMC00,CONVERT(DATETIME,SSRQ00,102),SSSJ00,SSZL00, SSYS00,SSYSMC,IYS000,IYSMC0,IIYS00,IIYSMC, MZFS00,QKYHDJ,MZYS00,MZYSMC FROM IMP_BA_BRSSXX WHERE LSH000=@LSH000 order by SSXH00 OPEN BRSSXX_CURSOR FETCH BRSSXX_CURSOR INTO @SSLB00,@SSM000,@SSMC00,@SSRQ00,@SSSJ00,@SSZL00, @SSYS00,@SSYSMC,@IYS000,@IYSMC0,@IIYS00,@IIYSMC, @MZFS00,@QKYHDJ,@MZYS00,@MZYSMC SET @SSXH00=1 WHILE (@@FETCH_STATUS=0) BEGIN --处理手术信息中的医生信息 EXEC SP_TRUNC0_YS0000 @MAXLSH,@SSYSMC,'B',@SSXH00,@SSYS00,@SSYSMC EXEC SP_TRUNC0_YS0000 @MAXLSH,@IYSMC0,'C',@SSXH00,@IYS000,@IYSMC0 EXEC SP_TRUNC0_YS0000 @MAXLSH,@SSYSMC,'D',@SSXH00,@IIYS00,@IIYSMC EXEC SP_TRUNC0_YS0000 @MAXLSH,@SSYSMC,'E',@SSXH00,@MZYS00,@MZYSMC --转换手术类别为汉字 SELECT @SSLB00 = (CASE WHEN RTRIM(@SSLB00) = '1' THEN '主' WHEN RTRIM(@SSLB00) = '0' THEN '辅' WHEN RTRIM(@SSLB00) = '2' THEN '辅' WHEN RTRIM(@SSLB00) = '' THEN '主' ELSE ISNULL(@SSLB00,'主') END) --插入手术信息 INSERT INTO BA_BRSSXX( LSH000,SSXH00,SSLB00,SSM000,SSMC00,SSRQ00, SSSJ00,SSZL00,SSYS00,SSYSMC,IYS000,IYSMC0, IIYS00,IIYSMC,MZFS00,QKYHDJ,MZYS00,MZYSMC,SQSHFH) VALUES( @MAXLSH,@SSXH00,@SSLB00,@SSM000,@SSMC00,@SSRQ00, @SSSJ00,@SSZL00,@SSYS00,@SSYSMC,@IYS000,@IYSMC0, @IIYS00,@IIYSMC,@MZFS00,@QKYHDJ,@MZYS00,@MZYSMC,@SQSHFH ) SET @SSXH00=@SSXH00+1 FETCH BRSSXX_CURSOR INTO @SSLB00,@SSM000,@SSMC00,@SSRQ00,@SSSJ00,@SSZL00, @SSYS00,@SSYSMC,@IYS000,@IYSMC0,@IIYS00,@IIYSMC, @MZFS00,@QKYHDJ,@MZYS00,@MZYSMC END CLOSE BRSSXX_CURSOR DEALLOCATE BRSSXX_CURSOR ---------------------------------病人接生信息---------------------------------- DECLARE BRJSXX_CURSOR CURSOR FOR SELECT YC0000,CC0000,TS0000,FMFS00,HYPL00,HYZS00, SYTS00,YEQK00,APGAR0,JSYS00,JSYSMC,CONVERT(DATETIME,YECSRQ,102), YETZ00,YEXB00 FROM IMP_BA_BRJSXX WHERE LSH000=@LSH000 OPEN BRJSXX_CURSOR FETCH BRJSXX_CURSOR INTO @YC0000,@CC0000,@TS0000,@FMFS00,@HYPL00,@HYZS00, @SYTS00,@YEQK00,@APGAR0,@JSYS00,@JSYSMC,@YECSRQ, @YETZ00,@YEXB00 SET @JSXH00=1 WHILE (@@FETCH_STATUS=0) BEGIN --处理接生信息中的医生信息 EXEC SP_TRUNC0_YS0000 @MAXLSH,@JSYSMC,'F',@SSXH00,@JSYS00,@JSYSMC --插入手术信息 INSERT INTO BA_BRJSXX( LSH000,JSXH00,YC0000,CC0000,TS0000,FMFS00, HYPL00,HYZS00,SYTS00,YEQK00,APGAR0,JSYS00, JSYSMC,YECSRQ,YETZ00,YEXB00 ) VALUES( @MAXLSH,@JSXH00,@YC0000,@CC0000,@TS0000,isNull(@FMFS00,''), @HYPL00,@HYZS00,@SYTS00,@YEQK00,@APGAR0,@JSYS00, @JSYSMC,@YECSRQ,@YETZ00,@YEXB00 ) SET @JSXH00=@JSXH00+1 FETCH BRJSXX_CURSOR INTO @YC0000,@CC0000,@TS0000,@FMFS00,@HYPL00,@HYZS00, @SYTS00,@YEQK00,@APGAR0,@JSYS00,@JSYSMC,@YECSRQ, @YETZ00,@YEXB00 END CLOSE BRJSXX_CURSOR DEALLOCATE BRJSXX_CURSOR ---------------------------------病案人员用信息---------------------------------- DECLARE YSXX00_CURSOR CURSOR FOR SELECT KZR000,KZRMC0,FZR000,FZRMC0,ZZYS00,ZZYSMC, ZYYS00,ZYYSMC,JXYS00,JXYSMC,YJSYS0,YJSMC0, SXYS00,SXYSMC,ZKYS00,ZKYSMC,ZKHS00,ZKHSMC,ZRHS00,ZRHSMC FROM IMP_BA_YSXX00 WHERE LSH000=@LSH000 OPEN YSXX00_CURSOR FETCH YSXX00_CURSOR INTO @KZR000,@KZRMC0,@FZR000,@FZRMC0,@ZZYS00,@ZZYSMC, @ZYYS00,@ZYYSMC,@JXYS00,@JXYSMC,@YJSYS0,@YJSMC0, @SXYS00,@SXYSMC,@ZKYS00,@ZKYSMC,@ZKHS00,@ZKHSMC,@ZRHS00,@ZRHSMC WHILE (@@FETCH_STATUS=0) BEGIN --处理手术信息中的医生信息 EXEC SP_TRUNC0_YS0000 @MAXLSH,@KZRMC0,'B',1,@KZR000,@KZRMC0 EXEC SP_TRUNC0_YS0000 @MAXLSH,@FZRMC0,'C',1,@FZR000,@FZRMC0 EXEC SP_TRUNC0_YS0000 @MAXLSH,@ZZYSMC,'D',1,@ZZYS00,@ZZYSMC EXEC SP_TRUNC0_YS0000 @MAXLSH,@ZYYSMC,'E',1,@ZYYS00,@ZYYSMC EXEC SP_TRUNC0_YS0000 @MAXLSH,@JXYSMC,'E',1,@JXYS00,@JXYSMC EXEC SP_TRUNC0_YS0000 @MAXLSH,@YJSMC0,'E',1,@YJSYS0,@YJSMC0 EXEC SP_TRUNC0_YS0000 @MAXLSH,@SXYSMC,'E',1,@SXYS00,@SXYSMC EXEC SP_TRUNC0_YS0000 @MAXLSH,@ZKYSMC,'E',1,@ZKYS00,@ZKYSMC EXEC SP_TRUNC0_YS0000 @MAXLSH,@ZKHSMC,'E',1,@ZKHS00,@ZKHSMC EXEC SP_TRUNC0_YS0000 @MAXLSH,@ZKHSMC,'E',1,@ZRHS00,@ZRHSMC --插入病案医生信息 INSERT INTO BA_YSXX00( LSH000, KZR000,KZRMC0,FZR000,FZRMC0,ZZYS00,ZZYSMC, ZYYS00,ZYYSMC,JXYS00,JXYSMC,YJSYS0,YJSMC0, SXYS00,SXYSMC,ZKYS00,ZKYSMC,ZKHS00,ZKHSMC,ZRHS00,ZRHSMC) VALUES( @MAXLSH, @KZR000,@KZRMC0,@FZR000,@FZRMC0,@ZZYS00,@ZZYSMC, @ZYYS00,@ZYYSMC,@JXYS00,@JXYSMC,@YJSYS0,@YJSMC0, @SXYS00,@SXYSMC,@ZKYS00,@ZKYSMC,@ZKHS00,@ZKHSMC,@ZRHS00,@ZRHSMC ) FETCH YSXX00_CURSOR INTO @KZR000,@KZRMC0,@FZR000,@FZRMC0,@ZZYS00,@ZZYSMC, @ZYYS00,@ZYYSMC,@JXYS00,@JXYSMC,@YJSYS0,@YJSMC0, @SXYS00,@SXYSMC,@ZKYS00,@ZKYSMC,@ZKHS00,@ZKHSMC,@ZRHS00,@ZRHSMC END CLOSE YSXX00_CURSOR DEALLOCATE YSXX00_CURSOR ---------------------------------病人费用信息---------------------------------- DECLARE FYXX00_CURSOR CURSOR FOR SELECT FYDM00,FYMC00,JE0000 FROM IMP_BA_BRFYXX WHERE LSH000=@LSH000 OPEN FYXX00_CURSOR FETCH NEXT FROM FYXX00_CURSOR INTO @FYDM00,@FYMC00,@JE0000 WHILE (@@FETCH_STATUS=0) BEGIN INSERT INTO BA_BRFYXX(LSH000,FYDM00,FYMC00,JFFS00,JE0000) VALUES(@MAXLSH,@FYDM00,@FYMC00,@JFFS00,@JE0000) FETCH NEXT FROM FYXX00_CURSOR INTO @FYDM00,@FYMC00,@JE0000 END CLOSE FYXX00_CURSOR DEALLOCATE FYXX00_CURSOR SELECT @MAXLSH=@MAXLSH+1 END FETCH NEXT FROM BRZYXX_CURSOR INTO @LSH000,@BAH000,@ZYCS00,@ZYH000,@BRXM00,@BRXB00, @BRCSRQ,@BRNL00,@HYZK00,@ZY0000,@BRLY00,@CSSF00, @CSXS00,@MZ0000,@GJ0000,@SFZH00,@GZDW00,@GZDH00, @GZYB00,@JTDZ00,@JTDH00,@JTYB00,@LXRXM0,@LXRDZ0, @LXRDH0,@LXRGX0,@ZDFS00,@RYQK00,@RYRQ00,@RYSJ00, @RYKB00,@RYKBMC,@RYBF00,@ZKKB00,@ZKKBMC,@CYRQ00, @CYSJ00,@CYKB00,@CYKBMC,@CYBF00,@ZYTS00,@QZRQ00, @BLZD00,@GMYW00,@HBSAG0,@HCVAB0,@HIVAB0,@MZCYFH, @RYCYFH,@SQSHFH,@LCBLFH,@FSBLFH,@QJCS00,@CGCS00, @BAZL00,@SFSJ00,@DYBL00,@SFSZ00,@SZQX00,@SJBL00, @XX0000,@RH0000,@SXFY00,@HXB000,@XXB000,@XJ0000, @QX0000,@SXQT00,@ZKRQ00,@BAZT00,@SRRK00,@LRRY00, @LRRYMC,@LRRQ00,@JFFS00,@ZJE000,@BZ0000,@CARDNO,@ZYLSH0, @JKDAH0,@BRNLY0,@BRNLR0,@CSDS00,@JGSF00,@JGXS00,@YECSTZ,@YERYTZ,@XZZ000,@XZZDH0,@XZZYB0,@RYTJ00, @BLZDBM,@BLH000,@SFYWGM,@LYFS00,@ZYYLJG,@ZZYJH0,@ZZYMD0,@HMRYQD,@HMRYQH,@HMRYQM,@HMRYHD,@HMRYHH,@HMRYHM,@SSZDYY,@SSZDBM,@BQQZQK END CLOSE BRZYXX_CURSOR DEALLOCATE BRZYXX_CURSOR GO SET QUOTED_IDENTIFIER OFF SET ANSI_NULLS ON GO