Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.fu_berlin.mi.tierklinik.patientenakte
- import android.content.Context
- import android.database.sqlite.SQLiteDatabase
- import android.graphics.drawable.Drawable
- import android.os.Parcel
- import android.os.Parcelable
- import com.beust.klaxon.*
- import org.json.JSONObject
- /**
- * Created by Mika Delor on 09.09.2017.
- * here goes the information on the patients
- */
- public class PatientInfo(var name: String, override var id: Int, var species: String, var breed: String,
- var boxNr: String, var colour: String, var sex: String, var castrated: String,
- var birthdate: String, var blood: String, var freeWalking: String,
- var vaccinationStatus: String, var vaccinationPassNr: String, var visitationWeight: String, var transfusable: String,
- var deathDay: String, var ownerSearchId: String, var fav: Boolean, var caseIds: Array<Int>, var ownerFirstName: String, var ownerLastName: String, var owner: OwnerInfo?) : Parcelable, SearchResultInfo() {
- //TODO change this to a constructor that gets all parameters, Create a Funktion that gets all data required to initialize this clean!
- constructor(simpleCaseId: Int, context: Context) : this(
- "",
- simpleCaseId,
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- false,
- Array<Int>(0) { 0 },
- "",
- "",
- null)
- override val type = Type.PATIENT
- var _parcelableDownHeirarchy = true
- val ownerName = "$ownerFirstName $ownerLastName"
- constructor(parcel: Parcel) : this(
- parcel.readString(),
- parcel.readInt(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readString(),
- parcel.readByte() !== 0.toByte(),
- parcel.createIntArray().toTypedArray(),
- parcel.readString(),
- parcel.readString(),
- parcel.readParcelable(OwnerInfo::class.java.classLoader)
- )
- constructor(json: JsonObject, context: Context) : this(
- json.string("name") ?: "",
- json.int("patientId") ?: 0,
- json.string("species") ?: "",
- json.string("breed") ?: "",
- try {
- json.int("boxNr").toString()
- } catch (e: Exception) {
- ""
- },
- json.string("colour") ?: "",
- json.string("sex") ?: "",
- when (json.boolean("castrated")) {null -> ""
- true -> "Ja"
- else -> "Nein"
- },
- json.string("birthdate") ?: "",
- json.string("blood") ?: "",
- try {
- json.int("freeWalking").toString()
- } catch (e: Exception) {
- ""
- },
- json.string("vaccinationStatus") ?: "",
- json.string("vaccinationPassNr_impfAwNummer") ?: "",
- json.double("vistitationWeight").toString(),
- try {
- json.int("transfusable").toString()
- } catch (e: Exception) {
- ""
- },
- json.string("deathDay") ?: "",
- try {
- json.int("ownerSearchId").toString()
- } catch (e: Exception) {
- ""
- },
- isInDatabase(json.int("patientId") ?: -1, context.applicationContext),
- json.array<Int>("caseIds")!!.toTypedArray(),
- json.string("ownerFirstname") ?: "",
- json.string("ownerLastname") ?: "",
- null)
- constructor(json: JSONObject, context: Context) : this(
- json.getString("name") ?: "",
- json.getInt("patientId") ?: 0,
- json.getString("species") ?: "",
- json.getString("breed") ?: "",
- try {
- json.getInt("boxNr").toString()
- } catch (e: Exception) {
- ""
- },
- json.getString("colour") ?: "",
- json.getString("sex") ?: "",
- when (json.getBoolean("castrated")) {null -> ""
- true -> "Ja"
- else -> "Nein"
- },
- json.getString("birthdate") ?: "",
- json.getString("blood") ?: "",
- try {
- json.getInt("freeWalking").toString()
- } catch (e: Exception) {
- ""
- },
- json.getString("vaccinationStatus") ?: "",
- json.getString("vaccinationPassNr_impfAwNummer") ?: "",
- json.getDouble("vistitationWeight").toString(),
- try {
- json.getInt("transfusable").toString()
- } catch (e: Exception) {
- ""
- },
- json.getString("deathDay") ?: "",
- try {
- json.getInt("ownerSearchId").toString()
- } catch (e: Exception) {
- ""
- },
- isInDatabase(json.getInt("patientId") ?: -1, context.applicationContext),
- JSONArrayToArrayInt(json, "caseIds"),
- json.getString("ownerFirstname") ?: "",
- json.getString("ownerLastname") ?: "",
- null)
- override fun writeToParcel(parcel: Parcel, flags: Int) {
- parcel.writeString(name)
- parcel.writeInt(id)
- parcel.writeString(species)
- parcel.writeString(breed)
- parcel.writeString(boxNr)
- parcel.writeString(colour)
- parcel.writeString(sex)
- parcel.writeString(castrated)
- parcel.writeString(birthdate)
- parcel.writeString(blood)
- parcel.writeString(freeWalking)
- parcel.writeString(vaccinationStatus)
- parcel.writeString(vaccinationPassNr)
- parcel.writeString(visitationWeight)
- parcel.writeString(transfusable)
- parcel.writeString(deathDay)
- parcel.writeString(ownerSearchId)
- parcel.writeByte((if (fav) 1 else 0).toByte())
- parcel.writeIntArray(caseIds.toIntArray())
- parcel.writeString(ownerFirstName)
- parcel.writeString(ownerLastName)
- parcel.writeParcelable(owner, flags)
- }
- override fun describeContents(): Int {
- return 0
- }
- companion object CREATOR : Parcelable.Creator<PatientInfo> {
- override fun createFromParcel(parcel: Parcel): PatientInfo {
- return PatientInfo(parcel)
- }
- override fun newArray(size: Int): Array<PatientInfo?> {
- return arrayOfNulls(size)
- }
- fun isInDatabase(id: Int, context: Context): Boolean {
- var pdhlpr = FavoritesDatabaseHelper(context.applicationContext)
- val db: SQLiteDatabase = pdhlpr.writableDatabase
- val idString = id.toString()
- val cursor = db.query(FavoritesDatabaseHelper.FavEntry.TABLE_NAME, arrayOf(FavoritesDatabaseHelper.FavEntry._ID), FavoritesDatabaseHelper.FavEntry._ID + "=?", arrayOf(id.toString()), null, null, null)
- //val cursor = db.rawQuery("select " + FavoritesDatabaseHelper.FavEntry._ID+" from" + FavoritesDatabaseHelper.FavEntry.TABLE_NAME+" where " + FavoritesDatabaseHelper.FavEntry._ID+"=$idString", null)
- val exists = cursor.count > 0
- cursor.close()
- return exists
- }
- fun JSONArrayToArrayInt(json: JSONObject, arrayname: String):Array<Int>{
- var arrayOut: Array<Int> = emptyArray()
- for(j in 0..json.getJSONArray(arrayname).length()){
- arrayOut.set(j,json.getJSONArray(arrayname).getInt(j))
- }
- return arrayOut
- }
- }
- override fun toString(): String {
- return "$name\nID: $id\n$ownerName"
- }
- fun favDrawable(context: Context): Drawable {
- return if (fav) {
- context.resources.getDrawable(android.R.drawable.star_big_on, context.theme)
- } else {
- context.resources.getDrawable(android.R.drawable.star_big_off, context.theme)
- }
- }
- }
Add Comment
Please, Sign In to add comment