diff --git a/src/patients/new/DuplicateNewPatientModal.tsx b/src/patients/new/DuplicateNewPatientModal.tsx
index 6d78d76c38..fed60567e5 100644
--- a/src/patients/new/DuplicateNewPatientModal.tsx
+++ b/src/patients/new/DuplicateNewPatientModal.tsx
@@ -6,7 +6,7 @@ import useTranslator from '../../shared/hooks/useTranslator'
import Patient from '../../shared/model/Patient'
interface Props {
- duplicatePatient?: Patient
+ duplicatePatientList?: Patient[]
show: boolean
toggle: () => void
onCloseButtonClick: () => void
@@ -15,7 +15,7 @@ interface Props {
const DuplicateNewPatientModal = (props: Props) => {
const { t } = useTranslator()
- const { duplicatePatient, show, toggle, onCloseButtonClick, onContinueButtonClick } = props
+ const { duplicatePatientList, show, toggle, onCloseButtonClick, onContinueButtonClick } = props
const body = (
<>
@@ -27,8 +27,8 @@ const DuplicateNewPatientModal = (props: Props) => {
{t('patients.possibleDuplicatePatient')}
- {duplicatePatient !== undefined &&
- Object.entries(duplicatePatient).map(([key, patient]) => (
+ {duplicatePatientList !== undefined &&
+ Object.entries(duplicatePatientList).map(([key, patient]) => (
{patient.fullName}
diff --git a/src/patients/new/NewPatient.tsx b/src/patients/new/NewPatient.tsx
index 5fb7e223f7..70ac719b03 100644
--- a/src/patients/new/NewPatient.tsx
+++ b/src/patients/new/NewPatient.tsx
@@ -9,6 +9,8 @@ import useTranslator from '../../shared/hooks/useTranslator'
import Patient from '../../shared/model/Patient'
import { RootState } from '../../shared/store'
import GeneralInformation from '../GeneralInformation'
+import usePatients from '../hooks/usePatients'
+import PatientSearchRequest from '../models/PatientSearchRequest'
import { createPatient } from '../patient-slice'
import { isPossibleDuplicatePatient } from '../util/is-possible-duplicate-patient'
import DuplicateNewPatientModal from './DuplicateNewPatientModal'
@@ -23,10 +25,11 @@ const NewPatient = () => {
const history = useHistory()
const dispatch = useDispatch()
const { createError } = useSelector((state: RootState) => state.patient)
- const { patients } = Object(useSelector((state: RootState) => state.patients))
+ const [searchRequest] = useState
({ queryString: '' })
+ const { data } = usePatients(searchRequest)
const [patient, setPatient] = useState({} as Patient)
- const [duplicatePatient, setDuplicatePatient] = useState(undefined)
+ const [duplicatePatientList, setDuplicatePatientList] = useState(undefined)
const [showDuplicateNewPatientModal, setShowDuplicateNewPatientModal] = useState(false)
const testPatient = {
@@ -56,16 +59,16 @@ const NewPatient = () => {
}
const onSave = () => {
- let duplicatePatients = []
- if (patients !== undefined) {
- duplicatePatients = patients.filter((existingPatient: any) =>
+ let duplicatePatients: Patient[] = []
+ if (data !== undefined && data.patients !== undefined) {
+ duplicatePatients = data.patients.filter((existingPatient: any) =>
isPossibleDuplicatePatient(patient, existingPatient),
)
}
if (duplicatePatients.length > 0) {
setShowDuplicateNewPatientModal(true)
- setDuplicatePatient(duplicatePatients as Patient)
+ setDuplicatePatientList(duplicatePatients)
} else {
dispatch(createPatient(patient, onSuccessfulSave))
}
@@ -109,7 +112,7 @@ const NewPatient = () => {