In this paper, we study the optimal pricing control for a 2-tier hospital queueing system, where one queue is for public hospital with low fees while possibly long lines and the other queue is for private hospital with high fees while possibly short lines. Arriving patients are strategic and they choose public or private hospital queues according to their own utilities consisting of hospital fees and waiting cost. The waiting cost of patients equals the waiting time multiplied by a waiting cost factor which is a random variable obeying independently identical distribution. When the public hospital is in heavy load while the private one is in light, the controller can offer allowance to patients such that they have incentive to move from public to private hospital. The controller aims to dynamically determine the amount of allowance such that the system long-run average performance (social welfare and social gain, respectively) is optimized. This problem is formulated as a Markov decision problem. Using the sensitivity based optimization theory, we obtain interesting structures of the optimal allowance control policy, which show that the optimal policy is a bang-bang control and even has a threshold form under some mild conditions. Furthermore, by the difference formula of the system performances under any two policies, we develop a policy iteration-type algorithm to find the optimal policy for the case with general cost functions. The efficacy of the algorithm is illustrated by some numerical examples and we find some managerial insights about the optimal policy and performance.