You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
3.4 KiB
Swift
80 lines
3.4 KiB
Swift
//
|
|
// ConsentManager.swift
|
|
// surveys-example
|
|
//
|
|
// Created by Juan David López Regalado on 12/06/24.
|
|
//
|
|
|
|
import Foundation
|
|
import UIKit
|
|
import ResearchKit
|
|
|
|
class ConsentManager{
|
|
static let shared = ConsentManager()
|
|
|
|
func createConsentTask() -> ORKTask{
|
|
|
|
// Pagina de Welcome
|
|
let welcomeStep = ORKInstructionStep(identifier: "consentWelcomeInstructionStep")
|
|
welcomeStep.title = "Welcome!"
|
|
welcomeStep.iconImage = UIImage(systemName: "hand.wave")
|
|
welcomeStep.detailText = "Thank you for being part of the biomarker project aimed at determining the level of sedentary lifestyle. However, before accepting, please read the next part." // explain the consent
|
|
|
|
let sign = ORKInstructionStep(identifier: "signAccept")
|
|
sign.title = "Please Sign if you Accept"
|
|
|
|
|
|
// Pagina del before you join
|
|
let beforeYouJoin = ORKInstructionStep(identifier: "informedConsentInstructionStep")
|
|
beforeYouJoin.iconImage = UIImage(systemName: "doc.text.magnifyinglass")
|
|
beforeYouJoin.title = "Before You Join"
|
|
|
|
let sharingHealthDataBodyItem = ORKBodyItem(text: "The study will ask you to share some of your Health data.",
|
|
detailText: nil,
|
|
image: UIImage(systemName: "heart.fill"),
|
|
learnMoreItem: nil,
|
|
bodyItemStyle: .image)
|
|
|
|
let completingTasksBodyItem = ORKBodyItem(text: "You will be asked to complete various tasks over the duration of the study.",
|
|
detailText: nil,
|
|
image: UIImage(systemName: "checkmark.circle.fill"),
|
|
learnMoreItem: nil,
|
|
bodyItemStyle: .image)
|
|
|
|
let signatureBodyItem = ORKBodyItem(text: "Before joining, we will ask you to sign an informed consent document.",
|
|
detailText: nil,
|
|
image: UIImage(systemName: "signature"),
|
|
learnMoreItem: nil,
|
|
bodyItemStyle: .image)
|
|
|
|
let secureDataBodyItem = ORKBodyItem(text: "Your data is kept private and secure.",
|
|
detailText: nil,
|
|
image: UIImage(systemName: "lock.fill"),
|
|
learnMoreItem: nil,
|
|
bodyItemStyle: .image)
|
|
|
|
beforeYouJoin.bodyItems = [
|
|
sharingHealthDataBodyItem,
|
|
completingTasksBodyItem,
|
|
signatureBodyItem,
|
|
secureDataBodyItem
|
|
]
|
|
|
|
|
|
let instructionSteps = [sign]
|
|
|
|
let webViewStep = ORKWebViewStep(identifier: "WebViewStepIdentifier", instructionSteps:instructionSteps)
|
|
webViewStep.showSignatureAfterContent = true
|
|
|
|
|
|
let task = ORKOrderedTask(identifier: "ConsentTask", steps: [welcomeStep, beforeYouJoin, webViewStep, /*other steps*/])
|
|
|
|
return task
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|