patbef-iOS/Befund/Core/Models/Database/Results.swift

277 lines
9.2 KiB
Swift
Raw Normal View History

2024-01-29 16:20:42 +01:00
//
// Results.swift
// Befund
//
// Created by Irakli Abetschkhrischwili on 26.05.22.
// Copyright © 2022 MVZ Dr. Stein und Kollegen. All rights reserved.
import Foundation
import UIKit
extension Core.Models
{
public struct Database
{
/**
* Database results object
*/
public struct Results
{
public enum ResultsStatus : String
{
case NONE
case CREATED
case REJECTED
case EXPIRED
case COMPLETED
case DELETED
}
public var pgs: String? = nil
public var pat_hash: String? = nil
public var available: Bool = false
public var available_ts: String? = nil
public var picked_up: Bool = false
public var picked_up_ts: String? = nil
public var file_checksum: String? = nil
public var status: String? = nil
public var modified: String? = nil
public var created: String? = nil
public func GetStatus() -> Core.Models.Database.Results.ResultsStatus
{
switch(self.status)
{
case "CREATED": return .CREATED
case "REJECTED": return .REJECTED
case "EXPIRED": return .EXPIRED
case "COMPLETED": return .COMPLETED
case "DELETED": return .DELETED
default: return .NONE
}
}
/**
* Returns translated status of object
*/
public func GetStatusText() -> String
{
var result: String = Core.Lang.Get(key: "LBL_PENDING")
if(self.available && self.GetStatus() == .COMPLETED && !self.picked_up)
{
result = Core.Lang.Get(key: "LBL_READY_TO_DOWNLOAD")
}
else if(self.available && self.GetStatus() == .COMPLETED && self.picked_up)
{
result = Core.Lang.Get(key: "LBL_ALREADY_DOWNLOAD")
}
else if(!self.available && self.GetStatus() == .REJECTED)
{
result = Core.Lang.Get(key: "LBL_REJECTED")
}
else if(!self.available && self.GetStatus() == .EXPIRED)
{
result = Core.Lang.Get(key: "LBL_EXPIRED")
}
return result
}
/**
* Returns icon of the results status
*/
public func GetStatusIcon() -> UIImage
{
var result: UIImage = UIImage(named: "ic_opacity")!
if(self.available && self.GetStatus() == .COMPLETED && !self.picked_up)
{
result = UIImage(named: "ic_file_download")!
}
else if(self.available && self.GetStatus() == .COMPLETED && self.picked_up)
{
result = UIImage(named: "ic_picture_as_pdf")!
}
else if(!self.available && self.GetStatus() == .REJECTED)
{
result = UIImage(named: "ic_do_not_disturb_on")!
}
else if(!self.available && self.GetStatus() == .EXPIRED)
{
result = UIImage(named: "ic_av_timer")!
}
return result
}
/**
* Returns color of the results status
*/
public func GetStatusColor() -> UIColor
{
var result: UIColor = UIColor(red: 192/255, green: 192/255, blue: 192/255, alpha: 1)
if(self.available && self.GetStatus() == .COMPLETED && !self.picked_up)
{
result = UIColor(red: 101/255, green: 246/255, blue: 107/255, alpha: 1)
}
else if(self.available && self.GetStatus() == .COMPLETED && self.picked_up)
{
result = UIColor(red: 250/255, green: 138/255, blue: 47/255, alpha: 1)
}
else if(!self.available && self.GetStatus() == .REJECTED)
{
result = UIColor(red: 250/255, green: 46/255, blue: 46/255, alpha: 1)
}
else if(!self.available && self.GetStatus() == .EXPIRED)
{
result = UIColor(red: 250/255, green: 46/255, blue: 46/255, alpha: 1)
}
return result
}
/**
* Returns formated modified date
*/
public func GetModified() -> Date?
{
var result: Date? = nil
let dateFormatter = DateFormatter()
if(self.modified != nil)
{
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
result = dateFormatter.date(from: self.modified!)
}
return result
}
/**
* Returns formated created date
*/
public func GetCreated() -> Date?
{
var result: Date? = nil
let dateFormatter = DateFormatter()
if(self.created != nil)
{
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
result = dateFormatter.date(from: self.created!)
}
return result
}
/**
* Returns formated available date
*/
public func GetAvailableTS() -> Date?
{
var result: Date? = nil
let dateFormatter = DateFormatter()
if(self.available_ts != nil)
{
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
result = dateFormatter.date(from: available_ts!)
}
return result
}
/**
* Returns formated pickedup date
*/
public func GetPickedUpTS() -> Date?
{
var result: Date? = nil
let dateFormatter = DateFormatter()
if(self.picked_up_ts != nil)
{
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
result = dateFormatter.date(from: self.picked_up_ts!)
}
return result
}
/**
* Returns formated modified date as string
*/
public func GetFormatedModifiedDate() -> String?
{
var result: String? = nil
if(self.modified != nil)
{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy HH:mm:ss"
result = dateFormatter.string(from: self.GetModified()!)
}
return result
}
/**
* Returns formated created date as string
*/
public func GetFormatedCreatedDate() -> String?
{
var result: String? = nil
if(self.created != nil)
{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy HH:mm:ss"
result = dateFormatter.string(from: self.GetCreated()!)
}
return result
}
/**
* Returns formated available date as string
*/
public func GetFormatedAvailableTSDate() -> String?
{
var result: String? = nil
if(self.available_ts != nil)
{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy HH:mm:ss"
result = dateFormatter.string(from: self.GetAvailableTS()!)
}
return result
}
/**
* Returns formated picked up date as string
*/
public func GetFormatedPickedUpTSDate() -> String?
{
var result: String? = nil
if(self.picked_up_ts != nil)
{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy HH:mm:ss"
result = dateFormatter.string(from: self.GetPickedUpTS()!)
}
return result
}
}
}
}