I'm sure there is, but I've not had to deal with the scenario personally. So I can't help on this one.
Visit the book's website at modularity.kirkk.com where you can review all 18 patterns and download an excerpt of the book. There is also a mobile web application available that you can take with you wherever you go.
In this environment, since Kirk's fine book addresses correct concepts and patterns,
you would definitely have to use some form of CMS (Content mangement System) optimized
for large files (videos, scans etc..) and rapid keyword-based retrieval.
Kirks concepts and rules are still valid, simply apply to your own requirements and needs.
For instance, some of us build applications for finance (e.g: building a bank),
you seem to be building a hospital. Same architectural concepts, foundation etc.. but different.
Would you walk into a bank with a chest-pain ?
I wouldn't call 50MB as large. 50MB file can easily fit into memory. Now, if you are trying to load 20 such files together , you might run into a problem . I would call data as large only when it exceeds the memory limit of the Java process, which is 2GB on 32 bit OS. On 64 bit Java, this limit is much larger.
True to an extent, my cell phones internal memory has around 20 times 50Mb.
However, when 1000s of these are being stored (quite possible in medical field),
and the doctor or whoever needs accuracy and performance in searching, then a CMS is a definitive!
You cannot simply issue a select like:
select xray_image from xrays where xray_image like clob('WPOSullivan Colon'); ... I think my colon is fine!
I think your problem is that possibly you are handling more files than your application can handle at a time. So you would need to limit the number of files you get into the memory at any time based on the memory you have with your VM. If your application needs are more than what can be handled by the VM then you can think of these two options
a. Increase the VM size. If you are using 32 bit VM you can not go beyond 3gb, so you would need to migrate to 64 bit VM
b. Other option is to cluster your application.
Hope this helps!!
---
Ankur Srivastava
I have always wanted to have a neighbor just like you - Fred Rogers. Tiny ad: