Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali...

Post on 02-Mar-2020

5 views 0 download

Transcript of Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali...

Oracle APEX development u development u eHealth domeni

Krešimir Perak

1. Zašto APEX?

2. Ukratko o ETK BIS-u

2.1 Tehnička arhitektura

2.2 Arhitektura funkcija

2.3 Look&Feel

AGENDA

Ericsson Internal | 2012-03-22 | Page

2.3 Look&Feel

3. Izdvojeni moduli:

3.1 Master Data Management

3.2 Metastrukture podataka

3.3 Multilanguage

4. Good practice

›Postojeći legacy (Oracle FORMS)

›Tehnološki razlozi

›Podrška – najveći Oracle community

1. Zašto apex?

Ericsson Internal | 2012-03-22 | Page

›Podrška – najveći Oracle community

› Dizajniran za integracijuintegraciju administrativnih, financijskih i kliničkih informacijainformacija

›› ModularanModularan dizajn

›› IntegriraIntegrira sve procese u instituciji,

›› CentraliziraCentralizira sve medicinske i administrativne podatke vezane uz pacijenta

2. UKRATKO O ETK BIS-u

Ericsson Internal | 2012-03-22 | Page

›› OsiguravaOsigurava jednostavniju komunikaciju

›› PodržavaPodržava svakodnevne procese donošenja odluka procese donošenja odluka kod liječenja

›› Izbjegavaju se nepotrebni papirnati dokumentiIzbjegavaju se nepotrebni papirnati dokumenti

› Jaki temelji za automatizacijuautomatizaciju zdravstvenih procesa

›› Različiti moduli sustava Različiti moduli sustava raspoloživi za implementaciju

3 Tier Architecture

ORDS

Oracle APEX

Schemas

2.1 tehnička arhitektura

Ericsson Internal | 2012-03-22 | Page

Browser Mid Tier Database Tier

Tomcat(v7)

Oracle APEX(4.2.6)

Oracle Database(11.2.0.4)

Ho

sp

ita

l a

nd

AN

D

Patient Management

Resource Management

ERICSSON ERICSSON ERICSSON ERICSSON ERICSSON ERICSSON ERICSSON ERICSSON Hospital Information SystemHospital Information SystemHospital Information SystemHospital Information SystemHospital Information SystemHospital Information SystemHospital Information SystemHospital Information System

HL7 Integration

platformPIS

2.2 arhitektura funkcija

Ericsson Internal | 2012-03-22 | Page

Ho

sp

ita

l a

nd

c

lin

ica

lR

ep

or

tin

gA

ND

B

I

ElectronicMedicalrecord

In-PatientCare

AMBULATORYcare

MDM – Master data management

LIS RIS

Nutritionmanagement

Microbiologypathology,

TRANSFUSION,PHARMACY …

CEZIH, eNaručivanje

2.2 arhitektura funkcija

Izdvojene funkcije:Izdvojene funkcije:

›› NeporecivostNeporecivost dokumenata – nalaza, otpusnih pisama, …

›› PraćenjePraćenje svih aktivnosti nad objektima zaštite (vrijeme + korisnik) – unos, sve promjene, brisanje, a nad unaprijed definiranim „osjetljivim“ objektima zaštite praćenje svih pristupa (dohvata za čitanje),

Ericsson Internal | 2012-03-22 | Page

› Mogućnost stavljanja više razina privatnosti više razina privatnosti na nalaz i otp. pisma

›› PatientPatient ConsentConsent – pristanak bolesnika na uvid u medicinske podatke

› Mogućnost konfiguriranjakonfiguriranja nalaza i otpusnog pisma po org. jedinici

›› UtilityUtility funkcijefunkcije – predlošci liječnika, kopiranje prethodnih nalaza, mogućnost povlačenja dijelova prethodnih nalaza ili otp. Pisama, uključivanje nalaza dijagnostike, …

2.3 Look&feel

