import * as Yup from 'yup'; // mui import { Container, Grid, Stack, Typography, Card, TextField, Divider, ButtonBase, Box, IconButton, Autocomplete, FormControl, InputLabel, Select, FormHelperText, MenuItem } from '@mui/material'; // components import Page from '../../components/Page'; // utils import useSettings from '../../hooks/useSettings'; // react import { useNavigate, useParams, useLocation } from 'react-router-dom'; import { useEffect, useState, useRef, useMemo } from 'react'; import axios from '../../utils/axios'; // pages import { format } from 'date-fns'; import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'; import Button from '@mui/material/Button'; import AddIcon from '@mui/icons-material/Add'; import InsertDriveFileIcon from '@mui/icons-material/InsertDriveFile'; import { Dialog, DialogTitle, DialogContent, DialogActions } from '@mui/material'; import CloseIcon from '@mui/icons-material/Close'; import FormGroup from '@mui/material/FormGroup'; import FormControlLabel from '@mui/material/FormControlLabel'; import Checkbox from '@mui/material/Checkbox'; import { DatePicker, LocalizationProvider } from '@mui/x-date-pickers'; import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'; import { fPostFormat } from '@/utils/formatTime'; import { fDate, fDateTime } from '../../utils/formatTime'; import ListItemText from '@mui/material/ListItemText'; import EditOutlinedIcon from '@mui/icons-material/EditOutlined'; import TableMoreMenu from '@/components/table/TableMoreMenu'; import { enqueueSnackbar } from 'notistack'; import BenefitConfigurationList from './components/BenefitConfigurationList'; import { map } from 'lodash'; import { FormProvider, RHFDatepicker, RHFSelect, RHFTextField } from '@/components/hook-form'; import { useFieldArray, useForm } from 'react-hook-form'; import { ClaimHistoryCare } from '@/@types/claims'; import { yupResolver } from '@hookform/resolvers/yup'; import { LoadingButton } from '@mui/lab'; import { Delete, Edit, EditOffOutlined, EditTwoTone, LoopOutlined, RefreshOutlined } from '@mui/icons-material'; import { fDateOnly, fDateTimeSuffix } from '@/utils/formatTime'; import Label from '@/components/Label'; import RHFAutocomplete from '../../components/hook-form/RHFAutocompleteV2'; // ---------------------------------------------------------------------- export default function Detail() { const location = useLocation(); const queryParams = new URLSearchParams(location.search); const code = queryParams.get('code'); const navigate = useNavigate(); const { themeStretch } = useSettings(); const [customerData, setCustomerData] = useState(null); const [documentData, setDocumentData] = useState(null); const [requestDocumentData, setRequestDocumentData] = useState(null); const [serviceData, setServiceData] = useState(null); const [serviceBenefitData, setServiceBenefitData] = useState(null); const [dataDialog, setDataDialog] = useState(null); const { id } = useParams(); useEffect(() => { axios .get('/claims/detail/'+id) .then((response) => { setCustomerData(response.data.data.customer_data); setDocumentData(response.data.data.documents); setRequestDocumentData(response.data.data.request_documents); setServiceData(response.data.data.claim_services); setServiceBenefitData(response.data.data.claim_service_benefits); setDataDialog(response.data.data.dialog_submits); }) .catch((error) => { console.error(error); }); getService(); }, []); function toTitleCase(str: string | null) { return str.replace(/\w\S*/g, function(txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }); } const style1 = { color: '#919EAB', width: '30%' } const style2 = { width: '70%' } const marginBottom1 = { marginBottom: 1, } //Request const [openDialogRequest, setOpenDialogRequest] = useState(false); const handleCloseDialogRequest = () => { setOpenDialogRequest(false); } const [conditionChecked, setConditionChecked] = useState(true); const [diagnosisChecked, setDiagnosisChecked] = useState(false); const [supportingResultChecked, setSupportingResultChecked] = useState(false); const handleConditionChange = (event) => { setConditionChecked(event.target.checked); }; const handleDiagnosisChange = (event) => { setDiagnosisChecked(event.target.checked); }; const handleSupportingResultChange = (event) => { setSupportingResultChecked(event.target.checked); }; const [noteField, setNoteField] = useState(''); const [noteFieldError, setNoteFieldError] = useState(''); const isRequiredFieldsFilled = () => { return noteField.trim() !== ''; }; const handelRequestDocument = () => { const dataForm = { claim_id: id, condition: conditionChecked, diagnosis: diagnosisChecked, result: supportingResultChecked, note: noteField, } axios .post('/claims/request-documents', dataForm) .then((response) => { enqueueSnackbar('Success Request Document', { variant: 'success' }); setOpenDialogRequest(false); window.location.reload(); }) .catch((error) => { enqueueSnackbar('Something Went Wrong', { variant: 'error' }); }) } /*---------------------- Handle History Hospital Care ----------------------------*/ interface FormValuesProps extends Partial { taxes: boolean; inStock: boolean; } /**------------- Handle History Hospital Care ---------------------*/ const [currentClaimHistoryCare, setCurrentClaimHistoryCare] = useState(null); const [organization, setOrganization] = useState([]); // Untuk Hospital const [doctor, setDoctor] = useState([]); // Untuk Docter const [corporate_id, setCorporateId] = useState(null); // Untuk Corporate const [main_diagnosis, setMainDiagnosis] = useState([]); // Untuk Main diagnosis const [claimHistoryId,setClaimHistoryId] = useState(null); // Untuk edit Claim History const [carehistory, setCarehistory] = useState(null); const [isEdit,setEdit] = useState(false); const [claim, setClaim] = useState([]) const handleCloseDialogUpdate = () => { setOpenDialogRequest(false); reset() } useEffect( () => { axios .get('claims/'+id) .then((response) => { setCorporateId(response.data.data.corporate_id) setCurrentClaimHistoryCare(response.data.data.history_hospital_care) setClaim(response.data.data) }) }, []) useEffect( () => { // setMainDiagnosis axios .get(`corporates/${corporate_id}/diagnosis`) .then((response) => { setMainDiagnosis(response.data.data) }) // setOrganization atau hospital atau location axios .get(`corporates/${corporate_id}/hospitals`) .then((response) => { setOrganization(response.data.data) }) }, [corporate_id]) useEffect( () => { // setCarehistory if (claimHistoryId != null) { axios .get('/claims/carehistory/'+claimHistoryId) .then((response) => { reset({ service_code: response.data.data.service_code, admission_date: response.data.data.admission_date, discharge_date: response.data.data.discharge_date, organization_id: response.data.data.organization_id, practitioner_id: response.data.data.practitioner_id, medical_record_number: response.data.data.medical_record_number, symptoms: response.data.data.symptoms, sign: response.data.data.sign, main_diagnosis_id: response.data.data.main_diagnosis_id, }); setCarehistory(response.data.data); }) .catch((error) => { console.error(error); }); // setDoctor atau practioner axios .get('/doctors?search=&organization_id='+values.organization_id) .then((response) => { setDoctor(response.data.data); }) .catch((error) => { console.error(error); }); // setMainDiagnosis axios .get(`corporates/${corporate_id}/diagnosis`) .then((response) => { setMainDiagnosis(response.data.data) }) // setOrganization atau hospital atau location axios .get(`corporates/${corporate_id}/hospitals`) .then((response) => { setOrganization(response.data.data) }) } }, [claimHistoryId]) useEffect( () => { reset(defaultValues); }, [isEdit]) const [openDialogHospitalCare, setOpenHospitalCare] = useState(false); const handleCloseDialogHospitalCare = () => { setEdit(false) setOpenHospitalCare(false); setClaimHistoryId(null) reset(); } const [openDialogApproval, setOpenDialogApproval] = useState(false); const handleCloseDialogApprove = () => { setOpenDialogApproval(false); setEdit(false) setClaimHistoryId(null); reset(); } /* Handle For Approve Claim */ const handleApproveClaim = (id: number|null, claim_id: number|null) =>{ // let data = { // status: 1 // } // axios.post(`/claims/carehistory/${id}/approval`, data); // setOpenDialogApproval(false) // enqueueSnackbar( // 'Claim Approve Successfully!', // { variant: 'success' } // ); // window.location.reload(); const dataForm = { status: 1, claim_id: id } axios .post(`/claims/carehistory/approval`, dataForm) .then((response) => { enqueueSnackbar('Claim Approve Successfully!', { variant: 'success' }); setOpenDialogApproval(false); window.location.reload(); }) .catch((error) => { enqueueSnackbar('Something Went Wrong', { variant: 'error' }); }) } // Handle Location Change const handleLocationChange = (organization_id:number) => { // if (newValue) { const selectedValue = organization_id; setValue('organization_id', selectedValue); // let data = { // ...values, // practitioner_id: 0 // } // reset(data) axios .get('/doctors?search=&organization_id=' + selectedValue) .then((response) => { setDoctor(response.data.data); }) .catch((error) => { console.error(error); }); // } } const handleDoctorChange = (event, newValue) => { if (newValue) { const selectedValue = newValue.id; setValue('practitioner_id', selectedValue); } } const handleMainDiagnosisChange = (event, newValue) => { if (newValue) { const selectedValue = newValue.id; setValue('main_diagnosis_id', selectedValue); } } const defaultValues = useMemo( () => ({ service_code: claim?.service_code, secondary_diagnosis_id: [{ value: { name: "", value: 0 } }], admission_date: isEdit ? carehistory?.admission_date : '', discharge_date: isEdit ? carehistory?.discharge_date : '', organization_id: isEdit ? carehistory?.organization_id : '', practitioner_id: isEdit ? carehistory?.practitioner_id : '', medical_record_number: isEdit ? carehistory?.medical_record_number : '', symptoms: isEdit ? carehistory?.symptoms : '', sign: isEdit ? carehistory?.sign : '', main_diagnosis_id: isEdit ? carehistory?.main_diagnosis_id : 0, }), [] ) let NewClaimHistoryCareSchema = Yup.object().shape({ service_code: Yup.string().required('Name is required'), // admission_date: Yup.date().required('Admisision Date is required'), // discharge_date: Yup.date().required('Discharge Date is required'), // organization_id: Yup.number().required('Location is required'), // practitioner_id: Yup.number().required('Doctor is required'), // medical_record_number: Yup.string().required('Medical Record is required'), // symptoms: Yup.string().required('Symptoms is required'), // sign: Yup.string().required('Sign is required'), // main_diagnosis_id: Yup.number().required('Main Diagnosis is required'), }); const methods = useForm({ resolver: yupResolver(NewClaimHistoryCareSchema), defaultValues, }); const { reset, watch, control, setValue, getValues, setError, handleSubmit, resetField, formState: { isSubmitting }, } = methods; const values = watch(); const {fields, append, remove} = useFieldArray({name: "secondary_diagnosis_id", control}) const onSubmit = async (data: FormValuesProps) => { if (isEdit){ let newData = { service_code: data.service_code, admission_date: data.admission_date ? fDateOnly(data.admission_date) : null, discharge_date: data.discharge_date ? fDateOnly(data.discharge_date) : null, organization_id: data.organization_id, practitioner_id: data.practitioner_id, medical_record_number: data.medical_record_number, symptoms: data.symptoms, sign: data.sign, secondary_diagnosis_id: data.secondary_diagnosis_id ? data.secondary_diagnosis_id.map((row) => row.value.id) : null, main_diagnosis_id: data.main_diagnosis_id, } const response:any = await axios.post(`/claims/carehistory/${claimHistoryId}/update`, newData); // if (response.status == 'success'){ setOpenHospitalCare(false) enqueueSnackbar( 'Claim Update Successfully!', { variant: 'success' } ); navigate('/claims/detail/'+id); window.location.reload(); // } } else { let newData = { service_code: data.service_code, admission_date: data.admission_date ? fDateOnly(data.admission_date) : null, discharge_date: data.discharge_date ? fDateOnly(data.discharge_date) : null, organization_id: data.organization_id, practitioner_id: data.practitioner_id, medical_record_number: data.medical_record_number, symptoms: data.symptoms, sign: data.sign, secondary_diagnosis_id: data.secondary_diagnosis_id ? data.secondary_diagnosis_id.map((row) => row.value.id) : null, main_diagnosis_id: data.main_diagnosis_id, } const response:any = await axios.post(`/claims/${id}/carehistory`, newData); // if (response.status == 'success'){ setOpenHospitalCare(false) enqueueSnackbar( 'Claim Insert Successfully!', { variant: 'success' } ); navigate('/claims/detail/'+id); window.location.reload(); // } } reset(); } function secondaryDiagnosisOption() { return fields.map((item, index) => { return ( {`#${index+1}`} opt.name} isOptionEqualToValue={(opt, val) => opt.name === val.name} label='Comparative Diagnosis (ICD-X)' /> remove(index)}> ) }) } function handleNewHospitalCare() { setEdit(false); setOpenHospitalCare(true); reset(defaultValues); } function handleEditHospitalCare(id: number) { setClaimHistoryId(id); setEdit(true); setOpenHospitalCare(true); // reset(defaultValues); console.log(defaultValues, 'debugs') console.log(organization, 'debugs') } function handleUpdateHospitalCare(id: number) { setOpenHospitalCare(false); setClaimHistoryId(id); setEdit(false); setOpenDialogApproval(true); } //Service const [openDialogService, setOpenDialogService] = useState(false); const handleCloseDialogService = () => { setOpenDialogService(false); } const handleConditionChangeService = (event) => { const selectedItem = event.target.value; if (valBenefitNames.includes(selectedItem)) { // Item is already selected, remove it setValBenefitNames(valBenefitNames.filter(item => item !== selectedItem)); } else { // Item is not selected, add it setValBenefitNames([...valBenefitNames, selectedItem]); } }; //Data const [serviceTypeData, setServiceTypeData] = useState(null); const [benefitNameData, setBenefitNameData] = useState(null); const [hospitalData, setHospitalData] = useState(null); //Field const currentDate = new Date(); const formattedCurrentDate = format(currentDate, 'dd MMM yyyy'); //Date Addmissions const [dateAd, setDateAd] = useState(currentDate); //Date Discharge const [dateDis, setDateDis] = useState(currentDate); //Service Type const [valServiceType, setValServiceType] = useState(serviceTypeData?.[0].id); const [valServiceTypeError, setValServiceTypeError] = useState(''); //Benefit Name const [valBenefitNames, setValBenefitNames] = useState([]); const [valBenefitNameError, setValBenefitNameError] = useState(''); //Hospital const [valHospital, setValHospital] = useState(''); const [valHospitalError, setValHospitalError] = useState(''); //txt name const [txtName, setTxtName] = useState('Add Service'); //flag add or edit service const [flagAddService, setFlagAddService] = useState('add'); //id claim_services const [idService, setIdService] = useState(null); const isRequiredFieldsServiceType = () => { return dateAd !== '' && dateDis !== '' && valServiceType !== '' && valBenefitNames.length > 0 && valHospital !== ''; }; const getService = async () => { try { const response = await axios.get('/claims/get-services/' + id); setServiceTypeData(response.data.data.service_type); setBenefitNameData(response.data.data.benefit_name); setHospitalData(response.data.data.hospital); await Promise.all([ setServiceTypeData(response.data.data.service_type), setBenefitNameData(response.data.data.benefit_name), setHospitalData(response.data.data.hospital), ]); } catch (error) { } } const handleAddService = async () => { setTxtName('Add Service'); setFlagAddService('add'); setOpenDialogService(true); } const handleEditService = async () => { setDateAd(serviceData.addmission_date); setDateDis(serviceData.discharge_date); setIdService(serviceData.id); setOpenDialogService(true); setTxtName('Edit Service'); setFlagAddService('edit'); if (serviceTypeData) { setValServiceType(serviceData.service_id); setValHospital(serviceData.hospital_id); setValBenefitNames(serviceBenefitData.benefit_id); } } const handelSaveServiceType = () => { const dateAdd = dateAd ? fPostFormat(dateAd, 'yyyy-MM-dd') : null; const dateDisc = dateDis ? fPostFormat(dateDis, 'yyyy-MM-dd') : null; const data = { flagAddService : flagAddService, idService: idService, claim_request_id: id, dateAdd : dateAdd, dateDisc : dateDisc, serviceType : valServiceType, benefitName : valBenefitNames, hospital : valHospital }; axios .post('/claims/save-services', data) .then((response) => { enqueueSnackbar('Success '+(flagAddService == 'add' ? 'Add' : 'Edit')+' Service', { variant: 'success' }); handleCloseDialogService(); window.location.reload(); }) .catch((error) => { enqueueSnackbar('Something Went Wrong', { variant: 'error' }); }) } const [openDialogSubmit, setOpenDialogSubmit] = useState(false); const handleCloseDialogSubmit = () => { setOpenDialogSubmit(false); } const [decline, setDeclaine] = useState(''); const handleSubmitData = () => { //approve or decline axios .post('claims/'+id+'/'+decline) .then((response) => { enqueueSnackbar('Success '+toTitleCase(decline)+' Claim Request', { variant: 'success' }); setOpenDialogSubmit(false); window.location.reload(); }) .catch(({ response }) => { enqueueSnackbar(response.data.message ?? 'Something went wrong!', { variant: 'error' }); }); setTimeout(() => { window.location.reload(); }, 5000); }; const handelDownloadLog = () => { axios .get(`final-log/${id}`, { responseType: 'blob', }) .then((response) => { window.open(URL.createObjectURL(response.data)); }) .catch((response) => { enqueueSnackbar(response.message, { variant: 'error' }); }); } return ( navigate(-1)} sx={{cursor:'pointer'}}/> {(customerData && customerData.code ? customerData.code : '')} {customerData ? ( Status {(customerData && customerData.status) ? toTitleCase(customerData.status) : ''} Submission Date {(customerData && customerData.submission_date) ? format(new Date(customerData.submission_date), "d MMM yyyy") : ''} ) : ''} {customerData ? ( Summary of Customer Data Full Name {customerData.name} Policy Number {customerData.payor_id} Member ID {customerData.member_id} Claim Type {toTitleCase(customerData.payment_type)} Corporate Name {toTitleCase(customerData.coporate_name)} ) : ''} {documentData ? ( {customerData?.status === 'received' ? ( Additional Documents ) : ''} {documentData?.map((documentType, index) => ( {documentType.type === 'claim-diagnosis' ? 'Diagnosis' : documentType.type === 'claim-kondisi' ? 'Condition' : documentType.type === 'claim-result' ? 'Supporting Result' : documentType.type === 'claim-invoice' ? 'Invoice' : ''} {documentType.original_name ? documentType.original_name : '-'} ))} {requestDocumentData && requestDocumentData.length > 0 ? ( Request Documents ) : ''} {requestDocumentData?.map((documentType, index) => ( {documentType.type === 'claim-diagnosis' ? 'Diagnosis' : documentType.type === 'claim-kondisi' ? 'Condition' : documentType.type === 'claim-result' ? 'Supporting Result' : documentType.type === 'claim-invoice' ? 'Invoice' : ''} ))} {/* Dialog Request Documents */} Request Document } label="Condition Document" /> } label="Diagnosis Document" /> } label="Supporting Result Document" /> Notes* { setNoteField(e.target.value); setNoteFieldError(e.target.value.trim() === '' ? 'This field is required' : ''); }} fullWidth inputProps={{ maxLength: 50 }} error={!!noteFieldError} helperText={noteFieldError} /> ): ''} {customerData?.status === 'received' ? ( History of Hospital Care ) : ''} {currentClaimHistoryCare?.map((claimHistoryCare, index) => claimHistoryCare.status === 0 ? ( {/* Tambahkan key untuk setiap elemen dalam loop */} handleEditHospitalCare(claimHistoryCare.id)}> Edit handleUpdateHospitalCare(claimHistoryCare.id)}> Update Status }/> Admission Date : { fDate(claimHistoryCare.admission_date)} {/* Perbaikan typo di 'admission_date' */} Discharge Date : { fDate(claimHistoryCare.discharge_date)} Location : {toTitleCase(claimHistoryCare.organization?.name)} Doctor : {toTitleCase(claimHistoryCare.practitioner?.code)} - {claimHistoryCare.person?.name} Status : {claimHistoryCare.status == 0 ? 'Pending' : 'Approv'} Diagnosis : #{index+1} {claimHistoryCare.icd?.code} - {claimHistoryCare.icd?.name} ) : null )} {/* Dialog for input and update */} {isEdit ? 'Update' : 'Add'} History of Hospital Care Service Code Admission Date* Discharge Date* {/* Location */} Location* { return option.name ?? false }} isOptionEqualToValue={(option, value) =>{ return option.organization_id == value.organization_id }} onChange={(e, selectedOption) => { if (selectedOption) { const selectedOrganizationId = selectedOption.organization_id; handleLocationChange(selectedOrganizationId); } }} value={organization.find(row => row.organization_id == values.organization_id)} renderInput={(params) => ( )} /> {/* Dokter */} Doctor* { return option.name ?? false }} isOptionEqualToValue={(option, value) =>{ return option.id === value.id }} value={doctor.find(row => row.id == values.practitioner_id)} onChange={handleDoctorChange} renderInput={(params) => ( )} /> Medical Record Number* Symptoms* Sign* Diagnosis* {/* {/* Main Diagnosis */} { return option.name ?? false }} isOptionEqualToValue={(option, value) =>{ return option.id == value.main_diagnosis_id }} value={main_diagnosis.find(row => row.id == values.main_diagnosis_id)} onChange={handleMainDiagnosisChange} renderInput={(params) => ( )} /> {secondaryDiagnosisOption()} {isEdit ? 'Update' : 'Save'} {/* Dialog for approval */} Add History of Hospital Care Are you sure to approve this hospital care ? Admission Date { carehistory ? fDate(carehistory?.admission_date) : '-'} Discharge Date {carehistory ? fDate(carehistory.discharge_date) : '-'} Location { carehistory ? carehistory.organization_name : '-'} Doctor {carehistory ? carehistory.practitioner_name : '-'} Diagnosis {carehistory ? carehistory?.main_diagnosis_name : '-'} Diagnostic History {currentClaimHistoryCare?.map((claimHistoryCare, index) => claimHistoryCare.status === 1 ? ( {/* Tambahkan key untuk setiap elemen dalam loop */} Admission Date : { fDate(claimHistoryCare.admission_date)} {/* Perbaikan typo di 'admission_date' */} Discharge Date : { fDate(claimHistoryCare.discharge_date)} Location : {toTitleCase(claimHistoryCare.organization?.name)} Doctor : {toTitleCase(claimHistoryCare.practitioner?.code)} - {claimHistoryCare.person?.name} Status : {claimHistoryCare.status == 0 ? 'Pending' : 'Approv'} Diagnosis : #{index+1} {claimHistoryCare.icd?.code} - {claimHistoryCare.icd?.name} ) : null )} Diagnosis Summary {currentClaimHistoryCare?.map((claimHistoryCare, index) => claimHistoryCare.status === 1 ? ( {/* Tambahkan key untuk setiap elemen dalam loop */} Symtomps : { claimHistoryCare.symptoms} {/* Perbaikan typo di 'admission_date' */} Sign : { claimHistoryCare.sign} Main Diagnosis : {claimHistoryCare.icd?.name} {/* {claimHistoryCare.comparative_diagnosis?.map((comparativeDiagnosis, i) => ( {i == 0 ? 'Comparative Diagnosis :' : ''} {comparativeDiagnosis.icd?.name} ) )} */} {claimHistoryCare.comparative_diagnosis && claimHistoryCare.comparative_diagnosis.length > 0 && ( claimHistoryCare.comparative_diagnosis.map((comparativeDiagnosis, i) => ( {i === 0 ? 'Comparative Diagnosis :' : ''} {comparativeDiagnosis.icd?.name} )) )} ) : null )} Service {!serviceData && customerData?.status === 'received' ? ( ) : ( {customerData?.status === 'received' ? ( handleEditService()}> Edit } /> ) : ''} )} {serviceData ? ( <> Admission Date {serviceData && serviceData.addmission_date ? fDateTime(serviceData.addmission_date) : ''} Discharge Date {serviceData && serviceData.discharge_date ? fDateTime(serviceData.discharge_date) : ''} Serice Type {serviceData && serviceData.name_services ? serviceData.name_services : ''} Benefit Name {serviceBenefitData && serviceBenefitData.name_benefits ? serviceBenefitData.name_benefits : ''} Hospital {serviceData && serviceData.name_hospitals ? serviceData.name_hospitals : ''} ): ''} {/* Dialog Service */} {txtName} Admission Date* { setDateAd(newValue); }} inputFormat="dd MMM yyyy" renderInput={(params) => } /> Discharge Date* { setDateDis(newValue); }} inputFormat="dd MMM yyyy" renderInput={(params) => } /> Service Type* Service Type {valServiceTypeError} Benefit Name* Benefit Name {valBenefitNameError} Hospital* Hospital {valHospitalError} {/* title */} Client Benefit Configuration {/* no benefit selected */} { false ? ( Tidak ada benefit yang dipilih ) : ( ) } <> {(customerData && customerData.status === 'received') ? ( <> ) : ( <> ) } {/* Dialog Submits */} Confirmation {dataDialog ? ( Are you sure to {toTitleCase(decline)} this claim ? Code {dataDialog.code} Name {dataDialog.name} Date Submission {fDateTime(dataDialog.submission_date)} Claim Method Service Type Service Type {dataDialog.service_code === 'IP' ? 'Inpatient' : 'Outpatient'} ) : ''} ); }