58 lines
2.7 KiB
PHP
58 lines
2.7 KiB
PHP
<?php
|
|
namespace App\Controllers;
|
|
|
|
class Specimen extends BaseController {
|
|
public function show($access) {
|
|
$db = \Config\Database::connect();
|
|
|
|
$sql = "SELECT right(p.PATNUMBER,16) as [Rm], ISNULL(p.FIRSTNAME,'') + ' ' + ISNULL(p.NAME,'') as [Name],
|
|
case when format(p.BIRTHDATE,'MMdd')=format(spr.COLLECTIONDATE,'MMdd') then DATEDIFF(YEAR,p.BIRTHDATE, spr.COLLECTIONDATE)
|
|
else FLOOR(DATEDIFF(DAY, p.BIRTHDATE, spr.COLLECTIONDATE) / 365.25) end ,
|
|
[Gender] = case
|
|
when p.SEX = 1 then 'Male'
|
|
when p.SEX = 2 then 'Female'
|
|
else ''
|
|
end, spr.REQDATE, spo.COMMENTTEXT, dmg.DMG_CKTPNO, dmg.DMG_CPLACEOFBIRTH
|
|
from SP_REQUESTS spr
|
|
left join PATIENTS p on p.PATID=spr.PATID
|
|
left join SP_REQUESTS_OCOM spo on spr.SP_ACCESSNUMBER=spo.SP_ACCESSNUMBER
|
|
left join GDC_CMOD.dbo.TDL_DEMOGRAPHIC dmg on right(dmg.DMG_CPATNUMBER,15)=right(p.PATNUMBER,15)
|
|
where spr.PATID=p.PATID and spr.SP_ACCESSNUMBER='$access'";
|
|
$query = $db->query($sql);
|
|
$results = $query->getRowArray();
|
|
$patientIdentity = [
|
|
'rm' => $results["Rm"],
|
|
'age' => $results[""], // key kosong
|
|
'name' => $results['Name'] ?? '',
|
|
'reqdate' => $results['REQDATE'] ?? '',
|
|
'gender' => $results['Gender'] ?? '',
|
|
'placeofbirth' => $results['DMG_CPLACEOFBIRTH'] ?? '',
|
|
'ktp' => $results['DMG_CKTPNO'] ?? '',
|
|
'comment' => $results['COMMENTTEXT'] ?? '',
|
|
];
|
|
|
|
$samples = [];
|
|
$sql = "SELECT req.SAMPTYPEID, req.SAMPCODE, req.SHORTTEXT, tu.STATUS, st.TUBESTATUS
|
|
from GDC_CMOD.dbo.v_sp_reqtube req
|
|
left join GDC_CMOD.dbo.TUBES tu on req.SP_ACCESSNUMBER=tu.ACCESSNUMBER and req.SAMPCODE=tu.TUBENUMBER
|
|
left join glendb.dbo.SP_TUBES st on st.SP_ACCESSNUMBER=req.SP_ACCESSNUMBER and req.SAMPCODE=st.SAMPLETYPE
|
|
where req.SP_ACCESSNUMBER='$access'";
|
|
$query = $db->query($sql);
|
|
$results = $query->getResultArray();
|
|
foreach ($results as $row) {
|
|
$samples[] = [
|
|
'samptypeid' => $row['SAMPTYPEID'] ?? null,
|
|
'sampcode' => $row['SAMPCODE'] ?? null,
|
|
'name' => $row['SHORTTEXT'] ?? '',
|
|
'colstatus' => $row['STATUS'] ?? '',
|
|
'tubestatus' => $row['TUBESTATUS'] ?? '',
|
|
];
|
|
}
|
|
|
|
$data = ['patientIdentity' => $patientIdentity, 'samples' => $samples, 'accessnumber' => $access];
|
|
|
|
return $this->response->setJSON($data);
|
|
}
|
|
|
|
}
|