I. Početna stranica

Ericsson Internal | 2012-03-22 | Page

2.3 Look&feel

II. Glavni menu

Ericsson Internal | 2012-03-22 | Page

2.3 Look&feel

III. Radna lista liječnika

Ericsson Internal | 2012-03-22 | Page

2.3 Look&feel

IV. Dashboard pacijenta

Ericsson Internal | 2012-03-22 | Page

2.3 Look&feel

V. Obrada pacijenta

Ericsson Internal | 2012-03-22 | Page

2.3 Look&feel

VI. Otpusno pismo

Ericsson Internal | 2012-03-22 | Page

3.1 3.1 MasterMaster Data ManagementData Management

› Platforma za upravljanje pravima, zaposlenicima i organizacijom na kojoj leži kompletan BIS

› Zasnovana na konceptu poslovnih funkcija – svaka funkcionalnost sustava koju treba kontrolirati nalazi se u ovom repozitoriju

› Tipovi poslovnih funkcija – Menu, Aplikativna, Infrastrukturna, Report, GUI

3. Izdvojeni MODULI

Ericsson Internal | 2012-03-22 | Page

› Tipovi poslovnih funkcija – Menu, Aplikativna, Infrastrukturna, Report, GUI

› Pravo na poslovnu funkciju moguće je dodijeliti ili oduzeti:

– Roli

– Organizacijskoj jedinici

– Zaposleniku

– Zaposleniku u org. jedinici

– Radnom mjestu

– Radnom mjestu u org. jedinici

3.1 3.1 MasterMaster Data ManagementData Management

3. Izdvojeni MODULI

Ericsson Internal | 2012-03-22 | Page

3.2 3.2 MetastruktureMetastrukture podatakapodataka

› Zdravstveni sustav je vrlo bogat različitim vrstama dokumentacije i drugim strukturama čiji je životni ciklus vrlo dinamičan i koja je vrlo podložna promjenama

› Omogućeno korisnicima da sami kreiraju predloške svojih dokumenata i ostalih podatkovnih struktura

› Podržane funkcionalnosti:

3. Izdvojeni MODULI

Ericsson Internal | 2012-03-22 | Page

› Podržane funkcionalnosti:

I. Upravljanje različitim podatkovnim strukturama – obrasci (prijave, potvrde, suglasnosti, zahtjevi), upitnici, mjerenja (osnovna, specifična), dodatni podaci nalaza i otp. pisma

II. Definiranje vrste podataka za svaku strukturu – tip podatka, dužina, obvezatnost, predefinirana vrijednost, domenske vrijednosti, link na postojeći šifarnik, …

III. Kreiranje podstruktura (detail) za pojedinu strukturu sa funkcionalnostima I i II

IV. Upravljanje životnim ciklusom svake podatkovne strukture

V. Upravljanje pravima na korištenje pojedine podatkovne strukture

VI. Multilanguage podrška

3.2 3.2 MetastruktureMetastrukture podatakapodataka

3. Izdvojeni MODULI

Ericsson Internal | 2012-03-22 | Page

3.2 3.2 MetastruktureMetastrukture podatakapodataka

3. Izdvojeni MODULITabularna forma leži na view čiji source leži na funkciji:IF p_oznaka_tipa IN ('VARCHAR', 'INTEGER', 'REAL') THEN

SELECT COUNT (*) INTO v_domena

FROM TBS_PODACI_VRSTE_DOMENA_VW a

WHERE a.id_vrste_podatka = p_id_vrste_podatka

AND TRUNC (SYSDATE) BETWEEN vrijedi_od AND

NVL (vrijedi_do, TRUNC (SYSDATE))

AND a.status = 'D';

IF v_domena > 0 THEN

v_html := APEX_ITEM.select_list_from_query (……..);

ELSIF p_upit_query IS NOT NULL AND

Ericsson Internal | 2012-03-22 | Page

