Files
api-poliklinik/pkg/models/struct/fhir.go
2025-05-10 14:35:26 +07:00

182 lines
8.1 KiB
Go

package _struct
type Identifier struct {
Use string `json:"use,omitempty" bson:"use"`
Type CodeableConcept `json:"type,omitempty" bson:"type"`
System string `json:"system,omitempty" bson:"system"`
Value string `json:"value,omitempty" bson:"value"`
Period Period `json:"period,omitempty" bson:"period"`
Assigner Reference `json:"assigner,omitempty" bson:"assigner"`
Coding Coding
}
type CodeableConcept struct {
Coding []Coding `json:"coding" bson:"coding"`
Text string `json:"text,omitempty" bson:"text"`
}
type Coding struct {
System string `json:"system,omitempty" bson:"system"`
Version string `json:"version,omitempty" bson:"version"`
Code string `json:"code,omitempty" bson:"code"`
Display string `json:"display,omitempty" bson:"display"`
UserSelected bool `json:"userSelected,omitempty" bson:"userSelected"`
}
type Period struct {
Start string `json:"start,omitempty" bson:"start"`
End string `json:"end,omitempty" bson:"end"`
}
type Reference struct {
Reference string `json:"reference,omitempty" bson:"reference"`
Display string `json:"display,omitempty" bson:"display"`
}
type HumanName struct {
Use string `json:"use,omitempty" bson:"use"`
Text string `json:"text,omitempty" bson:"text"`
Family string `json:"family,omitempty" bson:"family"`
Given []string `json:"given,omitempty" bson:"given"`
Prefix []string `json:"prefix,omitempty" bson:"prefix"`
Suffix []string `json:"suffix,omitempty" bson:"suffix"`
Period Period `json:"period,omitempty" bson:"period"`
}
type ContactPoint struct {
System string `bson:"system" json:"system"`
Value string `bson:"value" json:"value"`
Use string `bson:"use" json:"use"`
Rank int `bson:"rank" json:"rank"`
Period Period `bson:"period" json:"period"`
}
type Address struct {
Use string `json:"use,omitempty" bson:"use"`
Type string `json:"type,omitempty" bson:"type"`
Text string `json:"text,omitempty" bson:"text"`
Line []string `json:"line,omitempty" bson:"line"`
Village string `json:"village,omitempty" bson:"village"`
District string `json:"district,omitempty" bson:"district"`
City string `json:"city,omitempty" bson:"city"`
State string `json:"state,omitempty" bson:"state"`
PostalCode string `json:"postalCode,omitempty" bson:"postalCode"`
Country string `json:"country,omitempty" bson:"country"`
Period Period `json:"period,omitempty" bson:"period"`
Extension []Extension `json:"extension,omitempty" bson:"extension"`
}
type Extension struct {
URL string `json:"url,omitempty" bson:"url`
Extension []ExtensionDetail `json:"extension,omitempty" bson:"extension"`
}
type ExtensionDetail struct {
URL string `json:"url,omitempty" bson:"url,omitempty"`
ValueDisplay string `json:"valueDisplay,omitempty" bson:"valueDisplay"`
ValueCode string `json:"valueCode,omitempty" bson:"valueCode"`
}
type Photo struct {
ContentType string `json:"contentType,omitempty" bson:"contentType,omitempty"`
Language string `json:"language,omitempty" bson:"language,omitempty"`
Data string `json:"data,omitempty" bson:"data,omitempty"`
URL string `json:"url,omitempty" bson:"url,omitempty"`
Size int `json:"size,omitempty" bson:"size,omitempty"`
Hash int `json:"hash,omitempty" bson:"hash,omitempty"`
Title string `json:"title,omitempty" bson:"title,omitempty"`
Creation string `json:"creation,omitempty" bson:"creation,omitempty"`
Height int `json:"height,omitempty" bson:"height,omitempty"`
Width int `json:"width,omitempty" bson:"width,omitempty"`
Frames int `json:"frames,omitempty" bson:"frames,omitempty"`
Duration int `json:"duration,omitempty" bson:"duration,omitempty"`
Pages int `json:"pages,omitempty" bson:"pages,omitempty"`
}
type Contact struct {
Relationship []CodeableConcept `json:"relationship,omitempty" bson:"relationship"`
Name HumanName `json:"name,omitempty" bson:"name"`
Telecom []ContactPoint `json:"telecom,omitempty" bson:"telecom"`
Address Address `json:"address,omitempty" bson:"address"`
Gender string `json:"gender,omitempty" bson:"gender"`
Organization Reference `json:"organization,omitempty" bson:"organization"`
Period Period `json:"period,omitempty" bson:"period"`
}
type Communication struct {
Language CodeableConcept `json:"language,omitempty" bson:"language"`
Text string `json:"preferred,omitempty" bson:"preferred"`
}
type Link struct {
Other Reference `json:"other,omitempty" bson:"other"`
Type string `json:"type,omitempty" bson:"type"`
}
type LinkTarget struct {
Target Reference `json:"target,omitempty" bson:"target,omitempty"`
Type string `json:"type,omitempty" bson:"type,omitempty"`
}
type ExtendedContactDetail struct {
Purpose CodeableConcept `json:"purpose" bson:"purpose"`
Name []HumanName `json:"name,omitempty" bson:"name"`
Telecom []ContactPoint `json:"telecom,omitempty" bson:"telecom"`
Address []Address `json:"address,omitempty" bson:"address"`
Organization Reference `json:"organization,omitempty" bson:"organization"`
Period Period `json:"period,omitempty" bson:"period"`
}
type Quantity struct {
Value float64 `json:"value,omitempty" bson:"value,omitempty"`
Comparator string `json:"comparator,omitempty" bson:"comparator,omitempty"`
Unit string `json:"unit,omitempty" bson:"unit,omitempty"`
System string `json:"system,omitempty" bson:"system,omitempty"`
Code string `json:"code,omitempty" bson:"code,omitempty"`
}
type Qualification struct {
Identifier []Identifier `json:"identifier,omitempty" bson:"identifier,omitempty"`
Code CodeableConcept `json:"code,omitempty" bson:"code,omitempty"`
Period Period `json:"period,omitempty" bson:"period,omitempty"`
Issuer Reference `json:"issuer,omitempty" bson:"issuer,omitempty"`
}
type Position struct {
Longitude float64 `json:"longitude,omitempty" bson:"longitude,omitempty"`
Latitude float64 `json:"latitude,omitempty" bson:"latitude,omitempty"`
Altitude float64 `json:"altitude,omitempty" bson:"altitude,omitempty"`
}
type Availability struct {
AvailableTime []AvailabilityAvailableTime `json:"availableTime" bson:"availableTime,omitempty"`
NotAvailableTime []AvailabilityNotAvailable `json:"notAvailableTime" bson:"notAvailableTime,omitempty"`
}
type AvailabilityAvailableTime struct {
DaysOfWeek []string `json:"daysOfWeek" bson:"daysOfWeek,omitempty"`
AllDay bool `json:"allDay" bson:"allDay,omitempty"`
AvailableStartTime string `json:"availableStartTime" bson:"availableStartTime,omitempty"`
AvailableEndTime string `json:"availableEndTime" bson:"availableEndTime,omitempty"`
}
type AvailabilityNotAvailable struct {
Description string `json:"description" bson:"description"` // Required
During Period `json:"during,omitempty" bson:"during,omitempty"`
}
type VirtualService struct {
ChannelType Coding `json:"channelType,omitempty" bson:"channelType,omitempty"`
AddressUrl string `json:"addressUrl,omitempty" bson:"addressUrl,omitempty"`
AddressString string `json:"addressString,omitempty" bson:"addressString,omitempty"`
AddressContactPoint ContactPoint `json:"addressContactPoint,omitempty" bson:"addressContactPoint,omitempty"`
AddressExtendedContact ExtendedContactDetail `json:"addressExtendedContact,omitempty" bson:"addressExtendedContact,omitempty"`
AdditionalInfo []string `json:"additionalInfo,omitempty" bson:"additionalInfo,omitempty"`
MaxParticipants string `json:"maxParticipants,omitempty" bson:"maxParticipants,omitempty"`
SessionKey string `json:"sessionKey,omitempty" bson:"sessionKey,omitempty"`
}
type Payload struct {
Type CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`
Mimetype []string `json:"mimetype,omitempty" bson:"mimetype,omitempty"`
}