|
|
|
|
@ -0,0 +1,432 @@
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
@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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
makeRequest(socialUserInfo,patientRegistrationInfo,diagnosis,record,organizationMember);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("事前事中:error_message:{}",e.getMessage());
|
|
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void makeRequest(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);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|