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 @@ + \ No newline at end of file diff --git a/app/Views/dashboard_viewAccess.php b/app/Views/dashboard_viewAccess.php index 0341d56..e1046d8 100644 --- a/app/Views/dashboard_viewAccess.php +++ b/app/Views/dashboard_viewAccess.php @@ -152,17 +152,15 @@ function unreceiveAll(access) { function comment(sample, access, sampletext, comments) { const url = 'tubes/comment/'+access+'/'+sample; let comment = prompt('Comment for sample '+sampletext, comments); - if(comment != null) { + if(comment) { $('#comment'+sample).html(comment +"'); fetch(url, { method: "POST", - body: JSON.stringify({ - comment : comment - }), + body: JSON.stringify({ comment : comment }), headers: { "Content-type": "application/json; charset=UTF-8" } }) - .then( response => response.json() ) - .then( json => console.log(json) ); + .then(data => console.log(data)) + .catch(error => { console.error('Error:',error); }); } } diff --git a/app/Views/layouts/sidebar.php b/app/Views/layouts/sidebar.php index 9c02907..b244bbe 100644 --- a/app/Views/layouts/sidebar.php +++ b/app/Views/layouts/sidebar.php @@ -3,8 +3,8 @@