/** * Automatic login user. * * @return boolean */ public function autologin() { $trib_info = $this->authenticate(); writeDebug('trib info:' . print_r($trib_info, true)); if ($trib_info === false) { return false; } set_to_session(LOGIN_USER, $trib_info, $trib_info['group_id']); return $trib_info; }
/** * 验证用户是否是该应用的使用者。 * * @param string $userId * @param string $appInstanceId * * @return boolean 如果该用户是应用的使用者,返回true,否则返回false。 */ public static function isAppUser($userId, $appInstanceId) { $sip_sessionid = session_id(); $result = RESTRequestHelper::postRequest('alisoft.validateAppUser', array('appInstanceId' => $appInstanceId, 'userId' => $userId), $sip_sessionid); writeDebug("validateAppUser of appInstance {$appInstanceId} result:" . $result); $ret_code = AlisoftValidateUserService::getReturnCode($result); if ($ret_code == 1) { return true; } return false; }
/** * 阿里平台SIP_SIGN签名参数生成函数。 * * @param array $params 用于URL传递的除sig_sign之外的所以参数的数组, * 键名是参数名,值为参数值。 * @return string */ public static function generateSign($params) { $signStr = CERT_CODE; ksort($params); foreach ($params as $key => $value) { $signStr .= $key . $value; } writeDebug('sign string:' . $signStr); $sip_sign = strtoupper(md5($signStr)); writeDebug("The generated sign is: " . $sip_sign); return $sip_sign; }
/** * 向阿里REST服务器发送调用请求。 * * @param string $apiname api名字 * @param string $appInstanceId 用户订购的appid * @param string $userId 用户id * @param string $token 阿里平台产生的请求token * @param string $sip_sessionid 用户的session id * @param string $sip_format 请求结果格式,xml或者json,默认xml。 * @param string $otherParams 其他附加的参数。 * @return string 请求结果字符串。 */ public static function postRequest($apiname, $appParams = null, $sip_sessionid = null, $sip_format = null) { //准备本次请求参数 $timestamp = getTimeStamp(); /* REST request url. Use snoopy to submit a request $url = $this->SIP_URL_PRE."?sip_timestamp=".date("Y-m-d H:i:s") .'&sip_appkey='.$this->APP_ID.'&appId='.$this->APP_ID.'&sip_sign='.$sip_sign. '&token='.$token.'&appInstanceId='.$appInstanceId .'&userId='.$userId.'&sip_apiname=alisoft.validateUser'.'&sip_sessionid='.$sip_sessionid; */ $formVars['sip_appkey'] = APP_ID; $formVars['sip_apiname'] = $apiname; $formVars['sip_timestamp'] = $timestamp; $formVars['appId'] = APP_ID; if (isset($sip_sessionid)) { $formVars['sip_sessionid'] = $sip_sessionid; } if (isset($sip_format)) { $formVars['sip_format'] = $sip_format; } if (isset($appParams) && is_array($appParams)) { $formVars = array_merge($formVars, $appParams); //writeDebug('form var before encode:' . print_r($formVars,true)); //$encodeParams = self::encodeParams($appParams); } // 生成签名 $sip_sign = SignGenerator::generateSign($formVars); $formVars['sip_sign'] = $sip_sign; //$formVars = array_merge($formVars,$encodeParams); writeDebug(sprintf("API: %s\nParams: %s", $apiname, print_r($formVars, true))); $proxy = new Snoopy(); //$proxy->set_submit_multipart(); //向AEP发出服务端请求 $proxy->submit(SIP_REST_URI, $formVars); WriteDebug("http header:" . print_r($proxy->headers, true)); self::handleError($proxy->headers); // 返回请求结果 return $proxy->results; }
<?php require 'loader.php'; use Ephp\Message; use Ephp\SocketIOClient; $client = new SocketIOClient('http://localhost:8080'); $client->connect(); $client->emit('subscribe', ['room' => 'test']); $received = 0; try { $client->listen(function ($event, Message $message = null) use(&$received) { if ($message !== null) { $args = json_decode(current($message->getArgs())); $message = sprintf('packet: %d, time: %f, heartbeats: %d', $args->packet, $args->time, $args->heartbeats); writeDebug($message); } }); } catch (\RuntimeException $e) { echo $e->getMessage(); }
/** * 验证群用户 * * @param string $userId * @param string $appInstanceId * @param string $toke * @return array 包含tribId和返回值的数组 *<table> * <tr><td>返回值</td><td>返回值描述 </td><td>返回值说明</td></tr> * <tr><td>3 </td><td>用户是群主 </td><td>群主也是该应用的订购者</td></tr> * <tr><td>2 </td><td>用户是群的管理员 </td><td>管理员是针对该群的,但不是该应用的订购者</td></tr> * <tr><td>1 </td><td>用户是群的有效成员 </td><td>有效的群成员,不包括游客,不是该应用的订购者</td></tr> * <tr><td>0 </td><td>用户是群游客 </td><td>临时的群成员,不是该应用的订购者</td></tr> * <tr><td>-1 </td><td>用户不是群内有效成员 </td><td>不是有效的群成员,包括游客</td></tr> * <tr><td>-2 </td><td>订购无效 </td><td>订购已过期、或者未订购</td></tr> * <tr><td>-3 </td><td>token无效 </td><td>token被篡改、或者已过期</td></tr> * <tr><td>-9 </td><td>系统异常</td><td></td></tr> * </table> */ public static function validateUser($userId, $appInstanceId, $token) { $sip_sessionid = session_id(); // 发送REST请求 $result = RESTRequestHelper::postRequest('alisoft.validateTribeUser', array('appInstanceId' => $appInstanceId, 'userId' => $userId, 'token' => $token), $sip_sessionid); //$result = json_decode($result,true); //writeDebug('request result: ' . print_r($result,true)); //return $result; writeDebug('request result: ' . $result); $xml = new SimpleXMLElement($result); $trib_id = $xml->tribeId; $result_code = $xml->result; return array('tribeId' => (string) $trib_id, 'result' => (string) $result_code); }
function NewOrderPatient($drug, $dose, $Regimen_Dose_Unit, $Description, $match, $NumberofDoses) { if ($Description === 'old') { } else { $orderday = date('m_d_Y'); //Set Variables $host = $_SESSION['vista']; $username = $_SESSION['sshusr']; $AC = $_SESSION['AC']; $VC = $_SESSION['VC']; $password = ''; $csession = 'csession cache355'; $cdUnix = 'D ^%CD'; $instance = 'CPM355'; $cprsLogin = '******'; $tmatch = trim($match); $patientSearch = $tmatch; $patientLocation = 'GEN MED'; $actingProvider = 'v107'; $doseorder = "" . $dose . " " . $Regimen_Dose_Unit . ""; $schedule = 'QDAY'; $routine = 'ROUTINE'; $tdrug = trim($drug); $ssh = new Net_SSH2($host); if (!$ssh->login($username, $password)) { exit('Login Failed'); } $ssh->write("\r"); sleep(3); sleep(3); $ssh->write("\r"); $ssh->write("{$AC}\r"); $ssh->write("{$VC}\r"); sleep(3); $ssh->write("\r"); $ssh->write("OE\r"); $ssh->write("FD\r"); $ssh->write("{$patientSearch}\r"); sleep(1); $ssh->write("AD\r"); sleep(1); $ssh->write("\r"); sleep(1); $ssh->write("{$patientLocation}\r"); if ($Description === 'InPatient') { $ssh->write("15\r"); } elseif ($Description === 'OutPatient') { $ssh->write("20\r"); } $ssh->write("Provider, One\r"); $ssh->write("1\r"); sleep(1); sleep(1); if ($tdrug === '5-FU FLUOROURACIL INJ,SOLN') { $ssh->write("5"); $ssh->write("\r"); sleep(1); $ssh->write("1"); $ssh->write("\r"); sleep(1); } elseif ($tdrug === '5-FLUOROURACIL FLUOROURACIL INJ,SOLN') { $ssh->write("5"); $ssh->write("\r"); sleep(1); $ssh->write("1"); $ssh->write("\r"); sleep(1); } elseif ($tdrug === 'RANITIDINE TAB') { $ssh->write("RANITIDINE TAB "); /* Block below vvvvvvvvvvvvvvvvvv changed to match Sandbox - 30 May 2014 */ $ssh->write("\r"); sleep(1); $ssh->write("1"); $ssh->write("\r"); sleep(1); } elseif ($tdrug === 'DEXAMETHASONE TAB') { $ssh->write("DEXAMETHASONE TAB"); $ssh->write("\r"); sleep(1); $ssh->write("n"); $ssh->write("\r"); sleep(1); $ssh->write("{$doseorder} MG"); $ssh->write("\r"); sleep(1); $ssh->write("1"); $ssh->write("\r"); sleep(1); } elseif ($tdrug === 'PROCHLORPERAZINE TAB') { $ssh->write("PROCHLORPERAZINE TAB"); $ssh->write("\r"); sleep(1); $ssh->write("n"); $ssh->write("\r"); sleep(1); $ssh->write("{$doseorder} MG"); /* Block above ^^^^^^^^^^^^^^^^^^^^^^^ changed to match Sandbox - 30 May 2014 */ $ssh->write("\r"); sleep(1); $ssh->write("1"); $ssh->write("\r"); sleep(1); } else { $ssh->write("{$tdrug}"); $ssh->write("\r"); sleep(1); } $ssh->write("n"); $ssh->write("\r"); sleep(1); $ssh->write("{$doseorder}"); $ssh->write("\r"); sleep(1); $ssh->write("1"); $ssh->write("\r"); sleep(1); $ssh->write("{$schedule}"); $ssh->write("\r"); sleep(1); if ($Description === 'InPatient') { $ssh->write("1"); $ssh->write("\r"); sleep(1); $ssh->write("N"); $ssh->write("\r"); sleep(1); $ssh->write("{$routine}"); $ssh->write("\r"); sleep(1); $ssh->write("\r"); sleep(5); $ssh->write("P"); $ssh->write("\r"); } else { $ssh->write("1"); $ssh->write("\r"); sleep(1); $ssh->write("{$NumberofDoses}"); $ssh->write("\r"); sleep(1); $ssh->write("{$NumberofDoses}"); $ssh->write("\r"); sleep(1); $ssh->write("0"); $ssh->write("\r"); sleep(1); $ssh->write("C"); $ssh->write("\r"); sleep(1); $ssh->write("{$routine}"); $ssh->write("\r"); sleep(1); $ssh->write("\r"); sleep(1); $ssh->write("P"); $ssh->write("\r"); } //Set SSH Timeout $ssh->setTimeout(1); //Read Results $SSHresults = $ssh->read(); writeDebug($SSHresults, $tdrug, $patientSearch, $orderday); } }
function NewOrderPatient($drug, $dose, $Regimen_Dose_Unit, $Description, $match, $NumberofDoses) { if ($Description === 'old') { } else { $orderday = date('m_d_Y'); //Set Variables $host = '54.83.44.110'; $username = '******'; $password = ''; $login = '******'; $loginpass = '******'; $csession = 'csession cache355'; $cdUnix = 'D ^%CD'; $instance = 'CPM355'; $cprsLogin = '******'; $tmatch = trim($match); $patientSearch = $tmatch; $patientLocation = 'GEN MED'; $actingProvider = 'v107'; $doseorder = "" . $dose . " " . $Regimen_Dose_Unit . ""; $schedule = 'QDAY'; $routine = 'ROUTINE'; $drug = '5-FU FLUOROURACIL INJ,SOLN'; $tdrug = trim($drug); $AC = '1radiologist'; $VC = 'radiologist1'; $Description = 'OutPatient'; $ssh = new Net_SSH2($host); if (!$ssh->login($username, $password)) { exit('Login Failed'); } $ssh->write("{$login}\r"); $ssh->write("{$loginpass}\r"); sleep(3); $ssh->write("{$AC}\r"); $ssh->write("{$VC}\r"); sleep(3); $ssh->write("\r"); $ssh->write("AD\r"); $ssh->write("FD\r"); $ssh->write("{$patientSearch}\r"); sleep(1); $ssh->write("{$patientLocation}\r"); if ($Description === 'InPatient') { $ssh->write("15\r"); } elseif ($Description === 'OutPatient') { $ssh->write("20\r"); } $ssh->write("Provider, One\r"); $ssh->write("1\r"); sleep(1); sleep(1); $ssh->write("{$tdrug}"); $ssh->write("\r"); sleep(1); $ssh->write("n"); $ssh->write("\r"); sleep(1); $ssh->write("{$doseorder}"); $ssh->write("\r"); sleep(1); $ssh->write("1"); $ssh->write("\r"); sleep(1); $ssh->write("{$schedule}"); $ssh->write("\r"); sleep(1); if ($Description === 'InPatient') { $ssh->write("1"); $ssh->write("\r"); sleep(1); $ssh->write("N"); $ssh->write("\r"); sleep(1); $ssh->write("{$routine}"); $ssh->write("\r"); sleep(1); $ssh->write("\r"); sleep(1); $ssh->write("P"); $ssh->write("\r"); } else { $ssh->write("1"); $ssh->write("\r"); sleep(1); $ssh->write("{$NumberofDoses}"); $ssh->write("\r"); sleep(1); $ssh->write("{$NumberofDoses}"); $ssh->write("\r"); sleep(1); $ssh->write("0"); $ssh->write("\r"); sleep(1); $ssh->write("C"); $ssh->write("\r"); sleep(1); $ssh->write("{$routine}"); $ssh->write("\r"); sleep(1); $ssh->write("\r"); sleep(1); $ssh->write("P"); $ssh->write("\r"); } //Set SSH Timeout $ssh->setTimeout(1); //Read Results $SSHresults = $ssh->read(); echo $SSHresults; writeDebug($SSHresults, $tdrug, $patientSearch, $orderday); } }
function getTokens($dataText) { global $dataDelimiter; global $allBeginDelimiters; $beginDelimiterCount = count($allBeginDelimiters); $dataTextLength = strlen($dataText); $noDelimiter = false; $prevStartPos = 0; $tokenCount = 0; for ($idx = 0; $idx < $dataTextLength; $idx++) { /* Obtain the index of the beginning of the first delimiter in $dataText */ if ((!IsSet($firstBeginDelimiterPos) || ($idx > $firstBeginDelimiterPos)) && ($noDelimiter == false)) { for ($curDelimiterIdx = 0; $curDelimiterIdx < $beginDelimiterCount; $curDelimiterIdx++) { $curDelimiterPos = strpos($dataText, $allBeginDelimiters[$curDelimiterIdx]); if ($curDelimiterPos === false) { continue; } $noDelimiter = false; if (IsSet($prevDelimiterPos)) { if ($prevDelimiterPos > $curDelimiterPos) { $prevDelimiterPos = $curDelimiterPos; $firstBeginDelimiter = $allBeginDelimiters[$curDelimiterIdx]; $firstBeginDelimiterPos = $prevDelimiterPos; $firstBeginDelimiterIdx = $curDelimiterIdx; } } else { $prevDelimiterPos = $curDelimiterPos; } } } if ($idx == $firstBeginDelimiterPos) { $endDelimiter = $allEndDelimiters[$firstBeginDelimiterIdx]; $endDelimiterPos = strpos($dataText, $endDelimiter, $idx); if ($endDelimiterPos === false) { die('Packed string is corrupt: No end delimiter found for a begin delimiter'); } $tokenTextLength = $endDelimiterPos + strlen($endDelimiter) - $beginDelimiterPos; $tokenText = substr($dataText, $firstBeginDelimiterPos, $tokenTextLength); $tokens[$tokenCount] = $tokenText; $tokenCount++; $idx = $endDelimiterPos + strlen($endDelimiter); $prevStartPos = $idx; } if ($dataText[$idx] == $dataDelimiter) { $currentEndPos = $idx - 1; $prevStartPos = $idx + 1; $tokenTextLength = $prevStartPos - $currentEndPos; $tokenText = substr($dataText, $prevStartPos, $tokenTextLength); $tokens[$tokenCount] = $tokenText; $tokenCount++; } } if (IsSet($tokens)) { $tokenCount = count($tokens); for ($idx = 0; $idx < $tokenCount; $idx++) { writeDebug("Token $idx:", $tokens[$tokenCount]); } } }
</head> <body> <?php if (isLoggedIn() && $bRegLogin) { ?> <a href="/?logout=true" class="logout">Logout <?php echo $_SESSION['user']; ?> </a><?php } ?> <?php writeAlerts(); ?> <?php writeContent(); ?> <?php writeDebug(); ?> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <script>window.jQuery || document.write('<script src="/js/jquery-1.6.2.min.js"><\/script>')</script> <script src="/js/common.js"></script> </body> </html>