The Concept of address

The important point to realize here is that an address is nothing but a convenient label for a location with an intended purpose of use for said location. In other words, addresses are the names of locations intended for non-random stay. It doesn't matter who - or in fact if anyone - actually lives there.

Based upon this GNUmed handles addresses conceptually independant of people who might live there. This means one address - it being a name for a geographical location - should only ever be stored once in the database. People living there are then linked to that address by means of a two-way assocation table. That table allows attaching a meaning to that association such as work, home, etc.

This in turn means, that there is no middleware primitive along the lines of patient.change_address() or patient.delete_address(). There rather are a few primitives operating on the above assumptions upon which higher-level functionality is built:


  • class cAddress encapsulates an address in its own right
  • class cPatientAddress encapsulates an address associated with a purpose and a patient
  • method create_address()
  • method delete_address()
  • method address_exists()

The following higher level functions use the above primitives:


  • cIdentity.get_addresses()
  • cIdentity.link_address()
  • cIdentity.unlink_address()
Topic revision: 20 Jan 2013, JamesBusser
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback
Powered by Olark