Update Record.java

How to use:
1.instantiate a record (preferably using the constructor with the reference number)
2.put necessary attributes

sample:
Record r = new HistopathologyRecord("H2014-1234");
r.putAttribute(Record.REMARKS, "This is so awesome!");

be mindful of the data types.
Key Record.PATIENT should have a value of Patient object
Key Record.DATE_RECEIVED and Record.DATE_COMPLETED should have a value of Calendar or Date (preferably Calendar)

when using Calendar instance, if you'll only be using some of its fields, always call Calendar.clear()
sample:
Calendar myBirthday = Calendar.getInstance(); //myBirthday will only use month, day, and year
myBirthday.clear();
myBirthday.set(1995, 4, 21);
reason:
comparing instances of Calendar is like comparing every value of its fields (including milliseconds, etc.) so having 2 instances that differ by milliseconds (the time when the object is instantiated) will cause it to be unequal (even if the month, year, and date is equal)


Record.equals(Object):
a record is equal to another object if:
1. the classes are the same 
2. the "primary keys" are the same

Record.matches(Record)
record a matches record b if:
1. the classes are the same (HistopathologyRecord != CytologyRecord, etc)
2. all attributes of b is in a and is equal (so, if there is an attribute in a that is not in b, they can still be "matched". Record b is like a search criteria. everything you're looking for (record b) must be in record a