Senin, 31 Oktober 2016

[7] RSUD Dr. Soetomo Part 2 (contoh studi kasus analsis sistem informasi)

hai semuanya dan selamat datang kembali di blog saya. pada kesempatan ini saya akan melanjutkan pembahasan saya tentang RSUD Dr. Soetomo( part 1 bisa dilihat disini http://adenuar-purnomo.blogspot.co.id/2016/10/5-rsud-dr-soetomo.html).

sebelum membahasnya saya akan menyampaikan sebuah disclaimer.

DISCLAIMER: postingan ini bukanlah sistem informasi yang sebenarnya dipakai di RSUD Dr. Soetomo(kalau ada yang kebetulan sama, ya sudahlah), melainkan hanyalah analisis saya terhadap klasifikasi sistem informasi dan juga teknologi informasi yang digunakan berdasarkan struktur organisasi RSUD Dr. Soetomo



Berdasarkan struktur organisasi di atas, saya dapat menganalisis beberapa sistem informasi yang diperlukan / yang sudah ada di RSUD Dr. Soetomo. Berikut hasil analisis saya:

  1. Bidang kepegawaian
  2. Bidang perencanaan program
  3. Bidang TU
  4. Bidang Keuangan
  5. Bidang pelayanan medik dan keperawatan
  6. Bidang pemasaran dan rekam medik
  7. Bidang penelitian dan pengembangan

Ada 7 bidang yang membutuhkan sistem informasi(sejauh analisis saya). mari kita bahas 1 per 1 :

          Bidang kepegawaian

Di bidang kepegawaian tentunya kita membutuhkan sistem informasi pegawai dimana sistem informasi ini mengelola pegawai yang ada yaitu informasi pegawai dan struktur kepegawaian termasuk absensi pegawai dan mungkin juga gaji pegawai. Sistem ini dapat dibuat dengan hardware pc/laptop dan mesin absensi sidik jari.

          Bidang perencanaan program

Program-program yang ada di RSUD Dr. Soetomo tentunya dapat dibuatkan sebuah sistem informasi khusus dalam hal perencanaannya, karena tentunya dalam sebuah perencanaan terdapat anggaran negara yang mungkin saja menjadi anggaran siluman apabila tidak ada sistem informasi khusus yang menjaga anggaran tersebut. sistem ini dapat dibuat menyerupai sistem e-budgeting milik pemerintah provinsi DKI Jakarta. Pembuatan sistem ini dapat menggunakan hardware pc/laptop.

          Bidang TU

perlengkapan dan juga asset dari sebuah rumah sakit tentunya banyak, begitu juga dengan obat yang ada, sehingga menurut saya perlu sebuah sistem informasi khusus yang mengatur ketiga hal tersebut, sehingga tidak terjadi kesalahan antara data yang ada dan keadaan riil nya.

          Bidang Keuangan

Sudah cukup jelas bahwa keuangan membutuhkan sistem informasi yang dapat terintegrasi dengan SI pegawai dan SI perencanaan program. Diluar itu bidang keuangan juga memerlukan sistem informasi tersebut untuk mengecek arus dana baik dana keluar maupun dana masuk.

          Bidang pelayanan medik dan keperawatan

Pasien datang dan masih harus menuju bagian registrasi untuk mendaftar, saya rasa hal ini umum terjadi di rumah sakit manapun. dan saya rasa hal ini membutuhkan perubahan berupa sistem informasi registrasi pasien, Mungkin nanti pasien hanya perlu registrasi di sebuah web based aplication yang terintegrasi dengan sistem informasi ini, sehingga ketika pasien datang dia hanya perlu mengambil nomor antrian dan duduk mengantri dengan tenang.

          Bidang pemasaran dan rekam medik

Sistem informasi registrasi diatas, harus diintegrasi kan dengan rekam medik pasien, jadi dokter nantinya hanya perlu login di SI tersebut, dan mencari nama pasien, dan didapatlah rekam medik sang pasien. disini dokter juga dapat mengisi rekam medik terbaru pasiennya, sehingga kita tidak dapat menghemat penggunaan kertas (sebagai media rekam medik yang selama ini sudah ada)

          Bidang penelitian dan pengembangan

di bidang ini, sistem informasi yang digunakan bertujuan untuk mendata dan memberikan pengetahuan tentang penelitian dan pengembangan di bidang medis yang sudah dilakukan oleh dokter di RSUD Dr. Soetomo


(6.5) [Revisi lagi] CRC card, class diagram, sequensial diagram dan penerapan aplikasi + component diagram dan deployment diagram

1. CRC card


2.Use Case Diagram

3.Class diagram


4. Sequensial diagram









5.Activity Diagram



6. Penerapan


#include<string>
using std::string;
using std::getline;

#include <vector>
using std::vector;

#include <iostream>
using std::cout;
using std::endl;
using std::cin;

#include <iomanip>
using std::setw;
using std::left;
using std::right;

#include <fstream>
using std::ofstream;
using std::ifstream;

#include <sstream>
using std::stringstream;

#include <ctime>

class List {
    private:
    string _identification;
    string _category;
    string _itemDescription;
    string _price;
    string _quantity;
    string _total;
    string _newprice;
    string _VAT;
    public:
    List();
    List(string id, string category, string itemDescription, string price);
    List(string id, string quantity, string price, string total, string VAT );
    string toString();
void display();
    void Bill();
};
class ListItem {
    private:
    int _identification;
    string _price;
    vector<List> _items;
    vector<List> _itemSlot;
    public:
    void displayAll();
    void ListBill();
    void getFile();
    void showMenu();
    void StopProgram();
};
class Menu {
    private:
    ListItem _Li;
    string _file;
    public:
    Menu();
    bool select();
};

const string currentDateTime() {
    time_t     now = time(0);
    struct tm  tstruct;
    char       buf[80];
    tstruct = *localtime(&now);
    strftime(buf, sizeof(buf), "%Y-%m-%d.%X", &tstruct);
    return buf;
}


//***************************************************************
// Displaying and string data to the document
//****************************************************************
List::List(string id, string itemDescription, string category, string price)
:_identification(id), _itemDescription(itemDescription), _category(category), _price(price){      }
List::List(string id, string quantity, string price, string total, string VAT)
:_identification(id), _quantity(quantity), _price(price), _total(total), _VAT(VAT) { }
string List::toString(){
    return string(_identification + ":" + _quantity +  ":" + _price + ":" + _total + ":" +  _VAT);
}
void List::display(){
    cout << _identification << " " << left << _category << " " << left << _itemDescription << " " << left << _price <<setw(2) << left << endl;
}
void List::Bill(){
    cout << _identification << " " << _quantity << " " << _price << " " <<  _total << " " << _VAT;
}
void ListItem::displayAll(){
    for(size_t i = 0; i < _items.size(); ++i){
        _items[i].display();
    }
    cout << endl;
}
//***************************************************************
// Read file
//****************************************************************
void ListItem::getFile(){
    //Opens the file and reads the file
    char ch;
    while(ch = 'y')
    {
        cout << "Enter File name: ";
        system("color 1f");
        string name = "menu";
        cin >> name;
        name += ".txt";
        ifstream fin(name.c_str());
        if(fin){
            ch = 'n';
            while(!fin.eof()){
                string IdNo;
                getline(fin,  IdNo, ':'); // Finds "IDNO://
                string category;
                getline(fin, category, ':');
                string itemDescription;
                getline(fin, itemDescription, ';');
                string price;
                getline(fin, price);
                if(!fin.eof()){
                    _items.push_back(List(IdNo, category, itemDescription, price));
                }
            }
        }
        if (ch = 'n')
        {
            break;
        }
    }
}
//***************************************************************
// Allows other functions to link up with each other!!
//****************************************************************
Menu::Menu(){
    select();
}
//***************************************************************
// Entering the details
//****************************************************************
void ListItem::showMenu(){


system ("cls");
    int ch, quantity;
    double price,total, VAT;
    char choice;
char buffer[80];

string _quantity, _total, _VAT, _ch;


    // User enters data

cout<<"\nn============================";
    cout<<"\n PLACE YOUR ORDER";
    cout<<"\n============================";
    cout << "\nEnter the ID, Quantiy and Price" <<endl;
    while((choice = 'y') || (choice = 'Y'))
    {
        cout << "\nItem ID: ";
    cin >> ch;
        cout << "\nQuantity; ";
        cin >> quantity;
        cout << "\nprice: ";
        cin >> price;
   
total = price * quantity;
        VAT = total * 1.2;
   
cout << "\ntotal: " << total << endl;
        cout << "\nVAT: " <<VAT << endl;
 
 
    stringstream  stream;
       stream << quantity;   //String Streams, passes data into the attribute in the class which then gets stored in a vector
       stream >> _quantity;
       stringstream stream2;
       stream2 << price;
       stream2 >> _price;
       stringstream  stream3;
       stream3 << total;
       stream3 >> _total;
      stringstream  stream4;
     stream4 << VAT;
     stream4 >> _VAT;
     stringstream  stream5;
     stream5 << ch;
     stream5 >> _ch;
 
    cout << "\nCurrent time: ";
     cout << currentDateTime() << std::endl;
     getchar();
        _itemSlot.push_back(List(_ch, _quantity, _price, _total, _VAT) );
   cout << "\n To continue press Y, else to quit press N " << endl;
        cin >> choice;
cin.ignore();

        if(choice == 'n' || choice == 'N')
        {
            system("cls");
break;
        }
    }
}
//********************************************************************************************************
// Gets the information he user enters which is then sent to endMenu when the close it and it saves the file
//**********************************************************************************************************
void ListItem::ListBill(){
    cout << "ItemID" << " Quantity" << " Price" << " total" << "VAT" << endl;
    for(size_t i = 0; i < _itemSlot.size(); ++i){
        _itemSlot[i].Bill();
    }
    cout <<endl;
}
void ListItem::StopProgram(){
system("color 2f");
    string _bill = "Transaction";  // For some unknown strange reason, it saves the file as 5.txt
    cout << right <<  "Bill has been saved " <<endl;
    _bill += ".txt";
    ofstream fout(_bill.c_str());
    for(size_t i = 0; i < _itemSlot.size(); ++i) {
        fout << i+1 << " : " << _itemSlot[i].toString() << endl;
    }
    fout.close();
    cout << endl;
}
bool Menu::select(){
    system("color 1f");
cout << "Menu====\n" << endl;
    cout << "(1) Read a file \n(2) Add a "
    "bill \n(3)  Display Bill\n(4) Display all data\n(5) Save file and leave  the Program\n" << endl;

cout << "Select: ";
    char ch;
    cin >> ch;
    cin.ignore(256, '\n');
    cout << endl;
    switch(ch)
do
{
        case '1' : _Li.getFile();
        return true;
        case '2' : _Li.showMenu();
        return true;
        case '3' : _Li.ListBill();
        return true;
        case '4': _Li.displayAll();
        return true;
        case '5': _Li.StopProgram();
        return false;
default : cout << "Enter an '1', '2' ,'3', '4' or '5' without"
        " the qoutes.n";
        return true;
}while(ch!=1 || ch !=2 || ch != 3 || ch !=4 || ch!=5);

}
int main(){
    //all of the functions are run through menu4
    Menu menu;
    while(menu.select()) {
        // empty body
    }
    return 0;
}


7. Component Diagram


8. Deployment diagram


                                                 

Sabtu, 22 Oktober 2016

(6.1) [Revisi] CRC card, class diagram, sequensial diagram dan penerapan aplikasi

1. CRC card


2.Use Case Diagram

3.Class diagram


4. Sequensial diagram
5.Activity Diagram



6. Penerapan


#include<string>
using std::string;
using std::getline;

#include <vector>
using std::vector;

#include <iostream>
using std::cout;
using std::endl;
using std::cin;

#include <iomanip>
using std::setw;
using std::left;
using std::right;

#include <fstream>
using std::ofstream;
using std::ifstream;

#include <sstream>
using std::stringstream;

#include <ctime>

class List {
    private:
    string _identification;
    string _category;
    string _itemDescription;
    string _price;
    string _quantity;
    string _total;
    string _newprice;
    string _VAT;
    public:
    List();
    List(string id, string category, string itemDescription, string price);
    List(string id, string quantity, string price, string total, string VAT );
    string toString();
void display();
    void Bill();
};
class ListItem {
    private:
    int _identification;
    string _price;
    vector<List> _items;
    vector<List> _itemSlot;
    public:
    void displayAll();
    void ListBill();
    void getFile();
    void showMenu();
    void StopProgram();
};
class Menu {
    private:
    ListItem _Li;
    string _file;
    public:
    Menu();
    bool select();
};

const string currentDateTime() {
    time_t     now = time(0);
    struct tm  tstruct;
    char       buf[80];
    tstruct = *localtime(&now);
    strftime(buf, sizeof(buf), "%Y-%m-%d.%X", &tstruct);
    return buf;
}


//***************************************************************
// Displaying and string data to the document
//****************************************************************
List::List(string id, string itemDescription, string category, string price)
:_identification(id), _itemDescription(itemDescription), _category(category), _price(price){      }
List::List(string id, string quantity, string price, string total, string VAT)
:_identification(id), _quantity(quantity), _price(price), _total(total), _VAT(VAT) { }
string List::toString(){
    return string(_identification + ":" + _quantity +  ":" + _price + ":" + _total + ":" +  _VAT);
}
void List::display(){
    cout << _identification << " " << left << _category << " " << left << _itemDescription << " " << left << _price <<setw(2) << left << endl;
}
void List::Bill(){
    cout << _identification << " " << _quantity << " " << _price << " " <<  _total << " " << _VAT;
}
void ListItem::displayAll(){
    for(size_t i = 0; i < _items.size(); ++i){
        _items[i].display();
    }
    cout << endl;
}
//***************************************************************
// Read file
//****************************************************************
void ListItem::getFile(){
    //Opens the file and reads the file
    char ch;
    while(ch = 'y')
    {
        cout << "Enter File name: ";
        system("color 1f");
        string name = "menu";
        cin >> name;
        name += ".txt";
        ifstream fin(name.c_str());
        if(fin){
            ch = 'n';
            while(!fin.eof()){
                string IdNo;
                getline(fin,  IdNo, ':'); // Finds "IDNO://
                string category;
                getline(fin, category, ':');
                string itemDescription;
                getline(fin, itemDescription, ';');
                string price;
                getline(fin, price);
                if(!fin.eof()){
                    _items.push_back(List(IdNo, category, itemDescription, price));
                }
            }
        }
        if (ch = 'n')
        {
            break;
        }
    }
}
//***************************************************************
// Allows other functions to link up with each other!!
//****************************************************************
Menu::Menu(){
    select();
}
//***************************************************************
// Entering the details
//****************************************************************
void ListItem::showMenu(){

 
system ("cls");
    int ch, quantity;
    double price,total, VAT;
    char choice;
char buffer[80];

string _quantity, _total, _VAT, _ch;


    // User enters data

cout<<"\nn============================";
    cout<<"\n PLACE YOUR ORDER";
    cout<<"\n============================";
    cout << "\nEnter the ID, Quantiy and Price" <<endl;
    while((choice = 'y') || (choice = 'Y'))
    {
        cout << "\nItem ID: ";
    cin >> ch;
        cout << "\nQuantity; ";
        cin >> quantity;
        cout << "\nprice: ";
        cin >> price;
     
total = price * quantity;
        VAT = total * 1.2;
     
cout << "\ntotal: " << total << endl;
        cout << "\nVAT: " <<VAT << endl;
   
   
    stringstream  stream;
       stream << quantity;   //String Streams, passes data into the attribute in the class which then gets stored in a vector
       stream >> _quantity;
       stringstream stream2;
       stream2 << price;
       stream2 >> _price;
       stringstream  stream3;
       stream3 << total;
       stream3 >> _total;
      stringstream  stream4;
     stream4 << VAT;
     stream4 >> _VAT;
     stringstream  stream5;
     stream5 << ch;
     stream5 >> _ch;
   
    cout << "\nCurrent time: ";
     cout << currentDateTime() << std::endl;
     getchar();
        _itemSlot.push_back(List(_ch, _quantity, _price, _total, _VAT) );
   cout << "\n To continue press Y, else to quit press N " << endl;
        cin >> choice;
cin.ignore();

        if(choice == 'n' || choice == 'N')
        {
            system("cls");
break;
        }
    }
}
//********************************************************************************************************
// Gets the information he user enters which is then sent to endMenu when the close it and it saves the file
//**********************************************************************************************************
void ListItem::ListBill(){
    cout << "ItemID" << " Quantity" << " Price" << " total" << "VAT" << endl;
    for(size_t i = 0; i < _itemSlot.size(); ++i){
        _itemSlot[i].Bill();
    }
    cout <<endl;
}
void ListItem::StopProgram(){
system("color 2f");
    string _bill = "Transaction";  // For some unknown strange reason, it saves the file as 5.txt
    cout << right <<  "Bill has been saved " <<endl;
    _bill += ".txt";
    ofstream fout(_bill.c_str());
    for(size_t i = 0; i < _itemSlot.size(); ++i) {
        fout << i+1 << " : " << _itemSlot[i].toString() << endl;
    }
    fout.close();
    cout << endl;
}
bool Menu::select(){
    system("color 1f");
cout << "Menu====\n" << endl;
    cout << "(1) Read a file \n(2) Add a "
    "bill \n(3)  Display Bill\n(4) Display all data\n(5) Save file and leave  the Program\n" << endl;

cout << "Select: ";
    char ch;
    cin >> ch;
    cin.ignore(256, '\n');
    cout << endl;
    switch(ch)
do
{
        case '1' : _Li.getFile();
        return true;
        case '2' : _Li.showMenu();
        return true;
        case '3' : _Li.ListBill();
        return true;
        case '4': _Li.displayAll();
        return true;
        case '5': _Li.StopProgram();
        return false;
default : cout << "Enter an '1', '2' ,'3', '4' or '5' without"
        " the qoutes.n";
        return true;
}while(ch!=1 || ch !=2 || ch != 3 || ch !=4 || ch!=5);
 
}
int main(){
    //all of the functions are run through menu4
    Menu menu;
    while(menu.select()) {
        // empty body
    }
    return 0;
}

                                                 

Minggu, 16 Oktober 2016

(6) CRC card, class diagram, sequensial diagram dan penerapan palikasi

1. CRC card


2.Class diagram


3. Sequensial diagram















4. Penerapan


#include<string>
using std::string;
using std::getline;

#include <vector>
using std::vector;

#include <iostream>
using std::cout;
using std::endl;
using std::cin;

#include <iomanip>
using std::setw;
using std::left;
using std::right;

#include <fstream>
using std::ofstream;
using std::ifstream;

#include <sstream>
using std::stringstream;

#include <ctime>

class List {
    private:
    string _identification;
    string _category;
    string _itemDescription;
    string _price;
    string _quantity;
    string _total;
    string _newprice;
    string _VAT;
    public:
    List();
    List(string id, string category, string itemDescription, string price);
    List(string id, string quantity, string price, string total, string VAT );
    string toString();
void display();
    void Bill();
};
class ListItem {
    private:
    int _identification;
    string _price;
    vector<List> _items;
    vector<List> _itemSlot;
    public:
    void displayAll();
    void ListBill();
    void getFile();
    void showMenu();
    void StopProgram();
};
class Menu {
    private:
    ListItem _Li;
    string _file;
    public:
    Menu();
    bool select();
};

const string currentDateTime() {
    time_t     now = time(0);
    struct tm  tstruct;
    char       buf[80];
    tstruct = *localtime(&now);
    strftime(buf, sizeof(buf), "%Y-%m-%d.%X", &tstruct);
    return buf;
}


//***************************************************************
// Displaying and string data to the document
//****************************************************************
List::List(string id, string itemDescription, string category, string price)
:_identification(id), _itemDescription(itemDescription), _category(category), _price(price){      }
List::List(string id, string quantity, string price, string total, string VAT)
:_identification(id), _quantity(quantity), _price(price), _total(total), _VAT(VAT) { }
string List::toString(){
    return string(_identification + ":" + _quantity +  ":" + _price + ":" + _total + ":" +  _VAT);
}
void List::display(){
    cout << _identification << " " << left << _category << " " << left << _itemDescription << " " << left << _price <<setw(2) << left << endl;
}
void List::Bill(){
    cout << _identification << " " << _quantity << " " << _price << " " <<  _total << " " << _VAT;
}
void ListItem::displayAll(){
    for(size_t i = 0; i < _items.size(); ++i){
        _items[i].display();
    }
    cout << endl;
}
//***************************************************************
// Read file
//****************************************************************
void ListItem::getFile(){
    //Opens the file and reads the file
    char ch;
    while(ch = 'y')
    {
        cout << "Enter File name: ";
        system("color 1f");
        string name = "menu";
        cin >> name;
        name += ".txt";
        ifstream fin(name.c_str());
        if(fin){
            ch = 'n';
            while(!fin.eof()){
                string IdNo;
                getline(fin,  IdNo, ':'); // Finds "IDNO://
                string category;
                getline(fin, category, ':');
                string itemDescription;
                getline(fin, itemDescription, ';');
                string price;
                getline(fin, price);
                if(!fin.eof()){
                    _items.push_back(List(IdNo, category, itemDescription, price));
                }
            }
        }
        if (ch = 'n')
        {
            break;
        }
    }
}
//***************************************************************
// Allows other functions to link up with each other!!
//****************************************************************
Menu::Menu(){
    select();
}
//***************************************************************
// Entering the details
//****************************************************************
void ListItem::showMenu(){

   
system ("cls");
    int ch, quantity;
    double price,total, VAT;
    char choice;
char buffer[80];

string _quantity, _total, _VAT, _ch;
 

    // User enters data

cout<<"\nn============================";
    cout<<"\n PLACE YOUR ORDER";
    cout<<"\n============================";
    cout << "\nEnter the ID, Quantiy and Price" <<endl;
    while((choice = 'y') || (choice = 'Y'))
    {
        cout << "\nItem ID: ";
  cin >> ch;
        cout << "\nQuantity; ";
        cin >> quantity;
        cout << "\nprice: ";
        cin >> price;
       
total = price * quantity;
        VAT = total * 1.2;
       
cout << "\ntotal: " << total << endl;
        cout << "\nVAT: " <<VAT << endl;
     
     
   stringstream  stream;
     stream << quantity;   //String Streams, passes data into the attribute in the class which then gets stored in a vector
     stream >> _quantity;
     stringstream stream2;
     stream2 << price;
     stream2 >> _price;
     stringstream  stream3;
     stream3 << total;
     stream3 >> _total;
     stringstream  stream4;
    stream4 << VAT;
    stream4 >> _VAT;
    stringstream  stream5;
    stream5 << ch;
    stream5 >> _ch;
     
   cout << "\nCurrent time: ";
    cout << currentDateTime() << std::endl;
    getchar();
        _itemSlot.push_back(List(_ch, _quantity, _price, _total, _VAT) );
  cout << "\n To continue press Y, else to quit press N " << endl;
        cin >> choice;
cin.ignore();
 
        if(choice == 'n' || choice == 'N')
        {
            system("cls");
break;
        }
    }
}
//********************************************************************************************************
// Gets the information he user enters which is then sent to endMenu when the close it and it saves the file
//**********************************************************************************************************
void ListItem::ListBill(){
    cout << "ItemID" << " Quantity" << " Price" << " total" << "VAT" << endl;
    for(size_t i = 0; i < _itemSlot.size(); ++i){
        _itemSlot[i].Bill();
    }
    cout <<endl;
}
void ListItem::StopProgram(){
system("color 2f");
    string _bill = "Transaction";  // For some unknown strange reason, it saves the file as 5.txt
    cout << right <<  "Bill has been saved " <<endl;
    _bill += ".txt";
    ofstream fout(_bill.c_str());
    for(size_t i = 0; i < _itemSlot.size(); ++i) {
        fout << i+1 << " : " << _itemSlot[i].toString() << endl;
    }
    fout.close();
    cout << endl;
}
bool Menu::select(){
    system("color 1f");
cout << "Menu====\n" << endl;
    cout << "(1) Read a file \n(2) Add a "
    "bill \n(3)  Display Bill\n(4) Display all data\n(5) Save file and leave  the Program\n" << endl;
 
cout << "Select: ";
    char ch;
    cin >> ch;
    cin.ignore(256, '\n');
    cout << endl;
   switch(ch)
do
{
        case '1' : _Li.getFile();
        return true;
        case '2' : _Li.showMenu();
        return true;
        case '3' : _Li.ListBill();
        return true;
        case '4': _Li.displayAll();
        return true;
        case '5': _Li.StopProgram();
        return false;
default : cout << "Enter an '1', '2' ,'3', '4' or '5' without"
        " the qoutes.n";
        return true;
}while(ch!=1 || ch !=2 || ch != 3 || ch !=4 || ch!=5);
   
}
int main(){
    //all of the functions are run through menu4
    Menu menu;
    while(menu.select()) {
        // empty body
    }
    return 0;
}

                                                   

Sabtu, 15 Oktober 2016

[5] RSUD Dr. Soetomo


kesempatan kali ini kita akan membahas visi misi dan struktur organisasi beserta SOP dari RSUD Dr. Soetomo, namun sebelum itu ada baiknya kita akan melihat sejarah dari rumah sakit ini.

Sejarah RSUD Dr. Soetomo:
29 Oktober 1938
Peletakan batu pertama RS Central Buggerlijk Ziekenhuis (CBZ) oleh Pemerintah Belanda di Desa Karangmenjangan.
1943 – 1945
Pada masa penjajahan Jepang, pembangunan Rumah Sakit Karangmenjangan dijadikan Rumah Sakit Angkatan Darat.
1945 – 1949
Rumah sakit dikuasai Belanda kembali, kemudian namanya diubah menjadi Marine Hospitaal (RS AL Belanda).
1950
Rumah Sakit Oemoem Soerabaja di bawah Departemen Kesehatan RI, telah berganti nama menjadi Rumah Sakit Umum (RSU) Pusat.
1951 – 1954
RS Simpang pindah ke Karangmenjangan. Pelayanan Bedah Akut tetap di RS Simpang.
1964
Berdasarkan SK. Menkes RI. 20 Mei 1964 No.26769/KAB/76. RSUP Surabaya menjadi RS Dr. Soetomo.
1965
Berdasarkan PP. No.4 Tahun 1965, penyelenggaraan RSUP Dr. Soetomo diserahkan kepada Pemda Tk.I Jawa Timur.
1979
SK Menkes menetapkan RSU Daerah DR. Soetomo sebagai RS Klas A dan dikenal sebagai:
• Rumah Sakit Pelayanan, Pendidikan dan Penelitian
• Rumah Sakit Pusat Rujukan Wilayah Indonesia Timur (Top Referal)
• Rumah Sakit terbesar di wilayah Indonesia bagian Timur
1980
Semua kegiatan pelayanan dijadikan satu di RSU Dr. Soetomo karena RS Simpang dijual dan jadi Plaza Surabaya.
2002
Perda Provinsi Jatim menetapkan perubahan nama menjadi Rumah Sakit Umum Daerah Dr. Soetomo.
2012
Saat ini RSUD Dr. Soetomo menempati lahan seluas 163.875 m2 dengan kapasitas tempat tidur (TT) 1.449, yang terdiri dari:
• Graha Amerta : 123 TT IRD : 88 TT
• Ruangan : 1209 TT GBPT : 29 TT



VISI
Menjadi Rumah Sakit yang Bermutu Internasional dalam Pelayanan, Pendidikan, dan Penelitian.  

MISI
Menyelenggarakan pelayanan kesehatan, pendidikan, dan penelitian yang profesional, akuntabel yang berorientasi pada kastemer untuk menuju pelayanan kesehatan berstandar internasional. 

Nilai Dasar  
1. Etika 
2. Profesionalisme 
3. Integritas 
4. Kemitraan 
5. Keadilan 
6. Kemandirian 

Kebijakan Dasar
  • Perbaikan mutu pelayanan.
  • Perbaikan manajemen (SDM) internal rumah sakit.
  • Pemantapan kelembagaan (struktur dan sistem).
  • Pemantapan nilai dasar menjadi budaya organisasi.
  • Pemantapan sistim akuntansi keuangan.
  • Pengendalian biaya dan struktur anggaran.
  • Perbaikan manajemen logistik medik dan non medik.
  • Pemantapan manajemen pendidikan klinik dan penelitian rumah sakit.
  • Pengembangan aliansi strategis.


Berikut ini contoh SOP pengaduan pelayanan publik di RSUD Dr. Soetomo:
     Setiap pengaduan yang masuk ke RSUD Dr Soetomo diterima oleh petugas melalui telpon No. 5501239, 5501259 dan 70813188 dan dicatat data pengadu dan isi pengaduan (nama, alamat dan telepon)

Pengaduan dari masyarakat yang masuk akan dipilah, apabila pengaduan dari masyarakat tersebut dapat dijawab  maka petugas penerima akan menjawab  pengaduan masyarakat tersebut secara langsung. Dan apabila pengaduan dari masyarakat tidak dapat dijawab langsung maka pengadu (masyarakat) diminta menelepon ulang 10-60 menit kemudian.

Petugas akan mencari informasi langsung menghubungi sumber informasi yang dikenal dan diketahui ( Dokter, paramedik, staf RSUD Dr Soetomo ). Sehingga pengadu sewaktu menelepon ulang petugas sudah dapat menjawab.

Dan apabila petugas tidak dapat mendapat  sumber informasi maka petugas akan berkonsultasi dengan koordinator pelayanan publik (Urip Murtejo, dr,SpB, PGD, Pall Med ECU (telp : 0811346418 & 70181401) atau  Sunarso Suyoso, dr.,SpKK(K) (telp : 8663074 & 0818309742).

Setelah  dikonsultasikan  dengan  koordinator  pelayanan  publik  dan  dapat  menjawab langsung pengaduan dari masyarakat maka petugas dapat menyampaikan kepada pengadu.

Dan apabila setelah dikonsultasikan dengan koordinator pelayanan publik juga tidak dapat menjawab maka, pengadu  diminta untuk menunggu selama 1 – 3 x 24 jam.

Selama menunggu 1 - 3 x 24 jam  koordinator pelayanan publik akan mencarikan  sumber informasi utama / supervisor PKRS & Humas.

Setelah dari sumber informasi utama / supervisor PKRS & Humas atau dilakukan rapat koordinasi dari banyak bidang, jawaban akan disampaikan kembali ke koordinator pelayanan publik yang kemudian akan diinformasikan kepada petugas penerima pengaduan untuk disampaikan kembali kepada pengadu. Bagi pengaduan yang lewat media masa akan dibuat surat jawaban tertulis ke media yang bersangkutan.

Untuk kelalaian tindakan medis akan ditangani oleh Komite Medis sendiri. Jawaban kepada pengadu  / masyarakat harus disampaikan  kembali maksimum dalam 5 x 24 jam.

Jawaban yang tidak dapat diselesaikan dalam waktu 5 x 24 jam, baik pengaduan secara langsung, lewat telpon dan melalui media masa, maka pengadu dapat menindak lanjuti ke Komisi Pelayanan Publik.

Untuk pengaduan yang tidak dapat diselesaikan akan diberikan kompensasi dengan perlakuan khusus sesuai kebijakan dari RSUD Dr.Soetomo / Instalasi masing-masing.

Jawaban ditulis didalam form laporan yang sudah ditetapkan.

Semua laporan dikirim ke PKRS tiap bulan, sebelum tanggal 5 bulan berikutnya.

Semua pengaduan yang masuk Ke RSUD Dr.Soetomo baik secara langsung, lewat telpon maupun media masa beserta jawabannya akan dilaporkan ke Sekretaris Daerah Propinsi Jawa Timur sebelum tanggal 10 bulan berikutnya.

Bila jawaban lebih dari 5 X 24 jam, pengadu dapat mengajukan masalahnya ke Komisi Pelayanan Publik.


Mungkin sekian dahulu pemahasan pada kali ini. Kalau misalkan ada kesalahan saya mohon maaf karena saya juga masih belajar.

Sumber:  http://rsudrsoetomo.jatimprov.go.id/id/images/stories/STRUKTUR%20ORGANISASI%20-%20nov2015edit.jpg
       http://rsudrsoetomo.jatimprov.go.id/id/index.php/2014-11-19-04-37-24/2014-11-19-04-39-55
       http://www.slideshare.net/idakomariana1/panduan-informasi-2012




Sabtu, 01 Oktober 2016

[4] CRC, Inisialisasi class dan Relasi class dari Sistem Management Event

Setelah pada [2] kita membahas tentang event management. Pada kesempatan ini kita akan mencoba membuat CRC card dan Class diagram sesuai dengan use case diagram di post [2]. Sebelum membuat CRC card dan Class diagram, terlebih dahulu kita akan membahas pengertian dari CRC dan Class diagram.

Class-responsibility-collaboration
 (CRCcards adalah alat yang dgunakan di desain software berorientasi objek untuk brainstorming.


Class diagram adalah model statis yang menggambarkan struktur dan deskripsi class serta hubungannya antara class.

Ada baiknya sebelum membuat CRC cards dan class diagram dari event management, kita melihat use case diagram dari event management terlebih dahulu.


Use case diagram event management




CRC CARDS EVENT MANAGEMENT
Terdapat 6 CRC cards yang dibuat pada sistem managemen event ini, yaitu Rules, Participant, Event, Event Organizer, Registration, dan Email








Setelah kita membuat CRC cards tersebut, barulah kita dapat membuat relasi dari masing-masing CRC cards.



Barulah setelah CRC Cards tersebut memiliki relasi, kita dapat membuat Class Diagramnya.

Class Diagram Event Management


Sekian dulu pembahasan pada kali ini, Kalau misalkan ada kesalahan saya mohon maaf karena saya juga masih belajar.