Files
api-poliklinik/pkg/models/struct/fhir.go
2025-05-15 13:45:45 +07:00

317 lines
13 KiB
Go

package _struct
type StatusHistrory struct {
Status string `json:"status" ,bson:"status"`
Period Period `json:"period" ,bson:"period"`
}
type Identifier struct {
Use string `json:"use" bson:"use"`
Type CodeableConcept `json:"type" bson:"type"`
System string `json:"system" bson:"system"`
Value string `json:"value" bson:"value"`
Period Period `json:"period" bson:"period"`
Assigner Reference `json:"assigner" bson:"assigner"`
Coding Coding `json:"coding" bson:"coding"`
}
type CodeableConcept struct {
Coding []Coding `json:"coding" bson:"coding"`
Text string `json:"text" bson:"text"`
}
type Coding struct {
System string `json:"system" bson:"system"`
Version string `json:"version" bson:"version"`
Code string `json:"code" bson:"code"`
Display string `json:"display" bson:"display"`
UserSelected bool `json:"userSelected" 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" bson:"reference"`
Display string `json:"display" bson:"display"`
}
type HumanName struct {
Use string `json:"use" bson:"use"`
Text string `json:"text" bson:"text"`
Family string `json:"family" bson:"family"`
Given []string `json:"given" bson:"given"`
Prefix []string `json:"prefix" bson:"prefix"`
Suffix []string `json:"suffix" bson:"suffix"`
Period Period `json:"period" bson:"period"`
}
type ContactPoint struct {
System string `bson:"system" json:"system"`
Value string `bson:"value" json:"value"`
Use string `bson:"use" json:"use"`
Rank string `bson:"rank" json:"rank"`
Period Period `bson:"period" json:"period"`
}
type Address struct {
Use string `json:"use" bson:"use"`
Type string `json:"type" bson:"type"`
Text string `json:"text" bson:"text"`
Line []string `json:"line" bson:"line"`
Village string `json:"village" bson:"village"`
District string `json:"district" bson:"district"`
City string `json:"city" bson:"city"`
State string `json:"state" bson:"state"`
PostalCode string `json:"postalCode" bson:"postalCode"`
Country string `json:"country" bson:"country"`
Period Period `json:"period" bson:"period"`
Extension []Extension `json:"extension" bson:"extension"`
}
type Extension struct {
URL string `json:"url" bson:"url"`
Extension []ExtensionDetail `json:"extension" bson:"extension"`
}
type ExtensionDetail struct {
URL string `json:"url" bson:"url"`
ValueDisplay string `json:"valueDisplay" bson:"valueDisplay"`
ValueCode string `json:"valueCode" 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" bson:"relationship"`
Name HumanName `json:"name" bson:"name"`
Telecom []ContactPoint `json:"telecom" bson:"telecom"`
Address Address `json:"address" bson:"address"`
Gender string `json:"gender" bson:"gender"`
Organization Reference `json:"organization" bson:"organization"`
Period Period `json:"period" bson:"period"`
}
type Communication struct {
Language CodeableConcept `json:"language" bson:"language"`
}
type Link struct {
Other Reference `json:"other" bson:"other"`
Type string `json:"type" bson:"type"`
}
type LinkTarget struct {
Target Reference `json:"target" bson:"target,omitempty"`
Type string `json:"type" bson:"type,omitempty"`
}
type ExtendedContactDetail struct {
Purpose CodeableConcept `json:"purpose" bson:"purpose"`
Name []HumanName `json:"name" bson:"name"`
Telecom []ContactPoint `json:"telecom" bson:"telecom"`
Address []Address `json:"address" bson:"address"`
Organization Reference `json:"organization" bson:"organization"`
Period Period `json:"period" bson:"period"`
}
type Reason struct {
Use CodeableConcept `json:"use" bson:"use"`
Value []Value `json:"value" bson:"value"`
Reference Reference `json:"reference" bson:"reference"`
}
type Reasonencounter struct {
Use []CodeableConcept `json:"use" bson:"use"`
Value []Value `json:"value" bson:"value"`
Reference Reference `json:"reference" bson:"reference"`
}
type Value struct {
Concept CodeableConcept `json:"concept" bson:"concept"`
Reference Reference `json:"reference" bson:"reference"`
}
type Diagnosis struct {
Condition []Value `json:"condition" bson:"condition"`
Use []CodeableConcept `json:"use" bson:"use"`
}
type Diagnosisepisode struct {
Condition []Value `json:"condition" bson:"condition"`
Use CodeableConcept `json:"use" bson:"use"`
}
type Quantity struct {
Value float64 `json:"value" bson:"value"`
Comparator string `json:"comparator" bson:"comparator"`
Unit string `json:"unit" bson:"unit"`
System string `json:"system" bson:"system"`
Code string `json:"code" bson:"code"`
}
type Qualification struct {
Identifier []Identifier `json:"identifier" bson:"identifier"`
Code CodeableConcept `json:"code" bson:"code"`
Period Period `json:"period" bson:"period"`
Issuer Reference `json:"issuer" bson:"issuer"`
}
type Code struct {
Code []CodeableConcept `json:"code" bson:"code"`
Comment string `json:"comment" bson:"comment"`
}
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" bson:"channelType"`
AddressUrl string `json:"addressUrl" bson:"addressUrl"`
AddressString string `json:"addressString" bson:"addressString"`
AddressContactPoint ContactPoint `json:"addressContactPoint" bson:"addressContactPoint"`
AddressExtendedContact ExtendedContactDetail `json:"addressExtendedContact" bson:"addressExtendedContact"`
AdditionalInfo []string `json:"additionalInfo" bson:"additionalInfo"`
MaxParticipants int `json:"maxParticipants" bson:"maxParticipants"`
SessionKey string `json:"sessionKey" bson:"sessionKey"`
}
type VirtualServiceappoinmet struct {
ChannelType Coding `json:"channelType" bson:"channelType"`
Address Addressappoint `json:"address" bson:"address"`
AdditionalInfo []string `json:"additionalInfo" bson:"additionalInfo"`
MaxParticipants int `json:"maxParticipants" bson:"maxParticipants"`
SessionKey string `json:"sessionKey" bson:"sessionKey"`
}
type Addressappoint struct {
AddressUrl string `json:"addressUrl" bson:"addressUrl"`
AddressString string `json:"addressString" bson:"addressString"`
AddressContactPoint ContactPoint `json:"addressContactPoint" bson:"addressContactPoint"`
AddressExtendedContactDetail ExtendedContactDetailappoint `json:"addressExtendedContactDetail" bson:"addressExtendedContactDetail"`
}
type ExtendedContactDetailappoint struct {
Purpose CodeableConcept `json:"purpose" bson:"purpose"`
Name []HumanName `json:"name" bson:"name"`
Telecom []ContactPoint `json:"telecom" bson:"telecom"`
Address []Address `json:"address" bson:"address"`
Organization Reference `json:"organization" bson:"organization"`
Period Period `json:"period" bson:"period"`
}
type VirtualServiceEncounter struct {
ChannelType Coding `json:"channelType" bson:"channelType"`
Address AddressEncounter `json:"address" bson:"address"`
AdditionalInfo []string `json:"additionalInfo" bson:"additionalInfo"`
MaxParticipants int `json:"maxParticipants" bson:"maxParticipants"`
SessionKey string `json:"sessionKey" bson:"sessionKey"`
}
type AddressEncounter struct {
AddressUrl string `json:"addressUrl" bson:"addressUrl"`
AddressString string `json:"addressString" bson:"addressString"`
AddressContactPoint ContactPoint `json:"addressContactPoint" bson:"addressContactPoint"`
AddressExtendedContactDetail ExtendedContactDetailEncounter `json:"addressExtendedContactDetail" bson:"addressExtendedContactDetail"`
}
type ExtendedContactDetailEncounter struct {
Purpose CodeableConcept `json:"purpose" bson:"purpose"`
Name []HumanName `json:"name" bson:"name"`
Telecom []ContactPoint `json:"telecom" bson:"telecom"`
Address Address `json:"address" bson:"address"` // Single address, not array
Organization Reference `json:"organization" bson:"organization"`
Period Period `json:"period" bson:"period"`
}
type Payload struct {
Type CodeableConcept `json:"type,omitempty" bson:"type,omitempty"`
Mimetype []string `json:"mimetype,omitempty" bson:"mimetype,omitempty"`
}
type Note struct {
Author Author `json:"author" bson:"author"`
Time string `json:"time" bson:"time"`
Text string `json:"text" bson:"text"`
}
type Author struct {
AuthorReference Reference `json:"authorReference" bson:"authorReference"`
AuthorString string `json:"authorString" bson:"authorString"`
}
type Concept struct {
Concept CodeableConcept `json:"concept" bson:"concept"`
Reference Reference `json:"reference" bson:"reference"`
}
type Participant struct {
Type []CodeableConcept `json:"type" bson:"type"`
Period Period `json:"period" bson:"period"`
Actor Reference `json:"actor" bson:"actor"`
Required bool `json:"required" bson:"required"`
Status string `json:"status" bson:"status"`
}
type RecurrenceTemple struct {
Timezone CodeableConcept `json:"timezone" bson:"timezone"`
RecurrenceType CodeableConcept `json:"recurrenceType" bson:"recurrenceType"`
LastOccurrenceDate string `json:"lastOccurrenceDate" bson:"lastOccurrenceDate"`
OccurenceCount int `json:"occurenceCount" bson:"occurenceCount"`
OccurenceDate []string `json:"occurenceDate" bson:"occurenceDate"`
}
type WeeklyTemple struct {
Monday bool `json:"monday" bson:"monday"`
Tuesday bool `json:"tuesday" bson:"tuesday"`
Wednesday bool `json:"wednesday" bson:"wednesday"`
Thursday bool `json:"thursday" bson:"thursday"`
Friday bool `json:"friday" bson:"friday"`
Saturday bool `json:"saturday" bson:"saturday"`
Sunday bool `json:"sunday" bson:"sunday"`
WeekInterval string `json:"weekInterval" bson:"weekInterval"`
}
type MonthlyTemple struct {
DayOfmonth string `json:"dayOfMonth" bson:"dayOfMonth"`
NthWeekOfMonth Coding `json:"nthWeekOfMonth" bson:"nthWeekOfMonth"`
DayOfWeek Coding `json:"dayOfWeek" bson:"dayOfWeek"`
MonthInterval int `json:"monthInterval" bson:"monthInterval"`
}
type YearlyTemple struct {
YearInterval int `json:"yearInterval" bson:"yearInterval"`
}