Update improvement client portal daily monitoring

This commit is contained in:
2024-02-09 09:47:24 +07:00
parent 0c9f92a1fb
commit fd5ad65487
5 changed files with 451 additions and 336 deletions

View File

@@ -212,7 +212,8 @@ class CorporateMemberController extends Controller
'benefit' 'benefit'
], ],
'requestLogDailyMonitorings:id,request_log_id,created_at,subject,body_temperature,sistole,diastole,respiration_rate,analysis,lab_date,provider,examination' => [ 'requestLogDailyMonitorings:id,request_log_id,created_at,subject,body_temperature,sistole,diastole,respiration_rate,analysis,lab_date,provider,examination' => [
'requestLogMedicalPlans:request_log_daily_monitoring_id,plan,type' 'requestLogMedicalPlans:request_log_daily_monitoring_id,plan,type',
// 'document'
], ],
'service:code,name', 'service:code,name',
'files', 'files',

View File

@@ -5,6 +5,7 @@ namespace Modules\Client\Transformers\AlarmCenter;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Carbon; use Illuminate\Support\Carbon;
use App\Models\Icd; use App\Models\Icd;
use DB;
class DataServiceMonitoring extends JsonResource class DataServiceMonitoring extends JsonResource
{ {
@@ -22,17 +23,22 @@ class DataServiceMonitoring extends JsonResource
$filesFinalLogKondisi = []; $filesFinalLogKondisi = [];
if (count($this->files)>0){ if (count($this->files)>0){
foreach ($this->files as $key => $value) { foreach ($this->files as $key => $value) {
if($value->type == 'final-log-result'){ /*
Sementara di buat satu dulu, jangan di hapus..
karena suka labil client nya, tiba2 hide tiba2 munculin fitur :D
*/
// if($value->type == 'final-log-result'){
array_push($filesFinalLogResult, $value); array_push($filesFinalLogResult, $value);
}; // };
if($value->type == 'final-log-diagnosis'){ // if($value->type == 'final-log-diagnosis'){
array_push($filesFinalLogDiagnosis, $value); // array_push($filesFinalLogDiagnosis, $value);
} // }
if($value->type == 'final-log-kondisi'){ // if($value->type == 'final-log-kondisi'){
array_push($filesFinalLogKondisi, $value); // array_push($filesFinalLogKondisi, $value);
} // }
} }
$files = [ $files = [
@@ -77,7 +83,6 @@ class DataServiceMonitoring extends JsonResource
} }
} }
} }
return [ return [
'companyName' => $this->member->currentCorporate->name ?? null, 'companyName' => $this->member->currentCorporate->name ?? null,
'serviceCode' => $this->service_code ?? null, 'serviceCode' => $this->service_code ?? null,
@@ -111,6 +116,23 @@ class DataServiceMonitoring extends JsonResource
->map(function ($groupedItems) { ->map(function ($groupedItems) {
return collect($groupedItems) return collect($groupedItems)
->map(function ($requestLogDailyMonitoring) { ->map(function ($requestLogDailyMonitoring) {
$arr_document = [];
$document = DB::table('files')
->where(['fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $requestLogDailyMonitoring->id])
->whereIn('type', ['medical-action-letter', 'confirmation-medical-letter'])
->get();
if ($document){
foreach($document as $d){
$arr_document[]= [
'path' => env('APP_URL') . '/storage/lab_result/' . $d->original_name,
'type' => $d->type,
'original_name' => $d->original_name,
'name' => $d->name,
];
}
}
return [ return [
'time' => $requestLogDailyMonitoring->created_at->format('H:i') ?? null, 'time' => $requestLogDailyMonitoring->created_at->format('H:i') ?? null,
'status' => 'Done' ?? null, 'status' => 'Done' ?? null,
@@ -130,6 +152,7 @@ class DataServiceMonitoring extends JsonResource
}) })
->sortBy('type') ->sortBy('type')
->all()) ?? null, ->all()) ?? null,
'files' => $arr_document
]; ];
}) })
->sortByDesc(function ($item) { ->sortByDesc(function ($item) {
@@ -148,11 +171,27 @@ class DataServiceMonitoring extends JsonResource
->map(function ($groupedItems) { ->map(function ($groupedItems) {
return collect($groupedItems) return collect($groupedItems)
->map(function ($requestLogDailyMonitoring) { ->map(function ($requestLogDailyMonitoring) {
$arr_document = [];
$document = DB::table('files')
->where(['fileable_type' => 'App\Models\LaboratoriumResult', 'fileable_id' => $requestLogDailyMonitoring->id])
->whereIn('type', ['laboratorium-result'])
->get();
if ($document){
foreach($document as $d){
$arr_document[]= [
'path' => env('APP_URL') . '/storage/lab_result/' . $d->original_name,
'type' => $d->type,
'original_name' => $d->original_name,
'name' => $d->name,
];
}
}
return [ return [
'code' => $requestLogDailyMonitoring->code, 'code' => $requestLogDailyMonitoring->code,
'date' => Carbon::parse($requestLogDailyMonitoring->lab_date)->format('d M Y') ?? null, 'date' => Carbon::parse($requestLogDailyMonitoring->lab_date)->format('d M Y') ?? null,
'examination' => $requestLogDailyMonitoring->examination ?? null, 'examination' => $requestLogDailyMonitoring->examination ?? null,
'location' => $requestLogDailyMonitoring->provider ?? null, 'location' => $requestLogDailyMonitoring->provider ?? null,
'files' => $arr_document
]; ];
}) })
->sortByDesc(function ($item) { ->sortByDesc(function ($item) {

View File

@@ -33,6 +33,7 @@ class RequestLogService
"Tgl Billing dari RS" => "approved_final_log_at", "Tgl Billing dari RS" => "approved_final_log_at",
"Total Billing" => "total_billing", "Total Billing" => "total_billing",
"Benefit Item" => "benefit_id", "Benefit Item" => "benefit_id",
"Amount Incurred" => "amount_incurred",
"Amount Approval" => "amount_approval", "Amount Approval" => "amount_approval",
"Amount Not Approval" => "amount_not_approval", "Amount Not Approval" => "amount_not_approval",
"Total COB" => "total_cob", "Total COB" => "total_cob",
@@ -57,6 +58,7 @@ class RequestLogService
"approved_final_log_at" => "Tgl Billing dari RS", "approved_final_log_at" => "Tgl Billing dari RS",
"total_billing" => "Total Billing", "total_billing" => "Total Billing",
"benefit_id" => "Benefit Item", "benefit_id" => "Benefit Item",
"amount_incurred" => "Amount Incurred",
"amount_approval" => "Amount Approval", "amount_approval" => "Amount Approval",
"amount_not_approval" => "Amount Not Approval", "amount_not_approval" => "Amount Not Approval",
"total_cob" => "Total COB", "total_cob" => "Total COB",
@@ -80,6 +82,7 @@ class RequestLogService
"Tgl Billing dari RS", "Tgl Billing dari RS",
"Total Billing", "Total Billing",
"Benefit Item", "Benefit Item",
"Amount Incurred",
"Amount Approval", "Amount Approval",
"Amount Not Approval", "Amount Not Approval",
"Total COB", "Total COB",
@@ -103,6 +106,7 @@ class RequestLogService
"Tgl Billing dari RS", "Tgl Billing dari RS",
"Total Billing", "Total Billing",
"Benefit Item", "Benefit Item",
"Amount Incurred",
"Amount Approval", "Amount Approval",
"Amount Not Approval", "Amount Not Approval",
"Total COB", "Total COB",
@@ -297,7 +301,7 @@ class RequestLogService
'request_log_id' => $requestLog->id, 'request_log_id' => $requestLog->id,
'benefit_id' => $benefit->id, 'benefit_id' => $benefit->id,
// 'amount_incurred' => ($row['amount_approval'] ? $row['amount_approval'] : 0) + ($row['amount_not_approval'] ? $row['amount_not_approval'] : 0) , // 'amount_incurred' => ($row['amount_approval'] ? $row['amount_approval'] : 0) + ($row['amount_not_approval'] ? $row['amount_not_approval'] : 0) ,
'amount_incurred' => $row['total_billing'] , 'amount_incurred' => $row['amount_incurred'] ,
'amount_approved' => $row['amount_approval'] ?? 0, 'amount_approved' => $row['amount_approval'] ?? 0,
'amount_not_approved' => $row['amount_not_approval'] ?? 0, 'amount_not_approved' => $row['amount_not_approval'] ?? 0,
'excess_paid' => $row['amount_not_approval'] ?? 0, 'excess_paid' => $row['amount_not_approval'] ?? 0,

View File

@@ -175,6 +175,10 @@ export default function List() {
<VisibilityOutlinedIcon /> <VisibilityOutlinedIcon />
View View
</MenuItem> </MenuItem>
{/* <MenuItem onClick={() => navigate('service-monitoring/' + obj.id)}>
<Download />
Document Member
</MenuItem> */}
</> </>
} }
/> />

View File

@@ -179,6 +179,12 @@ type ServiceMonitoringProps = {
type: number; type: number;
plan: string; plan: string;
}[]; }[];
files: {
type: string;
name: string;
original_name: string;
path: string;
}[];
}> }>
>; >;
laboratoriumResults: Record< laboratoriumResults: Record<
@@ -188,6 +194,12 @@ type ServiceMonitoringProps = {
date: string; date: string;
examination: string; examination: string;
location: string; location: string;
files: {
type: string;
name: string;
original_name: string;
path: string;
}[];
}> }>
>; >;
}; };
@@ -387,7 +399,7 @@ export default function ServiceMonitoring() {
</Typography> </Typography>
</Grid> </Grid>
<Grid item xs={12} container spacing={3}> <Grid item xs={12} container spacing={3}>
<Grid item container xs={12} spacing={1.5}> {/* <Grid item container xs={12} spacing={1.5}>
<Grid item xs={12}> <Grid item xs={12}>
<Typography variant="subtitle2" color={'grey.600'}> <Typography variant="subtitle2" color={'grey.600'}>
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Symptoms'} {loading ? <Skeleton animation={'wave'} width={200} /> : 'Symptoms'}
@@ -404,8 +416,8 @@ export default function ServiceMonitoring() {
)} )}
</Typography> </Typography>
</Grid> </Grid>
</Grid> </Grid> */}
<Grid item container xs={12} spacing={1.5}> {/* <Grid item container xs={12} spacing={1.5}>
<Grid item xs={12}> <Grid item xs={12}>
<Typography variant="subtitle2" color={'grey.600'}> <Typography variant="subtitle2" color={'grey.600'}>
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Sign'} {loading ? <Skeleton animation={'wave'} width={200} /> : 'Sign'}
@@ -422,7 +434,7 @@ export default function ServiceMonitoring() {
)} )}
</Typography> </Typography>
</Grid> </Grid>
</Grid> </Grid> */}
<Grid item container xs={12} spacing={1.5}> <Grid item container xs={12} spacing={1.5}>
<Grid item xs={12}> <Grid item xs={12}>
<Typography variant="subtitle2" color={'grey.600'}> <Typography variant="subtitle2" color={'grey.600'}>
@@ -441,7 +453,7 @@ export default function ServiceMonitoring() {
</Typography> </Typography>
</Grid> </Grid>
</Grid> </Grid>
<Grid item container xs={12} spacing={1.5}> {/* <Grid item container xs={12} spacing={1.5}>
<Grid item xs={12}> <Grid item xs={12}>
<Typography variant="subtitle2" color={'grey.600'}> <Typography variant="subtitle2" color={'grey.600'}>
{loading ? ( {loading ? (
@@ -462,14 +474,14 @@ export default function ServiceMonitoring() {
)} )}
</Typography> </Typography>
</Grid> </Grid>
</Grid> </Grid> */}
<Grid item container xs={12} spacing={1.5}> <Grid item container xs={12} spacing={1.5}>
<Grid item xs={12}> <Grid item xs={12}>
<Typography variant="subtitle2" color={'grey.600'}> <Typography variant="subtitle2" color={'grey.600'}>
{loading ? ( {loading ? (
<Skeleton animation={'wave'} width={200} /> <Skeleton animation={'wave'} width={200} />
) : ( ) : (
'Files Result' 'Files Document'
)} )}
</Typography> </Typography>
</Grid> </Grid>
@@ -502,7 +514,7 @@ export default function ServiceMonitoring() {
</Typography> </Typography>
)} )}
</Grid> </Grid>
<Grid item xs={12}> {/* <Grid item xs={12}>
<Typography variant="subtitle2" color={'grey.600'}> <Typography variant="subtitle2" color={'grey.600'}>
{loading ? ( {loading ? (
<Skeleton animation={'wave'} width={200} /> <Skeleton animation={'wave'} width={200} />
@@ -539,8 +551,8 @@ export default function ServiceMonitoring() {
- -
</Typography> </Typography>
)} )}
</Grid> </Grid> */}
<Grid item xs={12}> {/* <Grid item xs={12}>
<Typography variant="subtitle2" color={'grey.600'}> <Typography variant="subtitle2" color={'grey.600'}>
{loading ? ( {loading ? (
<Skeleton animation={'wave'} width={200} /> <Skeleton animation={'wave'} width={200} />
@@ -548,8 +560,8 @@ export default function ServiceMonitoring() {
'Files Kondisi' 'Files Kondisi'
)} )}
</Typography> </Typography>
</Grid> </Grid> */}
<Grid item> {/* <Grid item>
{loading ? ( {loading ? (
<Skeleton animation="wave" width={300} /> <Skeleton animation="wave" width={300} />
) : data && data.files && data.files.kondisi.length > 0 ? ) : data && data.files && data.files.kondisi.length > 0 ?
@@ -576,7 +588,7 @@ export default function ServiceMonitoring() {
- -
</Typography> </Typography>
)} )}
</Grid> </Grid> */}
</Grid> </Grid>
</Grid> </Grid>
@@ -833,6 +845,7 @@ export default function ServiceMonitoring() {
</Card> </Card>
</Grid> */} </Grid> */}
{data?.serviceCode === 'IP' ? (
<Grid item xs={12} lg={12} md={12}> <Grid item xs={12} lg={12} md={12}>
{loading ? ( {loading ? (
<Card sx={{ borderRadius: '16px', padding: '24px' }}> <Card sx={{ borderRadius: '16px', padding: '24px' }}>
@@ -1088,6 +1101,40 @@ export default function ServiceMonitoring() {
</Grid> </Grid>
</Stack> </Stack>
<Stack spacing={1}>
<Typography variant="h6" sx={{ paddingTop: 2 }}>
File Document :
</Typography>
</Stack>
<Stack direction={'row'} spacing={2}>
<Stack marginLeft={5}>
{data.dailyMonitorings ? (
<ul style={{ listStyleType: 'disc' }}>
{dailyMonitoring.files.length > 0 ? (
dailyMonitoring.files.map((file, fileIndex) =>
(
<li key={fileIndex}>
<a
href={file.path}
download={file.original_name ? file.original_name : 'test'}
style={{ cursor: 'pointer', textDecoration: 'none', color: '#19BBBB' }}
target="_blank"
>
{file.original_name}
</a>
</li>
)
)
) : (
<li>-</li>
)}
</ul>
) : (
<span>-</span>
)}
</Stack>
</Stack>
</Grid> </Grid>
</Stack> </Stack>
</Card> </Card>
@@ -1138,15 +1185,34 @@ export default function ServiceMonitoring() {
<TableCell><Label>{laboratoriumResult.date || '-'}</Label></TableCell> <TableCell><Label>{laboratoriumResult.date || '-'}</Label></TableCell>
<TableCell>{laboratoriumResult.examination || '-'}</TableCell> <TableCell>{laboratoriumResult.examination || '-'}</TableCell>
<TableCell>{laboratoriumResult.location || '-'}</TableCell> <TableCell>{laboratoriumResult.location || '-'}</TableCell>
{/* <TableMoreMenu </TableRow>
actions={ <TableRow>
<> <TableCell>
<MenuItem onClick={() => handleDownloadClick(laboratoriumResult.file)}> {data.dailyMonitorings ? (
<DownloadIcon /> Download <ul style={{ listStyleType: 'disc' }}>
</MenuItem> {laboratoriumResult.files.length > 0 ? (
</> laboratoriumResult.files.map((file, fileIndex) =>
} (
/> */} <li key={fileIndex}>
<a
href={file.path}
download={file.original_name ? file.original_name : 'test'}
style={{ cursor: 'pointer', textDecoration: 'none', color: '#19BBBB' }}
target="_blank"
>
{file.original_name}
</a>
</li>
)
)
) : (
<li>-</li>
)}
</ul>
) : (
<span>-</span>
)}
</TableCell>
</TableRow> </TableRow>
</TableBody> </TableBody>
</Table> </Table>
@@ -1165,6 +1231,7 @@ export default function ServiceMonitoring() {
</Card> </Card>
)} )}
</Grid> </Grid>
) : null}
</Grid> </Grid>
</Page> </Page>
); );