diff --git a/mermsemr/src/include/mermsemr_api.h b/mermsemr/src/include/mermsemr_api.h index f4d80ee..bace789 100644 --- a/mermsemr/src/include/mermsemr_api.h +++ b/mermsemr/src/include/mermsemr_api.h @@ -62,6 +62,13 @@ enum { #define MEDTRANS_UPLOADS 4505 #define MEDTRANS_DOWNLOAD 4506 +// MERMS-GENERAL +#define USER_CREATETASK 2200 +#define USER_LOADTASK 5500 + +#define MODE_SETVALUE 1001 +#define MODE_GETVALUE 2002 + // USERS #define MERMS_USER_START 120000 // //-- diff --git a/mermsemr/src/shared_tool/function_members.cc b/mermsemr/src/shared_tool/function_members.cc index 3e72a3d..6f0fe60 100644 --- a/mermsemr/src/shared_tool/function_members.cc +++ b/mermsemr/src/shared_tool/function_members.cc @@ -133,7 +133,7 @@ long MemberSessionCheck(long uid, const char *sessionid, int create) { long CreateMember(CVars in, CVars &out) { long ret = PHP_API_BAD_PARAM; - logfmt(logINFO, "medTrCreateMember()"); + logfmt(logINFO, "CreateMember()"); try { @@ -233,17 +233,48 @@ long CreateMember(CVars in, CVars &out) { // ============== } } - - - -}catch (bad_parameter) { - logfmt(logINFO, "ERROR CALL medTrCreateMember"); + + }catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL CreateMember"); + } + logfmt(logINFO, "/CreateMember()"); + return ret; +} +long getMemberProfile(CVars in, CVars &out); +long MemberProfile(CVars in, CVars &out){ + + + try{ + long task_mode = REQ_LONG(in, "task_mode", 0, -1); + REQ_LONG(in, "member_id", 0, -1); + switch (task_mode) { + case MODE_SETVALUE: + return medTrUpdateProfile(in, out); + break; + + case MODE_GETVALUE: + return getMemberProfile(in, out); + break; + } + }catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL CreateMember"); + } + logfmt(logINFO, "/MemberReminders()"); + return 0; +} + + +long getMemberProfile(CVars in, CVars &out) { + + + long ret = load_db_record(out, "SELECT UPPER( md5( now()::text) ) AS sessionid,m.*,mp.*,m.id AS member_id,mp.id AS member_profile_id FROM members m \ + LEFT JOIN members_profile mp ON mp.member_id = m.id \ + WHERE m.id = %lu", in["member_id"].Long()); + + // We need to have the session back + load_db_record(out, "SELECT * FROM members_session WHERE member_id = %lu ORDER BY id DESC limit 1", in["member_id"].Long()); - } - - - logfmt(logINFO, "/medTrCreateMember()"); return ret; } @@ -319,6 +350,154 @@ long medTrUpdateProfile(CVars in, CVars &out) { return ret; } +/* + "sessionid" => $sessionid, + "practice_id" => 0, + "encounter_id"=> 0, + "member_id" => "1", + "description"=> $description, + "repeat" => $repeat, + "start_date" => $start_date, + "end_date" => $end_date, + "reminder" => rand(0,3) + */ + +long setMemberReminders(CVars in, CVars &out); +long getMemberReminders(CVars in, CVars &out); +long MemberReminders(CVars in, CVars &out) +{ + try{ + long task_mode = REQ_LONG(in, "task_mode", 0, -1); + switch (task_mode) { + case USER_CREATETASK: + return setMemberReminders(in, out); + break; + + case USER_LOADTASK: + return getMemberReminders(in, out); + break; + } + }catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL CreateMember"); + } + logfmt(logINFO, "/MemberReminders()"); + return 0; +} + + +long setMemberReminders(CVars in, CVars &out) { + long ret = PHP_API_BAD_PARAM; + logfmt(logINFO, "CreateMember()"); + + try { + + REQ_LONG(in, "member_id", 0, -1); + REQ_LONG(in, "practice_id", 0, -1); + REQ_LONG(in, "encounter_id", 0, -1); + REQ_STRING(in, "description", 5, 99, "(.*)"); + REQ_LONG(in, "repeat", 0, -1); + REQ_STRING(in, "start_date", 2, 15, "(.*)"); + REQ_STRING(in, "end_date", 2, 15, "(.*)"); + REQ_LONG(in, "reminder", 0, -1); + //REQ_STRING (in, "sessionid", 4, 40, "(.*)"); + const char * loc = getenv("REMOTE_ADDR"); + + ret = load_db_record(out, "SELECT *,id AS member_id FROM members WHERE id=%lu ", in["member_id"].Long()); + if (ret > 0) { + // LETS CREATE REMINDER + CVars x; + + x["member_id"] = in["member_id"]; + x["member_id"].set_valid(true); + x["practice_id"] = in["practice_id"]; + x["practice_id"].set_valid(true); + x["encounter_id"] = in["encounter_id"]; + x["encounter_id"].set_valid(true); + x["description"] = in["description"]; + x["description"].set_valid(true); + x["loc"] = in["loc"]; + x["loc"].set_valid(true); + x["repeat"] = in["repeat"]; + x["repeat"].set_valid(true); + x["reminder"] = in["reminder"]; + x["reminder"].set_valid(true); + + x["start_date"] = in["start_date"]; + x["start_date"].set_valid(true); + + x["end_date"] = in["end_date"]; + x["end_date"].set_valid(true); + + out["member_reminder_id"] = insert_db_record(DBS_VALID, "members_reminders", "members_reminders_id_seq", x); + if (out["member_reminder_id"].Long() > 0) { + //---emailbad member_email_calls(MERMS_USER_CREATEACCOUNT, out, out); + } + } + + }catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL CreateMember"); + } + logfmt(logINFO, "/CreateMember()"); + return ret; +} + +/* + "sessionid" => $sessionid, + "practice_id" => 0, + "encounter_id"=> 0, + "member_id" => "1", + "description"=> $description, + "repeat" => $repeat, + "start_date" => $start_date, + "end_date" => $end_date, + "reminder" => rand(0,3) + status = 1 + */ + + long getMemberReminders(CVars in, CVars &out) { + long ret = PHP_API_BAD_PARAM; + char vname[20]; + try { + // REQ_LONG(in, "status", 0, -1); + REQ_LONG( in, "member_id", 0, -1); + + out["total_record"] = "0"; + + const PGresult *res = pgsql_query("SELECT * FROM members_reminders WHERE member_id = %lu status = 1 ORDER BY agent_name ASC",in["member_id"].Long()); + if (res != NULL && pgsql_num_rows(res) > 0) { + out["total_record"] = pgsql_num_rows(res); + + for (int i = 0, n = pgsql_num_rows(res); i < n; i++) { + mapf = pgsql_fetch_assoc(res, i); + if (f.empty()) continue; + CVars rec; + map_to_cvars(f, rec); + + snprintf(vname, sizeof (vname), "description_%05d", i); + out[vname] = rec["description"]; + + snprintf(vname, sizeof (vname), "repeat_%05d", i); + out[vname] = rec["repeat"]; + + snprintf(vname, sizeof (vname), "start_date_%05d", i); + out[vname] = rec["start_date"]; + + snprintf(vname, sizeof (vname), "end_date_%05d", i); + out[vname] = rec["end_date"]; + + snprintf(vname, sizeof (vname), "reminder_%05d", i); + out[vname] = rec["reminder"]; + + } + } + ret = PHP_API_OK; + out["status"] = "OK"; + } catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL long getMemberReminders(CVars in, CVars &out)"); + } + return ret; +} + //------------------------------------------------------ diff --git a/mermsemr/src/shared_tool/medTrBackOffice.cc b/mermsemr/src/shared_tool/medTrBackOffice.cc index c23586a..c1f60f2 100644 --- a/mermsemr/src/shared_tool/medTrBackOffice.cc +++ b/mermsemr/src/shared_tool/medTrBackOffice.cc @@ -1,6 +1,6 @@ /* General Header -ChiefSoft July 2017 +ChiefSoft Jan 2019 */ #include "clog.h" #include "cgi.h" diff --git a/mermsemr/src/shared_tool/medTrMembers.cc b/mermsemr/src/shared_tool/medTrMembers.cc index 2b04d06..d0bd96a 100644 --- a/mermsemr/src/shared_tool/medTrMembers.cc +++ b/mermsemr/src/shared_tool/medTrMembers.cc @@ -23,6 +23,10 @@ Other Headers #include "payments.h" +long MemberReminders(CVars in, CVars &out); +long MemberProfile(CVars in, CVars &out); + + long members_call(CVars in, CVars &out) { logfmt(logINFO, "members_call()"); @@ -42,8 +46,13 @@ long members_call(CVars in, CVars &out) { break; case MERMS_USER_REMINDERS: - // return medTrCreateMember(in, out); + return MemberReminders(in, out); break; + + case MERMS_USER_LOADPROFILE: + case MERMS_USER_UPDATEPROFILE: + return MemberProfile(in, out); + break; } logfmt(logINFO, "/members_call()"); diff --git a/svrswww/api/backend_defines.php b/svrswww/api/backend_defines.php index 1ade8de..6501b66 100644 --- a/svrswww/api/backend_defines.php +++ b/svrswww/api/backend_defines.php @@ -1,4 +1,11 @@ array('POST'), 'userlogin' => array('POST'), 'getprofile' => array('POST'), - 'userstask' => array('POST') + 'setprofile' => array('POST'), + 'userstask' => array('POST'), + 'createtask' => array('POST') ); header("Access-Control-Allow-Origin: *"); @@ -52,6 +54,8 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") { // $in["action"] = MERMS_USER_CREATEACCOUNT; $in["loc"] = $_SERVER["REMOTE_ADDR"]; + + switch ($endpoint) { case 'userlogin': case 'login': @@ -66,7 +70,23 @@ switch ($endpoint) { case 'userstask': $in["action"] = MERMS_USER_REMINDERS; + $in["task_mode"] = USER_LOADTASK; + break; + case 'createtask': + $in["action"] = MERMS_USER_REMINDERS; + $in["task_mode"] = USER_CREATETASK; break; + + case 'getprofile': + $in["action"] = MERMS_USER_LOADPROFILE; + $in["task_mode"] = MODE_GETVALUE; + break; + case 'setprofile': + $in["action"] = MERMS_USER_UPDATEPROFILE; + $in["task_mode"] = MODE_SETVALUE; + break; + + }