Merge branch 'master' of ssh://git.jizhiweb.cn:2222/clinic-v2/server
This commit is contained in:
commit
0bed77b5d7
|
|
@ -254,4 +254,12 @@ public class SocialRequest {
|
|||
JSONObject jsonObject = httpUtil.callBackMsgId("3101", "data", im3101.buildToMap(), 10000);
|
||||
DebugUtil.out(jsonObject);
|
||||
}
|
||||
|
||||
public JSONObject callMerge31013102(Map<String,Object> map,String code) {
|
||||
JSONObject jsonObject = httpUtil.callBackMsgId(code, "data", map, 10000);
|
||||
|
||||
DebugUtil.out(jsonObject);
|
||||
|
||||
return jsonObject;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@ public class RegistrationController extends BaseController {
|
|||
if (registration == null) {
|
||||
throw new MessageException("data参数为空");
|
||||
}
|
||||
|
||||
patientRegistrationService.updateById(registration);
|
||||
return success();
|
||||
}
|
||||
|
|
@ -123,7 +124,7 @@ public class RegistrationController extends BaseController {
|
|||
@RequestMapping("/getListByType")
|
||||
public Result<Page<PatientRegistration>> getListByType() {
|
||||
RegistrationQuery query = parmsUtil.getObject("query", RegistrationQuery.class);
|
||||
return success(patientRegistrationService.getPageByType(query));
|
||||
return success(patientRegistrationService.getListByType(query));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -87,12 +87,12 @@ public class StatisticsController extends BaseController {
|
|||
* 获取收费队列 就诊队列数量
|
||||
*/
|
||||
@RequestMapping("/getTipCount")
|
||||
public Result<TipCountVo> getChargeQueueCount() {
|
||||
public Result<TipCountVo> getTipCount() {
|
||||
String begin = parmsUtil.getString("beginTime", "开始时间为空");
|
||||
String end = parmsUtil.getString("endTime", "结束时间为空");
|
||||
LocalDateTime beginTime = DateUtil.getDateTime(begin);
|
||||
LocalDateTime endTime = DateUtil.getDateTime(end);
|
||||
return success( statisticsService.getWaitCount(beginTime, endTime));
|
||||
return success( statisticsService.getTipCount(beginTime, endTime));
|
||||
}
|
||||
/**
|
||||
* 商品统计
|
||||
|
|
|
|||
|
|
@ -1,25 +1,25 @@
|
|||
package com.syjiaer.clinic.server.entity.patient;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
/**
|
||||
* <p>
|
||||
* 挂号表
|
||||
* </p>
|
||||
*
|
||||
* @author NiuZiYuan
|
||||
* @since 2025-04-30
|
||||
* @since 2025-05-23
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
|
|
@ -55,6 +55,9 @@ public class PatientRegistration implements Serializable {
|
|||
@ApiModelProperty("挂号时间")
|
||||
private LocalDateTime createDatetime;
|
||||
|
||||
@ApiModelProperty("挂号时间")
|
||||
private LocalDateTime updateDatetime;
|
||||
|
||||
@ApiModelProperty("推荐")
|
||||
private String recommendations;
|
||||
|
||||
|
|
@ -93,4 +96,11 @@ public class PatientRegistration implements Serializable {
|
|||
|
||||
@ApiModelProperty("流水号")
|
||||
private String fstNo;
|
||||
|
||||
@ApiModelProperty("挂号时间")
|
||||
private LocalDateTime appointmentTime;
|
||||
|
||||
@ApiModelProperty("是否预约")
|
||||
@TableField(exist = false)
|
||||
private Boolean isAppointment;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -79,4 +79,6 @@ public class RegistrationSaveDto {
|
|||
|
||||
@ApiModelProperty("医保余额")
|
||||
private BigDecimal insuBalance;
|
||||
@ApiModelProperty("预约时间")
|
||||
private String appointmentTime;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalItemList;
|
|||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -27,5 +28,15 @@ public interface DiagnosisMedicalItemListMapper extends BaseMapper<DiagnosisMedi
|
|||
" FROM diagnosis_medical_item_list AS dmil LEFT JOIN item ON dmil.item_id = item.id" +
|
||||
" WHERE dmil.diagnosis_code = #{code} ")
|
||||
List<ChargeItemListVo> selectDetailByCode(String code);
|
||||
|
||||
|
||||
@Select("SELECT" +
|
||||
" dmil.unit AS selected_unit," +
|
||||
" dmil.unit_price AS selected_price," +
|
||||
" dmil.number AS selected_num," +
|
||||
" item.*" +
|
||||
" FROM diagnosis_medical_item_list AS dmil LEFT JOIN item ON dmil.item_id = item.id" +
|
||||
" WHERE dmil.diagnosis_code = #{code} and item.del_flag != 1")
|
||||
List<ChargeItemListVo> selectDetailByCodeNotDelete(String code);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,437 @@
|
|||
package com.syjiaer.clinic.server.service.diagnosis;
|
||||
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.syjiaer.clinic.server.common.api.input.IM3101;
|
||||
import com.syjiaer.clinic.server.common.api.input.im3101.FsiDiagnoseDtos;
|
||||
import com.syjiaer.clinic.server.common.api.input.im3101.FsiEncounterDtos;
|
||||
import com.syjiaer.clinic.server.common.api.input.im3101.FsiOrderDtos;
|
||||
import com.syjiaer.clinic.server.common.api.input.im3101.PatientDtos;
|
||||
import com.syjiaer.clinic.server.common.api.request.SocialRequest;
|
||||
import com.syjiaer.clinic.server.common.util.DebugUtil;
|
||||
import com.syjiaer.clinic.server.entity.charge.vo.ChargeItemListVo;
|
||||
import com.syjiaer.clinic.server.entity.diagnosis.Diagnosis;
|
||||
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalGoodsList;
|
||||
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalItemList;
|
||||
import com.syjiaer.clinic.server.entity.diagnosis.DiagnosisMedicalRecord;
|
||||
import com.syjiaer.clinic.server.entity.item.ItemGroupList;
|
||||
import com.syjiaer.clinic.server.entity.organization.OrganizationMember;
|
||||
import com.syjiaer.clinic.server.entity.patient.PatientInfo;
|
||||
import com.syjiaer.clinic.server.entity.patient.PatientRegistration;
|
||||
import com.syjiaer.clinic.server.entity.social.SocialDiagnose;
|
||||
import com.syjiaer.clinic.server.entity.social.SocialUser;
|
||||
import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMapper;
|
||||
import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalGoodsListMapper;
|
||||
import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalItemListMapper;
|
||||
import com.syjiaer.clinic.server.mapper.diagnosis.DiagnosisMedicalRecordMapper;
|
||||
import com.syjiaer.clinic.server.mapper.item.ItemGroupListMapper;
|
||||
import com.syjiaer.clinic.server.mapper.organization.OrganizationMemberMapper;
|
||||
import com.syjiaer.clinic.server.mapper.patient.PatientInfoMapper;
|
||||
import com.syjiaer.clinic.server.mapper.patient.PatientRegistrationMapper;
|
||||
import com.syjiaer.clinic.server.mapper.social.SocialUserMapper;
|
||||
import com.syjiaer.clinic.server.service.BaseService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.syjiaer.clinic.server.common.config.Config;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class CheckService extends BaseService {
|
||||
|
||||
@Autowired
|
||||
private PatientRegistrationMapper patientRegistrationMapper;
|
||||
|
||||
@Autowired
|
||||
private SocialUserMapper socialUserMapper;
|
||||
|
||||
@Autowired
|
||||
private DiagnosisMapper diagnosisMapper;
|
||||
|
||||
@Autowired
|
||||
private PatientInfoMapper patientInfoMapper;
|
||||
|
||||
@Autowired
|
||||
private Config config;
|
||||
|
||||
@Autowired
|
||||
private DiagnosisMedicalRecordMapper diagnosisMedicalRecordMapper;
|
||||
|
||||
@Autowired
|
||||
private OrganizationMemberMapper organizationMemberMapper;
|
||||
|
||||
@Autowired
|
||||
private DiagnosisMedicalGoodsListMapper diagnosisMedicalGoodsListMapper;
|
||||
|
||||
@Autowired
|
||||
private DiagnosisMedicalItemListMapper diagnosisMedicalItemListMapper;
|
||||
|
||||
@Autowired
|
||||
private ItemGroupListMapper itemGroupListMapper;
|
||||
|
||||
@Autowired
|
||||
private SocialRequest socialRequest;
|
||||
|
||||
public PatientRegistration getPatientRegistrationInfo(Integer registrationId)
|
||||
{
|
||||
return patientRegistrationMapper.selectById(registrationId);
|
||||
}
|
||||
|
||||
public void loggerInfo(String message,Object data) {
|
||||
log.info("CheckService:事前事中:{} :extra:{}", message, data);
|
||||
}
|
||||
|
||||
public void check(Integer registrationId,String imCode)
|
||||
{
|
||||
loggerInfo("接收到数据请求:registrationId:"+registrationId,null);
|
||||
|
||||
try {
|
||||
// 获取挂号信息
|
||||
PatientRegistration patientRegistrationInfo = getPatientRegistrationInfo(registrationId);
|
||||
|
||||
if (patientRegistrationInfo == null)
|
||||
{
|
||||
loggerInfo("挂号表数据为空",null);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (patientRegistrationInfo.getType() != 2)
|
||||
{
|
||||
loggerInfo("挂号数据非医保类型",null);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (patientRegistrationInfo.getStatus() != 3)
|
||||
{
|
||||
loggerInfo("挂号数据非已诊状态",null);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
//获取诊断主表
|
||||
QueryWrapper<Diagnosis> diagnosisQueryWrapper = new QueryWrapper<>();
|
||||
diagnosisQueryWrapper.eq("registration_id", registrationId);
|
||||
diagnosisQueryWrapper.last("limit 1");
|
||||
Diagnosis diagnosis = diagnosisMapper.selectOne(diagnosisQueryWrapper);
|
||||
|
||||
if (diagnosis == null)
|
||||
{
|
||||
loggerInfo("诊断数据不存在",null);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
//获取患者信息
|
||||
PatientInfo patientInfo = patientInfoMapper.selectById(diagnosis.getPatientId());
|
||||
|
||||
if (patientInfo==null)
|
||||
{
|
||||
loggerInfo("患者信息不存在",null);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
//查询医保用户信息
|
||||
QueryWrapper<SocialUser> socialUserQueryWrapper = new QueryWrapper<>();
|
||||
socialUserQueryWrapper.eq("certno", patientInfo.getCertNo());
|
||||
socialUserQueryWrapper.last("limit 1");
|
||||
SocialUser socialUserInfo = socialUserMapper.selectOne(socialUserQueryWrapper);
|
||||
|
||||
if (socialUserInfo==null)
|
||||
{
|
||||
loggerInfo("医保用户信息不存在",null);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
//查询病例 病例 diagnosis_medical_record
|
||||
QueryWrapper<DiagnosisMedicalRecord> diagnosisMedicalRecordWrapper = new QueryWrapper<>();
|
||||
diagnosisMedicalRecordWrapper.eq("diagnosis_code",diagnosis.getCode());
|
||||
DiagnosisMedicalRecord record = diagnosisMedicalRecordMapper.selectOne(diagnosisMedicalRecordWrapper);
|
||||
|
||||
if (record==null)
|
||||
{
|
||||
loggerInfo("诊断信息为空",null);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
//医生信息
|
||||
OrganizationMember organizationMember = organizationMemberMapper.selectById(patientRegistrationInfo.getOrganizationDoctorId());
|
||||
|
||||
if (organizationMember==null)
|
||||
{
|
||||
loggerInfo("医生信息不存在",null);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String,Object> requestMap = mergeRequestParam(socialUserInfo,patientRegistrationInfo,diagnosis,record,organizationMember);
|
||||
|
||||
loggerInfo("组织请求接口数据",requestMap);
|
||||
|
||||
Map<String,Object> callResult = socialRequest.callMerge31013102(requestMap,imCode);
|
||||
|
||||
loggerInfo("调用成功",callResult);
|
||||
} catch (Exception e) {
|
||||
log.error("事前事中:error_message:{}",e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Map<String,Object> mergeRequestParam(SocialUser socialUser, PatientRegistration patientRegistration, Diagnosis diagnosis, DiagnosisMedicalRecord record, OrganizationMember organizationMember)
|
||||
{
|
||||
IM3101 im3101 = new IM3101();
|
||||
|
||||
im3101.setSyscode(config.get("social", "syscode"));
|
||||
im3101.setTrigScen("1");
|
||||
PatientDtos patientDtos = new PatientDtos();
|
||||
patientDtos.setPatnId(socialUser.getPsnNo());
|
||||
patientDtos.setPatnName(socialUser.getPsnName());
|
||||
patientDtos.setGend(Integer.valueOf(socialUser.getGend()));
|
||||
patientDtos.setBrdy(socialUser.getBrdy());
|
||||
patientDtos.setPoolarea(patientRegistration.getInsutype());
|
||||
patientDtos.setCurrMdtrtId(socialUser.getPsnNo());
|
||||
im3101.setPatientDtos(patientDtos);
|
||||
|
||||
|
||||
FsiEncounterDtos fsiEncounterDtos = new FsiEncounterDtos();
|
||||
fsiEncounterDtos.setMdtrtId(diagnosis.getCode());
|
||||
fsiEncounterDtos.setMedinsId(config.get("social", "medinsId"));
|
||||
fsiEncounterDtos.setMedinsName(config.get("social", "fixmedinsName"));
|
||||
fsiEncounterDtos.setMedinsAdmdvs(config.get("social", "insuplcAdmdvs"));
|
||||
//定点医疗机构-1 定点零售药店-2 工伤定点康复机构-3 辅助器具配置机构-4 计划生育服务机构-5
|
||||
fsiEncounterDtos.setMedinsType("1");
|
||||
// 目前不知道啥意思写死05
|
||||
fsiEncounterDtos.setMedinsLv("05");
|
||||
fsiEncounterDtos.setAdmDate(diagnosis.getCreateTime());
|
||||
fsiEncounterDtos.setDscgDate(diagnosis.getCreateTime());
|
||||
// 获取主诊断
|
||||
List<SocialDiagnose> diagnoseList = JSONArray.parseArray(record.getDiagnosisDetail(),SocialDiagnose.class);
|
||||
fsiEncounterDtos.setDscgMainDiseCodg(diagnoseList.get(0).getCode());
|
||||
fsiEncounterDtos.setDscgMainDiseName(diagnoseList.get(0).getName());
|
||||
patientDtos.setFsiEncounterDtos(fsiEncounterDtos);
|
||||
|
||||
//诊断信息DTO
|
||||
List<FsiDiagnoseDtos> fsiDiagnoseDtosList= new ArrayList<>();
|
||||
for (int i = 0; i < diagnoseList.size(); i++) {
|
||||
SocialDiagnose diagnoseInfo = diagnoseList.get(i);
|
||||
|
||||
//主诊断是1 其他的诊断是0
|
||||
String maindiseFlag = "0";
|
||||
|
||||
if (i==0) {
|
||||
maindiseFlag = "1";
|
||||
}
|
||||
|
||||
FsiDiagnoseDtos fsiDiagnoseDtos = new FsiDiagnoseDtos();
|
||||
fsiDiagnoseDtos.setDiseId(diagnosis.getCode()+"_"+i);
|
||||
//干啥的不知道 默认1
|
||||
fsiDiagnoseDtos.setInoutDiseType("1");
|
||||
// 主诊断是1 别的是0 第一个是1其他的是0
|
||||
fsiDiagnoseDtos.setMaindiseFlag(maindiseFlag);
|
||||
//数组下标 从1开始
|
||||
fsiDiagnoseDtos.setDiasSrtNo(String.valueOf(i + 1));
|
||||
fsiDiagnoseDtos.setDiseCodg(diagnoseInfo.getCode());
|
||||
fsiDiagnoseDtos.setDiseName(diagnoseInfo.getName());
|
||||
//取diagnosis创建时间
|
||||
fsiDiagnoseDtos.setDiseDate(diagnosis.getCreateTime());
|
||||
fsiDiagnoseDtosList.add(fsiDiagnoseDtos);
|
||||
}
|
||||
fsiEncounterDtos.setFsiDiagnoseDtos(fsiDiagnoseDtosList);
|
||||
|
||||
//医生表里面查
|
||||
fsiEncounterDtos.setDrCodg(organizationMember.getSocialMemberCode());
|
||||
//下面的4个瞎写 写死就行
|
||||
fsiEncounterDtos.setAdmDeptCodg("XY");
|
||||
fsiEncounterDtos.setAdmDeptName("西医科");
|
||||
fsiEncounterDtos.setDscgDeptCodg("XY");
|
||||
fsiEncounterDtos.setDscgDeptName("西医科");
|
||||
//这玩意儿没有 字典表没有
|
||||
fsiEncounterDtos.setMedMdtrtType("1");
|
||||
// 11是普通门诊 110104是门诊统筹
|
||||
fsiEncounterDtos.setMedType("11");
|
||||
|
||||
|
||||
//处方(医嘱)信息 医疗服务信息*------------------------------------------------------------------------------------------------------------
|
||||
|
||||
List<FsiOrderDtos> fsiOrderDtosList= new ArrayList<>();
|
||||
//获取病例商品信息 和 病例服务信息
|
||||
List<DiagnosisMedicalGoodsList> goodsList = diagnosisMedicalGoodsListMapper.listByDiagnosisCode(diagnosis.getCode());
|
||||
List<ChargeItemListVo> itemList = diagnosisMedicalItemListMapper.selectDetailByCodeNotDelete(diagnosis.getCode());
|
||||
|
||||
for (DiagnosisMedicalGoodsList goodsInfo : goodsList) {
|
||||
FsiOrderDtos fsiOrderDtos = new FsiOrderDtos();
|
||||
fsiOrderDtos.setRxId(String.valueOf(goodsInfo.getId()));
|
||||
fsiOrderDtos.setRxno(String.valueOf(goodsInfo.getId()));
|
||||
//[1=是,0=否]
|
||||
fsiOrderDtos.setLongDrordFlag("0");
|
||||
//101 西药中成药 104 民族药
|
||||
//102 中药饮片 201 医疗服务项目
|
||||
//103 自制剂 301 医用耗材
|
||||
fsiOrderDtos.setHilistType("101");
|
||||
//收费类别 传啥不知道 ----字典表没有
|
||||
fsiOrderDtos.setChrgType("02");
|
||||
// 传啥不知道 ----字典表没有
|
||||
fsiOrderDtos.setDrordBhvr("0");
|
||||
fsiOrderDtos.setHilistCode(goodsInfo.getSocialCode());
|
||||
fsiOrderDtos.setHilistName(goodsInfo.getName());
|
||||
fsiOrderDtos.setHilistDosform(goodsInfo.getUnit());
|
||||
//穿啥不知道 写死的
|
||||
fsiOrderDtos.setHilistLv("01");
|
||||
fsiOrderDtos.setHilistPric(goodsInfo.getUnitPrice());
|
||||
fsiOrderDtos.setHosplistCode(goodsInfo.getSocialCode());
|
||||
fsiOrderDtos.setHosplistName(goodsInfo.getName());
|
||||
//数量 取diagnosis_medical_goods_list number字段
|
||||
fsiOrderDtos.setCnt(BigDecimal.valueOf(goodsInfo.getNumber()));
|
||||
fsiOrderDtos.setPric(goodsInfo.getUnitPrice());
|
||||
fsiOrderDtos.setSumamt(goodsInfo.getUnitPrice().multiply(BigDecimal.valueOf(goodsInfo.getNumber())));
|
||||
fsiOrderDtos.setOwnpayAmt(goodsInfo.getUnitPrice().multiply(BigDecimal.valueOf(goodsInfo.getNumber())));
|
||||
fsiOrderDtos.setSelfpayAmt(goodsInfo.getUnitPrice().multiply(BigDecimal.valueOf(goodsInfo.getNumber())));
|
||||
fsiOrderDtos.setSpec(goodsInfo.getUnit());
|
||||
fsiOrderDtos.setSpecUnt(goodsInfo.getUnit());
|
||||
fsiOrderDtos.setDrordBegnDate(diagnosis.getCreateTime());
|
||||
fsiOrderDtos.setDrordDeptCodg("XY");
|
||||
fsiOrderDtos.setDrordDeptName("西医科");
|
||||
fsiOrderDtos.setDrordDrCodg(organizationMember.getSocialMemberCode());
|
||||
fsiOrderDtos.setDrordDrName(organizationMember.getName());
|
||||
// 7.171开单医生职称(drord_dr_profttl)
|
||||
// 主任医师-231 副主任医师-232 主诊医师-233 医师-234 医士-235
|
||||
fsiOrderDtos.setDrordDrProfttl("235");
|
||||
//本次处方(医嘱)标记[1=是,0=否]
|
||||
fsiOrderDtos.setCurrDrordFlag("1");
|
||||
fsiOrderDtosList.add(fsiOrderDtos);
|
||||
}
|
||||
|
||||
|
||||
for (ChargeItemListVo itemInfo : itemList)
|
||||
{
|
||||
if (!itemInfo.getIsGroup()) {
|
||||
FsiOrderDtos fsiOrderDtos = new FsiOrderDtos();
|
||||
fsiOrderDtos.setRxId(String.valueOf(itemInfo.getId()));
|
||||
fsiOrderDtos.setRxno(String.valueOf(itemInfo.getId()));
|
||||
//[1=是,0=否]
|
||||
fsiOrderDtos.setLongDrordFlag("0");
|
||||
//101 西药中成药 104 民族药
|
||||
//102 中药饮片 201 医疗服务项目
|
||||
//103 自制剂 301 医用耗材
|
||||
fsiOrderDtos.setHilistType("201");
|
||||
//收费类别 传啥不知道 ----字典表没有
|
||||
fsiOrderDtos.setChrgType("02");
|
||||
// 传啥不知道 ----字典表没有
|
||||
fsiOrderDtos.setDrordBhvr("0");
|
||||
fsiOrderDtos.setHilistCode(itemInfo.getItemSocialCode());
|
||||
fsiOrderDtos.setHilistName(itemInfo.getItemName());
|
||||
fsiOrderDtos.setHilistDosform(itemInfo.getSelectedUnit());
|
||||
//穿啥不知道 写死的
|
||||
fsiOrderDtos.setHilistLv("01");
|
||||
//把itemInfo.getSelectedUnit()转化成BigDecimal价格
|
||||
fsiOrderDtos.setHilistPric(itemInfo.getSelectedPrice());
|
||||
fsiOrderDtos.setHosplistCode(itemInfo.getItemSocialCode());
|
||||
fsiOrderDtos.setHosplistName(itemInfo.getItemName());
|
||||
//数量 取diagnosis_medical_goods_list number字段
|
||||
fsiOrderDtos.setCnt(BigDecimal.valueOf(itemInfo.getSelectedNum()));
|
||||
fsiOrderDtos.setPric(itemInfo.getUnitPrice());
|
||||
fsiOrderDtos.setSumamt(itemInfo.getUnitPrice().multiply(BigDecimal.valueOf(itemInfo.getSelectedNum())));
|
||||
fsiOrderDtos.setOwnpayAmt(itemInfo.getUnitPrice().multiply(BigDecimal.valueOf(itemInfo.getSelectedNum())));
|
||||
fsiOrderDtos.setSelfpayAmt(itemInfo.getUnitPrice().multiply(BigDecimal.valueOf(itemInfo.getSelectedNum())));
|
||||
fsiOrderDtos.setSpec(itemInfo.getSelectedUnit());
|
||||
fsiOrderDtos.setSpecUnt(itemInfo.getSelectedUnit());
|
||||
fsiOrderDtos.setDrordBegnDate(diagnosis.getCreateTime());
|
||||
fsiOrderDtos.setDrordDeptCodg("XY");
|
||||
fsiOrderDtos.setDrordDeptName("西医科");
|
||||
fsiOrderDtos.setDrordDrCodg(organizationMember.getSocialMemberCode());
|
||||
fsiOrderDtos.setDrordDrName(organizationMember.getName());
|
||||
// 7.171开单医生职称(drord_dr_profttl)
|
||||
// 主任医师-231 副主任医师-232 主诊医师-233 医师-234 医士-235
|
||||
fsiOrderDtos.setDrordDrProfttl("235");
|
||||
//本次处方(医嘱)标记[1=是,0=否]
|
||||
fsiOrderDtos.setCurrDrordFlag("1");
|
||||
fsiOrderDtosList.add(fsiOrderDtos);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
QueryWrapper<ItemGroupList> itemGroupListWrapper = new QueryWrapper<>();
|
||||
itemGroupListWrapper.eq("item_id",itemInfo.getId());
|
||||
itemGroupListWrapper.ne("del_flag",1);
|
||||
List<ItemGroupList> itemGroupList = itemGroupListMapper.selectList(itemGroupListWrapper);
|
||||
|
||||
for (ItemGroupList itemGroupInfo : itemGroupList){
|
||||
FsiOrderDtos fsiOrderDtos = new FsiOrderDtos();
|
||||
fsiOrderDtos.setRxId(String.valueOf(itemGroupInfo.getId()));
|
||||
fsiOrderDtos.setRxno(String.valueOf(itemGroupInfo.getId()));
|
||||
//[1=是,0=否]
|
||||
fsiOrderDtos.setLongDrordFlag("0");
|
||||
//101 西药中成药 104 民族药
|
||||
//102 中药饮片 201 医疗服务项目
|
||||
//103 自制剂 301 医用耗材
|
||||
fsiOrderDtos.setHilistType("201");
|
||||
//收费类别 传啥不知道 ----字典表没有
|
||||
fsiOrderDtos.setChrgType("02");
|
||||
// 传啥不知道 ----字典表没有
|
||||
fsiOrderDtos.setDrordBhvr("0");
|
||||
fsiOrderDtos.setHilistCode(itemGroupInfo.getSocialCode());
|
||||
fsiOrderDtos.setHilistName(itemGroupInfo.getName());
|
||||
fsiOrderDtos.setHilistDosform(itemGroupInfo.getUnit());
|
||||
//穿啥不知道 写死的
|
||||
fsiOrderDtos.setHilistLv("01");
|
||||
//把itemInfo.getSelectedUnit()转化成BigDecimal价格
|
||||
fsiOrderDtos.setHilistPric(itemGroupInfo.getUnitPrice());
|
||||
fsiOrderDtos.setHosplistCode(itemGroupInfo.getSocialCode());
|
||||
fsiOrderDtos.setHosplistName(itemGroupInfo.getName());
|
||||
//数量 取diagnosis_medical_goods_list number字段
|
||||
//用itemInfo.getSelectedNum() * itemGroupInfo.getNumber()
|
||||
fsiOrderDtos.setCnt(BigDecimal.valueOf(itemInfo.getSelectedNum() * itemGroupInfo.getNumber()));
|
||||
fsiOrderDtos.setPric(itemGroupInfo.getUnitPrice());
|
||||
|
||||
BigDecimal totel = itemGroupInfo.getUnitPrice().multiply(BigDecimal.valueOf(itemInfo.getSelectedNum() * itemGroupInfo.getNumber()));
|
||||
fsiOrderDtos.setSumamt(totel);
|
||||
fsiOrderDtos.setOwnpayAmt(totel);
|
||||
fsiOrderDtos.setSelfpayAmt(totel);
|
||||
fsiOrderDtos.setSpec(itemGroupInfo.getUnit());
|
||||
fsiOrderDtos.setSpecUnt(itemGroupInfo.getUnit());
|
||||
fsiOrderDtos.setDrordBegnDate(diagnosis.getCreateTime());
|
||||
fsiOrderDtos.setDrordDeptCodg("XY");
|
||||
fsiOrderDtos.setDrordDeptName("西医科");
|
||||
fsiOrderDtos.setDrordDrCodg(organizationMember.getSocialMemberCode());
|
||||
fsiOrderDtos.setDrordDrName(organizationMember.getName());
|
||||
// 7.171开单医生职称(drord_dr_profttl)
|
||||
// 主任医师-231 副主任医师-232 主诊医师-233 医师-234 医士-235
|
||||
fsiOrderDtos.setDrordDrProfttl("235");
|
||||
//本次处方(医嘱)标记[1=是,0=否]
|
||||
fsiOrderDtos.setCurrDrordFlag("1");
|
||||
fsiOrderDtosList.add(fsiOrderDtos);
|
||||
}
|
||||
}
|
||||
|
||||
fsiEncounterDtos.setFsiOrderDtos(fsiOrderDtosList);
|
||||
|
||||
// 计算fsiOrderDtosList中所有元素的sumamt的总和
|
||||
BigDecimal sumamt = fsiOrderDtosList.stream().map(FsiOrderDtos::getSumamt).reduce(BigDecimal::add).get();
|
||||
|
||||
fsiEncounterDtos.setMatnStas("0");
|
||||
fsiEncounterDtos.setMedfeeSumamt(sumamt);
|
||||
fsiEncounterDtos.setOwnpayAmt(sumamt);
|
||||
fsiEncounterDtos.setSelfpayAmt(sumamt);
|
||||
fsiEncounterDtos.setAcctPayamt(sumamt);
|
||||
fsiEncounterDtos.setMaAmt(new BigDecimal("0"));
|
||||
fsiEncounterDtos.setHifpPayamt(new BigDecimal("0"));
|
||||
fsiEncounterDtos.setSetlTotlnum(1);
|
||||
//在 social_user data字段中找
|
||||
fsiEncounterDtos.setInsutype(patientRegistration.getInsutype());
|
||||
//报销标志
|
||||
fsiEncounterDtos.setReimFlag("1");
|
||||
fsiEncounterDtos.setOutSetlFlag("0");
|
||||
|
||||
// socialRequest.call3101(im3101);
|
||||
return im3101.buildToMap();
|
||||
}
|
||||
}
|
||||
|
|
@ -124,6 +124,7 @@ public class DiagnosisService extends BaseService {
|
|||
}
|
||||
PatientRegistration updateRegis = new PatientRegistration();
|
||||
updateRegis.setId(dbRegis.getId());
|
||||
updateRegis.setUpdateDatetime(LocalDateTime.now());
|
||||
updateRegis.setStatus(RegistrationStatusEnum.complete.getStatus());
|
||||
patientRegistrationMapper.updateById(updateRegis);
|
||||
//诊断主表
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
|
@ -79,6 +81,20 @@ public class PatientRegistrationService extends BaseService {
|
|||
throw new MessageException("证件号码不能为空");
|
||||
}
|
||||
|
||||
LocalDateTime appointmentTime=null;
|
||||
if(registrationParam.getAppointmentTime()!=null &&!registrationParam.getAppointmentTime().isEmpty()){
|
||||
try{
|
||||
appointmentTime = LocalDateTime.parse(registrationParam.getAppointmentTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
|
||||
}
|
||||
catch (Exception e){
|
||||
appointmentTime=LocalDateTime.now();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(appointmentTime==null||appointmentTime.isBefore(LocalDateTime.now())){
|
||||
appointmentTime=LocalDateTime.now();
|
||||
}
|
||||
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
String fstNo = StringUtil.getCode("FSN");
|
||||
|
|
@ -100,7 +116,9 @@ public class PatientRegistrationService extends BaseService {
|
|||
BeanUtils.copyProperties(registrationParam, registration);
|
||||
registration.setFstNo(fstNo);
|
||||
registration.setRegistrationMoney(new BigDecimal("0"));
|
||||
registration.setAppointmentTime(appointmentTime);
|
||||
registration.setCreateDatetime(now);
|
||||
registration.setUpdateDatetime(now);
|
||||
registration.setStatus(1);
|
||||
OrganizationMember docker = organizationMemberMapper.selectById(registration.getOrganizationDoctorId());
|
||||
if (docker == null){
|
||||
|
|
@ -224,40 +242,49 @@ public class PatientRegistrationService extends BaseService {
|
|||
return registration;
|
||||
}
|
||||
|
||||
/*
|
||||
* 获取所有已删除挂号信息
|
||||
* @param id 挂号id
|
||||
*/
|
||||
public List<PatientRegistration> allList() {
|
||||
QueryWrapper<PatientRegistration> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("del_flag", 1);
|
||||
List<PatientRegistration> list = patientRegistrationMapper.selectList(queryWrapper);
|
||||
return list;
|
||||
}
|
||||
|
||||
/*
|
||||
* 根据查询条件查询挂号信息
|
||||
* @param query 查询条件
|
||||
*/
|
||||
public Page<PatientRegistration> getPageByType(RegistrationQuery query) {
|
||||
public Page<PatientRegistration> getListByType(RegistrationQuery query) {
|
||||
ManagerUser user = getManagerUser();
|
||||
List<PatientRegistration> list=null;
|
||||
//如果状态为1 获取挂号列表
|
||||
if(query.getStatus()==RegistrationStatusEnum.waiting.getStatus()){
|
||||
list = getRegisterList(query, user);
|
||||
}
|
||||
//否则获取患者列表 逻辑相同 但是排序规则不同
|
||||
else{
|
||||
list = getPatientList(query, user);
|
||||
}
|
||||
Page<PatientRegistration> page = new Page<>();
|
||||
page.setList(list);
|
||||
page.setTotal_count(10000);
|
||||
page.setTotal_page(1);
|
||||
return page;
|
||||
}
|
||||
|
||||
private List<PatientRegistration> getPatientList(RegistrationQuery query, ManagerUser user){
|
||||
List<PatientRegistration> list =patientRegistrationMapper.selectList(getPatientQueryWrapper(query, user));;
|
||||
return list;
|
||||
}
|
||||
private QueryWrapper getPatientQueryWrapper(RegistrationQuery query, ManagerUser user){
|
||||
QueryWrapper<PatientRegistration> PatientQueryWrapper = new QueryWrapper<>();
|
||||
ManagerUser dbUser = managerUserMapper.selectById(user.getId());
|
||||
OrganizationMember member= null;
|
||||
if (dbUser != null && dbUser.getOrganizationMemberId() != null){
|
||||
member = organizationMemberMapper.selectById(dbUser.getOrganizationMemberId());
|
||||
}
|
||||
|
||||
QueryWrapper<PatientRegistration> regisQuery = new QueryWrapper<>();
|
||||
regisQuery.eq("del_flag", 0);
|
||||
PatientQueryWrapper.eq("del_flag", 0);
|
||||
if (member != null && member.getRole() == 1){
|
||||
regisQuery.eq("organization_doctor_id", member.getId());
|
||||
}
|
||||
if (query.getStatus() != null) {
|
||||
regisQuery.eq("status", query.getStatus());
|
||||
PatientQueryWrapper.eq("organization_doctor_id", member.getId());
|
||||
}
|
||||
PatientQueryWrapper.eq("status", query.getStatus());
|
||||
if (query.getKeyword() != null) {
|
||||
regisQuery.like("name", query.getKeyword());
|
||||
regisQuery.or().like("phone", query.getKeyword());
|
||||
PatientQueryWrapper.like("name", query.getKeyword());
|
||||
PatientQueryWrapper.or().like("phone", query.getKeyword());
|
||||
}
|
||||
if (query.getPageNum() == null) {
|
||||
query.setPageNum(1);
|
||||
|
|
@ -266,13 +293,73 @@ public class PatientRegistrationService extends BaseService {
|
|||
query.setPageSize(Constants.DetailPageSize);
|
||||
}
|
||||
if (query.getBeginTime() != null) {
|
||||
regisQuery.ge("appointment_time", query.getBeginTime());
|
||||
PatientQueryWrapper.ge("update_datetime", query.getBeginTime());
|
||||
}
|
||||
if (query.getEndTime() != null) {
|
||||
regisQuery.le("appointment_time", query.getEndTime());
|
||||
PatientQueryWrapper.le("update_datetime", query.getEndTime());
|
||||
}
|
||||
PatientQueryWrapper.orderByDesc("update_datetime");
|
||||
|
||||
return PatientQueryWrapper;
|
||||
}
|
||||
|
||||
private List<PatientRegistration> getRegisterList(RegistrationQuery query, ManagerUser user){
|
||||
List<PatientRegistration> Beforlist = patientRegistrationMapper.selectList(getRegisterQueryWrapper(query, user,true));
|
||||
List<PatientRegistration> Afterlist = patientRegistrationMapper.selectList(getRegisterQueryWrapper(query, user,false));
|
||||
|
||||
List<PatientRegistration> list = new ArrayList<>();
|
||||
list.addAll(Beforlist);
|
||||
list.addAll(Afterlist);
|
||||
list.forEach((regis)->{
|
||||
LocalDateTime appointmentTime = regis.getAppointmentTime();
|
||||
if (appointmentTime.isBefore(LocalDateTime.now())) {
|
||||
regis.setIsAppointment(false);
|
||||
} else {
|
||||
regis.setIsAppointment(true);
|
||||
}
|
||||
});
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
private QueryWrapper getRegisterQueryWrapper(RegistrationQuery query, ManagerUser user,boolean isBefore){
|
||||
QueryWrapper<PatientRegistration> registerQueryWrapper = new QueryWrapper<>();
|
||||
ManagerUser dbUser = managerUserMapper.selectById(user.getId());
|
||||
OrganizationMember member= null;
|
||||
if (dbUser != null && dbUser.getOrganizationMemberId() != null){
|
||||
member = organizationMemberMapper.selectById(dbUser.getOrganizationMemberId());
|
||||
}
|
||||
|
||||
return pageHelper(query.getPageNum(), query.getPageSize(), regisQuery, patientRegistrationMapper, "appointment_time", false);
|
||||
registerQueryWrapper.eq("del_flag", 0);
|
||||
if (member != null && member.getRole() == 1){
|
||||
registerQueryWrapper.eq("organization_doctor_id", member.getId());
|
||||
}
|
||||
registerQueryWrapper.eq("status", query.getStatus());
|
||||
if (query.getKeyword() != null) {
|
||||
registerQueryWrapper.like("name", query.getKeyword());
|
||||
registerQueryWrapper.or().like("phone", query.getKeyword());
|
||||
}
|
||||
if (query.getPageNum() == null) {
|
||||
query.setPageNum(1);
|
||||
}
|
||||
if (query.getPageSize() == null) {
|
||||
query.setPageSize(Constants.DetailPageSize);
|
||||
}
|
||||
if (query.getBeginTime() != null) {
|
||||
registerQueryWrapper.ge("appointment_time", query.getBeginTime());
|
||||
}
|
||||
if (query.getEndTime() != null) {
|
||||
registerQueryWrapper.le("appointment_time", query.getEndTime());
|
||||
}
|
||||
if(isBefore){
|
||||
registerQueryWrapper.le("appointment_time", LocalDateTime.now());
|
||||
registerQueryWrapper.orderByDesc("appointment_time");
|
||||
}else{
|
||||
registerQueryWrapper.ge("appointment_time", LocalDateTime.now());
|
||||
registerQueryWrapper.orderByAsc("appointment_time");
|
||||
}
|
||||
return registerQueryWrapper;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -305,6 +392,7 @@ public class PatientRegistrationService extends BaseService {
|
|||
|
||||
|
||||
public void updateById(PatientRegistration registration) {
|
||||
registration.setUpdateDatetime(LocalDateTime.now());
|
||||
patientRegistrationMapper.updateById(registration);
|
||||
}
|
||||
|
||||
|
|
@ -369,6 +457,7 @@ public class PatientRegistrationService extends BaseService {
|
|||
PatientRegistration updateRegistration = new PatientRegistration();
|
||||
updateRegistration.setId(regisId);
|
||||
updateRegistration.setStatus(status);
|
||||
updateRegistration.setUpdateDatetime(LocalDateTime.now());
|
||||
patientRegistrationMapper.updateById(updateRegistration);
|
||||
return patientRegistrationMapper.selectById(regisId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ public class StatisticsService extends BaseService {
|
|||
return result;
|
||||
}
|
||||
|
||||
public TipCountVo getWaitCount(LocalDateTime beginTime, LocalDateTime endTime) {
|
||||
public TipCountVo getTipCount(LocalDateTime beginTime, LocalDateTime endTime) {
|
||||
ManagerUser user = getManagerUser();
|
||||
ManagerUser dbUser = managerUserMapper.selectById(user.getId());
|
||||
OrganizationMember member= null;
|
||||
|
|
@ -202,8 +202,8 @@ public class StatisticsService extends BaseService {
|
|||
TipCountVo tipCountVo = new TipCountVo();
|
||||
RegistrationStatusEnum registrationStatusEnum = RegistrationStatusEnum.waiting;
|
||||
QueryWrapper<PatientRegistration> registrationWrapper = new QueryWrapper<>();
|
||||
registrationWrapper.lt("create_datetime", endTime);
|
||||
registrationWrapper.ge("create_datetime", beginTime);
|
||||
registrationWrapper.lt("appointment_time", endTime);
|
||||
registrationWrapper.ge("appointment_time", beginTime);
|
||||
registrationWrapper.eq("status", registrationStatusEnum.getStatus());
|
||||
registrationWrapper.eq("del_flag",0);
|
||||
if (member != null && member.getRole() == 1){
|
||||
|
|
@ -213,8 +213,8 @@ public class StatisticsService extends BaseService {
|
|||
|
||||
registrationStatusEnum = RegistrationStatusEnum.inProgress;
|
||||
registrationWrapper = new QueryWrapper<>();
|
||||
registrationWrapper.lt("create_datetime", endTime);
|
||||
registrationWrapper.ge("create_datetime", beginTime);
|
||||
registrationWrapper.lt("update_datetime", endTime);
|
||||
registrationWrapper.ge("update_datetime", beginTime);
|
||||
registrationWrapper.eq("status", registrationStatusEnum.getStatus());
|
||||
registrationWrapper.eq("del_flag",0);
|
||||
if (member != null && member.getRole() == 1){
|
||||
|
|
@ -224,8 +224,8 @@ public class StatisticsService extends BaseService {
|
|||
|
||||
registrationStatusEnum = RegistrationStatusEnum.complete;
|
||||
registrationWrapper = new QueryWrapper<>();
|
||||
registrationWrapper.lt("create_datetime", endTime);
|
||||
registrationWrapper.ge("create_datetime", beginTime);
|
||||
registrationWrapper.lt("update_datetime", endTime);
|
||||
registrationWrapper.ge("update_datetime", beginTime);
|
||||
registrationWrapper.eq("status", registrationStatusEnum.getStatus());
|
||||
registrationWrapper.eq("del_flag",0);
|
||||
if (member != null && member.getRole() == 1){
|
||||
|
|
|
|||
Loading…
Reference in New Issue