592 lines
29 KiB
PHP
592 lines
29 KiB
PHP
<?php
|
|
class Observ extends MY_Controller
|
|
{
|
|
var $db_onedev;
|
|
public function index()
|
|
{
|
|
echo "Observ API";
|
|
}
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->db_onedev = $this->load->database("onedev", true);
|
|
$this->load->library('Satusehat');
|
|
}
|
|
|
|
|
|
function getdata()
|
|
{
|
|
$prm = $this->sys_input;
|
|
$orderHeaderID = $prm['orderheaderID'];
|
|
$results = array();
|
|
$sql = "SELECT *
|
|
FROM one_health.organization
|
|
JOIN m_branch ON organizationM_BranchID = M_BranchID AND M_BranchIsDefault = 'Y' AND M_BranchIsActive = 'Y'
|
|
WHERE
|
|
organizationIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql);
|
|
if (!$query) {
|
|
//echo $this->db_onedev->last_query();
|
|
$this->sys_error("error get m_branch");
|
|
exit;
|
|
}
|
|
//echo $this->db_onedev->last_query();
|
|
|
|
$r_organization = $query->row_array();
|
|
$organizationID = $r_organization['organizationID'];
|
|
|
|
$sql = "SELECT IFNULL(OHPatientMapIHSNumber, 'Belum terdaftar') as patient_ihsnumber,
|
|
EncounterUUID as encounter_uuid,
|
|
IFNULL(OHDoctorMapIHSNumber,'') as doctor_ihsnumber,
|
|
fn_global_age_count_day(M_PatientDOB, date(T_OrderHeaderDate)) age_in_day,
|
|
M_PatientM_SexID as sex_id
|
|
FROM t_orderheader
|
|
JOIN m_patient ON T_OrderHeaderM_PatientID = M_PatientID
|
|
JOIN one_health.encounter ON EncounterT_orderHeaderID = T_orderHeaderID AND EncounterIsActive = 'Y'
|
|
LEFT JOIN one_health.oh_doctor_map ON OHDoctorMapM_DoctorID = T_OrderHeaderPjM_DoctorID AND OHDoctorMapIsActive = 'Y'
|
|
LEFT JOIN one_health.oh_patient_map ON OHPatientMapM_PatientID = T_OrderHeaderM_PatientID AND OHPatientMapIsActive = 'Y'
|
|
WHERE
|
|
T_OrderHeaderID = ?";
|
|
$query = $this->db_onedev->query($sql, array($orderHeaderID));
|
|
if (!$query) {
|
|
//echo $this->db_onedev->last_query();
|
|
$this->sys_error("error get t_orderheader");
|
|
exit;
|
|
}
|
|
//echo $this->db_onedev->last_query();
|
|
|
|
|
|
$r_order = $query->row_array();
|
|
|
|
$sql = "SELECT t_orderdetail.*, Group_ResultID, Group_ResultName,
|
|
IFNULL(Nat_TestLoincCode,'') as code_loinc,
|
|
IFNULL(Nat_TestLoincDisplay,'') as display_loinc,
|
|
Nat_TestIsQuantitative as isQuantitatif,
|
|
Nat_TestFlagObservationType as observationType,
|
|
Nat_TestID,
|
|
T_OrderDetailAddOnNormalFlag as code_interpretation,
|
|
IF(T_OrderDetailAddOnNormalFlag = 'N','Normal',IF(T_OrderDetailAddOnNormalFlag = 'L','Low','High')) as display_interpretation
|
|
FROM t_orderdetail
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestID
|
|
JOIN t_orderdetailaddon ON T_OrderDetailAddOnT_OrderDetailID = T_OrderDetailID
|
|
JOIN nat_test ON T_TestNat_TestID = Nat_TestID AND Nat_TestIsActive = 'Y'
|
|
JOIN group_resultdetail ON Group_ResultDetailT_TestID = T_TestID AND Group_ResultDetailIsActive = 'Y'
|
|
JOIN group_result ON Group_ResultDetailGroup_ResultID = Group_ResultID AND Group_ResultFlagNonLab = 'N'
|
|
LEFT JOIN nat_test_loinc ON Nat_TestLoincNat_TestID = T_TestNat_TestID
|
|
WHERE
|
|
T_OrderDetailT_OrderHeaderID = ? AND
|
|
T_OrderDetailIsActive = 'Y' AND
|
|
T_OrderDetailT_TestIsResult = 'Y'
|
|
ORDER BY T_OrderDetailT_TestSasCode ASC";
|
|
$query = $this->db_onedev->query($sql, array($orderHeaderID));
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error("error get t_orderdetail");
|
|
exit;
|
|
}
|
|
//echo $this->db_onedev->last_query();
|
|
|
|
|
|
$r_details = $query->result_array();
|
|
//print_r($r_details);
|
|
if ($r_details) {
|
|
$data_results = [];
|
|
foreach ($r_details as $key => $value) {
|
|
//echo $value['isQuantitatif'];
|
|
$sql = "SELECT *
|
|
FROM one_health.observation
|
|
WHERE
|
|
observationT_OrderHeaderID = ? AND
|
|
observationT_TestID = ? AND
|
|
observationIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql, array($orderHeaderID, $value['T_OrderDetailT_TestID']));
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error("error get service_request exist");
|
|
exit;
|
|
}
|
|
//echo $this->db_onedev->last_query().";";
|
|
|
|
$exist_data = $query->result_array();
|
|
|
|
if (count($exist_data) == 0) {
|
|
$observation_uuid = $this->satusehat->gen_uuid();
|
|
$data_result = [];
|
|
$result["fullUrl"] = "urn:uuid:" . $observation_uuid;
|
|
$data_result['resourceType'] = "Observation";
|
|
$data_result['identifier'] = array(
|
|
array(
|
|
"system" => "http://sys-ids.kemkes.go.id/observation/" . $organizationID,
|
|
"value" => $value['T_OrderDetailID']
|
|
)
|
|
);
|
|
$data_result['status'] = "final";
|
|
$data_result['category'] = array(
|
|
array(
|
|
"coding" => array(
|
|
array(
|
|
"system" => "http://terminology.hl7.org/CodeSystem/observation-category",
|
|
"code" => "laboratory",
|
|
"display" => "Laboratory"
|
|
)
|
|
)
|
|
)
|
|
);
|
|
|
|
$data_result['code'] = array(
|
|
"coding" => array(
|
|
array(
|
|
"system" => "http://loinc.org",
|
|
"code" => $value['code_loinc'],
|
|
"display" => $value['display_loinc']
|
|
)
|
|
)
|
|
);
|
|
$data_result['subject'] = array(
|
|
"reference" => "Patient/" . $r_order['patient_ihsnumber']
|
|
);
|
|
$data_result['encounter'] = array(
|
|
'reference' => "Encounter/" . $r_order['encounter_uuid']
|
|
);
|
|
|
|
$data_result['effectiveDateTime'] = date('c', strtotime($value['T_OrderDetailVerDate']));
|
|
$data_result['issued'] = date('c', strtotime($value['T_OrderDetailValDate']));
|
|
$data_result['performer'] = array(
|
|
array(
|
|
'reference' => "Practitioner/" . $r_order['doctor_ihsnumber']
|
|
),
|
|
array(
|
|
'reference' => "Organization/" . $organizationID
|
|
)
|
|
);
|
|
|
|
$sql = "SELECT SpecimenUUID
|
|
FROM t_ordersample
|
|
JOIN t_test ON T_OrderSampleT_SampleTypeID = T_TestT_SampleTypeID AND
|
|
T_TestID = ?
|
|
JOIN one_health.specimen ON SpecimentT_OrderSampleID = T_OrderSampleID AND
|
|
SpecimenIsActive = 'Y'
|
|
WHERE
|
|
T_OrderSampleT_OrderHeaderID = ? AND
|
|
T_OrderSampleIsActive = 'Y'
|
|
GROUP BY T_TestT_SampleTypeID
|
|
LIMIT 1";
|
|
$query = $this->db_onedev->query($sql, array($value['T_OrderDetailT_TestID'], $value['T_OrderDetailT_OrderHeaderID']));
|
|
if (!$query) {
|
|
//echo $this->db_onedev->last_query();
|
|
$this->sys_error("error get spescimen");
|
|
exit;
|
|
}
|
|
|
|
$r_specimen = $query->row_array();
|
|
|
|
$data_result['specimen'] = array(
|
|
'reference' => "Specimen/" . $r_specimen['SpecimenUUID']
|
|
);
|
|
|
|
$serviceRequestUUID = "";
|
|
$data_parent = [];
|
|
if ($value['T_OrderDetailT_TestIsPrice'] == "Y") {
|
|
$sql = "SELECT ServiceRequestUUID,
|
|
T_OrderDetailID,
|
|
IFNULL(Nat_TestLoincCode,'') as code_loinc,
|
|
IFNULL(Nat_TestLoincDisplay,T_OrderDetailT_TestName) as T_OrderDetailT_TestName
|
|
FROM one_health.service_request
|
|
JOIN t_orderdetail ON ServiceRequestT_OrderDetailID = T_OrderDetailID AND
|
|
ServiceRequestIsActive = 'Y'
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestID
|
|
LEFT JOIN nat_test_loinc ON Nat_TestLoincNat_TestID = T_TestNat_TestID
|
|
WHERE
|
|
ServiceRequestT_OrderDetailID = ?
|
|
LIMIT 1";
|
|
$query_service_req = $this->db_onedev->query($sql, array($value['T_OrderDetailID']));
|
|
if (!$query_service_req) {
|
|
//echo $this->db_onedev->last_query();
|
|
$this->sys_error("error get service_request 1");
|
|
exit;
|
|
}
|
|
|
|
$data_parent = $query_service_req->row_array();
|
|
$serviceRequestUUID = $data_parent['ServiceRequestUUID'];
|
|
} else {
|
|
$sql = "SELECT ServiceRequestUUID,
|
|
T_OrderDetailID,
|
|
IFNULL(Nat_TestLoincCode,'') as code_loinc,
|
|
IFNULL(Nat_TestLoincDisplay,T_OrderDetailT_TestName) as T_OrderDetailT_TestName
|
|
FROM t_orderdetail
|
|
JOIN one_health.service_request ON ServiceRequestT_OrderDetailID = T_OrderDetailID AND
|
|
ServiceRequestIsActive = 'Y'
|
|
JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestID
|
|
LEFT JOIN nat_test_loinc ON Nat_TestLoincNat_TestID = T_TestNat_TestID
|
|
WHERE
|
|
T_OrderDetailT_OrderHeaderID = ? AND
|
|
T_OrderDetailT_TestIsPrice = 'Y' AND
|
|
T_OrderDetailT_TestSasCode LIKE CONCAT(SUBSTR(?, 1, 8),'%') AND
|
|
T_OrderDetailIsActive = 'Y' LIMIT 1";
|
|
$query_service_req = $this->db_onedev->query($sql, array(
|
|
$value['T_OrderDetailT_OrderHeaderID'],
|
|
$value['T_OrderDetailT_TestSasCode']
|
|
));
|
|
if (!$query_service_req) {
|
|
//echo $this->db_onedev->last_query();
|
|
$this->sys_error("error get service_request 2");
|
|
exit;
|
|
}
|
|
|
|
$data_parent = $query_service_req->row_array();
|
|
$serviceRequestUUID = $data_parent['ServiceRequestUUID'];
|
|
}
|
|
|
|
$data_result['basedOn'] = array(
|
|
array(
|
|
"reference" => "ServiceRequest/" . $serviceRequestUUID
|
|
)
|
|
);
|
|
|
|
$sql = "SELECT Nat_MethodeID, Nat_MethodeName,Nat_NormalValueMinValue,Nat_NormalValueMaxValue,
|
|
Nat_NormalValueMinValueInclusive, Nat_NormalValueMaxValueInclusive
|
|
FROM nat_normalvalue
|
|
JOIN nat_methode ON Nat_NormalValueNat_MethodeID = Nat_MethodeID
|
|
WHERE
|
|
Nat_NormalValueID = ?
|
|
";
|
|
$query = $this->db_onedev->query($sql, array(
|
|
$value['T_OrderDetailNat_NormalValueID']
|
|
));
|
|
if (!$query) {
|
|
$this->sys_error("error get Nat_MethodeName ");
|
|
exit;
|
|
}
|
|
//echo $this->db_onedev->last_query();
|
|
$r_normal_value = $query->row_array();
|
|
//print_r($r_normal_value);
|
|
//$data_result['methode_name'] = $r_normal_value['Nat_MethodeName'];
|
|
if ($value['observationType'] == "S") {
|
|
if ($value['Group_ResultName'] == 'Papsmear') {
|
|
$sql = "SELECT Other_PapSmearDetailsResult as result
|
|
FROM t_orderdetail
|
|
JOIN other_papsmear ON Other_PapSmearT_OrderDetailID = ? AND
|
|
Other_PapSmearT_OrderDetailID = T_OrderDetailID AND
|
|
Other_PapSmearIsActive = 'Y'
|
|
JOIN other_papsmeardetails ON Other_PapSmearDetailsOther_PapSmearID = Other_PapSmearID AND
|
|
Other_PapSmearDetailsLabel = 'Kesimpulan' AND
|
|
Other_PapSmearDetailsIsActive = 'Y'
|
|
LIMIT 1";
|
|
$query = $this->db_onedev->query($sql, array(
|
|
$value['T_OrderDetailID']
|
|
));
|
|
|
|
if (!$query) {
|
|
$this->sys_error("error get papsmear result ");
|
|
exit;
|
|
}
|
|
//echo $this->db_onedev->last_query();
|
|
|
|
$dt_papsmearresult = $query->row_array();
|
|
$detailResult = $dt_papsmearresult['result'];
|
|
}
|
|
|
|
$data_result['valueString'] = $detailResult;
|
|
}
|
|
elseif ($value['observationType'] == "C") {
|
|
$detailResult = $value['T_OrderDetailResult'];
|
|
//echo "IN";
|
|
$data_result['valueCodeableConcept'] = array(
|
|
'coding' => array(),
|
|
'text' => $value['T_OrderDetailResult']
|
|
);
|
|
|
|
if ($value['T_OrderDetailNormalValueNote'] && $value['T_OrderDetailNormalValueNote'] != "") {
|
|
$data_result['referenceRange'] = array(
|
|
array(
|
|
'text' => $value['T_OrderDetailNormalValueNote']
|
|
)
|
|
);
|
|
}
|
|
|
|
}elseif($value['observationType'] == "K") {
|
|
$data_result['valueQuantity'] = array(
|
|
'value' => floatval($value['T_OrderDetailResult']),
|
|
'unit' => "mmol/L", //$value['T_OrderDetailNat_UnitName'],
|
|
'system' => "http://unitsofmeasure.org",
|
|
'code' => "mmol/L", //$value['T_OrderDetailNat_UnitName']
|
|
);
|
|
$data_result['interpretation'] = array(
|
|
array(
|
|
'coding' => array(
|
|
array(
|
|
'system' => "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation",
|
|
'code' => $value['code_interpretation'],
|
|
'display' => $value['display_interpretation']
|
|
)
|
|
)
|
|
)
|
|
);
|
|
|
|
$data_normal_values = [];
|
|
|
|
$sql = "SELECT *
|
|
FROM nat_normalvaluetype
|
|
WHERE
|
|
Nat_NormalValueTypeIsActive = 'Y'";
|
|
$query = $this->db_onedev->query($sql);
|
|
|
|
if (!$query) {
|
|
//echo $this->db_onedev->last_query();
|
|
$this->sys_error("error get normalvalues types");
|
|
exit;
|
|
}
|
|
|
|
$normal_value_types = $query->result_array();
|
|
|
|
foreach ($normal_value_types as $k_nvt => $v_nvt) {
|
|
$sql = "SELECT *
|
|
FROM nat_normalvalue
|
|
JOIN nat_flag ON Nat_NormalValueNat_FlagID = Nat_FlagID
|
|
JOIN nat_test ON Nat_NormalValueNat_TestID = Nat_TestID
|
|
JOIN nat_unit ON Nat_TestNat_UnitID = Nat_UnitID
|
|
WHERE
|
|
( Nat_NormalValueValidDate IS NULL OR Nat_NormalValueValidDate < NOW() ) AND
|
|
Nat_NormalValueIsActive = 'Y' AND
|
|
Nat_NormalValueNat_NormalValueTypeID = {$v_nvt['Nat_NormalValueTypeID']} AND
|
|
Nat_NormalValueIsAbnormal = 'N' AND
|
|
( Nat_NormalValueNat_MethodeID = {$r_normal_value["Nat_MethodeID"]} ) AND
|
|
Nat_NormalValueNat_TestID = {$value["Nat_TestID"]} AND
|
|
(
|
|
( {$v_nvt['Nat_NormalValueTypeID']} in (1,3) AND Nat_NormalValueNat_SexID = {$r_order['sex_id']} ) OR
|
|
{$v_nvt['Nat_NormalValueTypeID']} in (2,4)
|
|
) AND
|
|
(
|
|
( Nat_NormalValueMinAgeInclusive = 'Y' AND fn_normal_get_age(Nat_NormalValueMinAge,Nat_NormalValueAgeUnit) <= {$r_order["age_in_day"]} ) OR
|
|
( Nat_NormalValueMinAgeInclusive = 'N' AND fn_normal_get_age(Nat_NormalValueMinAge,Nat_NormalValueAgeUnit) < {$r_order["age_in_day"]} )
|
|
)
|
|
AND
|
|
(
|
|
( Nat_NormalValueMaxAgeInclusive = 'Y' AND fn_normal_get_age(Nat_NormalValueMaxAge,Nat_NormalValueAgeUnit) >= {$r_order["age_in_day"]} ) OR
|
|
( Nat_NormalValueMaxAgeInclusive = 'N' AND fn_normal_get_age(Nat_NormalValueMaxAge,Nat_NormalValueAgeUnit) > {$r_order["age_in_day"]} )
|
|
)
|
|
";
|
|
|
|
$query = $this->db_onedev->query($sql);
|
|
|
|
if (!$query) {
|
|
echo $this->db_onedev->last_query();
|
|
$this->sys_error("error get normalvalues type" . $v_nvt['Nat_NormalValueTypeID']);
|
|
exit;
|
|
}
|
|
|
|
$normalvalues = $query->result_array();
|
|
if ($normalvalues) {
|
|
foreach ($normalvalues as $k_normalvalue => $v_normalvalue) {
|
|
$data_normal_values[] = array(
|
|
"text" => $v_normalvalue["Nat_FlagName"],
|
|
"high" => array(
|
|
"value" => floatval($v_normalvalue["Nat_NormalValueMaxValue"]),
|
|
"unit" => "mmol/L", //$v_normalvalue["Nat_UnitName"],
|
|
"system" => "http://unitsofmeasure.org",
|
|
"code" => "mmol/L" //$v_normalvalue["Nat_UnitName"]
|
|
),
|
|
"low" => array(
|
|
"value" => floatval($v_normalvalue["Nat_NormalValueMinValue"]),
|
|
"unit" => "mmol/L", //$v_normalvalue["Nat_UnitName"],
|
|
"system" => "http://unitsofmeasure.org",
|
|
"code" => "mmol/L" //$v_normalvalue["Nat_UnitName"]
|
|
)
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
$data_result['referenceRange'] = $data_normal_values;
|
|
}
|
|
|
|
$result["resource"] = $data_result;
|
|
$result["request"] = array("method" => "POST", "url" => "Observation");
|
|
|
|
|
|
$sql = "INSERT INTO one_health.observation (
|
|
observationUUID,
|
|
observationT_OrderHeaderID,
|
|
observationT_OrderDetailID,
|
|
observationT_TestName,
|
|
observationLoincCode,
|
|
observationT_TestID,
|
|
observationType,
|
|
observationJSON,
|
|
observationCreated
|
|
) VALUES(?,?,?,?,?,?,?,?,NOW())";
|
|
|
|
$query = $this->db_onedev->query($sql, array(
|
|
$observation_uuid,
|
|
$value['T_OrderDetailT_OrderHeaderID'],
|
|
$data_parent['T_OrderDetailID'],
|
|
$data_parent['T_OrderDetailT_TestName'],
|
|
$data_parent['code_loinc'],
|
|
$value['T_OrderDetailT_TestID'],
|
|
$value['observationType'],
|
|
json_encode($result)
|
|
));
|
|
|
|
if (!$query) {
|
|
echo $this->db_onedev->last_query();
|
|
$this->sys_error("error insert observation");
|
|
exit;
|
|
}
|
|
// echo $this->db_onedev->last_query();
|
|
|
|
$last_id = $this->db_onedev->insert_id();
|
|
$sql = "SELECT *
|
|
FROM one_health.observation
|
|
WHERE
|
|
observationID = ?";
|
|
$query = $this->db_onedev->query($sql, array($last_id));
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error("error get service_request after insert");
|
|
exit;
|
|
}
|
|
//echo $this->db_onedev->last_query();
|
|
|
|
$exist_data = $query->result_array();
|
|
$exist_data[0]['observationJSON'] = json_decode($exist_data[0]['observationJSON']);
|
|
$data_results[] = $exist_data[0];
|
|
} else {
|
|
$exist_data[0]['observationJSON'] = json_decode($exist_data[0]['observationJSON']);
|
|
$data_results[] = $exist_data[0];
|
|
}
|
|
}
|
|
}
|
|
|
|
//print_r($data_results);
|
|
$sql = "SELECT *
|
|
FROM one_health.observation
|
|
WHERE
|
|
observationT_OrderHeaderID = ? AND
|
|
observationIsActive = 'Y'
|
|
GROUP BY observationT_TestName";
|
|
$query = $this->db_onedev->query($sql, array($orderHeaderID));
|
|
if (!$query) {
|
|
// echo $this->db_onedev->last_query();
|
|
$this->sys_error("error get service_request exist");
|
|
exit;
|
|
}
|
|
//echo $this->db_onedev->last_query().";";
|
|
$parenttest = array();
|
|
$parent_datas = $query->result_array();
|
|
foreach ($parent_datas as $k_p => $v_p) {
|
|
$parenttest[] = array(
|
|
'T_OrderDetailID' => $v_p['observationT_OrderDetailID'],
|
|
'T_TestName' => $v_p['observationT_TestName'],
|
|
'details' => []
|
|
);
|
|
}
|
|
|
|
|
|
foreach ($data_results as $key => $value) {
|
|
foreach ($parenttest as $k => $v) {
|
|
if ($v['T_OrderDetailID'] == $value['observationT_OrderDetailID']) {
|
|
$parenttest[$k]['details'][] = $value;
|
|
}
|
|
}
|
|
}
|
|
|
|
echo json_encode($parenttest);
|
|
}
|
|
|
|
function updateobservation()
|
|
{
|
|
try {
|
|
|
|
if (!$this->isLogin) {
|
|
$this->sys_error("Invalid Token");
|
|
exit;
|
|
}
|
|
|
|
$prm = $this->sys_input;
|
|
// $orderheaderID = $prm['orderheaderID'];
|
|
// $json_data = json_encode($prm['json_data']);
|
|
$status = $prm['status'];
|
|
$newJson = $prm['json'];
|
|
$uuID = explode(":", $newJson["fullUrl"])[2];
|
|
// print_r($uuID);
|
|
// exit;
|
|
$sql = "UPDATE one_health.observation SET
|
|
observationJSON = ?,
|
|
observationStatus = ?
|
|
WHERE observationUUID = ?";
|
|
$qry = $this->db_onedev->query($sql, [json_encode($newJson), $status, $uuID]);
|
|
$last_qry = $this->db_onedev->last_query();
|
|
|
|
if (!$qry) {
|
|
$error = array(
|
|
"message" => $this->db_onedev->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
$sql = "SELECT * FROM one_health.observation
|
|
WHERE observationUUID = ?
|
|
AND observationIsActive = 'Y'";
|
|
$qry = $this->db_onedev->query($sql, [$uuID]);
|
|
$last_qry = $this->db_onedev->last_query();
|
|
|
|
if (!$qry) {
|
|
$error = array(
|
|
"message" => $this->db_onedev->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
$result = $qry->row_array();
|
|
echo json_encode($result['observationJSON']);
|
|
} catch (Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
|
|
function get_terminologyresult(){
|
|
try {
|
|
$prm = $this->sys_input;
|
|
$search = $prm['search'];
|
|
$code_system = $prm['code_system'];
|
|
|
|
$sql = "SELECT code_system,code,display
|
|
FROM one_terminology.`terminology`
|
|
WHERE `resource_type` = 'Observation' AND
|
|
`attribute_path` = 'observation.value' AND
|
|
code_system = ? AND
|
|
(
|
|
`display` LIKE CONCAT('%',?,'%') OR
|
|
`code` LIKE CONCAT('%',?,'%')
|
|
)
|
|
LIMIT 50";
|
|
|
|
$qry = $this->db_onedev->query($sql, [$code_system,$search,$search]);
|
|
|
|
$last_qry = $this->db_onedev->last_query();
|
|
//echo $last_qry;
|
|
if (!$qry) {
|
|
$error = array(
|
|
"message" => $this->db_onedev->error()["message"],
|
|
"sql" => $last_qry
|
|
);
|
|
$this->sys_error_db($error);
|
|
exit;
|
|
}
|
|
|
|
$results = $qry->result_array();
|
|
echo json_encode($results);
|
|
|
|
} catch (Exception $exc) {
|
|
$message = $exc->getMessage();
|
|
$this->sys_error($message);
|
|
}
|
|
}
|
|
|
|
}
|