import Router from 'next/router'; import { useState } from 'react'; import TableCell from '@mui/material/TableCell'; import TableRow from '@mui/material/TableRow'; // button icon import IconButton from '@mui/material/IconButton'; // import EventAvailableIcon from '@mui/icons-material/EventAvailable'; import QuestionAnswerIcon from '@mui/icons-material/QuestionAnswer'; import HelpOutlineIcon from '@mui/icons-material/HelpOutline'; import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline'; import InfoIcon from '@mui/icons-material/Info'; // for dialog import Button from '@mui/material/Button'; import { styled } from '@mui/material/styles'; import Dialog from '@mui/material/Dialog'; import DialogTitle from '@mui/material/DialogTitle'; import DialogContent from '@mui/material/DialogContent'; import DialogActions from '@mui/material/DialogActions'; import CloseIcon from '@mui/icons-material/Close'; import TextField from '@mui/material/TextField'; import Box from '@mui/material/Box'; import { formatInTimeZone } from 'date-fns-tz' // format timezone // for tindakan select import OutlinedInput from '@mui/material/OutlinedInput'; import InputLabel from '@mui/material/InputLabel'; import MenuItem from '@mui/material/MenuItem'; import FormControl from '@mui/material/FormControl'; import ListItemText from '@mui/material/ListItemText'; import Select from '@mui/material/Select'; import Checkbox from '@mui/material/Checkbox'; import Chip from '@mui/material/Chip'; import Divider from '@mui/material/Divider'; // for dialog const BootstrapDialog = styled(Dialog)(({ theme }) => ({ '& .MuiDialogContent-root': { padding: theme.spacing(2), }, '& .MuiDialogActions-root': { padding: theme.spacing(1), }, })); const CustomDisableInput = styled(TextField)(() => ({ ".MuiInputBase-input.Mui-disabled": { WebkitTextFillColor: "#000", color: "#000" }, // change the mui textfield border color ".MuiOutlinedInput-root.Mui-disabled .MuiOutlinedInput-notchedOutline": { borderColor: "#339AFF" }, // change the label color ".MuiInputLabel-root.Mui-disabled": { color: "#339AFF" } })); const BootstrapDialogTitle = (props) => { const { children, onClose, ...other } = props; return ( {children} {onClose ? ( theme.palette.grey[500], }} > ) : null} ); }; // ini untuk select const ITEM_HEIGHT = 48; const ITEM_PADDING_TOP = 8; const MenuProps = { PaperProps: { style: { maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP, width: 250, }, }, }; const PenjumlahanObat = (props) => { let datanya = props.listObat; let component = []; for (let i = 0; i < datanya.length; i++) { component.push(
) } return ( <> {component} ) } function Umur(props) { let umur = props.tgl_lahir; let tahun = new Date().getFullYear(); let tahun_lahir = umur.substr(0, 4); let umur_ini = tahun - tahun_lahir; return ( <> {umur_ini} ) } function TabelJadwalRekamMedis(props) { let component = []; const [openDialog, setOpenDialog] = useState(false); const [dataRekamMedis, setDataRekamMedis] = useState(null); const [selectedTindakan, setSelectedTindakan] = useState([]); const [selectedObat, setSelectedObat] = useState([]); const [listObat, setListObat] = useState([]); const preview_rekam_medis = async (id_rekam_medis) => { props.backdropnya(true) setDataRekamMedis(null) setSelectedTindakan([]) setSelectedObat([]) try { const url = process.env.HTTP_URL + "/api/dokter/cek_data_rekam_medis?id=" + id_rekam_medis + "&id_dokter=" + props.user; const response = await fetch(url, { method: 'GET', headers: { 'Content-Type': 'application/json', 'allow-cors-origin': '*', 'crossDomain': true, 'Authorization': 'Basic ' + btoa(`${process.env.ADMIN_AUTH}:${process.env.ADMIN_PASSWORD}`) }, }) const data = await response.json(); if (response.status === 200) { setDataRekamMedis(data.data); const tindakan = JSON.parse(data.data.tindakan); if (tindakan.length > 0) { await cek_tindakan(tindakan); } const obat = JSON.parse(data.data.obat); if (obat.length > 0) { await cek_obat(obat); } // setSelectedTindakan(tindakan); // console.log(tindakan, "ini tindakan"); setOpenDialog(true); } else { props.errornya(data.message); } } catch (err) { console.log(err) props.errornya("Terjadi kesalahan saat mengambil data rekam medis") } props.backdropnya(false) } const cek_tindakan = async (data) => { // console.log(data, "ini data tindakan"); try { let tindakan_array = []; for (let i = 0; i < data.length; i++) { let url = process.env.HTTP_URL + "/api/dokter/tindakan?id=" + data[i]; const response = await fetch(url, { method: 'GET', headers: { 'Content-Type': 'application/json', 'allow-cors-origin': '*', 'crossDomain': true, 'Authorization': 'Basic ' + btoa(`${process.env.ADMIN_AUTH}:${process.env.ADMIN_PASSWORD}`) }, }) const data_tindakan = await response.json(); // console.log(data_tindakan, "ini data tindakan"); if (response.status === 200) { // tindakan_array.push(); let ini_tindakan = data_tindakan.data.nama_tindakan; tindakan_array.push(ini_tindakan); } } setSelectedTindakan(tindakan_array); console.log(tindakan_array, "ini tindakan array"); } catch (err) { console.log(err) } } const cek_obat = async (data) => { try { let list_obat = []; let selected_obat = []; for (let i = 0; i < data.length; i++) { let url = process.env.HTTP_URL + "/api/dokter/cek_obat?id=" + data[i].id; const response = await fetch(url, { method: 'GET', headers: { 'Content-Type': 'application/json', 'allow-cors-origin': '*', 'crossDomain': true, 'Authorization': 'Basic ' + btoa(`${process.env.ADMIN_AUTH}:${process.env.ADMIN_PASSWORD}`) }, }) const data_obat = await response.json(); console.log(data_obat, "ini data obat"); if (response.status === 200) { // tindakan_array.push(); let nama_obat = data_obat.data.nama_obat; list_obat.push({ nama_obat: nama_obat, jumlah: data[i].jumlah, }); selected_obat.push(nama_obat); } } setListObat(list_obat); setSelectedObat(selected_obat); } catch (err) { console.log(err) } } if (props.data.length == 0) { component = ( Tiada Data ) } else { for (let i = 0; i < props.data.length; i++) { let ii = 0; ii = i + 1; component.push( {ii} {props.data[i].tb_pasien.nik} {props.data[i].tb_pasien.nama} {props.data[i].tanggal_periksa} | {props.data[i].jam_periksa} {props.data[i].tb_pasien.golongan_darah} { (props.data[i].diagnosa == '' || props.data[i].diagnosa == null) ? <> : <> { preview_rekam_medis(props.data[i].id_rekam_medis) } } > } { (props.data[i].diagnosa == '' || props.data[i].diagnosa == null) ? <> { Router.push('/dokter/rekam-medis/data?id=' + props.data[i].id_rekam_medis) } } > : <> { preview_rekam_medis(props.data[i].id_rekam_medis) } }> } ) } } return ( <> { setOpenDialog(false) } } aria-labelledby="customized-dialog-title" open={openDialog} fullWidth={true} > { setOpenDialog(false) } }> Detail Rekam Medis { (selectedTindakan.length > 0) ? Tindakan : Tiada Tindakan } { (selectedTindakan.length > 0) ? <> Obat : Tiada Tindakan } {component} ) } export default TabelJadwalRekamMedis