Android Open Source - SymptomManagement Checkin Logs View






From Project

Back to project page SymptomManagement.

License

The source code is released under:

Apache License

If you think the Android project SymptomManagement listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.android.capstone.views;
/* ww  w. j a  va 2s .c om*/
import java.lang.reflect.Type;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.android.capstone.data.Checkin;
import com.android.capstone.data.MedicationCheckinQA;
import com.android.capstone.utils.CommonUtils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;



public class CheckinLogsView extends View{

      

  private Paint  barPaint, labelPaint;
  
    private ArrayList<Checkin> checkins;
    ArrayList<String> questions;
    HashMap<String, String> currMeds;
    HashMap<String, String> currMedTimes;
    HashMap<String, Integer> ansColorMap;
    HashMap<String, Integer> medAnsColorMap;
    SimpleDateFormat sdf;
    Type type;
    Gson gson;
    
    public CheckinLogsView(Context context , AttributeSet attrs) {
        super(context , attrs);
        init();
   }
    
    public CheckinLogsView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init();
  }

    public CheckinLogsView(Context context) {
    super(context);
    init();
  }



  private void init() {
    
        checkins = new ArrayList<Checkin>();
        currMeds = new HashMap<String, String>();
        currMedTimes = new HashMap<String, String>();
        questions = new ArrayList<String>();
               
        ansColorMap = new HashMap<String, Integer>();
        ansColorMap.put("Well Controlled", getResources().getColor(android.R.color.holo_green_light));
      ansColorMap.put("Moderate", getResources().getColor(android.R.color.holo_orange_light));
      ansColorMap.put("Severe", getResources().getColor(android.R.color.holo_red_light));
      ansColorMap.put("No", getResources().getColor(android.R.color.holo_green_light));
      ansColorMap.put("Some", getResources().getColor(android.R.color.holo_orange_light));
      ansColorMap.put("I can't eat", getResources().getColor(android.R.color.holo_red_light));
      
      medAnsColorMap = new HashMap<String, Integer>();
      medAnsColorMap.put("No", getResources().getColor(android.R.color.holo_red_light));
      medAnsColorMap.put("Yes", getResources().getColor(android.R.color.holo_green_light));
        
        type = new TypeToken<List<MedicationCheckinQA>>() {}.getType();
        gson = new Gson();
        
        sdf = new SimpleDateFormat("h:mm a");
        
        barPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        labelPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        
        setFocusable(true);
        setFocusableInTouchMode(true);
   }

  
  

  @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

        int desiredWidth = 500;
        int desiredHeight = 200;

        int widthMode = MeasureSpec.getMode(widthMeasureSpec);
        int widthSize = MeasureSpec.getSize(widthMeasureSpec);
        int heightMode = MeasureSpec.getMode(heightMeasureSpec);
        int heightSize = MeasureSpec.getSize(heightMeasureSpec);

        int width;
        int height;

        if (widthMode == MeasureSpec.EXACTLY) {
            width = widthSize;
        
        } else if (widthMode == MeasureSpec.AT_MOST) {
            width = Math.min(desiredWidth, widthSize);
        } else {
            width = desiredWidth;
        }

        
        if (heightMode == MeasureSpec.EXACTLY) {
            height = heightSize;
        } else if (heightMode == MeasureSpec.AT_MOST) {
            height = Math.min(desiredHeight, heightSize);
        } else {
            height = desiredHeight;
        }

    
        setMeasuredDimension(width, height);
    }
    
    
    
    
    
    

    @Override 
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
      
         if(!checkins.isEmpty()){
           
            int left = getLeft();
            int right = getRight();
            int top = getTop();
            int height = getHeight();
            
        
           //Drawing Text
           int size = questions.size();
           int space_each = height/(size+2);
           int start = top;
           labelPaint.setColor(Color.GRAY);
           labelPaint.setTextSize(20);
           barPaint.setTextSize(15);
           
           for(int i=0; i< size; i++){
            start+= space_each;
              canvas.drawText(questions.get(i), left+10 , start, labelPaint);
          }
        
       
            int centerY = start + space_each;
            int centerX = left + 150;
            int axisWidth = (right-20)- centerX;
            int axisHeight = centerY - (top+10);
        
           //Drawing Axis
           barPaint.setColor(Color.LTGRAY);
           barPaint.setStrokeWidth(3);
           canvas.drawLine(centerX, centerY, centerX+axisWidth , centerY, barPaint); //X-axis
           canvas.drawLine(centerX, centerY ,centerX ,centerY-axisHeight , barPaint);  //Y-axis
       
       
        
        
           // Marking Axis and Draw Bars for Each Mark...
           labelPaint.setTextSize(15);
        
           int barWidth = space_each/2;
        
           int checkinSize = checkins.size();
           int checkinSpaceEach = (axisWidth)/(checkinSize);
           int markStart = centerX;
        
           int end = centerX;
           
           for(int i=0; i< checkinSize ; i++){
            
             barPaint.setColor(Color.LTGRAY);
               barPaint.setStrokeWidth(3);
            
               markStart+= checkinSpaceEach;
               
               if(!currMeds.isEmpty()){
                 currMeds.clear();
               }
               
               List<MedicationCheckinQA>  medCheckinQAs = gson.fromJson(checkins.get(i).getMedicationsJSON(), type);
               if(medCheckinQAs != null ){
                 for(MedicationCheckinQA qa : medCheckinQAs){
                      String med = qa.getMedicationQuestion();
                med = med.substring(med.lastIndexOf(" ")+1);
                currMeds.put(med,qa.getMedicationAnswer());
                String time = sdf.format(qa.getMedicationDate());
                currMedTimes.put(med,time);
           }
               }
               
               
               //Draw all Bars for this Checkin...
               start = top;
             
               for(int j=0; j< size; j++){
                 int color = Color.LTGRAY;
                 
                 if(j==0){
                  color = ansColorMap.get(checkins.get(i).getAns1());
                 }else if(j==1){
                  color = ansColorMap.get(checkins.get(i).getAns2());
                 }else if(j==2){
                  color = medAnsColorMap.get(checkins.get(i).getAns3());
                 
                 }else{
                   if(!currMeds.isEmpty()){
                       if(currMeds.keySet().contains(questions.get(j))){
                         String ans =  currMeds.get(questions.get(j));
                         color = medAnsColorMap.get(ans);
                       }
                   }
                }
                 
                 barPaint.setColor(color);
                 start += space_each;
                 canvas.drawRect(end, start-20,markStart ,start-20+(barWidth) , barPaint);
                 
                
                    
             }
                 
               end = markStart; 
               
               //Draw Time Mark..
               String time = sdf.format(checkins.get(i).getCheckinDate());
               barPaint.setColor(Color.LTGRAY);
               canvas.drawLine(markStart, top+20, markStart, centerY+10, barPaint);
               canvas.drawText(time, markStart-40 , centerY+30, labelPaint);
                 
           }
               
               
         }        
       
        
    }

    
   
    public void setCheckins(ArrayList<Checkin> checkins){
      this.checkins = checkins;
      
      questions.clear();
      
      questions.add("Pain");
      questions.add("Eating");
      questions.add("Medications");
         
      for(Checkin checkin : checkins){
          List<MedicationCheckinQA>  medCheckinQAs = gson.fromJson(checkin.getMedicationsJSON(), type);
          if(medCheckinQAs!= null){
             for(MedicationCheckinQA qa : medCheckinQAs){
              String ques = qa.getMedicationQuestion();
            ques = ques.substring(ques.lastIndexOf(" ")+1);
            if(!questions.contains(ques)){
              questions.add(ques);
            }
            
          }
         }
        }
         
      
        invalidate();
        
        
    }
    
   
  
 
}