ELSIF p_upit_query IS NOT NULL AND

NVL (p_prikazi_lov, 'N') = 'D' THEN

v_html := APEX_ITEM.POPUPKEY_FROM_QUERY (…);

ELSIF p_upit_query IS NOT NULL AND

NVL (p_prikazi_lov, 'N') = 'N' THEN

v_html := APEX_ITEM.SELECT_LIST_FROM_QUERY (…..);

ELSIF p_duzina >= 1000 THEN

v_html := APEX_ITEM.TEXTAREA (…..);

ELSIF p_duzina >= 100 THEN

v_html := APEX_ITEM.text (…….);

ELSE

v_html := APEX_ITEM.text (………..);

END IF;

ELSIF p_oznaka_tipa IN ('DATE') THEN

v_html := APEX_ITEM.date_popup (….);

ELSIF p_oznaka_tipa IN ('TIME') THEN

v_html := APEX_ITEM.date_popup (….);

END IF;

3.3 3.3 MultilanguageMultilanguage

› Vlastiti modul za prijevod koji direktno update-a APEX repozitorij -wwv_flow_translatable_text$

› Izbjegli smo manipulaciju i prevođenje XLIFF dokumenta

› Nit vodilja: jednom dohvatiti tekst prijevoda za jedan tip objekta jedan tip objekta (ne za sve tipove) i prevesti ga koliko god puta se ponavlja

3. Izdvojeni MODULI

Ericsson Internal | 2012-03-22 | Page

tipove) i prevesti ga koliko god puta se ponavlja

› Još neki razlozi:

– Nismo ovisni o translate_id koji su na aplikaciji s drugim ID drugačiji nego na originalnoj aplikaciji

– Imali smo slučaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo načina taj isti prijevod staviti i na drugu verziju

– Source regije, npr. report, ako ima kolonu u koju smo konkatenirali vrijednosti 3 polja sa svojim labelama, ne može se prevesti – export u XLIFF ovo ne ulovi

3.3 3.3 MultilanguageMultilanguage

3. Izdvojeni MODULI

• Seed aplikacije• Prebacivanje iz APEX

repozitorija u naš• Procedura

(aplikacation_id,

• Svi novi kandidati za prijevod imaju poseban flag i prolaze selekciju da li

2. Markiranje novih

4. Update & Publish

Ericsson Internal | 2012-03-22 | Page

(aplikacation_id, language_code)

• Punimo po svim tipovima i vrstama transl. objekata

• Ako prijevod postoji automatski se prevodi za sve nove objekte

1. Punjenje repozitorija

flag i prolaze selekciju da li ih prevoditi

• Ukoliko Y, prevode se i ulaze u repozitorij

• Ukoliko N, isto ulaze u repozitorij tako da sustav pamti da ih ubuduće ne prevodi (za ISTI tip)

• Prijevod kroz aplikaciju

3. Prijevod

• Update APEX repozitorija• Publish translate aplikacije

3.3 3.3 MultilanguageMultilanguage

3. Izdvojeni MODULI

Ericsson Internal | 2012-03-22 | Page

› Postavljena pravila programiranja i razvoja sustava – blizu 300 stranica

› Svi reporti na view-ima

› Sav PL/SQL u bazi i package-ima, što manje koda na stranicama

– Ovako izbjegavamo redundantnost koda, što je ključno

– Kod je reusabilan

› Package-i podijeljeni prema funkcionalnim cjelinama – dakle sloj poslovne logike

4. GOOD practice

Ericsson Internal | 2012-03-22 | Page

› Package-i podijeljeni prema funkcionalnim cjelinama – dakle sloj poslovne logike je unutar baze, ali je izdvojen

› Script based deployment – od developmenta, prema testu i produkciji

› Session State Protection

› Pazili smo na korištenje dynamic actiona – kod je vidljiv na stranici

› Nismo koristili mnogo plug-ina – selektivni pristup