Since you are using PIVOT, you either need to use subquery to select all of your columns and then your final list includes your "new" pivoted columns similar to this:
select EARCBG_Abbrev,
EARCIM_Code,
[OPD], [IPD], [Tourist]
from
(
select EARCBG_Abbrev, EARCIM_Code, EITP_Price, ETAR_Desc
from EMR_OrderItem
where EARCIM_Code = '010004'
) d
pivot
(
count(EITP_Price)
for ETAR_Desc in ([OPD], [IPD], [Tourist])
) as showpavot;
See SQL Fiddle with Demo
Or you could write the query like this:
select
EARCBG_Abbrev,
EARCIM_Code,
[OPD], [IPD], [Tourist]
from EMR_OrderItem
pivot
(
count(EITP_Price)
for ETAR_Desc in ([OPD], [IPD], [Tourist])
) as showpavot
where EARCIM_Code = '010004';
See SQL Fiddle with Demo
In both versions you'll see that the final select list includes the column names that you create during the pivot process.
This could also be written using an aggregate function with a CASE expression:
select
EARCBG_Abbrev,
EARCIM_Code,
sum(case when ETAR_Desc = 'OPD' then EITP_Price else 0 end) OPD,
sum(case when ETAR_Desc = 'IPD' then EITP_Price else 0 end) IPD,
sum(case when ETAR_Desc = 'Tourist' then EITP_Price else 0 end) Tourist
from EMR_OrderItem
where EARCIM_Code = '010004'
group by EARCBG_Abbrev, EARCIM_Code
See SQL Fiddle with Demo