diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index 31720d4..4ccb451 100644
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -15,9 +15,12 @@ $routes->get('/tubes/uncollect/(:any)/(:any)', 'Tubes::uncollect/$1/$2');
$routes->get('/tubes/uncollectAll/(:any)', 'Tubes::uncollectAll/$1');
$routes->get('/tubes/unreceive/(:any)/(:any)', 'Tubes::unreceive/$1/$2');
$routes->get('/tubes/unreceiveAll/(:any)', 'Tubes::unreceiveAll/$1');
+$routes->post('/tubes/comment/(:any)/(:any)', 'Tubes::comment/$1/$2');
// Users
$routes->get('/users/', 'Users::index');
+$routes->match(['get','post'], '/users/editRole/(:any)', 'Users::editRole/$1');
+$routes->match(['get','post'], '/users/editPass/(:any)', 'Users::editPass/$1');
// DICT_TESTS
$routes->get('/dict_tests/', 'Dict_tests::index');
diff --git a/app/Controllers/Dashboard.php b/app/Controllers/Dashboard.php
index 393a7bc..fd04b1c 100644
--- a/app/Controllers/Dashboard.php
+++ b/app/Controllers/Dashboard.php
@@ -6,16 +6,48 @@ class Dashboard extends BaseController {
public function index(): string {
$db = \Config\Database::connect();
- $sql = "select sr.COLLECTIONDATE, sr.SP_ACCESSNUMBER, sr.HOSTORDERNUMBER, p.PATNUMBER, p.NAME,
- TESTS=stuff(( select ', '+'('+T.SP_TESTCODE+')' from
- ( select T.SP_TESTCODE from SP_TESTS T
- where T.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER
- and T.DEPTH=0 AND T.SP_TESTCODE <> 'Q'
- ) as T
- for xml path('')),1,1,'')
- from SP_REQUESTS sr
- left join PATIENTS p on p.PATID=sr.PATID
- where sr.COLLECTIONDATE between '2023-09-15 00:00' and '2023-09-16 23:59'";
+ $sql = "select top 50 sr.COLLECTIONDATE, sr.SP_ACCESSNUMBER, sr.HOSTORDERNUMBER, p.PATNUMBER, p.NAME,
+ TESTS=stuff(( select ', '+'('+T.SP_TESTCODE+')' from
+ ( select T.SP_TESTCODE from SP_TESTS T
+ where T.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER
+ and T.DEPTH=0 AND T.SP_TESTCODE <> 'Q'
+ ) as T
+ for xml path('')),1,1,''),
+case
+when exists (select 1 from AUDIT_TRAIL at where at.ATR_ACCESSNUMBER=sr.SP_ACCESSNUMBER and at.STEPTYPE=2 and at.LIS_SESSION='RFC' ) then
+ case
+ when exists (select 1 from SP_TUBES st where st.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER and st.TUBESTATUS=0 ) then 'PartRecv'
+ when exists (select 1 from TESTS T where T.REQUESTID=r.REQUESTID and (T.RESTYPE IN (null,'0') OR T.TESTID='1805') ) then 'Inc'
+ --when exists (select 1 from TESTS T where T.REQUESTID=r.REQUESTID and T.RESTYPE IN (null,'0') and T.TESTID='1805' ) then 'Inc'
+ else 'Comp'
+ end
+-- inc
+when exists (select 1 from TESTS T where T.RESTYPE not in (0,4) and T.REQUESTID=r.REQUESTID AND T.TESTID<>'1805') then
+ case
+ when exists ( select 1 from cmod.dbo.CM_TUBES T where T.ACCESSNUMBER=sr.SP_ACCESSNUMBER and T.COLLSTATUS=0 ) then 'PartColl'
+ when exists (select 1 from SP_TUBES st where st.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER and st.TUBESTATUS=0 ) then 'PartRecv'
+ else 'Inc'
+ end
+--rcv
+when not exists (select 1 from SP_TUBES st where st.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER and st.TUBESTATUS=0 ) then
+ case
+ when exists (select 1 from cmod.dbo.CM_TUBES T where T.ACCESSNUMBER=sr.SP_ACCESSNUMBER and T.COLLSTATUS=0 ) then 'PartColl'
+ else 'Recv'
+ end
+--coll
+when not exists (select 1 FROM cmod.dbo.CM_TUBES T where T.ACCESSNUMBER=sr.SP_ACCESSNUMBER and T.COLLSTATUS=0 ) then
+ case
+ when exists (select 1 from SP_TUBES st where st.SP_ACCESSNUMBER=sr.SP_ACCESSNUMBER and st.TUBESTATUS=4 ) then 'PartRecv'
+ else 'Coll'
+ end
+when exists ( select 1 from CMOD.dbo.CM_TUBES T where T.ACCESSNUMBER=sr.SP_ACCESSNUMBER and T.COLLSTATUS=1 ) then 'PartColl'
+else 'Pend'
+end STATS
+ from SP_REQUESTS sr
+ left join PATIENTS p on p.PATID=sr.PATID
+ left join REQUESTS r on r.ACCESSNUMBER=sr.SP_ACCESSNUMBER
+ where sr.COLLECTIONDATE between '2023-09-16 00:00' and '2023-09-17 23:59'
+ order by sr.COLLECTIONDATE desc";
$query = $db->query($sql);
$results = $query->getResultArray();
$data['data'] = $results;
diff --git a/app/Controllers/Tubes.php b/app/Controllers/Tubes.php
index 5a07335..2daf176 100644
--- a/app/Controllers/Tubes.php
+++ b/app/Controllers/Tubes.php
@@ -17,7 +17,7 @@ class Tubes extends BaseController {
public function uncollect($access, $sample) {
$db = \Config\Database::connect();
- $sql = "UPDATE cmod.dbo.CM_TUBES set COLLSTATUS=null where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'";
+ $sql = "UPDATE cmod.dbo.CM_TUBES set COLLSTATUS=0 where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'";
$query = $db->query($sql);
}
@@ -48,7 +48,7 @@ class Tubes extends BaseController {
public function uncollectAll($access) {
$db = \Config\Database::connect();
- $sql = "UPDATE cmod.dbo.CM_TUBES set COLLSTATUS=null where ACCESSNUMBER='$access'";
+ $sql = "UPDATE cmod.dbo.CM_TUBES set COLLSTATUS=0 where ACCESSNUMBER='$access'";
$query = $db->query($sql);
}
@@ -58,10 +58,19 @@ class Tubes extends BaseController {
$query = $db->query($sql);
}
-
- public function commentUpdate($access, $sample) {
+ public function comment($access, $sample) {
+ $userid = session()->userid;
+ $request = service('request');
+ $jsonData = $request->getJSON();
$db = \Config\Database::connect();
- $sql = "UPDATE cmod.dbo.CM_TUBES set TUBECOMMENT='$comment' where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'";
+ $comment = $jsonData->comment;
+ $sql = "if (not exists (select * from cmod.dbo.CM_TUBES where ACCESSNUMBER='$access' AND SAMPLETYPE='$sample')) BEGIN
+ INSERT INTO cmod.dbo.CM_TUBES(ACCESSNUMBER, SAMPLETYPE, COLL_USERID, TUBECOMMENT, CREATEDATE) VALUES
+ ('$access','$sample', '$userid', '$comment', GETDATE())
+ END ELSE BEGIN
+ UPDATE cmod.dbo.CM_TUBES set TUBECOMMENT='$comment' where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'
+ END";
+ echo "$sql";
$query = $db->query($sql);
}
}
diff --git a/app/Controllers/Users.php b/app/Controllers/Users.php
index 72beb10..bf60459 100644
--- a/app/Controllers/Users.php
+++ b/app/Controllers/Users.php
@@ -4,8 +4,66 @@ namespace App\Controllers;
class Users extends BaseController {
- public function index(): string {
-
+ public function __construct() {
+ $this->userrole = array(
+ "0" => "superuser",
+ "1" => "analyst",
+ "2" => "phlebotomist"
+ );
}
+ public function index(): string {
+ $db = \Config\Database::connect();
+ $sql = "select u.USERID, u.USERNAME, u1.USERROLEID from cmod.dbo.CM_USERS u1
+ full join USERS u on u.USERID=u1.USERID
+ where ( u.LOCKEDACCOUNT is null or u.LOCKEDACCOUNT=0 )";
+ $query = $db->query($sql);
+ $results = $query->getResultArray();
+
+ $data['users'] = $results;
+ return view('users_index', $data);
+ }
+
+ public function editRole($userid) {
+ if ($this->request->getMethod() == 'POST') {
+ $request = service('request');
+ $jsonData = $request->getJSON();
+ $userroleid = $jsonData->userroleid;
+ $db = \Config\Database::connect();
+ $sql = "if (not exists (select * from cmod.dbo.CM_USERS where USERID='$userid')) BEGIN
+ INSERT INTO cmod.dbo.CM_USERS(USERID, USERROLEID, CREATEDATE) VALUES
+ ('$userid','$userroleid', GETDATE())
+ END ELSE BEGIN
+ UPDATE cmod.dbo.CM_USERS set USERROLEID='$userroleid' where USERID='$userid'
+ END";
+ $query = $db->query($sql);
+ } else {
+ $db = \Config\Database::connect();
+ $sql = "select u.USERID, u.USERNAME, u1.USERROLEID from cmod.dbo.CM_USERS u1
+ full join USERS u on u.USERID=u1.USERID
+ where u.USERID='$userid'";
+ $query = $db->query($sql);
+ $results = $query->getResultArray();
+
+ $data['users'] = $results;
+ $data['userroles'] = $this->userrole;
+ return view('users_editRole', $data);
+ }
+ }
+
+ public function comment($access, $sample) {
+ $userid = session()->userid;
+ $request = service('request');
+ $jsonData = $request->getJSON();
+ $db = \Config\Database::connect();
+ $comment = $jsonData->comment;
+ $sql = "if (not exists (select * from cmod.dbo.CM_TUBES where ACCESSNUMBER='$access' AND SAMPLETYPE='$sample')) BEGIN
+ INSERT INTO cmod.dbo.CM_TUBES(ACCESSNUMBER, SAMPLETYPE, COLL_USERID, TUBECOMMENT, CREATEDATE) VALUES
+ ('$access','$sample', '$userid', '$comment', GETDATE())
+ END ELSE BEGIN
+ UPDATE cmod.dbo.CM_TUBES set TUBECOMMENT='$comment' where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'
+ END";
+ echo "$sql";
+ $query = $db->query($sql);
+ }
}
diff --git a/app/Views/auth_login.php b/app/Views/auth_login.php
index 80766c0..5aac255 100644
--- a/app/Views/auth_login.php
+++ b/app/Views/auth_login.php
@@ -69,6 +69,11 @@
+