Guest User

Untitled

a guest
Sep 19th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.33 KB | None | 0 0
  1. package de.fu_berlin.mi.tierklinik.patientenakte
  2.  
  3. import android.content.Context
  4. import android.database.sqlite.SQLiteDatabase
  5. import android.graphics.drawable.Drawable
  6. import android.os.Parcel
  7. import android.os.Parcelable
  8. import com.beust.klaxon.*
  9. import org.json.JSONObject
  10.  
  11. /**
  12. * Created by Mika Delor on 09.09.2017.
  13. * here goes the information on the patients
  14. */
  15.  
  16. public class PatientInfo(var name: String, override var id: Int, var species: String, var breed: String,
  17. var boxNr: String, var colour: String, var sex: String, var castrated: String,
  18. var birthdate: String, var blood: String, var freeWalking: String,
  19. var vaccinationStatus: String, var vaccinationPassNr: String, var visitationWeight: String, var transfusable: String,
  20. var deathDay: String, var ownerSearchId: String, var fav: Boolean, var caseIds: Array<Int>, var ownerFirstName: String, var ownerLastName: String, var owner: OwnerInfo?) : Parcelable, SearchResultInfo() {
  21.  
  22. //TODO change this to a constructor that gets all parameters, Create a Funktion that gets all data required to initialize this clean!
  23. constructor(simpleCaseId: Int, context: Context) : this(
  24. "",
  25. simpleCaseId,
  26. "",
  27. "",
  28. "",
  29. "",
  30. "",
  31. "",
  32. "",
  33. "",
  34. "",
  35. "",
  36. "",
  37. "",
  38. "",
  39. "",
  40. "",
  41. false,
  42. Array<Int>(0) { 0 },
  43. "",
  44. "",
  45. null)
  46.  
  47. override val type = Type.PATIENT
  48.  
  49. var _parcelableDownHeirarchy = true
  50.  
  51. val ownerName = "$ownerFirstName $ownerLastName"
  52.  
  53. constructor(parcel: Parcel) : this(
  54. parcel.readString(),
  55. parcel.readInt(),
  56. parcel.readString(),
  57. parcel.readString(),
  58. parcel.readString(),
  59. parcel.readString(),
  60. parcel.readString(),
  61. parcel.readString(),
  62. parcel.readString(),
  63. parcel.readString(),
  64. parcel.readString(),
  65. parcel.readString(),
  66. parcel.readString(),
  67. parcel.readString(),
  68. parcel.readString(),
  69. parcel.readString(),
  70. parcel.readString(),
  71. parcel.readByte() !== 0.toByte(),
  72. parcel.createIntArray().toTypedArray(),
  73. parcel.readString(),
  74. parcel.readString(),
  75. parcel.readParcelable(OwnerInfo::class.java.classLoader)
  76. )
  77.  
  78. constructor(json: JsonObject, context: Context) : this(
  79. json.string("name") ?: "",
  80. json.int("patientId") ?: 0,
  81. json.string("species") ?: "",
  82. json.string("breed") ?: "",
  83. try {
  84. json.int("boxNr").toString()
  85. } catch (e: Exception) {
  86. ""
  87. },
  88. json.string("colour") ?: "",
  89. json.string("sex") ?: "",
  90. when (json.boolean("castrated")) {null -> ""
  91. true -> "Ja"
  92. else -> "Nein"
  93. },
  94. json.string("birthdate") ?: "",
  95. json.string("blood") ?: "",
  96. try {
  97. json.int("freeWalking").toString()
  98. } catch (e: Exception) {
  99. ""
  100. },
  101. json.string("vaccinationStatus") ?: "",
  102. json.string("vaccinationPassNr_impfAwNummer") ?: "",
  103. json.double("vistitationWeight").toString(),
  104. try {
  105. json.int("transfusable").toString()
  106. } catch (e: Exception) {
  107. ""
  108. },
  109. json.string("deathDay") ?: "",
  110. try {
  111. json.int("ownerSearchId").toString()
  112. } catch (e: Exception) {
  113. ""
  114. },
  115. isInDatabase(json.int("patientId") ?: -1, context.applicationContext),
  116. json.array<Int>("caseIds")!!.toTypedArray(),
  117. json.string("ownerFirstname") ?: "",
  118. json.string("ownerLastname") ?: "",
  119. null)
  120.  
  121. constructor(json: JSONObject, context: Context) : this(
  122. json.getString("name") ?: "",
  123. json.getInt("patientId") ?: 0,
  124. json.getString("species") ?: "",
  125. json.getString("breed") ?: "",
  126. try {
  127. json.getInt("boxNr").toString()
  128. } catch (e: Exception) {
  129. ""
  130. },
  131. json.getString("colour") ?: "",
  132. json.getString("sex") ?: "",
  133. when (json.getBoolean("castrated")) {null -> ""
  134. true -> "Ja"
  135. else -> "Nein"
  136. },
  137. json.getString("birthdate") ?: "",
  138. json.getString("blood") ?: "",
  139. try {
  140. json.getInt("freeWalking").toString()
  141. } catch (e: Exception) {
  142. ""
  143. },
  144. json.getString("vaccinationStatus") ?: "",
  145. json.getString("vaccinationPassNr_impfAwNummer") ?: "",
  146. json.getDouble("vistitationWeight").toString(),
  147. try {
  148. json.getInt("transfusable").toString()
  149. } catch (e: Exception) {
  150. ""
  151. },
  152. json.getString("deathDay") ?: "",
  153. try {
  154. json.getInt("ownerSearchId").toString()
  155. } catch (e: Exception) {
  156. ""
  157. },
  158. isInDatabase(json.getInt("patientId") ?: -1, context.applicationContext),
  159. JSONArrayToArrayInt(json, "caseIds"),
  160. json.getString("ownerFirstname") ?: "",
  161. json.getString("ownerLastname") ?: "",
  162. null)
  163.  
  164.  
  165. override fun writeToParcel(parcel: Parcel, flags: Int) {
  166. parcel.writeString(name)
  167. parcel.writeInt(id)
  168. parcel.writeString(species)
  169. parcel.writeString(breed)
  170. parcel.writeString(boxNr)
  171. parcel.writeString(colour)
  172. parcel.writeString(sex)
  173. parcel.writeString(castrated)
  174. parcel.writeString(birthdate)
  175. parcel.writeString(blood)
  176. parcel.writeString(freeWalking)
  177. parcel.writeString(vaccinationStatus)
  178. parcel.writeString(vaccinationPassNr)
  179. parcel.writeString(visitationWeight)
  180. parcel.writeString(transfusable)
  181. parcel.writeString(deathDay)
  182. parcel.writeString(ownerSearchId)
  183. parcel.writeByte((if (fav) 1 else 0).toByte())
  184. parcel.writeIntArray(caseIds.toIntArray())
  185. parcel.writeString(ownerFirstName)
  186. parcel.writeString(ownerLastName)
  187. parcel.writeParcelable(owner, flags)
  188. }
  189.  
  190. override fun describeContents(): Int {
  191. return 0
  192. }
  193.  
  194. companion object CREATOR : Parcelable.Creator<PatientInfo> {
  195. override fun createFromParcel(parcel: Parcel): PatientInfo {
  196. return PatientInfo(parcel)
  197. }
  198.  
  199. override fun newArray(size: Int): Array<PatientInfo?> {
  200. return arrayOfNulls(size)
  201. }
  202.  
  203. fun isInDatabase(id: Int, context: Context): Boolean {
  204.  
  205. var pdhlpr = FavoritesDatabaseHelper(context.applicationContext)
  206. val db: SQLiteDatabase = pdhlpr.writableDatabase
  207. val idString = id.toString()
  208. val cursor = db.query(FavoritesDatabaseHelper.FavEntry.TABLE_NAME, arrayOf(FavoritesDatabaseHelper.FavEntry._ID), FavoritesDatabaseHelper.FavEntry._ID + "=?", arrayOf(id.toString()), null, null, null)
  209. //val cursor = db.rawQuery("select " + FavoritesDatabaseHelper.FavEntry._ID+" from" + FavoritesDatabaseHelper.FavEntry.TABLE_NAME+" where " + FavoritesDatabaseHelper.FavEntry._ID+"=$idString", null)
  210. val exists = cursor.count > 0
  211. cursor.close()
  212. return exists
  213. }
  214. fun JSONArrayToArrayInt(json: JSONObject, arrayname: String):Array<Int>{
  215. var arrayOut: Array<Int> = emptyArray()
  216. for(j in 0..json.getJSONArray(arrayname).length()){
  217. arrayOut.set(j,json.getJSONArray(arrayname).getInt(j))
  218. }
  219. return arrayOut
  220. }
  221. }
  222.  
  223. override fun toString(): String {
  224. return "$name\nID: $id\n$ownerName"
  225. }
  226.  
  227. fun favDrawable(context: Context): Drawable {
  228. return if (fav) {
  229. context.resources.getDrawable(android.R.drawable.star_big_on, context.theme)
  230. } else {
  231. context.resources.getDrawable(android.R.drawable.star_big_off, context.theme)
  232. }
  233. }
  234.  
  235.  
  236. }
Add Comment
Please, Sign In to add comment