Java Source Code List

android.UnusedStub.java
com.android.capstone.BaseActivity.java
com.android.capstone.DatePickerFragment.java
com.android.capstone.MainActivity.java
com.android.capstone.RegisterFragment.java
com.android.capstone.data.CheckinSvcApi.java
com.android.capstone.data.Checkin.java
com.android.capstone.data.Doctor.java
com.android.capstone.data.GPlusProfile.java
com.android.capstone.data.MedicationCheckinQA.java
com.android.capstone.data.Medications.java
com.android.capstone.data.Patient.java
com.android.capstone.data.VDoctor.java
com.android.capstone.data.VPatient.java
com.android.capstone.db.SymptomManagementContract.java
com.android.capstone.db.SymptomManagementDbHelper.java
com.android.capstone.db.SymptomManagementProvider.java
com.android.capstone.doctor.CheckinLogsListAdapter.java
com.android.capstone.doctor.CheckinLogs_Doctor_Fragment.java
com.android.capstone.doctor.DisplayCheckinActivity.java
com.android.capstone.doctor.DoctorMain_Fragment.java
com.android.capstone.doctor.Doctor_Main_CursorAdapter.java
com.android.capstone.doctor.Doctor_VPatient_Activity.java
com.android.capstone.doctor.Doctor_VPatient_Fragment.java
com.android.capstone.doctor.MedicationsListAdapter.java
com.android.capstone.doctor.MedicationsListFragment.java
com.android.capstone.doctor.alarm.CheckPainIntentService.java
com.android.capstone.doctor.alarm.CheckPain.java
com.android.capstone.doctor.alarm.CheckinAlarmService.java
com.android.capstone.doctor.alarm.OnBootReceiver.java
com.android.capstone.gcm.GcmBroadcastReceiver.java
com.android.capstone.gcm.GcmIntentService.java
com.android.capstone.patient.CheckinNowActivity.java
com.android.capstone.patient.PatientMain_Fragment.java
com.android.capstone.patient.Patient_Main_CursorAdapter.java
com.android.capstone.patient.ReminderCursorAdapter.java
com.android.capstone.patient.RemindersActivity.java
com.android.capstone.patient.TimePickerFragment.java
com.android.capstone.patient.checkin_now.model.AbstractWizardModel.java
com.android.capstone.patient.checkin_now.model.BranchPage.java
com.android.capstone.patient.checkin_now.model.CheckinNow_Model.java
com.android.capstone.patient.checkin_now.model.ModelCallbacks.java
com.android.capstone.patient.checkin_now.model.MultipleFixedChoicePage.java
com.android.capstone.patient.checkin_now.model.PageList.java
com.android.capstone.patient.checkin_now.model.PageTreeNode.java
com.android.capstone.patient.checkin_now.model.Page.java
com.android.capstone.patient.checkin_now.model.ReviewItem.java
com.android.capstone.patient.checkin_now.model.SingleFixedChoicePage.java
com.android.capstone.patient.checkin_now.ui.MultipleChoiceFragment.java
com.android.capstone.patient.checkin_now.ui.PageFragmentCallbacks.java
com.android.capstone.patient.checkin_now.ui.ReviewFragment.java
com.android.capstone.patient.checkin_now.ui.SingleChoiceFragment.java
com.android.capstone.patient.checkin_now.ui.StepPagerStrip.java
com.android.capstone.task.AddCheckinTask.java
com.android.capstone.task.AddMedicationsTask.java
com.android.capstone.task.AddPatientTask.java
com.android.capstone.task.GetClientCategoryTask.java
com.android.capstone.task.GetClientInfoTask.java
com.android.capstone.task.GetUserImageTask.java
com.android.capstone.task.RegisterDoctorTask.java
com.android.capstone.task.RegisterPatientTask.java
com.android.capstone.utils.CommonUtils.java
com.android.capstone.utils.RetrofitUtils.java
com.android.capstone.utils.SharedPrefUtils.java
com.android.capstone.views.CheckinLogsView.java
com.android.capstone.views.FloatingActionButton.java
com.coursera.capstone.checkin.Application.java
com.coursera.capstone.checkin.client.CheckinSvcApi.java
com.coursera.capstone.checkin.client.TokenSvcApi.java
com.coursera.capstone.checkin.controller.CheckinSvc.java
com.coursera.capstone.data.CheckinUtils.java
com.coursera.capstone.data.Checkin.java
com.coursera.capstone.data.ClientUtils.java
com.coursera.capstone.data.Constants.java
com.coursera.capstone.data.DoctorUtils.java
com.coursera.capstone.data.Doctor.java
com.coursera.capstone.data.InvalidRequestException.java
com.coursera.capstone.data.Medications.java
com.coursera.capstone.data.Message.java
com.coursera.capstone.data.MulticastResult.java
com.coursera.capstone.data.PMF.java
com.coursera.capstone.data.PatientUtils.java
com.coursera.capstone.data.Patient.java
com.coursera.capstone.data.Result.java
com.coursera.capstone.data.Sender.java
com.coursera.capstone.data.Token.java
com.coursera.capstone.data.VDoctor.java
com.coursera.capstone.data.VPatient.java
com.coursera.capstone.interceptor.AuthorizationInterceptor.java
com.coursera.capstone.interceptor.Checker.java