diff --git "a/\345\271\263\345\217\260\347\255\233\346\237\245\347\273\274\345\220\210\347\273\237\350\256\241SQL" "b/\345\271\263\345\217\260\347\255\233\346\237\245\347\273\274\345\220\210\347\273\237\350\256\241SQL" new file mode 100644 index 0000000000000000000000000000000000000000..a479b7ab56b35736ff43ac0f384abfa7dae79962 --- /dev/null +++ "b/\345\271\263\345\217\260\347\255\233\346\237\245\347\273\274\345\220\210\347\273\237\350\256\241SQL" @@ -0,0 +1,3077 @@ +-- ----------------------------------------平台筛查综合统计SQL------------------------------------------------------- + + +-- 做血检的人次统计 +SELECT + rel11.医联体名称 医联体名称, + (IFNULL( 实际血清检测人次, 0 ) + IFNULL( 计划血清检测人次, 0 )) 血清检测总人次, + IFNULL( 计划血清检测人次, 0 ) 计划血清检测人次, + IFNULL( 实际血清检测人次, 0 ) 实际血清检测人次 +FROM + ( + SELECT + 医联体编号, + 医联体名称, + count( * ) 计划血清检测人次 + FROM + ( + SELECT + p.id 患者id, + rel2.number 医联体编号, + rel2.`name` 医联体名称, + rel1.step 计划随访调查进度, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 随访状态, + rel1.content_type 计划随访内容, + rel1.`status` 审核状态 +FROM + tb_patient p -- 随访状态为继续随访,计划随访内容包含血清检查 + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%b%' ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + ) rel +GROUP BY + 医联体名称 +ORDER BY + 计划血清检测人次 DESC + ) rel11 + LEFT JOIN ( + SELECT + 医联体编号, + 医联体名称, + count( * ) 实际血清检测人次 + FROM + ( + SELECT + p.id 患者id, + rel1.number 医联体编号, + rel1.`name` 医联体名称, + rel2.step 实验室检查调查进度, + rel2.g17 'G-17', + rel2.pg1 'PG-Ⅰ', + rel2.pg2 'PG-Ⅱ', + CASE + rel2.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, + rel2.`status` 审核状态 +FROM + tb_patient AS p + LEFT JOIN ( SELECT `name`, number FROM tb_hosp ) rel1 ON rel1.number = p.hosp_number + LEFT JOIN ( SELECT patient_id, step, g17, pg1, pg2, igg, `status` FROM tb_lab_inspect ) rel2 ON rel2.patient_id = p.id +WHERE + rel2.`status` NOT IN ( 0, 5 ) + ) rel +GROUP BY + 医联体名称 + ) rel22 ON rel11.医联体编号 = rel22.医联体编号 + + +-- 统计每个医联体下计划随访需要做血清检测的人次 +SELECT + 医联体名称, + count( * ) 计划血清检测人次 +FROM + ( + SELECT + p.id 患者id, + rel2.number 医联体编号, + rel2.`name` 医联体名称, + rel1.step 计划随访调查进度, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 随访状态, + rel1.content_type 计划随访内容, + rel1.`status` 审核状态 +FROM + tb_patient p + -- 随访状态为继续随访,计划随访内容包含血清检查 + RIGHT JOIN (SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%b%' ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + ) rel +GROUP BY + 医联体名称 +ORDER BY + 计划血清检测人次 DESC + + + +-- 实际已做过血清检测的患者人次 +SELECT + 医联体名称, + count( * ) 血清检测人次 +FROM + ( + SELECT + p.id 患者id, + rel1.number 医联体编号, + rel1.`name` 医联体名称, + rel2.step 实验室检查调查进度, + rel2.g17 'G-17', + rel2.pg1 'PG-Ⅰ', + rel2.pg2 'PG-Ⅱ', + CASE + rel2.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, + rel2.`status` 审核状态 +FROM + tb_patient AS p + LEFT JOIN ( SELECT `name`, number FROM tb_hosp ) rel1 ON rel1.number = p.hosp_number + LEFT JOIN ( SELECT patient_id, step, g17, pg1, pg2, igg, `status` FROM tb_lab_inspect ) rel2 ON rel2.patient_id = p.id +WHERE + rel2.`status` <> 0 and rel2.`status` <> 5 + ) rel +GROUP BY + 医联体名称 +ORDER BY + 血清检测人次 DESC + + +-- 血检总人次统计 +SELECT + ( IFNULL( 实际血清检测总人次, 0 ) + IFNULL( 计划血清检测总人次, 0 ) ) 血清检测总人次, + IFNULL( rel11.计划血清检测总人次, 0 ) 计划血清检测总人次, + IFNULL( rel22.实际血清检测总人次, 0 ) 实际血清检测总人次, + IFNULL( rel33.HP抗体(IGG)检测阳性总人次, 0 ) HP抗体(IGG)检测阳性总人次 +FROM + ( + SELECT + count( * ) 计划血清检测总人次 + FROM + ( + SELECT + p.id 患者id, + rel2.number 医联体编号, + rel2.`name` 医联体名称, + rel1.step 计划随访调查进度, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 随访状态, + rel1.content_type 计划随访内容, + rel1.`status` 审核状态 +FROM + tb_patient p -- 随访状态为继续随访,计划随访内容包含血清检查 + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%b%' ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + ) rel + ) rel11, + ( + SELECT + count( * ) 实际血清检测总人次 + FROM + ( + SELECT + p.id 患者id, + rel1.number 医联体编号, + rel1.`name` 医联体名称, + rel2.step 实验室检查调查进度, + rel2.g17 'G-17', + rel2.pg1 'PG-Ⅰ', + rel2.pg2 'PG-Ⅱ', + CASE + rel2.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, + rel2.`status` 审核状态 +FROM + tb_patient AS p + LEFT JOIN ( SELECT `name`, number FROM tb_hosp ) rel1 ON rel1.number = p.hosp_number + LEFT JOIN ( SELECT patient_id, step, g17, pg1, pg2, igg, `status` FROM tb_lab_inspect ) rel2 ON rel2.patient_id = p.id +WHERE + rel2.`status` NOT IN ( 0, 5 ) + ) rel + ) rel22, + ( + SELECT + count( * ) HP抗体(IGG)检测阳性总人次 + FROM + ( + SELECT + p.id 患者id, + rel1.number 医联体编号, + rel1.`name` 医联体名称, + rel2.step 实验室检查调查进度, + rel2.g17 'G-17', + rel2.pg1 'PG-Ⅰ', + rel2.pg2 'PG-Ⅱ', + CASE + rel2.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, + rel2.`status` 审核状态 +FROM + tb_patient AS p + LEFT JOIN ( SELECT `name`, number FROM tb_hosp ) rel1 ON rel1.number = p.hosp_number + RIGHT JOIN ( SELECT patient_id, step, g17, pg1, pg2, igg, `status` FROM tb_lab_inspect WHERE `status` NOT IN ( 0, 5 ) ) rel2 ON rel2.patient_id = p.id + ) rel +WHERE + rel.HP抗体(IGG)检测 = '阳性' + ) rel33 + + + +-- HP抗体(IGG)检测阳性人次 +SELECT + count( * ) HP抗体(IGG)检测阳性人次 +FROM + ( + SELECT + p.id 患者id, + rel1.number 医联体编号, + rel1.`name` 医联体名称, + rel2.step 实验室检查调查进度, + rel2.g17 'G-17', + rel2.pg1 'PG-Ⅰ', + rel2.pg2 'PG-Ⅱ', + CASE + rel2.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, + rel2.`status` 审核状态 +FROM + tb_patient AS p + LEFT JOIN ( SELECT `name`, number FROM tb_hosp ) rel1 ON rel1.number = p.hosp_number + RIGHT JOIN ( SELECT patient_id, step, g17, pg1, pg2, igg, `status` FROM tb_lab_inspect where `status` NOT IN ( 0, 5 )) rel2 ON rel2.patient_id = p.id + ) rel +WHERE + rel.HP抗体(IGG)检测 = '阳性' + + +-- 胃癌患病风险等级评估统计 +SELECT + 胃癌患病风险等级, + count( * ) 患者总人次 +FROM + ( + SELECT + p.id 患者id, + rel1.score 胃癌患病风险评分, + CASE + rel1.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END 胃癌患病风险等级 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, score, grade FROM tb_risk_assess ) rel1 ON rel1.patient_id = p.id + ) rel +GROUP BY + 胃癌患病风险等级 + + +-- 胃镜检查人次统计 +SELECT + ( IFNULL( 实际胃镜检查总人次, 0 ) + IFNULL( 计划胃镜检查总人次, 0 ) ) 胃镜检查总人次, + IFNULL( rel11.计划胃镜检查总人次, 0 ) 计划胃镜检查总人次, + IFNULL( rel22.实际胃镜检查总人次, 0 ) 实际胃镜检查总人次, + IFNULL( rel22.胃镜精查总人次, 0 ) 胃镜精查总人次 +FROM + ( + SELECT + count( * ) 计划胃镜检查总人次 + FROM + ( + SELECT + p.id 患者id, + rel1.step 计划随访调查进度, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 随访状态, + rel1.content_type 随访内容 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%a%' ) rel1 ON rel1.patient_id = p.id + ) rel + ) rel11, + ( + SELECT + count( * ) 实际胃镜检查总人次, + count( 胃镜精查方式 <> '[]' OR NULL ) 胃镜精查总人次 + FROM + ( + SELECT + p.id 患者id, + rel1.step 胃镜检查调查进度, + CASE + rel1.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '' + END 是否胃镜检查, + rel1.inspect_way 胃镜检查方式, + CASE + rel1.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END 胃镜检查结果, + rel1.precise_way 胃镜精查方式, +CASE + + WHEN rel1.diagnose_result = 1 THEN + '异常' + WHEN rel1.diagnose_result = 2 THEN + '未见明显异常' ELSE '' + END 最终诊断结果, + rel1.diagnose_info 最终诊断详情, + rel1.STATUS 审核状态 +FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + inspect_way, + precise_way, + capsule, + diagnose_result, + diagnose_info, + is_inspect, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + ) rel1 ON rel1.patient_id = p.id + ) rel + ) rel22 + + +-- 随访计划中需要做胃镜检查的患者人次统计 +SELECT + p.id 患者id, + rel1.step 计划随访调查进度, +CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 随访状态, + rel1.content_type 随访内容 +FROM + tb_patient p + -- 随访状态为继续随访,计划随访内容包含胃镜检查 + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%a%' ) rel1 ON rel1.patient_id = p.id + + +-- 实际已做过胃镜检查的患者人次 +SELECT + p.id 患者id, + rel1.step 胃镜检查调查进度, +CASE + rel1.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '' + END 是否胃镜检查, + rel1.inspect_way 胃镜检查方式, +CASE + rel1.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END 胃镜检查结果, + rel1.precise_way 胃镜精查方式, +CASE + + WHEN rel1.diagnose_result = 1 THEN + '异常' + WHEN rel1.diagnose_result = 2 THEN + '未见明显异常' ELSE '' + END 最终诊断结果, + rel1.diagnose_info 最终诊断详情, + rel1.STATUS 审核状态 +FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + inspect_way, + precise_way, + capsule, + diagnose_result, + diagnose_info, + is_inspect, + `status` + FROM + tb_gastro_inspect + WHERE + -- 是否进行胃镜检查 + is_inspect = 1 + -- 状态不能是待录入(暂存)0-待录入;5-待提交 + AND `status` NOT IN ( 0, 5 ) + ) rel1 ON rel1.patient_id = p.id + + + +-- 实际胃镜精查人次 +SELECT + p.id 患者id, + rel1.step 胃镜检查调查进度, +CASE + rel1.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '' + END 是否胃镜检查, + rel1.inspect_way 胃镜检查方式, +CASE + rel1.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END 胃镜检查结果, + rel1.precise_way 胃镜精查方式, +CASE + + WHEN rel1.diagnose_result = 1 THEN + '异常' + WHEN rel1.diagnose_result = 2 THEN + '未见明显异常' ELSE '' + END 最终诊断结果, + rel1.diagnose_info 最终诊断详情, + rel1.STATUS 审核状态 +FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE-- 是否进行胃镜检查 + is_inspect = 1 -- 状态不能是待录入(暂存)0-待录入;5-待提交 + + AND `status` NOT IN ( 0, 5 ) + AND precise_way IS NOT NULL + AND precise_way <> '[]' + ) rel1 ON rel1.patient_id = p.id + + + +-- 胃镜精查异常人次 +SELECT + p.id patientId, + rel1.step gastroStep, + rel1.is_inspect isGastro, + rel1.inspect_way gastroWay, + rel1.capsule gastroResult, + rel1.precise_way gastroDetailWay, + rel1.diagnose_result gastroDetailResult, + rel1.diagnose_info gastroDetailInfo, + rel1.`status` auditStatus +FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + -- 是否进行胃镜检查 + is_inspect = 1 + -- 状态不能是待录入(暂存)0-待录入;5-待提交 + AND `status` NOT IN ( 0, 5 ) + -- 胃镜精查异常 + and diagnose_result = 1 + ) rel1 ON rel1.patient_id = p.id + + +-- "a":1 食管粘膜上皮内瘤变 +-- "b":1 早期食管癌 +-- "c":1 进展期食管癌 +-- "d":1 Barret食管 +-- "e":1 反流性食管炎 +-- "f":1 胃粘膜上皮内瘤变 +-- "g":1 早期胃癌 +-- "h":1 进展期胃癌 +-- "i":1 萎缩性胃炎 +-- "j":1 胃溃疡 +-- "k":1 胃息肉 +-- "l":1 非萎缩性胃炎 +-- "m":1 十二指肠球部溃疡 +-- "n":1 其它病变 + +-- 胃镜检查诊断结果统计 +SELECT + count( gastroDetailInfo LIKE '%"a":1%' OR NULL ) AS 食管粘膜上皮内瘤变, + count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) AS 早期食管癌, + count( gastroDetailInfo LIKE '%"c":1%' OR NULL ) AS 进展期食管癌, + count( gastroDetailInfo LIKE '%"d":1%' OR NULL ) AS Barret食管, + count( gastroDetailInfo LIKE '%"e":1%' OR NULL ) AS 反流性食管炎, + count( gastroDetailInfo LIKE '%"f":1%' OR NULL ) AS 胃粘膜上皮内瘤变, + count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) AS 早期胃癌, + count( gastroDetailInfo LIKE '%"h":1%' OR NULL ) AS 进展期胃癌, + count( gastroDetailInfo LIKE '%"i":1%' OR NULL ) AS 萎缩性胃炎, + count( gastroDetailInfo LIKE '%"j":1%' OR NULL ) AS 胃溃疡, + count( gastroDetailInfo LIKE '%"k":1%' OR NULL ) AS 胃息肉, + count( gastroDetailInfo LIKE '%"l":1%' OR NULL ) AS 非萎缩性胃炎, + count( gastroDetailInfo LIKE '%"m":1%' OR NULL ) AS 十二指肠球部溃疡, + count( gastroDetailInfo LIKE '%"n":%' OR NULL ) AS 其它病变 +FROM + ( + SELECT + p.id patientId, + rel1.step gastroStep, + rel1.is_inspect isGastro, + rel1.inspect_way gastroWay, + rel1.capsule gastroResult, + rel1.precise_way gastroDetailWay, + rel1.diagnose_result gastroDetailResult, + rel1.diagnose_info gastroDetailInfo, + rel1.`status` auditStatus + FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + AND diagnose_result = 1 + ) rel1 ON rel1.patient_id = p.id + ) rel + + +-- 各医联体胃镜检查诊断结果统计 +SELECT + hospName 医联体名称, + ( + count( gastroDetailInfo LIKE '%"a":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"c":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"d":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"e":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"f":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"h":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"i":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"j":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"k":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"l":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"m":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"n":%' OR NULL ) + ) 合计, + count( gastroDetailInfo LIKE '%"a":1%' OR NULL ) AS 食管粘膜上皮内瘤变, + count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) AS 早期食管癌, + count( gastroDetailInfo LIKE '%"c":1%' OR NULL ) AS 进展期食管癌, + count( gastroDetailInfo LIKE '%"d":1%' OR NULL ) AS Barret食管, + count( gastroDetailInfo LIKE '%"e":1%' OR NULL ) AS 反流性食管炎, + count( gastroDetailInfo LIKE '%"f":1%' OR NULL ) AS 胃粘膜上皮内瘤变, + count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) AS 早期胃癌, + count( gastroDetailInfo LIKE '%"h":1%' OR NULL ) AS 进展期胃癌, + count( gastroDetailInfo LIKE '%"i":1%' OR NULL ) AS 萎缩性胃炎, + count( gastroDetailInfo LIKE '%"j":1%' OR NULL ) AS 胃溃疡, + count( gastroDetailInfo LIKE '%"k":1%' OR NULL ) AS 胃息肉, + count( gastroDetailInfo LIKE '%"l":1%' OR NULL ) AS 非萎缩性胃炎, + count( gastroDetailInfo LIKE '%"m":1%' OR NULL ) AS 十二指肠球部溃疡, + count( gastroDetailInfo LIKE '%"n":%' OR NULL ) AS 其它病变 +FROM + ( + SELECT + p.id patientId, + rel2.number hospNumber, + rel2.`name` hospName, + rel1.step gastroStep, + rel1.is_inspect isGastro, + rel1.inspect_way gastroWay, + rel1.capsule gastroResult, + rel1.precise_way gastroDetailWay, + rel1.diagnose_result gastroDetailResult, + rel1.diagnose_info gastroDetailInfo, + rel1.`status` auditStatus + FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + AND diagnose_result = 1 + ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + ) rel +GROUP BY + hospName +ORDER BY + 早期胃癌 DESC + + +-- 高级别上皮内瘤变:高级别食管粘膜上皮内瘤变("type_a":"a")+高级别胃粘膜上皮内瘤变("type_f":"a")是否等于 高级别上皮内瘤变 人次? +SELECT + count( gastroDetailInfo LIKE '%"type_a":"a"%' OR gastroDetailInfo LIKE '%"type_f":"a"%' OR NULL ) AS 高级别上皮内瘤变, + count( gastroDetailInfo LIKE '%"type_a":"a"%' OR NULL ) AS 高级别食管粘膜上皮内瘤变, + count( gastroDetailInfo LIKE '%"type_f":"a"%' OR NULL ) AS 高级别胃粘膜上皮内瘤变 +FROM + ( + SELECT + p.id patientId, + rel1.step gastroStep, + rel1.is_inspect isGastro, + rel1.inspect_way gastroWay, + rel1.capsule gastroResult, + rel1.precise_way gastroDetailWay, + rel1.diagnose_result gastroDetailResult, + rel1.diagnose_info gastroDetailInfo, + rel1.`status` auditStatus + FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + AND diagnose_result = 1 + ) rel1 ON rel1.patient_id = p.id + ) rel + + + + + + + + + + + + + +-- 页面筛查数据统计结果--过程 +SELECT + p.id 患者id, + p.`name` 患者姓名, + rel5.number 医联体编号, + rel5.`name` 医联体名称, +CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, +CASE + rel2.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END 胃癌患病风险等级, +CASE + rel3.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '否' + END 是否胃镜检查, + rel3.inspect_way 胃镜检查方式, +CASE + rel3.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END 胃镜检查结果, + rel3.precise_way 胃镜精查方式, +CASE + + WHEN rel3.diagnose_result = 1 THEN + '异常' + WHEN rel3.diagnose_result = 2 THEN + '未见明显异常' ELSE '' + END 最终诊断结果, + rel3.diagnose_info 最终诊断详情, +CASE + rel4.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 是否继续随访, + rel4.content_type 继续随访内容, + rel1.`status` 筛查状态 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM tb_lab_inspect WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT patient_id, step, score, grade, `status` FROM tb_risk_assess WHERE `status` NOT IN ( 0, 5 ) ) rel2 ON rel2.patient_id = p.id + AND rel2.step = rel1.step + AND rel2.`status` = rel1.`status` + LEFT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + `status` NOT IN ( 0, 5 ) + ) rel3 ON rel3.patient_id = p.id + AND rel3.step = rel2.step + AND rel3.`status` = rel2.`status` + LEFT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE `status` NOT IN ( 0, 5 ) ) rel4 ON rel4.patient_id = p.id + AND rel4.step = rel3.step + AND rel4.`status` = rel3.`status` + LEFT JOIN ( SELECT number, `name` FROM tb_hosp ) rel5 ON rel5.number = p.hosp_number + + +-- 页面筛查数据统计结果 +SELECT + rel.医联体编号 医联体编号, + rel.医联体名称 医联体名称, + count( 筛查状态 = 1 OR NULL ) 筛查申请数, + count( * ) 筛查总数 +FROM + ( + SELECT + p.id 患者id, + p.`name` 患者姓名, + rel5.number 医联体编号, + rel5.`name` 医联体名称, + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, +CASE + rel2.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END 胃癌患病风险等级, +CASE + rel3.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '否' + END 是否胃镜检查, + rel3.inspect_way 胃镜检查方式, +CASE + rel3.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END 胃镜检查结果, + rel3.precise_way 胃镜精查方式, +CASE + rel3.diagnose_result + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见明显异常' ELSE '' + END 最终诊断结果, + rel3.diagnose_info 最终诊断详情, +CASE + rel4.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 是否继续随访, + rel4.content_type 继续随访内容, + rel1.`status` 筛查状态 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM tb_lab_inspect WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT patient_id, step, score, grade, `status` FROM tb_risk_assess WHERE `status` NOT IN ( 0, 5 ) ) rel2 ON rel2.patient_id = p.id + AND rel2.step = rel1.step + AND rel2.`status` = rel1.`status` + LEFT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + `status` NOT IN ( 0, 5 ) + ) rel3 ON rel3.patient_id = p.id + AND rel3.step = rel2.step + AND rel3.`status` = rel2.`status` + LEFT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE `status` NOT IN ( 0, 5 ) ) rel4 ON rel4.patient_id = p.id + AND rel4.step = rel3.step + AND rel4.`status` = rel3.`status` + LEFT JOIN ( SELECT number, `name` FROM tb_hosp ) rel5 ON rel5.number = p.hosp_number + ) rel +GROUP BY + 医联体名称 +ORDER BY + 筛查总数 DESC + + + + +-- 页面血检数据统计 +SELECT + 医联体编号, + 医联体名称, + sum( 计划血清检测总人次 + 实际血清检测总人次 ) 血清检测总人次, + sum( 计划血清检测总人次 ) 计划血清检测总人次, + sum( 实际血清检测总人次 ) 实际血清检测总人次, + sum( HP抗体(IGG)检测阳性总人次 ) HP抗体(IGG)检测阳性总人次, + sum( 早癌患者数 ) 早癌患者数 +FROM + ( + ( + SELECT + 医联体编号, + 医联体名称, + count( * ) 计划血清检测总人次, + count( NULL ) 实际血清检测总人次, + count( NULL ) HP抗体(IGG)检测阳性总人次, + count( NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel2.number 医联体编号, + rel2.`name` 医联体名称, + rel1.step 计划随访调查进度, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 随访状态, + rel1.content_type 计划随访内容, + rel1.`status` 审核状态 +FROM + tb_patient p -- 随访状态为继续随访,计划随访内容包含血清检查 + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%b%' ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + ) rel +GROUP BY + 医联体名称 + ) UNION + ( + SELECT + 医联体编号, + 医联体名称, + count( NULL ) 计划血清检测总人次, + count( * ) 实际血清检测总人次, + count( HP抗体(IGG)检测 = '阳性' OR NULL ) HP抗体(IGG)检测阳性总人次, + count( NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel1.number 医联体编号, + rel1.`name` 医联体名称, + rel2.step 实验室检查调查进度, + rel2.g17 'G-17', + rel2.pg1 'PG-Ⅰ', + rel2.pg2 'PG-Ⅱ', + CASE + rel2.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, + rel2.`status` 审核状态 +FROM + tb_patient AS p + LEFT JOIN ( SELECT `name`, number FROM tb_hosp ) rel1 ON rel1.number = p.hosp_number + RIGHT JOIN ( SELECT patient_id, step, g17, pg1, pg2, igg, `status` FROM tb_lab_inspect ) rel2 ON rel2.patient_id = p.id +WHERE + rel2.`status` NOT IN ( 0, 5 ) + ) rel +GROUP BY + 医联体名称 + ) UNION + ( + SELECT + hospNumber 医联体编号, + hospName 医联体名称, + count( NULL ) 计划血清检测总人次, + count( NULL ) 实际血清检测总人次, + count( NULL ) HP抗体(IGG)检测阳性总人次, + count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) 早癌患者数 + FROM + ( + SELECT + p.id patientId, + rel2.number hospNumber, + rel2.`name` hospName, + rel1.step gastroStep, + rel1.is_inspect isGastro, + rel1.inspect_way gastroWay, + rel1.capsule gastroResult, + rel1.precise_way gastroDetailWay, + rel1.diagnose_result gastroDetailResult, + rel1.diagnose_info gastroDetailInfo, + rel1.`status` auditStatus + FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + AND diagnose_result = 1 + ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + ) rel + GROUP BY + 医联体名称 + ) + ) rel +GROUP BY + 医联体名称 + + + + +SELECT + hospNumber 医联体编号, + hospName 医联体名称, + count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) 早癌患者数, + count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) AS 早期食管癌, + count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) AS 早期胃癌 +FROM + ( + SELECT + p.id patientId, + rel2.number hospNumber, + rel2.`name` hospName, + rel1.step gastroStep, + rel1.is_inspect isGastro, + rel1.inspect_way gastroWay, + rel1.capsule gastroResult, + rel1.precise_way gastroDetailWay, + rel1.diagnose_result gastroDetailResult, + rel1.diagnose_info gastroDetailInfo, + rel1.`status` auditStatus + FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + AND diagnose_result = 1 + ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + ) rel +GROUP BY + 医联体名称 + + + + + + + + + + + + +-- 页面胃镜检查数据统计 +SELECT + 医联体编号, + 医联体名称, + sum( 计划胃镜检查总人次 + 实际胃镜检查总人次 ) 胃镜检查总人次, + sum( 计划胃镜检查总人次 ) 计划胃镜检查总人次, + sum( 实际胃镜检查总人次 ) 实际胃镜检查总人次, + sum( 胃镜精查总人次 ) 胃镜精查总人次, + sum( 早癌患者数 ) 早癌患者数 +FROM + ( + ( + SELECT + 医联体编号, + 医联体名称, + count( * ) 计划胃镜检查总人次, + count( NULL ) 实际胃镜检查总人次, + count( NULL ) 胃镜精查总人次, + count( NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel2.number 医联体编号, + rel2.`name` 医联体名称, + rel1.step 计划随访调查进度, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 随访状态, + rel1.content_type 随访内容 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%a%' ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + ) rel +GROUP BY + 医联体名称 + ) UNION + ( + SELECT + 医联体编号, + 医联体名称, + count( NULL ) 计划胃镜检查总人次, + count( * ) 实际胃镜检查总人次, + count( 胃镜精查方式 <> '[]' OR NULL ) 胃镜精查总人次, + count( 最终诊断详情 LIKE '%"b":1%' OR NULL ) + count( 最终诊断详情 LIKE '%"g":1%' OR NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel2.number 医联体编号, + rel2.`name` 医联体名称, + rel1.step 胃镜检查调查进度, + CASE + rel1.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '' + END 是否胃镜检查, + rel1.inspect_way 胃镜检查方式, + CASE + rel1.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END 胃镜检查结果, + rel1.precise_way 胃镜精查方式, +CASE + WHEN rel1.diagnose_result = 1 THEN + '异常' + WHEN rel1.diagnose_result = 2 THEN + '未见明显异常' ELSE '' + END 最终诊断结果, + rel1.diagnose_info 最终诊断详情, + rel1.STATUS 审核状态 +FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + inspect_way, + precise_way, + capsule, + diagnose_result, + diagnose_info, + is_inspect, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + ) rel +GROUP BY + 医联体名称 + ) + ) rel +GROUP BY + 医联体名称 + + + +-- 页面胃镜检查地区统计(整理过程) +SELECT + 省份, + 医联体编号, + 医联体名称, + sum( 计划胃镜检查总人次 + 实际胃镜检查总人次 ) 胃镜检查总人次, + sum( 计划胃镜检查总人次 ) 计划胃镜检查总人次, + sum( 实际胃镜检查总人次 ) 实际胃镜检查总人次, + sum( 胃镜精查总人次 ) 胃镜精查总人次, + sum( 早癌患者数 ) 早癌患者数 +FROM + ( + ( + SELECT + 省份, + 医联体编号, + 医联体名称, + count( * ) 计划胃镜检查总人次, + count( NULL ) 实际胃镜检查总人次, + count( NULL ) 胃镜精查总人次, + count( NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel3.area 省份, + rel2.number 医联体编号, + rel2.`name` 医联体名称, + rel1.step 计划随访调查进度, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 随访状态, + rel1.content_type 随访内容 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%a%' ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + left join ( select area, `name` from tmp_tb_hosp_area ) rel3 on rel3.`name` = rel2.`name` + ) rel +GROUP BY +-- 省份 + 医联体名称 + ) UNION + ( + SELECT + 省份, + 医联体编号, + 医联体名称, + count( NULL ) 计划胃镜检查总人次, + count( * ) 实际胃镜检查总人次, + count( 胃镜精查方式 <> '[]' OR NULL ) 胃镜精查总人次, + count( 最终诊断详情 LIKE '%"b":1%' OR NULL ) + count( 最终诊断详情 LIKE '%"g":1%' OR NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel3.area 省份, + rel2.number 医联体编号, + rel2.`name` 医联体名称, + rel1.step 胃镜检查调查进度, + CASE + rel1.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '' + END 是否胃镜检查, + rel1.inspect_way 胃镜检查方式, + CASE + rel1.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END 胃镜检查结果, + rel1.precise_way 胃镜精查方式, +CASE + WHEN rel1.diagnose_result = 1 THEN + '异常' + WHEN rel1.diagnose_result = 2 THEN + '未见明显异常' ELSE '' + END 最终诊断结果, + rel1.diagnose_info 最终诊断详情, + rel1.STATUS 审核状态 +FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + inspect_way, + precise_way, + capsule, + diagnose_result, + diagnose_info, + is_inspect, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + left join ( select area, `name` from tmp_tb_hosp_area ) rel3 on rel3.`name` = rel2.`name` + ) rel +GROUP BY +-- 省份 + 医联体名称 + ) + ) rel +GROUP BY +-- 省份 + 医联体名称 + + + + +-- 页面胃镜检查地区统计(结果) +SELECT + 省份, + sum( 计划胃镜检查总人次 + 实际胃镜检查总人次 ) 胃镜检查总人次, + sum( 计划胃镜检查总人次 ) 计划胃镜检查总人次, + sum( 实际胃镜检查总人次 ) 实际胃镜检查总人次, + sum( 胃镜精查总人次 ) 胃镜精查总人次, + sum( 早癌患者数 ) 早癌患者数 +FROM + ( + ( + SELECT + 省份, + count( * ) 计划胃镜检查总人次, + count( NULL ) 实际胃镜检查总人次, + count( NULL ) 胃镜精查总人次, + count( NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel3.area 省份, + rel1.step 计划随访调查进度, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 随访状态, + rel1.content_type 随访内容 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%a%' ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + left join ( select area, `name` from tmp_tb_hosp_area ) rel3 on rel3.`name` = rel2.`name` + ) rel +GROUP BY + 省份 + ) UNION + ( + SELECT + 省份, + count( NULL ) 计划胃镜检查总人次, + count( * ) 实际胃镜检查总人次, + count( 胃镜精查方式 <> '[]' OR NULL ) 胃镜精查总人次, + count( 最终诊断详情 LIKE '%"b":1%' OR NULL ) + count( 最终诊断详情 LIKE '%"g":1%' OR NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel3.area 省份, + rel1.step 胃镜检查调查进度, + CASE + rel1.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '' + END 是否胃镜检查, + rel1.inspect_way 胃镜检查方式, + CASE + rel1.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END 胃镜检查结果, + rel1.precise_way 胃镜精查方式, +CASE + WHEN rel1.diagnose_result = 1 THEN + '异常' + WHEN rel1.diagnose_result = 2 THEN + '未见明显异常' ELSE '' + END 最终诊断结果, + rel1.diagnose_info 最终诊断详情, + rel1.STATUS 审核状态 +FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + inspect_way, + precise_way, + capsule, + diagnose_result, + diagnose_info, + is_inspect, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + left join ( select area, `name` from tmp_tb_hosp_area ) rel3 on rel3.`name` = rel2.`name` + ) rel +GROUP BY + 省份 + ) + ) rel +GROUP BY + 省份 + + + + + + +SELECT + provinceName, + sum( provinceGastroscopyPlan + provinceGastroscopyActual ) provinceGastroscopyTotal, + sum( provinceGastroscopyPlan ) provinceGastroscopyPlan, + sum( provinceGastroscopyActual ) provinceGastroscopyActual, + sum( provinceGastroscopyDetail ) provinceGastroscopyDetail, + sum( provinceEarlyCancer ) provinceEarlyCancer +FROM + ( + ( + SELECT + provinceName, + count( * ) provinceGastroscopyPlan, + count( NULL ) provinceGastroscopyActual, + count( NULL ) provinceGastroscopyDetail, + count( NULL ) provinceEarlyCancer + FROM + ( + SELECT + p.id patientId, + rel3.area provinceName, + rel1.step planFlupStep, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END isContinueFlup, + rel1.content_type planFlupContent +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%a%' ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel +GROUP BY + provinceName + ) UNION + ( + SELECT + provinceName, + count( NULL ) provinceGastroscopyPlan, + count( * ) provinceGastroscopyActual, + count( gastroscopyDetailWay <> '[]' OR NULL ) provinceGastroscopyDetail, + count( gastroscopyDetailDetail LIKE '%"b":1%' OR NULL ) + count( gastroscopyDetailDetail LIKE '%"g":1%' OR NULL ) provinceEarlyCancer + FROM + ( + SELECT + p.id patientId, + rel3.area provinceName, + rel1.step gastroscopyStep, + CASE + rel1.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '' + END isGastroscopy, + rel1.inspect_way gastroscopyWay, +CASE + rel1.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END gastroscopyResult, + rel1.precise_way gastroscopyDetailWay, +CASE + + WHEN rel1.diagnose_result = 1 THEN + '异常' + WHEN rel1.diagnose_result = 2 THEN + '未见明显异常' ELSE '' + END gastroscopyDetailResult, + rel1.diagnose_info gastroscopyDetailDetail, + rel1.STATUS gastroscopyAuditStatus +FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + inspect_way, + precise_way, + capsule, + diagnose_result, + diagnose_info, + is_inspect, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel +GROUP BY + provinceName + ) + ) rel +GROUP BY + provinceName + + + + +-- 页面血检地区统计(整理过程) +SELECT + 省份, + 医联体编号, + 医联体名称, + sum( 计划血清检测总人次 + 实际血清检测总人次 ) 血清检测总人次, + sum( 计划血清检测总人次 ) 计划血清检测总人次, + sum( 实际血清检测总人次 ) 实际血清检测总人次, + sum( HP抗体(IGG)检测阳性总人次 ) HP抗体(IGG)检测阳性总人次, + sum( 早癌患者数 ) 早癌患者数 +FROM + ( + ( + SELECT + 省份, + 医联体编号, + 医联体名称, + count( * ) 计划血清检测总人次, + count( NULL ) 实际血清检测总人次, + count( NULL ) HP抗体(IGG)检测阳性总人次, + count( NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel3.area 省份, + rel2.number 医联体编号, + rel2.`name` 医联体名称, + rel1.step 计划随访调查进度, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 随访状态, + rel1.content_type 计划随访内容, + rel1.`status` 审核状态 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%b%' ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel +GROUP BY + 医联体名称 + ) UNION + ( + SELECT + 省份, + 医联体编号, + 医联体名称, + count( NULL ) 计划血清检测总人次, + count( * ) 实际血清检测总人次, + count( HP抗体(IGG)检测 = '阳性' OR NULL ) HP抗体(IGG)检测阳性总人次, + count( NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel3.area 省份, + rel2.number 医联体编号, + rel2.`name` 医联体名称, + rel1.step 实验室检查调查进度, + rel1.g17 'G-17', + rel1.pg1 'PG-Ⅰ', + rel1.pg2 'PG-Ⅱ', + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, + rel1.`status` 审核状态 +FROM + tb_patient AS p + RIGHT JOIN ( SELECT patient_id, step, g17, pg1, pg2, igg, `status` FROM tb_lab_inspect ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` +WHERE + rel1.`status` NOT IN ( 0, 5 ) + ) rel +GROUP BY + 医联体名称 + ) UNION + ( + SELECT + provinceName 省份, + hospNumber 医联体编号, + hospName 医联体名称, + count( NULL ) 计划血清检测总人次, + count( NULL ) 实际血清检测总人次, + count( NULL ) HP抗体(IGG)检测阳性总人次, + count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) 早癌患者数 + FROM + ( + SELECT + p.id patientId, + rel3.area provinceName, + rel2.number hospNumber, + rel2.`name` hospName, + rel1.step gastroStep, + rel1.is_inspect isGastro, + rel1.inspect_way gastroWay, + rel1.capsule gastroResult, + rel1.precise_way gastroDetailWay, + rel1.diagnose_result gastroDetailResult, + rel1.diagnose_info gastroDetailInfo, + rel1.`status` auditStatus + FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + AND diagnose_result = 1 + ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel + GROUP BY + 医联体名称 + ) + ) rel +GROUP BY + 医联体名称 + + + +-- 页面血检地区统计(结果) +SELECT + 省份, + sum( 计划血清检测总人次 + 实际血清检测总人次 ) 血清检测总人次, + sum( 计划血清检测总人次 ) 计划血清检测总人次, + sum( 实际血清检测总人次 ) 实际血清检测总人次, + sum( HP抗体(IGG)检测阳性总人次 ) HP抗体(IGG)检测阳性总人次, + sum( 早癌患者数 ) 早癌患者数 +FROM + ( + ( + SELECT + 省份, + count( * ) 计划血清检测总人次, + count( NULL ) 实际血清检测总人次, + count( NULL ) HP抗体(IGG)检测阳性总人次, + count( NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel3.area 省份, + rel1.step 计划随访调查进度, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 随访状态, + rel1.content_type 计划随访内容, + rel1.`status` 审核状态 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%b%' ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel +GROUP BY + 省份 + ) UNION + ( + SELECT + 省份, + count( NULL ) 计划血清检测总人次, + count( * ) 实际血清检测总人次, + count( HP抗体(IGG)检测 = '阳性' OR NULL ) HP抗体(IGG)检测阳性总人次, + count( NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel3.area 省份, + rel1.step 实验室检查调查进度, + rel1.g17 'G-17', + rel1.pg1 'PG-Ⅰ', + rel1.pg2 'PG-Ⅱ', + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, + rel1.`status` 审核状态 +FROM + tb_patient AS p + RIGHT JOIN ( SELECT patient_id, step, g17, pg1, pg2, igg, `status` FROM tb_lab_inspect ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` +WHERE + rel1.`status` NOT IN ( 0, 5 ) + ) rel +GROUP BY + 省份 + ) UNION + ( + SELECT + provinceName 省份, + count( NULL ) 计划血清检测总人次, + count( NULL ) 实际血清检测总人次, + count( NULL ) HP抗体(IGG)检测阳性总人次, + count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) 早癌患者数 + FROM + ( + SELECT + p.id patientId, + rel3.area provinceName, + rel2.number hospNumber, + rel2.`name` hospName, + rel1.step gastroStep, + rel1.is_inspect isGastro, + rel1.inspect_way gastroWay, + rel1.capsule gastroResult, + rel1.precise_way gastroDetailWay, + rel1.diagnose_result gastroDetailResult, + rel1.diagnose_info gastroDetailInfo, + rel1.`status` auditStatus + FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + AND diagnose_result = 1 + ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel + GROUP BY + 省份 + ) + ) rel +GROUP BY + 省份 + + + + +SELECT + 省份, + sum( 计划血清检测总人次 + 实际血清检测总人次 ) 血清检测总人次, + sum( 计划血清检测总人次 ) 计划血清检测总人次, + sum( 实际血清检测总人次 ) 实际血清检测总人次, + sum( HP抗体(IGG)检测阳性总人次 ) HP抗体(IGG)检测阳性总人次, + sum( 早癌患者数 ) 早癌患者数 +FROM + ( + ( + SELECT + 省份, + count( * ) 计划血清检测总人次, + count( NULL ) 实际血清检测总人次, + count( NULL ) HP抗体(IGG)检测阳性总人次, + count( NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel3.area 省份, + rel1.step 计划随访调查进度, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 随访状态, + rel1.content_type 计划随访内容, + rel1.`status` 审核状态 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%b%' ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel +GROUP BY + 省份 + ) UNION + ( + SELECT + 省份, + count( NULL ) 计划血清检测总人次, + count( * ) 实际血清检测总人次, + count( HP抗体(IGG)检测 = '阳性' OR NULL ) HP抗体(IGG)检测阳性总人次, + count( NULL ) 早癌患者数 + FROM + ( + SELECT + p.id 患者id, + rel3.area 省份, + rel1.step 实验室检查调查进度, + rel1.g17 'G-17', + rel1.pg1 'PG-Ⅰ', + rel1.pg2 'PG-Ⅱ', + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, + rel1.`status` 审核状态 +FROM + tb_patient AS p + RIGHT JOIN ( SELECT patient_id, step, g17, pg1, pg2, igg, `status` FROM tb_lab_inspect ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` +WHERE + rel1.`status` NOT IN ( 0, 5 ) + ) rel +GROUP BY + 省份 + ) UNION + ( + SELECT + provinceName 省份, + count( NULL ) 计划血清检测总人次, + count( NULL ) 实际血清检测总人次, + count( NULL ) HP抗体(IGG)检测阳性总人次, + count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) 早癌患者数 + FROM + ( + SELECT + p.id patientId, + rel3.area provinceName, + rel2.number hospNumber, + rel2.`name` hospName, + rel1.step gastroStep, + rel1.is_inspect isGastro, + rel1.inspect_way gastroWay, + rel1.capsule gastroResult, + rel1.precise_way gastroDetailWay, + rel1.diagnose_result gastroDetailResult, + rel1.diagnose_info gastroDetailInfo, + rel1.`status` auditStatus + FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + AND diagnose_result = 1 + ) rel1 ON rel1.patient_id = p.id + inner JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel + GROUP BY + 省份 + ) + ) rel +GROUP BY + 省份 + + + + +SELECT + provinceName, + sum( provinceSerumTestPlan + provinceSerumTestActual ) provinceSerumTestTotal, + sum( provinceSerumTestPlan ) provinceSerumTestPlan, + sum( provinceSerumTestActual ) provinceSerumTestActual, + sum( provinceIggPositive ) provinceIggPositive, + sum( provinceEarlyCancer ) provinceEarlyCancer +FROM + ( + ( + SELECT + provinceName, + count( * ) provinceSerumTestPlan, + count( NULL ) provinceSerumTestActual, + count( NULL ) provinceIggPositive, + count( NULL ) provinceEarlyCancer + FROM + ( + SELECT + p.id patientId, + rel3.area provinceName, + rel1.step planFlupStep, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END isContinueFlup, + rel1.content_type planFlupContent, + rel1.`status` planFlupAuditStatus +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%b%' ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel +GROUP BY + provinceName + ) UNION + ( + SELECT + provinceName, + count( NULL ) provinceSerumTestPlan, + count( * ) provinceSerumTestActual, + count( iggDetection = '阳性' OR NULL ) provinceIggPositive, + count( NULL ) provinceEarlyCancer + FROM + ( + SELECT + p.id patientId, + rel3.area provinceName, + rel1.step labInspectStep, + rel1.g17 G17, + rel1.pg1 PG1, + rel1.pg2 PG2, + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END iggDetection, + rel1.`status` labInspectStatus +FROM + tb_patient AS p + RIGHT JOIN ( SELECT patient_id, step, g17, pg1, pg2, igg, `status` FROM tb_lab_inspect ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` +WHERE + rel1.`status` NOT IN ( 0, 5 ) + ) rel +GROUP BY + provinceName + ) UNION + ( + SELECT + provinceName, + count( NULL ) provinceSerumTestPlan, + count( NULL ) provinceSerumTestActual, + count( NULL ) provinceIggPositive, + count( gastroscopyDetailInfo LIKE '%"b":1%' OR NULL ) + count( gastroscopyDetailInfo LIKE '%"g":1%' OR NULL ) provinceEarlyCancer + FROM + ( + SELECT + p.id patientId, + rel3.area provinceName, + rel1.step gastroscopyStep, + rel1.is_inspect isGastroscopy, + rel1.inspect_way gastroscopyWay, + rel1.capsule gastroscopyResult, + rel1.precise_way gastroscopyDetailWay, + rel1.diagnose_result gastroscopyDetailResult, + rel1.diagnose_info gastroscopyDetailInfo, + rel1.`status` gastroscopyAuditStatus + FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + AND diagnose_result = 1 + ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel + GROUP BY + provinceName + ) + ) rel +GROUP BY + provinceName + + + + + + +-- 页面筛查数据统计结果(省份) +SELECT + 省份, + 医联体编号, + 医联体名称, + count( 筛查状态 = 1 OR NULL ) 筛查申请数, + count( * ) 筛查总数 +FROM + ( + SELECT + p.id 患者id, + p.`name` 患者姓名, + rel6.area 省份, + rel5.number 医联体编号, + rel5.`name` 医联体名称, + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, +CASE + rel2.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END 胃癌患病风险等级, +CASE + rel3.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '否' + END 是否胃镜检查, + rel3.inspect_way 胃镜检查方式, +CASE + rel3.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END 胃镜检查结果, + rel3.precise_way 胃镜精查方式, +CASE + rel3.diagnose_result + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见明显异常' ELSE '' + END 最终诊断结果, + rel3.diagnose_info 最终诊断详情, +CASE + rel4.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 是否继续随访, + rel4.content_type 继续随访内容, + rel1.`status` 筛查状态 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM tb_lab_inspect WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT patient_id, step, score, grade, `status` FROM tb_risk_assess WHERE `status` NOT IN ( 0, 5 ) ) rel2 ON rel2.patient_id = p.id + AND rel2.step = rel1.step + AND rel2.`status` = rel1.`status` + LEFT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + `status` NOT IN ( 0, 5 ) + ) rel3 ON rel3.patient_id = p.id + AND rel3.step = rel2.step + AND rel3.`status` = rel2.`status` + LEFT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE `status` NOT IN ( 0, 5 ) ) rel4 ON rel4.patient_id = p.id + AND rel4.step = rel3.step + AND rel4.`status` = rel3.`status` + inner JOIN ( SELECT number, `name` FROM tb_hosp ) rel5 ON rel5.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel6 ON rel6.`name` = rel5.`name` + ) rel +GROUP BY + 医联体名称 + + + +SELECT + 省份, + count( 筛查状态 = 1 OR NULL ) 筛查申请数, + count( * ) 筛查总数 +FROM + ( + SELECT + p.id 患者id, + p.`name` 患者姓名, + rel6.area 省份, + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, +CASE + rel2.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END 胃癌患病风险等级, +CASE + rel3.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '否' + END 是否胃镜检查, + rel3.inspect_way 胃镜检查方式, +CASE + rel3.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END 胃镜检查结果, + rel3.precise_way 胃镜精查方式, +CASE + rel3.diagnose_result + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见明显异常' ELSE '' + END 最终诊断结果, + rel3.diagnose_info 最终诊断详情, +CASE + rel4.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 是否继续随访, + rel4.content_type 继续随访内容, + rel1.`status` 筛查状态 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM tb_lab_inspect WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT patient_id, step, score, grade, `status` FROM tb_risk_assess WHERE `status` NOT IN ( 0, 5 ) ) rel2 ON rel2.patient_id = p.id + AND rel2.step = rel1.step + AND rel2.`status` = rel1.`status` + LEFT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + `status` NOT IN ( 0, 5 ) + ) rel3 ON rel3.patient_id = p.id + AND rel3.step = rel2.step + AND rel3.`status` = rel2.`status` + LEFT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE `status` NOT IN ( 0, 5 ) ) rel4 ON rel4.patient_id = p.id + AND rel4.step = rel3.step + AND rel4.`status` = rel3.`status` + inner JOIN ( SELECT number, `name` FROM tb_hosp ) rel5 ON rel5.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel6 ON rel6.`name` = rel5.`name` + ) rel +GROUP BY + 省份 + + + +SELECT + provinceName, + count( * ) provinceScreeningTotal, + count( screeningStatus = 1 OR NULL ) provinceApplyScreeningTotal +FROM + ( + SELECT + p.id patientId, + p.`name` patientName, + rel6.area provinceName, + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END iggDetection, +CASE + rel2.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END riskLevel, +CASE + rel3.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '否' + END isGastroscopy, + rel3.inspect_way gastroscopyWay, +CASE + rel3.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END gastroscopyResult, + rel3.precise_way gastroscopyDetailWay, +CASE + rel3.diagnose_result + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见明显异常' ELSE '' + END gastroscopyDetailResult, + rel3.diagnose_info gastroscopyDetailInfo, +CASE + rel4.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END isContinueFlup, + rel4.content_type planFlupContent, + rel1.`status` screeningStatus +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM tb_lab_inspect WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT patient_id, step, score, grade, `status` FROM tb_risk_assess WHERE `status` NOT IN ( 0, 5 ) ) rel2 ON rel2.patient_id = p.id + AND rel2.step = rel1.step + AND rel2.`status` = rel1.`status` + LEFT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + `status` NOT IN ( 0, 5 ) + ) rel3 ON rel3.patient_id = p.id + AND rel3.step = rel2.step + AND rel3.`status` = rel2.`status` + LEFT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE `status` NOT IN ( 0, 5 ) ) rel4 ON rel4.patient_id = p.id + AND rel4.step = rel3.step + AND rel4.`status` = rel3.`status` + INNER JOIN ( SELECT number, `name` FROM tb_hosp ) rel5 ON rel5.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel6 ON rel6.`name` = rel5.`name` + ) rel +GROUP BY + provinceName + + + + +-- 各省份胃镜检查诊断结果统计 +SELECT + provinceName 省份, + ( + count( gastroDetailInfo LIKE '%"a":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"c":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"d":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"e":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"f":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"h":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"i":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"j":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"k":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"l":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"m":1%' OR NULL ) + count( gastroDetailInfo LIKE '%"n":%' OR NULL ) + ) 合计, + count( gastroDetailInfo LIKE '%"a":1%' OR NULL ) AS 食管粘膜上皮内瘤变, + count( gastroDetailInfo LIKE '%"b":1%' OR NULL ) AS 早期食管癌, + count( gastroDetailInfo LIKE '%"c":1%' OR NULL ) AS 进展期食管癌, + count( gastroDetailInfo LIKE '%"d":1%' OR NULL ) AS Barret食管, + count( gastroDetailInfo LIKE '%"e":1%' OR NULL ) AS 反流性食管炎, + count( gastroDetailInfo LIKE '%"f":1%' OR NULL ) AS 胃粘膜上皮内瘤变, + count( gastroDetailInfo LIKE '%"g":1%' OR NULL ) AS 早期胃癌, + count( gastroDetailInfo LIKE '%"h":1%' OR NULL ) AS 进展期胃癌, + count( gastroDetailInfo LIKE '%"i":1%' OR NULL ) AS 萎缩性胃炎, + count( gastroDetailInfo LIKE '%"j":1%' OR NULL ) AS 胃溃疡, + count( gastroDetailInfo LIKE '%"k":1%' OR NULL ) AS 胃息肉, + count( gastroDetailInfo LIKE '%"l":1%' OR NULL ) AS 非萎缩性胃炎, + count( gastroDetailInfo LIKE '%"m":1%' OR NULL ) AS 十二指肠球部溃疡, + count( gastroDetailInfo LIKE '%"n":%' OR NULL ) AS 其它病变 +FROM + ( + SELECT + p.id patientId, + rel3.area provinceName, + rel1.step gastroStep, + rel1.is_inspect isGastro, + rel1.inspect_way gastroWay, + rel1.capsule gastroResult, + rel1.precise_way gastroDetailWay, + rel1.diagnose_result gastroDetailResult, + rel1.diagnose_info gastroDetailInfo, + rel1.`status` auditStatus + FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + AND diagnose_result = 1 + ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel +GROUP BY + provinceName + + + + + + + +-- 页面胃癌患病风险等级评估统计 +SELECT + 省份, + (count( 胃癌患病风险等级 = '低风险' OR NULL ) + count( 胃癌患病风险等级 = '中风险' OR NULL ) + count( 胃癌患病风险等级 = '高风险' OR NULL )) 合计, + count( 胃癌患病风险等级 = '低风险' OR NULL ) AS 低风险, + count( 胃癌患病风险等级 = '中风险' OR NULL ) AS 中风险, + count( 胃癌患病风险等级 = '高风险' OR NULL ) AS 高风险 +FROM + ( + SELECT + p.id 患者id, + rel3.area 省份, + rel1.score 胃癌患病风险评分, + CASE + rel1.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END 胃癌患病风险等级 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, score, grade FROM tb_risk_assess ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel +GROUP BY + 省份 + + + + + +SELECT + count( riskLevel = '高风险' OR NULL ) highRisk, + count( riskLevel = '中风险' OR NULL ) mediumRisk, + count( riskLevel = '低风险' OR NULL ) lowRisk +FROM + ( + SELECT + p.id patientId, + rel1.score riskScore, + CASE + rel1.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END riskLevel +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM tb_lab_inspect WHERE `status` NOT IN ( 0, 5 ) ) rel4 ON rel4.patient_id = p.id + LEFT JOIN ( SELECT patient_id, score, grade, step, `status` FROM tb_risk_assess WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id + AND rel1.step = rel4.step + AND rel1.`status` = rel4.`status` + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel + + + + +SELECT + 省份, + count( 筛查状态 = 1 OR NULL ) 筛查申请数, + count( * ) 筛查总数 +FROM + ( + SELECT + p.id 患者id, + p.`name` 患者姓名, + rel6.area 省份, + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, +CASE + rel2.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END 胃癌患病风险等级, + rel2.score 胃癌患病评分, +CASE + rel3.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '否' + END 是否胃镜检查, + rel3.inspect_way 胃镜检查方式, +CASE + rel3.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END 胃镜检查结果, + rel3.precise_way 胃镜精查方式, +CASE + rel3.diagnose_result + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见明显异常' ELSE '' + END 最终诊断结果, + rel3.diagnose_info 最终诊断详情, +CASE + rel4.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 是否继续随访, + rel4.content_type 继续随访内容, + rel1.`status` 筛查状态 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM tb_lab_inspect WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT patient_id, step, score, grade, `status` FROM tb_risk_assess WHERE `status` NOT IN ( 0, 5 ) ) rel2 ON rel2.patient_id = p.id + AND rel2.step = rel1.step + AND rel2.`status` = rel1.`status` + LEFT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + `status` NOT IN ( 0, 5 ) + ) rel3 ON rel3.patient_id = p.id + AND rel3.step = rel2.step + AND rel3.`status` = rel2.`status` + LEFT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE `status` NOT IN ( 0, 5 ) ) rel4 ON rel4.patient_id = p.id + AND rel4.step = rel3.step + AND rel4.`status` = rel3.`status` + inner JOIN ( SELECT number, `name` FROM tb_hosp ) rel5 ON rel5.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel6 ON rel6.`name` = rel5.`name` + ) rel +GROUP BY + 省份 + + + select * from (SELECT + p.id patientId, + p.`name` 患者姓名, + rel6.area 省份, + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END HP抗体(IGG)检测, +CASE + rel2.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END 胃癌患病风险等级, +CASE + rel3.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '否' + END 是否胃镜检查, + rel3.inspect_way 胃镜检查方式, +CASE + rel3.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END 胃镜检查结果, + rel3.precise_way 胃镜精查方式, +CASE + rel3.diagnose_result + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见明显异常' ELSE '' + END 最终诊断结果, + rel3.diagnose_info 最终诊断详情, +CASE + rel4.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END 是否继续随访, + rel4.content_type 继续随访内容, + rel1.`status` 筛查状态 +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM tb_lab_inspect WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT patient_id, step, score, grade, `status` FROM tb_risk_assess WHERE `status` NOT IN ( 0, 5 ) ) rel2 ON rel2.patient_id = p.id + AND rel2.step = rel1.step + AND rel2.`status` = rel1.`status` + LEFT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + `status` NOT IN ( 0, 5 ) + ) rel3 ON rel3.patient_id = p.id + AND rel3.step = rel2.step + AND rel3.`status` = rel2.`status` + LEFT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE `status` NOT IN ( 0, 5 ) ) rel4 ON rel4.patient_id = p.id + AND rel4.step = rel3.step + AND rel4.`status` = rel3.`status` + inner JOIN ( SELECT number, `name` FROM tb_hosp ) rel5 ON rel5.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel6 ON rel6.`name` = rel5.`name`) rel where rel.胃癌患病风险等级 <> '' + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SELECT + provinceName, + sum( serumTestPlan + serumTestActual ) serumTestTotal, + sum( serumTestPlan ) serumTestPlan, + sum( serumTestActual ) serumTestActual, + sum( iggPositive ) iggPositive, + sum( earlyCancer ) earlyCancer +FROM + ( + ( + SELECT + provinceName, + count( * ) serumTestPlan, + count( NULL ) serumTestActual, + count( NULL ) iggPositive, + count( NULL ) earlyCancer + FROM + ( + SELECT + p.id patientId, + rel3.area provinceName, + rel1.step planFlupStep, + CASE + rel1.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END isContinueFlup, + rel1.content_type planFlupContent, + rel1.`status` planFlupAuditStatus +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE continue_flup = 1 AND content_type LIKE '%b%' ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel +GROUP BY + provinceName + ) UNION + ( + SELECT + provinceName, + count( NULL ) serumTestPlan, + count( * ) serumTestActual, + count( iggDetection = '阳性' OR NULL ) iggPositive, + count( NULL ) earlyCancer + FROM + ( + SELECT + p.id patientId, + rel3.area provinceName, + rel1.step labInspectStep, + rel1.g17 G17, + rel1.pg1 PG1, + rel1.pg2 PG2, + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END iggDetection, + rel1.`status` labInspectStatus +FROM + tb_patient AS p + RIGHT JOIN ( SELECT patient_id, step, g17, pg1, pg2, igg, `status` FROM tb_lab_inspect ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` +WHERE + rel1.`status` NOT IN ( 0, 5 ) + ) rel +GROUP BY + provinceName + ) UNION + ( + SELECT + provinceName, + count( NULL ) serumTestPlan, + count( NULL ) serumTestActual, + count( NULL ) iggPositive, + count( gastroscopyDetailInfo LIKE '%"b":1%' OR NULL ) + count( gastroscopyDetailInfo LIKE '%"g":1%' OR NULL ) earlyCancer + FROM + ( + SELECT + p.id patientId, + rel3.area provinceName, + rel1.step gastroscopyStep, + rel1.is_inspect isGastroscopy, + rel1.inspect_way gastroscopyWay, + rel1.capsule gastroscopyResult, + rel1.precise_way gastroscopyDetailWay, + rel1.diagnose_result gastroscopyDetailResult, + rel1.diagnose_info gastroscopyDetailInfo, + rel1.`status` gastroscopyAuditStatus + FROM + tb_patient p + RIGHT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + is_inspect = 1 + AND `status` NOT IN ( 0, 5 ) + AND diagnose_result = 1 + ) rel1 ON rel1.patient_id = p.id + INNER JOIN ( SELECT `name`, number FROM tb_hosp ) rel2 ON rel2.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel3 ON rel3.`name` = rel2.`name` + ) rel + GROUP BY + provinceName + ) + ) rel +GROUP BY + provinceName + + + + + + + +SELECT + p.id patientId, + p.`name` patientName, + rel6.area provinceName, +CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END iggDetection, +CASE + rel2.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END riskLevel, +CASE + rel3.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '否' + END isGastroscopy, + rel3.inspect_way gastroscopyWay, +CASE + rel3.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END gastroscopyResult, + rel3.precise_way gastroscopyDetailWay, +CASE + rel3.diagnose_result + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见明显异常' ELSE '' + END gastroscopyDetailResult, + rel3.diagnose_info gastroscopyDetailInfo, + rel1.`status` screeningStatus +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM tb_lab_inspect WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT patient_id, step, score, grade, `status` FROM tb_risk_assess) rel2 ON rel2.patient_id = p.id + AND rel2.step = rel1.step + AND rel2.`status` = rel1.`status` + LEFT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + ) rel3 ON rel3.patient_id = p.id + AND rel3.step = rel2.step + AND rel3.`status` = rel2.`status` + INNER JOIN ( SELECT number, `name` FROM tb_hosp ) rel5 ON rel5.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel6 ON rel6.`name` = rel5.`name` order by patientId desc where rel2.grade = 2 or rel2.grade = 3 + + + +SELECT + count( * ) total, + count( gastroscopyResult = '异常' OR NULL ) actual +FROM + ( + SELECT + p.id patientId, + p.`name` patientName, + rel6.area provinceName, + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END iggDetection, +CASE + rel2.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END riskLevel, +CASE + rel3.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '否' + END isGastroscopy, + rel3.inspect_way gastroscopyWay, +CASE + rel3.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END gastroscopyResult, + rel3.precise_way gastroscopyDetailWay, +CASE + rel3.diagnose_result + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见明显异常' ELSE '' + END gastroscopyDetailResult, + rel3.diagnose_info gastroscopyDetailInfo, + rel1.`status` screeningStatus +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM tb_lab_inspect WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT patient_id, step, score, grade, `status` FROM tb_risk_assess ) rel2 ON rel2.patient_id = p.id + AND rel2.step = rel1.step + AND rel2.`status` = rel1.`status` + LEFT JOIN ( SELECT patient_id, step, is_inspect, inspect_way, capsule, precise_way, diagnose_result, diagnose_info, `status` FROM tb_gastro_inspect ) rel3 ON rel3.patient_id = p.id + AND rel3.step = rel2.step + AND rel3.`status` = rel2.`status` + INNER JOIN ( SELECT number, `name` FROM tb_hosp ) rel5 ON rel5.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel6 ON rel6.`name` = rel5.`name` +WHERE + rel2.grade = 2 + OR rel2.grade = 3 + ) rel + + + +SELECT + count( is_auddit = 1 OR NULL ) certifiedHosp, + count( is_auddit = 0 OR NULL ) applyHosp +FROM + tmp_tb_hosp_apply + + + + + + + +SELECT + provinceName, + count( * ) provinceScreeningTotal, + count( screeningStatus = 1 OR NULL ) provinceApplyScreeningTotal, + count( hospaudditStatus = 0 or null ) hospApply +FROM + ( + SELECT + p.id patientId, + p.`name` patientName, + rel6.area provinceName, + CASE + rel1.igg + WHEN 1 THEN + '阳性' + WHEN 0 THEN + '阴性' ELSE '' + END iggDetection, +CASE + rel2.grade + WHEN 1 THEN + '低风险' + WHEN 2 THEN + '中风险' + WHEN 3 THEN + '高风险' ELSE '' + END riskLevel, +CASE + rel3.is_inspect + WHEN 1 THEN + '是' + WHEN 0 THEN + '否' ELSE '否' + END isGastroscopy, + rel3.inspect_way gastroscopyWay, +CASE + rel3.capsule + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见异常' ELSE '' + END gastroscopyResult, + rel3.precise_way gastroscopyDetailWay, +CASE + rel3.diagnose_result + WHEN 1 THEN + '异常' + WHEN 2 THEN + '未见明显异常' ELSE '' + END gastroscopyDetailResult, + rel3.diagnose_info gastroscopyDetailInfo, +CASE + rel4.continue_flup + WHEN 1 THEN + '继续随访' + WHEN 0 THEN + '停止随访' ELSE '' + END isContinueFlup, + rel4.content_type planFlupContent, + rel1.`status` screeningStatus, + rel7.is_auddit hospAudditStatus +FROM + tb_patient p + RIGHT JOIN ( SELECT patient_id, igg, step, `status` FROM tb_lab_inspect WHERE `status` NOT IN ( 0, 5 ) ) rel1 ON rel1.patient_id = p.id + LEFT JOIN ( SELECT patient_id, step, score, grade, `status` FROM tb_risk_assess WHERE `status` NOT IN ( 0, 5 ) ) rel2 ON rel2.patient_id = p.id + AND rel2.step = rel1.step + AND rel2.`status` = rel1.`status` + LEFT JOIN ( + SELECT + patient_id, + step, + is_inspect, + inspect_way, + capsule, + precise_way, + diagnose_result, + diagnose_info, + `status` + FROM + tb_gastro_inspect + WHERE + `status` NOT IN ( 0, 5 ) + ) rel3 ON rel3.patient_id = p.id + AND rel3.step = rel2.step + AND rel3.`status` = rel2.`status` + LEFT JOIN ( SELECT patient_id, step, continue_flup, content_type, `status` FROM tb_flup_plan WHERE `status` NOT IN ( 0, 5 ) ) rel4 ON rel4.patient_id = p.id + AND rel4.step = rel3.step + AND rel4.`status` = rel3.`status` + INNER JOIN ( SELECT number, `name` FROM tb_hosp ) rel5 ON rel5.number = p.hosp_number + LEFT JOIN ( SELECT area, `name` FROM tmp_tb_hosp_area ) rel6 ON rel6.`name` = rel5.`name` + left join ( select hosp_number, is_auddit from tmp_tb_hosp_apply ) rel7 on rel7.hosp_number = rel5.number + ) rel +GROUP BY + provinceName \ No newline at end of file