<?php
namespace App\Controller;
use App\Entity\Patient;
use App\Form\DashboardType;
use App\Repository\PatientRepository;
use App\Repository\PrimaryHipRepository;
use App\Repository\PrimaryKneeRepository;
use App\Repository\RevisionHipRepository;
use App\Repository\RevisionKneeRepository;
use App\Entity\PrimaryHip;
use App\Entity\PrimaryKnee;
use App\Entity\RevisionHip;
use App\Entity\RevisionKnee;
use App\Entity\User;
use App\Entity\Hospital;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\PropertyAccess\PropertyAccess;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
use Symfony\Component\Serializer\Serializer;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
//use PhpOffice\PhpSpreadsheet\Settings;
use Doctrine\ORM\EntityManagerInterface;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Symfony\Component\HttpFoundation\StreamedResponse;
//use Cache\Adapter\Apcu\ApcuCachePool;
//use Cache\Bridge\SimpleCache\SimpleCacheBridge;
use App\Service\OperationRegistryFunctions;
use App\Form\ExportFilterType;
/**
* @Route("/")
*/
class DashboardController extends AbstractController
{
public function __construct( EntityManagerInterface $entityManager, OperationRegistryFunctions $OPFunctions)
{
$this->entityManager = $entityManager;
$this->OPFunctions = $OPFunctions;
}
private function validateDate($date, $format = 'Y-m-d')
{
$d = date_create_from_format($format, $date);
// The Y ( 4 digits year ) returns TRUE for any integer with any number of digits so changing the comparison from == to === fixes the issue.
return $d && $d->format($format) === $date;
}
//Data to identifier. Data is array. First element date second identifier
private function ageAverage ($data) {
return $pHipAgeAverageByDoctor = array_sum($data)/count($data);
}
//Age list. Data is array. First element date second identifier
private function ageList ($data) {
if($data == []) {
$pHipAgeListByDoctor = 0;
}
else{
foreach ($data as $value){
$birthDate = $this->OPFunctions->IdentifierToDate($value['identifier']);
$age = "";
$age = date_diff(date_create($birthDate), date_create($value['Date']))->y;
$pHipAgeListByDoctor[] = $age;
}
}
return $pHipAgeListByDoctor;
}
//Skaičiuojam standartinį nuokrypį
function standDeviation($arr)
{
$num_of_elements = count($arr);
$variance = 0.0;
// calculating mean using array_sum() method
$average = array_sum($arr)/$num_of_elements;
foreach($arr as $i)
{
// sum of squares of differences between
// all numbers and means.
$variance += pow(($i - $average), 2);
}
return (float)sqrt($variance/$num_of_elements);
}
/**
* @Route("/", name="app_homepage")
*/
public function stat(PrimaryHipRepository $primaryHipRepository, PrimaryKneeRepository $primaryKneeRepository, RevisionHipRepository $revisionHipRepository, RevisionKneeRepository $revisionKneeRepository): Response
{
$this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
$userId = $this->getUser()->getId();
$hospital = $this->getUser()->getHospital();
$users = $hospital->getUsers();
foreach ($users as $user){
$usersId[] = $user->getId();
}
$primaryHipCount = $primaryHipRepository->countAll();
$primaryKneeCount = $primaryKneeRepository->countAll();
$revisionHipCount = $revisionHipRepository->countAll();
$revisionKneeCount = $revisionKneeRepository->countAll();
$primaryHipMyHospitalCount = $primaryHipRepository->countByDoctors($usersId);
$primaryKneeMyHospitalCount = $primaryKneeRepository->countByDoctors($usersId);
$revisionHipMyHospitalCount = $revisionHipRepository->countByDoctors($usersId);
$revisionKneeMyHospitalCount = $revisionKneeRepository->countByDoctors($usersId);
$primaryHipMyCount = $primaryHipRepository->countByDoctor($userId);
$primaryKneeMyCount = $primaryKneeRepository->countByDoctor($userId);
$revisionHipMyCount = $revisionHipRepository->countByDoctor($userId);
$revisionKneeMyCount = $revisionKneeRepository->countByDoctor($userId);
$allPrimary = $primaryHipCount + $primaryKneeCount;
$allRevision = $revisionHipCount + $revisionKneeCount;
$allOperation = $allPrimary + $allRevision;
$allHips = $primaryHipCount + $revisionHipCount;
$allKnees = $primaryKneeCount + $revisionKneeCount;
$allMyPrimary = $primaryHipMyCount + $primaryKneeMyCount;
$allMyRevision = $revisionHipMyCount + $revisionKneeMyCount;
$allMyOperation = $allMyPrimary + $allMyRevision;
$allMyHips = $primaryHipMyCount + $revisionHipMyCount;
$allMyKnees = $primaryKneeMyCount + $revisionKneeMyCount;
$allMyHospitalPrimary = $primaryHipMyHospitalCount + $primaryKneeMyHospitalCount;
$allMyHospitalRevision = $revisionHipMyHospitalCount + $revisionKneeMyHospitalCount;
$allMyHospitalOperation = $allMyHospitalPrimary + $allMyHospitalRevision;
$allMyHospitalHips = $primaryHipMyHospitalCount + $revisionHipMyHospitalCount;
$allMyHospitalKnees = $primaryKneeMyHospitalCount + $revisionKneeMyHospitalCount;
return $this->render('dashboard.html.twig', [
'all_primary' => $allPrimary,
'all_revision' => $allRevision,
'all_operation' => $allOperation,
'all_hip' => $allHips,
'all_knee' => $allKnees,
'all_my_primary' => $allMyPrimary,
'all_my_revision' => $allMyRevision,
'all_my_operation' => $allMyOperation,
'all_my_hip' => $allMyHips,
'all_my_knee' => $allMyKnees,
'all_my_hospital_primary' => $allMyHospitalPrimary,
'all_my_hospital_revision' => $allMyHospitalRevision,
'all_my_hospital_operation' => $allMyHospitalOperation,
'all_my_hospital_hip' => $allMyHospitalHips,
'all_my_hospital_knee' => $allMyHospitalKnees,
'primary_hip' => $primaryHipCount,
'primary_knee' => $primaryKneeCount,
'revision_hip' => $revisionHipCount,
'revision_knee' => $revisionKneeCount,
'primary_hip_my' => $primaryHipMyCount,
'primary_knee_my' => $primaryKneeMyCount,
'revision_hip_my' => $revisionHipMyCount,
'revision_knee_my' => $revisionKneeMyCount,
'primary_hip_my_hospital' => $primaryHipMyHospitalCount,
'primary_knee_my_hospital' => $primaryKneeMyHospitalCount,
'revision_hip_my_hospital' => $revisionHipMyHospitalCount,
'revision_knee_my_hospital' => $revisionKneeMyHospitalCount,
]);
}
/**
* @Route("/stat/ajax")
*/
public function statAjax(PrimaryHipRepository $primaryHipRepository, PrimaryKneeRepository $primaryKneeRepository, RevisionHipRepository $revisionHipRepository, RevisionKneeRepository $revisionKneeRepository): Response
{
$this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
$userId = $this->getUser()->getId();
$users = $this->getUser()->getHospital()->getUsers();
foreach ($users as $user){
$usersId[] = $user->getId();
}
$primaryHipMyCount = $primaryHipRepository->countByDoctor($userId);
$primaryKneeMyCount = $primaryKneeRepository->countByDoctor($userId);
$revisionHipMyCount = $revisionHipRepository->countByDoctor($userId);
$revisionKneeMyCount = $revisionKneeRepository->countByDoctor($userId);
$primaryHipMyHospitalCount = $primaryHipRepository->countByDoctors($usersId) - $primaryHipMyCount;
$primaryKneeMyHospitalCount = $primaryKneeRepository->countByDoctors($usersId) - $primaryKneeMyCount;
$revisionHipMyHospitalCount = $revisionHipRepository->countByDoctors($usersId) - $revisionHipMyCount;
$revisionKneeMyHospitalCount = $revisionKneeRepository->countByDoctors($usersId) - $revisionKneeMyCount;
$primaryHipCount = $primaryHipRepository->countAll() - $primaryHipMyHospitalCount - $primaryHipMyCount;
$primaryKneeCount = $primaryKneeRepository->countAll() - $primaryKneeMyHospitalCount - $primaryKneeMyCount;
$revisionHipCount = $revisionHipRepository->countAll() - $revisionHipMyHospitalCount - $revisionHipMyCount;
$revisionKneeCount = $revisionKneeRepository->countAll() - $revisionKneeMyHospitalCount - $revisionKneeMyCount;
$Allinfo = [
'primary_hip' => $primaryKneeCount,
'primary_knee' => $primaryHipCount,
'revision_hip' => $revisionHipCount,
'revision_knee' => $revisionKneeCount,
'primary_hip_my' => $primaryHipMyCount,
'primary_knee_my' => $primaryKneeMyCount,
'revision_hip_my' => $revisionHipMyCount,
'revision_knee_my' => $revisionKneeMyCount,
'primary_hip_my_hospital' => $primaryHipMyHospitalCount,
'primary_knee_my_hospital' => $primaryKneeMyHospitalCount,
'revision_hip_my_hospital' => $revisionHipMyHospitalCount,
'revision_knee_my_hospital' => $revisionKneeMyHospitalCount,
];
return new JsonResponse($Allinfo);
}
/**
* @Route("/stat/age/ajax")
*/
public function statAgeAjax(PrimaryHipRepository $primaryHipRepository, PrimaryKneeRepository $primaryKneeRepository, RevisionHipRepository $revisionHipRepository, RevisionKneeRepository $revisionKneeRepository): Response
{
$this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
$doctor = $this->getUser();
$userId = $doctor->getId();
$hospitalId = $doctor->getHospital()->getId();
//Doctor patient
$male = [1,3,5];
$female = [2,4,6];
$diagnosis = ["Pirminė artrozė" => 1, "Šlaunikaulio kaklo lūžis" => 1, "Aseptinė nekrozė" => 1, "Potrauminė artrozė" => 1, "Reumatoidinis artritas" => 1, "Displazija" => 1, "Perthes liga" => 1, "Po natyvinio koksito" => 1];
//All average
$pHipAllAgeByDoctor = $this->ageList($primaryHipRepository->mapAgeByDoctor($userId));
$pHipAllDiagnosisByDoctor = array_count_values(array_map('strval',array_column($primaryHipRepository->mapAgeByDoctor($userId),'Diagnosis')));
$part1 = array_intersect_key($pHipAllDiagnosisByDoctor, $diagnosis);
$part2 = array_sum(array_diff_key($pHipAllDiagnosisByDoctor, $diagnosis));
$part1["Kita"] = $part2;
$pHipAllDiagnosisByDoctor = $part1;
//Male average
$pHipMaleAgeByDoctor = $this->ageList($primaryHipRepository->mapAgeByDoctor($userId, $male));
//Female average
$pHipFemaleAgeByDoctor = $this->ageList($primaryHipRepository->mapAgeByDoctor($userId, $female));
//Hospital patient
//all average
$pHipAllAgeByHospital = $this->ageList($primaryHipRepository->mapAgeByHospital($hospitalId));
$pHipAllDiagnosisByHospital = array_count_values(array_map('strval',array_column($primaryHipRepository->mapAgeByHospital($hospitalId),'Diagnosis')));
$part1 = array_intersect_key($pHipAllDiagnosisByHospital, $diagnosis);
$part2 = array_sum(array_diff_key($pHipAllDiagnosisByHospital, $diagnosis));
$part1["Kita"] = $part2;
$pHipAllDiagnosisByHospital = $part1;
//Male average
$pHipMaleAgeByHospital = $this->ageList($primaryHipRepository->mapAgeByHospital($hospitalId, $male));
//Female average
$pHipFemaleAgeByHospital = $this->ageList($primaryHipRepository->mapAgeByHospital($hospitalId, $female));
//Registry patiens
//All average
$pHipAllAge = $this->ageList($primaryHipRepository->mapAllAge());
$pHipAllDiagnos = array_count_values(array_map('strval',array_column($primaryHipRepository->mapAllAge(),'Diagnosis')));
$part1 = array_intersect_key($pHipAllDiagnos, $diagnosis);
$part2 = array_sum(array_diff_key($pHipAllDiagnos, $diagnosis));
$part1["Kita"] = $part2;
$pHipAllDiagnos = $part1;
//Male average
$pHipMaleAge = $this->ageList($primaryHipRepository->mapAllAge($male));
//Female average
$pHipFemaleAge = $this->ageList($primaryHipRepository->mapAllAge($female));
$Allinfo = [
//Doctor
'pHipAllAgeByDoctor' => $pHipAllAgeByDoctor,
'pHipAllDiagnosisByDoctorValues' => array_values($pHipAllDiagnosisByDoctor),
'pHipAllDiagnosisByDoctorKeys' => array_keys($pHipAllDiagnosisByDoctor),
//Male
'pHipMaleAgeByDoctor' => $pHipMaleAgeByDoctor,
//Female
'pHipFemaleAgeByDoctor' => $pHipFemaleAgeByDoctor,
//Hospital
'pHipAllAgeByHospital' => $pHipAllAgeByHospital,
'pHipMaleAgeByHospital' => $pHipMaleAgeByHospital,
'pHipFemaleAgeByHospital' => $pHipFemaleAgeByHospital,
'pHipAllDiagnosisByHospitalValues' => array_values($pHipAllDiagnosisByHospital),
'pHipAllDiagnosisByHospitalKeys' => array_keys($pHipAllDiagnosisByHospital),
'pHipAllAge' => $pHipAllAge,
'pHipMaleAge' => $pHipMaleAge,
'pHipFemaleAge' => $pHipFemaleAge,
'pHipAllDiagnosisValues' => array_values($pHipAllDiagnos),
'pHipAllDiagnosisKeys' => array_keys($pHipAllDiagnos),
];
// dd($Allinfo);
return new JsonResponse($Allinfo);
}
/**
* @Route("/admin/primaryKnee", name="primaryKnee_index", methods={"GET"})
*/
public function primaryKnee(): Response
{
$title = "Первичные дорожные операции";
return $this->render('operationTable.html.twig', [
'title' => $title
]);
}
/**
* @Route("/admin/primaryHip", name="primaryHip_index", methods={"GET"})
*/
public function primaryHip(): Response
{
$title = "Первичные операции на бедре";
return $this->render('operationTable.html.twig', [
'title' => $title
]);
}
/**
* @Route("/admin/revisionKnee", name="revisionKnee_index", methods={"GET"})
*/
public function revisionKnee(): Response
{
$title = "Ревизионные дорожные операции";
return $this->render('operationTable.html.twig', [
'title' => $title
]);
}
/**
* @Route("/admin/revisionHip", name="revisionHip_index", methods={"GET"})
*/
public function revisionHip(): Response
{
$title = "Ревизионные операции на бедре";
return $this->render('operationTable.html.twig', [
'title' => $title
]);
}
/**
* @Route("/admin/primaryKnee/indexAjax", methods={"GET"})
*/
public function primaryKneeAjax(PrimaryKneeRepository $primaryKneeRepository, OperationRegistryFunctions $OpRegF, Request $request): Response
{
$offset = $request->query->get('start');
if ($offset == 0) {
$offset = null;
}
$entryCount = $request->query->get('length');
$searchString = $request->query->get('search');
$order = $request->query->get('order');
$orderBy = $order[0]['column'];
switch ($orderBy) {
case 7:
$orderBy = 'Date';
break;
case 4:
$orderBy = 'Diagnosis';
break;
case 8:
$orderBy = 'otherImplants';
break;
case 9:
$orderBy = 'comment';
break;
}
$orderDir = $order[0]['dir'];
$primaryKneeCount = $primaryKneeRepository->countAll();
$totaEntryCount = $primaryKneeCount;
if ($searchString['value'] === ""){
$primaryKnee = $primaryKneeRepository->findBy([], [$orderBy => $orderDir], $entryCount, $offset);
$entryCountFiltered = $totaEntryCount;
}
else {
$primaryKnee = $primaryKneeRepository->findByString($searchString['value'], $offset, $entryCount);
$entryCountFiltered = $primaryKneeRepository->findByStringCount($searchString['value']);
}
if (!empty($primaryKnee)){
$primary_data = $OpRegF->jsonPrimaryDataUnit([],$primaryKnee);
$primary['recordsTotal'] = $totaEntryCount;
$primary['recordsFiltered'] = $entryCountFiltered;
$primary['draw'] = $request->query->get('draw');
$primary['data'] = $primary_data;
}
else{
$primary['recordsTotal'] = 0;
$primary['recordsFiltered'] = 0;
$primary['data'] = "";
}
return new JsonResponse($primary);
}
/**
* @Route("/admin/primaryHip/indexAjax", methods={"GET"})
*/
public function primaryHipAjax(PrimaryHipRepository $primaryHipRepository, OperationRegistryFunctions $OpRegF, Request $request): Response
{
$offset = $request->query->get('start');
if ($offset == 0) {
$offset = null;
}
$entryCount = $request->query->get('length');
$searchString = $request->query->get('search');
$order = $request->query->get('order');
$orderBy = $order[0]['column'];
switch ($orderBy) {
case 7:
$orderBy = 'Date';
break;
case 4:
$orderBy = 'Diagnosis';
break;
case 8:
$orderBy = 'otherImplants';
break;
case 9:
$orderBy = 'comment';
break;
}
$orderDir = $order[0]['dir'];
$primaryHipCount = $primaryHipRepository->countAll();
$totaEntryCount = $primaryHipCount;
if ($searchString['value'] === ""){
$primaryHip = $primaryHipRepository->findBy([], [$orderBy => $orderDir], $entryCount, $offset);
$entryCountFiltered = $totaEntryCount;
}
else {
$primaryHip = $primaryHipRepository->findByString($searchString['value'], $offset, $entryCount);
$entryCountFiltered = $primaryHipRepository->findByStringCount($searchString['value']);
}
if (!empty($primaryHip)){
$primary_data = $OpRegF->jsonPrimaryDataUnit($primaryHip, []);
$primary['recordsTotal'] = $totaEntryCount;
$primary['recordsFiltered'] = $entryCountFiltered;
$primary['draw'] = $request->query->get('draw');
$primary['data'] = $primary_data;
}
else{
$primary['recordsTotal'] = 0;
$primary['recordsFiltered'] = 0;
$primary['data'] = "";
}
return new JsonResponse($primary);
}
/**
* Surenkame PIRMINĖS KLUBO operacijos duomenis pasiuntimui
*/
private function primaryHipData(): array
{
//ini_set("memory_limit",-1);
if($dateFrom == "" && $dateTo == ""){
$primaryHip = $this->entityManager->getRepository(PrimaryHip::class)->findAll();
}
else {
if ($dateTo == "") {$dateTo = date("Y-m-d");}
dd("here");
$primaryHip = $this->entityManager->getRepository(PrimaryHip::class)->findFromTo($dateFrom, $dateTo);
}
$first_row = array(
'id','identifier', 'doctor', 'hospital','PatientId', 'PatientFirstName', 'PatientLastName', 'birth', 'Age', 'gender',
'Date', 'Side', 'Diagnosis', 'Incision', 'AdditionalInfo',
'BipolarCupName', 'BipolarCupRef', 'CementName', 'CementRef', 'CementedCupName', 'CementedCupRef', 'CementedMonoblockName', 'CementedMonoblockRef',
'CementedStemName', 'CementedStemRef', 'CeramicHeadName','CeramicHeadRef','CeramicLinerName', 'CeramicLinerRef', 'MetalHeadName', 'MetalHeadRef',
'PolyethilenLinerName', 'PolyethilenLinerRef', 'ResurfacingHeadName', 'ResurfacingHeadRef', 'RevisionStemName', 'RevisionStemRef',
'ShellName', 'ShellRef', 'UncementedStemName', 'UncementedStemRef'
);
foreach ($primaryHip as $hip){
$primary_data_unit = [];
$primary_data_unit = array_fill_keys($first_row, '');
$primary_data_unit['id'] = $hip->getId();
$primary_data_unit['Joint'] = "Klubas";
$primary_data_unit['Diagnosis'] = $hip->getDiagnosis();
$primary_data_unit['Technique'] = implode("; ", (array) $hip->getTechnique());
$primary_data_unit['Incision'] = $hip->getIncision();
$primary_data_unit['AdditionalInfo'] = implode("; ", (array) $hip->getAdditionalInfo());
$implants = "";
$implants = $hip->getImplants();
if (!empty($implants)){
$implantList = [];
foreach ($implants as $implant){
$implantList[] = $implant->getRef()."||".$implant->getName()."||".$implant->getType();
switch ($implant->getType()){
case 'Bipolar cup':
$primary_data_unit['BipolarCupName'] = $implant->getName();
$primary_data_unit['BipolarCupRef'] = $implant->getRef();
break;
case 'Bone cement':
case 'Bone cement ':
$primary_data_unit['CementName'] = $implant->getName();
$primary_data_unit['CementRef'] = $implant->getRef();
break;
case 'Cemented cup':
case 'Cup':
$primary_data_unit['CementedCupName'] = $implant->getName();
$primary_data_unit['CementedCupRef'] = $implant->getRef();
break;
case 'Cemented monoblock':
$primary_data_unit['CementedMonoblockName'] = $implant->getName();
$primary_data_unit['CementedMonoblockRef'] = $implant->getRef();
break;
case 'Cemented stem':
$primary_data_unit['CementedStemName'] = $implant->getName();
$primary_data_unit['CementedStemRef'] = $implant->getRef();
break;
case 'Ceramic head':
$primary_data_unit['CeramicHeadName'] = $implant->getName();
$primary_data_unit['CeramicHeadRef'] = $implant->getRef();
break;
case 'Ceramic liner':
$primary_data_unit['CeramicLinerName'] = $implant->getName();
$primary_data_unit['CeramicLinerRef'] = $implant->getRef();
break;
case 'Metal head':
$primary_data_unit['MetalHeadName'] = $implant->getName();
$primary_data_unit['MetalHeadRef'] = $implant->getRef();
break;
case 'Polyethilen liner':
case 'Polyethylene liner':
$primary_data_unit['PolyethilenLinerName'] = $implant->getName();
$primary_data_unit['PolyethilenLinerRef'] = $implant->getRef();
break;
case 'Resurfising head':
$primary_data_unit['ResurfacingHeadName'] = $implant->getName();
$primary_data_unit['ResurfacingHeadRef'] = $implant->getRef();
break;
case 'Revision stem':
$primary_data_unit['RevisionStemName'] = $implant->getName();
$primary_data_unit['RevisionStemRef'] = $implant->getRef();
break;
case 'Shell':
$primary_data_unit['ShellName'] = $implant->getName();
$primary_data_unit['ShellRef'] = $implant->getRef();
break;
case 'Uncemented stem':
$primary_data_unit['UncementedStemName'] = $implant->getName();
$primary_data_unit['UncementedStemRef'] = $implant->getRef();
break;
}
}
$primary_data_unit['Implants'] = implode("; ", $implantList);
}
else{
$primary_data_unit['Implants'] = "";
}
$primary_data_unit['doctor'] = $hip->getDoctor()->getFirstName()." ".$hip->getDoctor()->getLastName();
$primary_data_unit['hospital'] = $hip->getDoctor()->getHospital()->getHospitalName();
if($hip->getPatientLeftHip() != null){
$joint = $hip->getPatientLeftHip();
$primary_data_unit['Side'] = "Kairė";
$primary_data_unit['PatientId'] = $joint->getId();
$primary_data_unit['PatientFirstName'] = $joint->getFirstName();
$primary_data_unit['PatientLastName'] = $joint->getLastName();
$primary_data_unit['identifier'] = $joint->getIdentifier();
$primary_data_unit['gender'] = $this->IdentifierToGender($joint->getIdentifier());
$primary_data_unit['birth'] = $this->IdentifierToDate($joint->getIdentifier());
}
elseif ($hip->getPatientRightHip() != null) {
$joint = $hip->getPatientRightHip();
$primary_data_unit['Side'] = "Dešinė";
$primary_data_unit['PatientId'] = $joint->getId();
$primary_data_unit['PatientFirstName'] = $joint->getFirstName();
$primary_data_unit['PatientLastName'] = $joint->getLastName();
$primary_data_unit['identifier'] = $joint->getIdentifier();
$primary_data_unit['gender'] = $this->IdentifierToGender($joint->getIdentifier());
$primary_data_unit['birth'] = $this->IdentifierToDate($joint->getIdentifier());
}
else {
$primary_data_unit['Side'] = "Patikrinkite įrašą, duomenys išsibarstę";
$primary_data_unit['PatientId'] = "???";
$primary_data_unit['PatientFirstName'] = "???";
$primary_data_unit['PatientLastName'] = "???";
$primary_data_unit['identifier'] = "???";
$primary_data_unit['gender'] = "???";
$primary_data_unit['birth'] = '1900-01-01';
}
$primary_data_unit['Date'] = $hip->getDate();
$age = date_diff(date_create($primary_data_unit['birth']), date_create($primary_data_unit['Date']));
$primary_data_unit['Age'] = $age->format("%y");
$primary_data[] = $primary_data_unit;
}
return $primary_data;
}
/**
* Surenkame PIRMINĖS KELIO operacijos duomenis pasiuntimui
*/
private function primaryKneeData(): array
{
ini_set("memory_limit",-1);
$primaryKnee = $this->entityManager->getRepository(PrimaryKnee::class)->findAll();
foreach ($primaryKnee as $knee){
$primary_data_unit = [];
$primary_data_unit['id'] = $knee->getId();
$primary_data_unit['Joint'] = "Kelis";
$primary_data_unit['Diagnosis'] = $knee->getDiagnosis();
$primary_data_unit['Technique'] = implode("; ", (array) $knee->getTechnique());
$primary_data_unit['Incision'] = $knee->getIncision();
$primary_data_unit['AdditionalInfo'] = implode("; ", (array) $knee->getAdditionatInfo());
$primary_data_unit['CementName'] = "";
$primary_data_unit['CementRef'] = "";
$primary_data_unit['FemoralComponentName'] = "";
$primary_data_unit['FemoralComponentRef'] = "";
$primary_data_unit['InsertName'] = "";
$primary_data_unit['InsertRef'] = "";
$primary_data_unit['PatellaName'] = "";
$primary_data_unit['PatellaRef'] = "";
$primary_data_unit['TibialComponentName'] = "";
$primary_data_unit['TibialComponentRef'] = "";
$implants = "";
$implants = $knee->getImplants();
if (!empty($implants)){
$implantList = [];
foreach ($implants as $implant){
$implantList[] = $implant->getRef()."||".$implant->getName()."||".$implant->getType();
switch ($implant->getType()){
case 'Bone cement':
case 'Bone cement ':
$primary_data_unit['CementName'] = $implant->getName();
$primary_data_unit['CementRef'] = $implant->getRef();
break;
case 'Femoral component':
$primary_data_unit['FemoralComponentName'] = $implant->getName();
$primary_data_unit['FemoralComponentRef'] = $implant->getRef();
break;
case 'Insert':
case 'Insert ':
$primary_data_unit['InsertName'] = $implant->getName();
$primary_data_unit['InsertRef'] = $implant->getRef();
break;
case 'Patella':
case 'Pattela':
$primary_data_unit['PatellaName'] = $implant->getName();
$primary_data_unit['PatellaRef'] = $implant->getRef();
break;
case 'Tibial component':
$primary_data_unit['TibialComponentName'] = $implant->getName();
$primary_data_unit['TibialComponentRef'] = $implant->getRef();
break;
}
}
$primary_data_unit['Implants'] = implode("; ", $implantList);
}
else{
$primary_data_unit['Implants'] = "";
}
$primary_data_unit['doctor'] = $knee->getDoctor()->getFirstName()." ".$knee->getDoctor()->getLastName()." iš ".$knee->getDoctor()->getHospital()->getHospitalName();
if($knee->getPatientLeftKnee() != null){
$joint = $knee->getPatientLeftKnee();
$primary_data_unit['Side'] = "Kairė";
$primary_data_unit['PatientId'] = $joint->getId();
$primary_data_unit['PatientFullName'] = $joint->getFirstName()." ".$joint->getLastName();
$primary_data_unit['PatientId'] = $joint->getId();
$primary_data_unit['identifier'] = $joint->getIdentifier();
$primary_data_unit['birth'] = $this->IdentifierToDate($joint->getIdentifier());
}
elseif ($knee->getPatientRightKnee() != null) {
$joint = $knee->getPatientRightKnee();
$primary_data_unit['Side'] = "Dešinė";
$primary_data_unit['PatientId'] = $joint->getId();
$primary_data_unit['PatientFullName'] = $joint->getFirstName()." ".$joint->getLastName();
$primary_data_unit['PatientId'] = $joint->getId();
$primary_data_unit['identifier'] = $joint->getIdentifier();
$primary_data_unit['birth'] = $this->IdentifierToDate($joint->getIdentifier());
}
else {
$primary_data_unit['Side'] = "Patikrinkite įrašą, duomenys išsibarstę";
}
$primary_data_unit['Date'] = $knee->getDate();
$primary_data[] = $primary_data_unit;
}
return $primary_data;
}
/**
* Surenkame REVIZINES KLUBO operacijos duomenis pasiuntimui
*/
private function revisionHipData(): array
{
ini_set("memory_limit",-1);
$revisionHip = $this->entityManager->getRepository(RevisionHip::class)->findAll();
foreach ($revisionHip as $hip){
$revision_data_unit = [];
$revision_data_unit['id'] = $hip->getId();
$revision_data_unit['Joint'] = "Klubas";
$revision_data_unit['primaryHip'] = $hip->getPrimaryHip()->getId();
$revision_data_unit['RevisionCause'] = $hip->getRevisionCause();
$revision_data_unit['RevisionType'] = $hip->getRevisionType();
$revision_data_unit['Incision'] = $hip->getIncision();
$revision_data_unit['AdditionalInfo'] = implode(" ;", (array) $hip->getAdditionalInfo());
$revision_data_unit['Technique'] = implode(" ;", (array) $hip->getTechnique());
$revision_data_unit['BipolarCupName'] = "";
$revision_data_unit['BipolarCupRef'] = "";
$revision_data_unit['CementName'] = "";
$revision_data_unit['CementRef'] = "";
$revision_data_unit['CementedCupName'] = "";
$revision_data_unit['CementedCupRef'] = "";
$revision_data_unit['CementedMonoblockName'] = "";
$revision_data_unit['CementedMonoblockRef'] = "";
$revision_data_unit['CementedStemName'] = "";
$revision_data_unit['CementedStemRef'] = "";
$revision_data_unit['CeramicHeadName'] = "";
$revision_data_unit['CeramicHeadRef'] = "";
$revision_data_unit['CeramicLinerName'] = "";
$revision_data_unit['CeramicLinerRef'] = "";
$revision_data_unit['MetalHeadName'] = "";
$revision_data_unit['MetalHeadRef'] = "";
$revision_data_unit['PolyethilenLinerName'] = "";
$revision_data_unit['PolyethilenLinerRef'] = "";
$revision_data_unit['ResurfacingHeadName'] = "";
$revision_data_unit['ResurfacingHeadRef'] = "";
$revision_data_unit['RevisionStemName'] = "";
$revision_data_unit['RevisionStemRef'] = "";
$revision_data_unit['ShellName'] = "";
$revision_data_unit['ShellRef'] = "";
$revision_data_unit['UncementedStemName'] = "";
$revision_data_unit['UncementedStemRef'] = "";
$implants = "";
$implants = $hip->getImplants();
if (!empty($implants)){
$implantList = [];
foreach ($implants as $implant){
$implantList[] = $implant->getRef()."||".$implant->getName()."||".$implant->getType();
switch ($implant->getType()){
case 'Bipolar cup':
$revision_data_unit['BipolarCupName'] = $implant->getName();
$revision_data_unit['BipolarCupRef'] = $implant->getRef();
break;
case 'Bone cement':
case 'Bone cement ':
$revision_data_unit['CementName'] = $implant->getName();
$revision_data_unit['CementRef'] = $implant->getRef();
break;
case 'Cemented cup':
case 'Cup':
$revision_data_unit['CementedCupName'] = $implant->getName();
$revision_data_unit['CementedCupRef'] = $implant->getRef();
break;
case 'Cemented monoblock':
$revision_data_unit['CementedMonoblockName'] = $implant->getName();
$revision_data_unit['CementedMonoblockRef'] = $implant->getRef();
break;
case 'Cemented stem':
$revision_data_unit['CementedStemName'] = $implant->getName();
$revision_data_unit['CementedStemRef'] = $implant->getRef();
break;
case 'Ceramic head':
$revision_data_unit['CeramicHeadName'] = $implant->getName();
$revision_data_unit['CeramicHeadRef'] = $implant->getRef();
break;
case 'Ceramic liner':
$revision_data_unit['CeramicLinerName'] = $implant->getName();
$revision_data_unit['CeramicLinerRef'] = $implant->getRef();
break;
case 'Metal head':
$revision_data_unit['MetalHeadName'] = $implant->getName();
$revision_data_unit['MetalHeadRef'] = $implant->getRef();
break;
case 'Polyethilen liner':
case 'Polyethylene liner':
$revision_data_unit['PolyethilenLinerName'] = $implant->getName();
$revision_data_unit['PolyethilenLinerRef'] = $implant->getRef();
break;
case 'Resurfising head':
$revision_data_unit['ResurfacingHeadName'] = $implant->getName();
$revision_data_unit['ResurfacingHeadRef'] = $implant->getRef();
break;
case 'Revision stem':
$revision_data_unit['RevisionStemName'] = $implant->getName();
$revision_data_unit['RevisionStemRef'] = $implant->getRef();
break;
case 'Shell':
$revision_data_unit['ShellName'] = $implant->getName();
$revision_data_unit['ShellRef'] = $implant->getRef();
break;
case 'Uncemented stem':
$revision_data_unit['UncementedStemName'] = $implant->getName();
$revision_data_unit['UncementedStemRef'] = $implant->getRef();
break;
}
}
$revision_data_unit['Implants'] = implode("; ", $implantList);
}
else{
$revision_data_unit['Implants'] = "";
}
$revision_data_unit['doctor'] = $hip->getDoctor()->getFirstName()." ".$hip->getDoctor()->getLastName()." iš ".$hip->getDoctor()->getHospital()->getHospitalName();
if($hip->getPrimaryHip()->getPatientLeftHip() != null){
$joint = $hip->getPrimaryHip()->getPatientLeftHip();
$revision_data_unit['Side'] = "Kairė";
$revision_data_unit['PatientId'] = $joint->getId();
$revision_data_unit['PatientFullName'] = $joint->getFirstName()." ".$joint->getLastName();
$revision_data_unit['identifier'] = $joint->getIdentifier();
$revision_data_unit['birth'] = $this->IdentifierToDate($joint->getIdentifier());
}
elseif ($hip->getPrimaryHip()->getPatientRightHip() != null) {
$joint = $hip->getPrimaryHip()->getPatientRightHip();
$revision_data_unit['Side'] = "Dešinė";
$revision_data_unit['PatientId'] = $joint->getId();
$revision_data_unit['PatientFullName'] = $joint->getFirstName()." ".$joint->getLastName();
$revision_data_unit['identifier'] = $joint->getIdentifier();
$revision_data_unit['birth'] = $this->IdentifierToDate($joint->getIdentifier());
}
else {
$revision_data_unit['Side'] = "Patikrinkite įrašą, duomenys išsibarstę";
$revision_data_unit['PatientFullName'] = "???";
$revision_data_unit['identifier'] = "???";
$revision_data_unit['birth'] = '???';
}
$revision_data_unit['Date'] = $hip->getDate();
$revision_data[] = $revision_data_unit;
}
return $revision_data;
}
/**
* Surenkame REVIZINES KELIO operacijos duomenis pasiuntimui
*/
private function revisionKneeData(): array
{
ini_set("memory_limit",-1);
$revisionKnee = $this->entityManager->getRepository(RevisionKnee::class)->findAll();
foreach ($revisionKnee as $knee){
$revision_data_unit['id'] = $knee->getId();
$revision_data_unit['Joint'] = "Kelis";
$revision_data_unit['primaryKnee'] = $knee->getPrimaryKnee()->getId();
$revision_data_unit['RevisionCause'] = $knee->getRevisionCause();
$revision_data_unit['RevisionType'] = $knee->getRevisionType();
$revision_data_unit['Incision'] = $knee->getIncision();
$revision_data_unit['AdditionalInfo'] = implode(" ;", (array) $knee->getAdditionalInfo());
$revision_data_unit['Technique'] = implode(" ;", (array) $knee->getTechnique());
$revision_data_unit['CementName'] = "";
$revision_data_unit['CementRef'] = "";
$revision_data_unit['FemoralComponentName'] = "";
$revision_data_unit['FemoralComponentRef'] = "";
$revision_data_unit['InsertName'] = "";
$revision_data_unit['InsertRef'] = "";
$revision_data_unit['PatellaName'] = "";
$revision_data_unit['PatellaRef'] = "";
$revision_data_unit['TibialComponentName'] = "";
$revision_data_unit['TibialComponentRef'] = "";
$implants = "";
$implants = $knee->getImplants();
if (!empty($implants)){
$implantList = [];
foreach ($implants as $implant){
$implantList[] = $implant->getRef()."||".$implant->getName()."||".$implant->getType();
switch ($implant->getType()){
case 'Bone cement':
case 'Bone cement ':
$revision_data_unit['CementName'] = $implant->getName();
$revision_data_unit['CementRef'] = $implant->getRef();
break;
case 'Femoral component':
$revision_data_unit['FemoralComponentName'] = $implant->getName();
$revision_data_unit['FemoralComponentRef'] = $implant->getRef();
break;
case 'Insert':
case 'Insert ':
$revision_data_unit['InsertName'] = $implant->getName();
$revision_data_unit['InsertRef'] = $implant->getRef();
break;
case 'Patella':
case 'Pattela':
$revision_data_unit['PatellaName'] = $implant->getName();
$revision_data_unit['PatellaRef'] = $implant->getRef();
break;
case 'Tibial component':
$revision_data_unit['TibialComponentName'] = $implant->getName();
$revision_data_unit['TibialComponentRef'] = $implant->getRef();
break;
}
}
$revision_data_unit['Implants'] = implode("; ", $implantList);
}
else{
$revision_data_unit['Implants'] = "";
}
$revision_data_unit['doctor'] = $knee->getDoctor()->getFirstName()." ".$knee->getDoctor()->getLastName()." iš ".$knee->getDoctor()->getHospital()->getHospitalName();
if($knee->getPrimaryKnee()->getPatientLeftKnee() != null){
$joint = $knee->getPrimaryKnee()->getPatientLeftKnee();
$revision_data_unit['Side'] = "Kairė";
$revision_data_unit['PatientId'] = $joint->getId();
$revision_data_unit['PatientFullName'] = $joint->getFirstName()." ".$joint->getLastName();
$revision_data_unit['identifier'] = $joint->getIdentifier();
$revision_data_unit['birth'] = $this->IdentifierToDate($joint->getIdentifier());
}
elseif ($knee->getPrimaryKnee()->getPatientRightKnee() != null) {
$joint = $knee->getPrimaryKnee()->getPatientRightKnee();
$revision_data_unit['Side'] = "Dešinė";
$revision_data_unit['PatientId'] = $joint->getId();
$revision_data_unit['PatientFullName'] = $joint->getFirstName()." ".$joint->getLastName();
$revision_data_unit['identifier'] = $joint->getIdentifier();
$revision_data_unit['birth'] = $this->IdentifierToDate($joint->getIdentifier());
}
else {
$revision_data_unit['Side'] = "Patikrinkite įrašą, duomenys išsibarstę";
}
$revision_data_unit['Date'] = $knee->getDate();
$revision_data[] = $revision_data_unit;
}
return $revision_data;
}
/**
* Surenkame PIRMINES ir Pirmas REVIZIENS KLUBO operacijas pasiuntimui
*/
private function primaryAndRevisionHipData(string $dateFrom = "", string $dateTo = ""): array
{
ini_set("memory_limit",-1);
if($dateFrom == "" && $dateTo == ""){
$primaryHip = $this->entityManager->getRepository(PrimaryHip::class)->findAll();
}
else {
if ($dateTo == "") {$dateTo = date("Y-m-d");}
$primaryHip = $this->entityManager->getRepository(PrimaryHip::class)->findFromTo($dateFrom, $dateTo);
}
$first_row = array(
'id', 'Joint','identifier', 'doctor', 'hospital','PatientId', 'PatientFirstName', 'PatientLastName', 'birth', 'Age', 'gender',
'Date', 'Side', 'Diagnosis', 'Incision', 'Technique','AdditionalInfo',
'BipolarCupName', 'BipolarCupRef', 'CementName', 'CementRef', 'CementedCupName', 'CementedCupRef', 'CementedMonoblockName', 'CementedMonoblockRef',
'CementedStemName', 'CementedStemRef', 'CeramicHeadName','CeramicHeadRef','CeramicLinerName', 'CeramicLinerRef', 'MetalHeadName', 'MetalHeadRef',
'PolyethilenLinerName', 'PolyethilenLinerRef', 'ResurfacingHeadName', 'ResurfacingHeadRef', 'RevisionStemName', 'RevisionStemRef',
'ShellName', 'ShellRef', 'UncementedStemName', 'UncementedStemRef', 'Implants',
'RevId', 'RevDate', 'DeathDate', 'RevDiagnosis',
'RevBipolarCupName', 'RevBipolarCupRef', 'RevCementName', 'RevCementRef', 'RevCementedCupName', 'RevCementedCupRef', 'RevCementedMonoblockName', 'RevCementedMonoblockRef',
'RevCementedStemName', 'RevCementedStemRef', 'RevCeramicHeadName','RevCeramicHeadRef','RevCeramicLinerName', 'RevCeramicLinerRef', 'RevMetalHeadName', 'RevMetalHeadRef',
'PolyethilenLinerName', 'PolyethilenLinerRef', 'ResurfacingHeadName', 'ResurfacingHeadRef', 'RevisionStemName', 'RevisionStemRef',
'RevShellName', 'RevShellRef', 'RevUncementedStemName', 'RevUncementedStemRef', 'RevImplants'
);
foreach ($primaryHip as $hip){
$primary_data_unit = [];
$primary_data_unit = array_fill_keys($first_row, '');
$primary_data_unit['id'] = $hip->getId();
$primary_data_unit['Joint'] = "Klubas";
$primary_data_unit['Diagnosis'] = $this->OPFunctions->hipDiagnosisEncoder($hip->getDiagnosis());
$primary_data_unit['Technique'] = implode("; ", (array) $this->OPFunctions->hipTechniqueEncoder($hip->getTechnique()));
$primary_data_unit['Incision'] = $hip->getIncision();
$primary_data_unit['AdditionalInfo'] = implode("; ", (array) $this->OPFunctions->hipAdditionalInfoEncoder($hip->getAdditionalInfo()));
$implants = "";
$implants = $hip->getImplants();
if (!empty($implants)){
$implantList = [];
foreach ($implants as $implant){
$implantList[] = $implant->getRef()."||".$implant->getName()."||".$implant->getType();
switch ($implant->getType()){
case 'Bipolar cup':
$primary_data_unit['BipolarCupName'] = $implant->getName();
$primary_data_unit['BipolarCupRef'] = $implant->getRef();
break;
case 'Bone cement':
case 'Bone cement ':
$primary_data_unit['CementName'] = $implant->getName();
$primary_data_unit['CementRef'] = $implant->getRef();
break;
case 'Cemented cup':
case 'Cup':
$primary_data_unit['CementedCupName'] = $implant->getName();
$primary_data_unit['CementedCupRef'] = $implant->getRef();
break;
case 'Cemented monoblock':
$primary_data_unit['CementedMonoblockName'] = $implant->getName();
$primary_data_unit['CementedMonoblockRef'] = $implant->getRef();
break;
case 'Cemented stem':
$primary_data_unit['CementedStemName'] = $implant->getName();
$primary_data_unit['CementedStemRef'] = $implant->getRef();
break;
case 'Ceramic head':
$primary_data_unit['CeramicHeadName'] = $implant->getName();
$primary_data_unit['CeramicHeadRef'] = $implant->getRef();
break;
case 'Ceramic liner':
$primary_data_unit['CeramicLinerName'] = $implant->getName();
$primary_data_unit['CeramicLinerRef'] = $implant->getRef();
break;
case 'Metal head':
$primary_data_unit['MetalHeadName'] = $implant->getName();
$primary_data_unit['MetalHeadRef'] = $implant->getRef();
break;
case 'Polyethilen liner':
case 'Polyethylene liner':
$primary_data_unit['PolyethilenLinerName'] = $implant->getName();
$primary_data_unit['PolyethilenLinerRef'] = $implant->getRef();
break;
case 'Resurfising head':
$primary_data_unit['ResurfacingHeadName'] = $implant->getName();
$primary_data_unit['ResurfacingHeadRef'] = $implant->getRef();
break;
case 'Revision stem':
$primary_data_unit['RevisionStemName'] = $implant->getName();
$primary_data_unit['RevisionStemRef'] = $implant->getRef();
break;
case 'Shell':
$primary_data_unit['ShellName'] = $implant->getName();
$primary_data_unit['ShellRef'] = $implant->getRef();
break;
case 'Uncemented stem':
$primary_data_unit['UncementedStemName'] = $implant->getName();
$primary_data_unit['UncementedStemRef'] = $implant->getRef();
break;
}
}
$primary_data_unit['Implants'] = implode("; ", $implantList);
$implantList = [];
}
else{
$primary_data_unit['Implants'] = "";
}
$primary_data_unit['doctor'] = $hip->getDoctor()->getFirstName()." ".$hip->getDoctor()->getLastName();
$primary_data_unit['hospital'] = $hip->getDoctor()->getHospital()->getHospitalName();
if($hip->getPatientLeftHip() != null){
$joint = $hip->getPatientLeftHip();
$primary_data_unit['Side'] = "Kairė";
$primary_data_unit['PatientId'] = $joint->getId();
$primary_data_unit['PatientFirstName'] = $joint->getFirstName();
$primary_data_unit['PatientLastName'] = $joint->getLastName();
$primary_data_unit['identifier'] = $joint->getIdentifier();
$primary_data_unit['gender'] = $this->OPFunctions->IdentifierToGender($joint->getIdentifier());
$primary_data_unit['birth'] = $this->OPFunctions->IdentifierToDate($joint->getIdentifier());
$primary_data_unit['DeathDate'] = $joint->getDeathDate();
}
elseif ($hip->getPatientRightHip() != null) {
$joint = $hip->getPatientRightHip();
$primary_data_unit['Side'] = "Dešinė";
$primary_data_unit['PatientId'] = $joint->getId();
$primary_data_unit['PatientFirstName'] = $joint->getFirstName();
$primary_data_unit['PatientLastName'] = $joint->getLastName();
$primary_data_unit['identifier'] = $joint->getIdentifier();
$primary_data_unit['gender'] = $this->OPFunctions->IdentifierToGender($joint->getIdentifier());
$primary_data_unit['birth'] = $this->OPFunctions->IdentifierToDate($joint->getIdentifier());
$primary_data_unit['DeathDate'] = $joint->getDeathDate();
}
else {
$primary_data_unit['Side'] = "Patikrinkite įrašą, duomenys išsibarstę";
$primary_data_unit['PatientId'] = "???";
$primary_data_unit['PatientFirstName'] = "???";
$primary_data_unit['PatientLastName'] = "???";
$primary_data_unit['identifier'] = "???";
$primary_data_unit['gender'] = "???";
$primary_data_unit['birth'] = '1900-01-01';
$primary_data_unit['DeathDate'] = '';
}
$primary_data_unit['Date'] = $hip->getDate();
$age = date_diff(date_create($primary_data_unit['birth']), date_create($primary_data_unit['Date']));
$primary_data_unit['Age'] = $age->format("%y");
$revisions = null;
$revisions = $hip->getRevisionHip();
$revision = null;
foreach($revisions as $rev){
if ($revision == null) {
if (strtotime($rev->getDate()) >= strtotime($primary_data_unit['Date'])){
$revision = $rev;
}
}
else {
if (strtotime($rev->getDate()) > strtotime($primary_data_unit['Date']) && (strtotime($rev->getDate()) < strtotime($revision->getDate()))){
$revision = $rev;
}
}
}
if($revision!=null){
$primary_data_unit['RevId'] = $revision->getId();
$primary_data_unit['RevDiagnosis'] = $this->OPFunctions->hipRevisionCauseEncoder($revision->getRevisionCause());
$implants = "";
$implants = $revision->getImplants();
$implantList = [];
if (!empty($implants)){
$implantList = [];
foreach ($implants as $implant){
$implantList[] = $implant->getRef()."||".$implant->getName()."||".$implant->getType();
switch ($implant->getType()){
case 'Bipolar cup':
$primary_data_unit['RevBipolarCupName'] = $implant->getName();
$primary_data_unit['RevBipolarCupRef'] = $implant->getRef();
break;
case 'Bone cement':
case 'Bone cement ':
$primary_data_unit['RevCementName'] = $implant->getName();
$primary_data_unit['RevCementRef'] = $implant->getRef();
break;
case 'Cemented cup':
case 'Cup':
$primary_data_unit['RevCementedCupName'] = $implant->getName();
$primary_data_unit['RevCementedCupRef'] = $implant->getRef();
break;
case 'Cemented monoblock':
$primary_data_unit['RevCementedMonoblockName'] = $implant->getName();
$primary_data_unit['RevCementedMonoblockRef'] = $implant->getRef();
break;
case 'Cemented stem':
$primary_data_unit['RevCementedStemName'] = $implant->getName();
$primary_data_unit['RevCementedStemRef'] = $implant->getRef();
break;
case 'Ceramic head':
$primary_data_unit['RevCeramicHeadName'] = $implant->getName();
$primary_data_unit['RevCeramicHeadRef'] = $implant->getRef();
break;
case 'Ceramic liner':
$primary_data_unit['RevCeramicLinerName'] = $implant->getName();
$primary_data_unit['RevCeramicLinerRef'] = $implant->getRef();
break;
case 'Metal head':
$primary_data_unit['RevMetalHeadName'] = $implant->getName();
$primary_data_unit['RevMetalHeadRef'] = $implant->getRef();
break;
case 'Polyethilen liner':
case 'Polyethylene liner':
$primary_data_unit['RevPolyethilenLinerName'] = $implant->getName();
$primary_data_unit['RevPolyethilenLinerRef'] = $implant->getRef();
break;
case 'Resurfising head':
$primary_data_unit['RevResurfacingHeadName'] = $implant->getName();
$primary_data_unit['RevResurfacingHeadRef'] = $implant->getRef();
break;
case 'Revision stem':
$primary_data_unit['RevRevisionStemName'] = $implant->getName();
$primary_data_unit['RevRevisionStemRef'] = $implant->getRef();
break;
case 'Shell':
$primary_data_unit['RevShellName'] = $implant->getName();
$primary_data_unit['RevShellRef'] = $implant->getRef();
break;
case 'Uncemented stem':
$primary_data_unit['RevUncementedStemName'] = $implant->getName();
$primary_data_unit['RevUncementedStemRef'] = $implant->getRef();
break;
}
}
$primary_data_unit['RevImplants'] = implode("; ", $implantList);
}
else{
$primary_data_unit['RevImplants'] = "";
}
$primary_data_unit['RevDate'] = $revision->getDate();
}
$primary_data[] = $primary_data_unit;
}
//dd($primary_data[49]);
return $primary_data;
}
/**
* Surenkame REVIZINES ir REVIZINES KLUBO operacijos duomenis pasiuntimui
*/
private function revisionAndRevisionHipData(string $dateFrom = "", string $dateTo = ""): array
{
ini_set("memory_limit",-1);
if($dateFrom == "" && $dateTo == ""){
$revisionHip = $this->entityManager->getRepository(RevisionHip::class)->findAll();
}
else {
if ($dateTo == "") {$dateTo = date("Y-m-d");}
$revisionHip = $this->entityManager->getRepository(RevisionHip::class)->findFromTo($dateFrom, $dateTo);
}
$first_row = array(
'id','primaryHip', 'Joint','identifier', 'doctor', 'hospital','PatientId', 'PatientFirstName', 'PatientLastName', 'birth', 'Age', 'gender',
'Date', 'Side', 'RevisionCause', 'RevisionType', 'Incision', 'Technique','AdditionalInfo',
'BipolarCupName', 'BipolarCupRef', 'CementName', 'CementRef', 'CementedCupName', 'CementedCupRef', 'CementedMonoblockName', 'CementedMonoblockRef',
'CementedStemName', 'CementedStemRef', 'CeramicHeadName','CeramicHeadRef','CeramicLinerName', 'CeramicLinerRef', 'MetalHeadName', 'MetalHeadRef',
'PolyethilenLinerName', 'PolyethilenLinerRef', 'ResurfacingHeadName', 'ResurfacingHeadRef', 'RevisionStemName', 'RevisionStemRef',
'ShellName', 'ShellRef', 'UncementedStemName', 'UncementedStemRef', 'Implants',
'RevId', 'RevDate', 'DeathDate', 'RevDiagnosis',
'RevBipolarCupName', 'RevBipolarCupRef', 'RevCementName', 'RevCementRef', 'RevCementedCupName', 'RevCementedCupRef', 'RevCementedMonoblockName', 'RevCementedMonoblockRef',
'RevCementedStemName', 'RevCementedStemRef', 'RevCeramicHeadName','RevCeramicHeadRef','RevCeramicLinerName', 'RevCeramicLinerRef', 'RevMetalHeadName', 'RevMetalHeadRef',
'PolyethilenLinerName', 'PolyethilenLinerRef', 'ResurfacingHeadName', 'ResurfacingHeadRef', 'RevisionStemName', 'RevisionStemRef',
'RevShellName', 'RevShellRef', 'RevUncementedStemName', 'RevUncementedStemRef', 'RevImplants'
);
foreach ($revisionHip as $hip){
$revision_data_unit = [];
$revision_data_unit = array_fill_keys($first_row, '');
$revision_data_unit['id'] = $hip->getId();
$revision_data_unit['Joint'] = "Klubas";
$revision_data_unit['primaryHip'] = $hip->getPrimaryHip()->getId();
$revision_data_unit['RevisionCause'] = $this->OPFunctions->hipRevisionCauseEncoder($hip->getRevisionCause());
$revision_data_unit['RevisionType'] = $this->OPFunctions->hipRevisionTypeEncoder($hip->getRevisionType());
$revision_data_unit['Incision'] = $hip->getIncision();
$revision_data_unit['AdditionalInfo'] = implode("; ", (array) $this->OPFunctions->hipAdditionalInfoEncoder($hip->getAdditionalInfo()));
$revision_data_unit['Technique'] = implode("; ", (array) $this->OPFunctions->hipTechniqueEncoder($hip->getTechnique()));
$implants = "";
$implants = $hip->getImplants();
$implantList = [];
if (!empty($implants)){
$implantList = [];
foreach ($implants as $implant){
$implantList[] = $implant->getRef()."||".$implant->getName()."||".$implant->getType();
switch ($implant->getType()){
case 'Bipolar cup':
$revision_data_unit['BipolarCupName'] = $implant->getName();
$revision_data_unit['BipolarCupRef'] = $implant->getRef();
break;
case 'Bone cement':
case 'Bone cement ':
$revision_data_unit['CementName'] = $implant->getName();
$revision_data_unit['CementRef'] = $implant->getRef();
break;
case 'Cemented cup':
case 'Cup':
$revision_data_unit['CementedCupName'] = $implant->getName();
$revision_data_unit['CementedCupRef'] = $implant->getRef();
break;
case 'Cemented monoblock':
$revision_data_unit['CementedMonoblockName'] = $implant->getName();
$revision_data_unit['CementedMonoblockRef'] = $implant->getRef();
break;
case 'Cemented stem':
$revision_data_unit['CementedStemName'] = $implant->getName();
$revision_data_unit['CementedStemRef'] = $implant->getRef();
break;
case 'Ceramic head':
$revision_data_unit['CeramicHeadName'] = $implant->getName();
$revision_data_unit['CeramicHeadRef'] = $implant->getRef();
break;
case 'Ceramic liner':
$revision_data_unit['CeramicLinerName'] = $implant->getName();
$revision_data_unit['CeramicLinerRef'] = $implant->getRef();
break;
case 'Metal head':
$revision_data_unit['MetalHeadName'] = $implant->getName();
$revision_data_unit['MetalHeadRef'] = $implant->getRef();
break;
case 'Polyethilen liner':
case 'Polyethylene liner':
$revision_data_unit['PolyethilenLinerName'] = $implant->getName();
$revision_data_unit['PolyethilenLinerRef'] = $implant->getRef();
break;
case 'Resurfising head':
$revision_data_unit['ResurfacingHeadName'] = $implant->getName();
$revision_data_unit['ResurfacingHeadRef'] = $implant->getRef();
break;
case 'Revision stem':
$revision_data_unit['RevisionStemName'] = $implant->getName();
$revision_data_unit['RevisionStemRef'] = $implant->getRef();
break;
case 'Shell':
$revision_data_unit['ShellName'] = $implant->getName();
$revision_data_unit['ShellRef'] = $implant->getRef();
break;
case 'Uncemented stem':
$revision_data_unit['UncementedStemName'] = $implant->getName();
$revision_data_unit['UncementedStemRef'] = $implant->getRef();
break;
}
}
$revision_data_unit['Implants'] = implode("; ", $implantList);
}
else{
$revision_data_unit['Implants'] = "";
}
$revision_data_unit['doctor'] = $hip->getDoctor()->getFirstName()." ".$hip->getDoctor()->getLastName();
$revision_data_unit['hospital'] = $hip->getDoctor()->getHospital()->getHospitalName();
if($hip->getPrimaryHip()->getPatientLeftHip() != null){
$joint = $hip->getPrimaryHip()->getPatientLeftHip();
$revision_data_unit['Side'] = "Kairė";
$revision_data_unit['PatientId'] = $joint->getId();
$revision_data_unit['PatientFirstName'] = $joint->getFirstName();
$revision_data_unit['PatientLastName'] = $joint->getLastName();
$revision_data_unit['identifier'] = $joint->getIdentifier();
$revision_data_unit['gender'] = $this->OPFunctions->IdentifierToGender($joint->getIdentifier());
$revision_data_unit['birth'] = $this->OPFunctions->IdentifierToDate($joint->getIdentifier());
$revision_data_unit['DeathDate'] = $joint->getDeathDate();
}
elseif ($hip->getPrimaryHip()->getPatientRightHip() != null) {
$joint = $hip->getPrimaryHip()->getPatientRightHip();
$revision_data_unit['Side'] = "Dešinė";
$revision_data_unit['PatientId'] = $joint->getId();
$revision_data_unit['PatientFirstName'] = $joint->getFirstName();
$revision_data_unit['PatientLastName'] = $joint->getLastName();
$revision_data_unit['identifier'] = $joint->getIdentifier();
$revision_data_unit['gender'] = $this->OPFunctions->IdentifierToGender($joint->getIdentifier());
$revision_data_unit['birth'] = $this->OPFunctions->IdentifierToDate($joint->getIdentifier());
$revision_data_unit['DeathDate'] = $joint->getDeathDate();
}
else {
$revision_data_unit['Side'] = "Patikrinkite įrašą, duomenys išsibarstę";
$revision_data_unit['PatientFirstName'] = "???";
$revision_data_unit['PatientLastName'] = "???";
$revision_data_unit['identifier'] = "???";
$revision_data_unit['birth'] = '???';
$revision_data_unit['gender'] = "???";
$revision_data_unit['birth'] = '1900-01-01';
$revision_data_unit['DeathDate'] = '';
}
$revision_data_unit['Date'] = $hip->getDate();
$age = date_diff(date_create($revision_data_unit['birth']), date_create($revision_data_unit['Date']));
$revision_data_unit['Age'] = $age->format("%y");
$revisions = null;
$revisions = $hip->getPrimaryHip()->getRevisionHip();
$revision = null;
foreach($revisions as $rev){
if ($revision == null) {
if (strtotime($rev->getDate()) > strtotime($revision_data_unit['Date'])){
$revision = $rev;
}
}
else {
if (strtotime($rev->getDate()) > strtotime($revision_data_unit['Date']) && (strtotime($rev->getDate()) < strtotime($revision->getDate()))){
$revision = $rev;
}
}
}
if($revision!=null){
$revision_data_unit['RevId'] = $revision->getId();
$revision_data_unit['RevDiagnosis'] = $this->OPFunctions->hipRevisionCauseEncoder($revision->getRevisionCause());
$implants = "";
$implants = $revision->getImplants();
if (!empty($implants)){
$implantList = [];
foreach ($implants as $implant){
$implantList[] = $implant->getRef()."||".$implant->getName()."||".$implant->getType();
switch ($implant->getType()){
case 'Bipolar cup':
$revision_data_unit['RevBipolarCupName'] = $implant->getName();
$revision_data_unit['RevBipolarCupRef'] = $implant->getRef();
break;
case 'Bone cement':
case 'Bone cement ':
$revision_data_unit['RevCementName'] = $implant->getName();
$revision_data_unit['RevCementRef'] = $implant->getRef();
break;
case 'Cemented cup':
case 'Cup':
$revision_data_unit['RevCementedCupName'] = $implant->getName();
$revision_data_unit['RevCementedCupRef'] = $implant->getRef();
break;
case 'Cemented monoblock':
$revision_data_unit['RevCementedMonoblockName'] = $implant->getName();
$revision_data_unit['RevCementedMonoblockRef'] = $implant->getRef();
break;
case 'Cemented stem':
$revision_data_unit['RevCementedStemName'] = $implant->getName();
$revision_data_unit['RevCementedStemRef'] = $implant->getRef();
break;
case 'Ceramic head':
$revision_data_unit['RevCeramicHeadName'] = $implant->getName();
$revision_data_unit['RevCeramicHeadRef'] = $implant->getRef();
break;
case 'Ceramic liner':
$revision_data_unit['RevCeramicLinerName'] = $implant->getName();
$revision_data_unit['RevCeramicLinerRef'] = $implant->getRef();
break;
case 'Metal head':
$revision_data_unit['RevMetalHeadName'] = $implant->getName();
$revision_data_unit['RevMetalHeadRef'] = $implant->getRef();
break;
case 'Polyethilen liner':
case 'Polyethylene liner':
$revision_data_unit['RevPolyethilenLinerName'] = $implant->getName();
$revision_data_unit['RevPolyethilenLinerRef'] = $implant->getRef();
break;
case 'Resurfising head':
$revision_data_unit['RevResurfacingHeadName'] = $implant->getName();
$revision_data_unit['RevResurfacingHeadRef'] = $implant->getRef();
break;
case 'Revision stem':
$revision_data_unit['RevRevisionStemName'] = $implant->getName();
$revision_data_unit['RevRevisionStemRef'] = $implant->getRef();
break;
case 'Shell':
$revision_data_unit['RevShellName'] = $implant->getName();
$revision_data_unit['RevShellRef'] = $implant->getRef();
break;
case 'Uncemented stem':
$revision_data_unit['RevUncementedStemName'] = $implant->getName();
$revision_data_unit['RevUncementedStemRef'] = $implant->getRef();
break;
}
}
$revision_data_unit['RevImplants'] = implode("; ", $implantList);
}
else{
$revision_data_unit['RevImplants'] = "";
}
$revision_data_unit['RevDate'] = $revision->getDate();
}
$revision_data[] = $revision_data_unit;
$revision_data_unit = [];
}
//dd($revision_data);
return $revision_data;
}
/**
* Surenkame PIRMINĖS ir REVIZINĖS KELIO operacijos duomenis pasiuntimui
*/
private function primaryAndRevisionKneeData(string $dateFrom = "", string $dateTo = ""): array
{
ini_set("memory_limit",-1);
if($dateFrom == "" && $dateTo == ""){
$primaryKnee = $this->entityManager->getRepository(PrimaryKnee::class)->findAll();
}
else {
if ($dateTo == "") {$dateTo = date("Y-m-d");}
$primaryKnee = $this->entityManager->getRepository(PrimaryKnee::class)->findFromTo($dateFrom, $dateTo);
}
$first_row = array(
'id', 'Joint','identifier', 'doctor', 'hospital','PatientId', 'PatientFirstName', 'PatientLastName', 'birth', 'Age', 'gender',
'Date', 'Side', 'Diagnosis', 'Incision', 'Technique','AdditionalInfo',
'CementName', 'CementRef', 'FemoralComponentName', 'FemoralComponentRef', 'InsertName', 'InsertRef',
'PatellaName', 'PatellaRef', 'TibialComponentName','TibialComponentRef', 'Implants',
'RevId', 'RevDate', 'DeathDate', 'RevDiagnosis',
'RevCementName', 'RevCementRef', 'RevFemoralComponentName', 'RevFemoralComponentRef', 'RevInsertName', 'RevInsertRef',
'RevPatellaName', 'RevPatellaRef', 'RevTibialComponentName','RevTibialComponentRef', 'RevImplants'
);
foreach ($primaryKnee as $knee){
$primary_data_unit = [];
$primary_data_unit = array_fill_keys($first_row, '');
$primary_data_unit['id'] = $knee->getId();
$primary_data_unit['Joint'] = "Kelis";
$primary_data_unit['Diagnosis'] = $this->OPFunctions->kneeDiagnosisEncoder($knee->getDiagnosis());
$primary_data_unit['Technique'] = implode("; ", (array) $this->OPFunctions->kneeTechniqueEncoder($knee->getTechnique()));
$primary_data_unit['Incision'] = $knee->getIncision();
$primary_data_unit['AdditionalInfo'] = implode("; ", (array) $this->OPFunctions->kneeAdditionalInfoEncoder($knee->getAdditionatInfo()));
$implants = "";
$implants = $knee->getImplants();
if (!empty($implants)){
$implantList = [];
foreach ($implants as $implant){
$implantList[] = $implant->getRef()."||".$implant->getName()."||".$implant->getType();
switch ($implant->getType()){
case 'Bone cement':
case 'Bone cement ':
$primary_data_unit['CementName'] = $implant->getName();
$primary_data_unit['CementRef'] = $implant->getRef();
break;
case 'Femoral component':
$primary_data_unit['FemoralComponentName'] = $implant->getName();
$primary_data_unit['FemoralComponentRef'] = $implant->getRef();
break;
case 'Insert':
case 'Insert ':
$primary_data_unit['InsertName'] = $implant->getName();
$primary_data_unit['InsertRef'] = $implant->getRef();
break;
case 'Patella':
case 'Pattela':
$primary_data_unit['PatellaName'] = $implant->getName();
$primary_data_unit['PatellaRef'] = $implant->getRef();
break;
case 'Tibial component':
$primary_data_unit['TibialComponentName'] = $implant->getName();
$primary_data_unit['TibialComponentRef'] = $implant->getRef();
break;
}
}
$primary_data_unit['Implants'] = implode("; ", $implantList);
}
else{
$primary_data_unit['Implants'] = "";
}
$primary_data_unit['doctor'] = $knee->getDoctor()->getFirstName()." ".$knee->getDoctor()->getLastName();
$primary_data_unit['hospital'] = $knee->getDoctor()->getHospital()->getHospitalName();
if($knee->getPatientLeftKnee() != null){
$joint = $knee->getPatientLeftKnee();
$primary_data_unit['Side'] = "Kairė";
$primary_data_unit['PatientId'] = $joint->getId();
$primary_data_unit['PatientFirstName'] = $joint->getFirstName();
$primary_data_unit['PatientLastName'] = $joint->getLastName();
$primary_data_unit['identifier'] = $joint->getIdentifier();
$primary_data_unit['gender'] = $this->OPFunctions->IdentifierToGender($joint->getIdentifier());
$primary_data_unit['birth'] = $this->OPFunctions->IdentifierToDate($joint->getIdentifier());
$primary_data_unit['DeathDate'] = $joint->getDeathDate();
}
elseif ($knee->getPatientRightKnee() != null) {
$joint = $knee->getPatientRightKnee();
$primary_data_unit['Side'] = "Dešinė";
$primary_data_unit['PatientId'] = $joint->getId();
$primary_data_unit['PatientFirstName'] = $joint->getFirstName();
$primary_data_unit['PatientLastName'] = $joint->getLastName();
$primary_data_unit['identifier'] = $joint->getIdentifier();
$primary_data_unit['gender'] = $this->OPFunctions->IdentifierToGender($joint->getIdentifier());
$primary_data_unit['birth'] = $this->OPFunctions->IdentifierToDate($joint->getIdentifier());
$primary_data_unit['DeathDate'] = $joint->getDeathDate();
}
else {
$primary_data_unit['Side'] = "Patikrinkite įrašą, duomenys išsibarstę";
$primary_data_unit['PatientId'] = "???";
$primary_data_unit['PatientFirstName'] = "???";
$primary_data_unit['PatientLastName'] = "???";
$primary_data_unit['hospital'] = "???";
$primary_data_unit['identifier'] = "???";
$primary_data_unit['gender'] = "???";
$primary_data_unit['birth'] = '1900-01-01';
$primary_data_unit['DeathDate'] = '';
}
$primary_data_unit['Date'] = $knee->getDate();
$age = "";
if($this->validateDate($primary_data_unit['birth']) && $this->validateDate($primary_data_unit['Date'])){
$age =date_diff(date_create($primary_data_unit['birth']), date_create($primary_data_unit['Date']));
$primary_data_unit['Age'] = $age->format("%y");
}
else{
$primary_data_unit['Age'] = "???";
}
$revisions = null;
$revisions = $knee->getRevisionKnees();
$revision = null;
foreach($revisions as $rev){
if ($revision == null) {
if (strtotime($rev->getDate()) >= strtotime($primary_data_unit['Date'])){
$revision = $rev;
}
}
else {
if (strtotime($rev->getDate()) > strtotime($primary_data_unit['Date']) && (strtotime($rev->getDate()) < strtotime($revision->getDate()))){
$revision = $rev;
}
}
}
if($revision!=null){
$primary_data_unit['RevId'] = $revision->getId();
$primary_data_unit['RevDiagnosis'] = $this->OPFunctions->kneeRevisionCauseEncoder($revision->getRevisionCause());
$implants = "";
$implants = $revision->getImplants();
if (!empty($implants)){
$implantList = [];
foreach ($implants as $implant){
$implantList[] = $implant->getRef()."||".$implant->getName()."||".$implant->getType();
switch ($implant->getType()){
case 'Bone cement':
case 'Bone cement ':
$primary_data_unit['RevCementName'] = $implant->getName();
$primary_data_unit['RevCementRef'] = $implant->getRef();
break;
case 'Femoral component':
$primary_data_unit['RevFemoralComponentName'] = $implant->getName();
$primary_data_unit['RevFemoralComponentRef'] = $implant->getRef();
break;
case 'Insert':
case 'Insert ':
$primary_data_unit['RevInsertName'] = $implant->getName();
$primary_data_unit['RevInsertRef'] = $implant->getRef();
break;
case 'Patella':
case 'Pattela':
$primary_data_unit['RevPatellaName'] = $implant->getName();
$primary_data_unit['RevPatellaRef'] = $implant->getRef();
break;
case 'Tibial component':
$primary_data_unit['RevTibialComponentName'] = $implant->getName();
$primary_data_unit['RevTibialComponentRef'] = $implant->getRef();
break;
}
}
$primary_data_unit['Implants'] = implode("; ", $implantList);
}
else{
$primary_data_unit['Implants'] = "";
}
$primary_data_unit['RevDate'] = $revision->getDate();
}
$primary_data[] = $primary_data_unit;
}
return $primary_data;
}
/**
* Surenkame REVIZINIS ir Pirmas REVIZIENS KELIO operacijas pasiuntimui
*/
private function revisionAndRevisionKneeData(string $dateFrom = "", string $dateTo = ""): array
{
ini_set("memory_limit",-1);
if($dateFrom == "" && $dateTo == ""){
$revisionKnee = $this->entityManager->getRepository(RevisionKnee::class)->findAll();
}
else {
if ($dateTo == "") {$dateTo = date("Y-m-d");}
$revisionKnee = $this->entityManager->getRepository(RevisionKnee::class)->findFromTo($dateFrom, $dateTo);
}
$first_row = array(
'id', 'Joint','identifier', 'doctor', 'hospital','PatientId', 'PatientFirstName', 'PatientLastName', 'birth', 'Age', 'gender',
'Date', 'Side', 'RevisionCause', 'RevisionType', 'Incision', 'Technique','AdditionalInfo',
'CementName', 'CementRef', 'FemoralComponentName', 'FemoralComponentRef', 'InsertName', 'InsertRef',
'PatellaName', 'PatellaRef', 'TibialComponentName','TibialComponentRef', 'Implants',
'RevId', 'RevDate', 'DeathDate', 'RevDiagnosis',
'RevCementName', 'RevCementRef', 'RevFemoralComponentName', 'RevFemoralComponentRef', 'RevInsertName', 'RevInsertRef',
'RevPatellaName', 'RevPatellaRef', 'RevTibialComponentName','RevTibialComponentRef', 'RevImplants'
);
foreach ($revisionKnee as $knee){
$revision_data_unit = [];
$revision_data_unit = array_fill_keys($first_row, '');
$revision_data_unit['id'] = $knee->getId();
$revision_data_unit['Joint'] = "Kelis";
$revision_data_unit['primaryKnee'] = $knee->getPrimaryKnee()->getId();
$revision_data_unit['RevisionCause'] = $this->OPFunctions->kneeRevisionCauseEncoder($knee->getRevisionCause());
$revision_data_unit['RevisionType'] = $this->OPFunctions->kneeRevisionTypeEncoder($knee->getRevisionType());
$revision_data_unit['Incision'] = $knee->getIncision();
$revision_data_unit['AdditionalInfo'] = implode(" ;", (array) $this->OPFunctions->kneeAdditionalInfoEncoder($knee->getAdditionalInfo()));
$revision_data_unit['Technique'] = implode(" ;", (array) $this->OPFunctions->kneeTechniqueEncoder($knee->getTechnique()));
$implants = "";
$implants = $knee->getImplants();
if (!empty($implants)){
$implantList = [];
foreach ($implants as $implant){
$implantList[] = $implant->getRef()."||".$implant->getName()."||".$implant->getType();
switch ($implant->getType()){
case 'Bone cement':
case 'Bone cement ':
$revision_data_unit['CementName'] = $implant->getName();
$revision_data_unit['CementRef'] = $implant->getRef();
break;
case 'Femoral component':
$revision_data_unit['FemoralComponentName'] = $implant->getName();
$revision_data_unit['FemoralComponentRef'] = $implant->getRef();
break;
case 'Insert':
case 'Insert ':
$revision_data_unit['InsertName'] = $implant->getName();
$revision_data_unit['InsertRef'] = $implant->getRef();
break;
case 'Patella':
case 'Pattela':
$revision_data_unit['PatellaName'] = $implant->getName();
$revision_data_unit['PatellaRef'] = $implant->getRef();
break;
case 'Tibial component':
$revision_data_unit['TibialComponentName'] = $implant->getName();
$revision_data_unit['TibialComponentRef'] = $implant->getRef();
break;
}
}
$revision_data_unit['Implants'] = implode("; ", $implantList);
}
else{
$revision_data_unit['Implants'] = "";
}
$revision_data_unit['doctor'] = $knee->getDoctor()->getFirstName()." ".$knee->getDoctor()->getLastName();
$revision_data_unit['hospital'] = $knee->getDoctor()->getHospital()->getHospitalName();
if($knee->getPrimaryKnee()->getPatientLeftKnee() != null){
$joint = $knee->getPrimaryKnee()->getPatientLeftKnee();
$revision_data_unit['Side'] = "Kairė";
$revision_data_unit['PatientId'] = $joint->getId();
$revision_data_unit['PatientFirstName'] = $joint->getFirstName();
$revision_data_unit['PatientLastName'] = $joint->getLastName();
$revision_data_unit['identifier'] = $joint->getIdentifier();
$revision_data_unit['gender'] = $this->OPFunctions->IdentifierToGender($joint->getIdentifier());
$revision_data_unit['birth'] = $this->OPFunctions->IdentifierToDate($joint->getIdentifier());
$revision_data_unit['DeathDate'] = $joint->getDeathDate();
}
elseif ($knee->getPrimaryKnee()->getPatientRightKnee() != null) {
$joint = $knee->getPrimaryKnee()->getPatientRightKnee();
$revision_data_unit['Side'] = "Dešinė";
$revision_data_unit['PatientId'] = $joint->getId();
$revision_data_unit['PatientFirstName'] = $joint->getFirstName();
$revision_data_unit['PatientLastName'] = $joint->getLastName();
$revision_data_unit['identifier'] = $joint->getIdentifier();
$revision_data_unit['gender'] = $this->OPFunctions->IdentifierToGender($joint->getIdentifier());
$revision_data_unit['birth'] = $this->OPFunctions->IdentifierToDate($joint->getIdentifier());
$revision_data_unit['DeathDate'] = $joint->getDeathDate();
}
else {
$revision_data_unit['Side'] = "Patikrinkite įrašą, duomenys išsibarstę";
$revision_data_unit['PatientFirstName'] = "???";
$revision_data_unit['PatientLastName'] = "???";
$revision_data_unit['identifier'] = "???";
$revision_data_unit['birth'] = '???';
$revision_data_unit['gender'] = "???";
$revision_data_unit['birth'] = '1900-01-01';
$revision_data_unit['DeathDate'] = '';
}
$revision_data_unit['Date'] = $knee->getDate();
$age = date_diff(date_create($revision_data_unit['birth']), date_create($revision_data_unit['Date']));
$revision_data_unit['Age'] = $age->format("%y");
$revisions = null;
$revisions = $knee->getPrimaryKnee()->getRevisionKnees();
$revision = null;
foreach($revisions as $rev){
if ($revision == null) {
if (strtotime($rev->getDate()) > strtotime($revision_data_unit['Date'])){
$revision = $rev;
}
}
else {
if (strtotime($rev->getDate()) > strtotime($revision_data_unit['Date']) && (strtotime($rev->getDate()) < strtotime($revision->getDate()))){
$revision = $rev;
}
}
}
if($revision!=null){
$revision_data_unit['RevId'] = $revision->getId();
$revision_data_unit['RevDiagnosis'] = $this->OPFunctions->kneeRevisionCauseEncoder($revision->getRevisionCause());
$implants = "";
$implants = $revision->getImplants();
if (!empty($implants)){
$implantList = [];
foreach ($implants as $implant){
$implantList[] = $implant->getRef()."||".$implant->getName()."||".$implant->getType();
switch ($implant->getType()){
case 'Bone cement':
case 'Bone cement ':
$revision_data_unit['RevCementName'] = $implant->getName();
$revision_data_unit['RevCementRef'] = $implant->getRef();
break;
case 'Femoral component':
$revision_data_unit['RevFemoralComponentName'] = $implant->getName();
$revision_data_unit['RevFemoralComponentRef'] = $implant->getRef();
break;
case 'Insert':
case 'Insert ':
$revision_data_unit['RevInsertName'] = $implant->getName();
$revision_data_unit['RevInsertRef'] = $implant->getRef();
break;
case 'Patella':
case 'Pattela':
$revision_data_unit['RevPatellaName'] = $implant->getName();
$revision_data_unit['RevPatellaRef'] = $implant->getRef();
break;
case 'Tibial component':
$revision_data_unit['RevTibialComponentName'] = $implant->getName();
$revision_data_unit['RevTibialComponentRef'] = $implant->getRef();
break;
}
}
$revision_data_unit['Implants'] = implode("; ", $implantList);
}
else{
$revision_data_unit['Implants'] = "";
}
$revision_data_unit['RevDate'] = $revision->getDate();
}
$revision_data[] = $revision_data_unit;
}
return $revision_data;
}
/**
* Surenkame KLUBO Implantų duomenis pasiuntimui
*/
private function hipImplantData(string $dateFrom = "", string $dateTo = ""): array
{
ini_set("memory_limit",-1);
if($dateFrom == "" && $dateTo == ""){
$primaryHip = $this->entityManager->getRepository(PrimaryHip::class)->findAll();
}
else {
if ($dateTo == "") {$dateTo = date("Y-m-d");}
$primaryHip = $this->entityManager->getRepository(PrimaryHip::class)->findFromTo($dateFrom, $dateTo);
}
$first_row = array(
'personalID', 'institution','name', 'surname', 'operationDate','operationType', 'side', 'Stem', 'Cup', 'Shell', 'Head'
);
foreach ($primaryHip as $hip){
$primary_data_unit = [];
$primary_data_unit = array_fill_keys($first_row, '');
$primary_data_unit['operationDate'] = $hip->getDate();
$primary_data_unit['operationType'] = 'primary';
$implants = "";
$implants = $hip->getImplants();
if (!empty($implants)){
$implantList = [];
$partInfo = "";
foreach ($implants as $implant){
$partInfo = $implant->getName()."||".$implant->getRef()."||".$implant->getFirm();
switch ($implant->getType()){
//Stems
case 'Revision stem':
case 'Uncemented stem':
case 'Cemented stem':
$primary_data_unit['Stem'] = $partInfo;
break;
//Cups
case 'Bipolar cup':
case 'Cemented cup':
case 'Cup':
$primary_data_unit['Cup'] = $partInfo;
break;
//Shells
case 'Shell':
$primary_data_unit['Shell'] = $partInfo;
break;
//Heads
case 'Ceramic head':
case 'Metal head':
case 'Resurfising head':
$primary_data_unit['Head'] = $partInfo;
break;
}
$partInfo = "";
}
}
$primary_data_unit['institution'] = $hip->getHospital()->getId();
if($hip->getPatientLeftHip() != null){
$joint = $hip->getPatientLeftHip();
$primary_data_unit['side'] = "Kairė";
$primary_data_unit['name'] = $joint->getFirstName();
$primary_data_unit['surname'] = $joint->getLastName();
$primary_data_unit['personalID'] = $joint->getIdentifier();
}
elseif ($hip->getPatientRightHip() != null) {
$joint = $hip->getPatientRightHip();
$primary_data_unit['side'] = "Dešinė";
$primary_data_unit['name'] = $joint->getFirstName();
$primary_data_unit['surname'] = $joint->getLastName();
$primary_data_unit['personalID'] = $joint->getIdentifier();
}
else {
$primary_data_unit['side'] = "Patikrinkite įrašą, duomenys išsibarstę";
$primary_data_unit['name'] = "???";
$primary_data_unit['surname'] = "???";
$primary_data_unit['personalID'] = "???";
}
$primary_data[] = $primary_data_unit;
$revisions = $hip->getRevisionHip();
if (!empty($revisions)){
foreach ($revisions as $revision){
$primary_data_unit['operationType'] = '';
$primary_data_unit['operationDate'] = '';
$primary_data_unit['Stem'] = '';
$primary_data_unit['Cup'] = '';
$primary_data_unit['Shell'] = '';
$primary_data_unit['Head'] = '';
if($revision!=null){
$primary_data_unit['operationType'] = 'revision';
$primary_data_unit['operationDate'] = $revision->getDate();
$implants = "";
$implants = $revision->getImplants();
if (!empty($implants)){
$partInfo = "";
foreach ($implants as $implant){
$partInfo = $implant->getName()."||".$implant->getRef()."||".$implant->getFirm();
switch ($implant->getType()){
//Stems
case 'Revision stem':
case 'Uncemented stem':
case 'Cemented stem':
$primary_data_unit['Stem'] = $partInfo;
break;
//Cups
case 'Bipolar cup':
case 'Cemented cup':
case 'Cup':
$primary_data_unit['Cup'] = $partInfo;
break;
//Shells
case 'Shell':
$primary_data_unit['Shell'] = $partInfo;
break;
//Heads
case 'Ceramic head':
case 'Metal head':
case 'Resurfising head':
$primary_data_unit['Head'] = $partInfo;
break;
}
$partInfo = "";
}
}
}
$primary_data[] = $primary_data_unit;
}
}
}
//dd($primary_data[49]);
return $primary_data;
}
/**
* Surenkame KELIO Implantų duomenis pasiuntimui
*/
private function kneeImplantData(): array
{
ini_set("memory_limit",-1);
$primaryKnee = $this->entityManager->getRepository(PrimaryKnee::class)->findAll();
$first_row = array(
'personalID', 'institution','name', 'surname', 'operationDate','operationType', 'side', 'Distal plug', 'Femoral component', 'Tibial component', 'Insert'
);
foreach ($primaryKnee as $knee){
$primary_data_unit = [];
$primary_data_unit = array_fill_keys($first_row, '');
$primary_data_unit['operationDate'] = $knee->getDate();
$primary_data_unit['operationType'] = 'primary';
$implants = "";
$implants = $knee->getImplants();
if (!empty($implants)){
$implantList = [];
$partInfo = "";
foreach ($implants as $implant){
$partInfo = $implant->getName()."||".$implant->getRef()."||".$implant->getFirm();
switch ($implant->getType()){
//Distal plug
case 'Distal plug':
$primary_data_unit['Distal plug'] = $partInfo;
break;
//Femoral component
case 'Femoral component':
$primary_data_unit['Femoral component'] = $partInfo;
break;
//Tibial component
case 'Tibial component':
$primary_data_unit['Tibial component'] = $partInfo;
break;
//Insert
case 'Insert':
$primary_data_unit['Insert'] = $partInfo;
break;
}
$partInfo = "";
}
}
//dd($implantList);
$primary_data_unit['institution'] = $knee->getHospital()->getId();
if($knee->getPatientLeftKnee() != null){
$joint = $knee->getPatientLeftKnee();
$primary_data_unit['side'] = "Kairė";
$primary_data_unit['name'] = $joint->getFirstName();
$primary_data_unit['surname'] = $joint->getLastName();
$primary_data_unit['personalID'] = $joint->getIdentifier();
}
elseif ($knee->getPatientRightKnee() != null) {
$joint = $knee->getPatientRightKnee();
$primary_data_unit['side'] = "Dešinė";
$primary_data_unit['name'] = $joint->getFirstName();
$primary_data_unit['surname'] = $joint->getLastName();
$primary_data_unit['personalID'] = $joint->getIdentifier();
}
else {
$primary_data_unit['side'] = "Patikrinkite įrašą, duomenys išsibarstę";
$primary_data_unit['name'] = "???";
$primary_data_unit['surname'] = "???";
$primary_data_unit['personalID'] = "???";
}
$primary_data[] = $primary_data_unit;
$revisions = $knee->getRevisionKnees();
if (!empty($revisions)){
foreach ($revisions as $revision){
$primary_data_unit['operationType'] = '';
$primary_data_unit['operationDate'] = '';
$primary_data_unit['Distal plug'] = '';
$primary_data_unit['Femoral component'] = '';
$primary_data_unit['Tibial component'] = '';
$primary_data_unit['Insert'] = '';
if($revision!=null){
$primary_data_unit['operationType'] = 'revision';
$primary_data_unit['operationDate'] = $revision->getDate();
$implants = "";
$implants = $revision->getImplants();
if (!empty($implants)){
$partInfo = "";
foreach ($implants as $implant){
$partInfo = $implant->getName()."||".$implant->getRef()."||".$implant->getFirm();
switch ($implant->getType()){
//Distal plug
case 'Distal plug':
$primary_data_unit['Distal plug'] = $partInfo;
break;
//Femoral component
case 'Femoral component':
$primary_data_unit['Femoral component'] = $partInfo;
break;
//Tibial component
case 'Tibial component':
$primary_data_unit['Tibial component'] = $partInfo;
break;
//Insert
case 'Insert':
$primary_data_unit['Insert'] = $partInfo;
break;
}
$partInfo = "";
}
}
}
$primary_data[] = $primary_data_unit;
}
}
}
//dd($primary_data);
return $primary_data;
}
/**
* @Route("/admin/export", name="exportpage")
*/
public function exportPage(Request $request, ExportFilterType $exportFilter): Response
{
$form = $this->createForm(ExportFilterType::class, $exportFilter);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$dateFrom = $form['DateFrom']->getData();
$dateTo = $form['DateTo']->getData();
$registras = $form['Registras']->getData();
switch ($registras){
case 'exportPrimaryRevisionKnee':
return $this->forward($this->exportPrimaryRevisionKnee($dateFrom, $dateTo));
break;
case 'exportRevisionRevisionKnee':
return $this->forward($this->exportRevisionRevisionKnee($dateFrom, $dateTo));
break;
case 'exportPrimaryRevisionHip':
return $this->forward($this->exportPrimaryRevisionHip($dateFrom, $dateTo));
break;
case 'exportRevisionRevisionHip':
return $this->forward($this->exportRevisionRevisionHip($dateFrom, $dateTo));
break;
case 'exportHipImplantData':
return $this->forward($this->exportHipImplantData($dateFrom, $dateTo));
break;
case 'exportKneeImplantData':
return $this->forward($this->exportKneeImplantData($dateFrom, $dateTo));
break;
}
}
return $this->render('admin/export.html.twig', [
'form' => $form->createView(),
]);
}
/**
* @Route("/admin/export/primaryRevisionHip", name="exportPrimaryRevisionHip")
*/
public function exportPrimaryRevisionHip(string $dateFrom = "", string $dateTo = ""){
//dd($records);
$filename = "PirminiaiKlubai".time();
//header('Content-Encoding: ANSI');
//header('Content-type: text/csv; charset=UTF-16LE');
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$filename\"");
$records = $this->primaryAndRevisionHipData($dateFrom, $dateTo);
//print_r($records);
$heading = false;
if(!empty($records)){
foreach($records as $row) {
if(!$heading) {
// display field/column names as a first row
$table = implode("\t", array_keys($row)) . "\n";
$heading = true;
}
$table .= implode("\t", array_values($row)) . "\n";
}
}
//echo utf8_decode($table);
//echo iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $table),
//echo mb_convert_encoding($table, 'ISO-8859-1//TRANSLIT');
echo $table;
exit;
}
/**
* @Route("/admin/export/revisionRevisionHip", name="exportRevisionRevisionHip")
*/
public function exportRevisionRevisionHip(string $dateFrom = "", string $dateTo = ""){
//dd($records);
$filename = "ReviziniaiKlubai".time();
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$filename\"");
$records = $this->revisionAndRevisionHipData($dateFrom, $dateTo);
//print_r($records);
$heading = false;
if(!empty($records)){
foreach($records as $row) {
if(!$heading) {
// display field/column names as a first row
$table = implode("\t", array_keys($row)) . "\n";
$heading = true;
}
$table .= implode("\t", array_values($row)) . "\n";
}
}
//echo utf8_decode($table);
//echo iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $table),
//echo mb_convert_encoding($table, 'ISO-8859-1//TRANSLIT');
echo $table;
exit;
}
/**
* @Route("/admin/export/primaryRevisionKnee", name="exportPrimaryRevisionKnee")
*/
public function exportPrimaryRevisionKnee(string $dateFrom = "", string $dateTo = ""){
$filename = "PirminiaiKeliai".time();
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$filename\"");
$records = $this->primaryAndRevisionKneeData($dateFrom, $dateTo);
$heading = false;
if(!empty($records)){
foreach($records as $row) {
if(!$heading) {
// display field/column names as a first row
$table = implode("\t", array_keys($row)) . "\n";
$heading = true;
}
$table .= implode("\t", array_values($row)) . "\n";
}
}
echo $table;
exit;
}
/**
* @Route("/admin/export/revisionRevisionKnee", name="exportRevisionRevisionKnee")
*/
public function exportRevisionRevisionKnee(string $dateFrom = "", string $dateTo = ""){
$filename = "ReviziniaiKeliai".time();
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$filename\"");
$records = $this->revisionAndRevisionKneeData($dateFrom, $dateTo);
$heading = false;
if(!empty($records)){
foreach($records as $row) {
if(!$heading) {
// display field/column names as a first row
$table = implode("\t", array_keys($row)) . "\n";
$heading = true;
}
$table .= implode("\t", array_values($row)) . "\n";
}
}
echo $table;
exit;
}
/**
* @Route("/admin/export/HipImplantData", name="exportHipImplantData")
*/
public function exportHipImplantData(string $dateFrom = "", string $dateTo = ""){
//dd($records);
$filename = "KlubuImplantai".time();
//header('Content-Encoding: ANSI');
//header('Content-type: text/csv; charset=UTF-16LE');
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$filename\"");
$records = $this->hipImplantData($dateFrom, $dateTo);
//print_r($records);
$heading = false;
if(!empty($records)){
foreach($records as $row) {
if(!$heading) {
// display field/column names as a first row
$table = implode("\t", array_keys($row)) . "\n";
$heading = true;
}
$table .= implode("\t", array_values($row)) . "\n";
}
}
//echo utf8_decode($table);
//echo iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $table),
//echo mb_convert_encoding($table, 'ISO-8859-1//TRANSLIT');
echo $table;
exit;
}
/**
* @Route("/admin/export/KneeImplantData", name="exportKneeImplantData")
*/
public function exportKneeImplantData(){
//dd($records);
$filename = "KeliuImplantai".time();
//header('Content-Encoding: ANSI');
//header('Content-type: text/csv; charset=UTF-16LE');
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$filename\"");
$records = $this->kneeImplantData();
//dd($records);
$heading = false;
if(!empty($records)){
foreach($records as $row) {
if(!$heading) {
// display field/column names as a first row
$table = implode("\t", array_keys($row)) . "\n";
$heading = true;
}
$table .= implode("\t", array_values($row)) . "\n";
}
}
//echo utf8_decode($table);
//echo iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $table),
//echo mb_convert_encoding($table, 'ISO-8859-1//TRANSLIT');
echo $table;
exit;
}
/**
* @Route("/admin/export/primaryHip", name="exportPrimaryHip")
*/
public function exportPrimaryHip(){
ini_set("memory_limit",-1);
//$pool = new ApcuCachePool();
//$simpleCache = new SimpleCacheBridge($pool);
//Settings::setCache($simpleCache);
$spreadsheet = new Spreadsheet();
//1 lapas
$sheet1 = $spreadsheet->getActiveSheet();
$sheet1->setTitle('Pirminiai klubai');
$sheet1->fromArray(['ID', 'Sąnarys', 'Diagnozė', 'Technika', 'Pjūvis', 'Papildoma info', 'BipolarCupName', 'BipolarCupRef', 'CementName', 'CementRef', 'CementedCupName', 'CementedCupRef', 'CementedMonoblockName', 'CementedMonoblockRef', 'CementedStemName', 'CementedStemRef', 'CeramicHeadName', 'CeramicHeadRef', 'CeramicLinerName', 'CeramicLinerRef', 'MetalHeadName', 'MetalHeadRef', 'PolyethilenLinerName', 'PolyethilenLinerRef', 'ResurfacingHeadName', 'ResurfacingHeadRef', 'RevisionStemName', 'RevisionStemRef', 'ShellName', 'ShellRef', 'UncementedStemName', 'UncementedStemRef', 'Protezai', 'Operatororius', 'Pusė', 'Paciento ID', 'Vardas pavardė', 'A.k.', 'Gimimo data', 'Op. data'],null, 'A1', true);
$sheet1->fromArray($this->primaryAndRevisionHipData(),null, 'A2', true);
//dd($sheet1);
$writer = new Xlsx($spreadsheet);
$response = new StreamedResponse(
function () use ($writer) {
$writer->setPreCalculateFormulas(false);
$writer->save('php://output');
}
);
$response->headers->set('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$response->headers->set('Content-Disposition', 'attachment;filename="KluboRegistrasPirminis"');
$response->headers->set('Cache-Control','max-age=0');
return $response;
}
/**
* @Route("/admin/export/revisionHip", name="exportRevisionHip")
*/
public function exportRevisionHip()
{
ini_set("memory_limit",-1);
$spreadsheet = new Spreadsheet();
//3 lapas
$sheet3 = $spreadsheet->getActiveSheet();
$sheet3->setTitle('Reviziniai klubai');
$sheet3->fromArray(['ID', 'Sąnarys', 'Pirminis ID', 'Priežastis', 'Revizijos tipas', 'Pjūvis', 'Papildoma info', 'Technika', 'BipolarCupName', 'BipolarCupRef', 'CementName', 'CementRef', 'CementedCupName', 'CementedCupRef', 'CementedMonoblockName', 'CementedMonoblockRef', 'CementedStemName', 'CementedStemRef', 'CeramicHeadName', 'CeramicHeadRef', 'CeramicLinerName', 'CeramicLinerRef', 'MetalHeadName', 'MetalHeadRef', 'PolyethilenLinerName', 'PolyethilenLinerRef', 'ResurfacingHeadName', 'ResurfacingHeadRef', 'RevisionStemName', 'RevisionStemRef', 'ShellName', 'ShellRef', 'UncementedStemName', 'UncementedStemRef', 'Protezai', 'Operatororius', 'Pusė', 'Paciento ID', 'Vardas pavardė', 'A.k.', 'Gimimo data', 'Op. data'],null, 'A1', true);
$sheet3->fromArray($this->revisionHipData(),null, 'A2', true);
$writer = new Xlsx($spreadsheet);
$response = new StreamedResponse(
function () use ($writer) {
$writer->save('php://output');
}
);
$response->headers->set('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$response->headers->set('Content-Disposition', 'attachment;filename="KluboRegistrasRevizinis"');
$response->headers->set('Cache-Control','max-age=0');
return $response;
}
/**
* @Route("/admin/export/primaryKnee", name="exportPrimaryKnee")
*/
public function exportPrimaryKnee()
{
ini_set("memory_limit",-1);
$spreadsheet = new Spreadsheet();
//2 lapas
$sheet2 = $spreadsheet->getActiveSheet();
$sheet2 = $spreadsheet->getActiveSheet()->setTitle('Pirminiai keliai');
$sheet2->fromArray(['ID', 'Sąnarys', 'Diagnozė', 'Technika', 'Pjūvis', 'Papildoma info', 'CementName', 'CementRef', 'FemoralComponentName', 'FemoralComponentRef', 'InsertName', 'InsertRef', 'PatellaName', 'PatellaRef', 'TibialComponentName', 'TibialComponentRef', 'Protezai', 'Operatororius', 'Pusė', 'Paciento ID', 'Vardas pavardė', 'A.k.', 'Gimimo data', 'Op. data'],null, 'A1', true);
$sheet2->fromArray($this->primaryKneeData(),null, 'A2', true);
//4 lapas
$spreadsheet->createSheet();
$spreadsheet->setActiveSheetIndex(1);
$sheet4 = $spreadsheet->getActiveSheet()->setTitle('Reviziniai keliai');
$sheet4->fromArray(['ID', 'Sąnarys', 'Pirminis ID', 'Priežastis', 'Revizijos tipas', 'Pjūvis', 'Papildoma info', 'Technika', 'CementName', 'CementRef', 'FemoralComponentName', 'FemoralComponentRef', 'InsertName', 'InsertRef', 'PatellaName', 'PatellaRef', 'TibialComponentName', 'TibialComponentRef', 'Protezai', 'Operatororius', 'Pusė', 'Paciento ID', 'Vardas pavardė', 'A.k.', 'Gimimo data', 'Op. data'],null, 'A1', true);
$sheet4->fromArray($this->revisionKneeData(),null, 'A2', true);
$writer = new Xlsx($spreadsheet);
$response = new StreamedResponse(
function () use ($writer) {
$writer->save('php://output');
}
);
$response->headers->set('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$response->headers->set('Content-Disposition', 'attachment;filename="KelioRegistras"');
$response->headers->set('Cache-Control','max-age=0');
return $response;
}
/**
* @Route("/admin/revisionKnee/indexAjax", methods={"GET"})
*/
public function revisionKneeAjax(RevisionKneeRepository $revisionKneeRepository, OperationRegistryFunctions $OpRegF, Request $request): Response
{
$offset = $request->query->get('start');
if ($offset == 0) {
$offset = null;
}
$entryCount = $request->query->get('length');
$searchString = $request->query->get('search');
$order = $request->query->get('order');
$orderBy = $order[0]['column'];
switch ($orderBy) {
case 7:
$orderBy = 'Date';
break;
case 4:
$orderBy = 'RevisionCause';
break;
case 8:
$orderBy = 'otherImplants';
break;
case 9:
$orderBy = 'comment';
break;
}
$orderDir = $order[0]['dir'];
$revisionKneeCount = $revisionKneeRepository->countAll();
$totaEntryCount = $revisionKneeCount;
if ($searchString['value'] === ""){
$revisionKnee = $revisionKneeRepository->findBy([], [$orderBy => $orderDir], $entryCount, $offset);
$entryCountFiltered = $totaEntryCount;
}
else {
$revisionKnee = $revisionKneeRepository->findByString($searchString['value'], $offset, $entryCount);
$entryCountFiltered = $revisionKneeRepository->findByStringCount($searchString['value']);
}
$revision_data = [];
if (!empty($revisionKnee)){
$revision_data = $OpRegF->jsonRevisionDataUnit([], $revisionKnee);
$revision['recordsTotal'] = $totaEntryCount;
$revision['recordsFiltered'] = $entryCountFiltered;
$revision['draw'] = $request->query->get('draw');
$revision['data'] = $revision_data;
}
else{
$revision['recordsTotal'] = 0;
$revision['recordsFiltered'] = 0;
$revision['data'] = "";
}
return new JsonResponse($revision);
}
/**
* @Route("/admin/revisionHip/indexAjax", methods={"GET"})
*/
public function revisionHipAjax(RevisionHipRepository $revisionHipRepository, OperationRegistryFunctions $OpRegF, Request $request): Response
{
$offset = $request->query->get('start');
if ($offset == 0) {
$offset = null;
}
$entryCount = $request->query->get('length');
$searchString = $request->query->get('search');
$order = $request->query->get('order');
$orderBy = $order[0]['column'];
switch ($orderBy) {
case 7:
$orderBy = 'Date';
break;
case 4:
$orderBy = 'RevisionCause';
break;
case 8:
$orderBy = 'otherImplants';
break;
case 9:
$orderBy = 'comment';
break;
}
$orderDir = $order[0]['dir'];
$revisionHipCount = $revisionHipRepository->countAll();
$totaEntryCount = $revisionHipCount;
if ($searchString['value'] === ""){
$revisionHip = $revisionHipRepository->findBy([], [$orderBy => $orderDir], $entryCount, $offset);
$entryCountFiltered = $totaEntryCount;
}
else {
$revisionHip = $revisionHipRepository->findByString($searchString['value'], $offset, $entryCount);
$entryCountFiltered = $revisionHipRepository->findByStringCount($searchString['value']);
}
$revision_data = [];
if (!empty($revisionHip)){
$revision_data = $OpRegF->jsonRevisionDataUnit($revisionHip, []);
$revision['recordsTotal'] = $totaEntryCount;
$revision['recordsFiltered'] = $entryCountFiltered;
$revision['draw'] = $request->query->get('draw');
$revision['data'] = $revision_data;
}
else{
$revision['recordsTotal'] = 0;
$revision['recordsFiltered'] = 0;
$revision['data'] = "";
}
return new JsonResponse($revision);
}
/**
* @Route("/indexAjax/one", methods={"GET"})
*/
public function primaryAjaxOne(Request $request, PrimaryHipRepository $primaryHipRepository, PrimaryKneeRepository $primaryKneeRepository, RevisionHipRepository $revisionHipRepository, RevisionKneeRepository $revisionKneeRepository): Response
{
//dd($request->query);
$joint_id = $request->query->get('entryID');
$joint_joint = $request->query->get('joint');
$joint_joint2 = $request->query->get('joint2');
switch ([$joint_joint, $joint_joint2]) {
case ['Kelis', 'primaryKnee']:
case ['Kelis', 'primary']:
$joint = 'primaryKnee';
break;
case ['Kelis', 'revisionKnee']:
case ['Kelis', 'revision']:
$joint = 'revisionKnee';
break;
case ['Klubas', 'primaryHip']:
case ['Klubas', 'primary']:
$joint = 'primaryHip';
break;
case ['Klubas', 'revisionHip']:
case ['Klubas', 'revision']:
$joint = 'revisionHip';
break;
}
if ($joint == "primaryHip"){
$primaryJoint = $primaryHipRepository->findOneBy(["id" => $joint_id]);
$primary_data['Anamnesis'] = $primaryJoint->getAnamnesis();
$primary_data['Technique'] = $primaryJoint->getTechnique();
$primary_data['Incision'] = $primaryJoint->getIncision();
$primary_data['AdditionalInfo'] = $primaryJoint->getAdditionalInfo();
$primary_data['comment'] = $primaryJoint->getComment();
$primary_data['OtherImplants'] = $primaryJoint->getOtherImplants();
$implants = $primaryJoint->getImplants();
foreach ($implants as $implant){
$implant_unit['Ref'] = $implant->getRef();
$implant_unit['Type'] = $implant->getType();
$implant_unit['Name'] = $implant->getName();
$primary_data['Implants'][]=$implant_unit;
}
$primary = $primary_data;
return new JsonResponse($primary);
}
elseif ($joint == "primaryKnee"){
$primaryJoint = $primaryKneeRepository->findOneBy(["id" => $joint_id]);
$primary_data['Anamnesis'] = $primaryJoint->getAnamnesis();
$primary_data['Technique'] = $primaryJoint->getTechnique();
$primary_data['Incision'] = $primaryJoint->getIncision();
$primary_data['AdditionalInfo'] = $primaryJoint->getAdditionatInfo();
$primary_data['comment'] = $primaryJoint->getComment();
$primary_data['OtherImplants'] = $primaryJoint->getOtherImplants();
$primary_data['doctor'] = $primaryJoint->getDoctor()->getFirstName()." ".$primaryJoint->getDoctor()->getLastName()." iš ".$primaryJoint->getDoctor()->getHospital()->getHospitalName();
$implants = $primaryJoint->getImplants();
foreach ($implants as $implant){
$implant_unit['Ref'] = $implant->getRef();
$implant_unit['Type'] = $implant->getType();
$implant_unit['Name'] = $implant->getName();
$primary_data['Implants'][]=$implant_unit;
}
$primary = $primary_data;
return new JsonResponse($primary);
}
elseif ($joint == "revisionHip"){
$primaryJoint = $revisionHipRepository->findOneBy(["id" => $joint_id]);
$primary_data['RevisionType'] = $primaryJoint->getRevisionType();
$primary_data['Technique'] = $primaryJoint->getTechnique();
$primary_data['Incision'] = $primaryJoint->getIncision();
$primary_data['AdditionalInfo'] = $primaryJoint->getAdditionalInfo();
$primary_data['comment'] = $primaryJoint->getComment();
$primary_data['OtherImplants'] = $primaryJoint->getOtherImplants();
$primary_data['doctor'] = $primaryJoint->getDoctor()->getFirstName()." ".$primaryJoint->getDoctor()->getLastName()." iš ".$primaryJoint->getDoctor()->getHospital()->getHospitalName();
$implants = $primaryJoint->getImplants();
foreach ($implants as $implant){
$implant_unit['Ref'] = $implant->getRef();
$implant_unit['Type'] = $implant->getType();
$implant_unit['Name'] = $implant->getName();
$primary_data['Implants'][]=$implant_unit;
}
$primary = $primary_data;
return new JsonResponse($primary);
}
elseif ($joint == "revisionKnee"){
$primaryJoint = $revisionKneeRepository->findOneBy(["id" => $joint_id]);
$primary_data['RevisionType'] = $primaryJoint->getRevisionType();
$primary_data['Technique'] = $primaryJoint->getTechnique();
$primary_data['Incision'] = $primaryJoint->getIncision();
$primary_data['AdditionalInfo'] = $primaryJoint->getAdditionalInfo();
$primary_data['comment'] = $primaryJoint->getComment();
$primary_data['OtherImplants'] = $primaryJoint->getOtherImplants();
$primary_data['doctor'] = $primaryJoint->getDoctor()->getFirstName()." ".$primaryJoint->getDoctor()->getLastName()." iš ".$primaryJoint->getDoctor()->getHospital()->getHospitalName();
$implants = $primaryJoint->getImplants();
foreach ($implants as $implant){
$implant_unit['Ref'] = $implant->getRef();
$implant_unit['Type'] = $implant->getType();
$implant_unit['Name'] = $implant->getName();
$primary_data['Implants'][]=$implant_unit;
}
$primary = $primary_data;
return new JsonResponse($primary);
}
}
/**
* @Route("/ajax", name="app_homepage_ajax")
*/
public function patientResponse(Request $request, PatientRepository $patientRepository): Response
{
// This is optional.
// Only include it if the function is reserved for ajax calls only.
if (!$request->isXmlHttpRequest()) {
return new JsonResponse(array(
'status' => 'Error',
'exist' => 'Error'),
400);
}
if(isset($request->request))
{
// Get data from ajax
$patientidd = $request->request->get('inputVariabile');
// Check if a Patient with the given idtf already exists
$patient = $patientRepository->findOneBy(['identifier' => $patientidd]);
if ($patient === null)
{
// Patient does not exist
return new JsonResponse(array(
'status' => 'OK',
'exist' => 0),
200);
}
else
{
$arrayPatient = [];
$arrayPatient['id'] = $patient->getId();
// Patient exists
return new JsonResponse([
"status" => "OK",
"exist" => 1,
"patient" => $arrayPatient
],
200);
return $jsonResponse;
}
}
}
}