models

package
v1.1.80 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2021 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Overview

Copyright 2021 Fundación UNID

Copyright 2021 Fundación UNID

Index

Constants

View Source
const (
	// From distinct API resources
	FhirApiAuthenticator         = "authenticator" // Who/what has authenticated the data
	FhirApiAuthor                = "author"        // Who/what has authored the data
	FhirApiOrganizationCustodian = "custodian"     // Organization which maintains the data
	FhirApiSubject               = "subject"       // Who/what is the subject data relates to
	FhirApiOrganization          = "organization"  // The organization custodian or responsible
	FhirApiManufacturer          = "manufacturer"  // Who manufacture
	FhirApiPerformer             = "performer"     // Who performs
	FhirApiAsserter              = "asserter"      // Source of the information
	FHirApiRecorder              = "recorder"      // Who recorder
	FhirApiDevice                = "device"        // Device identifier

	// DocumentReference
	FhirApiCategory        = "category"    // IPS / USCDI section (High-level kind of clinical document) e.g. "11369-6" (History of Immunization)
	FhirApiMimeContentType = "contenttype" // e.g. application/pdf
	FhirApiDate            = "date"        // When the FHIR resource was created in ISO format (FHIR dateTime)
	FhirApiDescription     = "description" // Human-readable description
	FhirApiEncounter       = "encounter"   // Context of the document content
	FhirApiEvent           = "event"       // Main clinical acts documented
	FhirApiFacilityType    = "facility"    // Kind of facility where subject was seen
	FhirApiFormatCodeSet   = "format"      // Format/content rules for the document e.g. "urn:ihe:pcc:xphr:2007" or "urn:ihe:pcc:ic:2008"
	FhirApiIdentifier      = "identifier"  // Master Version Specific Identifier
	FhirApiLanguage        = "language"    // Language of the FHIR resource
	FhirApiLocation        = "location"    // URI where the data can be found
	FhirApiPeriod          = "period"      // FHIR dateTime: time of service that is being documented
	FhirApiRelated         = "related"
	FhirApiRelatesTo       = "relatesto"
	FhirApiRelation        = "relation"
	FhirApiRelationShip    = "relationship"
	FhirApiSecurityLabel   = "security-label"
	FhirApiPracticeSetting = "setting" // Clinical Specialty: additional details about where the content was created (e.g. clinical specialty)
	FhirApiStatus          = "status"  // Current status (accepted values depends on each specific FHIR resource)

	// Procedure
	FhirApiBasedOn               = "based-on"
	FhirApiCode                  = "code"
	FhirApiInstantiatesCanonical = "instantiates-canonical"
	FhirApiInstantiatesUri       = "instantiates-uri"
	FhirApiPartOf                = "part-of"
	FhirApiReasonCode            = "reason-code" // Why occurred the healthcare process
	FhirApiReasonReference       = "reason-reference"

	// Device
	FhirApiModel               = "model"
	FhirApiType                = "type"        // Type for device, also for additional more precise type of document ...
	FhirApiDeviceUdiCarrierHRF = "udi-carrier" // UDI Barcode (RFID or other technology) string in *HRF* format
	FhirApiDeviceUdiDI         = "udi-di"      // The udi Device Identifier (DI)
	FhirApiURL                 = "url"         // Network address to contact device

	// Immunization
	FhirApiLotNumber    = "lot-number"     // Vaccine lot number.
	FhirApiReaction     = "reaction"       // Observation with details on reaction
	FhirApiReactionDate = "reaction-date"  // Both for immunization and for allergies and intolerances
	FhirStatusReason    = "status-reason"  // Not done reason code
	FhirTargetDisease   = "target-disease" // Target disease.

	// Allergies and intolerances
	FhirApiClinicalStatus        = "clinical-status"
	FhirApiCritically            = "critically"
	FhirApiOccurrenceLastDate    = "last-date"
	FhirApiReactionManifestation = "manifestation"
	FhirApiReactionOnset         = "onset"
	FhirApiRoute                 = "route" // Path of substance
	FhirApiSeverity              = "severity"
	FhirApiVerificationStatus    = "verification-status"

	// MedicationAdministration
	FhirApiContext        = "context" // reference to episode of care or encounter
	FhirApiEffectiveTime  = "effective-time"
	FhirApiMedication     = "medication"
	FhirApiReasonGiven    = "reason-given"
	FhirApiReasonNotGiven = "reason-not-given"
	FhirApiRequest        = "request"
)
View Source
const (
	UhcApiConnection           = "connection"        // ID of an existing UHC connection
	UhcApiTextTile             = "text-title"        // Title in plain text filed by a practitioner or device (no xhtml)
	UhcApiDocStatus            = "docstatus"         // e.g. "final", "preliminary", "amended", "entered-in-error"
	UhcApiSHA1Hex              = "sha1-hex"          // Legacy SHA1 digest in hexadecimal (FHIR Attachment Hash is Base64 SHA1,not Hex)
	UhcApiBytesSize            = "size"              // Number of bytes of content
	UhcApiCreationDateTime     = "creation"          // When the attached file or message was created (distinct from FhirApiDate for FHIR resources)
	UhcApiVaccineCodeCVX       = "vaccine-cvx"       // Vaccine Administered  CVX code.
	UhcApiDoseNumber           = "dose-number"       // Dose number within series.
	UhcApiDosesRecommended     = "doses-recommended" // Recommended number of doses for immunity.
	UhcApiExpirationDate       = "expiration"        // FHIR dateTime of expiration
	UhcApiDoseQuantity         = "dose-quantity"     // Amount of dose and international unit separated by "|" e.g.: 1|mL
	UhcApiSiteBody             = "site"              // Body site
	UhcApiAdministrationMethod = "method"            // How drug was administered
	UhcApiRateRatioNumerator   = "ratio-numerator"   // Numerator value with international unit separated by "|" e.g.: 1|mL
	UhcApiRateRatioDenominator = "ratio-denominator" // Denominator value with international unit separated by "|" e.g.: 1|mL
	UhcApiRateQuantity         = "rate-quantity"     // Dose quantity per unit of time with international unit separated by "|" e.g.: 1|mL
)
View Source
const (
	DIDMethod            = "did:unid:"
	CreatorParts         = 2
	X25519KeyType        = "X25519KeyAgreementKey2019"
	Ed25519KeyType       = "Ed25519VerificationKey2018"
	Ed25519SignatureType = "Ed25519Signature2018"
	DidSchemaV1          = "https://w3id.org/did/v1"
	DidContext           = "https://www.w3.org/ns/did/v1"
	SecurityContext      = "https://w3id.org/security/v2"
	X25519pub            = 0xec // Curve25519 public key in multicodec table https://github.com/multiformats/multicodec/blob/master/table.csv.
)
View Source
const (
	SignatureEdDSA   = "EdDSA" // signatureEdDSA defines EdDSA alg.
	JwtPartsNumber   = 3
	JwtHeaderPart    = 0
	JwtSignaturePart = 2
)
View Source
const (
	OrganizationUHCAccessNONE  = "NONE"
	OrganizationUHCAccessADMIN = "ADMIN"
)
View Source
const (
	OrganizationUHCStatusINACTIVE = "INACTIVE"
	OrganizationUHCStatusADMIN    = "ACTIVE"
)
View Source
const (
	// for 'Usage'
	EncryptionKeyTypeEncryption = "ENCRYPTION" // Please avoid this name and use KeyUsageEncryption
	EncryptionKeyTypeSigning    = "SIGN"       // Please avoid this name and use KeyUsageSigning
	KeyUsageEncryption          = "ENCRYPTION" // Use this one instead of EncryptionKeyTypeEncryption
	KeyUsageSigning             = "SIGN"       // Use this one instead of EncryptionKeyTypeSigning

)
View Source
const (
	UserTypePersonal     = "USER"
	UserTypePractitioner = "PROFESSIONAL"
	UserTypeDevice       = "DEVICE"
	UserTypeDepartment   = "ORGSERVICE"
	UserTypeOrganization = "ORGANIZATION"
)
View Source
const DidDocSchema = `` /* 3053-byte string literal not displayed */
View Source
const HL7CodeSystemLOINC = "http://loinc.org"
View Source
const HL7CodeSystemSNOMED = "http://snomed.info/sct"
View Source
const HeaderFHIR = "x-fhir-"
View Source
const HeaderUHC = "x-uhc-"
View Source
const ReadStatus = "READ"
View Source
const SecurityV1DocSchema = `` /* 2059-byte string literal not displayed */
View Source
const SecurityV2DocSchema = `` /* 3230-byte string literal not displayed */
View Source
const TrustblocContext = `` /* 1600-byte string literal not displayed */
View Source
const UhcCodeTagCovidData = "COVID_DATA"
View Source
const UnreadStatus = "UNREAD"

Variables

View Source
var JsonldCache = map[string]interface{}{
	"https://w3id.org/security/v1":                                 SecurityV1DocSchema,
	"https://w3id.org/security/v2":                                 SecurityV2DocSchema,
	"https://trustbloc.github.io/context/vc/credentials-v1.jsonld": TrustblocContext,
}

Functions

func Base64StringToBytes added in v1.1.41

func Base64StringToBytes(str string) ([]byte, error)

func Base64StringToBytes32 added in v1.1.41

func Base64StringToBytes32(str string) ([32]byte, error)

func BytesToBase64String added in v1.1.41

func BytesToBase64String(b []byte) string

func BytesToString added in v1.1.41

func BytesToString(b []byte) string

func BytesToStringUTF8 added in v1.1.41

func BytesToStringUTF8(b []byte) string

func GeApiFhirParamTokenByCodeLOINC added in v1.0.60

func GeApiFhirParamTokenByCodeLOINC(paramToken *string) *string

func GeApiFhirParamTokenByCodeSNOMED added in v1.0.60

func GeApiFhirParamTokenByCodeSNOMED(paramToken *string) *string

func GetCodeByApiFhirParamToken added in v1.0.60

func GetCodeByApiFhirParamToken(paramToken, system *string) *string

Method returns the code after splitting paramCode by "|" (system|code): https://www.hl7.org/fhir/search.html#token

func GetDigestValue

func GetDigestValue(algorithm string, data []byte) (digestValue string, err error)

GetDigestValue returns the digest of some data, using a specified algorithm. It only returns an error when an invalid algorithm is used. The valid ones are: SHA1, SHA256, SHA512, SHA3256, and SHA3512.

func GetHashKeccakShake256AsHexString

func GetHashKeccakShake256AsHexString(bytes []byte) string

func GetHashKeccakShake256Bytes

func GetHashKeccakShake256Bytes(bytes []byte) []byte

func GetHashLegacySHA1AsHexString

func GetHashLegacySHA1AsHexString(bytes []byte) string

func GetHashSHA3256AsHexString

func GetHashSHA3256AsHexString(bytes []byte) string

func GetPeriodStartOrEndByApiFhirParamDate added in v1.0.60

func GetPeriodStartOrEndByApiFhirParamDate(paramDate *string, endPeriod bool) *string

returns a date 'start' (false) or 'end' (true) from a Period date parameter removing boundaries

func HttpNotificationResponse added in v1.1.78

func HttpNotificationResponse(w http.ResponseWriter, code int, customCode int, customMessage string, data []NotificationUHC)

func HttpResponseJSON added in v1.1.76

func HttpResponseJSON(w http.ResponseWriter, code int, customCode int, customMessage string, data *[]interface{})

func RemoveFhirBoundariesFromDateString added in v1.0.60

func RemoveFhirBoundariesFromDateString(date *string) *string

Types

type AcceptedTerms added in v1.1.43

type AcceptedTerms struct {
	AcceptedTimestampISO string   `json:"acceptedTimestampISO,omitempty" bson:"acceptedTimestampISO,omitempty"`
	AppTerms             AppTerms `bson:",inline"`
}

stored in backend / output from backend

type AcceptedTermsAndCondition

type AcceptedTermsAndCondition struct {
	TermsAndConditionsId string    `json:"termsAndConditionsId,omitempty" bson:"termsAndConditionsId,omitempty"`
	AcceptedDate         time.Time `json:"acceptedDate,omitempty" bson:"acceptedDate,omitempty"`
}

deprecated, use AcceptedTerms

type AddressClaim added in v1.1.28

type AddressClaim struct {
	Context []string     `bson:"@context,omitempty" json:"@context,omitempty"`
	Digest  Digest       `bson:"digest,omitempty" json:"digest,omitempty"`
	Data    AddressPlain `bson:"data,omitempty" json:"data,omitempty"`
	Holder  Holder       `bson:"holder,omitempty" json:"holder,omitempty"`
	Id      string       `bson:"id,omitempty" json:"id,omitempty"` // version of the blockchain certified Data
	Proofs  []Proof      `bson:"proof,omitempty" json:"proof,omitempty"`
	Type    string       `bson:"type,omitempty" json:"type,omitempty"`
}

If Data.extensionVcId does not exists then there is no blockchain certification If blockchain certification every modification generates a new Data.extensionVcId Data.ExtensionVcId is the Credential.ID from the blockchain

type AddressDataRegistrationRequest added in v1.1.38

type AddressDataRegistrationRequest struct {
	IndividualUserId  string `bson:"individualUserId,omitempty" json:"individualUserId,omitempty"` // only for patients
	PractitionerId    string `bson:"practitionerId,omitempty" json:"practitionerId,omitempty"`     // only for practitioners
	AddressCity       string `bson:"addressCity,omitempty" json:"addressCity,omitempty"`           // City or town
	AddressCountry    string `bson:"addressCountry,omitempty" json:"addressCountry,omitempty"`
	AddressDistrict   string `bson:"addressDistrict,omitempty" json:"addressDistrict,omitempty"` // Province
	AddressLine1      string `bson:"addressLine1,omitempty" json:"addressLine1,omitempty"`       // principal line
	AddressLine2      string `bson:"addressLine2,omitempty" json:"addressLine2,omitempty"`       // additional line
	AddressPostalCode string `bson:"addressPostalCode,omitempty" json:"addressPostalCode,omitempty"`
	AddressState      string `bson:"addressState,omitempty" json:"addressState,omitempty"` // Region
	AddressUse        string `bson:"addressUse,omitempty" json:"addressUse,omitempty"`     // home | work | temp | old | billing
}

TODO: address ISO https://build.fhir.org/iso-21090.html

type AddressOfficialPhysicalHome added in v1.1.24

type AddressOfficialPhysicalHome struct {
	AddressOfficialPhysicalHomeCity       string   `bson:"addressOfficialPhysicalHomeCity,omitempty" json:"addressOfficialPhysicalHomeCity,omitempty"` // City or Town
	AddressOfficialPhysicalHomeCountry    string   `bson:"addressOfficialPhysicalHomeCountry,omitempty" json:"addressOfficialPhysicalHomeCountry,omitempty"`
	AddressOfficialPhysicalHomeDistrict   string   `bson:"addressOfficialPhysicalHomeDistrict,omitempty" json:"addressOfficialPhysicalHomeDistrict,omitempty"` // Province
	AddressOfficialPhysicalHomeLine       []string `bson:"addressOfficialPhysicalHomeLine,omitempty" json:"addressOfficialPhysicalHomeLine,omitempty"`         // One or several address lines
	AddressOfficialPhysicalHomePostalCode string   `bson:"addressOfficialPhysicalHomePostalCode,omitempty" json:"addressOfficialPhysicalHomePostalCode,omitempty"`
	AddressOfficialPhysicalHomeState      string   `bson:"addressOfficialPhysicalHomeState,omitempty" json:"addressOfficialPhysicalHomeState,omitempty"` // Region
	AddressOfficialPhysicalHomeText       string   `bson:"addressOfficialPhysicalHomeText,omitempty" json:"addressOfficialPhysicalHomeText,omitempty"`
}

type AddressOtherPhysicalHome added in v1.1.24

type AddressOtherPhysicalHome struct {
	AddressOtherPhysicalHomeCity       string   `bson:"addressOtherPhysicalHomeCity,omitempty" json:"addressOtherPhysicalHomeCity,omitempty"` // City or Town
	AddressOtherPhysicalHomeCountry    string   `bson:"addressOtherPhysicalHomeCountry,omitempty" json:"addressOtherPhysicalHomeCountry,omitempty"`
	AddressOtherPhysicalHomeDistrict   string   `bson:"addressOtherPhysicalHomeDistrict,omitempty" json:"addressOtherPhysicalHomeDistrict,omitempty"` // Province
	AddressOtherPhysicalHomeLine       []string `bson:"addressOtherPhysicalHomeLine,omitempty" json:"addressOtherPhysicalHomeLine,omitempty"`         // One or several address lines
	AddressOtherPhysicalHomePostalCode string   `bson:"addressOtherPhysicalHomePostalCode,omitempty" json:"addressOtherPhysicalHomePostalCode,omitempty"`
	AddressOtherPhysicalHomeState      string   `bson:"addressOtherPhysicalHomeState,omitempty" json:"addressOtherPhysicalHomeState,omitempty"` // Region
	AddressOtherPhysicalHomeText       string   `bson:"addressOtherPhysicalHomeText,omitempty" json:"addressOtherPhysicalHomeText,omitempty"`
}

type AddressPlain added in v1.1.28

type AddressPlain struct {
	AddressCity        string `bson:"addressCity,omitempty" json:"addressCity,omitempty"` // Only one address is allowed per Location
	AddressCountry     string `bson:"addressCountry,omitempty" json:"addressCountry,omitempty"`
	AddressDistrict    string `bson:"addressDistrict,omitempty" json:"addressDistrict,omitempty"` // Province
	AddressLine1       string `bson:"addressLine1,omitempty" json:"addressLine1,omitempty"`       // principal line
	AddressLine2       string `bson:"addressLine2,omitempty" json:"addressLine2,omitempty"`       // additional line
	AddressPostalCode  string `bson:"addressPostalCode,omitempty" json:"addressPostalCode,omitempty"`
	AddressState       string `bson:"addressState,omitempty" json:"addressState,omitempty"` // Region
	AddressText        string `bson:"addressText,omitempty" json:"addressText,omitempty"`
	AddressType        string `bson:"addressType,omitempty" json:"addressType,omitempty"` // postal | physical | both
	AddressUse         string `bson:"addressUse,omitempty" json:"addressUse,omitempty"`   // home | work | temp | old | billing
	AddressValidFrom   string `bson:"addressValidFrom,omitempty" json:"addressValidFrom,omitempty"`
	AddressValidUntil  string `bson:"addressValidUntil,omitempty" json:"addressValidUntil,omitempty"`
	AddressUniversalId string `bson:"addressUniversalId,omitempty" json:"addressUniversalId,omitempty"` // internal storage ID of the data resource

}

it is used in LocationSheetUHC

type AddressPostalHomeBilling added in v1.1.24

type AddressPostalHomeBilling struct {
	AddressPostalHomeBillingCity       string   `bson:"addressPostalHomeBillingCity,omitempty" json:"addressPostalHomeBillingCity,omitempty"` // City or Town
	AddressPostalHomeBillingCountry    string   `bson:"addressPostalHomeBillingCountry,omitempty" json:"addressPostalHomeBillingCountry,omitempty"`
	AddressPostalHomeBillingDistrict   string   `bson:"addressPostalHomeBillingDistrict,omitempty" json:"addressPostalHomeBillingDistrict,omitempty"` // Province
	AddressPostalHomeBillingLine       []string `bson:"addressPostalHomeBillingLine,omitempty" json:"addressPostalHomeBillingLine,omitempty"`         // One or several address lines
	AddressPostalHomeBillingPostalCode string   `bson:"addressPostalHomeBillingPostalCode,omitempty" json:"addressPostalHomeBillingPostalCode,omitempty"`
	AddressPostalHomeBillingState      string   `bson:"addressPostalHomeBillingState,omitempty" json:"addressPostalHomeBillingState,omitempty"` // Region
	AddressPostalHomeBillingText       string   `bson:"addressPostalHomeBillingText,omitempty" json:"addressPostalHomeBillingText,omitempty"`
}

type AddressTempPhysicalHome added in v1.1.24

type AddressTempPhysicalHome struct {
	AddressTempPhysicalHomeCity       string   `bson:"addressTempPhysicalHomeCity,omitempty" json:"addressTempPhysicalHomeCity,omitempty"` // City or Town
	AddressTempPhysicalHomeCountry    string   `bson:"addressTempPhysicalHomeCountry,omitempty" json:"addressTempPhysicalHomeCountry,omitempty"`
	AddressTempPhysicalHomeDistrict   string   `bson:"addressTempPhysicalHomeDistrict,omitempty" json:"addressTempPhysicalHomeDistrict,omitempty"` // Province
	AddressTempPhysicalHomeLine       []string `bson:"addressTempPhysicalHomeLine,omitempty" json:"addressTempPhysicalHomeLine,omitempty"`         // One or several address lines
	AddressTempPhysicalHomePostalCode string   `bson:"addressTempPhysicalHomePostalCode,omitempty" json:"addressTempPhysicalHomePostalCode,omitempty"`
	AddressTempPhysicalHomeState      string   `bson:"addressTempPhysicalHomeState,omitempty" json:"addressTempPhysicalHomeState,omitempty"` // Region
	AddressTempPhysicalHomeText       string   `bson:"addressTempPhysicalHomeText,omitempty" json:"addressTempPhysicalHomeText,omitempty"`
}

type ApiDocumentReferenceClaimsJWT

type ApiDocumentReferenceClaimsJWT struct {
	// gojwt.Claims
	jwt.StandardClaims
	ApiDocumentReferenceOptions
}

type ApiDocumentReferenceOptions

type ApiDocumentReferenceOptions struct {
	// UHC specific
	ConnectionUHC string // UHC private connection e.g. http://api.unid.es/v1/connection/987
	DocStatus     string // e.g. "final", "preliminary", "amended", "entered-in-error"
	TextTitle     string // Title in plain text filed by a practitioner or device (no xhtml)
	FileSHA1Hex   string // Legacy SHA1 digest in hexadecimal (FHIR Attachment Hash is Base64 SHA1,not Hex)
	FileSize      string // Number of bytes of content
	FileDate      string // Number of bytes of content
	// DocumentReference
	Authenticator         string // Who signs the data e.g. http://unid.es/api/v1/fhir/R4/Person/123
	Author                string // Who created the data e.g. http://unid.es/api/v1/fhir/R4/Practitioner/234
	CategoryLOINC         string // IPS / USCDI section (High-level kind of clinical document) e.g. "http://loinc.org|11369-6" (History of Immunization)
	ContentMimeType       string // e.g. "application/pdf"
	CustodianOrganization string // Organization which maintains the document e.g. http://unid.es/api/v1/fhir/R4/Organization/345
	DateTime              string // When was created (FHIR dateTime stored as FHIR ISO format)
	FacilityTypeSNOMED    string // Kind of facility where subject was seen
	FormatCodeSet         string // e.g. "urn:ihe:pcc:xphr:2007" or "urn:ihe:pcc:ic:2008"
	Identifier            string // Master Version Specific Identifier
	Language              string // Human language of attached file content (BCP-47)
	Location              string // URI where the data can be found
	Period                string // Time service that is being documented e.g. "date=eq2010-01-01&date=eq2011-12-31"
	PracticeSettingSNOMED string // Clinical Specialty: details about where the content was created
	SecurityLabelHL7      string // Document security-tag e.g. "http://terminology.hl7.org/CodeSystem/v3-ActReason|HLEGAL"
	StatusHL7             string // Current status (accepted values depends on each specific FHIR resource)
	Subject               string // Who/what is the subject of the document
	TypeLOINC             string // Additional more precise type of clinical document filed by practitioner or device
}

func (*ApiDocumentReferenceOptions) GetBaseDocumentReferenceByHttpRequest added in v1.0.60

