| | Chat with OSSCube
  • About OSSCube
    • Core Team
    • Partners
    • Locations
    • Investor Relations
    • Careers
      • SugarCRM Application Manager
      • MySQL Instructor, DBA and Consultant
      • Senior Symfony Developer
      • Senior Drupal Developer
      • Senior SugarCRM Developer
      • Senior PHP Engineer
      • Technical Sales Engineer
      • Flex Developer
    • News
    • Events
    • Blog
  • Services
    • Enterprise 2.0 Development
    • Open Source Products
    • Open Source Training
    • Engagement Models
  • Technology
    • Linux
    • MySQL
      • MySQL Architecture & Design
      • MySQL High Availability
      • MySQL Migration
      • MySQL Performance Tuning
      • MySQL Remote DBA
    • PHP
      • Symfony Development
    • Web 2.0
  • Solutions
    • SugarCRM
      • What is SugarCRM
      • SugarCRM Editions
      • Why Choose SugarCRM
      • Why OSSCube
      • SugarCRM Case Studies
      • SugarCRM Jobs
      • SugarCRM Services
      • SugarCRM Support
    • Symfony Development
      • Hire Symfony Developers
      • Symfony Case Studies
      • What is Symfony
      • Why OSSCube
      • Why Symfony
    • Drupal
      • Drupal Services
      • Drupal Support
      • What is Drupal
      • Why Drupal
      • Why OSSCube
    • Business Intelligence
    • Moodle
    • Health Care Development
      • CCHIT/EMR/EHR Development
      • Custom PMS Development
      • Why OSSCube
  • Training
    • MySQL
      • MySQL Cluster
      • MySQL High Availability
      • MySQL Performance Tuning
      • MySQL for DBA
      • MySQL for Developers
    • Zend Training
      • PHP Certification Training
      • PHP I: Foundations
      • PHP II: Higher Structures
    • SugarCRM
      • Introduction to SugarCRM
      • Building Effective Workflows
      • BI and Reports Development
      • End User Training
      • Admin Fundamentals
    • Symfony & Doctrine Training
    • Ruby on Rails Training
    • Python Training
    • Customer Testimonials
    • Schedule & Pricing
  • Customers
    • Education
    • Government
    • Health Care
    • SaaS / Web 2.0 / Mobile
    • Technology
    • Case Studies
  • Resources
    • Blog
    • Pictures
    • Presentations
    • Videos
    • Sitemap
  • Blog

Home› Blog

Experiences at India Twitter Conference

Posted by kinshuk on January, 25th 2010

On Jan 9, I participated at the first India Twitter Conference. Organized by Compare Infobase, it was a conference on and about Twitter and how it is being used by Indians. It was organized as a panel discussion by some prolific tweeters from the country on 'Is Twitter Indian in Character?'.

The panelists included:

  • Kanchan Gupta - Associate Editor of the Pioneer
  • Saad Akhtar - Runs Flyyoufools.com, a popular, web comic
  • Pramit J Nathan - Heads Idea to Impact, a branding consultancy
  • Simarprit Singh - Founder of TwitSnaps.com, CEO- Compare Infobase Ltd
  • Lydia Polgreen - South Asia correspondent- New York Times
  • Sidin Vadukut - Managing Editor- Livemint.com at HT Media Ltd

The discussion started at around 3pm and continued till 6 in the evening. While there was not much new to the discussion and nor was anything new to learn about Twitter, there were some great insights into what Twitter is and how it is being used.

Twitter, for instance, was described as an experience in Chandni Chowk. Such is the social integration at Twitter that you are almost always with someone you know on Twitter. A phenomenon described as always being with someone you know.

But the business implications of Twitter were obviously the most interesting topic in the conference. A special emphasis was on how Twitter is an effective medium, but also were discussed the ethical issues of ghost-tweeting, or how celebrities outsource their tweeting  to social media agencies.

An example was given by Simarprit: to check if Mallika Sherawat tweets for herself, he asked her a question in Punjabi one day, after around 6 hours he got a very generic reply in English. Later in the night, he sent another tweet in Punjabi to her and got a prompt reply in Punjabi. He concludes that while sometimes Mallika herself tweets, during the day (at least) it is a social media agency tweeting for her.

Another issue discussed was how Guy Kawasaki and other famous Twitter Celebrities use Twitter. And it was an interesting point to be made that now Twitter is like a new Media Source - like a customizable headlines reel that can guide you to news you care about lightening fast. Another important point was - to be successful on Twitter, you need to understand why you are tweeting.

There were similar many insights into the social and Indian character of Twitter and why Twitter clicks in India.

If you are still not on Twitter, it would be a nice idea to join Twitter. You can find OSSCube at Twitter at @OSSCube

Tags
Events
CommentLeave Comment

11 things to keep in mind when writing your HTML

Posted by yadu on December, 14th 2009

