Documentation ¶
Index ¶
- Variables
- type AssignedAuthor
- type AssignedPerson
- type AttachmentInfo
- type Author
- type ClientRequest
- type ConfidentialityCode
- type DSUBSubscribe
- type DSUBSubscribeResponse
- type Dashboard
- type DocumentEvent
- type EffectiveTime
- type Event
- type Events
- type ID
- type Input
- type Name
- type Output
- type PIXPatient
- type PIXmResponse
- type Part
- type PatientID
- type Subscription
- type Subscriptions
- type TUKServiceState
- type TUKXDW
- type TUKXDWS
- type TaskData
- type TaskDetails
- type TaskEvent
- type TaskEventHistory
- type TaskList
- type TmpltWorkflow
- type TmpltWorkflows
- type Workflow
- type WorkflowDefinition
- type WorkflowState
- type WorkflowStatusHistory
- type Workflows
- type XDWTask
- type XDWWorkflowDocument
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type AssignedAuthor ¶
type AssignedAuthor struct { ID ID `xml:"id"` AssignedPerson AssignedPerson `xml:"assignedPerson"` }
type AssignedPerson ¶
type AssignedPerson struct {
Name Name `xml:"name"`
}
type AttachmentInfo ¶
type AttachmentInfo struct { Identifier string `xml:"identifier"` Name string `xml:"name"` AccessType string `xml:"accessType"` ContentType string `xml:"contentType"` ContentCategory string `xml:"contentCategory"` AttachedTime string `xml:"attachedTime"` AttachedBy string `xml:"attachedBy"` HomeCommunityId string `xml:"homeCommunityId"` }
type Author ¶
type Author struct {
AssignedAuthor AssignedAuthor `xml:"assignedAuthor"`
}
type ClientRequest ¶
type ClientRequest struct { User string `json:"user"` Org string `json:"org"` Orgoid string `json:"orgoid"` Role string `json:"role"` NHS string `json:"nhs"` PID string `json:"pid"` PIDOrg string `json:"pidorg"` PIDOID string `json:"pidoid"` FamilyName string `json:"familyname"` GivenName string `json:"givenname"` DOB string `json:"dob"` Gender string `json:"gender"` ZIP string `json:"zip"` Status string `json:"status"` XDWKey string `json:"xdwkey"` ID int `json:"id"` Task string `json:"task"` Pathway string `json:"pathway"` Version int `json:"version"` ReturnXML bool `json:"returnxml"` Act string `json:"act"` }
func NewClientRequest ¶
func NewClientRequest(r *http.Request) ClientRequest
type ConfidentialityCode ¶
type ConfidentialityCode struct {
Code string `xml:"code,attr"`
}
type DSUBSubscribe ¶
type DSUBSubscribeResponse ¶
type DSUBSubscribeResponse struct { XMLName xml.Name `xml:"Envelope"` Text string `xml:",chardata"` S string `xml:"s,attr"` A string `xml:"a,attr"` Xsi string `xml:"xsi,attr"` Wsnt string `xml:"wsnt,attr"` SchemaLocation string `xml:"schemaLocation,attr"` Header struct { Text string `xml:",chardata"` Action string `xml:"Action"` } `xml:"Header"` Body struct { Text string `xml:",chardata"` SubscribeResponse struct { Text string `xml:",chardata"` SubscriptionReference struct { Text string `xml:",chardata"` Address string `xml:"Address"` } `xml:"SubscriptionReference"` } `xml:"SubscribeResponse"` } `xml:"Body"` }
type DocumentEvent ¶
type EffectiveTime ¶
type EffectiveTime struct {
Value string `xml:"value,attr"`
}
type Event ¶
type Event struct { Id int `json:"id"` Created string `json:"creationtime"` DocName string `json:"docname"` ClassCode string `json:"classcode"` ConfCode string `json:"confcode"` FormatCode string `json:"formatcode"` FacilityCode string `json:"facilitycode"` PracticeCode string `json:"practicecode"` Expression string `json:"expression"` Authors string `json:"authors"` XdsPid string `json:"xdspid"` XdsDocEntryUid string `json:"xdsdocentryuid"` RepositoryUniqueId string `json:"repositoryuniqueid"` NhsId string `json:"nhsid"` User string `json:"user"` Org string `json:"org"` Role string `json:"role"` Topic string `json:"topic"` Pathway string `json:"pathway"` Notes string `json:"notes"` Version string `json:"ver"` BrokerRef string `json:"brokerref"` }
type PIXPatient ¶
type PIXPatient struct { Count int `json:"count"` PIDOID string `json:"pidoid"` PID string `json:"pid"` REGOID string `json:"regoid"` REGID string `json:"regid"` NHSOID string `json:"nhsoid"` NHSID string `json:"nhsid"` GivenName string `json:"givenname"` FamilyName string `json:"familyname"` Gender string `json:"gender"` BirthDate string `json:"birthdate"` Street string `json:"street"` Town string `json:"town"` City string `json:"city"` State string `json:"state"` Country string `json:"country"` Zip string `json:"zip"` }
type PIXmResponse ¶
type PIXmResponse struct { ResourceType string `json:"resourceType"` ID string `json:"id"` Type string `json:"type"` Total int `json:"total"` Link []struct { Relation string `json:"relation"` URL string `json:"url"` } `json:"link"` Entry []struct { FullURL string `json:"fullUrl"` Resource struct { ResourceType string `json:"resourceType"` ID string `json:"id"` Identifier []struct { Use string `json:"use,omitempty"` System string `json:"system"` Value string `json:"value"` } `json:"identifier"` Active bool `json:"active"` Name []struct { Use string `json:"use"` Family string `json:"family"` Given []string `json:"given"` } `json:"name"` Gender string `json:"gender"` BirthDate string `json:"birthDate"` Address []struct { Use string `json:"use"` Line []string `json:"line"` City string `json:"city"` PostalCode string `json:"postalCode"` Country string `json:"country"` } `json:"address"` } `json:"resource"` } `json:"entry"` }
type Part ¶
type Part struct { Name string `xml:"name,attr"` AttachmentInfo AttachmentInfo `xml:"attachmentInfo"` }
type Subscription ¶
type Subscriptions ¶
type Subscriptions struct { Action string `json:"action"` LastInsertId int64 `json:"lastinsertid"` Count int `json:"count"` Subscriptions []Subscription `json:"Subscriptions"` }
type TUKServiceState ¶
type TUKServiceState struct { LogEnabled bool `json:"logenabled"` Paused bool `json:"paused"` Scheme string `json:"scheme"` Host string `json:"host"` Port int `json:"port"` Url string `json:"url"` User string `json:"user"` Password string `json:"password"` Org string `json:"org"` Role string `json:"role"` POU string `json:"pou"` ClaimDialect string `json:"claimdialect"` ClaimValue string `json:"claimvalue"` BaseFolder string `json:"basefolder"` LogFolder string `json:"logfolder"` ConfigFolder string `json:"configfolder"` TemplatesFolder string `json:"templatesfolder"` Secret string `json:"secret"` Token string `json:"token"` CertPath string `json:"certpath"` Certs string `json:"certs"` Keys string `json:"keys"` DBSrvc string `json:"dbsrvc"` STSSrvc string `json:"stssrvc"` SAMLSrvc string `json:"samlsrvc"` LoginSrvc string `json:"loginsrvc"` PIXSrvc string `json:"pixsrvc"` CacheTimeout int `json:"cachetimeout"` CacheEnabled bool `json:"cacheenabled"` ContextTimeout int `json:"contexttimeout"` TUK_DB_URL string `json:"tukdburl"` DSUB_Broker_URL string `json:"dsubbrokerurl"` DSUB_Consumer_URL string `json:"dsubconsumerurl"` DSUB_Subscriber_URL string `json:"dsubsubscriberurl"` PIXm_URL string `json:"pixmurl"` XDS_Reg_URL string `json:"xdsregurl"` XDS_Rep_URL string `json:"xdsrepurl"` NHS_OID string `json:"nhsoid"` Regional_OID string `json:"regionaloid"` }
func NewTUKService ¶
func NewTUKService(basepath string) (TUKServiceState, error)
func (*TUKServiceState) RegisterWorkflows ¶
func (i *TUKServiceState) RegisterWorkflows() (Subscriptions, error)
RegisterWorkflows Takes inputs of the executable basepath and the configfolder (sub folder of basepath) of the creator client and log service json config files
It loads XDW definition files (located in the folder defined in the service json config) and parses the XDW definations to identify and create IHE DSUB Broker subscriptions that are required to trigger the workflow tasks in each workflow definition. When all subscrions have been created, it registers the subscription and XDW defintions with the TUK Event Service
type TaskData ¶
type TaskData struct { TaskDetails TaskDetails `xml:"taskDetails"` Description string `xml:"description"` Input []Input `xml:"input"` Output []Output `xml:"output"` }
type TaskDetails ¶
type TaskDetails struct { ID string `xml:"id"` TaskType string `xml:"taskType"` Name string `xml:"name"` Status string `xml:"status"` ActualOwner string `xml:"actualOwner"` CreatedTime string `xml:"createdTime"` CreatedBy string `xml:"createdBy"` LastModifiedTime string `xml:"lastModifiedTime"` RenderingMethodExists string `xml:"renderingMethodExists"` }
type TaskEventHistory ¶
type TaskEventHistory struct {
TaskEvent []TaskEvent `xml:"taskEvent"`
}
type TmpltWorkflow ¶
type TmpltWorkflows ¶
type TmpltWorkflows struct { Count int Workflows []TmpltWorkflow }
type WorkflowDefinition ¶
type WorkflowDefinition struct { Ref string `json:"ref"` Name string `json:"name"` Confidentialitycode string `json:"confidentialitycode"` CompleteByTime string `json:"completebytime"` CompletionBehavior []struct { Completion struct { Condition string `json:"condition"` } `json:"completion"` } `json:"completionBehavior"` Tasks []struct { ID string `json:"id"` Tasktype string `json:"tasktype"` Name string `json:"name"` Description string `json:"description"` Owner string `json:"owner"` ExpirationTime string `json:"expirationtime"` StartByTime string `json:"startbytime"` CompleteByTime string `json:"completebytime"` IsSkipable bool `json:"isskipable"` CompletionBehavior []struct { Completion struct { Condition string `json:"condition"` } `json:"completion"` } `json:"completionBehavior"` Input []struct { Name string `json:"name"` Contenttype string `json:"contenttype"` AccessType string `json:"accesstype"` } `json:"input,omitempty"` Output []struct { Name string `json:"name"` Contenttype string `json:"contenttype"` AccessType string `json:"accesstype"` } `json:"output,omitempty"` } `json:"tasks"` }
type WorkflowState ¶
type WorkflowStatusHistory ¶
type WorkflowStatusHistory struct {
DocumentEvent []DocumentEvent `xml:"documentEvent"`
}
type XDWTask ¶
type XDWTask struct { TaskData TaskData `xml:"taskData"` TaskEventHistory TaskEventHistory `xml:"taskEventHistory"` }
type XDWWorkflowDocument ¶
type XDWWorkflowDocument struct { XMLName xml.Name `xml:"XDW.WorkflowDocument"` Hl7 string `xml:"hl7,attr"` WsHt string `xml:"ws-ht,attr"` Xdw string `xml:"xdw,attr"` Xsi string `xml:"xsi,attr"` SchemaLocation string `xml:"schemaLocation,attr"` ID ID `xml:"id"` EffectiveTime EffectiveTime `xml:"effectiveTime"` ConfidentialityCode ConfidentialityCode `xml:"confidentialityCode"` Patient PatientID `xml:"patient"` Author Author `xml:"author"` WorkflowInstanceId string `xml:"workflowInstanceId"` WorkflowDocumentSequenceNumber string `xml:"workflowDocumentSequenceNumber"` WorkflowStatus string `xml:"workflowStatus"` WorkflowStatusHistory WorkflowStatusHistory `xml:"workflowStatusHistory"` WorkflowDefinitionReference string `xml:"workflowDefinitionReference"` TaskList TaskList `xml:"TaskList"` }
Click to show internal directories.
Click to hide internal directories.