From dad1144e907dec3bff8c72d67cb4963ea0f373fd Mon Sep 17 00:00:00 2001 From: Olusesan Ameye Date: Tue, 12 Mar 2019 18:37:27 +0000 Subject: [PATCH] Backend Service --- .../src/include/function_providers_charts.h | 10 ++ mermsemr/src/include/mermsemr_api.h | 1 + .../shared_tool/function_providers_charts.cc | 160 ++++++++++++++++++ mermsemr/src/shared_tool/providers.cc | 6 +- 4 files changed, 176 insertions(+), 1 deletion(-) create mode 100644 mermsemr/src/include/function_providers_charts.h create mode 100644 mermsemr/src/shared_tool/function_providers_charts.cc diff --git a/mermsemr/src/include/function_providers_charts.h b/mermsemr/src/include/function_providers_charts.h new file mode 100644 index 0000000..a4aa460 --- /dev/null +++ b/mermsemr/src/include/function_providers_charts.h @@ -0,0 +1,10 @@ +#ifndef __mx_function_providers_charts_h__ +#define __mx_function_providers_charts_h__ + +#include "vars.h" + +long provider_chart(CVars in, CVars &out) ; + + +#endif + diff --git a/mermsemr/src/include/mermsemr_api.h b/mermsemr/src/include/mermsemr_api.h index c8a72d3..c7cffc7 100644 --- a/mermsemr/src/include/mermsemr_api.h +++ b/mermsemr/src/include/mermsemr_api.h @@ -97,6 +97,7 @@ enum { #define MERMS_PROVIDERS_UPDATEPROFILE 150040 #define MERMS_PROVIDERS_REMINDERS 150045 #define MERMS_PROVIDERS_CREATEMEMBER 150055 +#define MERMS_PROVIDERS_CREATECHART 150060 // //#define 120001 // // -- #define MERMS_PROVIDERS_END 159999 diff --git a/mermsemr/src/shared_tool/function_providers_charts.cc b/mermsemr/src/shared_tool/function_providers_charts.cc new file mode 100644 index 0000000..414c559 --- /dev/null +++ b/mermsemr/src/shared_tool/function_providers_charts.cc @@ -0,0 +1,160 @@ +// patient Chart Management Tools +#include "clog.h" +#include "cgi.h" +#include "input.h" +#include "mermsemr_api.h" +#include "safestring.h" +#include +#include "pgsql.h" +#include "pgsql_wrapper.h" +#include +#include "medTEmails.h" + +/* -- */ +#include "function_members.h" +#include "function_providers_charts.h" +#include "function_members.h" + + + + +long provider_chart(CVars in, CVars &out) { + + long ret = -1; + try{ + + + + } catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL long provider_chart(CVars in, CVars &out)"); + } + return ret; + +} + + + + +/* + +long provider_createmember1(CVars in, CVars &out){ + + long ret = PHP_API_BAD_PARAM; + logfmt(logINFO, "Provider CreateMember()"); + + try { + + REQ_LONG(in, "practice_id", 0, -1); + REQ_LONG(in, "practice_user_id", 0, -1); + REQ_STRING(in, "username", 5, 49, "(.*)"); + REQ_STRING(in, "firstname", 2, 49, "(.*)"); + REQ_STRING(in, "lastname", 2, 49, "(.*)"); + OPTIONAL(in, "phone") REQ_STRING(in, "phone", 5, 23, "(.*)"); + REQ_STRING(in, "password", 5, 49, "(.*)"); + OPTIONAL(in, "phone") REQ_STRING(in, "loc", 5, 16, "(.*)"); + OPTIONAL(in, "login") REQ_LONG(in, "login", 0, -1); + + long member_id = 0; + + //REQ_STRING (in, "sessionid", 4, 40, "(.*)"); + const char * loc = getenv("REMOTE_ADDR"); + out["member_id"]="0"; + + ret = load_db_record(out, "SELECT *,id AS member_id FROM members WHERE LOWER(username)=LOWER('%s') ", in["username"].c_str()); + logfmt(logINFO, "Provider CreateMember()member_id=%lu",out["member_id"].Long()); + if (out["member_id"].Long() == 0) { + + // LETS CREATE THE ACOUNT NOW + CVars x; + const char * loc = getenv("REMOTE_ADDR"); + x["loc"] = loc; + x["loc"].set_valid(true); + x["username"] = in["username"]; + x["username"].set_valid(true); + x["firstname"] = in["firstname"]; + x["firstname"].set_valid(true); + x["lastname"] = in["lastname"]; + x["lastname"].set_valid(true); + x["phone"] = in["phone"]; + x["phone"].set_valid(true); + // x["loc"] = in["loc"]; + // x["loc"].set_valid(true); + x["email"] = in["email"]; + x["email"].set_valid(true); + // x["password"] = in["email"]; + // x["password"].set_valid(true); + out["member_id"] = insert_db_record(DBS_VALID, "members", "members_id_seq", x); + + if (out["member_id"].Long() > 0) { + pgsql_query("UPDATE members SET password = md5('%s') WHERE id = %lu", in["password"].c_str(), out["member_id"].Long()); // setting the password MD5 now + // Now Send Email + ret = PHP_API_OK; + //make your patient + CVars z; + z["practice_id"] = in["practice_id"]; + z["practice_id"].set_valid(true); + z["practice_user_id"] = in["practice_user_id"]; + z["practice_user_id"].set_valid(true); + z["member_id"] = out["member_id"]; + z["member_id"].set_valid(true); + /// provider_acceptmember(z, out); + + out["status"] = "OK"; + member_id = out["member_id"].Long(); + in["member_id"] = out["member_id"]; + in["member_id"].set_valid(true); + // medTrUpdateProfile(in, out); + + // ============== + } + } // if username + }catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL Provider CreateMember"); + } + logfmt(logINFO, "/Provider CreateMember()"); + return ret; +} + + + + + +long provider_acceptmember(CVars in, CVars &out){ + long ret = PHP_API_BAD_PARAM; + logfmt(logINFO, "provider_acceptmember()"); + char vname[15]; + try{ + + REQ_LONG(in, "practice_id", 0, -1); + REQ_LONG(in, "practice_user_id", 0, -1); + REQ_LONG(in, "member_id", 0, -1); + + GenerateLongID(vname, sizeof (vname), 10); + //snprintf(vname, sizeof (vname), "ME%05d", i); + out["long_id"] = vname; + + + + CVars x; + x["practice_id"] = in["practice_id"]; + x["practice_id"].set_valid(true); + x["practice_user_id"] = in["practice_user_id"]; + x["practice_user_id"].set_valid(true); + x["member_id"] = in["member_id"]; + x["member_id"].set_valid(true); + + x["long_id"] = vname; + x["long_id"].set_valid(true); + out["patient_id_id"] = insert_db_record(DBS_VALID, "patients", "patients_id_seq", x); + + + + }catch (bad_parameter) { + logfmt(logINFO, "ERROR CALL Provider CreateMember"); + } + logfmt(logINFO, "/provider_acceptmember()"); + return ret; +} + +*/ + diff --git a/mermsemr/src/shared_tool/providers.cc b/mermsemr/src/shared_tool/providers.cc index 97bd922..f10cd09 100644 --- a/mermsemr/src/shared_tool/providers.cc +++ b/mermsemr/src/shared_tool/providers.cc @@ -14,6 +14,7 @@ #include "function_members.h" #include "providers.h" #include "function_members.h" +#include "function_providers_charts.h" long provider_login(CVars in, CVars &out); long PracticeLogin(CVars in, CVars &out); @@ -37,7 +38,10 @@ long providers_call(CVars in, CVars &out) { case MERMS_PROVIDERS_CREATEMEMBER: return provider_createmember(in, out); break; - + case MERMS_PROVIDERS_CREATECHART: + // create chart from provider side now + return provider_chart(in, out); + break; case EXISTING_CARD: REQ_LONG(in, "paymentid", 0, -1); // now we have to make sure the payment id is valid for this customer