We all know HTML; chances are that at least once in our life, we must've seen and worked with HTML or markups in general. For those of us doing any web development, we regularly eat, sleep and occasionally dream HTML, apart from other things. We might've learned these things during our years of working with markup; but just in case, so as not to forget, I'm writing them down.

  • HTML is for defining content! HTML markup is used to define your document and give it a semantic structure.
  • Know what each tag does, what all attributes they share and what makes them different. Understanding this will give you a clear idea of what type of tag you need to use with different types of data.
  • Using a strict DOCTYPE can save you a lot of trouble later.
  • Know and understand the Box Model.
  • Know and understand the difference between a block level element and an inline element.
  • Know and understand that certain elements can contain other elements while other cannot.
    - You can have multiple paragraphs in a div; But you cannot have a div inside a paragraph or a paragraph inside another paragraph
  • Use attributes and metadata and as much accessiblity information as possible. This can make your website accessible to anyone over any platform using any hardware
  • Keep in mind that each tag has a default set of attributes assigned to them and they can be manipulated using css later on if needed.
  • Just because a tag changes its appearance of its contents to something you want doesn't mean it can be used to do so. Tags are used to define the content they hold and Styles(CSS) are used to change its appearance.
  • Avoid applying inline css like the pleague! Absolutely no inline css, attributed or tags that affect the appearance of your output!!
  • Know when to use classes and Ids. Know the difference! Ids *must not* be used on more than one element. They have a higher precedence when it comes to styling.
    #container .myStyle { ... } will win over .myStyle { ... }

Apart from these, there might be more things you've come across, feel free to add them as a comment below.

Tags
Web Development

Suggested Reading
  • September 17, 2008 -- Web 2.0 Expo, September 16-19, New York
CommentLeave Comment

Yet another feather in our Chief Mentor's cap

Posted by kinshuk on December, 10th 2009

Folks, with great pleasure we’d like to break the news that Lavanya Rastogi, our chief mentor and cofounder, has been inducted as the Vice President for Global Networking in the Academy for Global Business Advancement (AGBA). Lavanya will now be responsible for propagation of AGBA agenda and initiative in various countries of the world, bringing closer the economies and forging mutual trade.

For the uninitiated, AGBA is a not-for-profit institution established in the year 2000 in Texas. Today it proudly boasts of more than 1000 members including scholars, corporate leaders, consultants, government officials, and entrepreneurs across more than 50 countries. By connecting scholars across developing countries with that of the developed world, AGBA seek to accelerate the process of globalization.

Speaking on the appointment, Prof. Zafar U Ahemed, President and CEO AGBA expressed his confidence on Lavanya to “bring in the much needed velocity, focus and sustainability.” This added responsibility comes in quick succession after Lavnya’s appointment as ACCS Executive Committee member. Here at OSSCube, we are confident that he will successfully continue with his role in building synergies among thought leaders in the academic and corporate fields of all parts of the world.

Tags
Life@OSSCube

Suggested Reading
  • January 11, 2010 -- Congratulation Mohit for joining the prestigious group of ISTQB Certified Testers
  • December 10, 2009 -- Yet another feather in our Chief Mentor's cap
  • November 02, 2009 -- ePrescribing – what, why and how?
  • November 02, 2009 -- I am Airborne!
  • October 20, 2009 -- HL7 Standards : A key to deal with healthcare interoperability issues
CommentLeave Comment

Wordpress is the Overall Best Open Source CMS 2009

Posted by kinshuk on December, 9th 2009

Wordpress – one of the most popular CMS of today has won the Overall Best Open Source CMS award for the year 2009. The Open Source Content Management (CMS) Award is an initiative of Packt Publishing – a long time supporter and promoter of Open Source projects and concepts. Since the award was launched in 2006, the awards have become an important event in the Open source calendar.

A visibly pleased Matt Mullenweg, founder of WordPress, responded to the news, “The entire WordPress community is honoured to accept this award.” Mullenweg further added, “Every day thousands of new people are embracing WordPress to power not just their blog but their entire website and community without compromising on usability or scalability as you would with a legacy CMS.”

MODx and Silverstripe tied for the first runner up position, after Wordpress.
ImpressCMS won the Most promising CMS Award, while, Pixie and Pligg tied for the first runners up.

Other winners included:
Drupal: (inaugural) Hall of Fame award, Best Open Source PHP CMS
Joomla: 2nd Runner Up (Open Source PHP CMS)
Plone: Best Other Open Source CMS

The award witnessed over 12,000 nominations and around 23,000 votes across the five categories.

Complete details are available on the Packt Publishing website.

Tags
Events , Open Source
CommentLeave Comment

Working with Zend Lucene Search

Posted by ankur on November, 19th 2009

Zend Search Lucene is a fulltext search engine written in PHP. It is an implementation of the java-based Apache Lucene in PHP. Lucene Search is a part of Zend Framework (ZF) and large chunks of ZF can be used as a standalone and integrated into any existing application.

Before getting into the minute details of ZSL, we should first understand what a fulltext search is. It is a combination of indexing content and then conducting search. For ZSL, index is made up of documents and these documents, in turn, contain fields, which contain content that is queried. In general, web applications deal with databases for keeping contents, so index is nothing but a table/view and documents are records in the table.

However, ZSL is not limited to index tables. We can index HTML documents, XLS sheets, Word Documents, Power Point slides, PDFs etc.

Present day web applications store content in powerful RDBMSs like MySQL/PostgreSQL having native support for fulltext search. This leads to a genuine confusion about why should the development team invest in a third party library for fulltext search?