func (apiImmunization *ApiDocumentReferenceOptions) GetBaseDocumentReferenceByHttpRequest(r *http.Request) BaseDocumentReference

Method GetBaseDocumentReferenceByRequestForm returns a BaseDocumentReference created with the ApiOptions received by an API

func (*ApiDocumentReferenceOptions) GetDocumentReferenceApiTags added in v1.0.60

func (apiImmunization *ApiDocumentReferenceOptions) GetDocumentReferenceApiTags() ApiDocumentReferenceOptions

Method GetDocumentReferenceApiTags returns the valid headers to be used for a FHIR DocumentReference API

type AppTerms added in v1.1.43

type AppTerms struct {
	AppName           string            `json:"appName,omitempty" bson:"AppName,omitempty"`
	TermsDocumentData TermsDocumentData `bson:",inline"`
}

input to backend

type ApplicationLicense

type ApplicationLicense struct {
	AppName  string    `bson:"id,omitempty" json:"id,omitempty"`
	AppKey   string    `bson:"key,omitempty" json:"key,omitempty"`
	Licenses []License `bson:"licenses,omitempty" json:"licenses,omitempty"`
}

type ApplicationPermission

type ApplicationPermission struct {
	ServiceName string     `bson:"serviceName,omitempty" json:"serviceName,omitempty"`
	ServiceRole string     `bson:"serviceRole,omitempty" json:"serviceRole,omitempty"`
	CreatedAt   *time.Time `bson:"createdAt,omitempty" json:"createdAt,omitempty"`
	UpdatedAt   *time.Time `bson:"updatedAt,omitempty" json:"updatedAt,omitempty"`
}

type AttachmentClaim added in v1.1.28

type AttachmentClaim struct {
	Context []string        `bson:"@context,omitempty" json:"@context,omitempty"`
	Digest  Digest          `bson:"digest,omitempty" json:"digest,omitempty"`
	Data    AttachmentPlain `bson:"data,omitempty" json:"data,omitempty"`
	Holder  Holder          `bson:"holder,omitempty" json:"holder,omitempty"`
	Id      string          `bson:"id,omitempty" json:"id,omitempty"` // version of the blockchain certified Data
	Proofs  []Proof         `bson:"proof,omitempty" json:"proof,omitempty"`
	Type    string          `bson:"type,omitempty" json:"type,omitempty"`
}

only Data.AttachmentBase64Data for certification / verification

type AttachmentPlain added in v1.1.24

type AttachmentPlain struct {
	AttachmentBase64Data       string `bson:"attachmentBase64Data,omitempty" json:"attachmentBase64Data,omitempty"`             // Data inline, base64ed
	AttachmentCreationDateTime string `bson:"attachmentCreationDateTime,omitempty" json:"attachmentCreationDateTime,omitempty"` // Date attachment was first created
	AttachmentMimeType         string `bson:"attachmentMimeType,omitempty" json:"attachmentMimeType,omitempty"`                 // Mime type of the content, with charset etc.
	AttachmentSha1Base64       string `bson:"attachmentSha1Base64,omitempty" json:"attachmentSha1Base64,omitempty"`             // Hash of the data (sha-1, base64ed)
	AttachmentSizeBytes        int    `bson:"attachmentSizeBytes,omitempty" json:"attachmentSizeBytes,omitempty"`               // Number of bytes of content (if url provided)
	AttachmentTitle            string `bson:"attachmentTitle,omitempty" json:"attachmentTitle,omitempty"`                       // Label to display in place of the data
	AttachmentUniversalId      string `bson:"attachmentUniversalId,omitempty" json:"attachmentUniversalId,omitempty"`           // UUID for Attachment.id
	AttachmentUrl              string `bson:"attachmentUrl,omitempty" json:"attachmentUrl,omitempty"`                           // Uri where the data can be found

}

type AuthBearerTokenPayloadClaims added in v1.1.73

type AuthBearerTokenPayloadClaims struct {
	jwt.StandardClaims           // inline, 'aud' is the appId
	OrgId               string   `json:"org_id,omitempty"`
	OrgServiceIds       []string `json:"org_service_ids,omitempty"`
	RoleUHC             string   `json:"role_uhc,omitempty"`
	RolesSNOMED         []string `json:"roles_snomed,omitempty"`
	UserId              string   `json:"user_id,omitempty"`
	UserType            string   `json:"user_type,omitempty"`
	GivenName           []string `json:"given_name,omitempty"` // It is an array in FHIR
	FamilyName          string   `json:"family_name,omitempty"`
	MothersFamilyName   string   `json:"mothers_family_name,omitempty"`
	Email               string   `json:"email,omitempty"`
	EmailVerified       bool     `json:"email_verified,omitempty"`
	PhoneNumber         string   `json:"phone_number,omitempty"`
	PhoneNumberVerified bool     `json:"phone_number_verified,omitempty"`
}

using snake_case because of JWT standard claims: https://www.iana.org/assignments/jwt/jwt.xhtml#claims

type BaseDocumentReference

type BaseDocumentReference struct {
	TextTitle             *string                        // Text title of the resource (FHIR text is xhtml) filed by a practitioner or device
	Language              *string                        // Language of the document
	Status                *fhir4.DocumentReferenceStatus // Fix to "current" when creating (other are: superseded, entered-in-error)
	DocStatus             *fhir4.CompositionStatus       // Fixed to "final" (other are: preliminary, amended, entered-in-error)
	CategoryLOINC         *string                        // The health history section goes to array[0], e.g. "11369-6" (History of Immunization)
	Date                  *string                        // When the document was created
	FileDataB64           *string                        // The data encoded in Base64 format
	FileMimeContentType   *string                        // e.g. application/pdf
	FileHexSHA1           *string                        // Legacy SHA1 digest in hexadecimal (FHIR Attachment is BASE64 SHA1)
	FileSize              *int                           // Number of bytes of content
	TypeLOINC             *string                        // Kind of document or Health Section, e.g.: "48765-2" (Allergies and adverse reactions Document)
	ContextPeriodStart    *string                        // FHIR dateTime: time of service that is being documented
	ContextPeriodEnd      *string                        // FHIR dateTime: end of time service that is being documented
	ContentFormatCodeSet  *string                        // e.g. "urn:ihe:pcc:xphr:2007" or "urn:ihe:pcc:ic:2008"
	FacilitySNOMED        *string                        // Kind of facility where patient was seen
	PracticeSettingSNOMED *string                        // Clinical Specialty: details about where the content was created
	// SecurityLabelsFHIR   *[]string // Document security-tags
	Description            *string // Description generated by Practitioner / Device
	SubjectUHC             *string // Who/what is the subject of the document
	AuthorReference        *string // Who and/or what authored the document
	AuthenticatorReference *string // Who/what authenticated the document
	CustodianReference     *string // Organization which maintains the document
}

func (*BaseDocumentReference) CreateDocumentReferenceFHIR

func (docRefParams *BaseDocumentReference) CreateDocumentReferenceFHIR(fileBytes *[]byte) (fhir4.DocumentReference, error)

Method CreateDocumentReferenceFHIR creates a FHIR DocumentReference using the initialized BaseDocumentReference and given fileBytes

func (*BaseDocumentReference) GetParams

func (docRefParams *BaseDocumentReference) GetParams() *BaseDocumentReference

type BiographyUHC added in v1.0.77

type BiographyUHC struct {
	ID               string                     `json:"id,omitempty" bson:"id,omitempty"` // It should be the same as...
	UhcUserId        string                     `json:"uhcUserId,omitempty" bson:"uhcUserId,omitempty"`
	ResourceLanguage string                     `json:"resourceLanguage,omitempty" bson:"resourceLanguage,omitempty"`
	Title            string                     `json:"title,omitempty" bson:"title,omitempty"`
	Description      string                     `json:"description,omitempty" bson:"description,omitempty"`
	Section          string                     `json:"section,omitempty" bson:"section,omitempty"`
	UhcCodeTags      []string                   `json:"uhcCodeTags,omitempty" bson:"uhcCodeTags,omitempty"`
	LastUpdated      string                     `json:"lastUpdated,omitempty" bson:"lastUpdated,omitempty"`
	SectionUSCDI     string                     `json:"sectionUSCDI,omitempty" bson:"sectionUSCDI,omitempty"`
	SectionIPS       string                     `json:"sectionIPS,omitempty" bson:"sectionIPS,omitempty"`
	Presentation     PresentationWithBundleInVC `json:"presentation,omitempty" bson:"presentation,omitempty"`
}

type BirthClaim added in v1.1.28

type BirthClaim struct {
	Context []string   `bson:"@context,omitempty" json:"@context,omitempty"`
	Digest  Digest     `bson:"digest,omitempty" json:"digest,omitempty"`
	Data    BirthPlain `bson:"data,omitempty" json:"data,omitempty"`
	Holder  Holder     `bson:"holder,omitempty" json:"holder,omitempty"`
	Id      string     `bson:"id,omitempty" json:"id,omitempty"` // version of the blockchain certified Data
	Proofs  []Proof    `bson:"proof,omitempty" json:"proof,omitempty"`
	Type    string     `bson:"type,omitempty" json:"type,omitempty"`
}

Universal Donor Identifier is the Birth Claim Holder UUID

type BirthPlain added in v1.1.28

type BirthPlain struct {
	BirthDate                           string                     `bson:"birthDate,omitempty" json:"birthDate,omitempty"` // ISO date: yyyy-mm-dd
	BirthObservationId                  string                     `bson:"birthObservationId,omitempty" json:"birthObservationId,omitempty"`
	BirthObservationWeightValue         string                     `bson:"birthObservationWeightValue,omitempty" json:"birthObservationWeightValue,omitempty"`
	BirthObservationWeightUnit          string                     `bson:"birthObservationWeightUnit,omitempty" json:"birthObservationWeightUnit,omitempty"`
	BirthObservationUniversalDonorId    string                     `bson:"universalDonorId,omitempty" json:"universalDonorId,omitempty"`
	ExtensionBirthCertificateId         string                     `bson:"extensionBirthCertificateId,omitempty" json:"extensionBirthCertificateId,omitempty"` // US core extension http://hl7.org/fhir/us/bfdr/StructureDefinition/Extension-birth-certificate-id
	ExtensionBirthCertificateFileNumber string                     `bson:"extensionBirthCertificateFileNumber,omitempty" json:"extensionBirthCertificateFileNumber,omitempty"`
	ExtensionBirthPlaceAddress          ExtensionBirthPlaceAddress `bson:",inline"`
	ExtensionBirthSex                   string                     `bson:"extensionBirthSex,omitempty" json:"extensionBirthSex,omitempty"`                       // US core extension http://hl7.org/fhir/us/core/StructureDefinition/us-core-birthsex terminology http://hl7.org/fhir/us/core/ValueSet-birthsex.html
	ExtensionBirthTime                  string                     `bson:"extensionBirthTime,omitempty" json:"extensionBirthTime,omitempty"`                     // ISO time
	ExtensionMultipleBirthNumber        int                        `bson:"extensionMultipleBirthNumber,omitempty" json:"extensionMultipleBirthNumber,omitempty"` // 2 (twin), 3 (triplet), etc.
	ExtensionMultipleBirthOrder         int                        `bson:"extensionMultipleBirthOrder,omitempty" json:"extensionMultipleBirthOrder,omitempty"`   // 1 (first), 2 (second)
	FatherNaturalGivenName              string                     `bson:"fatherNaturalGivenName,omitempty" json:"fatherNaturalGivenName,omitempty"`
	FatherNaturalUniversalId            string                     `bson:"fatherNaturalUniversalId,omitempty" json:"fatherNaturalUniversalId,omitempty"`
	MotherNaturalGivenName              string                     `bson:"motherNaturalGivenName,omitempty" json:"motherNaturalGivenName,omitempty"`
	MotherNaturalUniversalId            string                     `bson:"motherNaturalUniversalId,omitempty" json:"motherNaturalUniversalId,omitempty"`
}

Provider live birth record: http://hl7.org/fhir/us/bfdr/2021Jan/StructureDefinition-Composition-provider-live-birth-report.html

type CategoryConceptPlain added in v1.1.78

type CategoryConceptPlain struct {
	CategoryConceptCustomText string `bson:"categoryConceptCustomText,omitempty" json:"categoryConceptCustomText,omitempty"` // Text in the original language
	// the coding data:
	CategoryConceptCode         string `bson:"categoryConceptCode,omitempty" json:"categoryConceptCode,omitempty"`                 // Symbol in syntax defined by the system
	CategoryConceptDisplay      string `bson:"categoryConceptDisplay,omitempty" json:"categoryConceptDisplay,omitempty"`           // Internationally standarized descriptive text of the code in english
	CategoryConceptSystem       string `bson:"categoryConceptSystem,omitempty" json:"categoryConceptSystem,omitempty"`             // Namespace for the code
	CategoryConceptVersion      string `bson:"categoryConceptVersion,omitempty" json:"categoryConceptVersion,omitempty"`           // Version of the system - if relevant
	CategoryConceptUserSelected bool   `bson:"categoryConceptUserSelected,omitempty" json:"categoryConceptUserSelected,omitempty"` // If this coding was chosen directly by the user
}

type ChangePasswordRequest

type ChangePasswordRequest struct {
	Email       string `bson:"email,omitempty" json:"email,omitempty"`
	Code        string `bson:"code,omitempty" json:"code,omitempty"` // verification code sent by email or SMS
	NewPassword string `bson:"newPassword,omitempty" json:"newPassword,omitempty"`
}

type CodingConcept added in v1.1.78

type CodingConcept struct {
	ConceptCode         string `bson:"conceptCode,omitempty" json:"conceptCode,omitempty"`                 // Symbol in syntax defined by the system
	ConceptDisplay      string `bson:"conceptDisplay,omitempty" json:"conceptDisplay,omitempty"`           // Internationally standarized descriptive text of the code in english
	ConceptSystem       string `bson:"conceptSystem,omitempty" json:"conceptSystem,omitempty"`             // Namespace for the code
	ConceptVersion      string `bson:"conceptVersion,omitempty" json:"conceptVersion,omitempty"`           // Version of the system - if relevant
	ConceptUserSelected bool   `bson:"conceptUserSelected,omitempty" json:"conceptUserSelected,omitempty"` // If this coding was chosen directly by the user
}

CodeableConcept.coding[] is named 'concept' for simplicity

type ConceptPlain added in v1.1.78

type ConceptPlain struct {
	CodingConcept     `bson:",inline"`
	ConceptCustomText string `bson:"conceptCustomText,omitempty" json:"conceptCustomText,omitempty"` // Text in the original language
}

CodeableConcept.coding[] is named conceptType for simplicity

type ConfirmIndividualRegistrationRequest added in v1.1.38

type ConfirmIndividualRegistrationRequest struct {
	ConfirmAuthenticationCode string `json:"confirmAuthenticationCode,omitempty"` // only used for verification when confirming user identity
	ConfirmCodeMFA            string `json:"confirmCodeMFA,omitempty"`            // only used for verification when confirming user identity, usually by SMS (additional to the authenticationCode)
	AcceptedTerms             AcceptedTerms
	PlainPassword             string

	// Common for preregistration and for confirmation purpusoses
	Email             string       `bson:"email,omitempty" json:"email,omitempty"`
	Mobile            string       `bson:"mobile,omitempty" json:"mobile,omitempty"`
	Mfa               string       `bson:"mfa,omitempty" json:"mfa,omitempty"` // MultiFactor Authentication: email or mobile
	Permissions       []Permission `bson:"permissions,omitempty" json:"permissions,omitempty"`
	PreferredLanguage string       `bson:"preferredLanguage,omitempty" json:"preferredLanguage,omitempty"`
	// IdentifierAssignerSystemTerritoryISO string       `bson:"identifierAssignerSystemTerritoryISO,omitempty" json:"identifierAssignerSystemTerritoryISO,omitempty"` // ISO '3166-1' (for alfa-3 codes, e.g., 'ESP') or regional '3166-2:<alfa-2 code>' (e.g., '3166-2:US' for 'US-NY')
	// IdentifierAssignerValueTerritoryISO  string       `bson:"identifierAssignerValueTerritoryISO,omitempty" json:"identifierAssignerValueTerritoryISO,omitempty"`   // e.g., 'ESP' or 'US-NY'
	// IdentifierTypeCodeHL7                string       `bson:"identifierTypeCodeHL7,omitempty" json:"identifierTypeCodeHL7,omitempty"`                               // e.g., "DL" for a driver license or "NNESP" for the Spanish National Identity Document / Spanish Tax ID Number
	IdentifierValue string `bson:"identifierValue,omitempty" json:"identifierValue,omitempty"` // The unique value in the responsible entity, e.g.: unique identifier value of a National Identity Document
	Birthdate       string `bson:"birthdate,omitempty" json:"birthdate,omitempty"`
	GenderOfficial  string `bson:"genderOfficial,omitempty" json:"genderOfficial,omitempty"`
}

type ConfirmUserData

type ConfirmUserData struct {
	Email string `bson:"email,omitempty" json:"email,omitempty"`
	Code  string `bson:"code,omitempty" json:"code,omitempty"` // verification code sent by email or SMS
}

type ConnectionCreationImplicitRequest

type ConnectionCreationImplicitRequest struct {
	Type                             string `json:"type" bson:"type"`
	Label                            string `json:"label,omitempty" bson:"label,omitempty"`
	Goal                             string `json:"goal,omitempty" bson:"goal,omitempty"`
	GoalCode                         string `json:"goal-code,omitempty" bson:"goal-code,omitempty"`
	ImplicitInitiatorUserId          string `json:"implicitInitiatorUserId" bson:"implicitInitiatorUserId"`
	ImplicitInvitationTokenInitiator string `json:"implicitInvitationTokenInitiator" bson:"implicitInvitationTokenInitiator"`
}

type ConnectionExternalCreationRequest

type ConnectionExternalCreationRequest struct {
	Type                        string                     `json:"type" bson:"type"`
	Label                       string                     `json:"label,omitempty" bson:"label,omitempty"`
	Goal                        string                     `json:"goal,omitempty" bson:"goal,omitempty"`
	GoalCode                    string                     `json:"goal-code,omitempty" bson:"goal-code,omitempty"`
	ExternalInvitationDetails   *ExternalInvitationDetails `json:"externalInvitationDetails,omitempty" bson:"externalInvitationDetails,omitempty"`
	InvitedUserId               string                     `json:"invitedUserId" bson:"invitedUserId"`
	InvitedUserEmail            string                     `json:"invitedUserEmail" bson:"invitedUserEmail"`
	EncryptionKeyOrganizationId string                     `json:"encryptionKeyOrganizationId" bson:"encryptionKeyOrganizationId"`
}

type ConnectionThreadCreationRequest added in v1.1.69

type ConnectionThreadCreationRequest struct {
	OtherPartId string `bson:"otherPartId,omitempty" json:"otherPartId,omitempty"`
}

type ConnectionUHC

type ConnectionUHC struct {
	ID                        string                     `json:"id" bson:"id"`
	InvitationUhcId           string                     `json:"invitationUhcId,omitempty" bson:"invitationUhcID,omitempty"`
	Active                    *bool                      `json:"active" bson:"active"`
	ActiveUntil               *time.Time                 `json:"activeUntil" bson:"activeUntil"`
	Participants              []Participant              `json:"participants" bson:"participants"`
	CreatedAt                 *time.Time                 `json:"createdAt" bson:"createdAt"`
	UpdatedAt                 *time.Time                 `json:"updatedAt" bson:"updatedAt"`
	Status                    string                     `json:"status" bson:"status"`
	ExternalInvitationDetails *ExternalInvitationDetails `json:"externalInvitationDetails,omitempty" bson:"externalInvitationDetails,omitempty"`

	// TODO: deprecate the following data (moved to every Participant)
	// the initiator will be always Participants[0], so it is not needed right now
	InitiatorUserId           string                   `json:"initiatorUserId,omitempty" bson:"initiatorUserId,omitempty"`
	InvitedUserId             string                   `json:"invitedUserId,omitempty" bson:"invitedUserId,omitempty"`
	PendingPermissionsRequest *[]PermissionsRequestUHC `json:"requestedPendingPermissions" bson:"requestedPendingPermissions"`
	EncryptionRequirements    EncryptionRequirements   `json:"encryptionRequirements" bson:"encryptionRequirements"`
	ActivePermissions         *[]PermissionsUHC        `json:"activePermissions" bson:"activePermissions"`
	ReadStatus                string                   `json:"readStatus,omitempty" bson:"readStatus,omitempty"`
}

externalInvitationDetails data is needed to send invitation email when a new user is invited and the default connection is created

type ConnectionUHCResponse

type ConnectionUHCResponse struct {
	Code    int             `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64           `bson:"count,omitempty" json:"count,omitempty"`
	Message string          `bson:"message,omitempty" json:"message,omitempty"`
	Data    []ConnectionUHC `bson:"data,omitempty" json:"data,omitempty"`
	Token   Token           `bson:"token,omitempty" json:"token,omitempty"`
}

type ConnectionsWithInvitationsUHC added in v1.0.92

type ConnectionsWithInvitationsUHC struct {
	Connections []ConnectionUHC `bson:"connections,omitempty" json:"connections,omitempty"`
	Invitations []InvitationUHC `bson:"invitations,omitempty" json:"invitations,omitempty"`
}

type ConnectionsWithInvitationsUHCResponse added in v1.0.92

type ConnectionsWithInvitationsUHCResponse struct {
	Code    int                             `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64                           `bson:"count,omitempty" json:"count,omitempty"`
	Message string                          `bson:"message,omitempty" json:"message,omitempty"`
	Data    []ConnectionsWithInvitationsUHC `bson:"data,omitempty" json:"data,omitempty"`
}

type ContactEmailHomeAlternative added in v1.1.78

type ContactEmailHomeAlternative struct {
	EmailHomeAlternativeValue      string `bson:"emailHomeAlternativeValue,omitempty" json:"emailHomeAlternativeValue,omitempty"`
	EmailHomeAlternativeValidFrom  string `bson:"emailHomeAlternativeValidFrom,omitempty" json:"emailHomeAlternativeValidFrom,omitempty"`
	EmailHomeAlternativeValidUntil string `bson:"emailHomeAlternativeValidUntil,omitempty" json:"emailHomeAlternativeValidUntil,omitempty"`
	EmailHomeAlternativeVcId       string `bson:"emailHomeAlternativeVcId,omitempty" json:"emailHomeAlternativeVcId,omitempty"`
}

type ContactEmailHomeMain added in v1.1.78

type ContactEmailHomeMain struct {
	EmailHomeMainValue      string `bson:"emailHomeMainValue,omitempty" json:"emailHomeMainValue,omitempty"`
	EmailHomeMainValidFrom  string `bson:"emailHomeMainValidFrom,omitempty" json:"emailHomeMainValidFrom,omitempty"`
	EmailHomeMainValidUntil string `bson:"emailHomeMainValidUntil,omitempty" json:"emailHomeMainValidUntil,omitempty"`
	EmailHomeMainVcId       string `bson:"emailHomeMainVcId,omitempty" json:"emailHomeMainVcId,omitempty"`
}

type ContactEmailWorkAlternative added in v1.1.78

type ContactEmailWorkAlternative struct {
	EmailWorkAlternativeValue      string `bson:"emailWorkAlternativeValue,omitempty" json:"emailWorkAlternativeValue,omitempty"`
	EmailWorkAlternativeValidFrom  string `bson:"emailWorkAlternativeValidFrom,omitempty" json:"emailWorkAlternativeValidFrom,omitempty"`
	EmailWorkAlternativeValidUntil string `bson:"emailWorkAlternativeValidUntil,omitempty" json:"emailWorkAlternativeValidUntil,omitempty"`
	EmailWorkAlternativeVcId       string `bson:"emailWorkAlternativeVcId,omitempty" json:"emailWorkAlternativeVcId,omitempty"`
}

