277 lines
9.2 KiB
Swift
277 lines
9.2 KiB
Swift
//
|
|
// 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
|
|
}
|
|
}
|
|
}
|
|
}
|