001/*-
002 * #%L
003 * Smile CDR - CDR
004 * %%
005 * Copyright (C) 2016 - 2025 Smile CDR, Inc.
006 * %%
007 * All rights reserved.
008 * #L%
009 */
010package ca.cdr.api.priorauth;
011
012import ca.cdr.api.model.json.AbstractModelJson;
013import ca.cdr.api.model.json.OAuth2ClientDetailsJson;
014import ca.cdr.api.model.json.UserDetailsJson;
015import com.fasterxml.jackson.annotation.JsonProperty;
016import io.swagger.v3.oas.annotations.media.Schema;
017import jakarta.annotation.Nonnull;
018import org.apache.commons.lang3.StringUtils;
019
020import java.util.List;
021
022@Schema(name = "PriorAuthCrdContext", description = "Prior Auth CRD Context")
023public class PriorAuthCrdContextJson extends AbstractModelJson {
024
025        @Schema(description = "Patient ID for the payer system in context.")
026        @JsonProperty("payerPatientId")
027        private String myPayerPatientId;
028
029        @Schema(description = "Details of user session")
030        @JsonProperty("userDetails")
031        private UserDetailsJson myUserDetails;
032
033        @Schema(description = "Details of OAuth2 client details")
034        @JsonProperty("oauth2ClientDetails")
035        private OAuth2ClientDetailsJson myOAuth2ClientDetailsJson;
036
037        @Schema(description = "Details of CPT codes.")
038        @JsonProperty("priorAuthCrdCptCodes")
039        private List<PriorAuthCrdCptCodesJson> myPriorAuthCrdCptCodes;
040
041        @Schema(description = "Configs for CRD Apply processor.")
042        @JsonProperty("crdApplyProcessorConfig")
043        private CrdApplyProcessorConfig myCrdApplyProcessorConfig;
044
045        public String getPayerPatientId() {
046                return myPayerPatientId;
047        }
048
049        public UserDetailsJson getUserDetails() {
050                return myUserDetails;
051        }
052
053        public OAuth2ClientDetailsJson getOAuth2ClientDetailsJson() {
054                return myOAuth2ClientDetailsJson;
055        }
056
057        public List<PriorAuthCrdCptCodesJson> getPriorAuthCrdCptCodes() {
058                return myPriorAuthCrdCptCodes;
059        }
060
061        public void setPayerPatientId(@Nonnull String thePayerPatientId) {
062                myPayerPatientId = thePayerPatientId;
063        }
064
065        public boolean hasPayerPatientId() {
066                return StringUtils.isNotBlank(myPayerPatientId);
067        }
068
069        public void setUserDetails(UserDetailsJson theUserDetails) {
070                myUserDetails = theUserDetails;
071        }
072
073        public void setOAuth2ClientDetailsJson(OAuth2ClientDetailsJson theOAuth2ClientDetailsJson) {
074                myOAuth2ClientDetailsJson = theOAuth2ClientDetailsJson;
075        }
076
077        public void setPriorAuthCrdCptCodes(List<PriorAuthCrdCptCodesJson> thePriorAuthCrdCptCodes) {
078                myPriorAuthCrdCptCodes = thePriorAuthCrdCptCodes;
079        }
080
081        public CrdApplyProcessorConfig getCrdApplyProcessorConfig() {
082                return myCrdApplyProcessorConfig;
083        }
084
085        public void setCrdApplyProcessorConfig(CrdApplyProcessorConfig theCrdApplyProcessorConfig) {
086                myCrdApplyProcessorConfig = theCrdApplyProcessorConfig;
087        }
088}