type ContactEmailWorkMain added in v1.1.78

type ContactEmailWorkMain struct {
	EmailWorkMainValue      string `bson:"emailWorkMainValue,omitempty" json:"emailWorkMainValue,omitempty"`
	EmailWorkMainValidFrom  string `bson:"emailWorkMainValidFrom,omitempty" json:"emailWorkMainValidFrom,omitempty"`
	EmailWorkMainValidUntil string `bson:"emailWorkMainValidUntil,omitempty" json:"emailWorkMainValidUntil,omitempty"`
	EmailWorkMainVcId       string `bson:"emailWorkMainVcId,omitempty" json:"emailWorkMainVcId,omitempty"`
}

type ContactMobilePhonePersonal added in v1.1.78

type ContactMobilePhonePersonal struct {
	MobilePersonalPhoneValue      string `bson:"mobilePersonalPhoneValue,omitempty" json:"mobilePersonalPhoneValue,omitempty"`
	MobilePersonalPhoneValidFrom  string `bson:"mobilePersonalPhoneValidFrom,omitempty" json:"mobilePersonalPhoneValidFrom,omitempty"`
	MobilePersonalPhoneValidUntil string `bson:"mobilePersonalPhoneValidUntil,omitempty" json:"mobilePersonalPhoneValidUntil,omitempty"`
	MobilePersonalPhoneVcId       string `bson:"mobilePersonalPhoneVcId,omitempty" json:"mobilePersonalPhoneVcId,omitempty"`
}

type ContactMobilePhoneWork added in v1.1.78

type ContactMobilePhoneWork struct {
	MobileWorkPhoneValue      string `bson:"mobileWorkPhoneValue,omitempty" json:"mobileWorkPhoneValue,omitempty"`
	MobileWorkPhoneValidFrom  string `bson:"mobileWorkPhoneValidFrom,omitempty" json:"mobileWorkPhoneValidFrom,omitempty"`
	MobileWorkPhoneValidUntil string `bson:"mobileWorkPhoneValidUntil,omitempty" json:"mobileWorkPhoneValidUntil,omitempty"`
	MobileWorkPhoneVcId       string `bson:"mobileWorkPhoneVcId,omitempty" json:"mobileWorkPhoneVcId,omitempty"`
}

type ContactPhoneHome added in v1.1.78

type ContactPhoneHome struct {
	PhoneHomeValue      string `bson:"phoneHomeValue,omitempty" json:"phoneHomeValue,omitempty"`
	PhoneHomeValidFrom  string `bson:"phoneHomeValidFrom,omitempty" json:"phoneHomeValidFrom,omitempty"`
	PhoneHomeValidUntil string `bson:"phoneHomeValidUntil,omitempty" json:"phoneHomeValidUntil,omitempty"`
	PhoneHomeVcId       string `bson:"phoneHomeVcId,omitempty" json:"phoneHomeVcId,omitempty"`
}

type ContactPhoneTemporal added in v1.1.78

type ContactPhoneTemporal struct {
	PhoneTemporalValue      string `bson:"phoneTemporalValue,omitempty" json:"phoneTemporalValue,omitempty"`
	PhoneTemporalValidFrom  string `bson:"phoneTemporalValidFrom,omitempty" json:"phoneTemporalValidFrom,omitempty"`
	PhoneTemporalValidUntil string `bson:"phoneTemporalValidUntil,omitempty" json:"phoneTemporalValidUntil,omitempty"`
	PhoneTemporalVcId       string `bson:"phoneTemporalVcId,omitempty" json:"phoneTemporalVcId,omitempty"`
}

type ContactPhoneWork added in v1.1.78

type ContactPhoneWork struct {
	PhoneWorkValue      string `bson:"phoneWorkValue,omitempty" json:"phoneWorkValue,omitempty"`
	PhoneWorkValidFrom  string `bson:"phoneWorkValidFrom,omitempty" json:"phoneWorkValidFrom,omitempty"`
	PhoneWorkValidUntil string `bson:"phoneWorkValidUntil,omitempty" json:"phoneWorkValidUntil,omitempty"`
	PhoneWorkVcId       string `bson:"phoneWorkVcId,omitempty" json:"phoneWorkVcId,omitempty"`
}

type ContactUrlWork added in v1.1.78

type ContactUrlWork struct {
	UrlWorkValue      string `bson:"urlWorkValue,omitempty" json:"urlWorkValue,omitempty"`
	UrlWorkValidFrom  string `bson:"urlWorkValidFrom,omitempty" json:"urlWorkValidFrom,omitempty"`
	UrlWorkValidUntil string `bson:"urlWorkValidUntil,omitempty" json:"urlWorkValidUntil,omitempty"`
	UrlWorkVcId       string `bson:"urlWorkVcId,omitempty" json:"urlWorkVcId,omitempty"`
}

type CredentialFHIR added in v1.0.77

type CredentialFHIR struct {
	Context               []string                 `json:"@context,omitempty" bson:"@context,omitempty"`
	ID                    string                   `json:"id,omitempty" bson:"id,omitempty"`
	Types                 []string                 `json:"type,omitempty" bson:"type,omitempty"`
	Issuer                verifiable.Issuer        `json:"issuer,omitempty" bson:"issuer,omitempty"`
	Issued                string                   `json:"issuanceDate,omitempty" bson:"issuanceDate,omitempty"`
	Expired               string                   `json:"expirationDate,omitempty" bson:"expirationDate,omitempty"`
	Proofs                []proof.Proof            `json:"proof,omitempty" bson:"proof,omitempty"`
	Status                *verifiable.TypedID      `json:"credentialStatus,omitempty" bson:"credentialStatus,omitempty"`
	Schemas               []verifiable.TypedID     `json:"credentialSchema,omitempty" bson:"credentialSchema,omitempty"`
	Evidence              verifiable.Evidence      `json:"evidence,omitempty" bson:"evidence,omitempty"`
	TermsOfUse            []verifiable.TypedID     `json:"termsOfUse,omitempty" bson:"termsOfUse,omitempty"`
	RefreshService        []verifiable.TypedID     `json:"refreshService,omitempty" bson:"refreshService,omitempty"`
	CustomFields          CustomFields             `json:"-" bson:"customFields,omitempty"` // All unmapped fields are put here.
	CredentialSubjectFHIR CredentialVerifiableFHIR `json:"credentialSubject,omitempty" bson:"credentialSubject,omitempty"`
}

type CredentialVerifiableFHIR added in v1.0.77

type CredentialVerifiableFHIR struct {
	BundleFHIR fhir4.Bundle `json:"fhir,omitempty" bson:"fhir,omitempty"` // The bundle document
}

type CustomFields added in v1.0.77

type CustomFields map[string]interface{} // CustomFields is a map of extra fields of struct build when unmarshalling JSON which are not mapped to the struct fields.

type DataAbsentReasonConceptPlain added in v1.1.78

type DataAbsentReasonConceptPlain struct {
	DataAbsentConceptCustomText   string `bson:"dataAbsentConceptCustomText,omitempty" json:"dataAbsentConceptCustomText,omitempty"`     // Text in the original language, e.g. "Documento Nacional de Identidad"
	DataAbsentConceptCode         string `bson:"dataAbsentConceptCode,omitempty" json:"dataAbsentConceptCode,omitempty"`                 // Symbol in syntax defined by the system, e.g. "NNESP" for the Spanish National Identity Document / Spanish Tax ID Number
	DataAbsentConceptDisplay      string `bson:"dataAbsentConceptDisplay,omitempty" json:"dataAbsentConceptDisplay,omitempty"`           // Internationally standarized descriptive text in english, e.g. "Tax ID Number"
	DataAbsentConceptSystem       string `bson:"dataAbsentConceptSystem,omitempty" json:"dataAbsentConceptSystem,omitempty"`             // Namespace for the Use, e.g. "http://terminology.hl7.org/CodeSystem/v2-0203"
	DataAbsentConceptVersion      string `bson:"dataAbsentConceptVersion,omitempty" json:"dataAbsentConceptVersion,omitempty"`           // Version of the system - if relevant
	DataAbsentConceptUserSelected bool   `bson:"dataAbsentConceptUserSelected,omitempty" json:"dataAbsentConceptUserSelected,omitempty"` // If this coding was chosen directly by the user
}

type DataResponse added in v1.1.76

type DataResponse struct {
	Code    int           `json:"code,omitempty"`
	Count   int64         `json:"count,omitempty"`
	Message string        `json:"message,omitempty"`
	Data    []interface{} `json:"data,omitempty"` // an array such as in all responses (it has no sense here)

}

data array response in JSON format should be []map[string]interface{}

type DecryptedResult

type DecryptedResult struct {
	DecryptedMessage string `bson:"decryptedMessage,omitempty" json:"decryptedMessage,omitempty"`
}

type DecryptedResultResponse

type DecryptedResultResponse struct {
	Code    int               `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64             `bson:"count,omitempty" json:"count,omitempty"`
	Message string            `bson:"message,omitempty" json:"message,omitempty"`
	Data    []DecryptedResult `bson:"data,omitempty" json:"data,omitempty"`
}

type DecryptionRequest

type DecryptionRequest struct {
	Payload                  string `bson:"payload,omitempty" json:"payload,omitempty"`
	EncryptionKeyId          string `bson:"encryptionKeyId,omitempty" json:"encryptionKeyId,omitempty"`
	AccessPassword           string `bson:"accessPassword,omitempty" json:"accessPassword,omitempty"`
	OtherPartPublicKeyBase64 string `bson:"otherPartPublicKeyBase64,omitempty" json:"otherPartPublicKeyBase64,omitempty"`
}

type DefaultResponse

type DefaultResponse struct {
	Code    int
	Message string
	Data    interface{}
	Count   int64
}

type DefaultResponseWithDataByte

type DefaultResponseWithDataByte struct {
	Code    int
	Message string
	Data    []byte
}

func (*DefaultResponseWithDataByte) ReturnCustomResponse

func (rawJson *DefaultResponseWithDataByte) ReturnCustomResponse(w http.ResponseWriter, code int, customCode int, customMessage string, jsonData *json.RawMessage)

type Device

type Device struct {
	ID                  string `bson:"accessPassword,omitempty" json:"accessPassword,omitempty"`
	OwnerOrganizationId string `bson:"ownerOrganizationId,omitempty" json:"ownerOrganizationId,omitempty"`
	Type                string `bson:"type,omitempty" json:"type,omitempty"`
}

type DeviceUHC added in v1.1.60

type DeviceUHC struct {
	ID string `json:"id,omitempty" bson:"id,omitempty"`
	// DeviceId                string                   `json:"deviceId,omitempty" bson:"deviceId,omitempty"`
	AccessToken string `json:"accessToken,omitempty" bson:"accessToken,omitempty"`

	OwnerId                 string                   `json:"ownerId,omitempty" bson:"ownerId,omitempty"`
	OwnerType               string                   `json:"ownerType,omitempty" bson:"ownerType,omitempty"`
	ApplicationsPermissions *[]ApplicationPermission `bson:"applicationsPermissions,omitempty" json:"applicationsPermissions,omitempty"`
	CreatedAt               *time.Time               `bson:"createdAt,omitempty" json:"createdAt,omitempty"`
	UpdatedAt               *time.Time               `bson:"updatedAt,omitempty" json:"updatedAt,omitempty"`
	Status                  string                   `bson:"status,omitempty" json:"status,omitempty"`
}

func (*DeviceUHC) AddOrUpdateAccessToService added in v1.1.60

func (deviceUhcToken *DeviceUHC) AddOrUpdateAccessToService(serviceName string, role string)

func (*DeviceUHC) GetApplicationPermission added in v1.1.60

func (deviceUhcToken *DeviceUHC) GetApplicationPermission(serviceName string) (*ApplicationPermission, error)

func (*DeviceUHC) RoleAccessToService added in v1.1.60

func (deviceUhcToken *DeviceUHC) RoleAccessToService(serviceName string) string

type DeviceUHCResponse added in v1.1.60

type DeviceUHCResponse struct {
	Code    int         `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64       `bson:"count,omitempty" json:"count,omitempty"`
	Message string      `bson:"message,omitempty" json:"message,omitempty"`
	Data    []DeviceUHC `bson:"data,omitempty" json:"data,omitempty"`
}

type Digest added in v1.1.28

type Digest struct {
	CanonicalizationAlgorithm string `bson:"canonicalizationAlgorithm,omitempty" json:"canonicalizationAlgorithm,omitempty"`
	Created                   string `bson:"created,omitempty" json:"created,omitempty"`                 // ISO 8601, e.g. "2019-08-13T15:09:00+01:00" (in Aries go framework use *util.TimeWithTrailingZeroMsec instead of time.Time)
	DigestAlgorithm           string `bson:"digestAlgorithm,omitempty" json:"digestAlgorithm,omitempty"` // hash function used when generating document's digest value (e.g., "SHA-256", "SHAKE-128")
	DigestValue               string `bson:"digestValue,omitempty" json:"digestValue,omitempty"`         // hexadecimal digest value in base-16 format
}

type DigestSigned

type DigestSigned struct {
	DigestToSign DigestToSign  `bson:",inline"`
	Proof        []proof.Proof `bson:"proof,omitempty" json:"proof,omitempty"` // the signature proof
}

type DigestToSign

type DigestToSign struct {
	Type            string   `bson:"type,omitempty" json:"type,omitempty"`                       // "@type": "Digest"
	Context         []string `bson:"context,omitempty" json:"@context,omitempty"`                // "@context": ["https://w3id.org/security/v1"]
	DigestValue     string   `bson:"digestValue,omitempty" json:"digestValue,omitempty"`         // hexadecimal SHA3-256 digest value (base-16 format) or UUID random v4 strings
	DigestAlgorithm string   `bson:"digestAlgorithm,omitempty" json:"digestAlgorithm,omitempty"` // if challenge is a digest: "sha3-256"
	Capability      string   `bson:"capability,omitempty" json:"capability,omitempty"`           // to use the cryptographic keys associated with the required capability
	ProofPurpose    string   `bson:"proofPurpose,omitempty" json:"proofPurpose,omitempty"`       // the purpose of the signature: "digest", "authentication", "assertionMethod" ...
}

type DivorcePlaceAddress added in v1.1.28

type DivorcePlaceAddress struct {
	DivorcePlaceCity     string   `bson:"divorcePlaceCity,omitempty" json:"divorcePlaceCity,omitempty"`         // City or Town
	DivorcePlaceCountry  string   `bson:"divorcePlaceCountry,omitempty" json:"divorcelaceCountry,omitempty"`    // Country ISO 3 characters
	DivorcePlaceDistrict string   `bson:"divorcePlaceDistrict,omitempty" json:"divorcePlaceDistrict,omitempty"` // Province
	DivorcePlaceState    string   `bson:"divorcePlaceState,omitempty" json:"divorcePlaceState,omitempty"`       // Region
	DivorcePlaceLines    []string `bson:"divorcePlaceLines,omitempty" json:"divorcePlaceLines,omitempty"`
	DivorcePlaceText     string   `bson:"divorcePlaceText,omitempty" json:"divorcePlaceText,omitempty"`
}

type Document added in v1.0.91

type Document struct {
	ID               string    `json:"id,omitempty" bson:"id,omitempty"`
	ProfileType      string    `json:"profileType,omitempty" bson:"profileType,omitempty"`
	Title            string    `json:"title,omitempty" bson:"title,omitempty"`
	Description      string    `json:"description,omitempty" bson:"description,omitempty"`
	OriginalFilename string    `json:"originalFilename,omitempty" bson:"originalFilename,omitempty"`
	FileType         string    `json:"fileType,omitempty" bson:"filetType,omitempty"`
	S3Filename       string    `json:"s3Filename,omitempty" bson:"s3Filename,omitempty"`
	TemporaryUrl     string    `json:"temporaryUrl,omitempty" bson:"temporaryUrl,omitempty"`
	Date             time.Time `json:"date,omitempty" bson:"date,omitempty"`
	LastUpdated      time.Time `json:"lastUpdated,omitempty" bson:"lastUpdated,omitempty"`
}

type DocumentResponse added in v1.0.91

type DocumentResponse struct {
	Code    int        `json:"code,omitempty" bson:"code,omitempty"`
	Message string     `json:"message,omitempty" bson:"message,omitempty"`
	Data    []Document `json:"data,omitempty" bson:"data,omitempty"`
	Count   int64      `json:"count,omitempty" bson:"count,omitempty"`
}

type EncryptedEhr added in v1.0.78

type EncryptedEhr struct {
	ID                     string     `bson:"id,omitempty" json:"id,omitempty"`
	Type                   string     `bson:"type,omitempty" json:"type,omitempty"`
	UhcUserId              string     `json:"uhcUserId,omitempty" bson:"uhcUserId,omitempty"`
	EncryptionKeyId        string     `json:"encryptionKeyId,omitempty" bson:"encryptionKeyId,omitempty"`
	EncryptedPayloadBase64 string     `bson:"encryptedPayloadBase64,omitempty" json:"encryptedPayloadBase64,omitempty"`
	Codes                  []string   `bson:"codes,omitempty" json:"codes,omitempty"`
	UhcCodeTags            []string   `bson:"uhcCodeTags,omitempty" json:"uhcCodeTags,omitempty"`
	CreatedAt              *time.Time `bson:"createdAt,omitempty" json:"createdAt,omitempty"`
	UpdatedAt              *time.Time `bson:"updatedAt,omitempty" json:"updatedAt,omitempty"`
}

type EncryptedEhrCreationRequest added in v1.0.81

type EncryptedEhrCreationRequest struct {
	BiographyUHC   BiographyUHC `bson:"biographyUHC,omitempty" json:"biographyUHC,omitempty"`
	AccessPassword string       `bson:"accessPassword,omitempty" json:"accessPassword,omitempty"`
}

type EncryptedEhrDecryptionRequest added in v1.0.83

type EncryptedEhrDecryptionRequest struct {
	EncryptedEhrId *string   `bson:"encryptedEhrId,omitempty" json:"encryptedEhrId,omitempty"`
	UhcCodeTags    *[]string `bson:"uhcCodeTags,omitempty" json:"uhcCodeTags,omitempty"`
	AccessPassword string    `bson:"accessPassword,omitempty" json:"accessPassword,omitempty"`
	Limit          *int      `bson:"limit,omitempty" json:"limit,omitempty"`
	Skip           *int      `bson:"skip,omitempty" json:"skip,omitempty"`
}

type EncryptedEhrDecryptionResponse added in v1.0.83

type EncryptedEhrDecryptionResponse struct {
	Code    int            `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64          `bson:"count,omitempty" json:"count,omitempty"`
	Message string         `bson:"message,omitempty" json:"message,omitempty"`
	Data    []BiographyUHC `bson:"data,omitempty" json:"data,omitempty"`
}

type EncryptedEhrResponse added in v1.0.78

type EncryptedEhrResponse struct {
	Code    int            `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64          `bson:"count,omitempty" json:"count,omitempty"`
	Message string         `bson:"message,omitempty" json:"message,omitempty"`
	Data    []EncryptedEhr `bson:"data,omitempty" json:"data,omitempty"`
}

type EncryptedResult

type EncryptedResult struct {
	EncryptedMessageBase64 string `bson:"encryptedMessageBase64,omitempty" json:"encryptedMessageBase64,omitempty"`
}

type EncryptedResultResponse

type EncryptedResultResponse struct {
	Code    int               `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64             `bson:"count,omitempty" json:"count,omitempty"`
	Message string            `bson:"message,omitempty" json:"message,omitempty"`
	Data    []EncryptedResult `bson:"data,omitempty" json:"data,omitempty"`
}

type EncryptionRequest

type EncryptionRequest struct {
	Payload                  string `bson:"payload,omitempty" json:"payload,omitempty"`
	EncryptionKeyId          string `bson:"encryptionKeyId,omitempty" json:"encryptionKeyId,omitempty"`
	AccessPassword           string `bson:"accessPassword,omitempty" json:"accessPassword,omitempty"`
	OtherPartPublicKeyBase64 string `bson:"otherPartPublicKeyBase64,omitempty" json:"otherPartPublicKeyBase64,omitempty"`
}

type EncryptionRequirements

type EncryptionRequirements struct {
	InitiatorPublicKey       string  `bson:"initiatorPublicKey,omitempty" json:"initiatorPublicKey,omitempty"`
	InvitedPublicKey         string  `bson:"invitedPublicKey,omitempty" json:"invitedPublicKey,omitempty"`
	InitiatorEncryptionKeyId *string `json:"initiatorEncryptionKeyId" bson:"initiatorEncryptionKeyId"`
	InvitedEncryptionKeyId   *string `json:"invitedEncryptionKeyId" bson:"invitedEncryptionKeyId"`
}

type ExtensionBirthPlaceAddress added in v1.1.28

type ExtensionBirthPlaceAddress struct {
	ExtensionBirthPlaceCity     string `bson:"extensionBirthPlaceCity,omitempty" json:"extensionBirthPlaceCity,omitempty"`         // City or Town
	ExtensionBirthPlaceCountry  string `bson:"extensionBirthPlaceCountry,omitempty" json:"extensionBirthPlaceCountry,omitempty"`   // Country ISO 3 characters
	ExtensionBirthPlaceDistrict string `bson:"extensionBirthPlaceDistrict,omitempty" json:"extensionBirthPlaceDistrict,omitempty"` // Province
	ExtensionBirthPlaceState    string `bson:"extensionBirthPlaceState,omitempty" json:"extensionBirthPlaceState,omitempty"`       // Region
	ExtensionBirthPlaceText     string `bson:"extensionBirthPlaceText,omitempty" json:"extensionBirthPlaceText,omitempty"`         // Region
}

type ExternalBase64MessageCreationRequest

type ExternalBase64MessageCreationRequest struct {
	ExternalMessageDirectives ExternalMessageDirectives `json:"externalDirectives" bson:"externalDirectives"`
	Base64Message             string                    `json:"base64Message,omitempty" bson:"base64Message,omitempty"`
	Type                      string                    `json:"type,omitempty" bson:"type,omitempty"`
	FileType                  *string                   `json:"FileType,omitempty" bson:"FileType,omitempty"`
}

type ExternalFhirMessageCreationRequest

type ExternalFhirMessageCreationRequest struct {
	ExternalMessageDirectives ExternalMessageDirectives `json:"externalDirectives" bson:"externalDirectives"`
	FhirMessage               fhir4.Bundle              `json:"fhirMessage,omitempty" bson:"fhirMessage,omitempty"`
}

type ExternalInvitationDetails added in v1.0.65

type ExternalInvitationDetails struct {
	ExternalSenderUserDetails *ExternalSenderUserDetails `json:"externalSenderUserDetails,omitempty" bson:"externalSenderUserDetails,omitempty"`
	OrganizationId            string                     `json:"organizationId,omitempty" bson:"organizationId,omitempty"`
}

type ExternalMessageCreationResult

type ExternalMessageCreationResult struct {
	SentMessageUhc       *MessageUHC                `json:"sentMessage,omitempty" bson:"sentMessage,omitempty"`
	CreatedConnectionUhc *ConnectionUHC             `json:"createdConnectionUHC,omitempty" bson:"createdConnectionUHC,omitempty"`
	CreatedUserUhc       *ExternalMessageDirectives `json:"createdUserUhc,omitempty" bson:"createdUserUhc,omitempty"`
}

type ExternalMessageCreationResultResponse

type ExternalMessageCreationResultResponse struct {
	Code    int                             `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64                           `bson:"count,omitempty" json:"count,omitempty"`
	Message string                          `bson:"message,omitempty" json:"message,omitempty"`
	Data    []ExternalMessageCreationResult `bson:"data,omitempty" json:"data,omitempty"`
}

