Generation

testsFri, 28 Apr 2023

public List<RoomCharge> getBillingCharges(Integer patientFid) { // Initialize variables List<PatientBillingChargesModel> PatientBillingChargesModels = new ArrayList<>(); // Retrieve the patient's treatments List<PatientTreatment> patientTreatments = patientTreatmentRepository.findByPatientFid(patientFid); // Iterate over each treatment and its details for (PatientTreatment listOfPatientTreatment : patientTreatments) { List<PatientTreatmentDetail> patientTreatmentDetails = listOfPatientTreatment.getPatientTreatmentDetails(); // Iterate over each detail and add to the PatientBillingChargesModels list if it hasn't been billed yet for (PatientTreatmentDetail listOfPatientTreatmentDetails : patientTreatmentDetails) { if (!listOfPatientTreatmentDetails.getIsbilled()) { PatientBillingChargesModel patientBillingCharges = new PatientBillingChargesModel(); Map<String, Object> results = patientTreatmentRepository.getBillingDetails( listOfPatientTreatmentDetails.getRoomFid(), listOfPatientTreatmentDetails.getChargeCodeFid(), listOfPatientTreatmentDetails.getDiagnosisFid(), listOfPatientTreatmentDetails.getProviderFid()); System.out.println(); patientBillingCharges.setRoomNo((Integer) results.get("room_number")); patientBillingCharges.setRoomType((String) results.get("room_type_code")); patientBillingCharges.setChargeDescription((String) results.get("charge_description")); patientBillingCharges.setDiagnosisCode((String) results.get("diagnosis_code")); patientBillingCharges.setProviderCode(((String) results.get("provider_code"))); patientBillingCharges.setProviderName(((String) results.get("provider_first_name"))); System.out.println(results.size()); patientBillingCharges.setAmount(listOfPatientTreatmentDetails.getChargeAmount()); PatientBillingChargesModels.add(patientBillingCharges); } else { continue; } } } // Group charges by room number Map<Integer, List<Charge>> roomChargesMap = PatientBillingChargesModels.stream() .collect(Collectors.groupingBy(PatientBillingChargesModel::getRoomNo, Collectors.mapping(pbc -> new Charge(pbc.getChargeDescription(), pbc.getAmount(), pbc.getDiagnosisCode(), pbc.getProviderCode(), pbc.getProviderName()), Collectors.toList()))); // Convert to list of RoomCharge objects List<RoomCharge> roomCharges = new ArrayList<>(); roomChargesMap.forEach((roomNo, charges) -> { RoomCharge roomCharge = new RoomCharge(); roomCharge.setRoomNo(roomNo); String roomType = PatientBillingChargesModels.stream().filter(pbc -> pbc.getRoomNo().equals(roomNo)).findFirst().orElse(new PatientBillingChargesModel()).getRoomType(); roomCharge.setRoomType(roomType); // Replace with actual room type roomCharge.setCharge(charges); roomCharges.add(roomCharge); }); return roomCharges; }

Questions about programming?Chat with your personal AI assistant