Generally everyone can see all data stored in a blockchain. Is there any way to handle private personal data like personal medical records which only right person can see?
You can store data or its hash in the blockchain using OP_RETURN outputs which can store up to 80 bytes http://blog.coinprism.com/2015/02/11/80-bytes-op-return/
I don't see why you would store any data on the block chain instead of just a hash.
The Bitcoin blockchain is not intended (it's actively discouraged) and therefore not suitable for data storage. The distribution system will most likely not suit your needs either. And if you're still not convinced: you're not going to be able to pay for it anyway: Bitcoin transactions cost money per byte, so you want to use as little as possible.
Use some other network/storage system that matches your requirements. Be it a website or bittorrent or a piece of paper.
Whether the actual data there is encrypted or not is your own choice. The blockchain doesn't care.
I don't see why you wouldn't be able to encrypt the data you'd like to share on the blockchain with the intended recipient's public key. That should keep it private from everyone except the holder of the private key, which should be the intended recipient.
Yes, you can encrypt the data you wanted to add with SHA256 Here:
Add the encrypted data to a note on one of your transaction by clicking Note button in My Transactions.
If you need something publicly readable (but encrypted) you can put bytes into your pubkey too. Of course the bigger the message the more fees you may have to pay.
A scriptPubKey like this could work:
'my-data' OP_DROP OP_DUP OP_HASH160 pubKeyHash OP_EQUALVERIFY OP_CHECKSIG