type ExternalMessageDirectives

type ExternalMessageDirectives struct {
	ToEmail                   string                     `json:"toEmail,omitempty" bson:"toEmail,omitempty"`
	ToUserId                  *string                    `json:"toUserId,omitempty" bson:"toUserId,omitempty"`
	ExternalSenderUserDetails *ExternalSenderUserDetails `json:"externalSenderUserDetails,omitempty" bson:"externalSenderUserDetails,omitempty"`
}

type ExternalSenderUserDetails added in v1.0.65

type ExternalSenderUserDetails struct {
	FromEmail           string  `json:"fromEmail,omitempty" bson:"fromEmail,omitempty"`
	FirstName           string  `json:"firstName,omitempty" bson:"firstName,omitempty"`
	LastName            string  `json:"lastName,omitempty" bson:"lastName,omitempty"`
	TitleInOrganization *string `json:"titleInOrganization,omitempty" bson:"titleInOrganization,omitempty"`
}

type FhirCredentialSubject

type FhirCredentialSubject struct {
	FhirOrganization    *fhir4.Organization              `bson:"fhir,omitempty" json:"fhir,omitempty"`
	UhcPublicExtensions *OrganizationPublicUHCExtensions `bson:"uhcPublicExtensions,omitempty" json:"uhcPublicExtensions,omitempty"` //dlt: no
}

type HashDltOutput

type HashDltOutput struct {
	Id              string `bson:"id,omitempty" json:"id,omitempty"`                           // UUID random v4 identifying document's digest value
	DigestValue     string `bson:"digestValue,omitempty" json:"digestValue,omitempty"`         // hexadecimal digest value in base-16 format
	DigestAlgorithm string `bson:"digestAlgorithm,omitempty" json:"digestAlgorithm,omitempty"` // "sha3-256" or other hash function used when generating document's digest value
	TxTimestampISO  string `bson:"txTimestamp,omitempty" json:"txTimestamp,omitempty"`         // the timestamp of the blockchain transaction
	TxId            string `bson:"txId,omitempty" json:"txId,omitempty"`                       // the identifier of the blockchain transaction
}

type HealthcareServiceCommon added in v1.1.78

type HealthcareServiceCommon struct {
	Active                 bool   `bson:"active,omitempty" json:"active,omitempty"` // Whether this HealthcareService record is in active use
	AppointmentRequired    bool   `bson:"appointmentRequired,omitempty" json:"appointmentRequired,omitempty"`
	AvailabilityExceptions string `bson:"availabilityExceptions,omitempty" json:"availabilityExceptions,omitempty"`
	Comment                string `bson:"comment,omitempty" json:"comment,omitempty"`                 // use to inform about available times
	DetailsMarkDown        string `bson:"detailsMarkDown,omitempty" json:"detailsMarkDown,omitempty"` // use to inform about available times
	Name                   string `bson:"name,omitempty" json:"name,omitempty"`
}

type HealthcareServiceEligibilityPlain added in v1.1.78

type HealthcareServiceEligibilityPlain struct {
	EligibilityCodeDisplay       string `bson:"eligibilityCodeDisplay,omitempty" json:"eligibilityCodeDisplay,omitempty"`             // Internationally standarized descriptive text of the code in english
	EligibilityCodeSystem        string `bson:"eligibilityCodeSystem,omitempty" json:"eligibilityCodeSystem,omitempty"`               // Namespace for the code
	EligibilityCodeType          string `bson:"eligibilityCodeType,omitempty" json:"eligibilityCodeType,omitempty"`                   // Symbol in syntax defined by the system
	EligibilityCodeUserSelected  bool   `bson:"eligibilityCodeUserSelected,omitempty" json:"eligibilityCodeUserSelected,omitempty"`   // If this coding was chosen directly by the user
	EligibilityCodeVersion       string `bson:"eligibilityCodeVersion,omitempty" json:"eligibilityCodeVersion,omitempty"`             // Version of the system - if relevant
	EligibilityConceptCustomText string `bson:"eligibilityConceptCustomText,omitempty" json:"eligibilityConceptCustomText,omitempty"` // Text in the original language
	EligibilityCommentMarkDown   string `bson:"eligibilityCommentMarkDown,omitempty" json:"eligibilityCommentMarkDown,omitempty"`
}

type HealthcareServiceSheet added in v1.1.78

type HealthcareServiceSheet struct {
	// CategorySimpleConceptSheet
	// SpecialtySimpleConceptSheet
	// CoverageAreaReferenceLocationPlain
	HealthcareServiceCommon            `bson:",inline"`
	ProviderReferencePlain             `bson:",inline"`
	PhotoAttachmentPlain               `bson:",inline"`
	PersonalTelecomSheet               `bson:",inline"` // instead of TelecomContactPlain[]
	ResourceUniversalId                string           `bson:"ResourceUniversalId,omitempty" json:"ResourceUniversalId,omitempty"`
	CategoryConceptCustomText          string           `bson:"categoryConceptCustomText,omitempty" json:"categoryConceptCustomText,omitempty"`
	CategoryConceptCodeHL7             string           `bson:"categoryConceptCodeHL7,omitempty" json:"categoryConceptCodeHL7,omitempty"`
	SpecialtyConceptCustomText         string           `bson:"specialtyConceptCustomText,omitempty" json:"specialtyConceptCustomText,omitempty"`
	SpecialtyConceptCodeSNOMED         string           `bson:"specialtyConceptCodeSNOMED,omitempty" json:"specialtyConceptCodeSNOMED,omitempty"`
	LocationReferenceURIs              []string         `bson:"locationReferenceURIs,omitempty" json:"locationReferenceURIs,omitempty"`
	CoverageAreaCodesIso3166           []string         `bson:"coverageAreaCodesIso3166,omitempty" json:"coverageAreaCodesIso3166,omitempty"` // Tree - coverageAreas  ReferencePlain[]
	ServiceProvisionCodesHL7           []string         `bson:"serviceProvisionCodesHL7,omitempty" json:"serviceProvisionCodesHL7,omitempty"`
	ServiceProvisionConceptCustomTexts []string         `bson:"serviceProvisionConceptCustomTexts,omitempty" json:"serviceProvisionConceptCustomTexts,omitempty"`
	ProgramCodesHL7                    []string         `bson:"programCodesHL7,omitempty" json:"programCodesHL7,omitempty"`
	ProgramConceptCustomTexts          []string         `bson:"programConceptCustomTexts,omitempty" json:"programConceptCustomTexts,omitempty"`
	CharacteristicCodeTypes            []string         `bson:"characteristicCodeTypes,omitempty" json:"characteristicCodeTypes,omitempty"`                   // not defined anywhere
	CharacteristicCodeSystems          []string         `bson:"characteristicCodeSystems,omitempty" json:"characteristicCodeSystems,omitempty"`               // not defined anywhere
	CharacteristicConceptCustomTexts   []string         `bson:"characteristicConceptCustomTexts,omitempty" json:"characteristicConceptCustomTexts,omitempty"` // e.g.: Wheelchair access
	CommunicationCodesBCP47            []string         `bson:"communicationCodesBCP47,omitempty" json:"communicationCodesBCP47,omitempty"`                   // e.g.: ["en","es"]
	CommunicationConceptCustomTexts    []string         `bson:"communicationConceptCustomTexts,omitempty" json:"communicationConceptCustomTexts,omitempty"`   // e.g.: ["English","Español"]
	ReferralMethodCodesHL7             []string         `bson:"referralMethodCodesHL7,omitempty" json:"referralMethodCodesHL7,omitempty"`
	ReferralMethodConceptCustomTexts   []string         `bson:"referralMethodConceptCustomTexts,omitempty" json:"referralMethodConceptCustomTexts,omitempty"`
	NotAvailableStrings                []string         `bson:"notAvailableStrings,omitempty" json:"notAvailableStrings,omitempty"`
	EndpointReferenceURIs              []string         `bson:"endpointReferenceURIs,omitempty" json:"endpointReferenceURIs,omitempty"`
}

type HealthcareServiceTree added in v1.1.78

type HealthcareServiceTree struct {
	HealthcareServiceCommon `bson:",inline"`
	ProviderReferencePlain  `bson:",inline"`
	CategoryConceptPlain    `bson:",inline"`
	SpecialtyConceptPlain   `bson:",inline"`
	PhotoAttachmentPlain    `bson:",inline"`
	Identifiers             []IdentifierFullPlain  `bson:"identifiers,omitempty" json:"identifiers,omitempty"` // e.g. urn:uuid:<uuid>
	Locations               []ReferencePlain       `bson:"locations,omitempty" json:"locations,omitempty"`
	Telecoms                []PersonalTelecomSheet `bson:"telecoms,omitempty" json:"telecoms,omitempty"`
	CoverageAreas           []ReferencePlain       `bson:"coverageAreas,omitempty" json:"coverageAreas,omitempty"`
	Programs                []ConceptPlain         `bson:"programs,omitempty" json:"programs,omitempty"`
	Characteristics         []ConceptPlain         `bson:"characteristics,omitempty" json:"characteristics,omitempty"`
	CommunicationLanguages  []ConceptPlain         `bson:"communicationLanguages,omitempty" json:"communicationLanguages,omitempty"`
	ReferralMethods         []ConceptPlain         `bson:"referralMethods,omitempty" json:"referralMethods,omitempty"`
}

type Holder added in v1.1.33

type Holder struct {
	Id   string `bson:"id,omitempty" json:"id,omitempty"`     // e.g.: urn:uuid:<uuid-v4> or did:example:ebfeb1276e12ec21f712ebc6f1c
	Type string `bson:"type,omitempty" json:"type,omitempty"` // Subject, Parent, Pet Owner, Travel Agent, Law Enforcement, Recruiter
}

https://www.w3.org/TR/vc-data-model/#subject-holder-relationships

type I18nText

type I18nText struct {
	Language string `bson:"language,omitempty" json:"language,omitempty"`
	Text     string `bson:"text,omitempty" json:"text,omitempty"`
}

type IdentifierAssigner added in v1.1.28

type IdentifierAssigner struct {
	IdentifierAssignerDisplay        string `bson:"identifierAssignerDisplay,omitempty" json:"identifierAssignerDisplay,omitempty"`               // Organization that issued ID, e.g. "Goverment of Country" or "Laboratory Company"
	IdentifierAssignerIdentitySystem string `bson:"identifierAssignerIdentitySystem,omitempty" json:"identifierAssignerIdentitySystem,omitempty"` // Namespace for the identifier value, e.g. "urn:ietf:rfc:3986" or "1.3.6.1.4.1.19126.3" (Spanish Tax ID number)
	IdentifierAssignerIdentityValue  string `bson:"identifierAssignerIdentityValue,omitempty" json:"identifierAssignerIdentityValue,omitempty"`   // The value that is unique, e.g. "urn:oid:<oid>", "urn:uuid:<uuid>","urn:did:<did>" or Tax ID number of the assigner organization
	IdentifierAssignerReferenceURI   string `bson:"identifierAssignerReferenceURI,omitempty" json:"identifierAssignerReferenceURI,omitempty"`     // A FHIR Reference.reference value, e.g. "Organization/<uuid>"
	IdentifierAssignerType           string `bson:"identifierAssignerType,omitempty" json:"identifierAssignerType,omitempty"`                     // A FHIR Resource type, e.g. "Organization"
}

'OfficialIdentifierAssigner' is a FHIR 'Reference' within a FHIR 'OfficialIdentifier'

type IdentifierClaim added in v1.1.28

type IdentifierClaim struct {
	Context []string            `bson:"@context,omitempty" json:"@context,omitempty"`
	Digest  Digest              `bson:"digest,omitempty" json:"digest,omitempty"`
	Data    IdentifierFullPlain `bson:"data,omitempty" json:"data,omitempty"`
	Holder  Holder              `bson:"holder,omitempty" json:"holder,omitempty"`
	Id      string              `bson:"id,omitempty" json:"id,omitempty"` // version of the blockchain certified Data
	Proofs  []Proof             `bson:"proof,omitempty" json:"proof,omitempty"`
	Type    string              `bson:"type,omitempty" json:"type,omitempty"`
}

type IdentifierDataRegistrationRequest added in v1.1.38

type IdentifierDataRegistrationRequest struct {
	IndividualUserId                   string `bson:"individualUserId,omitempty" json:"individualUserId,omitempty"`                                     // only for patients
	PractitionerId                     string `bson:"practitionerId,omitempty" json:"practitionerId,omitempty"`                                         // only for practitioners
	IdentifierAssignerIdentitySytemISO string `bson:"identifierAssignerIdentitySytemISO,omitempty" json:"identifierAssignerIdentitySytemISO,omitempty"` // ISO '3166-1' (for alfa-3 codes, e.g., 'ESP') or regional '3166-2:<alfa-2 code>' (e.g., '3166-2:US' for 'US-NY')
	IdentifierAssignerIdentityValueISO string `bson:"identifierAssignerIdentityValueISO,omitempty" json:"identifierAssignerIdentityValueISO,omitempty"` // e.g., 'ESP' or 'US-NY'
	IdentifierTypeCodeHL7              string `bson:"identifierTypeCodeHL7,omitempty" json:"identifierTypeCodeHL7,omitempty"`                           // e.g., "DL" for a driver license or "NNESP" for the Spanish National Identity Document / Spanish Tax ID Number
	IdentifierValidFrom                string `bson:"identifierValidFrom,omitempty" json:"identifierValidFrom,omitempty"`                               // Starting time when the identifier is/was valid for use
	IdentifierValidUntil               string `bson:"identifierValidUntil,omitempty" json:"identifierValidUntil,omitempty"`                             // Ending time when the identifier is/was valid for use
	IdentifierValue                    string `bson:"identifierValue,omitempty" json:"identifierValue,omitempty"`                                       // The unique value in the responsible entity, e.g.: unique identifier value of a National Identity Document
}

type IdentifierFullPlain added in v1.1.31

type IdentifierFullPlain struct {
	IdentifierAssignerDisplay        string `bson:"identifierAssignerDisplay,omitempty" json:"identifierAssignerDisplay,omitempty"`               // Organization that issued ID, e.g. "Goverment of Country" or "Laboratory Company"
	IdentifierAssignerIdentitySystem string `bson:"identifierAssignerIdentitySystem,omitempty" json:"identifierAssignerIdentitySystem,omitempty"` // e.g.: "urn:ietf:rfc:3986", "1.3.6.1.4.1.19126.3" (Spanish Tax ID number), ISO 3166-1 alfa-3 country code (e.g.: ESP) or 3166-2:<alfa-2> regional code (e.g., US-NY from 3166-2:US)
	IdentifierAssignerIdentityValue  string `bson:"identifierAssignerIdentityValue,omitempty" json:"identifierAssignerIdentityValue,omitempty"`   // The value that is unique, e.g. "urn:oid:<oid>", "urn:uuid:<uuid>","urn:did:<did>" or Tax ID number of the assigner organization
	IdentifierAssignerReferenceURI   string `bson:"identifierAssignerReferenceURI,omitempty" json:"identifierAssignerReferenceURI,omitempty"`     // A FHIR Reference.reference value, e.g. "Organization/<uuid>"
	IdentifierAssignerType           string `bson:"identifierAssignerType,omitempty" json:"identifierAssignerType,omitempty"`                     // A FHIR Resource type, e.g. "Organization"
	IdentifierCustomText             string `bson:"identifierCustomText,omitempty" json:"identifierCustomText,omitempty"`                         // Descriptive type of code text in the original language, e.g. "Documento Nacional de Identidad"
	IdentifierSystem                 string `bson:"identifierSystem,omitempty" json:"identifierSystem,omitempty"`                                 // Entity's namespace for 'identifierValue', e.g.: 1.3.6.1.4.1.19126.3 for spanish NIF / DNI (Tax ID number)
	IdentifierTypeCode               string `bson:"identifierTypeCode,omitempty" json:"identifierTypeCode,omitempty"`                             // Type of Code as defined by 'identifierTypeSystem' (HL7), e.g. "NNESP" for the Spanish National Identity Document / Spanish Tax ID Number
	IdentifierTypeDisplay            string `bson:"identifierTypeDisplay,omitempty" json:"identifierTypeDisplay,omitempty"`                       // Internationally standarized descriptive type of code text in english, e.g. "Tax ID Number"
	IdentifierTypeSystem             string `bson:"identifierTypeSystem,omitempty" json:"identifierTypeSystem,omitempty"`                         // Namespace for the type of code, e.g. "http://terminology.hl7.org/CodeSystem/v2-0203"
	IdentifierTypeUserSelected       bool   `bson:"identifierTypeUserSelected,omitempty" json:"identifierTypeUserSelected,omitempty"`             // If the type of code was chosen directly by the user
	IdentifierTypeVersion            string `bson:"identifierTypeVersion,omitempty" json:"identifierTypeVersion,omitempty"`                       // Version of the system for the type of code (if relevant)
	IdentifierUniversalId            string `bson:"identifierUniversalId,omitempty" json:"identifierUniversalId,omitempty"`                       // Identifier.id = identifierUniversalId as fixed storage ID of the identifier
	IdentifierUse                    string `bson:"identifierUse,omitempty" json:"identifierUse,omitempty"`                                       // "official", "usual", "secondary", "temp" or "old"
	IdentifierValidFrom              string `bson:"identifierValidFrom,omitempty" json:"identifierValidFrom,omitempty"`                           // Starting time when the identifier is/was valid for use
	IdentifierValidUntil             string `bson:"identifierValidUntil,omitempty" json:"identifierValidUntil,omitempty"`                         // Ending time when the identifier is/was valid for use
	IdentifierValue                  string `bson:"identifierValue,omitempty" json:"identifierValue,omitempty"`                                   // The unique value in the responsible entity, e.g.: unique identifier value of a National Identity Document
}

IdentifierExtensionVcId is the Claim.id

type IdentifierSimplePlain added in v1.1.31

type IdentifierSimplePlain struct {
	IdentifierValidFrom     string `bson:"identifierValidFrom,omitempty" json:"identifierValidFrom,omitempty"`         // Starting time when the identifier is/was valid for use
	IdentifierValidUntil    string `bson:"identifierValidUntil,omitempty" json:"identifierValidUntil,omitempty"`       // Ending time when the identifier is/was valid for use
	IdentifierSystem        string `bson:"identifierSystem,omitempty" json:"identifierSystem,omitempty"`               // Entity's namespace for 'identifierValue', e.g.: 1.3.6.1.4.1.19126.3 for spanish NIF / DNI (Tax ID number)
	IdentifierUse           string `bson:"identifierUse,omitempty" json:"identifierUse,omitempty"`                     // "official", "usual", "secondary", "temp" or "old"
	IdentifierValue         string `bson:"identifierValue,omitempty" json:"identifierValue,omitempty"`                 // The unique value in the responsible entity, e.g.: unique identifier value of a National Identity Document
	IdentifierExtensionVcId string `bson:"identifierExtensionVcId,omitempty" json:"identifierExtensionVcId,omitempty"` // VC's ID valueString as version ID ('meta' is not allowed within a FHIR identifier)
	IdentifierUniversalId   string `bson:"identifierUniversalId,omitempty" json:"identifierUniversalId,omitempty"`     // internal storage ID of the data resource
}

type IdentifierType added in v1.1.28

type IdentifierType struct {
	IdentifierTypeCode         string `bson:"identifierTypeCode,omitempty" json:"identifierTypeCode,omitempty"`                 // Type of Code as defined by 'identifierTypeSystem' (HL7), e.g. "NNESP" for the Spanish National Identity Document / Spanish Tax ID Number
	IdentifierTypeDisplay      string `bson:"identifierTypeDisplay,omitempty" json:"identifierTypeDisplay,omitempty"`           // Internationally standarized descriptive type of code text in english, e.g. "Tax ID Number"
	IdentifierTypeSystem       string `bson:"identifierTypeSystem,omitempty" json:"identifierTypeSystem,omitempty"`             // Namespace for the type of code, e.g. "http://terminology.hl7.org/CodeSystem/v2-0203"
	IdentifierTypeUserSelected bool   `bson:"identifierTypeUserSelected,omitempty" json:"identifierTypeUserSelected,omitempty"` // If the type of code was chosen directly by the user
	IdentifierTypeVersion      string `bson:"identifierTypeVersion,omitempty" json:"identifierTypeVersion,omitempty"`           // Version of the system for the type of code (if relevant)
}

type ImmunizationApiParams added in v1.0.77

type ImmunizationApiParams struct {
	// UHC specific
	ConnectionUHC       string // UHC private connection e.g. http://api.unid.es/v1/connection/987
	RecipientMessageUHC string

	// Immunization Terminology Bindings
	VaccineCode       string // system|code
	ImmunizationSite  string
	ImmunizationRoute string

	// Immunization Search Params
	OccurrenceDate  string // Vaccination (non)-Administration Date
	Identifier      string // Cross border identifier (not internal ID)
	Location        string // The service delivery location or facility in which the vaccine was / was to be administered
	LotNumber       string // Vaccine lot number.
	Manufacturer    string // Vaccine Manufacturer Organization Reference URI
	Patient         string // Who/what is the patient for the resource
	Performer       string // The practitioner or organization who played a role in the vaccination
	Reaction        string // Observation with details on reaction
	ReactionDate    string // Both for immunization and for allergies and intolerances
	ReasonCode      string // Reason why the vaccine was administered
	ReasonReference string // Resource about why immunization occurred
	Series          string // The series being followed by the provider
	StatusHL7       string // Immunization event status
	StatusReason    string // Not done reason code
	TargetDiseases  string // Target diseases.

	// Added Params
	SerieDosesRecommended string // Recommended number of doses for immunity.
	SerieDoseNumber       string // Dose number within series e.g.: 1
	ValueQuantity         string // Amount administered as quantity|unitcode e.g.: 1|mL
}

func (*ImmunizationApiParams) GetImmunizationApiTags added in v1.0.77

func (apiImmunization *ImmunizationApiParams) GetImmunizationApiTags() ImmunizationApiParams

Method GetImmunizationApiTags returns the valid params to be used

func (*ImmunizationApiParams) GetImmunizationFormByHttpRequest added in v1.0.77

func (apiImmunization *ImmunizationApiParams) GetImmunizationFormByHttpRequest(r *http.Request)

Method GetImmunizationFormByHttpRequest returns a BaseImmunization created with the params received

type Invitation

type Invitation struct {
	ID        string        `json:"@id" bson:"@id"`
	Type      string        `json:"@type" bson:"@type"`
	Label     string        `json:"label,omitempty" bson:"label,omitempty"`
	Goal      string        `json:"goal,omitempty" bson:"goal,omitempty"`
	GoalCode  string        `json:"goal-code,omitempty" bson:"goal-code,omitempty"`
	Service   []interface{} `json:"serviceClient" bson:"serviceClient"`
	Protocols []string      `json:"protocols" bson:"protocols"`
}

type InvitationAcceptationRequest

type InvitationAcceptationRequest struct {
	InvitationUhcId        string  `json:"invitationUhcId" bson:"invitationUhcId"`
	Password               string  `json:"password" bson:"password"`
	InvitedPublicKey       string  `bson:"invitedPublicKey,omitempty" json:"invitedPublicKey,omitempty"`
	InvitedEncryptionKeyId *string `json:"invitedEncryptionKeyId" bson:"invitedEncryptionKeyId"`
}

type InvitationAndEmailWithPwdRequest added in v1.1.22

