挂号信息表1
CREATE TABLE `bpm_appointment` ( `id` varchar(40) NOT NULL, `patient_id` varchar(40) NOT NULL, `patient_name` varchar(255) DEFAULT NULL COMMENT '患者名称', `patient_phone` varchar(45) DEFAULT NULL COMMENT '患者手机号', `patient_sex` varchar(40) DEFAULT NULL COMMENT '患者性别', `service_name` varchar(255) DEFAULT NULL, `service_classification` varchar(40) DEFAULT NULL COMMENT '物资分类', `symptom` varchar(256) DEFAULT NULL COMMENT '症状描述', `appointment_date` date NOT NULL COMMENT '预约日期', `appointment_starttime` time DEFAULT NULL COMMENT '预约时段开始时间', `appointment_endtime` time DEFAULT NULL COMMENT '预约时段结束时间', `appointment_ArrangeId` varchar(40) DEFAULT NULL, `appointment_doctor_id` varchar(40) DEFAULT NULL, `appointment_doctor_name` varchar(255) DEFAULT NULL COMMENT '预约医生名称', `visit_number` varchar(45) NOT NULL COMMENT '看诊序号,每次看诊过程只生成一个序号', `appointment_state` int(11) NOT NULL COMMENT '预约状态 0:已预约 1:已确认 2:已就诊 -1:已取消 -2:迟到 -3:爽约 ', `orderId` varchar(40) DEFAULT NULL, `order_item_id` varchar(40) DEFAULT NULL, `medical_insurance_type` int(11) DEFAULT NULL COMMENT '医疗保险类型:0. 自费 1. 社保 2.商保 3.新农合 4.社保(未带卡)', `medical_card_number` varchar(100) DEFAULT NULL COMMENT '医保卡号', `is_medical_insurance` int(11) NOT NULL DEFAULT '0' COMMENT '是否医保:0 无,1 医保 ', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updater` varchar(40) DEFAULT NULL, `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `del_flag` int(11) NOT NULL DEFAULT '0' COMMENT '是否删除:0:否 1.是', `is_valid` int(11) DEFAULT '1', `description` text COMMENT '备注', `org_id` varchar(40) DEFAULT NULL COMMENT '机构id', `referrer` varchar(40) DEFAULT NULL COMMENT '推荐人', `referrer_name` varchar(100) DEFAULT NULL COMMENT '推荐人姓名', `referrer_dept_id` varchar(40) DEFAULT NULL COMMENT '推荐人部门', `referrer_dept_name` varchar(100) DEFAULT NULL COMMENT '推荐人部门名称', `shop_set_item_id` varchar(40) DEFAULT NULL COMMENT '商城套餐明细id(套餐预约挂号使用)', `payment_deadline` datetime DEFAULT NULL COMMENT '互联网医院 挂号 支付截止时间', `cancel_reason` varchar(100) DEFAULT NULL COMMENT '取消原因', `cancel_type` int(1) DEFAULT '1' COMMENT '取消挂号类别:1.患者自己取消 2. 换号取消 3. APP超时未支付取消', `is_urgent` int(1) DEFAULT '0' COMMENT '是否 加急:0.否 1.是', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', `is_scene_appoint` int(11) NOT NULL DEFAULT '0' COMMENT '现场挂号:0/否,1/是', `is_physical_examination` int(11) NOT NULL DEFAULT '0' COMMENT '是否预检:0/否,1/是', `medical_record_book` int(11) NOT NULL DEFAULT '0' COMMENT '使用病历本:1/使用,0/未使用', `insurance_id` varchar(40) DEFAULT NULL, `insurance_org_id` varchar(40) DEFAULT NULL, `product_id` varchar(40) DEFAULT NULL, `channel_id` varchar(40) DEFAULT NULL, `medical_insurance_org_id` varchar(40) DEFAULT NULL COMMENT '基本医疗保险机构id', `icno` varchar(40) DEFAULT NULL COMMENT '患者社保卡号', `persontype` varchar(40) DEFAULT NULL COMMENT '医保参保人员类型:11-在职职工', `patient_age` int(11) DEFAULT NULL, `providerId` varchar(40) DEFAULT NULL, `provider_name` varchar(255) DEFAULT '' COMMENT '科室名称', `subsequent_visit` int(11) NOT NULL COMMENT '是否复诊 0:否,1:是', `serviceId` varchar(40) DEFAULT NULL, `organ_id` varchar(40) NOT NULL, `organ_name` varchar(255) DEFAULT NULL, `dept_type` varchar(40) DEFAULT '1' COMMENT '部门类别: 1-科室,2-病区', `dept_id` varchar(40) NOT NULL COMMENT '部门id:科室id,病区id', `dept_name` varchar(255) DEFAULT NULL COMMENT '部门名称:科室名称,病区名称', `appointment_resource_id` varchar(40) DEFAULT NULL COMMENT '预约的资源id', `appointment_relate_id` varchar(40) DEFAULT NULL COMMENT '预约的资源引用id', `appointment_resource_name` varchar(255) DEFAULT NULL COMMENT '预约的资源名称', `appointment_resource_type` varchar(48) DEFAULT NULL COMMENT '预约的资源类型', `is_pregnancy` int(11) DEFAULT '0' COMMENT '是否孕妇:0:否 1.是', `is_appoint_resource` int(11) NOT NULL DEFAULT '0' COMMENT '是否指定的医生:0.否 1.是 (用于区分是否是患者自己指定的医生)', `transfer_from` varchar(255) DEFAULT NULL COMMENT '转诊来源', `data_source` varchar(255) DEFAULT '1' COMMENT '数据来源:1-网站;2-app;...', `occupy_volume` int(11) DEFAULT '1' COMMENT '预约时占用的数量', `is_sms_remind` int(11) DEFAULT '1' COMMENT '是否为短信提醒:1-是:0-否', `is_app_remind` int(11) DEFAULT '1' COMMENT '是否为app提醒:1-是:0-否', `sort` int(11) DEFAULT NULL COMMENT '等待列表排序', `is_plus` int(11) DEFAULT '0' COMMENT '是否是加号:0:否 1.是', `register_type` int(11) DEFAULT '0' COMMENT '挂号方式:0.预约转挂号 1.挂号', `arrival_time` datetime DEFAULT NULL COMMENT '到诊时间', `is_unusual_status` int(11) DEFAULT NULL COMMENT '是否 异常状态(排班删除引起):0.否 1.是', `creator` varchar(40) DEFAULT NULL, `cancel_time` datetime DEFAULT NULL COMMENT '取消操作操作时间', `reception_time` datetime DEFAULT NULL COMMENT '接诊时间', `cancel_user` varchar(255) DEFAULT NULL COMMENT '取消操作操作人', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预约挂号表';
患者挂号信息查询
select distinct CASE a.appointment_state WHEN -1 THEN '退号' ELSE '未退' END AS returnFlag, CASE a.is_appoint_resource WHEN 0 THEN '未指定医生' WHEN 1 THEN '指定医生' END as isAppointResource, -- 是否指定医生 a.create_time as guaHaoTime, -- 挂号时间 p.create_time as createDocTime, -- '建档时间' '挂号实收金额' as guaHaoRealMoney, '门诊实收金额' as menZenRealMoney, d.outpatient_number as blNumber, p.name as patientName, -- 患者姓名 a.dept_name, -- 科室名称 a.appointment_doctor_name as doctorName, -- 医生 CASE a.subsequent_visit WHEN 0 THEN '初诊' WHEN 1 THEN '复诊' WHEN 2 THEN '转诊' WHEN 3 THEN '急诊' WHEN 4 THEN '体检' WHEN 5 THEN '简易' WHEN 6 THEN '疫苗' END AS isReVisit, -- 初复诊 channel.name as sourceName, -- 信息(渠道)来源 p.birthday, -- 出生日期 if(c.id_no is null, if(c.other_type is null, null, (select e.name from `thc_warehouse`.`sys_type_info` e JOIN `thc_warehouse`.`sys_type` f ON e.sys_type_id = f.id WHERE f.`code` = 'THC_WH_PERSON_CARD' and e.value = c.other_type) ), '身份证') as cardType, -- 证件类型 if(c.id_no is null,c.other_no,c.id_no) as cardNo, -- 证件号码 p.address, -- 住址 p.household, -- 户籍 p.household_address, -- 户口所在地 a.patient_phone, -- 患者电话号 a.appointment_date, -- 预约日期 a.appointment_starttime, -- 预约开始时间 a.appointment_endtime, -- 预约结束时间 a.creator, -- 挂号员 a.dept_id, -- 部门ID a.orderId, -- 订单ID a.order_item_id, -- 订单明细id a.medical_card_number, -- 社保卡号 a.description, -- 备注 -- p.birth_address, -- 出生地 -- CONCAT(p.household_address->'$.householdAddressDetail',p.household_address->'$.province'), CASE a.data_source WHEN 1 THEN '网站' WHEN 2 THEN 'APP' END as dataSource -- 数据来源 from `thc_arrange`.`bpm_appointment` a left join `thc_passport`.`patient` p on a.patient_id = p.id left join `thc_passport`.`contact` c on a.patient_id = c.patient_id left join `thc_passport`.`patient_org` d on a.patient_id = d.patient_id left join `thc_c_union`.`member_channel` channel on a.channel_id = channel.id limit 10;
按照医生统计,(只统计了数量,尚未统计金额 )
-- ------------ -- 总挂号数 -- ------------ select t1.dept_name, t1.doctorName, t1.startTime, t1.endTime, IFNULL(t1.num,0) as num1, IFNULL(t2.num,0) as num2, IFNULL(t3.num,0) as num3, IFNULL(t4.num,0) as num4, IFNULL(t5.num,0) as num5, IFNULL(t6.num,0) as num6, IFNULL(t7.num,0) as num7, IFNULL(t8.num,0) as num8, IFNULL(t9.num,0) as num9, IFNULL(t10.num,0) as num10, IFNULL(t11.num,0) as num11, IFNULL(t12.num,0) as num12, IFNULL(t14.num,0) as num14, IFNULL(t15.num,0) as num15, IFNULL(t15.num,0) as num16, IFNULL(t15.num,0) as num17, IFNULL(t15.num,0) as num18, IFNULL(t15.num,0) as num19 from -- ------------ -- 总挂号数 -- ------------ ( select a.dept_name, a.appointment_doctor_name as doctorName, a.dept_id, a.appointment_doctor_id, count(1) as num, CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime, CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime from `thc_arrange`.`bpm_appointment` a group by a.dept_name,a.appointment_doctor_name ) t1 -- ------------ -- 退号 -- ------------ left join ( select a.dept_name,a.appointment_doctor_name as doctorName,count(1) as num from `thc_arrange`.`bpm_appointment` a where a.appointment_state = -1 group by a.dept_name,a.appointment_doctor_name ) t2 on t1.dept_name = t2.dept_name and t1.doctorName = t2.doctorName -- ------------ -- 实际挂号数 = 初诊数 + 复诊数 + 转诊数 -- ------------ left join ( select a.dept_name,a.appointment_doctor_name as doctorName, count(1) as num from `thc_arrange`.`bpm_appointment` a where a.subsequent_visit in (0,1,2) group by a.dept_name,a.appointment_doctor_name ) t3 on t1.dept_name = t3.dept_name and t1.doctorName = t3.doctorName -- ------------ -- 指定 -- ------------ left join ( select a.dept_name, -- 科室名称 a.appointment_doctor_name as doctorName, -- 医生 count(1) as num from `thc_arrange`.`bpm_appointment` a where a.is_appoint_resource = 1 group by a.dept_name,a.appointment_doctor_name ) t4 on t1.dept_name = t4.dept_name and t1.doctorName = t4.doctorName -- ------------ -- 初诊 -- ------------ left join ( select a.dept_name, -- 科室名称 a.appointment_doctor_name as doctorName, -- 医生 count(1) as num from `thc_arrange`.`bpm_appointment` a where a.subsequent_visit = 0 group by a.dept_name,a.appointment_doctor_name ) t5 on t1.dept_name = t5.dept_name and t1.doctorName = t5.doctorName -- ------------ -- 复诊 -- ------------ left join ( select a.dept_name, -- 科室名称 a.appointment_doctor_name as doctorName, -- 医生 count(1) as num from `thc_arrange`.`bpm_appointment` a where a.subsequent_visit = 1 group by a.dept_name,a.appointment_doctor_name ) t6 on t1.dept_name = t6.dept_name and t1.doctorName = t6.doctorName -- ------------ -- 体检 -- ------------ left join ( select a.dept_name, -- 科室名称 a.appointment_doctor_name as doctorName, -- 医生 count(1) as num from `thc_arrange`.`bpm_appointment` a where a.subsequent_visit = 4 group by a.dept_name,a.appointment_doctor_name ) t7 on t1.dept_name = t7.dept_name and t1.doctorName = t7.doctorName -- ------------ -- 团队 -- ------------ left join ( select a.dept_name, -- 科室名称 a.appointment_doctor_name as doctorName, -- 医生 count(1) as num from `thc_arrange`.`bpm_appointment` a where a.subsequent_visit = 7 group by a.dept_name,a.appointment_doctor_name ) t8 on t1.dept_name = t8.dept_name and t1.doctorName = t8.doctorName -- ------------ -- 简易 -- ------------ left join ( select a.dept_name, -- 科室名称 a.appointment_doctor_name as doctorName, -- 医生 count(1) as num from `thc_arrange`.`bpm_appointment` a where a.subsequent_visit = 5 group by a.dept_name,a.appointment_doctor_name ) t9 on t1.dept_name = t9.dept_name and t1.doctorName = t9.doctorName -- ------------ -- 转诊 -- ------------ left join ( select a.dept_name,a.appointment_doctor_name as doctorName,count(1) as num from `thc_arrange`.`bpm_appointment` a where a.subsequent_visit = 2 group by a.dept_name,a.appointment_doctor_name ) t10 on t1.dept_name = t10.dept_name and t1.doctorName = t10.doctorName -- ------------ -- 疫苗 -- ------------ left join ( select a.dept_name,a.appointment_doctor_name as doctorName,count(1) as num from `thc_arrange`.`bpm_appointment` a where a.subsequent_visit = 6 group by a.dept_name,a.appointment_doctor_name ) t11 on t1.dept_name = t11.dept_name and t1.doctorName = t11.doctorName -- ------------ -- 微信 -- ------------ left join ( select a.dept_name,a.appointment_doctor_name as doctorName,count(1) as num from `thc_arrange`.`bpm_appointment` a where a.data_source = 2 group by a.dept_name,a.appointment_doctor_name ) t12 on t1.dept_name = t12.dept_name and t1.doctorName = t12.doctorName -- ------------ -- 挂号费 t13 -- ------------ -- ------------ -- 急诊费 t14 -- ------------ left join ( select round(sum(t.realFee),2) as num, t.orderDept, t.orderDoctor from ( select ( b.preFee -- 原价 - b.discountFee -- 自费折扣金额 - b.promotionBenefitFee -- 活动优惠 - b.couponFee -- 优惠券优惠金额 - b.itemBenefitFee -- 身份卡优惠金额 - b.memberCardBenefitFee -- 会员卡优惠金额 - b.itemComInvBenefitFee -- 商业保险优惠金额 ) * b.discount AS realFee, d.orderDept, d.orderDoctor from `thc_rcm`.`Cs_Settlement` a join `thc_rcm`.`Cs_SettlementDetail` b on a.id = b.`settlementID` join `thc_rcm`.`Cs_AccountBill` d on b.accountBillID = d.id join `thc_rcm`.`Cs_AccountBillDetail` c on b.accountBillID = c.AccountBillId and b.accountBillDetailID = c.id and b.orderDetailId = c.orderDetailId where a.settlementType = 2 -- 门诊挂号 and a.isDelete = 0 and c.isDelete = 0 and d.isDelete = 0 and d.createtime >= '2018-03-14 13:30:00' and d.createtime <= '2018-11-30 21:00:00' and c.`itemCode` = 'jiajifei' -- 加急费:急诊费 ) t group by t.orderDept,t.orderDoctor ) t14 on t1.dept_id = t14.orderDept and t1.appointment_doctor_id = t14.orderDoctor -- ------------ -- 工本费 t15 -- ------------ left join ( select round(sum(t.realFee),2) as num, t.orderDept, t.orderDoctor from ( select ( b.preFee -- 原价 - b.discountFee -- 自费折扣金额 - b.promotionBenefitFee -- 活动优惠 - b.couponFee -- 优惠券优惠金额 - b.itemBenefitFee -- 身份卡优惠金额 - b.memberCardBenefitFee -- 会员卡优惠金额 - b.itemComInvBenefitFee -- 商业保险优惠金额 ) * b.discount AS realFee, d.orderDept, d.orderDoctor from `thc_rcm`.`Cs_Settlement` a join `thc_rcm`.`Cs_SettlementDetail` b on a.id = b.`settlementID` join `thc_rcm`.`Cs_AccountBill` d on b.accountBillID = d.id join `thc_rcm`.`Cs_AccountBillDetail` c on b.accountBillID = c.AccountBillId and b.accountBillDetailID = c.id and b.orderDetailId = c.orderDetailId where a.settlementType = 2 -- 门诊挂号 and a.isDelete = 0 and c.isDelete = 0 and d.isDelete = 0 and d.createtime >= '2018-03-14 13:30:00' and d.createtime <= '2018-11-30 21:00:00' and c.`itemCode` = 'bingliben' -- 病历本:工本费 ) t group by t.orderDept,t.orderDoctor ) t15 on t1.dept_id = t15.orderDept and t1.appointment_doctor_id = t15.orderDoctor -- ------------ -- 卡费 t16 -- ------------ left join ( select round(sum(t.realFee),2) as num, t.orderDept, t.orderDoctor from ( select ( b.preFee -- 原价 - b.discountFee -- 自费折扣金额 - b.promotionBenefitFee -- 活动优惠 - b.couponFee -- 优惠券优惠金额 - b.itemBenefitFee -- 身份卡优惠金额 - b.memberCardBenefitFee -- 会员卡优惠金额 - b.itemComInvBenefitFee -- 商业保险优惠金额 ) * b.discount AS realFee, d.orderDept, d.orderDoctor from `thc_rcm`.`Cs_Settlement` a join `thc_rcm`.`Cs_SettlementDetail` b on a.id = b.`settlementID` join `thc_rcm`.`Cs_AccountBill` d on b.accountBillID = d.id join `thc_rcm`.`Cs_AccountBillDetail` c on b.accountBillID = c.AccountBillId and b.accountBillDetailID = c.id and b.orderDetailId = c.orderDetailId where a.settlementType = 2 -- 门诊挂号 and a.isDelete = 0 and c.isDelete = 0 and d.isDelete = 0 and d.createtime >= '2018-03-14 13:30:00' and d.createtime <= '2018-11-30 21:00:00' and c.`itemCode` = 'jiuzhenka' -- 就诊卡:卡费 ) t group by t.orderDept,t.orderDoctor ) t16 on t1.dept_id = t16.orderDept and t1.appointment_doctor_id = t16.orderDoctor -- ------------ -- 现金 t17 -- ------------ left join ( select round(sum(t.realFee),2) as num, t.orderDept, t.orderDoctor from ( select ( b.preFee -- 原价 - b.discountFee -- 自费折扣金额 - b.promotionBenefitFee -- 活动优惠 - b.couponFee -- 优惠券优惠金额 - b.itemBenefitFee -- 身份卡优惠金额 - b.memberCardBenefitFee -- 会员卡优惠金额 - b.itemComInvBenefitFee -- 商业保险优惠金额 ) * b.discount AS realFee, d.orderDept, d.orderDoctor from `thc_rcm`.`Cs_Settlement` a join `thc_rcm`.`Cs_SettlementDetail` b on a.id = b.`settlementID` join `thc_rcm`.`Cs_AccountBill` d on b.accountBillID = d.id join `thc_rcm`.`Cs_AccountBillDetail` c on b.accountBillID = c.AccountBillId and b.accountBillDetailID = c.id and b.orderDetailId = c.orderDetailId join `thc_rcm`.`pay_trade_log` e on e.`settlement_id` = a.id where a.settlementType = 2 -- 门诊挂号 and a.isDelete = 0 and c.isDelete = 0 and d.isDelete = 0 and d.createtime >= '2018-03-14 13:30:00' and d.createtime <= '2018-11-30 21:00:00' and e.type = 1 -- 门诊 and e.pay_method = 1 -- 现金 ) t group by t.orderDept,t.orderDoctor ) t17 on t1.dept_id = t17.orderDept and t1.appointment_doctor_id = t17.orderDoctor -- ------------ -- 银行卡 t17 -- ------------ left join ( select round(sum(t.realFee),2) as num, t.orderDept, t.orderDoctor from ( select ( b.preFee -- 原价 - b.discountFee -- 自费折扣金额 - b.promotionBenefitFee -- 活动优惠 - b.couponFee -- 优惠券优惠金额 - b.itemBenefitFee -- 身份卡优惠金额 - b.memberCardBenefitFee -- 会员卡优惠金额 - b.itemComInvBenefitFee -- 商业保险优惠金额 ) * b.discount AS realFee, d.orderDept, d.orderDoctor from `thc_rcm`.`Cs_Settlement` a join `thc_rcm`.`Cs_SettlementDetail` b on a.id = b.`settlementID` join `thc_rcm`.`Cs_AccountBill` d on b.accountBillID = d.id join `thc_rcm`.`Cs_AccountBillDetail` c on b.accountBillID = c.AccountBillId and b.accountBillDetailID = c.id and b.orderDetailId = c.orderDetailId join `thc_rcm`.`pay_trade_log` e on e.`settlement_id` = a.id where a.settlementType = 2 -- 门诊挂号 and a.isDelete = 0 and c.isDelete = 0 and d.isDelete = 0 and d.createtime >= '2018-03-14 13:30:00' and d.createtime <= '2018-11-30 21:00:00' and e.type = 1 -- 门诊 and e.pay_method = 2 -- 现金 ) t group by t.orderDept,t.orderDoctor ) t18 on t1.dept_id = t18.orderDept and t1.appointment_doctor_id = t18.orderDoctor -- ------------ -- 预存款 t19 -- ------------ left join ( select round(sum(t.realFee),2) as num, t.orderDept, t.orderDoctor from ( select ( b.preFee -- 原价 - b.discountFee -- 自费折扣金额 - b.promotionBenefitFee -- 活动优惠 - b.couponFee -- 优惠券优惠金额 - b.itemBenefitFee -- 身份卡优惠金额 - b.memberCardBenefitFee -- 会员卡优惠金额 - b.itemComInvBenefitFee -- 商业保险优惠金额 ) * b.discount AS realFee, d.orderDept, d.orderDoctor from `thc_rcm`.`Cs_Settlement` a join `thc_rcm`.`Cs_SettlementDetail` b on a.id = b.`settlementID` join `thc_rcm`.`Cs_AccountBill` d on b.accountBillID = d.id join `thc_rcm`.`Cs_AccountBillDetail` c on b.accountBillID = c.AccountBillId and b.accountBillDetailID = c.id and b.orderDetailId = c.orderDetailId where a.settlementType = 2 -- 门诊挂号 and a.isDelete = 0 and c.isDelete = 0 and d.isDelete = 0 and d.createtime >= '2018-03-14 13:30:00' and d.createtime <= '2018-11-30 21:00:00' and c.`itemCode` = 'yujian' -- 预检:预存款 ) t group by t.orderDept,t.orderDoctor ) t19 on t1.dept_id = t19.orderDept and t1.appointment_doctor_id = t19.orderDoctor where t1.dept_name = '中医科' -- and t1.doctorName = '王艳' and t1.startTime >= '2018-03-14 13:30:00' and t1.endTime <= '2018-11-30 21:00:00' order by t1.startTime asc, t1.startTime asc;
病历本金额查询v1
select round(t.yuanFee,2), round(t.yuanFee * t.discount,2) as zheKouFee, t.orderDept, t.orderDoctor from ( select ( b.preFee -- 原价 - b.discountFee -- 自费折扣金额 - b.promotionBenefitFee -- 活动优惠 - b.couponFee -- 优惠券优惠金额 - b.itemBenefitFee -- 身份卡优惠金额 - b.memberCardBenefitFee -- 会员卡优惠金额 - b.itemComInvBenefitFee -- 商业保险优惠金额 ) AS yuanFee, b.discount, d.orderDept, d.orderDoctor from `thc_rcm`.`Cs_Settlement` a join `thc_rcm`.`Cs_SettlementDetail` b on a.id = b.`settlementID` join `thc_rcm`.`Cs_AccountBill` d on b.accountBillID = d.id join `thc_rcm`.`Cs_AccountBillDetail` c on b.accountBillID = c.AccountBillId and b.accountBillDetailID = c.id and b.orderDetailId = c.orderDetailId where a.settlementType = 2 -- 门诊挂号 and a.isDelete = 0 and c.isDelete = 0 and d.isDelete = 0 -- and c.`itemCode` = 'bingliben' -- 病历本:工本费 order by b.discount ) t
按部门查挂号信息:
select * from bpm_appointment where dept_type = 1;
WANTED-1277 - 门诊查询统计报表-挂号来源途径统计 PRD已完成
select count(1),DATE_FORMAT(appointment_date,'%Y-%m-%d'), -- 按日期还是月份展示 case data_source WHEN 1 THEN 'THC系统' WHEN 2 THEN 'App' END from bpm_appointment where DATE_FORMAT(appointment_date,'%Y-%m-%d') >= DATE_FORMAT('2018-02-09','%Y-%m-%d') and DATE_FORMAT(appointment_date,'%Y-%m-%d') <= DATE_FORMAT('2018-03-01','%Y-%m-%d') and subsequent_visit = 1 -- 0 复诊 1 初诊 group by date_format(appointment_date, '%Y-%m-%d'), data_source -- 按日期还是月份分组查询 order by appointment_date asc,data_source asc;
联查挂号和账单结算单
select a.patient_id, -- 患者ID a.patient_name, -- 患者姓名 a.patient_phone, -- 患者电话号 a.dept_id, -- 部门ID a.dept_name, -- 部门名称 a.orderId, -- 订单ID a.order_item_id, -- 订单明细id a.medical_card_number, -- 社保卡号,即身份证号 a.appointment_date, -- 预约日期 a.visit_number, -- 看诊序号 a.create_time, a.description -- 备注 from `thc_arrange`.`bpm_appointment` a join `thc_rcm`.`Cs_AccountBill` b on a.`orderId` = b.`orderID` join ( select distinct c.*,d.`accountBillID` from `thc_rcm`.`Cs_Settlement` c join `thc_rcm`.`Cs_SettlementDetail` d on c.id = d.`settlementID` where c.settlementType=2 ) t on b.`id` = t.accountBillID where b.orderType = 3
来自微信的单子?
`thc_rcm`.`pay_trade_log` 交易流水表
`thc_rcm`.`pay_payment` 支付方式表
-- WANTED-1283 门诊查询统计报表-挂号微信收入明细 select p.name as patientName, -- 患者姓名 p.birthday, -- 出生日期 d.outpatient_number as blNumber, -- 病历号 case p.sex WHEN 1 THEN '男' WHEN 2 THEN '女' END, -- 性别 b.flow_fee, -- 支付金额 (b.flow_fee - b.charge) as realMoney, b.charge, -- 手续费 b.pay_time, -- 缴费时间 a.create_time, -- 挂号时间 a.dept_name, -- 挂号科室名称 a.appointment_doctor_name as doctorName, -- 挂号医生 -- 挂号人 (select t.docname from ( SELECT u.clinic_id AS clinicid, u.id AS docid,u1.property_value AS docname FROM thc_warehouse.staff_record u LEFT JOIN thc_warehouse.staff_record_property u1 ON u1.property_code = 'SXX000083' AND u.id = u1.staff_record_id ) t where t.docid = a.creator and a.dept_id = t.clinicid) AS creater, e.name as guaHaoRen, CASE a.subsequent_visit WHEN 0 THEN '初诊' WHEN 1 THEN '复诊' WHEN 2 THEN '转诊' WHEN 3 THEN '急诊' WHEN 4 THEN '体检' WHEN 5 THEN '简易' WHEN 6 THEN '疫苗' END AS isReVisit -- 初复诊 from `thc_arrange`.`bpm_appointment` a join `thc_rcm`.`pay_trade_log` b on a.`patient_id` = b.`patient_id` join `thc_rcm`.`pay_payment` e on e.value = b.`pay_method` left join `thc_passport`.`patient` p on a.patient_id = p.id left join `thc_passport`.`contact` c on a.patient_id = c.patient_id left join `thc_passport`.`patient_org` d on a.patient_id = d.patient_id -- WHERE b.type = 1 -- 门诊 -- and b.`pay_method` = 4 -- 微信支付 limit 100;
帆软:行转列/列转行
http://help.finereport.com/doc-view-1759
-- ------------------------ -- 门诊查询统计报表-体检信息查询V1.0 -- ------------------------ SELECT e.outpatient_number as blNumber, -- 病历号 a.patient_name, -- 患者姓名 a.birthday, -- 出生日期 b.advice_name, -- 项目名称 b.item_num, -- 数量 '次' as unit, -- 单位 b.total_price as singlePrice, -- 单价 -- 开单医生 (select t.docname from ( SELECT u.clinic_id AS clinicid, u.id AS docid,u1.property_value AS docname FROM thc_warehouse.staff_record u LEFT JOIN thc_warehouse.staff_record_property u1 ON u1.property_code = 'SXX000083' AND u.id = u1.staff_record_id ) t where t.docid = c.creator ) AS creater, -- and a.dept_id = t.clinicid c.create_time, -- 开单时间 a.set_meal_name -- 套餐名称 from `thc_phr`.`physical_exam` a join `thc_phr`.`physical_exam_item` b on a.id = b.physical_exam_id join `thc_market`.`setmeal_order_info` c on c.id= b.`order_id` join `thc_market`.`setmeal_order_detail` d on b.order_id = d.order_id and b.order_sn = d.sn and c.id = d.`order_id` and b.order_item_id = d.id left join `thc_passport`.`patient_org` e on a.patient_id = e.patient_id order by blNumber asc, patient_name asc
-- ------------------------ -- 门诊查询统计报表-体检信息查询 V2.0 -- ------------------------ SELECT e.outpatient_number as blNumber, -- 病历号 a.patient_name, -- 患者姓名 a.birthday, -- 出生日期 b.advice_name, -- 项目名称 b.item_num, -- 数量 '次' as unit, -- 单位 round(b.price,2) as singlePrice, -- 单价 round(b.price_dis,2) as shouldPay, -- 应收金额 '核算科室' settleDept, -- 核算科室 a.prov_name, -- 科室名称 【无值?】 a.prov_id, -- 科室ID 【无值?】 c.sale_dept_name, -- 开单科室(销售部门)【?】 c.sale_man_name, -- 开单医生(销售人员) 【?】 c.creator_name, -- 开单医生(单子的创建人)【?】 c.create_time, -- 开单时间 a.set_meal_name -- 体检标题(套餐名称) from `thc_phr`.`physical_exam` a -- 体检单 join `thc_phr`.`physical_exam_item` b on a.id = b.physical_exam_id -- 体检明细单 join `thc_market`.`setmeal_order_info` c on c.id= b.`order_id` -- market 的 订单 join `thc_market`.`setmeal_order_detail` d on b.order_id = d.order_id and b.order_sn = d.sn and c.id = d.`order_id` and b.order_item_id = d.id -- market 的 订单明细表 left join `thc_passport`.`patient_org` e on a.patient_id = e.patient_id order by blNumber asc, patient_name asc -- where c.sale_dept_name = '${deptName}' -- 科室 【?】 -- and c.creator_name = '${doctorName}' -- 医生 【?】 -- and '核算科室' = '${核算科室}' -- 核算科室 【?】 -- and c.create_time > '${startTime}' -- 开始时间 【?】 -- and c.create_time < '${endTime}' -- 结束时间 【?】 -- and a.patient_name like '%${patientName}%' -- 姓名 -- and e.outpatient_number like '%${blNumber}%' -- 病历号 -- and a.set_meal_name like '%${title}%' -- 体检标题 【?】