ZSL wins over MySQL (and most popular RDBMS) for several reasons:

  • ZSL returns a ranked result-set.
  • ZSL searches for keywords in indexed documents stored within the file system at the webserver compared to fetching content from the DB over established connections. This makes ZSL faster than conventional search.
  • Fulltext search works with MyISAM storage engine only.
  • If document size increases, performance of search decreases drastically because indexes are cached in RAM.
  • INSERT in fulltext search table becomes very slow because of reformation of whole index.
  • In MySQL, there is no configuration for stop words and tokenizers, while in ZSL we can define our own stop words and tokens.
  • ZSL boasts of many advanced features like proximity search, wild card search, similarity search, range search, phrase queries etc.
  • ZSL has simple but very powerful query syntax.

Let us see how ZSL works. As discussed above, ZSL first processes an index and then queries search. So let us create the index first:


//Function to create index.
public function createindexAction() {
	Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());
	$patientModel = $this->_getPatientTable(); //Instantiate object of patient table.
	$patientArray = $patientModel->fetchAllRecordsForIndex();

	//Specify the path where indexes will be stored on file system.
	$patientIndexPath = Zend_Registry::get('configuration')->patient_index_path; 

	$index = new Zend_Search_Lucene($patientIndexPath,true);	
	foreach($patientArray as $patientRow) {
		$index->addDocument($this->generateZSLDocument($patientRow));
	}
	$index->commit();
	$index->optimize();
	echo "Indexes created successfully.";
}