type InvitationAndEmailWithPwdRequest struct {
	OrganizationId string `json:"organizationId" bson:"organizationId"`
	EmailToInvite  string `json:"emailToInvite" bson:"emailToInvite"`
	ConnectionPwd  string `json:"connectionPwd" bson:"connectionPwd"`
}

type InvitationCreationRequest

type InvitationCreationRequest struct {
	Type                     string  `json:"type" bson:"type"`
	Label                    string  `json:"label,omitempty" bson:"label,omitempty"`
	Goal                     string  `json:"goal,omitempty" bson:"goal,omitempty"`
	GoalCode                 string  `json:"goal-code,omitempty" bson:"goal-code,omitempty"`
	Password                 string  `json:"password" bson:"password"`
	InitiatorUserId          string  `json:"initiatorUserId" bson:"initiatorUserId"`
	InvitedUserId            string  `json:"invitedUserId" bson:"invitedUserId"`
	InitiatorPublicKey       string  `bson:"initiatorPublicKey,omitempty" json:"initiatorPublicKey,omitempty"`
	InitiatorEncryptionKeyId *string `json:"initiatorEncryptionKeyId" bson:"initiatorEncryptionKeyId"`
	OrganizationId           string  `json:"organizationId" bson:"organizationId"`
}

type InvitationUHC

type InvitationUHC struct {
	ID                        string                     `json:"id" bson:"id"`
	ShortId                   string                     `json:"shortId" bson:"shortId"`
	Type                      string                     `json:"type" bson:"type"`
	Label                     string                     `json:"label,omitempty" bson:"label,omitempty"`
	Goal                      string                     `json:"goal,omitempty" bson:"goal,omitempty"`
	GoalCode                  string                     `json:"goal-code,omitempty" bson:"goal-code,omitempty"`
	Protocols                 []string                   `json:"protocols" bson:"protocols"`
	Password                  string                     `json:"password" bson:"password"`
	Status                    string                     `json:"status" bson:"status"`
	InitiatorUserId           string                     `json:"initiatorUserId,omitempty" bson:"initiatorUserId,omitempty"`
	InvitedUserId             string                     `json:"invitedUserId,omitempty" bson:"invitedUserId,omitempty"`
	CreatedAt                 *time.Time                 `json:"createdAt" bson:"createdAt"`
	UpdatedAt                 *time.Time                 `json:"updatedAt" bson:"updatedAt"`
	EncryptionRequirements    EncryptionRequirements     `json:"encryptionRequirements" bson:"encryptionRequirements"`
	ExternalInvitationDetails *ExternalInvitationDetails `json:"externalInvitationDetails,omitempty" bson:"externalInvitationDetails,omitempty"`
	ReadStatus                string                     `json:"readStatus,omitempty" bson:"readStatus,omitempty"`
}

type InvitationUHCResponse

type InvitationUHCResponse struct {
	Code    int             `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64           `bson:"count,omitempty" json:"count,omitempty"`
	Message string          `bson:"message,omitempty" json:"message,omitempty"`
	Data    []InvitationUHC `bson:"data,omitempty" json:"data,omitempty"`
	Token   Token           `bson:"token,omitempty" json:"token,omitempty"`
}

type JWMPayload

type JWMPayload struct {
	Protected  string `json:"protected" bson:"protected"`
	IV         string `json:"iv" bson:"iv"`
	Ciphertext string `json:"ciphertext" bson:"ciphertext"`
	Tag        string `json:"tag" bson:"tag"`
}

type Key

type Key struct {
	ID               string     `bson:"id,omitempty" json:"id,omitempty"`
	WalletKeyId      string     `bson:"walletKeyId,omitempty" json:"walletKeyId,omitempty"` // Parent Wallet ID
	Tag              string     `bson:"tag,omitempty" json:"tag,omitempty"`
	Purposes         []string   `bson:"capability,omitempty" json:"capability,omitempty"`
	Type             string     `bson:"type,omitempty" json:"type,omitempty"`   //  e.g.: X25519KeyAgreementKey2019, Ed25519VerificationKey2018
	Usage            string     `bson:"usage,omitempty" json:"usage,omitempty"` // SIGN or ENCRYPTION
	PublicKeyBase64  string     `bson:"publicKeyBase64,omitempty" json:"publicKeyBase64,omitempty"`
	PrivateKeyBase64 string     `bson:"privateKeyBase64,omitempty" json:"privateKeyBase64,omitempty"`
	CreatedAt        *time.Time `bson:"createdAt,omitempty" json:"createdAt,omitempty"`
	UpdatedAt        *time.Time `bson:"updatedAt,omitempty" json:"updatedAt,omitempty"`
	ControllerDID    string     `bson:"controllerDid,omitempty" json:"controllerDid,omitempty"` // "did:v1:uuid:" + uhcUserId
	PublicKeyDID     string     `bson:"publicKeyDid,omitempty" json:"publicKeyDid,omitempty"`   // "did:v1:uuid:" + uhcUserId + "#" + Key.ID
	Expires          *time.Time `bson:"expires,omitempty" json:"expires,omitempty"`
	Revoked          *time.Time `bson:"revoked,omitempty" json:"revoked,omitempty"`
}

ouput for KeySecured

type KeyCreationOrganizationRequest

type KeyCreationOrganizationRequest struct {
	OrganizationId string  `bson:"organizationId,omitempty" json:"organizationId,omitempty"`
	AccessPassword *string `bson:"accessPassword,omitempty" json:"accessPassword,omitempty"`
	Tag            string  `bson:"tag,omitempty" json:"tag,omitempty"`
	Usage          string  `bson:"usage,omitempty" json:"usage,omitempty"`
}

type KeyCreationRequest

type KeyCreationRequest struct {
	AccessPassword string   `bson:"accessPassword,omitempty" json:"accessPassword,omitempty"`
	Tag            string   `bson:"tag,omitempty" json:"tag,omitempty"`
	Purposes       []string `bson:"capability,omitempty" json:"capability,omitempty"`
	Type           string   `bson:"type,omitempty" json:"type,omitempty"`   //  e.g.: X25519KeyAgreementKey2019, Ed25519VerificationKey2018
	Usage          string   `bson:"usage,omitempty" json:"usage,omitempty"` // SIGN or ENCRYPTION
}

type KeyEncryptedRetrieval added in v1.0.85

type KeyEncryptedRetrieval struct {
	ActiveKeysEncrypted string `bson:"activeKeysEncrypted,omitempty" json:"activeKeysEncrypted,omitempty"`
}

type KeyEncryptedRetrievalResponse added in v1.0.85

type KeyEncryptedRetrievalResponse struct {
	Code    int                     `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64                   `bson:"count,omitempty" json:"count,omitempty"`
	Message string                  `bson:"message,omitempty" json:"message,omitempty"`
	Data    []KeyEncryptedRetrieval `bson:"data,omitempty" json:"data,omitempty"`
}

type KeyResponse

type KeyResponse struct {
	Code    int    `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64  `bson:"count,omitempty" json:"count,omitempty"`
	Message string `bson:"message,omitempty" json:"message,omitempty"`
	Data    []Key  `bson:"data,omitempty" json:"data,omitempty"`
}

type KeyRetrievalRequest

type KeyRetrievalRequest struct {
	AccessPassword  string `bson:"accessPassword,omitempty" json:"accessPassword,omitempty"`
	EncryptionKeyID string `bson:"encryptionKeyId,omitempty" json:"encryptionKeyId,omitempty"`
}

type KeysRetrieval added in v1.0.87

type KeysRetrieval struct {
	Keys                  []Key  `bson:"keys,omitempty" json:"keys,omitempty"`
	ActiveEncryptionKeyId string `bson:"activeEncryptionKeyId,omitempty" json:"activeEncryptionKeyId,omitempty"`
	ActiveSigningKeyId    string `bson:"activeSigningKeyId,omitempty" json:"activeSigningKeyId,omitempty"`
}

type License

type License struct {
	LicenseID string       `bson:"id,omitempty" json:"id,omitempty"`
	Period    fhir4.Period `bson:"period,omitempty" json:"period,omitempty"`
	Type      string       `bson:"type,omitempty" json:"type,omitempty"`
	CreatedAt *time.Time   `bson:"createdAt,omitempty" json:"createdAt,omitempty"`
	UpdatedAt *time.Time   `bson:"updatedAt,omitempty" json:"updatedAt,omitempty"`
}

type MaritalClaim added in v1.1.28

type MaritalClaim struct {
	Context []string     `bson:"@context,omitempty" json:"@context,omitempty"`
	Digest  Digest       `bson:"digest,omitempty" json:"digest,omitempty"`
	Data    MaritalPlain `bson:"data,omitempty" json:"data,omitempty"`
	Holder  Holder       `bson:"holder,omitempty" json:"holder,omitempty"`
	Id      string       `bson:"id,omitempty" json:"id,omitempty"` // version of the blockchain certified Data
	Proofs  []Proof      `bson:"proof,omitempty" json:"proof,omitempty"`
	Type    string       `bson:"type,omitempty" json:"type,omitempty"`
}

PatientClaim = some PatientBase data + specific PatientProfile (destructured claims: Addresses, Contacts, Identifiers, Telecom)

type MaritalPlain added in v1.1.28

type MaritalPlain struct {
	MaritalStatus                          string                `bson:"maritalStatus,omitempty" json:"maritalStatus,omitempty"`
	ExtensionDivorceDate                   string                `bson:"extensionDivorceDate,omitempty" json:"extensionDivorceDate,omitempty"` // ISO date: yyyy-mm-dd
	ExtensionDivorceAddress                *MarriagePlaceAddress `bson:",inline"`
	ExtensionDivorceCertificateId          string                `bson:"extensionDivorceCertificateId,omitempty" json:"extensionDivorceCertificateId,omitempty"` // US core extension http://hl7.org/fhir/us/bfdr/StructureDefinition/Extension-birth-certificate-id
	ExtensionDivorceCertificateFileNumber  string                `bson:"extensionDivorceCertificateFileNumber,omitempty" json:"extensionDivorceCertificateFileNumber,omitempty"`
	ExtensionMarriageDate                  string                `bson:"extensionMarriageDate,omitempty" json:"extensionMarriageDate,omitempty"` // ISO date: yyyy-mm-dd
	ExtensionMarriageAddress               *MarriagePlaceAddress `bson:",inline"`
	ExtensionMarriageCertificateId         string                `bson:"extensionMarriageCertificateId,omitempty" json:"extensionMarriageCertificateId,omitempty"` // US core extension http://hl7.org/fhir/us/bfdr/StructureDefinition/Extension-birth-certificate-id
	ExtensionMarriageCertificateFileNumber string                `bson:"extensionMarriageCertificateFileNumber,omitempty" json:"extensionMarriageCertificateFileNumber,omitempty"`
	ExtensionMateNaturalGivenName          string                `bson:"extensionMateNaturalGivenName,omitempty" json:"extensionMateNaturalGivenName,omitempty"`
	MaritalUniversalId                     string                `bson:"maritalUniversalId,omitempty" json:"maritalUniversalId,omitempty"`
	RelatedSpouseUniversalId               string                `bson:"relatedSpouseUniversalId,omitempty" json:"relatedSpouseUniversalId,omitempty"`
}

type MarriagePlaceAddress added in v1.1.28

type MarriagePlaceAddress struct {
	MarriagePlaceCity     string   `bson:"marriagePlaceCity,omitempty" json:"marriagePlaceCity,omitempty"`         // City or Town
	MarriagePlaceCountry  string   `bson:"marriagePlaceCountry,omitempty" json:"marriagePlaceCountry,omitempty"`   // Country ISO 3 characters
	MarriagePlaceDistrict string   `bson:"marriagePlaceDistrict,omitempty" json:"marriagePlaceDistrict,omitempty"` // Province
	MarriagePlaceState    string   `bson:"marriagePlaceState,omitempty" json:"marriagePlaceState,omitempty"`       // Region
	MarriagePlaceLines    []string `bson:"marriagePlaceLines,omitempty" json:"marriagePlaceLines,omitempty"`
	MarriagePlaceText     string   `bson:"marriagePlaceText,omitempty" json:"marriagePlaceText,omitempty"`
}

type MessageUHC

type MessageUHC struct {
	ID                  string `json:"id" bson:"id"`
	ConnectionUhcId     string `json:"connectionUhcId" bson:"connectionUhcId"`
	Thread              string `json:"thread" bson:"thread"`
	RespondsToMessageId string `json:"respondsToMessageId" bson:"respondsToMessageId"`
	Type                string `json:"type" bson:"type"`
	Label               string `json:"label" bson:"label"`
	FromUserId          string `json:"fromUserId,omitempty" bson:"fromUserId,omitempty"`
	FromOrganizationId  string `json:"fromOrganizationId,omitempty" bson:"fromOrganizationId,omitempty"`

	ToUserId   string      `json:"toUserId,omitempty" bson:"toUserId,omitempty"`
	JWMPayload *JWMPayload `json:"jwmPayload" bson:"jwmPayload"`
	UHCPayload *UHCPayload `json:"uhcPayload" bson:"uhcPayload"`
	CreatedAt  *time.Time  `json:"createdAt" bson:"createdAt"`
	Status     string      `json:"status" bson:"status"`
}

type MessageUHCResponse

type MessageUHCResponse struct {
	Code    int          `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64        `bson:"count,omitempty" json:"count,omitempty"`
	Message string       `bson:"message,omitempty" json:"message,omitempty"`
	Data    []MessageUHC `bson:"data,omitempty" json:"data,omitempty"`
	Token   Token        `bson:"token,omitempty" json:"token,omitempty"`
}

type NamingClaim added in v1.1.28

type NamingClaim struct {
	Context []string            `bson:"@context,omitempty" json:"@context,omitempty"`
	Digest  *Digest             `bson:"digest,omitempty" json:"digest,omitempty"`
	Data    *NamingPlainWithISO `bson:"data,omitempty" json:"data,omitempty"` // https://build.fhir.org/iso-21090.html
	Holder  *Holder             `bson:"holder,omitempty" json:"holder,omitempty"`
	Id      string              `bson:"id,omitempty" json:"id,omitempty"` // version of the blockchain certified Data
	Proofs  *[]Proof            `bson:"proof,omitempty" json:"proof,omitempty"`
	Type    string              `bson:"type,omitempty" json:"type,omitempty"`
}

type NamingDataRegistrationRequest added in v1.1.38

type NamingDataRegistrationRequest struct {
	IndividualUserId                       string   `bson:"individualUserId,omitempty" json:"individualUserId,omitempty"` // only for patients
	PractitionerId                         string   `bson:"practitionerId,omitempty" json:"practitionerId,omitempty"`     // only for practitioners
	NamingOfficialGivenNames               []string `bson:"namingOfficialGivenNames,omitempty" json:"namingOfficialGivenNames,omitempty"`
	NamingOfficialGivenNamesExtensionENISO []string `bson:"namingOfficialGivenNamesExtensionENISO,omitempty" json:"namingOfficialGivenNamesExtensionENISO,omitempty"`
	NamingOfficialFamilyName               string   `bson:"namingOfficialFamilyName,omitempty" json:"namingOfficialFamilyName,omitempty"`
	NamingOfficialFamilyNameExtensionENISO string   `bson:"namingOfficialFamilyNameExtensionENISO,omitempty" json:"namingOfficialFamilyNameExtensionENISO,omitempty"`
	NamingExtensionFamilyOwnName           string   `bson:"namingExtensionFamilyOwnName,omitempty" json:"namingExtensionFamilyOwnName,omitempty"`
	NamingExtensionFamilyOwnNameENISO      string   `bson:"namingExtensionFamilyOwnNameENISO,omitempty" json:"namingExtensionFamilyOwnNameENISO,omitempty"`
	NamingExtensionFamilyMothersName       string   `bson:"namingExtensionFamilyMothersName,omitempty" json:"namingExtensionFamilyMothersName,omitempty"`
	NamingExtensionFamilyMothersNameENISO  string   `bson:"namingExtensionFamilyMothersNameENISO,omitempty" json:"namingExtensionFamilyMothersNameENISO,omitempty"`
}

type NamingPlainWithISO added in v1.1.34

type NamingPlainWithISO struct {
	// Array of NamingOfficialGivenNames should ever exists if NamingPlainWithISO and NamingClaim are created
	NamingOfficialGivenNames               *[]string `bson:"namingOfficialGivenNames,omitempty" json:"namingOfficialGivenNames,omitempty"`
	NamingOfficialGivenNamesExtensionENISO *[]string `bson:"namingOfficialGivenNamesExtensionENISO,omitempty" json:"namingOfficialGivenNamesExtensionENISO,omitempty"`
	NamingOfficialFamilyName               *string   `bson:"namingOfficialFamilyName,omitempty" json:"namingOfficialFamilyName,omitempty"`
	NamingOfficialFamilyNameExtensionENISO *string   `bson:"namingOfficialFamilyNameExtensionENISO,omitempty" json:"namingOfficialFamilyNameExtensionENISO,omitempty"`
	// family name that is derived from the person's own surname (father's family name or maiden name)
	NamingExtensionFamilyOwnName      *string `bson:"namingExtensionFamilyOwnName,omitempty" json:"namingExtensionFamilyOwnName,omitempty"`
	NamingExtensionFamilyOwnNameENISO *string `bson:"namingExtensionFamilyOwnNameENISO,omitempty" json:"namingExtensionFamilyOwnNameENISO,omitempty"`
	// second surname, e.g., in Spain, Chile, etc.
	NamingExtensionFamilyMothersName      *string `bson:"namingExtensionFamilyMothersName,omitempty" json:"namingExtensionFamilyMothersName,omitempty"`
	NamingExtensionFamilyMothersNameENISO *string `bson:"namingExtensionFamilyMothersNameENISO,omitempty" json:"namingExtensionFamilyMothersNameENISO,omitempty"`
	// family name that is derived from the person's partner's surname
	// FamilyPartnerName             string
	// ExtensionFamilyPartnerNameISO string
	NamingUniversalId string `bson:"namingUniversalId,omitempty" json:"namingUniversalId,omitempty"`
}

If the person's surname has legally changed to become (or incorporate) the surname of the person's partner or spouse, the family own-name is the person's surname immediately prior to such change. Often this is the person's "maiden name"

type NotificationType added in v1.1.9

type NotificationType string
const (
	OrganizationType NotificationType = "organization"
	MessageType      NotificationType = "message"
	AlertType        NotificationType = "alert"
)

type NotificationUHC added in v1.1.9

type NotificationUHC struct {
	Type      NotificationType `json:"type" bson:"type"`
	CreatedAt *time.Time       `json:"createdAt" bson:"createdAt"`
	Name      *string          `json:"name" bson:"name"`

	// 	Additional information
	//	Message connection id or organization id, depending on type)
	SubjectID string `json:"subjectId" bson:"subjectId"`
}

type NotificationUHCResponse added in v1.1.14

type NotificationUHCResponse struct {
	Code    int               `json:"code" bson:"code"`
	Count   int               `json:"count" bson:"count"`
	Message string            `json:"message" bson:"message"`
	Data    []NotificationUHC `json:"data" bson:"data"`
}

type OfficialDataRegistrationRequest added in v1.1.38

type OfficialDataRegistrationRequest struct {
	Email          string                            `bson:"email,omitempty" json:"email,omitempty"`
	PersonalData   PersonalDataRegistrationRequest   `bson:",inline"`
	AddressData    AddressDataRegistrationRequest    `bson:",inline"`
	IdentifierData IdentifierDataRegistrationRequest `bson:",inline"`
	NamingData     NamingDataRegistrationRequest     `bson:",inline"`
}

TODO: address ISO https://build.fhir.org/iso-21090.html

type OrgServiceClaim added in v1.1.78

type OrgServiceClaim struct {
	Context []string   `bson:"@context,omitempty" json:"@context,omitempty"`
	Digest  Digest     `bson:"digest,omitempty" json:"digest,omitempty"`
	Data    BirthPlain `bson:"data,omitempty" json:"data,omitempty"`
	Holder  Holder     `bson:"holder,omitempty" json:"holder,omitempty"`
	Id      string     `bson:"id,omitempty" json:"id,omitempty"` // version of the blockchain certified Data
	Proofs  []Proof    `bson:"proof,omitempty" json:"proof,omitempty"`
	Type    string     `bson:"type,omitempty" json:"type,omitempty"`
}

type OrgServicePermission added in v1.1.13

type OrgServicePermission struct {
	OrganizationId   string     `bson:"organizationId,omitempty" json:"organizationId,omitempty"`
	OrganizationRole string     `bson:"organizationRole,omitempty" json:"organizationRole,omitempty"`
	ConfirmedRole    bool       `bson:"confirmedRole" json:"confirmedRole"`
	CreatedAt        *time.Time `json:"createdAt" bson:"createdAt"`
}

TODO: remove?

type OrgServicePublicUHCExtensions added in v1.1.10

type OrgServicePublicUHCExtensions struct {
	AppId                       string      `bson:"appId,omitempty" json:"appId,omitempty"`
	DescriptionI18n             *[]I18nText `bson:"description~i18n,omitempty" json:"description~i18n,omitempty"`
	Tags                        *[]string   `bson:"tags,omitempty" json:"tags,omitempty"`
	LogoUrl                     string      `bson:"logoUrl,omitempty" json:"logoUrl,omitempty"`
	OrganizationImageDocumentId string      `bson:"organizationImageDocumentId,omitempty" json:"organizationImageDocumentId,omitempty"`
	OrganizationId              string      `bson:"organizationId,omitempty" json:"organizationId,omitempty"`
	ActiveTermsAndConditionsId  string      `bson:"termsAndConditionsId,omitempty" json:"termsAndConditionsId,omitempty"`
}

type OrgServiceSubject added in v1.1.10

type OrgServiceSubject struct {
	Fhir                *fhir4.HealthcareService       `bson:"fhir,omitempty" json:"fhir,omitempty"`
	UhcPublicExtensions *OrgServicePublicUHCExtensions `bson:"uhcPublicExtensions,omitempty" json:"uhcPublicExtensions,omitempty"` //dlt: no
}

type OrgServiceUHC added in v1.1.10

type OrgServiceUHC struct {
	ID                  string                         `bson:"id,omitempty" json:"id,omitempty"`
	ActiveCredentialID  string                         `bson:"activeCredential,omitempty" json:"activeCredential,omitempty"`
	OrganizationService *fhir4.HealthcareService       `bson:"fhir,omitempty" json:"fhir,omitempty"`
	UhcPublicExtensions *OrgServicePublicUHCExtensions `bson:"uhcPublicExtensions,omitempty" json:"uhcPublicExtensions,omitempty"` //dlt: no
	CreatedAt           *time.Time                     `json:"createdAt" bson:"createdAt"`
}

type OrgServiceUHCAccess added in v1.1.10

type OrgServiceUHCAccess struct {
	ID                            string                   `bson:"id,omitempty" json:"id,omitempty"`
	OrgServiceUhcId               string                   `bson:"orgServiceUhcId,omitempty" json:"organizationUhcId,omitempty"`
	ActiveEncryptionKeyID         *string                  `bson:"activeEncryptionKeyID,omitempty" json:"activeEncryptionKeyID,omitempty"`
	ActiveSigningKeyID            *string                  `bson:"activeSigningKeyID,omitempty" json:"activeSigningKeyID,omitempty"`
	ActiveOrgServiceAccessTokenId *string                  `bson:"activeOrgServiceAccessTokenId,omitempty" json:"activeOrganizationAccessTokenId,omitempty"`
	ApplicationsLicenses          *[]ApplicationLicense    `bson:"ApplicationsLicenses,omitempty" json:"applications,omitempty"`
	ApplicationsPermissions       *[]ApplicationPermission `bson:"applicationsPermissions,omitempty" json:"applicationsPermissions,omitempty"`
}

