/* * The contents of this file are subject to the OpenMRS Public License * Version 1.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://license.openmrs.org * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * * Copyright (C) OpenMRS, LLC. All Rights Reserved. */ package org.openmrs.mobile.databases.tables; import org.openmrs.mobile.databases.DBOpenHelper; import org.openmrs.mobile.databases.OpenMRSDBOpenHelper; import org.openmrs.mobile.models.Patient; public class PatientTable extends Table<Patient> { public static final String TABLE_NAME = "patients"; /** * Number of columns without ID column * use as a param to * * @see org.openmrs.mobile.databases.tables.Table#values(int) */ private static final int INSERT_COLUMNS_COUNT = 20; @Override public String createTableDefinition() { return CREATE_TABLE + TABLE_NAME + "(" + Column.ID + PRIMARY_KEY + Column.SYNCED + Column.Type.BOOLEAN + Column.DISPLAY + Column.Type.TEXT_TYPE_WITH_COMMA + Column.UUID + Column.Type.TEXT_TYPE_WITH_COMMA + Column.IDENTIFIER + Column.Type.TEXT_TYPE_WITH_COMMA + Column.GIVEN_NAME + Column.Type.TEXT_TYPE_NOT_NULL + Column.MIDDLE_NAME + Column.Type.TEXT_TYPE_WITH_COMMA + Column.FAMILY_NAME + Column.Type.TEXT_TYPE_NOT_NULL + Column.GENDER + Column.Type.TEXT_TYPE_NOT_NULL + Column.BIRTH_DATE + Column.Type.DATE_TYPE_NOT_NULL + Column.DEATH_DATE + Column.Type.DATE_TYPE_WITH_COMMA + Column.CAUSE_OF_DEATH + Column.Type.TEXT_TYPE_WITH_COMMA + Column.AGE + Column.Type.TEXT_TYPE_WITH_COMMA + Column.PHOTO + Column.Type.BLOB_TYPE_WITH_COMMA + Column.ADDRESS_1 + Column.Type.TEXT_TYPE_WITH_COMMA + Column.ADDRESS_2 + Column.Type.TEXT_TYPE_WITH_COMMA + Column.POSTAL_CODE + Column.Type.TEXT_TYPE_WITH_COMMA + Column.COUNTRY + Column.Type.TEXT_TYPE_WITH_COMMA + Column.STATE + Column.Type.TEXT_TYPE_WITH_COMMA + Column.CITY + Column.Type.TEXT_TYPE_WITH_COMMA + Column.ENCOUNTERS + Column.Type.TEXT_TYPE + ");"; } @Override public String insertIntoTableDefinition() { return INSERT_INTO + TABLE_NAME + "(" + Column.DISPLAY + Column.COMMA + Column.SYNCED+ Column.COMMA + Column.UUID + Column.COMMA + Column.IDENTIFIER + Column.COMMA + Column.GIVEN_NAME + Column.COMMA + Column.MIDDLE_NAME + Column.COMMA + Column.FAMILY_NAME + Column.COMMA + Column.GENDER + Column.COMMA + Column.BIRTH_DATE + Column.COMMA + Column.DEATH_DATE + Column.COMMA + Column.CAUSE_OF_DEATH + Column.COMMA + Column.AGE + Column.COMMA + Column.PHOTO + Column.COMMA + Column.ADDRESS_1 + Column.COMMA + Column.ADDRESS_2 + Column.COMMA + Column.POSTAL_CODE + Column.COMMA + Column.COUNTRY + Column.COMMA + Column.STATE + Column.COMMA + Column.CITY + Column.COMMA + Column.ENCOUNTERS+ ")" + values(INSERT_COLUMNS_COUNT); } @Override public String dropTableDefinition() { return DROP_TABLE_IF_EXISTS + TABLE_NAME; } @Override public Long insert(Patient tableObject) { DBOpenHelper helper = OpenMRSDBOpenHelper.getInstance().getDBOpenHelper(); return helper.insertPatient(helper.getWritableDatabase(), tableObject); } @Override public int update(long tableObjectID, Patient tableObject) { DBOpenHelper helper = OpenMRSDBOpenHelper.getInstance().getDBOpenHelper(); return helper.updatePatient(helper.getWritableDatabase(), tableObjectID, tableObject); } @Override public void delete(long tableObjectID) { DBOpenHelper openHelper = OpenMRSDBOpenHelper.getInstance().getDBOpenHelper(); openHelper.getWritableDatabase().delete(TABLE_NAME, MasterColumn.ID + MasterColumn.EQUALS + tableObjectID, null); } public class Column extends MasterColumn { public static final String IDENTIFIER = "identifier"; public static final String SYNCED = "synced"; public static final String GIVEN_NAME = "givenName"; public static final String MIDDLE_NAME = "middleName"; public static final String FAMILY_NAME = "familyName"; public static final String GENDER = "gender"; public static final String BIRTH_DATE = "birthDate"; public static final String DEATH_DATE = "deathDate"; public static final String CAUSE_OF_DEATH = "causeOfDeath"; public static final String AGE = "age"; public static final String PHOTO = "photo"; public static final String ADDRESS_1 = "address1"; public static final String ADDRESS_2 = "address2"; public static final String POSTAL_CODE = "postalCode"; public static final String COUNTRY = "country"; public static final String STATE = "state"; public static final String CITY = "city"; public static final String ENCOUNTERS = "encounters"; } @Override public String toString() { return TABLE_NAME + createTableDefinition(); } }