//import i18next from 'i18next';
import i18next from '../../common/i18next';
import React, { PureComponent } from 'react';
import { connect } from 'react-redux';
import PatientDetailsTabs from './components/PatientDetailsTabs';
import PatientDetailsHeader from './components/PatientDetailsHeader';
import QRCodeGeneration from './components/QRCodeGeneration';
import { withRouter } from 'react-router-dom';
import DialogModal from '../../components/DialogModal/DialogModal';
import { questionnarieActions } from '../../redux/questionnarie';
import Button from '@material-ui/core/Button';
import { REGISTRY_UNIT_NAME } from '../../helper/constants';
class PatientDetails extends PureComponent {
constructor(props) {
super(props);
this.state = {
isQRCodeModal: false,
// pageNumber: 0,
// pageSize: 5,
// patientUid:''
};
}
componentDidMount() {
// this.loadPatientProfileInfo(this.props.selectedAssignPro);
};
componentWillReceiveProps(nextProps) {
if (nextProps.selectedAssignPro !== this.props.selectedAssignPro) {
this.loadPatientProfileInfo(nextProps.selectedAssignPro);
// this.setState({ patientUid:nextProps.selectedAssignPro.data.PatientUid})
}
}
loadPatientProfileInfo = async (PatientData) => {
const { patientProfileInfo: getPatientProfileInfo, selectedPractice } = this.props;
const practiceId = (selectedPractice && selectedPractice.practiceId) ? selectedPractice.practiceId : '';
const params = {
input: {
PracticeId: practiceId,
Unit: REGISTRY_UNIT_NAME,
IsLastVisit: true,
PatientUid: PatientData ? PatientData.patientuid : '',
PageNumber: 1,
PageSize: 10,
OutputColumn: "firstname,lastname,midname,mrn,practiceid,patientuid,visitdate,visituid,gender,emailid,dob"
}
};
await getPatientProfileInfo(params);
}
// onPageChangeHandler = (page) => {
// // const{selectedAssignPro:data}= this.props;
// const{patientUid}=this.state;
// this.setState({
// pageNumber: page
// }, () => {
// this.loadQuestionnarieData(patientUid);
// });
// };
// loadQuestionnarieData = (PatientUid) => {
// const { fetchQuestionnarie, questionnarieList, selectedAssignPro } = this.props;
// // const {
// // pageNumber,
// // pageSize
// // } = this.state;
// const requestJson = {
// input: {
// patientuid: PatientUid,
// unit: 'aao', // TODO
// limit: pageSize,
// offset: pageNumber
// }
// };
// fetchQuestionnarie(requestJson);
// }
/**
* Function used to generate QR Code
*/
generateQRCode = () => {
this.setState({ isQRCodeModal: true });
};
/**
* Function used to get QR code modal template
*/
getQRCodeModalTemplate = () => {
const { isQRCodeModal } = this.state;
const { headerData, selectedPractice } = this.props;
const practiceId = (selectedPractice && selectedPractice.practiceId) ? selectedPractice.practiceId : '';
const practiceName = (selectedPractice && selectedPractice.practiceName) ? selectedPractice.practiceName : '';
const QRCodeValues = {
registry_id: REGISTRY_UNIT_NAME,
practice_id: practiceId,
practice_name: practiceName,
patient_id: headerData && headerData[0] && headerData[0].patientuid ? headerData[0].patientuid: '',
patient_mrn: headerData && headerData[0] && headerData[0].mrn ? headerData[0].mrn : '',
vendorType: i18next.t('patientDetails.modal.QRCode.vendorType'),
vendorName: i18next.t('patientDetails.modal.QRCode.vendorName')
};
const fullWidth = true;
return (
<DialogModal
isOpen={isQRCodeModal}
fullWidth={fullWidth}
maxWidth='xs'
modalTitle={i18next.t('patientProfile.questionnarieHeader.QRCode.title')}
modalContent={<QRCodeGeneration values={JSON.stringify(QRCodeValues)} />}
modalContentAlignment='center'
handleCloseEvent={this.closeQRCodeModal}
handleCancelEvent={this.closeQRCodeModal}
handleOkEvent={this.discardQRCodeModal}
/>
);
};
/**
* Function used to handle close event of QR code modal
*/
closeQRCodeModal = () => {
this.setState({ isQRCodeModal: false });
};
/**
* Function used to handle ok event of QR code modal
*/
discardQRCodeModal = () => {
this.setState({ isQRCodeModal: false });
};
goBackToPatientBrowser = () => {
const { history}=this.props
history.goBack();
}
render() {
const { isQRCodeModal } = this.state;
return (
<div className='patient-view'>
{/* <Button onClick={this.goBackToPatientBrowser}> Go back</Button> */}
{isQRCodeModal && this.getQRCodeModalTemplate()}
<PatientDetailsHeader generateQRCode={() => this.generateQRCode()} handleButtonClick={this.goBackToPatientBrowser}/>
<PatientDetailsTabs />
</div>
);
}
}
const mapStateToProps = ({ questionnarieReducer, assignProList }) => {
return {
headerData: questionnarieReducer.patientProfileInfolist.data,
selectedAssignPro: assignProList.selectedAssignPro.data,
selectedPractice: assignProList.selectedPractice.data
};
};
const mapDispatchToProps = {
patientProfileInfo: questionnarieActions.patientProfileInfo,
// fetchQuestionnarie: questionnarieActions.questionnarieData
}
export default withRouter(connect(mapStateToProps,mapDispatchToProps)(PatientDetails));
|