type OrgServiceUHCResponse added in v1.1.10

type OrgServiceUHCResponse struct {
	Code    int             `bson:"code,omitempty" json:"code,omitempty"`
	Message string          `bson:"message,omitempty" json:"message,omitempty"`
	Data    []OrgServiceUHC `bson:"data,omitempty" json:"data,omitempty"`
	Token   Token           `bson:"token,omitempty" json:"token,omitempty"`
}

type OrgServiceVC added in v1.1.10

type OrgServiceVC struct {
	Context        []string             `bson:"@context,omitempty" json:"@context,omitempty"`
	ID             string               `bson:"id,omitempty" json:"id,omitempty"`
	Subject        OrgServiceSubject    `bson:"credentialSubject,omitempty" json:"credentialSubject,omitempty"`
	Type           []string             `bson:"type,omitempty" json:"type,omitempty"`
	Issuer         verifiable.Issuer    `bson:"issuer,omitempty" json:"issuer,omitempty"`
	Issued         *time.Time           `bson:"issuanceDate,omitempty" json:"issuanceDate,omitempty"`
	Expired        *time.Time           `bson:"expirationDate,omitempty" json:"expirationDate,omitempty"`
	ListOfProof    []proof.Proof        `bson:"proof,omitempty" json:"proof,omitempty"`
	Status         *verifiable.TypedID  `bson:"credentialStatus,omitempty" json:"credentialStatus,omitempty"`
	Schemas        []verifiable.TypedID `bson:"credentialSchema,omitempty" json:"credentialSchema,omitempty"`
	TermsOfUse     []verifiable.TypedID `bson:"termsOfUse,omitempty" json:"termsOfUse,omitempty"`
	RefreshService []verifiable.TypedID `bson:"refreshService,omitempty" json:"refreshService,omitempty"`
}

type OrgServiceVCResponse added in v1.1.10

type OrgServiceVCResponse struct {
	Code    int            `bson:"code,omitempty" json:"code,omitempty"`
	Message string         `bson:"message,omitempty" json:"message,omitempty"`
	Data    []OrgServiceVC `bson:"data,omitempty" json:"data,omitempty"`
}

type OrgServiceVP added in v1.1.10

type OrgServiceVP struct {
	Context               []string       `bson:"@context,omitempty" json:"@context,omitempty"`
	ID                    string         `bson:"id,omitempty" json:"id,omitempty"`
	Type                  []string       `bson:"type,omitempty" json:"type,omitempty"`
	VerifiableCredentials []OrgServiceVC `bson:"verifiableCredential,omitempty" json:"verifiableCredential,omitempty"`
	Holder                string         `bson:"holder,omitempty" json:"holder,omitempty"`
	ListOfProof           []proof.Proof  `bson:"proof,omitempty" json:"proof,omitempty"`
}

type OrganizationPermission

type OrganizationPermission struct {
	AppId            string     `bson:"appId,omitempty" json:"appId,omitempty"`
	OrganizationId   string     `bson:"organizationId,omitempty" json:"organizationId,omitempty"`
	OrganizationRole string     `bson:"organizationRole,omitempty" json:"organizationRole,omitempty"`
	RoleUHC          string     `bson:"roleUHC,omitempty" json:"roleUHC,omitempty"`
	RolesSNOMED      []string   `bson:"rolesSNOMED,omitempty" json:"rolesSNOMED,omitempty"`
	OrgServiceIds    []string   `bson:"orgServiceIds,omitempty" json:"orgServiceIds,omitempty"`
	ConfirmedRole    bool       `bson:"confirmedRole" json:"confirmedRole"`
	CreatedAt        *time.Time `json:"createdAt" bson:"createdAt"`
}

TODO: deprecate OrganizationRole to RoleUHC, rename to UhcPermission

type OrganizationPublicUHCExtensions

type OrganizationPublicUHCExtensions struct {
	AppId                       string      `bson:"appId,omitempty" json:"appId,omitempty"`
	DescriptionI18n             *[]I18nText `bson:"description~i18n,omitempty" json:"description~i18n,omitempty"`
	Tags                        *[]string   `bson:"tags,omitempty" json:"tags,omitempty"`
	LogoUrl                     string      `bson:"logoUrl,omitempty" json:"logoUrl,omitempty"`
	LogoBase64Data              string      `bson:"logoBase64Data,omitempty" json:"logoBase64Data,omitempty"`
	OrganizationImageDocumentId string      `bson:"organizationImageDocumentId,omitempty" json:"organizationImageDocumentId,omitempty"`
	OrganizationId              string      `bson:"organizationId,omitempty" json:"organizationId,omitempty"`
	ActiveTermsAndConditionsId  string      `bson:"termsAndConditionsId,omitempty" json:"termsAndConditionsId,omitempty"`
}

type OrganizationUHC

type OrganizationUHC struct {
	ID                  string                           `bson:"id,omitempty" json:"id,omitempty"`
	ActiveCredentialID  string                           `bson:"activeCredentialId,omitempty" json:"activeCredentialId,omitempty"`
	FhirOrganization    *fhir4.Organization              `bson:"fhir,omitempty" json:"fhir,omitempty"`
	UhcPublicExtensions *OrganizationPublicUHCExtensions `bson:"uhcPublicExtensions,omitempty" json:"uhcPublicExtensions,omitempty"` //dlt: no
	CreatedAt           *time.Time                       `json:"createdAt" bson:"createdAt"`
}

type OrganizationUHCAccess

type OrganizationUHCAccess struct {
	ID                              string                   `bson:"id,omitempty" json:"id,omitempty"`
	OrganizationUhcId               string                   `bson:"organizationUhcId,omitempty" json:"organizationUhcId,omitempty"`
	ActiveEncryptionKeyID           *string                  `bson:"activeEncryptionKeyID,omitempty" json:"activeEncryptionKeyID,omitempty"`
	ActiveSigningKeyID              *string                  `bson:"activeSigningKeyID,omitempty" json:"activeSigningKeyID,omitempty"`
	ActiveOrganizationAccessTokenId *string                  `bson:"activeOrganizationAccessTokenId,omitempty" json:"activeOrganizationAccessTokenId,omitempty"`
	ApplicationsLicenses            *[]ApplicationLicense    `bson:"ApplicationsLicenses,omitempty" json:"applications,omitempty"`
	ApplicationsPermissions         *[]ApplicationPermission `bson:"applicationsPermissions,omitempty" json:"applicationsPermissions,omitempty"`
}

type OrganizationUHCResponse

type OrganizationUHCResponse struct {
	Code    int               `bson:"code,omitempty" json:"code,omitempty"`
	Message string            `bson:"message,omitempty" json:"message,omitempty"`
	Data    []OrganizationUHC `bson:"data,omitempty" json:"data,omitempty"`
	Token   Token             `bson:"token,omitempty" json:"token,omitempty"`
}

type OrganizationVC

type OrganizationVC struct {
	Context        []string              `bson:"@context,omitempty" json:"@context,omitempty"`
	ID             string                `bson:"id,omitempty" json:"id,omitempty"`
	Subject        FhirCredentialSubject `bson:"credentialSubject,omitempty" json:"credentialSubject,omitempty"`
	Type           []string              `bson:"type,omitempty" json:"type,omitempty"`
	Issuer         verifiable.Issuer     `bson:"issuer,omitempty" json:"issuer,omitempty"`
	Issued         *time.Time            `bson:"issuanceDate,omitempty" json:"issuanceDate,omitempty"`
	Expired        *time.Time            `bson:"expirationDate,omitempty" json:"expirationDate,omitempty"`
	ListOfProof    []proof.Proof         `bson:"proof,omitempty" json:"proof,omitempty"`
	Status         *verifiable.TypedID   `bson:"credentialStatus,omitempty" json:"credentialStatus,omitempty"`
	Schemas        []verifiable.TypedID  `bson:"credentialSchema,omitempty" json:"credentialSchema,omitempty"`
	TermsOfUse     []verifiable.TypedID  `bson:"termsOfUse,omitempty" json:"termsOfUse,omitempty"`
	RefreshService []verifiable.TypedID  `bson:"refreshService,omitempty" json:"refreshService,omitempty"`
}

type OrganizationVCResponse

type OrganizationVCResponse struct {
	Code    int              `bson:"code,omitempty" json:"code,omitempty"`
	Message string           `bson:"message,omitempty" json:"message,omitempty"`
	Data    []OrganizationVC `bson:"data,omitempty" json:"data,omitempty"`
}

type OrganizationVP

type OrganizationVP struct {
	Context               []string         `bson:"@context,omitempty" json:"@context,omitempty"`
	ID                    string           `bson:"id,omitempty" json:"id,omitempty"`
	Type                  []string         `bson:"type,omitempty" json:"type,omitempty"`
	VerifiableCredentials []OrganizationVC `bson:"verifiableCredential,omitempty" json:"verifiableCredential,omitempty"`
	Holder                string           `bson:"holder,omitempty" json:"holder,omitempty"`
	ListOfProof           []proof.Proof    `bson:"proof,omitempty" json:"proof,omitempty"`
}

type Participant added in v1.1.45

type Participant struct {
	ParticipantId               string `json:"participantId" bson:"participantId"`
	ParticipantType             int    `json:"participantType" bson:"participantType"`
	EncapsulatedSharedKeyBase64 string `json:"encapsulatedSharedKeyBase64" bson:"encapsulatedSharedKeyBase64"`
	ReadStatus                  string `json:"readStatus,omitempty" bson:"readStatus,omitempty"`
	// ActivePermissions         *[]PermissionsUHC          `json:"activePermissions" bson:"activePermissions"`
	AccessCode string `json:"accessCode" bson:"accessCode"`
	Active     *bool  `json:"active" bson:"active"`
	// PendingPermissionsRequest *[]PermissionsRequestUHC   `json:"requestedPendingPermissions" bson:"requestedPendingPermissions"`
	ActiveUntil *time.Time `json:"activeUntil" bson:"activeUntil"`
	Goal        string     `json:"goal" bson:"goal"`
	// PermissionsRequested *[]PermissionsUHC `json:"permissionsRequested" bson:"permissionsRequested"`
	Scopes []string `json:"scopes" bson:"scopes"` // granular access rights for scpecific data, e.g., IPS sections

}

type PatientDonorIdentityPlain added in v1.1.32

type PatientDonorIdentityPlain struct {
	Active                     bool                       `bson:"active,omitempty" json:"active,omitempty"`                                     // Current patient identity or not
	Address                    AddressPlain               `bson:",inline"`                                                                      // Patient.address home
	Birth                      BirthPlain                 `bson:",inline"`                                                                      // FHIR date (not datetime), e.g. "1978-12-30"
	ExtensionBirthPlaceAddress ExtensionBirthPlaceAddress `bson:",inline"`                                                                      // FHIR birthPlace is a FHIR patient's extension required for VCs
	ExtensionNationalityCode   string                     `bson:"extensionNationalityCode,omitempty" json:"extensionNationalityCode,omitempty"` // ISO 3166 Part 1 Numeric codes, but not 3-letter codes: http://hl7.org/fhir/ValueSet/iso3166-1-N
	Gender                     string                     `bson:"gender,omitempty" json:"gender,omitempty"`                                     // Official gender (it can be different to BirthSex or to patient's GenderIdentity)
	Identifier                 IdentifierFullPlain        `bson:",inline"`                                                                      // Official identifier: type (e.g., 'NNESP'), value (e.g., 'DNInumber') and assigner (goverment)
	Naming                     NamingPlainWithISO         `bson:",inline"`                                                                      // both Alphabetic, Abjad, Ideographic and Sylabic naming systems
	Photo                      PhotoAttachmentPlain       `bson:",inline"`                                                                      // Patient.photo attachment
	UniversalId                string                     `bson:"universalId,omitempty" json:"universalId,omitempty"`                           // internal identifier (FHIR Patient.id = identityId)

}

OUTPUT: most of FHIR Patient properties as 'Sheet': it contains only one official identifier as identity; 'birthDate' must be copied from BirthPlain (certificate)

type PatientIdentityClaim added in v1.1.28

type PatientIdentityClaim struct {
	Context []string                  `bson:"@context,omitempty" json:"@context,omitempty"`
	Digest  Digest                    `bson:"digest,omitempty" json:"digest,omitempty"`
	Data    PatientDonorIdentityPlain `bson:"data,omitempty" json:"data,omitempty"`
	Holder  Holder                    `bson:"holder,omitempty" json:"holder,omitempty"`
	Id      string                    `bson:"id,omitempty" json:"id,omitempty"` // version of the blockchain certified Data
	Proofs  []Proof                   `bson:"proof,omitempty" json:"proof,omitempty"`
	Type    string                    `bson:"type,omitempty" json:"type,omitempty"`
}

Patient = PatientRoot + PatientIdentityPlain + (destructured claims: Addresses, Contacts, Identifiers, Telecom)

type PatientTreeUHC added in v1.1.28

type PatientTreeUHC struct {
	// PatientRoot               PatientInfoUHC          `bson:",inline"`                                                                        // typescript: extends PatientRootUHC
	AddressBillingPostalHome    *AddressPlain               `bson:"addressBillingPostalHome,omitempty" json:"addressBillingPostalHome,omitempty"`   // Personal billing / postal address if different to the usual address
	AddressSecondPhysicalHome   *AddressPlain               `bson:"addressSecondPhysicalHome,omitempty" json:"addressSecondPhysicalHome,omitempty"` // Second residence
	AddressTempPhysicalHome     *AddressPlain               `bson:"addressTempPhysicalHome,omitempty" json:"addressTempPhysicalHome,omitempty"`     // Temporary residence (e.g., vacation)
	CommunicationLangCodesBCP47 []string                    `bson:"communicationLanguages,omitempty" json:"communicationLanguages,omitempty"`       // BCP47 codes, the preferred order is the array order, e.g. '["es","en"]
	ContactPersons              *[]PersonalContactPlain     `bson:"contactPersons,omitempty" json:"contactPersons,omitempty"`
	ExtensionGenderIdentity     string                      `bson:"extensionGenderIdentity,omitempty" json:"extensionGenderIdentity,omitempty"` // Extension Gender identity terminology https://www.hl7.org/fhir/valueset-gender-identity.html
	InterpreterRequired         bool                        `bson:"interpreterRequired,omitempty" json:"interpreterRequired,omitempty"`         // extension http://hl7.org/fhir/StructureDefinition/-interpreterRequired
	EmailAlternatives           *[]TelecomPlain             `bson:"emailAlternatives,omitempty" json:"emailAlternatives,omitempty"`             // other verified email addresses (of the same user)
	EmailMain                   TelecomPlain                `bson:"emailMain,omitempty" json:"emailMain,omitempty"`                             // verified email address
	MetaVcId                    string                      `bson:"metaVcId,omitempty" json:"metaVcId,omitempty"`                               // FHIR Patient.meta.version = certified version ID on blockchain (txId)
	PatientIdentities           []PatientDonorIdentityPlain `bson:"patientIdentit¡es,omitempty" json:"patientIdentities,omitempty"`
	PhoneAlternatives           *[]TelecomPlain             `bson:"phoneAlternatives,omitempty" json:"phoneAlternatives,omitempty"` // verified phones on blockchain
	PhoneMobile                 TelecomPlain                `bson:"phoneMobile,omitempty" json:"phoneMobile,omitempty"`             // verified mobile phone

}

OUTPUT data to create PatientTree and FHIR Patient

type Permission added in v1.1.66

type Permission struct {
	AppId            string     `bson:"appId,omitempty" json:"appId,omitempty"`
	OrganizationId   string     `bson:"organizationId,omitempty" json:"organizationId,omitempty"`
	OrgServiceIds    []string   `bson:"orgServiceIds,omitempty" json:"orgServiceIds,omitempty"`
	OrganizationRole string     `bson:"organizationRole,omitempty" json:"organizationRole,omitempty"`
	RoleUHC          string     `bson:"roleUHC,omitempty" json:"roleUHC,omitempty"`
	RolesSNOMED      []string   `bson:"rolesSNOMED,omitempty" json:"rolesSNOMED,omitempty"`
	ConfirmedRole    bool       `bson:"confirmedRole" json:"confirmedRole"`
	CreatedAt        *time.Time `json:"createdAt" bson:"createdAt"`
}

TODO: deprecate OrganizationRole to RoleUHC, rename to UhcPermission

type PermissionUHCAccessRequest

type PermissionUHCAccessRequest struct {
	Permissions []PermissionsUHC `json:"permissions" bson:"permissions"`
	Until       time.Time        `json:"until" bson:"until"`
}

type PermissionsRequestUHC

type PermissionsRequestUHC struct {
	ID                   string            `json:"id" bson:"id"`
	ConnectionId         string            `json:"connectionId" bson:"connectionId"`
	PermissionsRequested *[]PermissionsUHC `json:"permissionsRequested" bson:"permissionsRequested"`
	ActiveUntil          *time.Time        `json:"activeUntil" bson:"activeUntil"`
	Goal                 string            `json:"goal" bson:"goal"`
	Status               string            `json:"status" bson:"status"`
}

type PermissionsUHC

type PermissionsUHC struct {
	AccessCode string `json:"accessCode" bson:"accessCode"`
	Active     *bool  `json:"active" bson:"active"`
	Goal       string `json:"goal" bson:"goal"`
}

type PersonalContactPlain added in v1.1.24

type PersonalContactPlain struct {
	PersonalIdentityId   string   // PatientIdentityClaim
	RelationshipCodesHL7 []string // The kind of relationship
	ValidPeriodFrom      string
	ValidPeriodUntil     string
}

type PersonalDataRegistrationRequest added in v1.1.38

type PersonalDataRegistrationRequest struct {
	IndividualUserId string `bson:"individualUserId,omitempty" json:"individualUserId,omitempty"` // only for patients
	PractitionerId   string `bson:"practitionerId,omitempty" json:"practitionerId,omitempty"`     // only for practitioners
	BirthDate        string `bson:"birthDate,omitempty" json:"birthDate,omitempty"`
	Gender           string `bson:"gender,omitempty" json:"gender,omitempty"`
}

type PersonalTelecomSheet added in v1.1.78

type PersonalTelecomSheet struct {
	TelecomPersonalContactsPlain `bson:",inline"`
	TelecomBusinessContactsPlain `bson:",inline"`
}

type PersonalUserPreRegistrationRequest added in v1.1.66

type PersonalUserPreRegistrationRequest struct {
	Invited                              bool         `bson:"invited,omitempty" json:"invited,omitempty"` // It is true if  the patient or practitioner has been invited and false if self registration
	Email                                string       `bson:"email,omitempty" json:"email,omitempty"`
	Mobile                               string       `bson:"mobile,omitempty" json:"mobile,omitempty"`
	Mfa                                  string       `bson:"mfa,omitempty" json:"mfa,omitempty"` // MultiFactor Authentication: email or mobile
	Permissions                          []Permission `bson:"permissions,omitempty" json:"permissions,omitempty"`
	PreferredLanguage                    string       `bson:"preferredLanguage,omitempty" json:"preferredLanguage,omitempty"`
	IdentifierAssignerSystemTerritoryISO string       `bson:"identifierAssignerSystemTerritoryISO,omitempty" json:"identifierAssignerSystemTerritoryISO,omitempty"` // ISO '3166-1' (for alfa-3 codes, e.g., 'ESP') or regional '3166-2:<alfa-2 code>' (e.g., '3166-2:US' for 'US-NY')
	IdentifierAssignerValueTerritoryISO  string       `bson:"identifierAssignerValueTerritoryISO,omitempty" json:"identifierAssignerValueTerritoryISO,omitempty"`   // e.g., 'ESP' or 'US-NY'
	IdentifierTypeCodeHL7                string       `bson:"identifierTypeCodeHL7,omitempty" json:"identifierTypeCodeHL7,omitempty"`                               // e.g., "DL" for a driver license or "NNESP" for the Spanish National Identity Document / Spanish Tax ID Number
	IdentifierValue                      string       `bson:"identifierValue,omitempty" json:"identifierValue,omitempty"`                                           // The unique value in the responsible entity, e.g.: unique identifier value of a National Identity Document
	Birthdate                            string       `bson:"birthdate,omitempty" json:"birthdate,omitempty"`
	GenderOfficial                       string       `bson:"genderOfficial,omitempty" json:"genderOfficial,omitempty"`
	GuardianshipUhcUserIds               []string     `bson:"guardianshipUhcUserIds,omitempty" json:"guardianshipUhcUserIds,omitempty"` // only for dependant users (e.g.: child, older people)
	GuardianshipDocumentsVcIds           string       `bson:"guardianshipDocumentsVcIds,omitempty" json:"guardianshipDocumentsVcIds,omitempty"`
}

OrganizationPermission includes AppId, AppOrganizationId, AppRoleUHC

type PhotoAttachmentPlain added in v1.1.24

type PhotoAttachmentPlain struct {
	PhotoBase64Data       string `bson:"photoBase64Data,omitempty" json:"photoBase64Data,omitempty"`             // Data inline, base64ed
	PhotoCreationDateTime string `bson:"photoCreationDateTime,omitempty" json:"photoCreationDateTime,omitempty"` // Date attachment was first created
	PhotoMimeType         string `bson:"photoMimeType,omitempty" json:"photoMimeType,omitempty"`                 // Mime type of the content, with charset etc.
	PhotoSha1Base64       string `bson:"photoSha1Base64,omitempty" json:"photoSha1Base64,omitempty"`             // Hash of the data (sha-1, base64ed)
	PhotoSizeBytes        int    `bson:"photoSizeBytes,omitempty" json:"photoSizeBytes,omitempty"`               // Number of bytes of content (if url provided)
	PhotoTitle            string `bson:"photoTitle,omitempty" json:"photoTitle,omitempty"`                       // Label to display in place of the data
	PhotoUrl              string `bson:"photoUrl,omitempty" json:"photoUrl,omitempty"`                           // Uri where the data can be found

}

type PractitionerRoleClaim added in v1.1.44

type PractitionerRoleClaim struct {
	Context []string              `bson:"@context,omitempty" json:"@context,omitempty"`
	Digest  Digest                `bson:"digest,omitempty" json:"digest,omitempty"`
	Data    PractitionerRolePlain `bson:"data,omitempty" json:"data,omitempty"`
	Holder  Holder                `bson:"holder,omitempty" json:"holder,omitempty"`
	Id      string                `bson:"id,omitempty" json:"id,omitempty"` // version of the blockchain certified Data
	Proofs  []Proof               `bson:"proof,omitempty" json:"proof,omitempty"`
	Type    string                `bson:"type,omitempty" json:"type,omitempty"`
}

Patient = PatientRoot + PatientIdentityPlain + (destructured claims: Addresses, Contacts, Identifiers, Telecom)

type PractitionerRolePlain added in v1.1.44