public function generateZSLDocument($patientRow) {
	$doc = new Zend_Search_Lucene_Document();
		
	// Field is tokenized and indexed, and is stored in the index.
	$doc->addField(Zend_Search_Lucene_Field::Text('PTPTNO',$patientRow['PTPTNO']);
	$doc->addField(Zend_Search_Lucene_Field::Text('PTPLN', $patientRow['PTPLN']);
	$doc->addField(Zend_Search_Lucene_Field::Text('PTPFN', $patientRow['PTPFN']);
	$doc->addField(Zend_Search_Lucene_Field::Text('PTPDOB', $patientRow['PTPDOB']);
	$doc->addField(Zend_Search_Lucene_Field::Text('PTPSSN', $patientRow['PTPSSN']);
		
	// Field is tokenized and indexed, but is not stored in the index.
	$doc->addField(Zend_Search_Lucene_Field::UnStored('PTCHRT', $patientRow['PTCHRT']);
	$doc->addField(Zend_Search_Lucene_Field::UnStored('PPPHPH', $patientRow['PPPHPH']);
	$doc->addField(Zend_Search_Lucene_Field::UnStored('PPPWPH', $patientRow['PPPWPH']);
	$doc->addField(Zend_Search_Lucene_Field::UnStored('PPPCPH', $patientRow['PPPCPH']);
	return $doc;
}

While adding the fields to the document, it is very important to specify the appropriate field types. Remember: larger the index, slower the response. Indexes are meant for searching and not for bulk storage.

If we have three fields in a table (file_id, file_name, file_data) and we want to fetch the name of the file whose content is the closest match for the query. Then, we should specify file_id as keyword, file_name as UnIndexed, and file_data as UnStored. The query will return the file_ids, file_names and later if we would be interested in fetching file content then we can hit to the db table to fetch the content of that particular file.

In order to understand different field types, just have a look at the following table:

  stored indexed tokenized
Keyword yes yes no
UnIndexed yes no no
Binary yes no no
Text yes yes yes
UnStored no yes yes

How to Fetch from indexes created above:


public function patientsearchAction() {
	$field              =   $this->_getParam('fieldToSearch');
	$str                =   strtoupper(trim($this->_getParam('searchStr'))).'*';
	
	Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());
	$this->_helper->layout->disableLayout();
	$this->_helper->viewRenderer->setNoRender(true);
	if ($field == 'PHONE') {
		//pattern to remove any special char from phone number.
		$str = preg_replace('/[\s]*[(]*[)]*[-]*/', '', $str); 
		$query = new Zend_Search_Lucene_Search_Query_Boolean();
		$field    =   "PPPHPH";
		$queryPattern = new Zend_Search_Lucene_Index_Term($str, $field);
		$subQuery = new Zend_Search_Lucene_Search_Query_Wildcard($queryPattern);

		//Null specifis that this is neither required nor prohibited.
		$query->addSubquery($subQuery, NULL); 
		$field    =   "PPPWPH";
		$queryPattern = new Zend_Search_Lucene_Index_Term($str, $field);
		$subQuery = new Zend_Search_Lucene_Search_Query_Wildcard($queryPattern);
		$query->addSubquery($subQuery, NULL);
		$field    =   "PPPCPH";
		$queryPattern = new Zend_Search_Lucene_Index_Term($str, $field);
		$subQuery = new Zend_Search_Lucene_Search_Query_Wildcard($queryPattern);
                              $query->addSubquery($subQuery, NULL);
	} else {
		$pattern = new Zend_Search_Lucene_Index_Term($str, $field);
		$query = new Zend_Search_Lucene_Search_Query_Wildcard($pattern);
	}
	
	$hits = array();
	
	if ($query) {
		$index = new Zend_Search_Lucene(Zend_Registry::get('configuration')->patient_index_path);
		$hits = $index->find(strtoupper($query));
	}
            
	$PatientArray = Array();
	$totalRecords = count($hits);
	$i = 0;
	foreach ($hits as $hit) {
		$PatientArray[$i]['PTPTNO'] = $hit->PTPTNO;
		$PatientArray[$i]['PTPLN'] =  $hit->PTPLN;
		$PatientArray[$i]['PTPFN'] = $hit->PTPFN;
		$PatientArray[$i]['PTPDOB'] =  $hit->PTPDOB;
		$PatientArray[$i]['PTPSSN'] = $hit->PTPSSN;
	}
	$jsonData = Zend_Json::encode($PatientArray);
	$this->_response->appendBody($jsonData);
}

ZSL index segment is not updatable by nature so adding a new document to an index always generates a new segment. This in turns decreases the index quality. So, in order to increase the performance, optimize the index which actually merges the indexes.


//Function to update index. This function is called for both add/edit patient.
public function updateindexAction() {           
	$patientIdToUpdate = $this->_getParam('PTPTNO');
	Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());
	$patientIndexPath = Zend_Registry::get('configuration')->patient_index_path;
	$index = Zend_Search_Lucene::open($patientIndexPath);
	$hits = $index->find('PTPTNO:' .$patientIdToUpdate);

	//Delete index document for the updated patient.
	foreach ($hits as $hit) {
		$index->delete($hit->id);
	}

	$patientModel = $this->_getMpatTable();
	$patientArray = $patientModel->fetchPatientById($patientIdToUpdate);
	$index->addDocument($this->generateZSLDocument($patientRow));
	$index->commit();
	$index->optimize();
	echo "Indexes updated successfully.";
}

Few quick points to be aware of:

  1. Index quality is completely determined by number of segments.
  2. Index size is limited by 2GB for 32 bit platform.
  3. Index optimization is a process of merging several segments into one.
  4. Minimum length of search word is 3 but is configurable.

The blog post is based on excerpt of a session by Ankur Aeren on Zend Lucene Search made at OSScamp Delhi September 2009.

Tags
PHP , Zend
CommentLeave Comment

OpenSQL Camp - Free Conference of, by and for the Open Source Database Community

Posted by kinshuk on November, 3rd 2009

OpenSQL Camp 2009 in Portland, OR

The OpenSQL Camp series of unconferences is organised by the Open Source Databases Community worldwide. These camps are being organised since 2008.

OpenSQL camps are free events, formatted like unconferences (eg: BarCamp, OSScamp) – a judicious blend of spontaneity and pre-planning. The event of 2009 in Portland is targeted at users and developers of Databases and will see plenty of presentations and hackathons.

The event is scheduled for November 14-15 this year. Sessions will include talks on Sphinx, MySQL, SQLite and much more. Around 120 participants are expected at the camp.

November 13th, 2009
6PM - Midnight (Dinner party)
Old Town Pizza, 226 NW Davis
Portland, Oregon 97209

November 14th and 15th, 2009
9AM - 5PM (OpenSQL Camp)
Souk, 322 NW 6th Avenue, Suite 200 (between Everett + Flanders)
Portland, Oregon 97209

To make a successful event, the organisers need to focus on organising the event and planning the logistics. To keep it free for participants, they need support from the Industry. OSSCube is proud to be a sponsor of OpenSQL Camp Portland 2009, along with the likes of Facebook, Google, Sun MySQL, Open Query, and O'Reily.

More details on: http://opensqlcamp.org/Events/Portland2009/
OpenSQL Mailing list - http://groups.google.com/group/opensqlcamp
OpenSQL on Twitter - http://twitter.com/opensqlcamp
OpenSQL on IRC - #opensqlcamp on http://freenode.net/

Tags
Events , MySQL , Open Source
CommentLeave Comment

ePrescribing – what, why and how?

Posted by pranab on November, 2nd 2009

Electronic prescribing or “e-prescribing” is simply an electronic way to generate prescriptions through an automated data-entry process utilizing e-prescribing software and a transmission network which links to participating pharmacies.

A more formal definition could be
E-prescribing means the transmission, using electronic media, of prescription or prescription-related information between a prescriber, dispenser, pharmacy benefit manager, or health plan, either directly or through an intermediary, including an e-prescribing network. E-prescribing includes, but is not limited to, two-way transmissions between the point of care and the dispenser.

It is estimated that approximately 7,000 deaths occur each year in the United States due to medication errors. These errors are predominately due to hand-writing illegibility, wrong dosing, missed drug-drug or drug-allergy reactions. With approximately 3 billion prescriptions written annually, which constitutes one of the largest paper-based processes in the United States, the writing of prescriptions can be streamlined and made efficient by using an e-prescribing system. Also, e-prescribing could be the solution to improve patient safety and reduce medication costs due to better formulary compliance also improving utilization of generics.

The benefits of ePrescribing are spread across all participants in the healthcare system, including physicians, office staff, patients, pharmacies, and health plans service providers.

Providers benefit from ePrescribing by:

  • Obtaining real-time information about potential drug-drug and drug-allergy interactions. This minimizes calls from pharmacies and reduces potential adverse drug events.
  • Reducing handwriting interpretation errors, estimated to cause 9% of all medication errors.
  • Seeing plan formulary requirements (prior authorization, quantity restrictions, non-covered drug, and drug tier) at the point of care, giving the patient faster access to cost-effective care.
  • Seeing a patient’s dispensed drug history, thereby enabling the prescriber to make clinically appropriate decisions at the point of care.
  • Knowing when an FDA Safety Alert has been issued, and allowing them to generate a report of all patients on the drug without needing to pull patient charts.
  • Increasing the convenience and efficiency of the prescription-writing process.

Office staff benefit from ePrescribing by:

  • Reducing calls from pharmacies regarding non-covered medications and handwriting questions.
  • Speeding the prescription renewal process by reducing the need to pull patient charts. Case studies suggest a savings of 1-2 hours/day for office staff.
  • Eliminating calls from patients who are requesting an alternative covered medication or need the prescriber to request prior authorization.

Patients benefit by:

  • Having lower out-of-pocket costs when prescribers respond to ePrescribing formulary messages
  • Saving time at the pharmacy by having prescriptions sent prior to patient arrival, and reducing the potential for two trips because prescribers more frequently adhere to health plan requirements.
  • Reducing potential for adverse drug events caused by drug-drug or drug-allergy interactions, mistaken handwriting, or incorrect dosage.
  • Increasing compliance with prescribed treatment because care is cost-effective and convenient.

Pharmacies benefit by:

  • Reducing phone calls to physicians regarding handwriting interpretation, non-covered drugs, and prior authorization requirements.
  • Improving customer relationships by speeding the time it takes patients to obtain prescriptions.
  • Reducing data entry when prescriptions are received electronically.
  • Reducing potential errors caused by handwriting misinterpretation and keystroke errors.

Payers/Employers benefit by:

  • Maintaining affordability by increasing utilization of generic and preferred brand drugs.
  • Reducing costs associated with adverse drug events.
  • Increasing patient compliance with prescribed treatment plan.
  • Increasing provider efficiency by allowing providers to spend more time on patient care.

A “qualified” e-prescribing system must be capable of performing all of the following functions:

  • Generating a complete active medication list incorporating electronic data received from applicable pharmacy drug plan(s) if available
  • Selecting medications, printing prescriptions, electronically transmitting prescriptions, and conducting all safety checks (safety checks include: automated prompts that offer information on the drug being prescribed, potential inappropriate dose or route of administration, drug-drug interactions, allergy concerns, or warnings or cautions)
  • Providing information related to the availability of lower cost, therapeutically appropriate alternatives (if any)
  • Providing information on formulary or tiered formulary medications, patient eligibility, and authorization requirements received electronically from the patient’s drug plan

To get started with e-prescribing, please take the following steps:

  1. Decide whether you wish to choose a stand-alone e-prescription software or a full EHR or EMR system which includes e-prescribing functionality.
  2. Choose an e-prescribing software vendor. The e-prescribing vendor will need to utilize a company which supplies the electronic prescribing network (hub or gateway for transmissions). There are a few different e-prescription networking companies. Among the industry leaders are SureScripts (http://surescripts.com/), RxHub (http://www.rxhub.net/index.html), and ProxyMed (http://www.proxymed.com/). It is unlikely that physicians would have any reason to have direct contact with the electronic networking vendor. SureScripts, the nation’s largest electronic prescribing network, provides a true, seamless electronic connection between physician offices and pharmacies. This network provides secure and reliable two-way transmissions between physicians and pharmacies. More than 85% of chain and independent pharmacies have tested and certified their systems to connect to the SureScript electronic prescribing network.
  3. Install an internet connection; high speed is highly recommended.
  4. Purchase hardware such as desktop PC’s, laptops, pocket PC’s, tablet PC’s , PDA’s utilizing a wired or wireless network.

Although there are a few barriers like cost, Prohibition on use of e-prescribing for controlled substances and Technical limitations, the benefits substantially out number them making e-Prescription highly recommendable.

Tags
Life@OSSCube

Suggested Reading
  • January 11, 2010 -- Congratulation Mohit for joining the prestigious group of ISTQB Certified Testers
  • December 10, 2009 -- Yet another feather in our Chief Mentor's cap
  • November 02, 2009 -- I am Airborne!
  • October 20, 2009 -- HL7 Standards : A key to deal with healthcare interoperability issues
  • October 14, 2009 -- Pathway to CCHIT Certification
CommentLeave Comment

I am Airborne!

Posted by lavanya on November, 2nd 2009

October 03

After the hectic packing...rushing to airport....last minute discussion's with Vineet, I am finally airborne!

Just finished watching the movie "The Hangover” Got curious about how many more miles to London. I checked the map. Low and behold! I am 10,000 feet above somewhere between Tehran (Iran) and Baghdad (Iraq).

Wow! I wouldn't want to jump out of the window here ! The map also shows me that I would have flown over Pakistan, Afghanistan and will fly over the Black sea, Turkey and Continental Europe before I get to London.

It’s funny how a simple thing as height can change perspectives. With the regular route I don't think I would fancy my chances going through Pakistan, Afghanistan, Iran and Iraq on same day. I guess the wise men have it right...security is finally a state of mind.

Anyhow, I am looking forward to meet the rest of the delegation from NASSCOM drawn equally from SME sector and large IT companies. It would be nice to know, how the last few quarters has been for everybody and may benefit from any insights these companies may have received.

Europe market for IT Services has always been different and in some ways – still nascent and somewhat unexplored by Indian companies. Unlike US, which till recently gave us most of IT exports from India with almost all large Indian IT companies having setup local deliver center, Europe has been mostly local company play. The IT landscape here is mostly dotted with small to medium indigenous or local IT companies that have expanded pan EU in last decade or so. There is a fair degree of protectionism that one sees in local laws and even European customers want a near shore delivery. Not to mention the fact that language still is a major issue.

The itinerary is power-packed with meeting with trade bodies, partner companies, regulators, law makers and lots of other stuff that promises to be exciting. Will try to steam moments to share with you what is happening here.

October 06

We landed in London in the pleasantly cool weather. My first thoughts, “There are SO MANY INDIANS here! It isn't how I remembered London last” Anyway, I took the EUROSTAR – a real technology marvel. It's a train that connects London and Paris, covering the distance in a little over two hours...and travels below the sea!

Awesome experience of how distances can be bridged.

Paris never seems to get tired of its romantic appeal. Being an ardent admirer of Da Vinci and other renaissance masters, I am partially qualified to give a guided tour of the Parisian architecture. But I am really excited this time to see how the business environment of Paris functions. There is a perception that the European labor laws are very protectionists in nature and hence comes in the way of a competitive services economy. My impression of what I have seen in Paris Chamber of Commerce and Industries and Invest in Paris HQ is that, protection or no protection, France is becoming increasingly aware of the potential of Inward investment and going out of its way to facilitate it!

We just finished listening to Fancoise Benaud, the GLOBAL Chairman of Steria and Mukesh Aghi, the CEO of Streia India (Streia took over Xansa and have facilities now in NCR, Pune and Bangalore).

The bonhomie is evident between Som, Franchoise and Mukesh Aghi. We are all clapping in the background! It was a really inspiring speech from a Visionary ! No wonder Steria has outlasted its competition. They’ve just celebrated their 40th Birthday!

We got a taste of international diplomacy and protocol in the meeting with HE Sri Rajan Mathai, Indian Ambassador to France. He shared his deep insight and vision about the multifaceted Indo-French relationship, and also hosted a Indian LUNCH for us (great food...specially after three days of Pasta and smelly cheese)

HE Ranjan Mathai - standing between Som and Me.

Presentation form "Invest in Paris", I am convinced.....Vineet, where is our check book!

How can Paris be completed without the Eiffel Tower? Since it’s my third trip to Paris, I did not climb it anymore. We also walked down the Champs De Elyse, the Palace and the Louvre!

Taking a walk through Central park just next to the Lovers

Paris Leg is over! Everyone is excited to going shopping soon. I am looking forward to the lunch! To each one his own!

October 7th

Took the EUROSTAR once more and arrived back in London…..getting used to the SMALL (Pigeon hole) sized rooms in Central London hotel. My reaction again was, “Why so many Indians?”

The itinerary of London leg has also been jam packed.  We have had meetings with Intellect, the counterpart of NASSCOM in India, it was great to exchange notes with companies of similar stage of growth from UK and got a view of how the domestic Indian IT services market looks from the far.  I was impressed with the quality of mentoring available to SME and Entrepreneurs from the Ecosystem and how far the government really goes to support any business which has the potential of eventually becoming a successful enterprise and employment generator.

I seem to have a penchant for attracting work.  Mr. Som Mittal, President NASSCOM had to rush home and I got nominated as the Delegation Leader…so I’ll now have to fulfill all his speaking engagement!

Here I am delivering an invited talk on “Opportunities for ICT Innovation in India” at Kingston Smith offices in London. Believe it or not, I had only five minutes notice for delivering this 20 minutes talk.

Here I am talking again on how SME’s can prepare themselves as investor (at the offices of ALMT Legal), friendly companies and access new markets. This was followed by expert comments on “Indian Innovation Ecosystem”.

In three days I have delivered five talks…phew!!!

After a week of cold food even “Haldiram Moong Dal” is very tasty!

Just outside the office of Think London. We just finished a seminar by UK Trade and Investment Commission about the Tax Laws and Incubation system in the UK. Believe it or not, as an Indian-IT professional, it’s possible to live and work in London, drawing an UK salary and paying NO TAXES!! May be we should move there soon! Also, the new incubation scheme of SME’s has convinced me that we need to setup in London ASAP.

Just got off the phone with Vineet, checking if he can make it to the UK around the time of my return journey. UK has the potential to be an access or gateway to the rest of Europe as you become a part of the EU Economic Zone!

Tags
Life@OSSCube

Suggested Reading
  • January 11, 2010 -- Congratulation Mohit for joining the prestigious group of ISTQB Certified Testers
  • December 10, 2009 -- Yet another feather in our Chief Mentor's cap
  • November 02, 2009 -- ePrescribing – what, why and how?
  • October 20, 2009 -- HL7 Standards : A key to deal with healthcare interoperability issues
  • October 14, 2009 -- Pathway to CCHIT Certification
CommentLeave Comment

Migrating Data to MySQL

Posted by anil on October, 28th 2009

Migration essentially means the process of transferring data between storage types, formats, or computer systems. This post will divulge on why and how you should migrate to MySQL from any other database system.

Why MySQL?
This is the first question that will arise when a user wants to migrate databases. Why should you choose MySQL over other options? Some of the main reasons are:

  • Cost- This is an important reason to choose. While other DBMS need money to buy license, one can simply download MySQL and use it.
  • EOL H/W and S/W- Life of H/W is limited, so is the expiration date of S/W license. If you want to continue with your existing infrastructure, then future planning for the environment might be little tricky.
  • Integration to newer system- If you want to integrate a new system but don’t want to invest more
  • Supports all features now – MySQL supports all major features now, including Replication, Partition, Clusters etc
  • Trend- Trends for using MySQL, migration to MySQL are going high due to all of the above reasons.

Yet, migration can be a tricky job. The following checklist will be definitely of help during the process.

Migration Checklist
What to check when you migrate your database to MySQL? Ask yourself the following questions:

  • What are the characteristics of the application?

    OLTP, Data warehouse etc
  • How quickly do I need to migrate?
    Weeks, Months
  • What tools are available to perform the migration?

    ETL, Scripts, ER Tools, Manual
  • How many objects will be migrated?
    Tables, Indexes, Views, Stored Procedures

    Triggers, Sequences, Others
  • How large is the database?
    MB, GB, TB
  • Am I looking to increase capacity or scalability?

    If so, by how much?
  • How many concurrent users will there be?

Keeping these points in mind will help you a great deal to simplify your database migration experience.

While we are discussing migration, a quick overview of the Data Migration Life Cycle will also be useful.

Data Migration Life Cycle

The Life cycle contains five distinct steps:

  1. Document Source: - Document the Source from where you want to migrate your database. How many object does it contain? What is the relation between these objects? What are the different rules?
  2. Design targets: - Design the targets for migration. How many objects do you want from your source? What relations you want from existing database? Do you want to modify any existing relation? Want to drop/add any existing relation, rules?
  3. Design ETL Flow: - Design the ETL (Extract, Transform and Load) flow for migration. How do you want to extract? How do you want to transform the objects?
  4. Build/Run Migrations: – After successful completion of above steps (document source, Design target, designs ETL), execute the plan for how you want migrate.
  5. Performance Test: – After successful migration of your database (One DBMS to another, One System to another), you must check the performance of system.

MySQL is available without cost, so people just download it and start using without taking proper care to optimize their installations. After some time they will invariably start seeing drops in performance. Optimizing your installation before using it is highly recommended. Before performance testing, you must optimize your installation by analyzing previous data.

Considering the migration check list and the life cycle, we will see how we can migrate a database from Oracle to MySQL.

Data migration from Oracle

How to Migrate?

This is the most important question in mind when you want to migrate your database. You can migrate your database Manually or use tools to do an Automated migration.

Manually: -

If you want to migrate your database manually, you will have to follow the following steps:

  1. Get equivalent Datatypes
  2. Get equivalent functions
  3. Get equivalent syntaxes
  4. Find out alternates, if no option is available
  5. Convert your objects using script
  6. Convert your queries
  7. Extract data from existing system
  8. Check performance
  9. Your system is ready to work.

It is a time consuming process. So, plan with ample time in hand.

Automated: -

There are various tools available for database migration that can be used for automated migrations. Following is the list of tools

  • MySQL Migration tool kit- This is a freely available tool from MySQL. It converts only your tables and relations to MySQL.
  • SwissSQL- It converts tables, views and queries
  • SQLWays- It converts tables, views, relation, stored procedure, functions and Sequence. It will not convert packages and triggers.

Constraints with MySQL

Even though managing databases with MySQL sounds tempting and economic, MySQL has a number of constraints that should be considered when planning database migration. MySQL contains a wide array of new features, still there are some things that are missing in MySQL till now. Some of them are:

  • Package
  • No Raise error capability
  • Mail sending
  • Application error generation
  • Exception handling

The blog post is based on excerpt of a session by Anil Yadav on Data Migration to MySQL made at OSScamp Delhi September 2009.

My Sql Data Migration
View more presentations from Anil Yadav.
Tags
Events , MySQL
CommentLeave Comment

HL7 Standards : A key to deal with healthcare interoperability issues

Posted by pranab on October, 20th 2009

Interoperability is a fundamental requirement of electronic medical record (EMR) adoption for the social and economic benefits that we always look for and we may like to define interoperability as layman’s interpretation “a common language for communication that is understandable to all the participating parties” and as a technical interpretation “a common communication protocol that is adopted by the participating software or computer applications”. In the healthcare domain there are number of process specific applications that participate in the overall process of maintaining the health record of a person and information exchange between them is highly required with data integrity, productivity, efficiency and ease of use. Systems like Hospital Information System (HIS), Electronic Health Record (EHR)/ Electronic Medical record (EMR), LAB, ePrescription and/or Pharmacy Application, Practice Management Software (PMS) or Billing Software, Radiology, Insurance service Provider or Payer and National Health Information registries like National Immunization Registries etc. are all engaged in managing respective piece of health record of a patient and they necessarily to communicate to each other either in the form of paper document and manual feeding or electronic data communication. Example of the sets of data that need to be shared or pushed/pulled between these systems are like Demographic information, appointment information, billing information from EHR/EMR to PMS and then to the payer, Continuity Care Document (CCD), which is a complete health history of a patient, from clinic to clinic, provider to provider or hospital to hospital or combination of them, lab/radiology orders from clinic to lab/radiology practice and their respective report back to the clinic, drug orders from clinic to pharmacy and Rx filling status back to the clinic etc., in short a long list of information.

There are two type of interoperability a) functional interoperability, people or computers to be able to share clinical data with one another havening functions to be able to physically communicate, e.g. speak & hear, send and receive documents and data files, share data and information, b) semantic interoperability, speak a common language (in terms of nouns, verbs, grammatical structure, etc.) and share the same vocabulary that allows them to understand complex medical conditions and processes.

As a solution for the above information exchange requirements, Health Level 7 (HL7) standard was evolved. A group of healthcare computer systems users started developing the HL7 protocol in 1987 to create a common "language" that allows healthcare applications to share clinical data with each another. Over time the HL7 interoperability protocol became an internationally and globally accepted and accredited standard. HL7 is a Standards Developing Organization accredited by the American National Standards Institute to author consensus-based standards representing a broad view from healthcare system stakeholders. What this definition means from a practical standpoint is that HL7 has compiled a collection of message formats and related clinical standards that loosely define an ideal presentation of clinical information, and together the standards provide a framework in which data may be exchanged. From 9 Affiliates in 1999, HL7 has grown to ~30 international affiliates in 2006. Currently, the worldwide membership is over 4,400. The global scope also involves increased collaboration with other regional and international standards organizations, such as CEN in Europe and the International Standards Organization (ISO). HL7 has achieved ISO status for its standards and is moving toward harmonization with the CEN standards.

The "Level Seven" refers to the top level of the seventh layer International Standards Organization's (ISO) communications model for Open Systems Interconnection (OSI) - the application layer. The application level addresses definition of the data to be exchanged, the timing of the interchange, and the communication of certain errors to the application. The seventh level supports such functions as security checks, participant identification, availability checks, exchange mechanism negotiations and, most importantly, data exchange structuring. (More info on the 7-layer ISO communications model at: http://en.wikipedia.org/wiki/OSI_model)

Consider any of the popular de facto standards in use today: TCP, IP, HTTP, HTML, POP, telnet, Windows, or even the ASCII character set. They all are valuable because the user base has grown to be large and the standards work in the real world. Similarly, the Network Effect for HL7 would come if many healthcare applications started using it. Ultimately, HL7 balanced the points that drove its creation: Solve 80 percent of the clinical interfacing problem in a flexible way using a consensus, volunteer-driven process. The focus was on making the standard easy to adopt so that the Network Effect would occur and create a significant cost savings as quickly as possible.

Tags
Life@OSSCube

Suggested Reading
  • January 11, 2010 -- Congratulation Mohit for joining the prestigious group of ISTQB Certified Testers
  • December 10, 2009 -- Yet another feather in our Chief Mentor's cap
  • November 02, 2009 -- ePrescribing – what, why and how?
  • November 02, 2009 -- I am Airborne!
  • October 14, 2009 -- Pathway to CCHIT Certification
CommentLeave Comment
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • next ›
  • last »

Connect with us…

  • OSSCube Community Initiative "OSSCamp"
  • OSSCube in Video
  • OSSCube in Pictures
  • OSSCube Slideshare Channel

  • Subscribe…

    • Receive Blog Updates as Feed
      ( Subscribers Subscribers)
    • Receive Blog Updates as Email
    • Follow OSSCube on Twitter
      (1142 Followers)
    • Latest News
    • Polls
    • Upcoming Events
    • Videos

    • Experiences at India Twitter Conference
    • 11 things to keep in mind when writing your HTML
    • Yet another feather in our Chief Mentor's cap
    • Wordpress is the Overall Best Open Source CMS 2009
    • Working with Zend Lucene Search

        • Experiences at India Twitter Conference
        • Wordpress is the Overall Best Open Source CMS 2009
        • OpenSQL Camp - Free Conference of, by and for the Open Source Database Community
        • Migrating Data to MySQL
        • OSScamp goes to Chandigarh

        Latest In Photos

        Authors

        • kinshuk
        • sonali
        • vineet
        • lavanya
        • yadu
        • priyanka
        • pranab
        • anil
        • ankur

        Tags

        • Careers
        • Drupal
        • Events
        • Life@OSSCube
        • Linux
        • MySQL
        • Open Source
        • ORM
        • PHP
        • platforms
        • sugarCRM
        • Symfony
        • testing
        • Training
        • Web Development
        • Zend

        Archives

        • January 2010 (3)
        • December 2009 (5)
        • November 2009 (4)
        • October 2009 (10)
        • September 2009 (3)
        • June 2009 (2)
        • May 2009 (6)
        • April 2009 (2)
        • March 2009 (9)
        • February 2009 (11)
        • January 2009 (1)
        • December 2008 (4)
        • November 2008 (5)
        • September 2008 (2)
        • July 2008 (3)
        • June 2008 (4)
        • May 2008 (3)
        • February 2008 (2)
        • December 2007 (8)
        • October 2007 (1)
        • July 2007 (7)
        • June 2007 (2)


        Home  |   Careers  |   About Us  |   Contact Us
        All Rights Reserved. ©2009, OSSCube.