Medical systems require the end-to-end high availability and scalability. There are many components in a medical system, and each individual component contributes to the overall system availability and scalability. We present the formulas to assess the overall system availability and capacity planning, and we architect approaches and technologies to make all components highly available in all tiers by clustering, workload management, and replication. We discuss how to unify all medical systems and design the uniform framework for different kinds of medical systems to hook up with this framework so that we can maintain a highly available and highly scalable system with ease. We use the n-tier distributed component based architecture and J2EE technologies as well as Web services to interact with .NET and others. We discuss how to program in the framework for high availability and scalability and how to upgrade application software without service interruption to achieve continuous availability. We show how to add or reduce hardware capacity in each tier and how to maintain hardware and software without service interruption as well as how to balance the capacity and availability among tiers.