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

23
Oracle APEX development u development u eHealth domeni Krešimir Perak

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

Page 1: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

Oracle APEX development u development u eHealth domeni

Krešimir Perak

Page 2: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

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

Page 3: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

›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

Page 4: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

› 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

Page 5: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

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)

Page 6: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

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

Page 7: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

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, …

Page 8: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

2.3 Look&feel

I. Početna stranica

Ericsson Internal | 2012-03-22 | Page

Page 9: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

2.3 Look&feel

II. Glavni menu

Ericsson Internal | 2012-03-22 | Page

Page 10: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

2.3 Look&feel

III. Radna lista liječnika

Ericsson Internal | 2012-03-22 | Page

Page 11: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

2.3 Look&feel

IV. Dashboard pacijenta

Ericsson Internal | 2012-03-22 | Page

Page 12: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

2.3 Look&feel

V. Obrada pacijenta

Ericsson Internal | 2012-03-22 | Page

Page 13: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

2.3 Look&feel

VI. Otpusno pismo

Ericsson Internal | 2012-03-22 | Page

Page 14: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

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

Page 15: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

3.1 3.1 MasterMaster Data ManagementData Management

3. Izdvojeni MODULI

Ericsson Internal | 2012-03-22 | Page

Page 16: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

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

Page 17: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

3.2 3.2 MetastruktureMetastrukture podatakapodataka

3. Izdvojeni MODULI

Ericsson Internal | 2012-03-22 | Page

Page 18: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

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;

Page 19: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

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

Page 20: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

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

Page 21: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

3.3 3.3 MultilanguageMultilanguage

3. Izdvojeni MODULI

Ericsson Internal | 2012-03-22 | Page

Page 22: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti

› 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

Page 23: Oracle APEX development u eHealth domeni · –Imali smo slu čaj da smo na istom workspaceu imali 2 verzije aplikacije – preveli smo jednu aplikaciju, nije bilo na čina taj isti