Sunday, 16 October 2016

RESPONSIBILITY AND COLLABORATIONS OF HOSPITAL MANAGEMENT SYSTEM

1. Use Case Diagram

2. Class Diagram

3. CRC


4. Check Realization


 5. Sequence Diagram

Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar obyek dan mengindikasikan komunikasi diantara obyek-obyek tersebut. Diagram ini juga menunjukkan serangkaian pesan yang dipertukarkan oleh obyek-obyek yang melakukan suatu tugas atau aksi tertentu. Berdasarakan cara kerja dan Use case diagram. Dapat dinggambarkan Sequence diagramnya. 





 Berikut dilampiran sistem management hospital dalam bahasa C++

 #include<iostream>  
 #include<iomanip>  
 #include<conio.h>  
 #include<string>  
 #include<windows.h>  
 #include<fstream>  
 #include<process.h>  
 using namespace std;  
 class pat  
 {  
      private:  
           struct address  
           {  
                int house;  
                char street[30];  
                char city[30];  
                char state[30];  
                char country[30];  
           };  
           struct age  
           {  
                int day;  
                int month;  
                int year;  
           };  
           struct patient_info  
           {  
                char name[50];  
                address AD1;  //nested structure implemented  
                age A1;    //nested structure inplemented  
                int martial_status;  
                int reg_no;  
                int bld_group;  
                int sex;  
                char doctor[50];  
                char medrep[1000];  
           }PI[100];  
           int task;  
      protected:  
           void enter_patient_info();  
           void show_patient_detail();  
      public:  
           //void software_detail();  
           void tasks();  
           char answer;  
           char answer1;  
           //char ch;  
           int serial;  
 };  
 class date  
 {  
      private:  
           int date;  
           int month;  
           int year;  
      public:  
           void enter_date();  
           void show_date();  
 };  
 class dob  
 {  
      private:  
           struct dob1  
           {  
                int date;  
                int month;  
                int year;  
                int rem;  
           }DOB11[100];  
      public:  
           void enter_date();  
           void show_date();  
 };  
 int i=0;  
 int rem;  
 int count;  
 int regis=0;  
 int attempt;  
 int temp;  
 int show_count=0;  
 pat A1;      //object declared  
 date D1;     //object declared  
 dob DOB1;     //object declared  
 int main(void)  
 {  
      count=0;  
      cout<<"**********Welcome to....**********"<<"\n";  
      cout<<"***HOSPITAL MANAGEMENT SOFTWARE***"<<"\n";  
      D1.enter_date();  
      A1.tasks();  
 }  
 void pat::tasks()  
 {  
      attempt=0;  
      D1.show_date();  
      cout<<"**********************************"<<"\n";  
      cout<<"***HOSPITAL MANAGEMENT SOFTWARE***"<<"\n";  
      cout<<"*** Hospital Management Tasks ****"<<"\n";  
      cout<<"**********************************"<<"\n";  
      cout<<"  Please select a task to do.. "<<"\n";  
      cout<<"1. Enter a new patient information."<<"\n";  
      cout<<"2. View detail of existing patient."<<"\n";  
      //cout<<"3. View detail about the program ."<<"\n";  
      cout<<"3. Exit from the program."<<"\n";  
      //other function remain  
      cout<<"Enter your task :";  
      scanf("%d", &task);  
      getchar();  
      switch(task)  
      {  
           case 1:  
           {  
                A1.enter_patient_info();  
                break;  
           }  
           case 2:  
           {  
                A1.show_patient_detail();  
                break;  
           }  
           /*case 3:  
           {  
                A1.software_detail();  
                break;  
           }*/  
           case 3:  
           {  
                cout<<"Thank You for using this program !!!"<<"\n";  
                cout<<"     This is the end of program...."<<"\n";  
                cout<<"     Press any key to exit....."<<"\n";  
                getch();  
                exit(0);  
                break;  
           }  
           default:  
           {  
                //printf("%d", task);  
                cout<<"Invalid task."<<"\n";  
                cout<<"Press any key to continue...."<<"\n";  
                getch();  
                A1.tasks();  
           }  
      }  
 }  
 void pat::enter_patient_info()  
 {  
      answer='y';  
      if(count==0)  
      {  
           serial=1;  
      }  
      else  
      {  
           i=serial;  
      }  
      for(i=serial;answer=='y'||answer=='Y';i++)  
      {  
           PI[i].reg_no=i;  
           temp=serial;  
           cout<<"***ENTERING INFORMATION FOR PATIENT SERIAL NUMBER "<<i<<"***"<<"\n";  
           //cin.get(ch);  
           cout<<"Registration Number : "<<PI[i].reg_no<<"\n";  
           cout<<"Enter the name of patient :"<<"\n";  
           gets(PI[i].name);  
           cout<<"Sex (1-Male 2-Female) :"<<"\n";  
           scanf("%d", &PI[i].sex);  
           getchar();  
           while(PI[i].sex!=1&&PI[i].sex!=2)  
           {  
                cout<<"Invalid input for sex of patient!!!"<<"\n";  
                cout<<"Sex (1-Male 2-Female) :"<<"\n";  
                scanf("%d", &PI[i].sex);  
                getchar();  
                //break;  
           }  
           cout<<"***ENTERING ADDRESS**"<<"\n";  
           cout<<"House number :"<<"\n";  
           cin>>PI[i].AD1.house;  
           getchar();  
           while(PI[i].AD1.house<=0)  
           {  
                cout<<"Invalid input for house number ."<<"\n";  
                cout<<"Again enter the house number: "<<"\n";  
                cin>>PI[i].AD1.house;  
                //printf("%d", PI[i].AD1.house);  
                getchar();  
           }  
           //cin.get(ch);  
           cout<<"Street :"<<"\n";  
           cin.getline(PI[i].AD1.street,30);  
           cout<<"City :"<<"\n";  
           cin.getline(PI[i].AD1.city,30);  
           cout<<"State :"<<"\n";  
           cin.getline(PI[i].AD1.state,30);  
           cout<<"Country :"<<"\n";  
           cin.getline(PI[i].AD1.country,30);  
           DOB1.enter_date();  
           //to calculate age  
           cout<<"Martial status(1-Married,2-Not Married ):"<<"\n";  
           cin>>PI[i].martial_status;  
           getchar();  
           while(PI[i].martial_status<1||PI[i].martial_status>2)  
           {  
                cout<<"Invalid input for martial status ."<<"\n";  
                cout<<"Enter a valid martial status :"<<"\n";  
                cin>>PI[i].martial_status;  
                getchar();  
           }  
           cout<<"Blood group :"<<"\n";  
           cout<<"1. A+ "<<"\n";  
           cout<<"2. A- "<<"\n";  
           cout<<"3. B+ "<<"\n";  
           cout<<"4. B- "<<"\n";  
           cout<<"5. AB+ "<<"\n";  
           cout<<"6. AB- "<<"\n";  
           cout<<"7. O+ "<<"\n";  
           cout<<"8. O- "<<"\n";  
           cout<<"Enter :"<<"\n";  
           cin>>PI[i].bld_group;  
           getchar();  
           switch(PI[i].bld_group)  
           {  
                case 1:  
                case 2:  
                case 3:  
                case 4:  
                case 5:  
                case 6:  
                case 7:  
                case 8:  
                {  
                  break;  
                }  
                default:  
                {  
                     while(PI[i].bld_group!=1&&PI[i].bld_group!=2&&PI[i].bld_group!=3&&PI[i].bld_group!=4&&PI[i].bld_group!=5&&PI[i].bld_group!=6&&PI[i].bld_group!=7&&PI[i].bld_group!=8)  
                     {  
                          cout<<"Invalid input !"<<"\n";  
                          cout<<"Blood Group :"<<"\n";  
                          cin>>PI[i].bld_group;  
                          getchar();  
                     }  
                     break;  
                }  
           }  
           //cin.get(ch);  
           cout<<"Enter medical report for patient: "<<"\n";  
           gets(PI[i].medrep);  
           printf("Enter doctor name: \n");  
           gets(PI[i].doctor);  
           cout<<"Enter another patient? (Y/N) "<<"\n";  
           cin>>answer;  
           getchar();  
           count++;  
           serial++;  
           regis++;  
      }  
      A1.tasks();  
 }  
 void dob::enter_date()  
 {  
      cout<<"Date of birth"<<"\n";  
      cout<<"Year :";  
      cin>>DOB11[temp].year;  
      getchar();  
      if(DOB11[temp].year<=0||DOB11[temp].year>10000)  
      {  
           do  
           {  
                cout<<"Invalid input for year !"<<"\n";  
                cout<<"Please enter the year correctly :"<<"\n";  
                cin>>DOB11[temp].year;  
                getchar();  
           }while(DOB11[temp].year<0||DOB11[temp].year>10000);  
      }  
      cout<<"Month :";  
      cin>>DOB11[temp].month;  
      getchar();  
      if(DOB11[temp].month<=0||DOB11[temp].month>12)  
      {  
           do  
           {  
                cout<<"Invalid input for month !"<<"\n";  
                cout<<"Again enter the month :"<<"\n";  
                cin>>DOB11[temp].month;  
                getchar();  
           }while(DOB11[temp].month<0||DOB11[temp].month>12);  
      }  
      cout<<"Date :";  
      switch(DOB11[temp].month)  
      {  
           case 1:  
           case 3:  
           case 5:  
           case 7:  
           case 8:  
           case 10:  
           case 12:  
           {  
                cin>>DOB11[temp].date;  
                getchar();  
                while(DOB11[temp].date<1||DOB11[temp].date>31)  
                {  
                     cout<<"Invalid date !"<<"\n";  
                     cout<<"Again enter the date :"<<"\n";  
                     cin>>DOB11[temp].date;  
                     getchar();  
                }  
                break;  
           }  
           case 2:  
           {  
                cin>>DOB11[temp].date;  
                getchar();  
                if(DOB11[temp].year%4==0)  
                {  
                     while(DOB11[temp].date<0||DOB11[temp].date>29)   
                     //for leap year  
                     {  
                          cout<<"Invalid date !"<<"\n";  
                          cout<<"Again enter the date :"<<"\n";  
                          cin>>DOB11[temp].date;  
                          getchar();  
                     }  
                }  
                else  
                {  
                     while(DOB11[temp].date<0||DOB11[temp].date>28)   
                     //for non-leap year  
                     {  
                          cout<<"Invalid date !"<<"\n";  
                          cout<<"Again enter the date :"<<"\n";  
                          cin>>DOB11[temp].date;  
                          getchar();  
                     }  
                }  
                break;  
           }  
           default:  
           {  
                     cin>>DOB11[temp].date;  
                     getchar();  
                     while(DOB11[temp].date<1||DOB11[temp].date>30)  
                     {  
                          cout<<"Invalid date !"<<"\n";  
                          cout<<"Again enter the date :"<<"\n";  
                          cin>>DOB11[temp].date;  
                          getchar();  
                     }  
                     break;  
           }  
      }  
      //end of switch  
 }  
 void date::enter_date()  
 {  
      cout<<"Enter the current date ..."<<"\n";  
      cout<<"Year :";  
      cin>>year;  
      getchar();  
      if(year<=0||year>10000)  
      {  
           do  
           {  
                cout<<"Invalid input for year !"<<"\n";  
                cout<<"Please enter the year correctly :"<<"\n";  
                cin>>year;  
                getchar();  
           }while(year<0||year>10000);  
      }  
      cout<<"Month :";  
      cin>>month;  
      getchar();  
      if(month<=0||month>12)  
      {  
           do  
           {  
                cout<<"Invalid input for month !"<<"\n";  
                cout<<"Again enter the month :"<<"\n";  
                cin>>month;  
                getchar();  
           }while(month<0||month>12);  
      }  
      cout<<"Date :";  
      switch(month)  
      {  
           case 1:  
           case 3:  
           case 5:  
           case 7:  
           case 8:  
           case 10:  
           case 12:  
           {  
                cin>>date;  
                while(date<1||date>31)  
                {  
                     cout<<"Invalid date !"<<"\n";  
                     cout<<"Again enter the date :"<<"\n";  
                     cin>>date;  
                     getchar();  
                }  
                break;  
           }  
           case 2:  
           {  
                cin>>date;  
                getchar();  
                if(year%4==0)  
                {  
                     while(date<0||date>29) //for leap year  
                     {  
                          cout<<"Invalid date !"<<"\n";  
                          cout<<"Again enter the date :"<<"\n";  
                          cin>>date;  
                          getchar();  
                     }  
                }  
                else  
                {  
                     while(date<0||date>28) //for non-leap year  
                     {  
                          cout<<"Invalid date !"<<"\n";  
                          cout<<"Again enter the date :"<<"\n";  
                          cin>>date;  
                          getchar();  
                     }  
                }  
                break;  
           }  
           default:  
           {  
                cin>>date;  
                getchar();  
                while(date<1||date>30)  
                {  
                     cout<<"Invalid date !"<<"\n";  
                     cout<<"Again enter the date :"<<"\n";  
                     cin>>date;  
                     getchar();  
                }  
                break;  
           }  
      }          //end of switch  
 }  
 void date::show_date() //remove the goto ststements in this function  
 {  
      cout<<"Hello....It's ";  
      cout<<date;  
      rem=date%10;  
      switch(date)  
      {  
           case 11:  
           case 12:  
           case 13:  
           case 14:  
           case 15:  
           case 16:  
           case 17:  
           case 18:  
           case 19:  
           case 20:  
           {  
                cout<<"th ";  
                goto over;  
           }  
      }  
      switch(rem)  
      {  
           case 1:  
           {  
                cout<<"st ";  
                break;  
           }  
           case 2:  
           {  
                cout<<"nd ";  
                break;  
           }  
           case 3:  
           {  
                cout<<"rd ";  
                break;  
           }  
           default:  
           {  
                cout<<"th ";  
                break;  
           }  
      }  
      over:  
      switch(month)  
      {  
           case 1:  
           {  
                cout<<"January , ";  
                break;  
           }  
           case 2:  
           {  
                cout<<"February , ";  
                break;  
           }  
           case 3:  
           {  
                cout<<"March , ";  
                break;  
           }  
           case 4:  
           {  
                cout<<"April , ";  
                break;  
           }  
           case 5:  
           {  
                cout<<"May , ";  
                break;  
           }  
           case 6:  
           {  
                cout<<"June , ";  
                break;  
           }  
           case 7:  
           {  
                cout<<"July , ";  
                break;  
           }  
           case 8:  
           {  
                cout<<"August , ";  
                break;  
           }  
           case 9:  
           {  
                cout<<"September , ";  
                break;  
           }  
           case 10:  
           {  
                cout<<"October , ";  
                break;  
           }  
           case 11:  
           {  
                cout<<"November , ";  
                break;  
           }  
           case 12:  
           {  
                cout<<"December , ";  
                break;  
           }  
      }  
      cout<<year<<"\n";  
 }  
 void pat::show_patient_detail()  
 {  
      do  
      {  
           if(count==0)  
           {  
                cout<<"Database is empty !!!"<<"\n";  
                cout<<"Press any key to exit to main task menu..."<<"\n";  
                getch();  
                A1.tasks();  
           }  
           cout<<"Enter registration number :"<<"\n";  
           cin>>regis;  
           getchar();  
           //cin.get(ch);  
           show_count++;  
           if(regis>0 && regis<serial)  
           {  
                cout<<"***INFORMATION FOR PATIENT REGISTRATION NUMBER"<<regis<<"***\n";  
                cout<<"Name      : "<<PI[regis].name<<"\n";  
                cout<<"Sex      : ";  
                if(PI[regis].sex==1)  
                {  
                     cout<<"Male "<<"\n";  
                }  
                if(PI[regis].sex==2)  
                {  
                     cout<<"Female "<<"\n";  
                }  
                cout<<"Blood Group  : ";  
                switch(PI[regis].bld_group)  
                {  
                     case 1:  
                     {  
                       cout<<"A+";  
                       break;  
                     }  
                     case 2:  
                     {  
                       cout<<"A-";  
                       break;  
                     }  
                     case 3:  
                     {  
                       cout<<"B+";  
                       break;  
                     }  
                     case 4:  
                     {  
                       cout<<"B-";  
                       break;  
                     }  
                     case 5:  
                     {  
                    cout<<"AB+";  
                    break;  
                     }  
                     case 6:  
                     {  
                    cout<<"AB-";  
                    break;  
                     }  
                     case 7:  
                     {  
                    cout<<"O+";  
                    break;  
                     }  
                     case 8:  
                     {  
                    cout<<"O-";  
                    break;  
                     }  
                }  
                //printf("\n")  
                cout<<"\nDate of birth : ";  
                DOB1.show_date();  
                cout<<"Martial Status : ";  
                if(PI[i].martial_status==1)  
                {  
                     cout<<"Married "<<"\n";  
                }  
                else  
                {  
                     cout<<"Not married "<<"\n";  
                }  
                cout<<"**ADDRESS**";  
                cout<<"\nHouse no.   : "<<PI[regis].AD1.house;  
                cout<<"\nStreet     : "<<PI[regis].AD1.street;  
                cout<<"\nCity      : "<<PI[regis].AD1.city;  
                cout<<"\nState     : "<<PI[regis].AD1.state;  
                cout<<"\nCountry    : "<<PI[regis].AD1.country;  
                cout<<"\n**MEDICAL**";  
                cout<<"\nMedical Report : "<<PI[regis].medrep;  
                cout<<"\nDoctor     : "<<PI[regis].doctor;                 
           }  
           else  
           {  
                attempt++;  
                if(attempt==3)  
                {  
                     cout<<"You have entered wrong registration number 3 times ."<<"\n";  
                     cout<<"Access Denied!!! "<<"\n";  
                     cout<<"Please try again later. "<<"\n";  
                     cout<<"Press any key to exit to main task menu..."<<"\n";  
                     getch();  
                     A1.tasks();  
                }  
                cout<<"Sorry, the registration number is invalid ."<<"\n";  
                cout<<"Press any key to continue...."<<"\n";  
                getch();  
                A1.show_patient_detail();  
           }  
           cout<<"\nWant to see information of another patient? (Y/N): "<<"\n";  
           cin>>answer1;  
      }while(answer1=='y'||answer1=='Y');  
      A1.tasks();  
 }  
 void dob::show_date()  
 {  
      cout<<DOB11[regis].date;  
      rem=DOB11[regis].date%10;  
      switch(DOB11[regis].date)  
      {  
           case 11:  
           case 12:  
           case 13:  
           case 14:  
           case 15:  
           case 16:  
           case 17:  
           case 18:  
           case 19:  
           case 20:  
           {  
                cout<<"th ";  
                goto over;  
           }  
      }  
      switch(rem)  
      {  
           case 1:  
           {  
                cout<<"st ";  
                break;  
           }  
           case 2:  
           {  
                cout<<"nd ";  
                break;  
           }  
           case 3:  
           {  
                cout<<"rd ";  
                break;  
           }  
           default:  
           {  
                cout<<"th ";  
                break;  
           }  
      }  
      over:  
      switch(DOB11[regis].month)  
      {  
           case 1:  
           {  
                cout<<"January , ";  
                break;  
           }  
           case 2:  
           {  
                cout<<"February , ";  
                break;  
           }  
           case 3:  
           {  
                cout<<"March , ";  
                break;  
           }  
           case 4:  
           {  
                cout<<"April , ";  
                break;  
           }  
           case 5:  
           {  
                cout<<"May , ";  
                break;  
           }  
           case 6:  
           {  
                cout<<"June , ";  
                break;  
           }  
           case 7:  
           {  
                cout<<"July , ";  
                break;  
           }  
           case 8:  
           {  
                cout<<"August , ";  
                break;  
           }  
           case 9:  
           {  
                cout<<"September , ";  
                break;  
           }  
           case 10:  
           {  
                cout<<"October , ";  
                break;  
           }  
           case 11:  
           {  
                cout<<"November , ";  
                break;  
           }  
           case 12:  
           {  
                cout<<"December , ";  
                break;  
           }  
      }  
      cout<<DOB11[regis].year<<"\n";  
 }  
 /*void all::software_detail()  
 {  
      //clrscr();  
      cout<<"***SOFTWARE DETAILS***\n";  
      cout<<"     Developer        : Mustafizur Rohman "<<"\n";  
      cout<<"     Programming Language   : C++ "<<"\n";  
      cout<<"     Aim           : Simulation of the software used in Hospital"<<"\n";  
      cout<<"     Hope you like it..."<<"\n";  
      cout<<"     Send your comments to : mustafizur_04@sify.com ."<<"\n";  
      cout<<"     Thank You for trying this program. "<<"\n";  
      cout<<"Press any key to return to the main task menu......."<<"\n";  
      getch();  
      A1.tasks();  
 }*/  

Source :

Supported by codeformatter

Terimakasih semoga bermanfaat !