private function getLabRequestChildrenRecursive($labNo, $externalLabRequestTree) { $extLabRequests = ExternalDump::where('parent_lab_no', '=', $labNo)->get(); if (count($extLabRequests) > 1) { foreach ($extLabRequests as $extLabRequest) { $externalLabRequestTree->push($extLabRequest); $this->getLabRequestChildrenRecursive($extLabRequest->lab_no, $externalLabRequestTree); } } return $externalLabRequestTree; }
/** * Function to send Json request using Curl **/ private function sendRequest($httpCurl, $jsonResponse, $labNo) { $jsonResponse = "labResult=" . $jsonResponse; //Foreach result in the array of results send to sanitas-url in config curl_setopt($httpCurl, CURLOPT_POSTFIELDS, $jsonResponse); $response = curl_exec($httpCurl); //"Test updated" is the actual response //TODO: Replace true with actual expected response this is just for testing if ($response == "Test updated") { //Set status in external lab-request to `sent` $updatedExternalRequest = ExternalDump::where('lab_no', '=', $labNo)->first(); $updatedExternalRequest->result_returned = 1; $updatedExternalRequest->save(); } else { //Set status in external lab-request to `sent` $updatedExternalRequest = ExternalDump::where('lab_no', '=', $labNo)->first(); $updatedExternalRequest->result_returned = 2; $updatedExternalRequest->save(); Log::error("HTTP Error: SanitasInterfacer failed to send {$jsonResponse} : Error message " + curl_error($httpCurl)); } }
public function send($testId) { //Sends results or any other flag back to where they came from $connection = $this->connectToMedboss(); $test = Test::find($testId); $externalId = $test->external_id; $externalDump = ExternalDump::where('lab_no', '=', $externalId); if (!$externalDump->first()) { //Can't be sent to the external system return false; } $userId = Auth::user()->id; $resultsEntered = date_create($test->time_entered); $dateResultEntered = date_format($resultsEntered, 'Y-m-d'); $timeResultEntered = date_format($resultsEntered, 'h:i:s'); $results = getFormattedResults($testId); $lab_request_no = intval($lab_request_no); if ($externalDump->first()->result_returned == 1) { $query = mssql_query("UPDATE BlissLabResults SET TestResults = '{$result_ent}' WHERE RequestID = '{$externalId}' "); } else { $query = mssql_query("INSERT INTO BlissLabResults (RequestID,OfferedBy,DateOffered, TimeOffered, TestResults)\n VALUES ('{$externalId}','{$userId}','{$dateResultEntered}','{$timeResultEntered}','{$result_ent}') "); } if ($query) { //Set status in external lab-request to `sent` $updatedExternalRequest = ExternalDump::where('lab_no', '=', $externalId)->first(); $updatedExternalRequest->result_returned = 1; $updatedExternalRequest->save(); } else { //Set status in external lab-request to `sent` $updatedExternalRequest = ExternalDump::where('lab_no', '=', $externalId)->first(); $updatedExternalRequest->result_returned = 2; $updatedExternalRequest->save(); Log::error("MSSQL Query Error => " . mssql_get_last_message()); } mssql_close($link); }
/** * External dump relationship */ public function external() { return ExternalDump::where('lab_no', '=', $this->external_id)->get()->first(); }
public function testMultipleVisitTypes() { Interfacer::retrieve($this->labRequestJsonSimpleTestTwoVisits[0]); Interfacer::retrieve($this->labRequestJsonSimpleTestTwoVisits[1]); Interfacer::retrieve($this->labRequestJsonSimpleTestTwoVisits[2]); Interfacer::retrieve($this->labRequestJsonSimpleTestTwoVisits[3]); Interfacer::retrieve($this->labRequestJsonSimpleTestTwoVisits[4]); $externalDump = ExternalDump::where('lab_no', '=', $this->labRequestJsonSimpleTestTwoVisits[0]->labNo)->get(); $this->assertTrue(count($externalDump) == 1); $this->assertEquals($this->labRequestJsonSimpleTestTwoVisits[0]->patientVisitNumber, $externalDump->first()->patient_visit_number); $externalDump = ExternalDump::where('lab_no', '=', $this->labRequestJsonSimpleTestTwoVisits[1]->labNo)->get(); $this->assertTrue(count($externalDump) == 1); $this->assertEquals($this->labRequestJsonSimpleTestTwoVisits[1]->patientVisitNumber, $externalDump->first()->patient_visit_number); $externalDump = ExternalDump::where('lab_no', '=', $this->labRequestJsonSimpleTestTwoVisits[2]->labNo)->get(); $this->assertTrue(count($externalDump) == 1); $this->assertEquals($this->labRequestJsonSimpleTestTwoVisits[2]->patientVisitNumber, $externalDump->first()->patient_visit_number); $externalDump = ExternalDump::where('lab_no', '=', $this->labRequestJsonSimpleTestTwoVisits[3]->labNo)->get(); $this->assertTrue(count($externalDump) == 1); $this->assertEquals($this->labRequestJsonSimpleTestTwoVisits[3]->patientVisitNumber, $externalDump->first()->patient_visit_number); $externalDump = ExternalDump::where('lab_no', '=', $this->labRequestJsonSimpleTestTwoVisits[4]->labNo)->get(); $this->assertTrue(count($externalDump) == 1); $this->assertEquals($this->labRequestJsonSimpleTestTwoVisits[4]->patientVisitNumber, $externalDump->first()->patient_visit_number); // Is there a Visit for this new patient? $visit = Visit::where('visit_number', '=', $this->labRequestJsonSimpleTestTwoVisits[0]->patientVisitNumber)->get(); //var_dump($visit); //Two records inserted for same external visit $this->assertEquals(2, count($visit)); //First is IP $this->assertEquals('Out-patient', $visit->first()->visit_type); //Second is OP $this->assertEquals('In-patient', $visit[1]->visit_type); //Two distinct internal visit id's $this->assertTrue($visit->first()->id != $visit[1]->id); //Check visit number is the same $this->assertEquals($visit->first()->visit_number, $visit[1]->visit_number); }