Merge remote-tracking branch 'origin/staging' into origin/production
This commit is contained in:
@@ -222,7 +222,7 @@ class CorporateMemberController extends Controller
|
||||
'requestLogBenefits:id,request_log_id,benefit_id,amount_incurred,amount_approved,amount_not_approved,excess_paid,keterangan' => [
|
||||
'benefit'
|
||||
],
|
||||
'requestLogDailyMonitorings:id,request_log_id,submission_date,subject,body_temperature,sistole,diastole,respiration_rate,analysis,lab_date,provider,examination' => [
|
||||
'requestLogDailyMonitorings:id,request_log_id,submission_date,subject,object,body_temperature,sistole,diastole,respiration_rate,analysis,lab_date,provider,examination' => [
|
||||
'requestLogMedicalPlans:request_log_daily_monitoring_id,plan,type',
|
||||
// 'document'
|
||||
],
|
||||
|
||||
@@ -141,10 +141,11 @@ class DataServiceMonitoring extends JsonResource
|
||||
'time' => Carbon::parse($requestLogDailyMonitoring->submission_date)->format('H:i') ?? null,
|
||||
'status' => 'Done' ?? null,
|
||||
'subject' => $requestLogDailyMonitoring->subject ?? null,
|
||||
'object' => $requestLogDailyMonitoring->object ?? null,
|
||||
'bodyTemperature' => $requestLogDailyMonitoring->body_temperature ?? null,
|
||||
'sistole' => $requestLogDailyMonitoring->sistole . 'mm[Hg]' ?? null,
|
||||
'diastole' => $requestLogDailyMonitoring->diastole . 'mm[Hg]' ?? null,
|
||||
'respirationRate' => $requestLogDailyMonitoring->respiration_rate . '/min' ?? null,
|
||||
'sistole' => $requestLogDailyMonitoring->sistole ?? null,
|
||||
'diastole' => $requestLogDailyMonitoring->diastole ?? null,
|
||||
'respirationRate' => $requestLogDailyMonitoring->respiration_rate ?? null,
|
||||
'analysis' => $requestLogDailyMonitoring->analysis ?? null,
|
||||
'complaints' => $requestLogDailyMonitoring->complaints ?? null,
|
||||
'plans' => $this->when($requestLogDailyMonitoring->requestLogMedicalPlans, collect($requestLogDailyMonitoring->requestLogMedicalPlans)
|
||||
|
||||
@@ -102,7 +102,7 @@ class DailyMonitoringController extends Controller
|
||||
{
|
||||
// get id request log
|
||||
$request_logs = DB::table('request_logs')
|
||||
->select('id')
|
||||
->select('id','organization_id')
|
||||
->where('code', $request_code)
|
||||
->first();
|
||||
|
||||
@@ -115,6 +115,7 @@ class DailyMonitoringController extends Controller
|
||||
'message' => "success",
|
||||
'data' => [
|
||||
'detail_list'=> $detail_list,
|
||||
'organization_id' => $request_logs ? $request_logs->organization_id : 0
|
||||
]
|
||||
],200);
|
||||
}
|
||||
@@ -164,6 +165,7 @@ class DailyMonitoringController extends Controller
|
||||
$db_response = DailyMonitoring::create([
|
||||
'claim_id' => $claim->id,
|
||||
'subject' => $request->subject,
|
||||
'objective' => $request->objective,
|
||||
'sistole' => $request->sistole,
|
||||
'diastole' => $request->diastole,
|
||||
'body_temperature' => $request->body_temperature,
|
||||
@@ -232,10 +234,10 @@ class DailyMonitoringController extends Controller
|
||||
'request_code' => 'required|exists:request_logs,code',
|
||||
'subject' => 'required',
|
||||
'submission_date' => 'required',
|
||||
'body_temperature' => 'required|numeric',
|
||||
'sistole' => 'required|numeric',
|
||||
'diastole' => 'required|numeric',
|
||||
'respiration_rate' => 'required|numeric',
|
||||
'body_temperature' => 'required',
|
||||
'sistole' => 'required',
|
||||
'diastole' => 'required',
|
||||
'respiration_rate' => 'required',
|
||||
'analysis' => 'required',
|
||||
'medical_plan' => 'required',
|
||||
'non_medikamentosa_plan' => 'required',
|
||||
@@ -261,6 +263,7 @@ class DailyMonitoringController extends Controller
|
||||
'request_log_id' => $request_log->id,
|
||||
'submission_date' => $request->submission_date,
|
||||
'subject' => $request->subject,
|
||||
'object' => $request->objective,
|
||||
'sistole' => $request->sistole,
|
||||
'diastole' => $request->diastole,
|
||||
'body_temperature' => $request->body_temperature,
|
||||
|
||||
@@ -15,6 +15,7 @@ class RequestDailyMonitoring extends Model
|
||||
protected $fillable = [
|
||||
'request_log_id',
|
||||
'subject',
|
||||
'object',
|
||||
'submission_date',
|
||||
'body_temperature',
|
||||
'respiration_rate',
|
||||
@@ -31,25 +32,25 @@ class RequestDailyMonitoring extends Model
|
||||
|
||||
protected $appends = ['medical_plan', 'non_medikamentosa_plan', 'document', 'discharge_date'];
|
||||
|
||||
public function getBodyTemperatureAttribute()
|
||||
{
|
||||
return round($this->attributes['body_temperature'], 0);
|
||||
}
|
||||
// public function getBodyTemperatureAttribute()
|
||||
// {
|
||||
// return round($this->attributes['body_temperature'], 0);
|
||||
// }
|
||||
|
||||
public function getSistoleAttribute()
|
||||
{
|
||||
return round($this->attributes['sistole'], 0);
|
||||
}
|
||||
// public function getSistoleAttribute()
|
||||
// {
|
||||
// return round($this->attributes['sistole'], 0);
|
||||
// }
|
||||
|
||||
public function getDiastoleAttribute()
|
||||
{
|
||||
return round($this->attributes['diastole'], 0);
|
||||
}
|
||||
// public function getDiastoleAttribute()
|
||||
// {
|
||||
// return round($this->attributes['diastole'], 0);
|
||||
// }
|
||||
|
||||
public function getRespirationRateAttribute()
|
||||
{
|
||||
return round($this->attributes['respiration_rate'], 0);
|
||||
}
|
||||
// public function getRespirationRateAttribute()
|
||||
// {
|
||||
// return round($this->attributes['respiration_rate'], 0);
|
||||
// }
|
||||
|
||||
public function getMedicalPlanAttribute()
|
||||
{
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('request_log_daily_monitorings', function (Blueprint $table) {
|
||||
$table->text('object')->after('subject')->nullable()->default(null);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('request_log_daily_monitorings', function (Blueprint $table) {
|
||||
$table->dropColumn('object');
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -169,10 +169,11 @@ type ServiceMonitoringProps = {
|
||||
time: string;
|
||||
status: string;
|
||||
subject: string;
|
||||
bodyTemperature: string;
|
||||
sistole: string;
|
||||
diastole: string;
|
||||
respirationRate: string;
|
||||
object: string;
|
||||
bodyTemperature: number;
|
||||
sistole: number;
|
||||
diastole: number;
|
||||
respirationRate: number;
|
||||
analysis: string;
|
||||
complaints: string;
|
||||
plans: {
|
||||
@@ -942,10 +943,15 @@ export default function ServiceMonitoring() {
|
||||
</Stack>
|
||||
</Grid>
|
||||
<Grid item xs={12} lg={12} md={12}>
|
||||
<Stack spacing={1}>
|
||||
<Typography variant="h6" sx={{ paddingBottom: 2 }}>
|
||||
<Stack spacing={1} sx={{ paddingBottom: 2 }}>
|
||||
<Typography variant="h6">
|
||||
Objektif
|
||||
</Typography>
|
||||
<Typography variant="inherit">
|
||||
{dailyMonitoring.object
|
||||
? dailyMonitoring.object
|
||||
: '-'}
|
||||
</Typography>
|
||||
</Stack>
|
||||
<Stack direction={'row'} sx={{ paddingY: 1 }} spacing={2}>
|
||||
<Grid item xs={6} lg={6} md={6}>
|
||||
@@ -958,8 +964,8 @@ export default function ServiceMonitoring() {
|
||||
<Grid item xs={6} lg={6} md={6}>
|
||||
<Stack>
|
||||
<Typography variant="subtitle1">
|
||||
{dailyMonitoring.bodyTemperature
|
||||
? dailyMonitoring.bodyTemperature
|
||||
{dailyMonitoring.bodyTemperature > 0
|
||||
? dailyMonitoring.bodyTemperature + ' Cel'
|
||||
: '-'}
|
||||
</Typography>
|
||||
</Stack>
|
||||
@@ -974,8 +980,8 @@ export default function ServiceMonitoring() {
|
||||
<Grid item xs={6} lg={6} md={6}>
|
||||
<Stack>
|
||||
<Typography variant="subtitle1">
|
||||
{dailyMonitoring.sistole
|
||||
? dailyMonitoring.sistole
|
||||
{dailyMonitoring.sistole > 0
|
||||
? dailyMonitoring.sistole + ' mm[Hg]'
|
||||
: '-'}
|
||||
</Typography>
|
||||
</Stack>
|
||||
@@ -990,8 +996,8 @@ export default function ServiceMonitoring() {
|
||||
<Grid item xs={6} lg={6} md={6}>
|
||||
<Stack>
|
||||
<Typography variant="subtitle1">
|
||||
{dailyMonitoring.diastole
|
||||
? dailyMonitoring.diastole
|
||||
{dailyMonitoring.diastole > 0
|
||||
? dailyMonitoring.diastole + ' mm[Hg]'
|
||||
: '-'}
|
||||
</Typography>
|
||||
</Stack>
|
||||
@@ -1008,14 +1014,14 @@ export default function ServiceMonitoring() {
|
||||
<Grid item xs={6} lg={6} md={6}>
|
||||
<Stack>
|
||||
<Typography variant="subtitle1">
|
||||
{dailyMonitoring.respirationRate
|
||||
? dailyMonitoring.respirationRate
|
||||
{dailyMonitoring.respirationRate > 0
|
||||
? dailyMonitoring.respirationRate + ' / min'
|
||||
: '-'}
|
||||
</Typography>
|
||||
</Stack>
|
||||
</Grid>
|
||||
</Stack>
|
||||
<Stack direction={'row'} sx={{ paddingY: 1 }} spacing={2}>
|
||||
{/* <Stack direction={'row'} sx={{ paddingY: 1 }} spacing={2}>
|
||||
<Grid item xs={6} lg={6} md={6}>
|
||||
<Stack>
|
||||
<Typography variant="inherit">Complaints</Typography>
|
||||
@@ -1030,7 +1036,7 @@ export default function ServiceMonitoring() {
|
||||
</Typography>
|
||||
</Stack>
|
||||
</Grid>
|
||||
</Stack>
|
||||
</Stack> */}
|
||||
<Stack spacing={1}>
|
||||
<Typography variant="h6" sx={{ paddingTop: 2 }}>
|
||||
Analysis
|
||||
|
||||
@@ -28,21 +28,31 @@ import InsertDriveFileIcon from '@mui/icons-material/InsertDriveFile';
|
||||
* Utils, Types, Functions
|
||||
* ============================================
|
||||
*/
|
||||
import { AddMonitoringDetail } from '../Model/Functions';
|
||||
import { AddMonitoringDetail, getOrganizationId } from '../Model/Functions';
|
||||
import { DetailMonitoringListType} from '../Model/Types';
|
||||
import FormCreateFilesUpload from '@/pages/CustomerService/FinalLog/Components/FormCreateFilesUpload';
|
||||
import MultiFilePreview from '@/components/upload/MultiFilePreview';
|
||||
import Iconify from '@/components/Iconify';
|
||||
import { useRef } from 'react';
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
|
||||
export default function DetailMonitoringList() {
|
||||
const { member_id, claim_code } = useParams();
|
||||
const [organizationId, setOrganizationId] = useState<number|undefined>();
|
||||
|
||||
const navigate = useNavigate()
|
||||
const pageTitle = claim_code??'_ _ _ _';
|
||||
const fileInput1 = useRef<HTMLInputElement>(null);
|
||||
const fileInput2 = useRef<HTMLInputElement>(null);
|
||||
const fileInput3 = useRef<HTMLInputElement>(null);
|
||||
|
||||
|
||||
const loadOrganizationID = async () => {
|
||||
const organization_id = await getOrganizationId(claim_code??'');
|
||||
setOrganizationId(organization_id);
|
||||
}
|
||||
useEffect(() => {
|
||||
loadOrganizationID();
|
||||
}, [])
|
||||
|
||||
// setup form
|
||||
// ====================================
|
||||
const defaultValues: DetailMonitoringListType = {
|
||||
@@ -50,6 +60,7 @@ export default function DetailMonitoringList() {
|
||||
claim_code : '',
|
||||
claim_id : '',
|
||||
subject : '',
|
||||
objective : '',
|
||||
submission_date : '',
|
||||
body_temperature: '',
|
||||
sistole : '',
|
||||
@@ -157,13 +168,11 @@ export default function DetailMonitoringList() {
|
||||
// Submit Form
|
||||
// =====================================
|
||||
const submitHandler = async (data: DetailMonitoringListType) => {
|
||||
console.log(claim_code);
|
||||
|
||||
const response = await AddMonitoringDetail(claim_code??'', data);
|
||||
|
||||
if (response == true) {
|
||||
reset();
|
||||
navigate('/case_management/daily_monitoring/'+member_id+'/claims', { replace: true });
|
||||
navigate('/case_management/daily_monitoring/'+member_id+'/'+organizationId+'/claims', { replace: true });
|
||||
// window.location.reload()
|
||||
}
|
||||
}
|
||||
@@ -171,7 +180,7 @@ export default function DetailMonitoringList() {
|
||||
return (
|
||||
<Page title={pageTitle}>
|
||||
<Box sx={{ display: 'flex', alignItems: 'center', pl: '22px', mb: '40px' }}>
|
||||
<IconButton size='large' color='inherit' onClick={() => navigate(`/case_management/daily_monitoring/${member_id}/claims`)} >
|
||||
<IconButton size='large' color='inherit' onClick={() => navigate(`/case_management/daily_monitoring/${member_id}/${organizationId}/claims`)} >
|
||||
<ArrowBackIosNew/>
|
||||
</IconButton>
|
||||
|
||||
@@ -215,6 +224,8 @@ export default function DetailMonitoringList() {
|
||||
id="subject"
|
||||
name='subject'
|
||||
placeholder='Subjective'
|
||||
multiline
|
||||
rows={4}
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
@@ -225,9 +236,18 @@ export default function DetailMonitoringList() {
|
||||
<Grid container spacing={3}>
|
||||
<Grid item xs={12}>
|
||||
<Typography variant="body1" component="div">
|
||||
Objectif
|
||||
Objective
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={12} sx={{display: 'flex', gap: 1}}>
|
||||
<RHFTextField
|
||||
id="objective"
|
||||
name='objective'
|
||||
placeholder='Objective'
|
||||
multiline
|
||||
rows={4}
|
||||
/>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<Grid container spacing={3}>
|
||||
<Grid item xs={3}>
|
||||
|
||||
@@ -29,6 +29,7 @@ import FiberManualRecord from '@mui/icons-material/FiberManualRecord';
|
||||
*/
|
||||
import { fDate, fDateOnly } from '@/utils/formatTime';
|
||||
import { getMonitoringDetailList } from '../Model/Functions';
|
||||
import { getOrganizationId } from '../Model/Functions';
|
||||
import { DetailMonitoringListType } from '../Model/Types';
|
||||
|
||||
|
||||
@@ -40,7 +41,7 @@ export default function DetailMonitoringList() {
|
||||
// State
|
||||
// --------------------
|
||||
const [detailMonitoringList, setDetailMonitoringList] = useState<DetailMonitoringListType[]>();
|
||||
|
||||
const [organizationId, setOrganizationId] = useState<number|undefined>();
|
||||
// Use Effect
|
||||
// --------------------
|
||||
useEffect(() => {
|
||||
@@ -51,8 +52,10 @@ export default function DetailMonitoringList() {
|
||||
// -------------------
|
||||
const loadDataTableData = async () => {
|
||||
const response = await getMonitoringDetailList(claim_code??'');
|
||||
const organization_id = await getOrganizationId(claim_code??'');
|
||||
|
||||
setDetailMonitoringList(response);
|
||||
setOrganizationId(organization_id);
|
||||
}
|
||||
|
||||
return (
|
||||
@@ -61,7 +64,7 @@ export default function DetailMonitoringList() {
|
||||
{/* back button */}
|
||||
<Grid item xs={12}>
|
||||
<Box sx={{ display: 'flex', alignItems: 'center' }}>
|
||||
<IconButton size='large' color='inherit' onClick={() => navigate(`/case_management/daily_monitoring/${member_id}/claims`)} >
|
||||
<IconButton size='large' color='inherit' onClick={() => navigate(`/case_management/daily_monitoring/${member_id}/${organizationId}/claims`)} >
|
||||
<ArrowBackIosNew/>
|
||||
</IconButton>
|
||||
|
||||
@@ -129,6 +132,11 @@ export default function DetailMonitoringList() {
|
||||
Object :
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={12} paddingY={2}>
|
||||
<Typography variant="body2" color={"GrayText"}>
|
||||
{row.object}
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={12}>
|
||||
<Grid container spacing={2}>
|
||||
<Grid item xs={6}>
|
||||
@@ -138,7 +146,7 @@ export default function DetailMonitoringList() {
|
||||
</Grid>
|
||||
<Grid item xs={6}>
|
||||
<Typography variant="body2">
|
||||
{row.body_temperature}
|
||||
{row.body_temperature} Cel
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item xs={6}>
|
||||
|
||||
@@ -99,3 +99,21 @@ export const getMonitoringDetailList = async ( claim_code: string ): Promise<Det
|
||||
|
||||
return response;
|
||||
};
|
||||
/**
|
||||
* Get Monitoring Detail List
|
||||
*/
|
||||
export const getOrganizationId = async ( claim_code: string ): Promise<number> => {
|
||||
const response = await axios.get(`/case_management/daily_monitoring/detail/${claim_code}/list`)
|
||||
.then((res) =>{
|
||||
return res.data.data.organization_id;
|
||||
})
|
||||
.catch((res) => {
|
||||
enqueueSnackbar("server error !", {
|
||||
variant: 'error',
|
||||
});
|
||||
|
||||
return [];
|
||||
});
|
||||
|
||||
return response;
|
||||
};
|
||||
|
||||
@@ -52,6 +52,8 @@ export type DetailMonitoringListType = {
|
||||
claim_id : string|null,
|
||||
claim_code : string,
|
||||
subject : string,
|
||||
object : string,
|
||||
objective : string,
|
||||
body_temperature: string,
|
||||
respiration_rate: string,
|
||||
sistole : string,
|
||||
@@ -69,6 +71,9 @@ export type DetailMonitoringListType = {
|
||||
result : files[],
|
||||
document : document[],
|
||||
created_at : string|null
|
||||
data : {
|
||||
organization_id : number
|
||||
}
|
||||
}
|
||||
|
||||
export type MedicalPlanStrType = {
|
||||
|
||||
Reference in New Issue
Block a user