load->library('Satusehat'); } function index() { echo "Satu Sehat Observation"; } function getobservation() { try { $prm = $this->sys_input; // $testInput = $prm["testInput"]; // echo $testInput; $orderheaderID = $prm['orderheaderID']; $sql = "SELECT * FROM one_health.observation WHERE observationT_OrderHeaderID = ? AND observationIsActive = 'Y'"; $qry = $this->db->query($sql, [$orderheaderID]); $last_qry = $this->db->last_query(); if (!$qry) { $error = array( "message" => $this->db->error()["message"], "sql" => $last_qry ); $this->sys_error_db($error); exit; } $result_check = $qry->result_array(); // get organization $sql = "SELECT organizationID FROM one_health.organization WHERE organizationIsActive = 'Y'"; $qry = $this->db->query($sql, []); $last_qry = $this->db->last_query(); if (!$qry) { $error = array( "message" => $this->db->error()["message"], "sql" => $last_qry ); $this->sys_error_db($error); exit; } $organizationID = $qry->result_array()[0]['organizationID']; $T_OrderDetailID = ""; $sql_get_detailID = "SELECT T_OrderDetailID FROM t_orderdetail WHERE T_OrderDetailIsActive = 'Y' AND T_OrderDetailT_OrderHeaderID = $orderheaderID"; $qry_detailID = $this->db->query($sql_get_detailID, []); $last_qry = $this->db->last_query(); if (!$qry_detailID) { $error = array( "message" => $this->db->error()["message"], "sql" => $last_qry ); $this->sys_error_db($error); exit; } $T_OrderDetailID = $qry_detailID->result_array()[0]['T_OrderDetailID']; // uuid generate // $this->load->library(“Satusehat”); // $this->satusehat->gen_uuid(); if (count($result_check) == 0) { // $sql_data_observation = // "SELECT T_OrderDetailID, // T_OrderDetailVerDate, // DATE_FORMAT(T_OrderDetailValDate, '%Y-%m-%d') as effectiveDate, // T_OrderDetailValDate, // DATE_FORMAT(T_OrderDetailValDate, '%Y-%m-%dT%H:%i:%s+00:00') as issuedDate, // T_OrderDetailResult, // T_OrderDetailNat_UnitName, // Nat_TestLoincCode, // Nat_TestLoincDisplay, // IFNULL(OHPatientMapIHSNumber, 'Belum terdaftar') as patient_ihsnumber, // IFNULL(OHDoctorMapIHSNumber,'Belum diinput') as doctor_ihsnumber, // EncounterUUID, // SpecimenUUID, // ServiceRequestUUID // FROM t_orderheader // JOIN t_orderdetail // ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID // AND T_OrderDetailIsActive = 'Y' // AND T_OrderDetailT_TestIsResult = 'Y' // AND T_OrderHeaderID = $orderheaderID // JOIN t_test // ON T_OrderDetailT_TestID = T_TestID // AND T_TestIsActive = 'Y' // AND T_TestIsResult = 'Y' // JOIN nat_test_loinc // ON Nat_TestLoincNat_TestID = T_TestNat_TestID // LEFT JOIN one_health.oh_patient_map // ON T_OrderHeaderM_PatientID = OHPatientMapM_PatientID // AND OHPatientMapIsActive = 'Y' // LEFT JOIN one_health.oh_doctor_map // ON OHDoctorMapM_DoctorID = T_OrderHeaderPjM_DoctorID // AND OHDoctorMapIsActive = 'Y' // LEFT JOIN one_health.encounter // ON EncounterT_orderHeaderID = T_orderHeaderID // AND EncounterIsActive = 'Y' // LEFT JOIN one_health.service_request // ON ServiceRequestT_OrderHeaderID = T_OrderHeaderID // AND ServiceRequestIsActive = 'Y' // "; // -- Nat_MethodeName, // -- Nat_NormalValueMaxValue, // -- OHDoctorMapIHSNumber, // -- OHNatFlagMapCode, // -- OHNatFlagMapDisplay, $sql_data_observation = "SELECT T_OrderDetailID, T_OrderDetailVerDate, DATE_FORMAT(T_OrderDetailValDate, '%Y-%m-%d') as effectiveDate, T_OrderDetailValDate, DATE_FORMAT(T_OrderDetailValDate, '%Y-%m-%dT%H:%i:%s+00:00') as issuedDate, T_OrderDetailResult, T_OrderDetailNat_UnitName, Nat_TestLoincCode, Nat_TestLoincDisplay, IFNULL(OHPatientMapIHSNumber, 'Belum terdaftar') as patient_ihsnumber, IFNULL(OHDoctorMapIHSNumber,'Belum diinput') as doctor_ihsnumber, EncounterUUID, SpecimenUUID, ServiceRequestUUID FROM t_orderheader JOIN t_orderdetail ON T_OrderHeaderID = T_OrderDetailT_OrderHeaderID AND T_OrderDetailIsActive = 'Y' AND T_OrderDetailT_TestIsResult = 'Y' AND T_OrderHeaderID = $orderheaderID JOIN t_test ON T_OrderDetailT_TestID = T_TestID AND T_TestIsActive = 'Y' AND T_TestIsResult = 'Y' JOIN nat_test_loinc ON Nat_TestLoincNat_TestID = T_TestNat_TestID LEFT JOIN t_ordersample ON T_OrderSampleT_OrderHeaderID = T_OrderHeaderID AND T_OrderSampleT_SampleTypeID = T_TestT_SampleTypeID AND T_OrderSampleIsActive = 'Y' LEFT JOIN one_health.specimen ON SpecimentT_OrderSampleID = T_OrderSampleID AND SpecimenIsActive = 'Y' LEFT JOIN one_health.oh_patient_map ON T_OrderHeaderM_PatientID = OHPatientMapM_PatientID AND OHPatientMapIsActive = 'Y' LEFT JOIN one_health.oh_doctor_map ON OHDoctorMapM_DoctorID = T_OrderHeaderPjM_DoctorID AND OHDoctorMapIsActive = 'Y' LEFT JOIN one_health.encounter ON EncounterT_orderHeaderID = T_orderHeaderID AND EncounterIsActive = 'Y' LEFT JOIN one_health.service_request ON ServiceRequestT_OrderDetailID = T_OrderDetailID AND ServiceRequestIsActive = 'Y' "; $qry_data_observation = $this->db->query($sql_data_observation); $last_qry = $this->db->last_query(); if (!$qry_data_observation) { $error = array( "message" => $this->db->error()["message"], "sql" => $last_qry ); $this->sys_error_db($error); exit; } $result_data_observation = $qry_data_observation->result_array(); // echo "\n"; // print_r($result_data_observation); $observationJSON = []; foreach ($result_data_observation as $key => $val_idx) { $observationJSON[] = [ "fullUrl" => "urn:uuid:{$this->satusehat->gen_uuid()}", "resource" => [ "resourceType" => "Observation", "identifier" => [ [ "system" => "http://sys-ids.kemkes.go.id/observation/$organizationID", "value" => $val_idx['T_OrderDetailID'] ] ], "status" => "final", "category" => [ "coding" => [ [ "system" => "http://terminology.hl7.org/CodeSystem/observation-category", "code" => "laboratory", "display" => "Laboratory" ] ] ], "code" => [ "coding" => [ [ "system" => "http://loinc.org", "code" => $val_idx['Nat_TestLoincCode'], "display" => $val_idx['Nat_TestLoincDisplay'] ] ] ], "subject" => [ "reference" => "Patient/{$val_idx['patient_ihsnumber']}" ], "encounter" => [ "reference" => "urn:uuid:{$val_idx['EncounterUUID']}" ], "effectiveDateTime" => $val_idx['effectiveDate'], "issued" => $val_idx['issuedDate'], "performer" => [ [ "reference" => "Practicioner/{$val_idx['doctor_ihsnumber']}" ], [ "reference" => "Organization/$organizationID" ] ], "specimen" => [ "reference" => "urn:uuid:{$val_idx['SpecimenUUID']}" ], "basedOn" => [ [ "reference" => "ServiceRequest/{$val_idx['ServiceRequestUUID']}" ] ], ] ]; } echo json_encode($observationJSON); } else { echo $result_check[0]['ObservationJSON']; } } catch (Exception $exc) { $message = $exc->getMessage(); $this->sys_error($message); } } }