CCS - SUS: A Consortium for Healthcare Software Components

Pablo J. Madril1, Beatriz deF. Leão1; Paulo R Lopes 1,
Daniel Sigulem1,Ernani Bento Bandarra2
1Health Informatics Center - Federal University of São Paulo - UNIFESP São Paulo, SP - Brazil
2 DATASUS - Ministry of Health - Rio de Janeiro - RJ, Brazil

This paper describes the creation of CCS-SUS a consortium to build a pattern-based suite of software components for the Brazilian national healthcare system. The difficulties in developing components that need persistence in a database are addressed. The problems and the lessons so far learned in the development of these components are discussed.


To develop healthcare applications for the Brazilian National Healthcare System (SUS - Sistema Único de Saúde: is not an easy task. The domain complexity associated to sparse human resources, distributed geographically, are some of the issues we have to consider. The Brazilian Healthcare model has a comprehensive coverage: anybody can have medical assistance in any of the 6000 hospitals of the national healthcare network. There are 7500 hospitals in Brazil - most of them work for SUS and are paid directly from the federal government. DATASUS is the ministry of health official authority to process all healthcare data in the country, from hospital stay to primary care programs. From these 6000 hospital more than 70 % of them have less than 100 beds and very few informatics infrastructure. Most of them only have the system offered (for free) by DATASUS to manage the patients’ bills for reimbursement. Presently the centralized model is being replaced by a distributed one, where the municipal health authorities will manage their resources. The federal level will pay to the municipal administration based on its population. A unique identifier has recently been created. Still, some information needs to be sent to the DATASUS computers. This distributed environment creates a new challenge for software development and for adequate deployment. In order to minimize some of these problems, DATASUS, together with the Federal University of Sao Paulo and the Brazilian Society for Health Informatics created CCS-SUS - a consortium to build a pattern-based suite of software components for the Electronic Patient Record (EPR). CCS-SUS mission is to specify and implement software components to support the needs of SUS. The first design decision was to agree upon a robust software architecture to keep up with a five year development. In addition, it was decided that, whenever possible, the design would incorporate available patterns and standards for the representation of healthcare data such as ASTM, HL7 and CORBAmed. It was also decided that all products of this consortium would be of public domain, according to the GNU General Public License.

The consortium main concern is to develop solutions that can be affordable for a wide community that has different levels of human and financial resources. The idea is to distribute these components nationwide so that small companies with little experience with the new technologies could easily assemble software. To achieve that another major decision was made: all components are being developed in a common and popular environment in Brazil - Borland’s Delphi. Why? Because there are many programmers that know how to work with components under the Delphi environment but cannot do that in C++ under UNIX. Of course this competency exists in Brazil but not as spread as the PC culture. Another reason was that this environment, instead of others RAD for Windows, offered the proper object-oriented features necessary to train developers to migrate smoothly to a fully component-based approach of software development at the same time that obliged them to understand what a typed environment means.

CCS-SUS development process uses the OMG’s a request for proposals process to establish the consensus. The participation in the consortium is opened to any institution involved in healthcare informatics, private, public or even individual participation is welcomed. The following rules apply for the proposal submissions: the modeling should be in UML and the interfaces described in IDL. For those who wish to also implement it is necessary to make the components persistent in a RDBMS through standards ODBCs; applications should evolve to validate the interfaces and, the code should be ported to C++ for larger interoperability.

Fast prototyping in Delphi is encouraged and as a matter of fact we’ve been working like that in the last year with reasonable success. So far, we have a handful of components defined to represent the patient, the local vocabularies and observations. Most of the problems we are facing refer to the components deployment, such as:

[1] the configuration of the final product is difficult because the many pieces that compose the middleware with whom the component has to interact evolve asynchronously, leading to cumbersome situations where, for instance, a X.DLL is not right with an Y.NET version of the database client.

[2] in spite of all the talking and doing on standards, some vendors reinvent the wheel, like Borland BDE version of ODBC;

[3] Costs: there are many embedded costs that are uncertain and not clear in the development phase such as database drivers - in some situations these costs can invalidate the initiative;

[4] Internet is not a silver bullet when you are dealing with a not so well integrated communications system as in many LA countries (although we consider this as a minor and temporary problem specially to Brazil);

[5] The high amount of information (API and interface pollution) makes it difficult to implement a component for different environments such as JavaBeans, ActiveX and CORBA.

So far, we have only one certainty, models are the only thing that will survive in these changing times. Thanks to the UML effort, there is some light at the end of the tunnel, with at least a unified form of software documentation to rely upon.

Medicine is a rather complex domain where the translation of knowledge into software is a time consuming effort that demands a stable platform. CCS-SUS made, therefore, a commitment to CORBA and is trying to use CORBAmed specs as they became available because we consider this is the best choice, offering a robust architecture associated with many services.

We are aware this is a long road with fast moves and we’re just starting on it. The advantage we have is that there are very few legacy systems in Brazil in the healthcare scenario so we can start using the CORBA architecture as the infrastructure for healthcare applications. CCS-SUS is offering a precious opportunity of parallel and collaborative software development, which is a must for Brazil. Another important effect is the ability to encapsulate domain knowledge, enhancing quality of the final application at the same time that pushing the standards utilization in the country. For LA countries IT is the tool that can help to bridge the gap and make a difference in the regional healthcare indicators.

Although recent, we believe the CCS-SUS consortium will open new perspectives for software development in Brazil. We would like to share our experiences and learn with others in order to benefit as much as possible with the new scenario of compositional architectures.

  1. Fowler M. Analysis Patterns. Addison Wesley Publishing Company, Reading, Massachusetts, 1997.
  2. Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns - Elements of Resusable Object-Oriented Software. Addison Wesley Publishing Company, Reading, Massachusetts, 1995. Pg 163

  4. Coplien JO. Pattern Languages of Program Design, Eds. Addison-Wesley, Reading, MA, 1995.
  5. _ 1996 Annual Book of ASTM Standards - Volume 14.01 Health Care Informatics: Computerized Material and Chemical Property Data. ASTM, Easton,MD, 1996
  7. Siegel J. CORBA Fundamentals and Programming. John Wiley &Sons, Inc. 1996.
  8. LeãoBF, Madril P, Mendonca E, Lopes PR, Sigulem D.Pattern-based OCX components for the electronic patient record. JAMIA Supplement AMIA Fall Symposium 1997.
  Author's address: Pablo Madril
Centro de Informática em Saúde
Rua Botucatu 862 - Ed. Jose Leal Prado
Sao Paulo SP 04523-062
Phone: +55-11-576-4521 / 576-4561
FAX: +55-11-572-6601