Merge remote-tracking branch 'origin/staging' into origin/production
This commit is contained in:
@@ -271,7 +271,6 @@ class ClaimController extends Controller
|
||||
{
|
||||
$writer = WriterEntityFactory::createXLSXWriter();
|
||||
$writer->openToFile(public_path('files/Report-Data-Alarm-Center-'.$start.'-'.$end.'.xlsx'));
|
||||
|
||||
$header = [
|
||||
'No',
|
||||
'Code',
|
||||
@@ -299,7 +298,8 @@ class ClaimController extends Controller
|
||||
'Catatan',
|
||||
'Invoice No',
|
||||
'Billing No',
|
||||
'Type Of Member'
|
||||
'Type Of Member',
|
||||
'Deskripsi Diagnosis'
|
||||
];
|
||||
$style = (new StyleBuilder())
|
||||
->setFontBold()
|
||||
@@ -477,11 +477,22 @@ class ClaimController extends Controller
|
||||
)
|
||||
->get();
|
||||
|
||||
// Description Diagnosi
|
||||
$diagnosis = explode(",", $item->diagnosis);
|
||||
$descriptionDiagnosis = '-';
|
||||
if ($diagnosis){
|
||||
$datas = DB::table('icd')->whereIn('code',$diagnosis)->get();
|
||||
$descriptionDiagnosis = "";
|
||||
foreach($datas as $data){
|
||||
$descriptionDiagnosis .= $data->name ." ";
|
||||
}
|
||||
}
|
||||
$check_first_id = 0;
|
||||
if($check_first_id != $item->id)
|
||||
{
|
||||
$no += $item->no;
|
||||
}
|
||||
|
||||
$total_billing = 0;
|
||||
$lastIndex = count($dataClaimLog) - 1;
|
||||
$firtIndex = 0;
|
||||
@@ -518,6 +529,7 @@ class ClaimController extends Controller
|
||||
!empty($item->invoice_no) ? $item->invoice_no : '',
|
||||
!empty($item->billing_no) ? $item->billing_no : '',
|
||||
!empty($item->type_of_member) ? $item->type_of_member : '',
|
||||
$descriptionDiagnosis,
|
||||
|
||||
];
|
||||
array_push($dataRow,$rowData);
|
||||
@@ -555,6 +567,7 @@ class ClaimController extends Controller
|
||||
!empty($item->invoice_no) ? $item->invoice_no : '',
|
||||
!empty($item->billing_no) ? $item->billing_no : '',
|
||||
!empty($item->type_of_member) ? $item->type_of_member : '',
|
||||
$descriptionDiagnosis,
|
||||
|
||||
];
|
||||
array_push($dataRow,$rowData);
|
||||
|
||||
@@ -490,7 +490,11 @@ class RequestLogController extends Controller
|
||||
if (!empty($request->reason)) {
|
||||
$requestLog->reason_final = $request->reason;
|
||||
}
|
||||
|
||||
|
||||
if (!empty($request->type_of_member)){
|
||||
$requestLog->type_of_member = $request->type_of_member;
|
||||
}
|
||||
|
||||
$requestLog->final_log = 1;
|
||||
$requestLog->approved_final_log_by = auth()->user()->id;
|
||||
$requestLog->approved_final_log_at = Carbon::now();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import MuiDialog from "@/components/MuiDialog";
|
||||
import { Autocomplete, Button, Card, DialogActions, Grid, TextField, Typography } from "@mui/material";
|
||||
import { Autocomplete, Button, Card, DialogActions, Grid, MenuItem, Select, TextField, Typography } from "@mui/material";
|
||||
import { Stack } from '@mui/material';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { DetailFinalLogType } from "../Model/Types";
|
||||
@@ -25,9 +25,12 @@ export default function DialogConfirmation({requestLog, setOpenDialog, openDialo
|
||||
id: requestLog?.id,
|
||||
status: approve || '',
|
||||
catatan: '',
|
||||
icdCodes: requestLog?.diagnosis.length ? requestLog.diagnosis.map(diagnosis => ({ value: diagnosis.value, label: diagnosis.label })) : []
|
||||
type_of_member: '' ,
|
||||
icdCodes: requestLog?.diagnosis.length ? requestLog.diagnosis.map(diagnosis => ({ value: diagnosis.id, label: diagnosis.name })) : []
|
||||
});
|
||||
|
||||
const [error, setError] = useState(false);
|
||||
|
||||
const [icdOptions, setIcdOptions] = useState([
|
||||
{ value: '-', label: '-' }
|
||||
]);
|
||||
@@ -69,20 +72,26 @@ export default function DialogConfirmation({requestLog, setOpenDialog, openDialo
|
||||
}
|
||||
|
||||
const handleSubmit = () => {
|
||||
axios
|
||||
.post(`customer-service/request/final-log`, formData)
|
||||
.then((response) => {
|
||||
enqueueSnackbar('Verification Request LOG Success', { variant: 'success' });
|
||||
setOpenDialog(false);
|
||||
if (requestLog?.service_type === 'Inpatient') {
|
||||
navigate('/case_management/inpatient_monitoring');
|
||||
} else {
|
||||
navigate('/custormer-service/final-log');
|
||||
}
|
||||
})
|
||||
.catch(({ response }) => {
|
||||
enqueueSnackbar(response.data.message ?? 'Something went wrong!', { variant: 'error' });
|
||||
});
|
||||
if (formData.type_of_member === "" && requestLog?.corporate_id === 5) { // corporate vale
|
||||
setError(true);
|
||||
alert('Silakan pilih Type Of Member sebelum mengirimkan data.');
|
||||
}
|
||||
else {
|
||||
axios
|
||||
.post(`customer-service/request/final-log`, formData)
|
||||
.then((response) => {
|
||||
enqueueSnackbar('Verification Request LOG Success', { variant: 'success' });
|
||||
setOpenDialog(false);
|
||||
if (requestLog?.service_type === 'Inpatient') {
|
||||
navigate('/case_management/inpatient_monitoring');
|
||||
} else {
|
||||
navigate('/custormer-service/final-log');
|
||||
}
|
||||
})
|
||||
.catch(({ response }) => {
|
||||
enqueueSnackbar(response.data.message ?? 'Something went wrong!', { variant: 'error' });
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const style1 = {
|
||||
@@ -179,6 +188,24 @@ export default function DialogConfirmation({requestLog, setOpenDialog, openDialo
|
||||
)}
|
||||
/>
|
||||
</Stack>
|
||||
<Stack direction='row' spacing={2} sx={marginBottom2}>
|
||||
<Typography variant='subtitle2' sx={style1} gutterBottom>Type Of Member*</Typography>
|
||||
<Select
|
||||
fullWidth
|
||||
value={formData.type_of_member}
|
||||
onChange={(e) => handleChange('type_of_member', e.target.value)}
|
||||
variant="outlined"
|
||||
displayEmpty
|
||||
required
|
||||
error={error}
|
||||
>
|
||||
<MenuItem value="" disabled>
|
||||
Type Member
|
||||
</MenuItem>
|
||||
<MenuItem value="OMT">OMT</MenuItem>
|
||||
<MenuItem value="Non OMT">Non OMT</MenuItem>
|
||||
</Select>
|
||||
</Stack>
|
||||
</Card>
|
||||
</Grid>
|
||||
<DialogActions>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import MuiDialog from "@/components/MuiDialog";
|
||||
import { Autocomplete, Button, Card, Checkbox, DialogActions, Grid, TextField, Typography } from "@mui/material";
|
||||
import { Autocomplete, Button, Card, Checkbox, DialogActions, Grid, TextField, Typography, Select } from "@mui/material";
|
||||
import { Paper } from "@mui/material";
|
||||
import { Stack } from '@mui/material';
|
||||
import { Stack, MenuItem } from '@mui/material';
|
||||
import React, { useEffect, useState } from 'react';
|
||||
import { DetailFinalLogType } from "../Model/Types";
|
||||
import { fDateOnly, fDateTimesecond, toTitleCase } from "@/utils/formatTime";
|
||||
@@ -27,8 +27,11 @@ export default function DialogEditFinalLOG({requestLog, setOpenDialog, openDialo
|
||||
id: requestLog?.id,
|
||||
catatan: requestLog?.catatan,
|
||||
icdCodes: requestLog?.diagnosis,
|
||||
reason: requestLog?.reason
|
||||
reason: requestLog?.reason,
|
||||
type_of_member: requestLog?.type_of_member
|
||||
});
|
||||
|
||||
const [error, setError] = useState(false);
|
||||
|
||||
const [icdOptions, setIcdOptions] = useState([
|
||||
{ value: '-', label: '-' }
|
||||
@@ -49,17 +52,16 @@ export default function DialogEditFinalLOG({requestLog, setOpenDialog, openDialo
|
||||
}, []); // useEffect dijalankan hanya sekali saat komponen dimount
|
||||
|
||||
useEffect(() => {
|
||||
if (requestLog) {
|
||||
setFormData({
|
||||
discharge_date: requestLog.discharge_date,
|
||||
billing_no: requestLog.billing_no,
|
||||
invoice_no: requestLog.invoice_no,
|
||||
id: requestLog.id,
|
||||
catatan: requestLog.catatan,
|
||||
icdCodes: requestLog.diagnosis,
|
||||
reason: requestLog.reason
|
||||
discharge_date: requestLog?.discharge_date|| '',
|
||||
billing_no: requestLog?.billing_no|| '',
|
||||
invoice_no: requestLog?.invoice_no|| '',
|
||||
id: requestLog?.id|| 0,
|
||||
catatan: requestLog?.catatan|| '',
|
||||
icdCodes: requestLog?.diagnosis|| [],
|
||||
reason: requestLog?.reason|| '',
|
||||
type_of_member: requestLog?.type_of_member|| '',
|
||||
});
|
||||
}
|
||||
}, [requestLog]);
|
||||
|
||||
|
||||
@@ -94,7 +96,11 @@ export default function DialogEditFinalLOG({requestLog, setOpenDialog, openDialo
|
||||
|
||||
|
||||
const handleSubmit = () => {
|
||||
if (isReasonSelected && formData.reason !== '') {
|
||||
if (formData.type_of_member === "" && requestLog?.corporate_id === 4) {
|
||||
setError(true);
|
||||
alert('Silakan pilih Type Of Member sebelum mengirimkan data.');
|
||||
}
|
||||
else if (isReasonSelected && formData.reason !== '') {
|
||||
axios
|
||||
.post(`customer-service/request/final-log`, formData)
|
||||
.then((response) => {
|
||||
@@ -128,13 +134,14 @@ export default function DialogEditFinalLOG({requestLog, setOpenDialog, openDialo
|
||||
|
||||
const resetForm = () => {
|
||||
setFormData({
|
||||
discharge_date: requestLog?.discharge_date,
|
||||
id: requestLog?.id,
|
||||
billing_no: requestLog?.billing_no,
|
||||
invoice_no: requestLog?.invoice_no,
|
||||
catatan: requestLog?.catatan,
|
||||
icdCodes: requestLog?.diagnosis,
|
||||
reason: requestLog?.reason
|
||||
discharge_date: requestLog?.discharge_date ?? '',
|
||||
id: requestLog?.id ?? 0,
|
||||
billing_no: requestLog?.billing_no ?? '',
|
||||
invoice_no: requestLog?.invoice_no ?? '',
|
||||
catatan: requestLog?.catatan ?? '',
|
||||
icdCodes: requestLog?.diagnosis ?? [],
|
||||
reason: requestLog?.reason ?? '',
|
||||
type_of_member: requestLog?.type_of_member ?? '',
|
||||
});
|
||||
};
|
||||
const [isReasonSelected, setIsReasonSelected] = useState(true);
|
||||
@@ -152,7 +159,7 @@ export default function DialogEditFinalLOG({requestLog, setOpenDialog, openDialo
|
||||
// Add more options as needed
|
||||
];
|
||||
|
||||
|
||||
console.log(formData.type_of_member)
|
||||
|
||||
const getContent = () => (
|
||||
<Stack spacing={1} marginTop={2}>
|
||||
@@ -206,6 +213,24 @@ export default function DialogEditFinalLOG({requestLog, setOpenDialog, openDialo
|
||||
onChange={(e) => handleChange('billing_no', e.target.value)}
|
||||
/>
|
||||
</Stack>
|
||||
<Stack direction='row' spacing={2} sx={marginBottom2}>
|
||||
<Typography variant='subtitle2' sx={style1} gutterBottom>Type Of Member*</Typography>
|
||||
<Select
|
||||
fullWidth
|
||||
value={formData.type_of_member}
|
||||
onChange={(e) => handleChange('type_of_member', e.target.value)}
|
||||
variant="outlined"
|
||||
displayEmpty
|
||||
required
|
||||
error={error}
|
||||
>
|
||||
<MenuItem value="" disabled>
|
||||
Type Member
|
||||
</MenuItem>
|
||||
<MenuItem value="OMT">OMT</MenuItem>
|
||||
<MenuItem value="Non OMT">Non OMT</MenuItem>
|
||||
</Select>
|
||||
</Stack>
|
||||
<Stack direction='row' spacing={2} sx={marginBottom2}>
|
||||
<Typography variant='subtitle2' sx={style1} gutterBottom>Discharge Date</Typography>
|
||||
<TextField
|
||||
|
||||
@@ -62,7 +62,8 @@ export type DetailFinalLogType = {
|
||||
exclusion : Exclusion[],
|
||||
medicine : Medicine[],
|
||||
files : file[],
|
||||
member_usage_benefit : number
|
||||
member_usage_benefit : number,
|
||||
corporate_id : number
|
||||
}
|
||||
|
||||
export type Diagnosis = {
|
||||
|
||||
@@ -58,7 +58,7 @@ export default function DialogConfirmation({requestLog, setOpenDialog, openDialo
|
||||
|
||||
|
||||
const handleSubmit = () => {
|
||||
if (formData.type_of_member === "" && requestLog?.corporate_id === 4) {
|
||||
if (formData.type_of_member === "" && requestLog?.corporate_id === 5) {
|
||||
setError(true);
|
||||
alert('Silakan pilih Type Of Member sebelum mengirimkan data.');
|
||||
} else {
|
||||
|
||||
@@ -68,7 +68,7 @@ export default function DialogEditInformation({requestLog, setOpenDialog, openDi
|
||||
|
||||
|
||||
const handleSubmit = () => {
|
||||
if (formData.type_of_member === "" && requestLog?.corporate_id === 4) {
|
||||
if (formData.type_of_member === "" && requestLog?.corporate_id === 5) {
|
||||
setError(true);
|
||||
alert('Silakan pilih Type Of Member sebelum mengirimkan data.');
|
||||
} else if (isReasonSelected && formData.reason !== '') {
|
||||
|
||||
@@ -57,6 +57,7 @@ export type DetailRequestLogType = {
|
||||
benefit : Benefit[],
|
||||
reason : string,
|
||||
type_of_member : string,
|
||||
corporate_id : number
|
||||
}
|
||||
|
||||
export type Benefit = {
|
||||
|
||||
Reference in New Issue
Block a user