diff --git a/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php b/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php
index 8f95823b..f38a6f1c 100755
--- a/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php
+++ b/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php
@@ -44,12 +44,12 @@ class MemberController extends Controller
->select(
'members.id',
'members.name',
- 'members.member_id',
+ 'members.member_id',
'member_policies.policy_id',
- 'persons.nik',
- 'members.email',
- 'members.birth_date',
- 'members.gender',
+ 'persons.nik',
+ 'members.email',
+ 'members.birth_date',
+ 'members.gender',
'members.marital_status',
'members.language',
'members.race',
@@ -119,14 +119,26 @@ class MemberController extends Controller
$res_data['companies'] = $companies;
-
+
+ // specialities
+ $specialities = DB::table('specialities')
+ ->select(
+ 'specialities.id',
+ 'specialities.name'
+ )
+ ->orderBy('specialities.name','asc')
+ ->get();
+
+ $res_data['specialities'] = $specialities;
+
+
return ApiResponse::apiResponse("Success", $res_data, trans('Message.success'), 200);
}
else
{
return ApiResponse::apiResponse("Data Not Found", $data, trans('Message.not_found'), 404);
}
-
+
}
}
}
diff --git a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php
index 44c9e01e..f50be414 100755
--- a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php
+++ b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php
@@ -36,6 +36,8 @@ class RequestLogController extends Controller
'address_provider' => !empty($request->address_provider) ? $request->address_provider : null,
'submission_date' => $request->submission_date,
'corporate_id_partner' => !empty($request->corporate_id_partner) ? $request->corporate_id_partner : [],
+ 'specialities_id' => $request->specialities_id,
+ 'dppj' => $request->dppj
];
$validator = Validator::make($request->all(), [
'member_id' => 'required',
@@ -119,7 +121,7 @@ class RequestLogController extends Controller
$requestLogControllerInstance = new PrimeCenterRequestLog();
try {
$response = $requestLogControllerInstance->createNew($request);
-
+
if($response->original['statusCode'] == 200)
{
//send email
@@ -361,7 +363,7 @@ class RequestLogController extends Controller
->update([
'status_final_log' => 'requested',
'final_log' => 1,
- 'discharge_date' => $request->discharge_date,
+ 'discharge_date' => $request->discharge_date,
'created_final_by'=> auth()->user()->id,
'created_final_at'=> date('Y-m-d H:i:s'),
]);
@@ -785,7 +787,7 @@ class RequestLogController extends Controller
$dataDiagnosis = [];
if($dataRequestLog->diagnosis)
{
- $dataDiagnosiCodes = explode(',', $dataRequestLog->diagnosis);
+ $dataDiagnosiCodes = explode(',', $dataRequestLog->diagnosis);
foreach ($dataDiagnosiCodes as $diagnosisCode)
{
$diagnoisis = DB::table('icd')
@@ -796,8 +798,8 @@ class RequestLogController extends Controller
}
}
- $data['dataDiagnosis'] = $dataDiagnosis;
-
+ $data['dataDiagnosis'] = $dataDiagnosis;
+
$pdf = new Dompdf();
@@ -848,7 +850,7 @@ class RequestLogController extends Controller
->where('id', '=', $request_logs_id)
->select('id', 'member_id', 'service_code')
->first();
-
+
$check_claim_requests = DB::table('claim_requests')
->where('claim_requests.request_log_id', '=', $request_logs_id)
->first();
@@ -860,12 +862,12 @@ class RequestLogController extends Controller
$requestLogData = RequestLog::where('id',$request_logs_id)->first();
$organization = Organization::where(['id' => $requestLogData->organization_id, 'type' => 'hospital'])->first('code');
$provideCode = $organization ? $organization->code : '';
-
+
$newClaimRequest = ClaimRequestService::storeClaimRequest(
- row: [],
- code: $code,
- member: $member,
- paymentType: 'cashless',
+ row: [],
+ code: $code,
+ member: $member,
+ paymentType: 'cashless',
serviceCode: $data_req_logs->service_code,
requestLogID: $request_logs_id,
organization_code: $provideCode,
@@ -877,7 +879,7 @@ class RequestLogController extends Controller
'type' => 'info',
'system_origin' => 'hospital-portal'
]);
-
+
// Claim Log
DB::table('claim_logs')
->insert([
diff --git a/Modules/Internal/Http/Controllers/Api/RequestLogController.php b/Modules/Internal/Http/Controllers/Api/RequestLogController.php
index 09d5b923..328ef515 100755
--- a/Modules/Internal/Http/Controllers/Api/RequestLogController.php
+++ b/Modules/Internal/Http/Controllers/Api/RequestLogController.php
@@ -149,7 +149,9 @@ class RequestLogController extends Controller
// status: 'approved',
status: 'requested', // di nonaktifkan dulu auto approved
organization_id: $request->organization_id,
- source: $request->source
+ source: $request->source,
+ specialities_id: $request->specialities_id,
+ dppj: $request->dppj
);
DB::commit();
@@ -171,7 +173,9 @@ class RequestLogController extends Controller
submissionDate: $request->submission_date,
status: 'requested',
organization_id: $request->organization_id,
- source: $request->source
+ source: $request->source,
+ specialities_id: $request->specialities_id,
+ dppj: $request->dppj
);
DB::commit();
@@ -489,11 +493,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();
diff --git a/Modules/Internal/Transformers/RequestLogShowResource.php b/Modules/Internal/Transformers/RequestLogShowResource.php
index 8aa77dfb..a785e51c 100755
--- a/Modules/Internal/Transformers/RequestLogShowResource.php
+++ b/Modules/Internal/Transformers/RequestLogShowResource.php
@@ -13,6 +13,7 @@ use App\Models\Benefit;
use App\Models\Exclusion;
use App\Models\ClaimRequest;
use App\Models\Icd;
+use App\Models\Speciality;
use App\Helpers\Helper;
use App\Models\CorporatePolicy;
use Illuminate\Http\Resources\Json\JsonResource;
@@ -117,12 +118,20 @@ class RequestLogShowResource extends JsonResource
}
$memberUsage = Helper::getUsageMember($corporateId, $requestLog['member']['id'], $benefitData);
- // dd($memberLimitUsage);
+ if($requestLog['specialities_id'])
+ {
+ $spesialis = Speciality::query()
+ ->where('id', $requestLog['specialities_id'])
+ ->select('name')
+ ->first();
+ }
$data = [
'id' => $requestLog['id'],
'code' => $requestLog['code'],
'invoice_no' => $requestLog['invoice_no'],
'billing_no' => $requestLog['billing_no'],
+ 'specialities_id' => $spesialis['name'],
+ 'dppj' => $requestLog['dppj'],
'code' => $requestLog['code'],
'code_claim' => $claimCode,
'member_id' => $requestLog['member']['member_id'],
@@ -161,7 +170,7 @@ class RequestLogShowResource extends JsonResource
'reason' => $requestLog['reason'],
'diagnosis' => $icd,
'is_reversal' => $isReversal, // untuk penjagaan, jika true tidak bisa di edit/hapus lagi
-
+
];
diff --git a/app/Models/RequestLog.php b/app/Models/RequestLog.php
index 08e45eb7..bd180522 100755
--- a/app/Models/RequestLog.php
+++ b/app/Models/RequestLog.php
@@ -51,6 +51,8 @@ class RequestLog extends Model
'approved_final_log_at',
'created_final_at',
'created_final_by',
+ 'specialities_id',
+ 'dppj',
'type_of_member'
];
@@ -82,7 +84,7 @@ class RequestLog extends Model
"Keterangan IGL" => "keterangan",
"Catatan FGL" => "catatan",
"QC 1" => "status_final_log",
- "Ingestion Code" => "ingestion_code",
+ "Ingestion Code" => "ingestion_code",
"Ingestion Status" => "ingestion_status",
];
diff --git a/app/Services/RequestLogService.php b/app/Services/RequestLogService.php
index 415a7ed2..1b821865 100755
--- a/app/Services/RequestLogService.php
+++ b/app/Services/RequestLogService.php
@@ -21,14 +21,16 @@ use Str;
class RequestLogService{
public static function storeRequestLog(
- $row = null,
- $code,
- $member,
- $paymentType,
- $serviceCode,
- $submissionDate,
- $status, $organization_id = null,
- $source
+ $row = null,
+ $code,
+ $member,
+ $paymentType,
+ $serviceCode,
+ $submissionDate,
+ $status, $organization_id = null,
+ $source,
+ $specialities_id,
+ $dppj
)
{
try {
@@ -55,6 +57,8 @@ class RequestLogService{
'policy_id' => $member->currentPolicy->id ?? null,
'organization_id' => $organization ? $organization->id : 0,
'source' => $source,
+ 'specialities_id' => $specialities_id,
+ 'dppj' => $dppj
];
$requestLog = RequestLog::create($requestLogData);
@@ -109,7 +113,7 @@ class RequestLogService{
DB::commit();
return $claimManagement;
-
+
} catch (\Exception $error) {
DB::rollBack();
@@ -168,4 +172,4 @@ class RequestLogService{
}
}
-}
\ No newline at end of file
+}
diff --git a/database/migrations/2025_02_13_102948_add_column_specialities_id_to_request_logs.php b/database/migrations/2025_02_13_102948_add_column_specialities_id_to_request_logs.php
new file mode 100644
index 00000000..bbf14e00
--- /dev/null
+++ b/database/migrations/2025_02_13_102948_add_column_specialities_id_to_request_logs.php
@@ -0,0 +1,36 @@
+bigInteger('specialities_id')->after('created_final_by')->nullable();
+ });
+ }
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ if(!Schema::hasColumn('request_logs', 'specialities_id')) {
+ Schema::table('request_logs', function (Blueprint $table) {
+ $table->dropColumn('specialities_id');
+ });
+ }
+ }
+};
diff --git a/database/migrations/2025_02_13_105939_add_column_dppj_to_request_logs.php b/database/migrations/2025_02_13_105939_add_column_dppj_to_request_logs.php
new file mode 100644
index 00000000..0e8447da
--- /dev/null
+++ b/database/migrations/2025_02_13_105939_add_column_dppj_to_request_logs.php
@@ -0,0 +1,36 @@
+string('dppj', '255')->after('specialities_id')->nullable();
+ });
+ }
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ if(!Schema::hasColumn('request_logs', 'dppj')) {
+ Schema::table('request_logs', function (Blueprint $table) {
+ $table->dropColumn('dppj');
+ });
+ }
+ }
+};
diff --git a/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx b/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx
index 902e9272..86952c26 100755
--- a/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx
+++ b/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx
@@ -250,6 +250,14 @@ export default function Detail() {
Penempatan Kamar
{requestLog?.penempatan_kamar ? requestLog?.penempatan_kamar : '-'}
+
+ Spesialis
+ {requestLog?.specialities_id ? requestLog?.specialities_id : '-'}
+
+
+ DPPJ
+ {requestLog?.dppj ? requestLog?.dppj : '-'}
+
Catatan
{requestLog?.catatan ? requestLog?.catatan : '-'}
diff --git a/frontend/dashboard/src/pages/CustomerService/FinalLog/Model/Types.tsx b/frontend/dashboard/src/pages/CustomerService/FinalLog/Model/Types.tsx
index 6401a2b4..be8ac1ba 100755
--- a/frontend/dashboard/src/pages/CustomerService/FinalLog/Model/Types.tsx
+++ b/frontend/dashboard/src/pages/CustomerService/FinalLog/Model/Types.tsx
@@ -24,6 +24,8 @@ export type FinalLogType = {
provider : string,
status : string,
files_by_type : files_by_type,
+ specialities_id : number,
+ dppj: string
}
diff --git a/frontend/dashboard/src/pages/CustomerService/Request/Detail.tsx b/frontend/dashboard/src/pages/CustomerService/Request/Detail.tsx
index 6ba7f378..d192b013 100755
--- a/frontend/dashboard/src/pages/CustomerService/Request/Detail.tsx
+++ b/frontend/dashboard/src/pages/CustomerService/Request/Detail.tsx
@@ -34,7 +34,7 @@ export default function Detail() {
const navigate = useNavigate();
const { themeStretch } = useSettings();
const [requestLog, setRequestLog] = useState();
-
+
const { id } = useParams();
@@ -70,9 +70,9 @@ export default function Detail() {
const handleCloseDialogSubmit = () => {
setOpenDialogSubmit(false);
}
-
+
const [approve, setApprove] = useState('')
-
+
const [openDialogEdit, setOpenDialogEdit] = useState(false);
return (
@@ -84,7 +84,7 @@ export default function Detail() {
-
+
Detail
@@ -106,7 +106,7 @@ export default function Detail() {
/>
) : null}
-
+
Provider Name
@@ -157,6 +157,14 @@ export default function Detail() {
Penempatan Kamar
{requestLog?.penempatan_kamar ? requestLog?.penempatan_kamar : '-'}
+
+ Spesialis
+ {requestLog?.specialities_id ? requestLog?.specialities_id : '-'}
+
+
+ DPPJ
+ {requestLog?.dppj ? requestLog?.dppj : '-'}
+
@@ -217,13 +225,13 @@ export default function Detail() {
openDialog={openDialogSubmit}
approve={approve}
>
-
+
) : null}
-
-
+
diff --git a/frontend/dashboard/src/pages/CustomerService/Request/Model/Types.tsx b/frontend/dashboard/src/pages/CustomerService/Request/Model/Types.tsx
index 209fab3a..a446cbcf 100755
--- a/frontend/dashboard/src/pages/CustomerService/Request/Model/Types.tsx
+++ b/frontend/dashboard/src/pages/CustomerService/Request/Model/Types.tsx
@@ -57,7 +57,9 @@ export type DetailRequestLogType = {
benefit : Benefit[],
reason : string,
type_of_member : string,
- corporate_id : number
+ corporate_id : number,
+ specialities_id : number,
+ dppj: string
}
export type Benefit = {
diff --git a/frontend/hospital-portal/src/lang/en-US.json b/frontend/hospital-portal/src/lang/en-US.json
index 88f5da3a..2de517d8 100755
--- a/frontend/hospital-portal/src/lang/en-US.json
+++ b/frontend/hospital-portal/src/lang/en-US.json
@@ -138,7 +138,9 @@
"txtButtonClose": "Close",
"txtLabelFailed": "Failed",
"txtAttention": "Attention",
- "txtAttentionInfo": "There are pending orders that require approval."
+ "txtAttentionInfo": "There are pending orders that require approval.",
+ "txtDPPJ": "DPPJ",
+ "txtSpecialist": "Specialist"
}
diff --git a/frontend/hospital-portal/src/lang/id-ID.json b/frontend/hospital-portal/src/lang/id-ID.json
index ac3e7f70..2b6edfce 100755
--- a/frontend/hospital-portal/src/lang/id-ID.json
+++ b/frontend/hospital-portal/src/lang/id-ID.json
@@ -138,5 +138,7 @@
"txtButtonClose": "Tutup",
"txtLabelFailed": "Gagal Pengiriman",
"txtAttention": "Perhatian",
- "txtAttentionInfo": "Terdapat pesanan pending mohon untuk segera di approve."
+ "txtAttentionInfo": "Terdapat pesanan pending mohon untuk segera di approve.",
+ "txtDPPJ": "DPPJ",
+ "txtSpecialist": "Spesialis"
}
diff --git a/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx b/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx
index 70bb881a..3858fa54 100755
--- a/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx
+++ b/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx
@@ -1,18 +1,18 @@
import { LoadingButton } from '@mui/lab';
-import
-{
+import
+{
Avatar,
FormControl,
InputLabel,
Select,
FormHelperText,
- MenuItem
+ MenuItem
} from '@mui/material';
import { Card } from '@mui/material';
import { Stack, Typography } from '@mui/material';
import axios from '@/utils/axios';
import { enqueueSnackbar } from 'notistack';
-import { useRef, useState, useContext, useEffect } from 'react';
+import React, { useRef, useState, useContext, useEffect } from 'react';
import { makeFormData } from '@/utils/jsonToFormData';
import { format } from 'date-fns';
import { LanguageContext } from '@/contexts/LanguageContext';
@@ -28,6 +28,7 @@ interface MemberType {
services: any;
providers:any;
companies:any;
+ specialities:any;
}
interface FormRequestClaimProps {
member: MemberType;
@@ -37,6 +38,8 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe
const { localeData }: any = useContext(LanguageContext);
const [serviceCode, setServiceCode] = useState('');
const [idProvider, setIdProvider] = useState(0);
+ const [idSpecialities, setIdSpecialities] = useState(0);
+ const [inputDppj, setInputDppj] = useState('');
//Submission date
const [submissionDate, setSubmissionDate] = useState(format(new Date(), "yyyy MMM d HH:mm:ss"));
@@ -47,7 +50,7 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe
setCorporateIdPartner(member?.companies?.map((item: { id: any; name: any; }) => ({ value: item.id, label: item.name })));
}, []);
const [selectedCorporatID, setSelectedCorporateID] = useState([]);
-
+
const handleSelectChangePatner = (event:any, selectedOptions:any) => {
const selectedValues = selectedOptions.map((option: { value: any; }) => option.value);
setSelectedCorporateID(selectedValues);
@@ -77,24 +80,26 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe
organization_name : name,
address_provider: alamat,
submission_date: fPostFormat(submissionDate, 'yyyy-MM-dd HH:mm:ss'),
- corporate_id_partner: selectedCorporatID
+ corporate_id_partner: selectedCorporatID,
+ specialities_id: idSpecialities,
+ dppj: inputDppj
};
axios
.post('/request-log', formData)
.then((response) => {
if (response && response.data && response.data.meta) {
- setTimeout(() => {
- window.location.reload();
- }, 1500);
+ // setTimeout(() => {
+ // window.location.reload();
+ // }, 1500);
enqueueSnackbar(response.data.meta.message, { variant: 'success' });
handleSubmitSuccess();
-
- }
+
+ }
})
.catch(({ response }) => {
if (response && response.data && response.data.meta) {
enqueueSnackbar(response.data.meta.message, { variant: 'error' });
- }
+ }
})
.then(() => {
setSubmitLoading(false);
@@ -111,6 +116,11 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe
name: string;
}
+ interface Specialities {
+ id: number;
+ name: string;
+ }
+
const [showAddNewForm, setShowAddNewForm] = useState(false);
const [name, setName] = useState('');
const [alamat, setAlamat] = useState('');
@@ -191,7 +201,7 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe
-
+
{localeData.txtDialogMember1} *
@@ -215,6 +225,45 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe
+ {/* Specialist */}
+
+
+ {localeData.txtSpecialist}
+ option.name || ''}
+ value={member?.specialities.find((item: Specialities) => item.id === idSpecialities) || null}
+ onChange={(event: React.ChangeEvent<{}>, newValue : Specialities | null) => {
+ setIdSpecialities(newValue?.id || 0);
+ }}
+ renderInput={(params) => (
+
+ )}
+ />
+
+
+
+
+
+
+ { localeData.txtDPPJ }
+ {
+ setInputDppj(event.target.value);
+ }}
+ fullWidth
+ />
+
+
+
{localeData.txtDialogMember5} *
@@ -226,7 +275,7 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe
setSubmissionDate( (newValue));
}}
inputFormat="dd-MM-yyyy HH:mm"
- renderInput={(params) => }
+ renderInput={(params) => }
/>