There are three aspects that are important for answering this question:
- There is another word beside »hier« and »da« that needs attention: »dort«.
- Usage of omissions.
In reverse order:
Bad style usage of an ommission
»Gibt’s« is colloquial German that can be used when speaking German. But it's usage in written texts is limited. In contrast to English it's bad style to write words like »gibt’s« in German. Exceptions, where it is acceptable to use omissions, are quoting oral speach, poems, or when the context prepares the reader for colloquial usage of German. But keep in mind, that usage of omissions in written German is only acceptable style in such exception.
bad style --> good style
Gibt’s das? --> Gibt es das?
So 'n Blödsinn! --> So ein Blödsinn.
Sie saß auf'm Tisch. --> Sie saß auf dem Tisch.
Wie du's haben willst. --> Wie du es haben willst.
German word order is flexible, but this does not mean, that any word order is correct.
Gibt es einen Arzt da? = critical word order (see below for details).
Gibt es da einen Arzt? = correct word order.
This is a question, which means that is has to start with the predicate, which is the verb »gibt«, a flexion of »geben«. With any other subject it would mean »to give«, but when the subject is »es« it goes not mean »it gives« but »there is«.
The other elements of this sentence tell you where something is (the locative adverb »da«) and what it is, that is there (the accusative object »einen Arzt«)
The normal place for an adverb is before an accusative object, or behind an dative object. Here we have an accusative object, so the adverb must be placed before it. But this will be overruled if the accusative object is a pronoun. An adverb must always come after a pronoun, even if it is an accusative object.
- Es gibt da einen Arzt. correct (adverb before accusative object)
- Es gibt einen Arzt da. see below
- Es gibt da ihn. wrong (»ihn« is a pronoun which can't stand behind the adverb)
- Es gibt ihn da. correct (pronoun before adverb)
In most cases this is not good style. But you can use this word order to emphasis the adverb »da«. You can also use this word order in a Question:
Gibt es da einen Arzt? - Focus is on the doctor. You need a doctor, and want to know if there is any.
Gibt es einen Arzt da? - Focus is in the place. You want to know if a doctor is here. (You don't want to know if there is a doctor in the neighbor village.)
da, dort, hier
»Hier« is the speakers place. This is the location where the speaker stands (sits, lays, ...) when he says what he says. This is true in all three standard variations of German.
In Austrian German: Same as »hier« (as long as we are speaking of locative adverbs). When you talk with an Austrian guy and he says »da« he means the place where he is.
In German German: »Da« can be any place. Often it is the speakers location, but very often also any other local focus of speach.
(Sorry, I'm not sure about the meaning of »da« in Swiss German. I guess it is like in Austrian German.)
In Austrian German: The local focus of speach (the place you are speaking of) as long as it is not the speakers own location.
In German German: A synonym for »da« (when used as locative adverb).
But there is a special usage of the locative adverb »da« where it can't be replaced by »dort«:
At last, the bus is here! (It just arrived)
Der Bus ist endlich da!
The word »da« can also be a temporal adverb (»Hie und da esse ich etwas zu viel«) or a conjunction (»Ich konnte nicht arbeiten, da ich krank war). In those functions it can't be replaces by »dort« or »hier«.