PACS.swift 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. //
  2. // PACS.swift
  3. // MCPlus
  4. //
  5. // Created by seo ha on 14/02/2019.
  6. // Copyright © 2019 KangSH. All rights reserved.
  7. //
  8. import Foundation
  9. struct PACS:Codable{
  10. var serverUrl:String?
  11. var userId:String?
  12. var userPw:String?
  13. var product:String?
  14. var pId:String?
  15. var accno:String?
  16. var returnUrl:String?
  17. var type:String?
  18. var studyInstanceUid:String?
  19. enum CodingKeys: String, CodingKey {
  20. case serverUrl = "PACS_APP_SERVER_URL"
  21. case userId = "user_id"
  22. case userPw = "user_pw"
  23. case pId = "pid"
  24. case accno
  25. case type
  26. case studyInstanceUid = "study_instance_uid"
  27. }
  28. init(from decoder: Decoder) throws {
  29. let values = try decoder.container(keyedBy: CodingKeys.self)
  30. serverUrl = try values.decode(String.self, forKey: .serverUrl)
  31. returnUrl = Constants.PACS_APP_RETURN_URL
  32. product = Constants.PACS_APP_PRODUCT
  33. userId = try values.decode(String.self, forKey: .userId)
  34. userPw = try values.decode(String.self, forKey: .userPw)
  35. pId = try values.decode(String.self, forKey: .pId)
  36. accno = try values.decode(String.self, forKey: .accno)
  37. studyInstanceUid = try values.decode(String.self, forKey: .studyInstanceUid)
  38. type = try values.decode(String.self, forKey: .type)
  39. // 파라미터를 암호화
  40. // AES 설명 http://olooi.tistory.com/entry/AES-%EC%95%94%ED%98%B8%ED%99%94
  41. // test site : http://aesencryption.net/#Java-aes-encryption-example
  42. self.encryption(Constants.PACS_APP_ENC_KEY)
  43. }
  44. mutating func encryption(_ key:String){
  45. self.serverUrl = serverUrl?.encryptWithKey(key: key)
  46. self.userId = userId?.encryptWithKey(key: key)
  47. self.userPw = userPw?.encryptWithKey(key: key)
  48. self.product = product?.encryptWithKey(key: key)
  49. self.pId = pId?.encryptWithKey(key: key)
  50. self.accno = accno?.encryptWithKey(key: key)
  51. self.returnUrl = returnUrl?.encryptWithKey(key: key)
  52. self.type = type?.encryptWithKey(key: key)
  53. self.studyInstanceUid = studyInstanceUid?.encryptWithKey(key: key)
  54. }
  55. }