type PractitionerRolePlain struct {
	Active                 bool     `bson:"active,omitempty" json:"active,omitempty"`                                       // Whether this practitioner role record is in active use
	UniversalId            string   `bson:"universalId,omitempty" json:"universalId,omitempty"`                             // UUID v4 for this PractitionerRole
	RoleCodesSNOMED        []string `bson:"rolesSNOMED,omitempty" json:"rolesSNOMED,omitempty"`                             // SNOMED Roles which this practitioner may perform
	EmailId                string   `bson:"emailId,omitempty" json:"emailId,omitempty"`                                     // Contact details that are specific to the role/location/service
	PhoneId                string   `bson:"phoneId,omitempty" json:"phoneId,omitempty"`                                     // Contact details that are specific to the role/location/service
	MobilePhoneId          string   `bson:"mobilePhoneId,omitempty" json:"mobilePhoneId,omitempty"`                         // Contact details that are specific to the role/location/service
	PractitionerId         string   `bson:"practitionerId,omitempty" json:"practitionerId,omitempty"`                       // Practitioner that is able to provide the defined services for the organization
	OrganizationId         string   `bson:"organizationId,omitempty" json:"organizationId,omitempty"`                       // Organization where the roles are available
	BussinessIdentifierIds []string `bson:"bussinessIdentifiersIndex,omitempty" json:"bussinessIdentifiersIndex,omitempty"` // Business Identifiers that are specific to a role/location
	ValidFrom              string   `bson:"validFrom,omitempty" json:"validFrom,omitempty"`                                 // The period during which the practitioner is authorized to perform in these role(s)
	ValidUntil             string   `bson:"validUntil,omitempty" json:"validUntil,omitempty"`                               // The period during which the practitioner is authorized to perform in these role(s)
	SpecialtyCodesHL7      []string `bson:"specialtiesHL7,omitempty" json:"specialtiesHL7,omitempty"`                       // Specific specialty of the practitioner: HL7 Practice Setting Code (Preferred)
	LocationIds            []string `bson:"locationsIndex,omitempty" json:"locationsIndex,omitempty"`                       // The location(s) ID(s) at which this practitioner provides care
	OrganizationServiceIds []string `bson:"servicesIndex,omitempty" json:"servicesIndex,omitempty"`                         // The list of bussiness services (healthcare services) that this worker provides for this role's Organization/Location(s)
}

type Preferences added in v1.1.24

type Preferences struct {
	PreferredLanguage string `bson:"preferredLanguage,omitempty" json:"preferredLanguage,omitempty"`
	CurrentAddressId  string `bson:"currentAddressId,omitempty" json:"currentAddressId,omitempty"`   // Current selected address in preferences
	CurrentIdentityId string `bson:"currentIdentityId,omitempty" json:"currentIdentityId,omitempty"` // Current selected official identity in preferences
}

type PresentationWithBundleInVC added in v1.0.77

type PresentationWithBundleInVC struct {
	Context      []string         `json:"@context,omitempty"`
	ID           string           `json:"id,omitempty" bson:"id,omitempty"`
	Type         []string         `json:"type,omitempty" bson:"type,omitempty"`
	Holder       string           `json:"holder,omitempty" bson:"holder,omitempty"`
	Proof        []proof.Proof    `json:"proof,omitempty" bson:"proof,omitempty"`
	CustomFields CustomFields     `json:"-" bson:"customFields,omitempty"` // All unmapped fields are put here.
	Credential   []CredentialFHIR `json:"verifiableCredential" bson:"verifiableCredential,omitempty"`
}

type ProfessionalPreRegistrationRequest added in v1.1.40

type ProfessionalPreRegistrationRequest struct {
	Invited                              bool         `bson:"invited,omitempty" json:"invited,omitempty"` // It is true if  the patient or practitioner has been invited and false if self registration
	Email                                string       `bson:"email,omitempty" json:"email,omitempty"`
	Mobile                               string       `bson:"mobile,omitempty" json:"mobile,omitempty"`
	Mfa                                  string       `bson:"mfa,omitempty" json:"mfa,omitempty"` // MultiFactor Authentication: email or mobile
	Permissions                          []Permission `bson:"permissions,omitempty" json:"permissions,omitempty"`
	PreferredLanguage                    string       `bson:"preferredLanguage,omitempty" json:"preferredLanguage,omitempty"`
	IdentifierAssignerSystemTerritoryISO string       `bson:"identifierAssignerSystemTerritoryISO,omitempty" json:"identifierAssignerSystemTerritoryISO,omitempty"` // ISO '3166-1' (for alfa-3 codes, e.g., 'ESP') or regional '3166-2:<alfa-2 code>' (e.g., '3166-2:US' for 'US-NY')
	IdentifierAssignerValueTerritoryISO  string       `bson:"identifierAssignerValueTerritoryISO,omitempty" json:"identifierAssignerValueTerritoryISO,omitempty"`   // e.g., 'ESP' or 'US-NY'
	IdentifierTypeCodeHL7                string       `bson:"identifierTypeCodeHL7,omitempty" json:"identifierTypeCodeHL7,omitempty"`                               // e.g., "DL" for a driver license or "NNESP" for the Spanish National Identity Document / Spanish Tax ID Number
	IdentifierValue                      string       `bson:"identifierValue,omitempty" json:"identifierValue,omitempty"`                                           // The unique value in the responsible entity, e.g.: unique identifier value of a National Identity Document
	Birthdate                            string       `bson:"birthdate,omitempty" json:"birthdate,omitempty"`
	GenderOfficial                       string       `bson:"genderOfficial,omitempty" json:"genderOfficial,omitempty"`
	LinkedToUhcUserId                    string       `bson:"linkedToUhcUserId,omitempty" json:"linkedToUhcUserId,omitempty"` // only for professionals
	LocationIds                          []string     `bson:"locationIds,omitempty" json:"locationIds,omitempty"`
	SpecialtyCodesHL7                    []string     `bson:"specialtyCodesHL7,omitempty" json:"specialtyCodesHL7,omitempty"`
	ValidUntil                           string       `bson:"validUntil,omitempty" json:"validUntil,omitempty"` // role expiration datetime
}

type Proof added in v1.1.28

type Proof struct {
	CapabilityChain          []interface{} `bson:"capabilityChain,omitempty" json:"capabilityChain,omitempty"` // typescript string[]
	Challenge                string        `bson:"challenge,omitempty" json:"challenge,omitempty"`             // e.g. "d1b23d3...3d23d32d2",
	Created                  string        `bson:"created,omitempty" json:"created,omitempty"`                 // ISO 8601, e.g. "2019-08-13T15:09:00+01:00" (in Aries go framework use *util.TimeWithTrailingZeroMsec instead of time.Time)
	Creator                  string        `bson:"creator,omitempty" json:"creator,omitempty"`
	Domain                   string        `bson:"domain,omitempty" json:"domain,omitempty"` // "https://example.com"
	Id                       string        `bson:"id,omitempty" json:"id,omitempty"`
	Jws                      string        `bson:"jws,omitempty" json:"jws,omitempty"`
	Nonce                    string        `bson:"nonce,omitempty" json:"nonce,omitempty"`                                       // base64
	ProofPurpose             string        `bson:"proofPurpose,omitempty" json:"proofPurpose,omitempty"`                         // e.g. "assertionMethod" or "authentication"
	ProofValue               string        `bson:"proofValue,omitempty" json:"proofValue,omitempty"`                             // base64
	Signature                string        `bson:"signature,omitempty" json:"signatureValue,omitempty"`                          // if "BbsBlsSignature2020"
	SignatureValue           string        `bson:"signatureValue,omitempty" json:"signature,omitempty"`                          // Jcs2020
	RequiredRevealStatements string        `bson:"requiredRevealStatements,omitempty" json:"requiredRevealStatements,omitempty"` // if "BbsBlsSignature2020", e.g.: [0,1]
	Type                     string        `bson:"type,omitempty" json:"type,omitempty"`                                         // "Ed25519Signature2018", "BbsBlsSignature2020", "BbsBlsSignatureProof2020",
	VerificationMethod       string        `bson:"verificationMethod,omitempty" json:"verificationMethod,omitempty"`             // e.g. "https://w3id.org/people/dave/keys/2" or "did:example:489398593#test",
}

type ProviderIdentifier added in v1.1.78

type ProviderIdentifier struct {
	ProviderIdentifierAssignerDisplay        string              `bson:"providerIdentifierAssignerDisplay,omitempty" json:"providerIdentifierAssignerDisplay,omitempty"`               // Organization that issued ID, e.g. "Goverment of Country" or "Laboratory Company"
	ProviderIdentifierAssignerIdentitySystem string              `bson:"providerIdentifierAssignerIdentitySystem,omitempty" json:"providerIdentifierAssignerIdentitySystem,omitempty"` // Namespace for the identifier value, e.g. "urn:ietf:rfc:3986" or "1.3.6.1.4.1.19126.3" (Spanish Tax ID number)
	ProviderIdentifierAssignerIdentityValue  string              `bson:"providerIdentifierAssignerIdentityValue,omitempty" json:"providerIdentifierAssignerIdentityValue,omitempty"`   // The value that is unique, e.g. "urn:oid:<oid>", "urn:uuid:<uuid>","urn:did:<did>" or Tax ID number of the assigner organization
	ProviderIdentifierAssignerReferenceURI   string              `bson:"providerIdentifierAssignerReferenceURI,omitempty" json:"providerIdentifierAssignerReferenceURI,omitempty"`     // A FHIR Reference.reference value, e.g. "Organization/<uuid>"
	ProviderIdentifierAssignerType           string              `bson:"providerIdentifierAssignerType,omitempty" json:"providerIdentifierAssignerType,omitempty"`                     // A FHIR Resource type, e.g. "Organization"
	ProviderIdentifierTypeConceptCustomText  string              `bson:"providerIdentifierTypeConceptCustomText,omitempty" json:"providerIdentifierTypeConceptCustomText,omitempty"`   // Text in the original language, e.g. "Documento Nacional de Identidad"
	ProviderIdentifierConceptDisplay         string              `bson:"providerIdentifierConceptDisplay,omitempty" json:"providerIdentifierConceptDisplay,omitempty"`                 // Internationally standarized descriptive text in english, e.g. "Tax ID Number"
	ProviderIdentifierConceptSystem          string              `bson:"providerIdentifierConceptSystem,omitempty" json:"providerIdentifierConceptSystem,omitempty"`                   // Namespace for the code, e.g. "http://terminology.hl7.org/CodeSystem/v2-0203"
	ProviderIdentifierTypeType               string              `bson:"providerIdentifierTypeType,omitempty" json:"providerIdentifierTypeType,omitempty"`                             // Symbol in syntax defined by the system, e.g. "NNESP" for the Spanish National Identity Document / Spanish Tax ID Number
	ProviderIdentifierConceptUserSelected    bool                `bson:"providerIdentifierConceptUserSelected,omitempty" json:"providerIdentifierConceptUserSelected,omitempty"`       // If this coding was chosen directly by the user
	ProviderIdentifierConceptVersion         string              `bson:"providerIdentifierConceptVersion,omitempty" json:"providerIdentifierConceptVersion,omitempty"`                 // Version of the system - if relevant
	ProviderIdentifierValidUntil             string              `bson:"providerIdentifierValidUntil,omitempty" json:"providerIdentifierValidUntil,omitempty"`                         // Ending time when the identifier is/was valid for use
	ProviderIdentifierValidFrom              string              `bson:"providerIdentifierValidFrom,omitempty" json:"providerIdentifierValidFrom,omitempty"`                           // Starting time when the identifier is/was valid for use
	ProviderIdentifierSystem                 string              `bson:"providerIdentifierSystem,omitempty" json:"providerIdentifierSystem,omitempty"`                                 // The namespace for the identifier value, e.g. 1.3.6.1.4.1.19126.3 for spanish NIF / DNI (Tax ID number)
	ProviderIdentifierUse                    fhir4.IdentifierUse `bson:"providerIdentifierUse,omitempty" json:"providerIdentifierUse,omitempty"`                                       // "official", "usual", "secondary", "temp" or "old"
	ProviderIdentifierValue                  string              `bson:"providerIdentifierValue,omitempty" json:"providerIdentifierValue,omitempty"`                                   // The value that is unique, e.g. the identifier value of the National Identity Document
}

providerIdentifier to be used only when literal reference string is not known

type ProviderReferencePlain added in v1.1.78

type ProviderReferencePlain struct {
	ProviderIdentifier       `bson:",inline"`
	ProviderReferenceDisplay string `bson:"providerReferenceDisplay,omitempty" json:"providerReferenceDisplay,omitempty"` // International alternative text for the resource
	ProviderReferenceURI     string `bson:"providerReferenceURI,omitempty" json:"providerReferenceURI,omitempty"`         // Literal reference: relative, internal or absolute URL
	ProviderReferenceType    string `bson:"providerReferenceType,omitempty" json:"providerReferenceType,omitempty"`       // Type the reference refers to
}

type PublicInfoFromActiveKey

type PublicInfoFromActiveKey struct {
	ID              string     `bson:"id,omitempty" json:"id,omitempty"`
	Tag             string     `bson:"tag,omitempty" json:"tag,omitempty"`
	OwnerUserId     string     `bson:"ownerUserId,omitempty" json:"ownerUserId,omitempty"`
	PublicKeyBase64 string     `bson:"publicKeyBase64,omitempty" json:"publicKeyBase64,omitempty"`
	CreatedAt       *time.Time `bson:"createdAt,omitempty" json:"createdAt,omitempty"`
	UpdatedAt       *time.Time `bson:"updatedAt,omitempty" json:"updatedAt,omitempty"`
}

type PublicInfoFromKeyResponse

type PublicInfoFromKeyResponse struct {
	Code    int                       `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64                     `bson:"count,omitempty" json:"count,omitempty"`
	Message string                    `bson:"message,omitempty" json:"message,omitempty"`
	Data    []PublicInfoFromActiveKey `bson:"data,omitempty" json:"data,omitempty"`
}

type PushToken

type PushToken struct {
	Token        string    `json:"token,omitempty" bson:"token,omitempty"`
	Os           string    `json:"os,omitempty" bson:"os,omitempty"`
	RegisterDate time.Time `json:"registerDate,omitempty" bson:"registerDate,omitempty"`
}

type PushTokensUHCResponse

type PushTokensUHCResponse struct {
	Code         int             `json:"code,omitempty" bson:"code,omitempty"`
	Message      string          `json:"message,omitempty" bson:"message,omitempty"`
	DataResponse []UserTokensUHC `json:"data,omitempty" bson:"data,omitempty"`
	Count        int64           `json:"count,omitempty" bson:"count,omitempty"`
}

type QualificationClaim added in v1.1.31

type QualificationClaim struct {
	Context []string           `bson:"@context,omitempty" json:"@context,omitempty"`
	Digest  Digest             `bson:"digest,omitempty" json:"digest,omitempty"`
	Data    QualificationPlain `bson:"data,omitempty" json:"data,omitempty"`
	Holder  Holder             `bson:"holder,omitempty" json:"holder,omitempty"`
	Id      string             `bson:"id,omitempty" json:"id,omitempty"` // version of the blockchain certified Data
	Proofs  []Proof            `bson:"proof,omitempty" json:"proof,omitempty"`
	Type    string             `bson:"type,omitempty" json:"type,omitempty"`
}

type QualificationPlain added in v1.1.24

type QualificationPlain struct {
	IdentifierPlain                  IdentifierFullPlain `bson:",inline"`
	IssuerReferenceDisplay           string              `bson:"issuerReferenceDisplay,omitempty" json:"issuerReferenceDisplay,omitempty"`                     // International alternative text for the resource
	IssuerReferenceType              string              `bson:"issuerReferenceType,omitempty" json:"issuerReferenceType,omitempty"`                           // Type the reference refers to (e.g. "Organization")
	IssuerReferenceURI               string              `bson:"issuerReferenceURI,omitempty" json:"issuerReferenceURI,omitempty"`                             // Literal reference: universal or relative (e.g., urn:uuid:<uuid> or "Organization/<uuid>")
	IssuerReferenceIdentifierSystem  string              `bson:"issuerReferenceIdentifierSystem,omitempty" json:"issuerReferenceIdentifierSystem,omitempty"`   // The namespace for the identifier value, e.g. IANA or UNID URN or OID
	IssuerReferenceIdentifierUse     string              `bson:"issuerReferenceIdentifierUse,omitempty" json:"issuerReferenceIdentifierUse,omitempty"`         // "official", "usual", "secondary", "temp" or "old"
	IssuerReferenceIdentifierValue   string              `bson:"issuerReferenceIdentifierValue,omitempty" json:"issuerReferenceIdentifierValue,omitempty"`     // The value that is unique (e.g., the OID value for the issuer organization)
	QualificationHl7CustomText       string              `bson:"qualificationHl7CustomText,omitempty" json:"qualificationHl7CustomText,omitempty"`             // Text in the original language
	QualificationHl7TypeCode         string              `bson:"qualificationHl7TypeCode,omitempty" json:"qualificationHl7TypeCode,omitempty"`                 // Symbol in syntax defined by the system
	QualificationHl7TypeDisplay      string              `bson:"qualificationHl7TypeDisplay,omitempty" json:"qualificationHl7TypeDisplay,omitempty"`           // Internationally standarized descriptive text of the code in english
	QualificationHl7TypeSystem       string              `bson:"qualificationHl7TypeSystem,omitempty" json:"qualificationHl7TypeSystem,omitempty"`             // Namespace for the code
	QualificationHl7TypeUserSelected bool                `bson:"qualificationHl7TypeUserSelected,omitempty" json:"qualificationHl7TypeUserSelected,omitempty"` // If this coding was chosen directly by the user, so validated or not
	QualificationHl7TypeVersion      string              `bson:"qualificationHl7TypeVersion,omitempty" json:"qualificationHl7TypeVersion,omitempty"`           // Version of the system - if relevant
	QualificationUniversalId         string              `bson:"qualificationUniversalId,omitempty" json:"qualificationUniversalId,omitempty"`
	QualificationValidFrom           string              `bson:"qualificationValidFrom,omitempty" json:"qualificationValidFrom,omitempty"`
	QualificationValidUntil          string              `bson:"qualificationValidUntil,omitempty" json:"qualificationValidUntil,omitempty"`
}

type Rate

type Rate struct {
	RateDate   time.Time `json:"rateDate,omitempty" bson:"rateDate,omitempty"`
	Stars      int       `json:"stars,omitempty" bson:"stars,omitempty"`
	Suggestion string    `json:"suggestion,omitempty" bson:"suggestion,omitempty"`
	AppId      string    `json:"appId,omitempty" bson:"appId,omitempty"`
}

type ReferenceBasicPlain added in v1.1.78

type ReferenceBasicPlain struct {
	ReferenceDisplay string `bson:"referenceDisplay,omitempty" json:"referenceDisplay,omitempty"` // International alternative text for the resource
	ReferenceURI     string `bson:"referenceURI,omitempty" json:"referenceURI,omitempty"`         // Literal reference: universal or relative (e.g., urn:uuid:<uuid> or "Patient/<uuid>")
	ReferenceType    string `bson:"referenceType,omitempty" json:"referenceType,omitempty"`       // Type the reference refers to (e.g. "Patient")
}

type ReferenceIdentifierAssignerBasic added in v1.1.78

type ReferenceIdentifierAssignerBasic struct {
	ReferenceIdentifierAssignerDisplay        string `bson:"referenceIdentifierAssignerDisplay,omitempty" json:"referenceIdentifierAssignerDisplay,omitempty"`               // Organization that issued ID, e.g. "Goverment of Country" or "Laboratory Company"
	ReferenceIdentifierAssignerIdentitySystem string `bson:"referenceIdentifierAssignerIdentitySystem,omitempty" json:"referenceIdentifierAssignerIdentitySystem,omitempty"` // Namespace for the identifier value, e.g. "urn:ietf:rfc:3986" or "1.3.6.1.4.1.19126.3" (Spanish Tax ID number)
	ReferenceIdentifierAssignerIdentityValue  string `bson:"referenceIdentifierAssignerIdentityValue,omitempty" json:"referenceIdentifierAssignerIdentityValue,omitempty"`   // The value that is unique, e.g. "urn:oid:<oid>", "urn:uuid:<uuid>","urn:did:<did>" or Tax ID number of the assigner organization
	ReferenceIdentifierAssignerReferenceURI   string `bson:"referenceIdentifierAssignerReferenceURI,omitempty" json:"referenceIdentifierAssignerReferenceURI,omitempty"`     // A FHIR Reference.reference value, e.g. "Organization/<uuid>"
	ReferenceIdentifierAssignerType           string `bson:"referenceIdentifierAssignerType,omitempty" json:"referenceIdentifierAssignerType,omitempty"`                     // A FHIR Resource type, e.g. "Organization"
}

'ReferenceIdentifierAssigner' is a FHIR 'Reference' within a FHIR 'Identifier' of a main FHIR 'Reference'...

type ReferenceIdentifierConceptPlain added in v1.1.78

type ReferenceIdentifierConceptPlain struct {
	ReferenceIdentifierConceptCustomText   string `bson:"referenceIdentifierConceptCustomText,omitempty" json:"referenceIdentifierConceptCustomText,omitempty"`     // Text in the original language, e.g. "Documento Nacional de Identidad"
	ReferenceIdentifierConceptCode         string `bson:"referenceIdentifierConceptCode,omitempty" json:"referenceIdentifierConceptCode,omitempty"`                 // Symbol in syntax defined by the system, e.g. "NNESP" for the Spanish National Identity Document / Spanish Tax ID Number
	ReferenceIdentifierConceptDisplay      string `bson:"referenceIdentifierConceptDisplay,omitempty" json:"referenceIdentifierConceptDisplay,omitempty"`           // Internationally standarized descriptive text in english, e.g. "Tax ID Number"
	ReferenceIdentifierConceptSystem       string `bson:"referenceIdentifierConceptSystem,omitempty" json:"referenceIdentifierConceptSystem,omitempty"`             // Namespace for the code, e.g. "http://terminology.hl7.org/CodeSystem/v2-0203"
	ReferenceIdentifierConceptVersion      string `bson:"referenceIdentifierConceptVersion,omitempty" json:"referenceIdentifierConceptVersion,omitempty"`           // Version of the system - if relevant
	ReferenceIdentifierConceptUserSelected bool   `bson:"referenceIdentifierConceptUserSelected,omitempty" json:"referenceIdentifierConceptUserSelected,omitempty"` // If this coding was chosen directly by the user
}

type ReferenceIdentifierPlain added in v1.1.78

type ReferenceIdentifierPlain struct {
	ReferenceIdentifierAssignerBasic `bson:",inline"`
	ReferenceIdentifierConceptPlain  `bson:",inline"`
	ReferenceIdentifierValidUntil    string              `bson:"referenceIdentifierValidUntil,omitempty" json:"referenceIdentifierValidUntil,omitempty"` // Ending time when the identifier is/was valid for use
	ReferenceIdentifierValidFrom     string              `bson:"referenceIdentifierValidFrom,omitempty" json:"referenceIdentifierValidFrom,omitempty"`   // Starting time when the identifier is/was valid for use
	ReferenceIdentifierSystem        string              `bson:"referenceIdentifierSystem,omitempty" json:"referenceIdentifierSystem,omitempty"`         // The namespace for the identifier value, e.g. 1.3.6.1.4.1.19126.3 for spanish NIF / DNI (Tax ID number)
	ReferenceIdentifierUse           fhir4.IdentifierUse `bson:"referenceIdentifierUse,omitempty" json:"referenceIdentifierUse,omitempty"`               // "official", "usual", "secondary", "temp" or "old"
	ReferenceIdentifierValue         string              `bson:"referenceIdentifierValue,omitempty" json:"referenceIdentifierValue,omitempty"`           // The value that is unique, e.g. the identifier value of the National Identity Document
}

type ReferencePlain added in v1.1.78

type ReferencePlain struct {
	ReferenceBasicPlain      `bson:",inline"`
	ReferenceIdentifierPlain `bson:",inline"`
}

Rule: Reference.identifier SHALL be used only when the URI ('referenceURI') is unknown (e.g.: 'Manufacturer/<uuid>') Reference.Identifier.Type is a FHIR CodeableConcept and it is named 'referenceIdentifierConcept' in CredentialsUHC Reference.Identifier.Type.Text is named 'referenceIdentifierConceptCustomText' in CredentialsUHC

type Service

type Service struct {
	BackendUrl   string
	ServiceRoute string
	Token        string
	ServiceToken string
	RefreshToken string
}

type SharedKey

type SharedKey struct {
	EncryptionKeyId    *string `bson:"encryptionKeyId,omitempty" json:"encryptionKeyId,omitempty"`
	OtherPartPublicKey string  `bson:"otherPartPublicKey,omitempty" json:"otherPartPublicKey,omitempty"`
	SharedKey          string  `bson:"sharedKey,omitempty" json:"sharedKey,omitempty"`
}

type SharedKeyCreationRequest

type SharedKeyCreationRequest struct {
	EncryptionKeyId    *string `bson:"encryptionKeyId,omitempty" json:"encryptionKeyId,omitempty"`
	OtherPartPublicKey string  `bson:"otherPartPublicKey,omitempty" json:"otherPartPublicKey,omitempty"`
	AccessPassword     string  `bson:"accessPassword,omitempty" json:"accessPassword,omitempty"`
}

type SharedKeyResponse

type SharedKeyResponse struct {
	Code    int    `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64  `bson:"count,omitempty" json:"count,omitempty"`
	Message string `bson:"message,omitempty" json:"message,omitempty"`

	Data []SharedKey `bson:"data,omitempty" json:"data,omitempty"`
}

