--- type: "doc" source: "source/fhir-exchanges.svg.html" --- [Human](#human "#human")[intervention?](#human "#human")noyesAutomatedyes[CDS](#hooks "#hooks")[Hooks?](#hooks "#hooks")[CDS Hooks](https://cds-hooks.hl7.org "https://cds-hooks.hl7.org")Pull additionalinformationyes[Is data](#pre-exists "#pre-exists")[pre-existing?](#pre-exists "#pre-exists")nono - seemsg or op pullResource-basedqueryyes[Return](#resources "#resources")[resources?](#resources "#resources")no - Seealternatequery[Formal authorization/](#formal "#formal")[detail needed?](#formal "#formal")noyes[Task](exchanging-request#task "exchanging-request.html#task")[CommunicationRequest](exchanging-request#request "exchanging-request.html#request")decide resultretrievalyes[Direct](#connect-pull "#connect-pull")[connection?](#connect-pull "#connect-pull")[(pull)](#connect-pull "#connect-pull")no - See messaging queryyes (pull)[Consumer](#pull "#pull")[initiates?](#pull "#pull")no - See pushExisting Resourcesyes[Single](#onlyone "#onlyone")[resource?](#onlyone "#onlyone")[Current](#current "#current")[version?](#current "#current")yes[read](exchanging-rest#read "exchanging-rest.html#read")[vread](exchanging-rest#vread "exchanging-rest.html#vread")yes[Resource](#history "#history")[history](#history "#history")no[REST](exchanging-search#history "exchanging-search.html#history")[history](exchanging-search#history "exchanging-search.html#history")async?yes[Ad-hoc](#adhoc "#adhoc")[query?](#adhoc "#adhoc")nonoDefined query[\_query](exchanging-search#query "exchanging-search.html#query")async?yes[\_query](#query "#query")[searchable?](#query "#query")no - Seemsg or op pullAd-hoc query?yes[REST](#rest-search "#rest-search")[searchable?](#rest-search "#rest-search")[REST search](exchanging-search#search "exchanging-search.html#search")async?yes[Batch](#search-batch "#search-batch")[searchable?](#search-batch "#search-batch")no[Batch search](exchanging-rest#batch-search "exchanging-rest.html#batch-search")determinebatch contentasync?yes[\_filter](#filter "#filter")[searchable?](#filter "#filter")no[\_filter](exchanging-search#filter "exchanging-search.html#filter")async?yes[CQL](#cql "#cql")[searchable](#cql "#cql")nono - Seedefined query[CQL](exchanging-search#cql "exchanging-search.html#cql")async?Alternate queryyes[GraphQL](#graphql "#graphql")[searchable](#graphql "#graphql")[GraphQL](exchanging-search#graphql "exchanging-search.html#graphql")underlying[read](exchanging-rest#read "exchanging-rest.html#read"),[search](exchanging-search#search "exchanging-search.html#search")or[operation](exchanging-operation "exchanging-operation.html")async?yes[CQL](#cql "#cql")[searchable](#cql "#cql")no[CQL](exchanging-search#cql "exchanging-search.html#cql")async?yes[SPARQL](#sparql "#sparql")[searchable](#sparql "#sparql")nono - Seemsg or op pull[SPARQL](exchanging-search#sparql "exchanging-search.html#sparql")Group Persistance[Group](#group-transmit "#group-transmit")[transmission?](#group-transmit "#group-transmit")noyes[New record](#rest "#rest")[for consumer?](#rest "#rest")yesno[Individual](exchanging-rest#create "exchanging-rest.html#create")[create](exchanging-rest#create "exchanging-rest.html#create")[Update whole](#resources "#resources")[resource?](#resources "#resources")yesno[Individual](exchanging-rest#update "exchanging-rest.html#update")[update](exchanging-rest#update "exchanging-rest.html#update")[Patch](exchanging-rest#patch "exchanging-rest.html#patch")[Transactional?](#transaction "#transaction")noyes[Batch](exchanging-rest#batch "exchanging-rest.html#batch")[Bundle](exchanging-rest#batch "exchanging-rest.html#batch")[Transaction](exchanging-rest#transaction "exchanging-rest.html#transaction")[Bundle](exchanging-rest#transaction "exchanging-rest.html#transaction")choosecontainedactionsMsg or op pull?[Is](#message "#message")[message-like?](#message "#message")noyes[FHIR](exchanging-operation#retrieval "exchanging-operation.html#retrieval")[Retrieval](exchanging-operation#retrieval "exchanging-operation.html#retrieval")[Operation](exchanging-operation#retrieval "exchanging-operation.html#retrieval")Async?[Synchronous?](#synchronous "#synchronous")yesno[Synchronous](exchanging-search#sync "exchanging-search.html#sync")[Asynchronous](exchanging-search#async "exchanging-search.html#async")Messaging Query[FHIR](exchanging-messaging#query "exchanging-messaging.html#query")[Messaging](exchanging-messaging#query "exchanging-messaging.html#query")Msg or op push?[Is](#message "#message")[message-like?](#message "#message")noyesasync?[FHIR 'process'](exchanging-operation#process "exchanging-operation.html#process")[Operation](exchanging-operation#process "exchanging-operation.html#process")Messaging Notification[FHIR](exchanging-messaging#notify "exchanging-messaging.html#notify")[Messaging](exchanging-messaging#notify "exchanging-messaging.html#notify")Push[Configured by](#configured "#configured")[consumer?](#configured "#configured")yesno[Subscription](#subscription "#subscription")[capability?](#subscription "#subscription")noyes[Polling](exchanging-polling "exchanging-polling.html")choosepollingsearch[Push](#subscription-push "#subscription-push")[notifications?](#subscription-push "#subscription-push")yesno[Subscription](exchanging-subscription#push "exchanging-subscription.html#push")[with data](exchanging-subscription#push "exchanging-subscription.html#push")[Subscription](exchanging-subscription#pull "exchanging-subscription.html#pull")[with query](exchanging-subscription#pull "exchanging-subscription.html#pull")[Focus on](#story "#story")[presentation](#story "#story")[/story-telling?](#story "#story")noyes[Collection](exchanging-rest#collection "exchanging-rest.html#collection")[Bundle](exchanging-rest#collection "exchanging-rest.html#collection")[FHIR](exchanging-rest#document "exchanging-rest.html#document")[Documents](exchanging-rest#document "exchanging-rest.html#document")yes[Persist as](#group-store "#group-store")[a group?](#group-store "#group-store")noyes[Data source directs](#source-persist "#source-persist")[consumer persistence?](#source-persist "#source-persist")no - Seemsg or op pushyes[Direct](#connect-push "#connect-push")[connection?](#connect-push "#connect-push")[(push)](#connect-push "#connect-push")no - Seemsg notify