Skip to content

Commit

Permalink
factored RoutingSlipREST out of tscharts-rgister
Browse files Browse the repository at this point in the history
  • Loading branch information
slogan621 committed Feb 17, 2019
1 parent f4169ca commit 4d312ef
Show file tree
Hide file tree
Showing 2 changed files with 193 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public class CommonSessionSingleton {
private File m_storageDir = null;
private int m_headshotTag = 676;
private int m_patientId;
private int m_patientRoutingSlipId;
private String m_photoPath = "";
private int m_clinicId = -1;
private ArrayList<HeadshotImage> m_headshotImages = new ArrayList<HeadshotImage>();
Expand All @@ -47,6 +48,16 @@ public class CommonSessionSingleton {
private ArrayList<String> m_medicationsList = new ArrayList<String>();
private MedicalHistory m_patientMedicalHistory = null;

public void setPatientRoutingSlipId(int id)
{
m_patientRoutingSlipId = id;
}

public int getPatientRoutingSlipId()
{
return m_patientRoutingSlipId;
}

public void resetPatientMedicalHistory() {
m_patientMedicalHistory = null;
}
Expand Down
182 changes: 182 additions & 0 deletions app/src/main/java/org/thousandsmiles/tscharts_lib/RoutingSlipREST.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
/*
* (C) Copyright Syd Logan 2017-2019
* (C) Copyright Thousand Smiles Foundation 2017-2019
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.thousandsmiles.tscharts_lib;

import android.content.Context;

import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.JsonObjectRequest;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

public class RoutingSlipREST extends RESTful {
private final Object m_lock = new Object();

private class GetRoutingSlipResponseListener implements Response.Listener<JSONObject> {

@Override
public void onResponse(JSONObject response) {
synchronized (m_lock) {
CommonSessionSingleton sess = CommonSessionSingleton.getInstance();
setStatus(200);
m_lock.notify();
}
}
}

private class ErrorListener implements Response.ErrorListener {
@Override
public void onErrorResponse(VolleyError error) {

synchronized (m_lock) {
if (error.networkResponse == null) {
if (error.getCause() instanceof java.net.ConnectException || error.getCause() instanceof java.net.UnknownHostException) {
setStatus(101);
} else {
setStatus(-1);
}
} else {
setStatus(error.networkResponse.statusCode);
}
m_lock.notify();
}
}
}

public class AuthJSONObjectRequest extends JsonObjectRequest
{
public AuthJSONObjectRequest(int method, String url, JSONObject jsonRequest, Response.Listener listener, ErrorListener errorListener)
{
super(method, url, jsonRequest, listener, errorListener);
}

@Override
public Map getHeaders() throws AuthFailureError {
Map headers = new HashMap();
headers.put("Authorization", CommonSessionSingleton.getInstance().getToken());
return headers;
}
}

public class AuthJSONArrayRequest extends JsonArrayRequest {

public AuthJSONArrayRequest(String url, JSONArray jsonRequest,
Response.Listener<JSONArray> listener, ErrorListener errorListener) {
super(url, listener, errorListener);
}

public AuthJSONArrayRequest(String url, Response.Listener<JSONArray> listener,
Response.ErrorListener errorListener, String username, String password) {
super(url, listener, errorListener);

}

private Map<String, String> headers = new HashMap<String, String>();
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
//return headers;
Map headers = new HashMap();
headers.put("Authorization", CommonSessionSingleton.getInstance().getToken());
return headers;
}

}

private class PostResponseListener implements Response.Listener<JSONObject> {

@Override
public void onResponse(JSONObject response) {

synchronized (m_lock) {
CommonSessionSingleton sess = CommonSessionSingleton.getInstance();
try {
sess.setPatientRoutingSlipId(response.getInt("id"));
setStatus(200);
onSuccess(200, "");
} catch (JSONException e) {
setStatus(500);
onFail(500, "");
}

m_lock.notify();
}
}
}

public RoutingSlipREST(Context context) {
setContext(context);
}

public Object getRoutingSlip(int clinicId, int patientId) {

VolleySingleton volley = VolleySingleton.getInstance();

volley.initQueueIf(getContext());

RequestQueue queue = volley.getQueue();

String url = String.format("%s://%s:%s/tscharts/v1/routingslip?patient=%d&clinic=%d", getProtocol(), getIP(), getPort(), patientId, clinicId);

RoutingSlipREST.AuthJSONObjectRequest request = new RoutingSlipREST.AuthJSONObjectRequest(Request.Method.GET, url, null, new RoutingSlipREST.GetRoutingSlipResponseListener(), new RoutingSlipREST.ErrorListener());
request.setRetryPolicy(new DefaultRetryPolicy(getTimeoutInMillis(), getRetries(), DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

queue.add((JsonObjectRequest) request);

return m_lock;
}

public Object createRoutingSlip(int patientId, int clinicId, String category) {

VolleySingleton volley = VolleySingleton.getInstance();

volley.initQueueIf(getContext());

RequestQueue queue = volley.getQueue();

CommonSessionSingleton sess = CommonSessionSingleton.getInstance();

JSONObject data = new JSONObject();

try {
data.put("patient", patientId);
data.put("clinic", clinicId);
data.put("category", category);
} catch (JSONException e) {
}

String url = String.format("%s://%s:%s/tscharts/v1/routingslip/", getProtocol(), getIP(), getPort());

RoutingSlipREST.AuthJSONObjectRequest request = new RoutingSlipREST.AuthJSONObjectRequest(Request.Method.POST, url, data, new PostResponseListener(), new ErrorListener());
request.setRetryPolicy(new DefaultRetryPolicy(getTimeoutInMillis(), getRetries(), DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

queue.add((JsonObjectRequest) request);

return m_lock;
}
}

0 comments on commit 4d312ef

Please sign in to comment.