type SpecialtyConceptPlain added in v1.1.78

type SpecialtyConceptPlain struct {
	SpecialtyConceptCustomText   string `bson:"specialtyConceptCustomText,omitempty" json:"specialtyConceptCustomText,omitempty"`     // Text in the original language
	SpecialtyConceptCode         string `bson:"specialtyConceptCode,omitempty" json:"specialtyConceptCode,omitempty"`                 // Symbol in syntax defined by the system
	SpecialtyConceptDisplay      string `bson:"specialtyConceptDisplay,omitempty" json:"specialtyConceptDisplay,omitempty"`           // Internationally standarized descriptive text of the code in english
	SpecialtyConceptSystem       string `bson:"specialtyConceptSystem,omitempty" json:"specialtyConceptSystem,omitempty"`             // Namespace for the code
	SpecialtyConceptVersion      string `bson:"specialtyConceptVersion,omitempty" json:"specialtyConceptVersion,omitempty"`           // Version of the system - if relevant
	SpecialtyConceptUserSelected bool   `bson:"specialtyConceptUserSelected,omitempty" json:"specialtyConceptUserSelected,omitempty"` // If this coding was chosen directly by the user
}

type TelecomBusinessContactsPlain added in v1.1.78

type TelecomBusinessContactsPlain struct {
	ContactWorkEmails []string `bson:"contactWorkEmails,omitempty" json:"contactWorkEmails,omitempty"`
	ContactWorkPhones []string `bson:"contactWorkPhones,omitempty" json:"contactWorkPhones,omitempty"`
	ContactWorkURLs   []string `bson:"contactWorkURLs,omitempty" json:"contactWorkURLs,omitempty"`
}

type TelecomContactBasicPlain added in v1.1.78

type TelecomContactBasicPlain struct {
	Use        fhir4.ContactPointUse `bson:"use,omitempty" json:"use,omitempty"`               // home | work | temp | old | mobile
	ValidFrom  string                `bson:"validFrom,omitempty" json:"validFrom,omitempty"`   // Starting period when the contact point was/is in use
	ValidUntil string                `bson:"validUntil,omitempty" json:"validUntil,omitempty"` // Ending period when the contact point was/is in use
	Value      string                `bson:"value,omitempty" json:"value,omitempty"`           // The actual contact point details (email, phone number, url etc.)
}

to be used as a defined contact phone, contact email, etc. (so 'system' is not needed)

type TelecomContactFullPlain added in v1.1.78

type TelecomContactFullPlain struct {
	TelecomContactBasicPlain `bson:",inline"`
	Rank                     int                      `bson:"rank,omitempty" json:"rank,omitempty"`     // positiveInt	Specify preferred order of use (1 = highest)
	System                   fhir4.ContactPointSystem `bson:"system,omitempty" json:"system,omitempty"` // phone | fax | email | pager | url | sms | other
}

used in LocationTreeUHC

type TelecomContactPointClaim added in v1.1.28

type TelecomContactPointClaim struct {
	Context []string     `bson:"@context,omitempty" json:"@context,omitempty"`
	Digest  Digest       `bson:"digest,omitempty" json:"digest,omitempty"`
	Data    TelecomPlain `bson:"data,omitempty" json:"data,omitempty"`
	Holder  Holder       `bson:"holder,omitempty" json:"holder,omitempty"`
	Id      string       `bson:"id,omitempty" json:"id,omitempty"` // version of the blockchain certified Data
	Proofs  []Proof      `bson:"proof,omitempty" json:"proof,omitempty"`
	Type    string       `bson:"type,omitempty" json:"type,omitempty"`
}

type TelecomFullPlain added in v1.1.33

type TelecomFullPlain struct {
	Rank        int    `bson:"rank,omitempty" json:"rank,omitempty"`               // positiveInt	Specify preferred order of use (1 = highest)
	System      string `bson:"system,omitempty" json:"system,omitempty"`           // phone | fax | email | pager | url | sms | other
	UniversalId string `bson:"universalId,omitempty" json:"universalId,omitempty"` // internal storage ID of the data resource
	Use         string `bson:"use,omitempty" json:"use,omitempty"`                 // home | work | temp | old | mobile
	ValidFrom   string `bson:"validFrom,omitempty" json:"validFrom,omitempty"`     // Starting period when the contact point was/is in use
	ValidUntil  string `bson:"validUntil,omitempty" json:"validUntil,omitempty"`   // Ending period when the contact point was/is in use
	Value       string `bson:"value,omitempty" json:"value,omitempty"`             // The actual contact point details (email, phone number, url etc.)

}

used in LocationTreeUHC

type TelecomPersonalContactsPlain added in v1.1.78

type TelecomPersonalContactsPlain struct {
	ContactHomeEmails []string `bson:"contactHomeEmails,omitempty" json:"contactHomeEmails,omitempty"`
	ContactHomePhones []string `bson:"contactHomePhones,omitempty" json:"contactHomePhones,omitempty"`
	MobilePhones      []string `bson:"mobilePhones,omitempty" json:"mobilePhones,omitempty"`
	// ContactWorkPhones []string `bson:"contactWorkPhones,omitempty" json:"contactWorkPhones,omitempty"`
	ContactTempPhones []string `bson:"contactTempPhones,omitempty" json:"contactTempPhones,omitempty"`
}

type TelecomPlain added in v1.1.28

type TelecomPlain struct {
	Rank        int    `bson:"rank,omitempty" json:"rank,omitempty"`               // positiveInt	Specify preferred order of use (1 = highest)
	System      string `bson:"system,omitempty" json:"system,omitempty"`           // phone | fax | email | pager | url | sms | other
	UniversalId string `bson:"universalId,omitempty" json:"universalId,omitempty"` // internal storage ID of the data resource
	Use         string `bson:"use,omitempty" json:"use,omitempty"`                 // home | work | temp | old | mobile
	ValidFrom   string `bson:"validFrom,omitempty" json:"validFrom,omitempty"`     // Starting period when the contact point was/is in use
	ValidUntil  string `bson:"validUntil,omitempty" json:"validUntil,omitempty"`   // Ending period when the contact point was/is in use
	Value       string `bson:"value,omitempty" json:"value,omitempty"`             // The actual contact point details (email, phone number, url etc.)
}

for email and phone claims

type TermsAndConditions

type TermsAndConditions struct {
	Text          string    `bson:"text,omitempty" json:"text,omitempty"`
	CreationDate  time.Time `bson:"creationDate,omitempty" json:"creationDate,omitempty"`
	Version       string    `bson:"version,omitempty" json:"version,omitempty"`
	ID            string    `bson:"id,omitempty" json:"id,omitempty"`
	ActiveVersion bool      `bson:"activeVersion,omitempty" json:"activeVersion,omitempty"`
	Type          string    `bson:"type,omitempty" json:"type,omitempty"`
}

type TermsAndConditionsResponse

type TermsAndConditionsResponse struct {
	Code    int                  `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64                `bson:"count,omitempty" json:"count,omitempty"`
	Message string               `bson:"message,omitempty" json:"message,omitempty"`
	Data    []TermsAndConditions `bson:"data,omitempty" json:"data,omitempty"`
	Token   Token                `bson:"token,omitempty" json:"token,omitempty"`
}

type TermsDocumentData added in v1.1.43

type TermsDocumentData struct {
	// ControlNumber int    `json:"controlNumber,omitempty" bson:"controlNumber,omitempty"` // a counter, distinct for every certified and published version of the documents
	Url     string `json:"url,omitempty" bson:"url,omitempty"`         // The URL includes the name of the document and it is also recommended to include the version for clarity
	UrnId   string `json:"urnId,omitempty" bson:"urnId,omitempty"`     // Document's UUID included in the PDF document as urn:unid:uhc:uuid:<uuid>
	UrnVcId string `json:"urnVcId,omitempty" bson:"urnVcId,omitempty"` // Certified version ID of the document being accepted as urn:unid:uhc:vcid:<vcId>
}

type ThreadSearchRequest added in v1.1.67

type ThreadSearchRequest struct {
	ConnectionId string `bson:"connectionId,omitempty" json:"connectionId,omitempty"`
	Limit        string `bson:"limit,omitempty" json:"limit,omitempty"`
	Skip         string `bson:"skip,omitempty" json:"skip,omitempty"`
	DateFrom     string `bson:"dateFrom,omitempty" json:"dateFrom,omitempty"` //layout := "2006-01-02T15:04:05.000Z"
	DateTo       string `bson:"dateTo,omitempty" json:"dateTo,omitempty"`
}

type ThreadUHC added in v1.1.30

type ThreadUHC struct {
	ID           string     `bson:"id,omitempty" json:"id,omitempty"`
	PID          *string    `bson:"pid,omitempty" json:"pid,omitempty"`
	ConnectionId string     `bson:"connectionID,omitempty" json:"connectionID,omitempty"` // ConnectionUhcId
	CreatedAt    *time.Time `bson:"createdAt,omitempty" json:"createdAt,omitempty"`
	GoalCode     string     `bson:"goalCode,omitempty" json:"goalCode,omitempty"`
}

PID is the parent thread Id (not the invitation Id because of can be several invitation to participants in a same connection in UHC)

type ThreadUHCResponse added in v1.1.64

type ThreadUHCResponse struct {
	Code    int         `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64       `bson:"count,omitempty" json:"count,omitempty"`
	Message string      `bson:"message,omitempty" json:"message,omitempty"`
	Data    []ThreadUHC `bson:"data,omitempty" json:"data,omitempty"`
}

type Token

type Token struct {
	jwt.StandardClaims

	Username string `json:"username,omitempty"` // deprecate

	UserId                 string                   `json:"userId,omitempty"`
	OrganizationPermission []OrganizationPermission `json:"organizationPermission,omitempty"`

	Role  []string `json:"role,omitempty"`
	AppId string   `bson:"appId,omitempty" json:"appId,omitempty"`
}

TODO: deprecate

type UHCPayload

type UHCPayload struct {
	PayloadBase64    string `json:"payloadBase64" bson:"payloadBase64"`
	EncryptedPayload bool   `json:"encryptedPayload" bson:"encryptedPayload"`
}

type User

type User struct {
	ID                          string  `bson:"id,omitempty" json:"id,omitempty"`
	Email                       string  `bson:"email,omitempty" json:"email,omitempty"`
	Password                    string  `bson:"password,omitempty" json:"password,omitempty"`
	Token                       string  `bson:"token,omitempty" json:"token,omitempty"`
	RefreshToken                string  `bson:"refreshToken,omitempty" json:"refreshToken,omitempty"`
	InvitedUser                 bool    `bson:"invitedUser,omitempty" json:"invitedUser,omitempty"`
	FirstName                   string  `bson:"firstName,omitempty" json:"firstName,omitempty"`
	LastName                    string  `bson:"lastName,omitempty" json:"lastName,omitempty"`
	PreferredLanguage           string  `bson:"preferredLanguage,omitempty" json:"preferredLanguage,omitempty"`
	ConfirmationAccountToken    *string `bson:"confirmationAccountToken" json:"confirmationAccountToken"`
	ConfirmationAccountAttempts int     `bson:"confirmationAccountAttempts" json:"confirmationAccountAttempts"`
	ConfirmedAccount            bool    `bson:"confirmedAccount,omitempty" json:"confirmedAccount,omitempty"`
	RecoverAccountToken         *string `bson:"recoverAccountToken" json:"recoverAccountToken"`
	RecoverAccountAttempts      int     `bson:"recoverAccountAttempts" json:"recoverAccountAttempts"`
	ImplicitInvitationToken     *string `bson:"implicitInvitationToken" json:"implicitInvitationToken"`

	AppId             string   `bson:"appId,omitempty" json:"appId,omitempty"`
	OrganizationId    string   `bson:"organizationId,omitempty" json:"organizationId,omitempty"`
	OrgServiceIds     []string `bson:"orgServiceIds,omitempty" json:"orgServiceIds,omitempty"`
	RoleUHC           string   `bson:"roleUHC,omitempty" json:"roleUHC,omitempty"`
	RolesSNOMED       []string `bson:"rolesSNOMED,omitempty" json:"rolesSNOMED,omitempty"`
	MothersFamilyName string   `bson:"mothersFamilyName" json:"mothersFamilyName"`
	Mobile            string   `bson:"mobile,omitempty" json:"mobile,omitempty"` // it SHALL be equal to a verified mobile when login
	UserType          string   `bson:"userType" json:"userType"`

	// deprecate
	LogoUrl                string                   `bson:"logoUrl,omitempty" json:"logoUrl,omitempty"`
	Username               string                   `bson:"username,omitempty" json:"username,omitempty"`
	Role                   []string                 `bson:"role,omitempty" json:"role,omitempty"`                                     // deprecate
	OrganizationPermission []OrganizationPermission `bson:"organizationPermission,omitempty" json:"organizationPermission,omitempty"` // deprecate
	OrgServicePermission   []OrgServicePermission   `bson:"orgServicePermission,omitempty" json:"orgServicePermission,omitempty"`     // deprecate
	OrganizationRole       string                   `bson:"organizationRole,omitempty" json:"organizationRole,omitempty"`             // deprecate
}

TODO: deprecate

type UserConfigUHC

type UserConfigUHC struct {
	Type                       string                      `json:"type,omitempty" bson:"type,omitempty"`
	UhcID                      string                      `json:"uhcId,omitempty" bson:"uhcId,omitempty"`
	BlockchainID               string                      `json:"blockchainUserId,omitempty" bson:"blockchainUserId,omitempty"`
	ExternalIDs                []UserExternalID            `json:"externalIds,omitempty" bson:"externalIds,omitempty"`
	FavoriteLocationUHCIDs     []string                    `json:"favoriteLocationUhcIds,omitempty" bson:"favoriteLocationUhcIds,omitempty"`
	AcceptedTermsAndConditions []AcceptedTermsAndCondition `json:"acceptedTermsAndConditions,omitempty" bson:"acceptedTermsAndConditions,omitempty"`
	Ratings                    []Rate                      `json:"ratings,omitempty" bson:"ratings,omitempty"`
	UserContacts               []UserContact               `json:"userContacts,omitempty" bson:"userContacts,omitempty"`
}

type UserConfigUHCResponse

type UserConfigUHCResponse struct {
	Code         int             `json:"code,omitempty" bson:"code,omitempty"`
	Message      string          `json:"message,omitempty" bson:"message,omitempty"`
	DataResponse []UserConfigUHC `json:"data,omitempty" bson:"data,omitempty"`
	Count        int64           `json:"count,omitempty" bson:"count,omitempty"`
}

type UserContact

type UserContact struct {
	UserUhcId string `json:"userUhcId,omitempty" bson:"userUhcId,omitempty"`
	Tag       string `json:"tag,omitempty" bson:"tag,omitempty"`
}

type UserContactComplete

type UserContactComplete struct {
	User User   `bson:"user,omitempty" json:"user,omitempty"`
	Tag  string `bson:"tag,omitempty" json:"tag,omitempty"`
}

type UserContactsResponse

type UserContactsResponse struct {
	Code         int                   `json:"code,omitempty" bson:"code,omitempty"`
	Message      string                `json:"message,omitempty" bson:"message,omitempty"`
	DataResponse []UserContactComplete `json:"data,omitempty" bson:"data,omitempty"`
	Count        int64                 `json:"count,omitempty" bson:"count,omitempty"`
}

type UserDeletionRequest

type UserDeletionRequest struct {
	ID            string `bson:"id,omitempty" json:"id,omitempty"`
	DeletionToken string `bson:"deletionToken,omitempty" json:"deletionToken,omitempty"`
	Password      string `bson:"password,omitempty" json:"password,omitempty"`
	Email         string `bson:"email,omitempty" json:"email,omitempty"`
	// TODO: remove Username
	Username string `bson:"username,omitempty" json:"username,omitempty"`
	UserType string `bson:"userType,omitempty" json:"userType,omitempty"`
}

TODO: change Username to UserType

type UserExternalCreationRequest

type UserExternalCreationRequest struct {
	Email                      string `bson:"email,omitempty" json:"email,omitempty"`
	PhoneNumber                string `bson:"phoneNumber,omitempty" json:"phoneNumber,omitempty"`
	IdentificationDocumentCode string `bson:"identificationDocumentCode,omitempty" json:"identificationDocumentCode,omitempty"`
	IdentificationDocumentType string `bson:"identificationDocumentType,omitempty" json:"identificationDocumentType,omitempty"`
}

type UserExternalID

type UserExternalID struct {
	Type    string `json:"type,omitempty" bson:"type,omitempty"`       //public or pairwise
	Profile string `json:"profile,omitempty" bson:"profile,omitempty"` //health, education...
	UUID    string `json:"uuid,omitempty" bson:"uuid,omitempty"`
}

type UserRegisterRequest added in v1.0.73

type UserRegisterRequest struct {
	Username      string `bson:"username,omitempty" json:"username,omitempty"`
	FirstName     string `bson:"firstName,omitempty" json:"firstName,omitempty"`
	LastName      string `bson:"lastName,omitempty" json:"lastName,omitempty"`
	Email         string `bson:"email,omitempty" json:"email,omitempty"`
	AppId         string `bson:"appId,omitempty" json:"appId,omitempty"`
	LoginPassword string `bson:"loginPassword,omitempty" json:"loginPassword,omitempty"`
}

TODO: deprecate and remove

type UserRegisterV3ByUserRequest added in v1.0.95

type UserRegisterV3ByUserRequest struct {
	Username string `json:"username,omitempty"`

	FirstName        string `json:"firstName,omitempty"`
	LastName         string `json:"lastName,omitempty"`
	Email            string `json:"email,omitempty"`
	LoginPassword    string `json:"loginPassword,omitempty"`
	AppId            string `json:"appId,omitempty"`
	OrganizationId   string `json:"organizationId,omitempty"`
	OrganizationRole string `json:"organizationRole,omitempty"`

	// added in version 1.1.50
	RoleUHC           string `json:"roleUHC,omitempty"`
	RolesSNOMED       string `json:"rolesSNOMED,omitempty"`
	OrgServiceIds     string `json:"orgServiceIds,omitempty"`
	MothersFamilyName string `json:"mothersFamilyName,omitempty"`
	Mobile            string `json:"mobile,omitempty"`
	Mfa               string `json:"mfa,omitempty"` // MultiFactor Authentication: email or mobile

}

TODO: remove Username, use RoleUHC and RolesSNOMED

type UserResponse

type UserResponse struct {
	Code    int    `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64  `bson:"count,omitempty" json:"count,omitempty"`
	Message string `bson:"message,omitempty" json:"message,omitempty"`
	Data    []User `bson:"data,omitempty" json:"data,omitempty"`
	Token   Token  `bson:"token,omitempty" json:"token,omitempty"`
}

func (*UserResponse) ReturnCustomResponse

func (userResponse *UserResponse) ReturnCustomResponse(w http.ResponseWriter, code int, customCode int, customMessage string, data *[]User)

type UserTokensUHC

type UserTokensUHC struct {
	UhcID      string      `json:"uhcId,omitempty" bson:"uhcId,omitempty"`
	PushTokens []PushToken `json:"pushTokens,omitempty" bson:"pushTokens,omitempty"`
}

type W3CPublicKeyExport

type W3CPublicKeyExport struct {
	IdWithDid       string     `bson:"id,omitempty" json:"id,omitempty"`                 // Identifier of this public key in the owner's blockchain DID document
	Controller      string     `bson:"controller,omitempty" json:"controller,omitempty"` // didID already included in 'id'
	Type            string     `bson:"type,omitempty" json:"type,omitempty"`             // e.g.: "Ed25519VerificationKey2018"
	Expires         *time.Time `bson:"expires,omitempty" json:"expires,omitempty"`
	Revoked         *time.Time `bson:"revoked,omitempty" json:"revoked,omitempty"`
	PublicKeyBase64 string     `bson:"publicKeyBase64,omitempty" json:"publicKeyBase64,omitempty"`
	Context         []string   `bson:"@context,omitempty" json:"@context,omitempty"`               // "@context": ["https://w3id.org/security/v2"]
	PublicKeyBase58 string     `bson:"publicKeyBase58,omitempty" json:"publicKeyBase58,omitempty"` // standard
}

Standard expected properties: id (did#id), type, controller, publicKeyBase58 (https://w3c-ccg.github.io/security-vocab/)

type WalletKey

type WalletKey struct {
	AccessPassword                    string     `bson:"accessPassword,omitempty" json:"accessPassword,omitempty"`
	ID                                string     `bson:"id,omitempty" json:"id,omitempty"`
	ControllerDID                     string     `bson:"did,omitempty" json:"did,omitempty"`
	RecoverCode                       string     `bson:"recoverCode,omitempty" json:"recoverCode,omitempty"`
	OwnerId                           string     `bson:"ownerId,omitempty" json:"ownerId,omitempty"`
	OwnerType                         string     `bson:"ownerType,omitempty" json:"ownerType,omitempty"`
	Type                              string     `bson:"type,omitempty" json:"type,omitempty"`
	CreatedAt                         *time.Time `bson:"createdAt,omitempty" json:"createdAt,omitempty"`
	UpdatedAt                         *time.Time `bson:"updatedAt,omitempty" json:"updatedAt,omitempty"`
	ActiveEncryptionKeyId             *string    `bson:"activeEncryptionKey,omitempty" json:"activeEncryptionKey,omitempty"`
	ActiveSigningKeyId                *string    `bson:"activeSingingKey,omitempty" json:"activeSingingKey,omitempty"`
	MultifactorAuthCode               *string    `bson:"multifactorAuthCode,omitempty" json:"multifactorAuthCode,omitempty"`
	MultifactorAuthCodeGenerationDate *time.Time `bson:"multifactorAuthCodeGenerationDate,omitempty" json:"multifactorAuthCodeGenerationDate,omitempty"`
}

OLD V1 BETA 1

type WalletKeyResponse

type WalletKeyResponse struct {
	Code    int         `bson:"code,omitempty" json:"code,omitempty"`
	Count   int64       `bson:"count,omitempty" json:"count,omitempty"`
	Message string      `bson:"message,omitempty" json:"message,omitempty"`
	Data    []WalletKey `bson:"data,omitempty" json:"data,omitempty"`
}

type WalletPasswordChangeRequest

type WalletPasswordChangeRequest struct {
	NewPassword string `bson:"newPassword,omitempty" json:"newPassword,omitempty"`
	OwnerUserId string `bson:"ownerUserId,omitempty" json:"ownerUserId,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL