# Privacy-Aware Cloud Architecture for Collaborative Use of Patients' Health Information
## 3 Proposed Architecture
### Architecture Implementation
#### 3.4.2 Testing the Architecture  
One of the main requirements of storing healthcare information on the cloud is the protection from unauthorized users. The cloud architecture was tested in terms of its ability to prevent unauthorized cloud users from accessing the information. Four tests were performed against the implemented system, summary of the tests and results are presented in Table 8. \begin{table}
\begin{tabular}{l l l l} \hline \hline
**SysId** & **UserId** & **Role** & **Access Privilege** \\ \hline
29930894 & 7777 & Receptionist & doc-1 \\ \hline
29930804 & 8888 & Nurse & doc-1 1 doc-2 \\ \hline
29930832 & 9999 & Specialist & doc-1 1 doc-2 1 doc-3 \\ \hline
29930930 & 6666 & Receptionist & doc-1 \\ \hline \hline \end{tabular}
\end{table} 
Table 7: The users’ table used by CSR to authorize users. Figure 10: The implementation of the authorization process. public class CloudServiceProvider { public CloudServiceProvider() { } public boolean sendDocsToClient(int numberOfDocs, String[] docIndexes, String[] outputDocnames) { try {  S3 Sample s3 = new S3 Sample();  File f=null;  for(int i=9;inumberOfDocs;i++)  {  f=s3.getDocument(docIndexes[i]);  //Thread.sleep(580);  s3.PutDocumentToOut(outputDocNames[i], f);  }  s3.listObjectInBuckt(\"docs-out\");  return true; } catch (Exception e) { // TODO: handle exception  System.out.println(\"CloudServiceProvider.sendDocsToClient()\");  System.out.println(e.getMessage());  return false; } } } } } } } } } } } } } } } } } } } } } } ```
``` public class SecretKeyAgent { public SecretKeyAgent() { }  public boolean sendKeysToClient(int numberOfKeys, String[] keyIndexes, String[] outputKeyNames) { try {  S3 Sample s3 = new S3 Sample();  File f=null;  for(int i=9;inumberOfKeys;i++)  {  f=s3.getTrapdoor(keyIndexes[i]);  //Thread.sleep(580);  s3.PutTrapdoorToOut(outputKeyNames[i],f );  }  s3.listObjectInBuckt(\"trapdoors-out\");  return true; } catch (Exception e) {  // TODO: handle exception  System.out.println(\"SecretKeyAgent.sendKeysToClient()\"+e.getMessage());  return false; } } } } } } } } } } } } } } } } } } } } } }



## 4 Discussion

The adoption of cloud computing for healthcare information systems is a major improvement in the healthcare domain due to the significant benefits that cloud computing technology offers. The proposed architecture enables storing and sharing patient information in a privacy-preserving manner. The proposed cloud architecture will serve the healthcare domain by storing all patients' health information in one place (cloud) so that genuine users can access it regardless of their locations. The system instantiation of how the designed architecture works in terms of sharing healthcare information was presented in a scenario-based fashion. The feasibility and usability of the proposed architecture were confirmed, and the validity of the architecture in terms of preserving the privacy of information was successfully tested and proven. ### Privacy-Preservation

Information in the proposed architecture is encrypted before it is sent to the cloud for storage. The cloud stores encrypted data without decryption details (secret keys). This separation of information (encrypted information and secret keys) makes it difficult for cloud providers to learn the content of the information by decrypting it. Exploiting the searchable symmetric encryption scheme (SSE) ensures that cloud providers can fulfill users' requests by releasing the needed information without decrypting it. The decryption of information can only happen between genuine parties. Dividing patients' information into many divisions according to the need for it overcomes the issue of unnecessary disclosure of information. The designed architecture categorizes patients' information into four categories, of which three are for medical treatment purposes, namely All_V, Em_V, and OutP_V, and one is for research purposes (R). Medical practitioners do not always require accessing the entire patient's information every time medical treatment is needed.